2c693a81 by 蔡俊立
2 parents 6da85cd8 5846b42b
<template>
<div class="from-clues">
<div class="invalid-title">
<i class="el-icon-question invalid-icon"></i>
<div class="invalid-body">您是否确定终止该业务办理?</div>
<i class="el-icon-question invalid-icon"></i>
<div class="invalid-body">您是否确定终止该业务办理?</div>
</div>
<div class="invalid-reson">终止原因:</div>
<el-input v-model="stopMessage" placeholder="请输入终止原因" type="textarea" :rows="4"></el-input>
<el-button style="float:right">取消</el-button>
<el-button type="primary" @click="onSubmit" style="float:right">退件</el-button>
<el-input
v-model="stopMessage"
placeholder="请输入终止原因"
type="textarea"
:rows="4"
></el-input>
<el-button style="float: right">取消</el-button>
<el-button type="primary" @click="onSubmit" style="float: right"
>退件</el-button
>
</div>
</template>
<script>
import { stopTask } from "@/api/fqsq.js"
import { stopTask } from "@/api/fqsq.js";
export default {
props: {
formData: {
type: Object,
default: {}
}
default: {},
},
},
data () {
data() {
return {
stopMessage: ''
}
stopMessage: "",
};
},
methods: {
onSubmit () {
onSubmit() {
stopTask({
bsmSlsq: this.formData.bsmSlsq,
bestepid: this.formData.bestepid,
stopMessage: this.stopMessage
}).then(res => {
this.$message.success('终止成功')
setTimeout(() => {
window.opener.location.reload(); //刷新父窗口
window.close();
this.$emit('input', false)
}, 1000);
})
bsmSlsq: this.formData.bsmSlsq,
bestepid: this.formData.bestepid,
stopMessage: this.stopMessage,
}).then((res) => {
this.$message.success("终止成功");
setTimeout(() => {
// window.opener.location.reload(); //刷新父窗口
if (window.opener && window.opener.getBpageList) {
window.opener.getBpageList();
} else {
window.opener.frames[0].getBpageList();
}
window.close();
this.$emit("input", false);
}, 1000);
});
},
}
}
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
.invalid-title {
display: flex;
align-content: center;
display: flex;
align-content: center;
.invalid-icon {
color: rgb(254, 148, 0);
font-size: 34px;
margin-right: 10px;
}
.invalid-icon {
color: rgb(254, 148, 0);
font-size: 34px;
margin-right: 10px;
}
.invalid-body {
line-height: 40px;
margin-bottom: 10px;
}
.invalid-body {
line-height: 40px;
margin-bottom: 10px;
}
}
.invalid-reson {
margin-bottom: 10px;
margin-bottom: 10px;
}
.dialog-footer {
margin-top: 10px;
display: flex;
justify-content: flex-end;
margin-top: 10px;
display: flex;
justify-content: flex-end;
}
</style>
......
......@@ -4,21 +4,37 @@
<div class="from-clues-header">
<div class="title">请选择要退回到的环节:</div>
<el-form ref="queryForm" label-width="90px">
<ul style="margin-bottom:15px">
<li v-for="(item,index) in dataList" class="listDetail" :key="index" @click="changeSelectItem(item)">
<ul style="margin-bottom: 15px">
<li
v-for="(item, index) in dataList"
class="listDetail"
:key="index"
@click="changeSelectItem(item)"
>
<p class="icon">
<el-radio v-model="selectActivity" :label="item.activityId" @change="changeSelectItem(item)"></el-radio>
<el-radio
v-model="selectActivity"
:label="item.activityId"
@change="changeSelectItem(item)"
></el-radio>
</p>
<p>{{ item.activityName }}</p>
<p v-for="(child, childIndex) in item.userInfos" :key="childIndex">
{{ child.name }}
</p>
<p>{{item.activityName}}</p>
<p v-for="(child,childIndex) in item.userInfos" :key="childIndex">{{child.name}}</p>
</li>
</ul>
<div class="title">退回意见:</div>
<el-form-item>
<el-input class="textArea" type="textarea" v-model="outstepopinion" placeholder="请输入退回意见"></el-input>
<el-input
class="textArea"
type="textarea"
v-model="outstepopinion"
placeholder="请输入退回意见"
></el-input>
</el-form-item>
<el-form-item>
<el-button style="float:right" @click="cancelBack">取消</el-button>
<el-button style="float:right" @click="cancelBack">取消</el-button>
<el-button type="primary" @click="onSubmit" style="float:right">退回</el-button>
</el-form-item>
</el-form>
......@@ -27,57 +43,65 @@
</template>
<script>
import { getTaskBackNode, sendBackTask } from "@/api/fqsq.js"
import { popupCacel } from "@/utils/popup.js";
export default {
props: {
formData: {
type: Object,
default: {}
}
default: {},
},
},
data () {
data() {
return {
selectActivity: '',
selectActivity: "",
dataList: [],
outstepopinion: '',
selectItem: {}
}
outstepopinion: "",
selectItem: {},
};
},
created () {
created() {
this.getBackNode();
},
methods: {
onSubmit () {
onSubmit() {
this.selectItem.outstepopinion = this.outstepopinion;
sendBackTask({
bsmSlsq: this.formData.bsmSlsq,
backNodeList: [this.selectItem]
}).then(res => {
this.$message.success('退回成功')
setTimeout(() => {
window.opener.location.reload(); //刷新父窗口
window.close();
this.$emit('input', false)
}, 1000);
})
backNodeList: [this.selectItem],
}).then((res) => {
this.$message.success("退回成功");
setTimeout(() => {
// window.opener.location.reload(); //刷新父窗口
if (window.opener && window.opener.getBpageList) {
window.opener.getBpageList();
} else {
window.opener.frames[0].getBpageList();
}
window.close();
this.$emit("input", false);
}, 1000);
});
},
changeSelectItem(item){
this.selectItem = item
this.selectActivity = item.activityId
changeSelectItem(item) {
this.selectItem = item;
this.selectActivity = item.activityId;
},
//获取可回退环节信息
getBackNode () {
getTaskBackNode(this.formData).then(res => {
getBackNode() {
getTaskBackNode(this.formData).then((res) => {
if (res.code == 200) {
this.dataList = res.result
if(res.result){
this.selectActivity = res.result[0].activityId
this.selectItem = res.result[0]
this.dataList = res.result;
if (res.result) {
this.selectActivity = res.result[0].activityId;
this.selectItem = res.result[0];
}
}
})
});
},
cancelBack(){
popupCacel();
}
......@@ -108,7 +132,7 @@ export default {
}
}
.title{
.title {
margin-bottom: 10px;
}
......@@ -117,7 +141,7 @@ export default {
min-height: 90px !important;
}
}
/deep/.el-radio .el-radio__label {
/deep/.el-radio .el-radio__label {
display: none;
}
</style>
......
......@@ -12,7 +12,7 @@ import {
getNextLinkInfo,
} from "@/api/fqsq.js";
export default {
data () {
data() {
return {
//是否开启材料分屏
splitScreen: false,
......@@ -28,13 +28,13 @@ export default {
batchButtonName: '',
}
},
mounted () {
mounted() {
this.flowInitParam();
this.loadBdcdylist();
},
methods: {
//读取申请单元信息
loadBdcdylist () {
loadBdcdylist() {
var formdata = new FormData();
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("bestepid", this.bestepid);
......@@ -56,7 +56,7 @@ export default {
});
},
//批量按钮判断
judgeBatchShow () {
judgeBatchShow() {
this.showBatch = false;
if (this.unitData.length > 1) {
let qllx = this.$route.query.sqywbm.substring(0, 3);
......@@ -75,7 +75,7 @@ export default {
}
},
//加载流程初始参数
flowInitParam () {
flowInitParam() {
var formdata = new FormData();
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("bestepid", this.bestepid);
......@@ -87,7 +87,7 @@ export default {
});
},
//流程环节操作按钮
operation (item) {
operation(item) {
//按钮 B0:选择不动产单元 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书 B7:证书领取 B8:楼盘表 B9:登簿
//操作按钮 登簿:record 转件:transfer 退回:back 退出:signout
let that = this;
......@@ -227,7 +227,7 @@ export default {
}
},
//发送下一个环节
sendToNext (obj) {
sendToNext(obj) {
const h = this.$createElement;
this.$msgbox({
title: "您确定转出吗?1",
......@@ -251,7 +251,12 @@ export default {
if (res.code === 200) {
instance.confirmButtonLoading = false;
this.$message.success("转件成功");
window.opener.location.reload(); //刷新父窗口
// window.opener.location.reload(); //刷新父窗口
if (window.opener && window.opener.getBpageList) {
window.opener.getBpageList();
} else {
window.opener.frames[0].getBpageList();
}
window.close();
this.$emit("input", false);
} else {
......@@ -271,7 +276,7 @@ export default {
});
});
},
sendToEnd () {
sendToEnd() {
let that = this
const h = this.$createElement;
this.$msgbox({
......@@ -291,7 +296,12 @@ export default {
instance.confirmButtonLoading = false;
that.$message.success("转件成功");
localStorage.setItem('transfer', true)
window.opener.location.reload(); //刷新父窗口
// window.opener.location.reload(); //刷新父窗口
if (window.opener && window.opener.getBpageList) {
window.opener.getBpageList();
} else {
window.opener.frames[0].getBpageList();
}
window.close();
that.$emit("input", false);
} else {
......@@ -312,7 +322,7 @@ export default {
})
},
//批量操作
handleBatchDel () {
handleBatchDel() {
let that = this;
this.$popup("批量删除", "workflow/components/batchDel", {
width: "50%",
......@@ -327,7 +337,7 @@ export default {
}
})
},
handleChange (file) {
handleChange(file) {
var formdata = new FormData();
formdata.append("file", file.raw);
formdata.append("bsmSldy", this.currentSelectProps.bsmSldy);
......@@ -341,7 +351,7 @@ export default {
})
},
// 上传
beforeUpload (file) {
beforeUpload(file) {
return true;
},
}
......
......@@ -4,14 +4,22 @@
<div class="topButton">
<!-- 左侧业务功能按钮 -->
<ul>
<li @click="operation(item)" v-for="(item, index) in leftButtonList" :key="index">
<li
@click="operation(item)"
v-for="(item, index) in leftButtonList"
:key="index"
>
<svg-icon class="icon" :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
</ul>
<!-- 右侧流程按钮 -->
<ul>
<li @click="operation(item)" v-for="(item, index) in rightButtonList" :key="index">
<li
@click="operation(item)"
v-for="(item, index) in rightButtonList"
:key="index"
>
<svg-icon class="icon" :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
......@@ -22,7 +30,12 @@
<div class="containerFrame">
<!-- 左侧菜单栏 -->
<div class="leftmenu" :class="{ 'animation-map-drawer': isShowdrawer }">
<el-menu :default-active="activeIndex" @select="batchUnitClick" class="title-batch" v-if="showBatch">
<el-menu
:default-active="activeIndex"
@select="batchUnitClick"
class="title-batch"
v-if="showBatch"
>
<el-menu-item index="-1" key="-1" class="menus">
<div>{{ batchButtonName }}</div>
</el-menu-item>
......@@ -30,28 +43,50 @@
<div v-if="this.isShowdrawer">
<div class="title">
申请单元列表({{ unitData.length }})
<el-button type="text" class="batchDel" @click="handleBatchDel" v-if="unitData.length > 1">批量删除</el-button>
<el-button
type="text"
class="batchDel"
@click="handleBatchDel"
v-if="unitData.length > 1"
>批量删除</el-button
>
</div>
<el-menu :default-active="activeIndex" @select="unitClick">
<el-menu-item v-for="(item, index) in unitData" :index="index.toString()" :key="index">
<el-menu-item
v-for="(item, index) in unitData"
:index="index.toString()"
:key="index"
>
<div>
<p>{{ item.bdcdyh }}</p>
<p class="title-detail">{{ item.zl }}</p>
</div>
<i class="el-icon-delete" v-if="unitData.length > 1" @click.stop="handleDel(item)"></i>
<i
class="el-icon-delete"
v-if="unitData.length > 1"
@click.stop="handleDel(item)"
></i>
</el-menu-item>
</el-menu>
</div>
<div class="map-drawer-click map-drawer" v-if="!isShowdrawer" @click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"></div>
<div class="map-drawer-expand map-drawer" v-else @click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"></div>
<div
class="map-drawer-click map-drawer"
v-if="!isShowdrawer"
@click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"
></div>
<div
class="map-drawer-expand map-drawer"
v-else
@click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"
></div>
</div>
<div class="leftCon">
<!-- 分屏左侧预览 -->
......@@ -61,45 +96,78 @@
<!-- 表单内容区域 -->
<div class="rightContainer">
<el-tabs v-model="tabName" :before-leave="beforeLeave">
<el-tab-pane :label="item.name" :name="item.value" v-for="item in tabList" :key="item.value">
<el-tab-pane
:label="item.name"
:name="item.value"
v-for="item in tabList"
:key="item.value"
>
</el-tab-pane>
</el-tabs>
<component :key="fresh" :is="componentTag" v-bind="currentSelectProps" />
<component
:key="fresh"
:is="componentTag"
v-bind="currentSelectProps"
/>
</div>
</div>
</div>
<!-- 打印模板需要此模块 -->
<object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" v-show="false">
<embed id="LODOP_EM" type="application/x-print-lodop" width=820 height=450 pluginspage="install_lodop32.exe" />
<object
id="LODOP_OB"
classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA"
v-show="false"
>
<embed
id="LODOP_EM"
type="application/x-print-lodop"
width="820"
height="450"
pluginspage="install_lodop32.exe"
/>
</object>
<el-upload class="fileUpdate" action="" :show-file-list="false" multiple :auto-upload="false"
:on-change="handleChange" :before-upload="beforeUpload">
<el-button id="cldr" icon="el-icon-upload" type="primary" v-show="false">上传</el-button>
<el-upload
class="fileUpdate"
action=""
:show-file-list="false"
multiple
:auto-upload="false"
:on-change="handleChange"
:before-upload="beforeUpload"
>
<el-button id="cldr" icon="el-icon-upload" type="primary" v-show="false"
>上传</el-button
>
</el-upload>
<selectBdc v-model="isDialog" :djywbm="$route.query.sqywbm" :isJump="true" @updateDialog="updateDialog" />
<selectBdc
v-model="isDialog"
:djywbm="$route.query.sqywbm"
:isJump="true"
@updateDialog="updateDialog"
/>
</div>
</template>
<style scoped lang='scss'>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
@import "./workFrame.scss";
</style>
<script>
import WorkFlow from "./mixin/index"
import publicFlow from "./mixin/public.js"
import WorkFlow from "./mixin/index";
import publicFlow from "./mixin/public.js";
import { getStepFormInfo } from "@/api/fqsq.js";
import { getForm } from './flowform'
import NoticeBar from '@/components/NoticeBar/index'
import { getForm } from "./flowform";
import NoticeBar from "@/components/NoticeBar/index";
import { deleteFlow, unClaimTask } from "@/api/ywbl.js";
import ProcessViewer from './components/processViewer.vue'
import ProcessViewer from "./components/processViewer.vue";
import selectBdc from "@/views/ywbl/ywsq/selectBdc.vue";
export default {
components: {
selectBdc,
NoticeBar,
ProcessViewer
ProcessViewer,
},
mixins: [WorkFlow, publicFlow],
data () {
data() {
return {
isDialog: false,
// 折叠
......@@ -131,42 +199,45 @@ export default {
//批量操作
showBatch: false,
//批量操作按钮名称
batchButtonName: '',
}
batchButtonName: "",
};
},
mounted () {
mounted() {
//添加页面监听事件
window.addEventListener('beforeunload', e => this.beforeunloadHandler(e))
window.addEventListener('unload', e => this.unloadHandler(e))
window.addEventListener("beforeunload", (e) => this.beforeunloadHandler(e));
window.addEventListener("unload", (e) => this.unloadHandler(e));
},
destroyed () {
window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e))
window.removeEventListener('unload', e => this.unloadHandler(e))
destroyed() {
window.removeEventListener("beforeunload", (e) =>
this.beforeunloadHandler(e)
);
window.removeEventListener("unload", (e) => this.unloadHandler(e));
},
methods: {
beforeunloadHandler () {
this._beforeUnload_time = new Date().getTime()
beforeunloadHandler() {
this._beforeUnload_time = new Date().getTime();
},
unloadHandler (e) {
this._gap_time = new Date().getTime() - this._beforeUnload_time
unloadHandler(e) {
this._gap_time = new Date().getTime() - this._beforeUnload_time;
//判断是窗口关闭还是刷新
if (this._gap_time <= 10) {
//取消认领
unClaimTask(this.bsmSlsq, this.bestepid)
unClaimTask(this.bsmSlsq, this.bestepid);
}
},
changeLoadIndex () {
this.loadIndex++
changeLoadIndex() {
this.loadIndex++;
},
closeDialog () {
this.myValue = false
closeDialog() {
this.myValue = false;
},
// 更新列表
updateDialog () {
updateDialog() {
this.loadBdcdylist();
},
// 删除左侧列表
handleDel (item) {
handleDel(item) {
this.$confirm("确定要删除吗, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
......@@ -193,7 +264,7 @@ export default {
});
},
//申请单元点击事件
stepForm (index) {
stepForm(index) {
getStepFormInfo(this.currentSelectProps).then((res) => {
if (res.code === 200) {
this.fresh++;
......@@ -201,9 +272,9 @@ export default {
this.tabList = res.result;
//默认加载第一个表单信息
this.tabName = res.result[0].value;
//批量操作无分屏按钮
//批量操作无分屏按钮
if (index != null) {
//处理分屏材料信息
//处理分屏材料信息
let that = this;
this.tabList.forEach(function (item, index) {
if (item.value == "clxx") {
......@@ -211,24 +282,24 @@ export default {
that.clxxForm = getForm(item.value, that.$route.query.sqywbm);
that.clxxTab = item;
}
})
});
}
}
})
});
},
//申请单元点击事件
unitClick (index) {
unitClick(index) {
this.currentSelectProps = this.unitData[index];
this.currentSelectProps.batchOperation = false;
this.activeIndex = index.toString();
this.stepForm(index);
},
//批量按钮点击事件
batchUnitClick () {
batchUnitClick() {
this.currentSelectProps.batchOperation = true;
this.activeIndex = "-1";
this.stepForm();
}
}
}
},
},
};
</script>
......
......@@ -4,14 +4,22 @@
<div class="topButton">
<!-- 左侧业务功能按钮 -->
<ul>
<li @click="operation(item)" v-for="(item, index) in leftButtonList" :key="index">
<li
@click="operation(item)"
v-for="(item, index) in leftButtonList"
:key="index"
>
<svg-icon :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
</ul>
<!-- 右侧流程按钮 -->
<ul>
<li @click="operation(item)" v-for="(item, index) in rightButtonList" :key="index">
<li
@click="operation(item)"
v-for="(item, index) in rightButtonList"
:key="index"
>
<svg-icon class="icon" :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
......@@ -25,7 +33,11 @@
<div v-if="this.isShowdrawer">
<div class="title">申请单元列表({{ unitData.length }})</div>
<el-menu :default-active="activeIndex" @select="unitClick">
<el-menu-item v-for="(item, index) in unitData" :index="index.toString()" :key="index">
<el-menu-item
v-for="(item, index) in unitData"
:index="index.toString()"
:key="index"
>
<div>
<p>{{ item.bdcdyh }}</p>
<p class="title-detail">{{ item.zl }}</p>
......@@ -33,16 +45,24 @@
</el-menu-item>
</el-menu>
</div>
<div class="map-drawer-click map-drawer" v-if="!isShowdrawer" @click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"></div>
<div class="map-drawer-expand map-drawer" v-else @click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"></div>
<div
class="map-drawer-click map-drawer"
v-if="!isShowdrawer"
@click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"
></div>
<div
class="map-drawer-expand map-drawer"
v-else
@click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"
></div>
</div>
<div class="leftCon">
<!-- 分屏左侧预览 -->
......@@ -52,42 +72,47 @@
<!-- 表单内容区域 -->
<div class="rightContainer">
<el-tabs v-model="tabName" :before-leave="beforeLeave">
<el-tab-pane :label="item.name" :name="item.value" v-for="(item, index) in tabList" :key="index">
<el-tab-pane
:label="item.name"
:name="item.value"
v-for="(item, index) in tabList"
:key="index"
>
</el-tab-pane>
</el-tabs>
<component :key="fresh" :is="componentTag" v-bind="currentSelectProps" />
<component
:key="fresh"
:is="componentTag"
v-bind="currentSelectProps"
/>
</div>
</div>
</div>
</div>
</template>
<style scoped lang='scss'>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
@import "./workFrame.scss";
</style>
<script>
import {
leftMenu,
stepExpandInfo,
getStepFormInfo
} from "@/api/fqsq.js"
import publicFlow from "./mixin/public.js"
import { leftMenu, stepExpandInfo, getStepFormInfo } from "@/api/fqsq.js";
import publicFlow from "./mixin/public.js";
import { popupDialog } from "@/utils/popup.js";
import NoticeBar from '@/components/NoticeBar/index'
import { getWorkFlowImage } from "@/api/workflow/jsydsyqFlow.js"
import NoticeBar from "@/components/NoticeBar/index";
import { getWorkFlowImage } from "@/api/workflow/jsydsyqFlow.js";
export default {
mixins: [publicFlow],
components: {
NoticeBar
NoticeBar,
},
data () {
data() {
return {
// 流程图
imgSrc: '',
imgSrc: "",
// 折叠
isShowdrawer: true,
// 默认选中
activeIndex: '0',
activeIndex: "0",
//受理申请标识码
bsmSlsq: this.$route.query.bsmSlsq,
//当前流程所在环节
......@@ -116,15 +141,16 @@ export default {
clxxIndex: "",
//材料信息选项卡对象
clxxTab: {},
}
};
},
mounted () {
mounted() {
this.loadBdcdylist();
this.flowInitParam();
},
methods: {
//加载流程初始参数
flowInitParam () {
flowInitParam() {
var formdata = new FormData();
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("bestepid", this.bestepid);
......@@ -134,34 +160,36 @@ export default {
this.leftButtonList = res.result.button;
this.rightButtonList = res.result.operation;
}
})
});
},
//流程环节操作按钮
operation (item) {
operation(item) {
//按钮 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书
//操作按钮 登簿:record 转件:transfer 退回:back 退出:signout
switch (item.value) {
case "B1":
getWorkFlowImage(this.bsmSlsq, this.$route.query.bestepid).then(res => {
let { result } = res
popupDialog("流程图", "workflow/components/processViewer", {
xml: result.xml,
finishedInfo: {
finishedTaskSet: result.finishedTaskSet,
unfinishedTaskSet: result.unfinishedTaskSet,
rejectedTaskSet: result.rejectedTaskSet,
finishedSequenceFlowSet: result.finishedSequenceFlowSet
},
allCommentList: result.historyTaskList
})
})
getWorkFlowImage(this.bsmSlsq, this.$route.query.bestepid).then(
(res) => {
let { result } = res;
popupDialog("流程图", "workflow/components/processViewer", {
xml: result.xml,
finishedInfo: {
finishedTaskSet: result.finishedTaskSet,
unfinishedTaskSet: result.unfinishedTaskSet,
rejectedTaskSet: result.rejectedTaskSet,
finishedSequenceFlowSet: result.finishedSequenceFlowSet,
},
allCommentList: result.historyTaskList,
});
}
);
break;
case "B5":
this.zsylFlag = true;
break;
case "B2": //材料分屏按钮
this.splitScreen = this.splitScreen ? false : true;
this.$store.dispatch('app/settScreen', this.splitScreen)
this.$store.dispatch("app/settScreen", this.splitScreen);
if (this.splitScreen) {
//如果当前选项卡为材料信息内容,递减到上一个选项卡内容
if (this.tabName == this.clxxTab.value) {
......@@ -179,7 +207,7 @@ export default {
}
},
//读取申请单元信息
loadBdcdylist () {
loadBdcdylist() {
var formdata = new FormData();
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("bestepid", this.bestepid);
......@@ -189,12 +217,12 @@ export default {
this.currentSelectProps = res.result[0];
this.unitClick(0);
}
})
});
},
//申请单元点击事件
unitClick (index) {
unitClick(index) {
this.currentSelectProps = this.unitData[index];
this.currentSelectProps.type = 'ONLY_READ';
this.currentSelectProps.type = "ONLY_READ";
getStepFormInfo(this.currentSelectProps).then((res) => {
if (res.code === 200) {
this.fresh++;
......@@ -203,8 +231,8 @@ export default {
//默认加载第一个表单信息
this.tabName = res.result[0].value;
}
})
}
}
}
</script>
\ No newline at end of file
});
},
},
};
</script>
......
<template>
<div class="from-clues">
<div class="from-clues-header">
<el-form :model="queryForm" ref="queryForm" @submit.native.prevent label-width="80px">
<el-form
:model="queryForm"
ref="queryForm"
@submit.native.prevent
label-width="80px"
>
<el-row>
<el-col :span="5">
<el-form-item label="业务来源" label-width="70px">
<el-select v-model="queryForm.ywly" class="width100" filterable
@change="handleSelect('ywly', 'ywlymc', 'ywly')" clearable placeholder="请选择业务来源">
<el-option v-for="item in dictData['ywly']" :key="item.dcode" :label="item.dname" :value="item.dcode">
<el-select
v-model="queryForm.ywly"
class="width100"
filterable
@change="handleSelect('ywly', 'ywlymc', 'ywly')"
clearable
placeholder="请选择业务来源"
>
<el-option
v-for="item in dictData['ywly']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="权利类型">
<el-select v-model="queryForm.qllx" class="width100" @change="handleSelect('A8', 'qllxmc', 'qllx')"
filterable clearable placeholder="请选择权利类型">
<el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode">
<el-select
v-model="queryForm.qllx"
class="width100"
@change="handleSelect('A8', 'qllxmc', 'qllx')"
filterable
clearable
placeholder="请选择权利类型"
>
<el-option
v-for="item in dictData['A8']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="登记类型">
<el-select v-model="queryForm.djlx" class="width100" @change="handleSelect('A21', 'djlxmc', 'djlx')"
filterable clearable placeholder="请选择登记类型">
<el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode">
<el-select
v-model="queryForm.djlx"
class="width100"
@change="handleSelect('A21', 'djlxmc', 'djlx')"
filterable
clearable
placeholder="请选择登记类型"
>
<el-option
v-for="item in dictData['A21']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="业务号">
<el-input placeholder="请输入业务号" v-model="queryForm.ywh" @clear="queryClick" clearable class="width100">
<el-input
placeholder="请输入业务号"
v-model="queryForm.ywh"
@clear="queryClick"
clearable
class="width100"
>
</el-input>
</el-form-item>
</el-col>
<el-col :span="4" class="btnColRight">
<el-form-item>
<el-button type="primary" native-type="submit" @click="queryClick">查询</el-button>
<el-button type="primary" native-type="submit" @click="queryClick"
>查询</el-button
>
<el-button @click="moreQueryClick">高级查询</el-button>
</el-form-item>
</el-col>
......@@ -49,40 +95,56 @@
<ul>
<li v-for="(item, index) in searchList" :key="index">
{{ item.name }}:{{ item.value }}
<i class="el-icon-circle-close" @click="handelItem(item, index)"></i>
<i
class="el-icon-circle-close"
@click="handelItem(item, index)"
></i>
</li>
</ul>
<el-button class="clean-btn" type="text" v-if="searchList.length > 0" @click.native="hanldeCleanAll">清除全部
<el-button
class="clean-btn"
type="text"
v-if="searchList.length > 0"
@click.native="hanldeCleanAll"
>清除全部
</el-button>
</el-row>
</el-form>
</div>
<div class="from-clues-content">
<lb-table :page-size="pageData.size" class="loadingtext" @sort-change="handleSort"
:current-page.sync="pageData.currentPage" :heightNum="295" :total="tableData.total"
@size-change="handleSizeChange" @p-current-change="handleCurrentChange" :column="tableData.columns"
:data="tableData.data">
<lb-table
:page-size="pageData.size"
class="loadingtext"
@sort-change="handleSort"
:current-page.sync="pageData.currentPage"
:heightNum="295"
:total="tableData.total"
@size-change="handleSizeChange"
@p-current-change="handleCurrentChange"
:column="tableData.columns"
:data="tableData.data"
>
</lb-table>
</div>
<searchBox v-model="isSearch" @getSearch="getSearch" />
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import searchBox from '../components/search.vue'
import table from "@/utils/mixin/table"
import searchMin from "../components/mixin/index"
import { datas, sendThis } from "./dbxdata"
import { searchTaskToDo, deleteFlow, claimTask } from "@/api/ywbl"
import { judgeUserTaskPermission } from "@/api/fqsq"
import { mapGetters } from "vuex";
import searchBox from "../components/search.vue";
import table from "@/utils/mixin/table";
import searchMin from "../components/mixin/index";
import { datas, sendThis } from "./dbxdata";
import { searchTaskToDo, deleteFlow, claimTask } from "@/api/ywbl";
import { judgeUserTaskPermission } from "@/api/fqsq";
export default {
name: "dbx",
components: { searchBox },
mixins: [table, searchMin],
computed: {
...mapGetters(['dictData', 'transfer'])
...mapGetters(["dictData", "transfer"]),
},
data () {
data() {
return {
queryForm: {
ywly: "",
......@@ -91,109 +153,127 @@ export default {
ywh: "",
},
searchForm: {
ywlymc: '',
qllxmc: '',
djlxmc: '',
ywh: ''
ywlymc: "",
qllxmc: "",
djlxmc: "",
ywh: "",
},
tableData: {
total: 0,
columns: datas.columns(),
data: [],
}
}
},
jumpid: "",
};
},
mounted () {
mounted() {
sendThis(this);
window["getBpageList"] = () => {
this.queryClick();
};
},
watch: {
queryForm: {
handler (newName, oldName) {
},
immediate: true
}
handler(newName, oldName) {},
immediate: true,
},
},
methods: {
// 列表渲染接口
queryClick () {
this.$startLoading()
this.searchForm.ywh = this.queryForm.ywh
this.iterationData()
searchTaskToDo({ ...this.queryForm, ...this.otherForm, ...this.pageData }).then(res => {
this.$endLoading()
queryClick() {
this.$startLoading();
this.searchForm.ywh = this.queryForm.ywh;
this.iterationData();
searchTaskToDo({
...this.queryForm,
...this.otherForm,
...this.pageData,
}).then((res) => {
this.$endLoading();
if (res.code === 200) {
let { total, records } = res.result
records.forEach(item => {
item.qlrmc = item.qlrmc.join(',')
item.ywh = item.ywh.join(',')
item.zl = item.zl.join(',')
item.fromstepdate = item.fromstepdate[0]
item.qlrmcStr = item.qlrmc ? String(item.qlrmc) : ''
item.ywrmcStr = item.ywrmc ? String(item.ywrmc) : ''
})
this.tableData.total = total ? total : 0
this.tableData.data = records ? records : []
let { total, records } = res.result;
records.forEach((item) => {
item.qlrmc = item.qlrmc.join(",");
item.ywh = item.ywh.join(",");
item.zl = item.zl.join(",");
item.fromstepdate = item.fromstepdate[0];
item.qlrmcStr = item.qlrmc ? String(item.qlrmc) : "";
item.ywrmcStr = item.ywrmc ? String(item.ywrmc) : "";
});
this.tableData.total = total ? total : 0;
this.tableData.data = records ? records : [];
}
})
});
},
handleSort (val) {
this.queryForm.sortField = val.prop
this.queryForm.sortOrder = val.order == "ascending" ? 'asc' : 'desc'
this.queryClick()
handleSort(val) {
this.queryForm.sortField = val.prop;
this.queryForm.sortOrder = val.order == "ascending" ? "asc" : "desc";
this.queryClick();
},
del (item) {
del(item) {
let formdata = new FormData();
formdata.append("bsmSlsq", item.bsmSlsq);
this.$confirm('确定要删除吗, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteFlow(formdata).then(res => {
if (res.code === 200) {
this.handleDel()
this.$message({
type: 'success',
message: '删除成功!'
});
this.queryClick()
} else {
this.$message.error(res.message);
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
this.$confirm("确定要删除吗, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deleteFlow(formdata).then((res) => {
if (res.code === 200) {
this.handleDel();
this.$message({
type: "success",
message: "删除成功!",
});
this.queryClick();
} else {
this.$message.error(res.message);
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
ywhClick (item) {
ywhClick(item) {
//判断用户是否拥有该任务的权限,若有则跳转,无权限则给予提示并刷新页面
judgeUserTaskPermission({
bsmSlsq: item.bsmSlsq,
bestepid: item.bestepid
}).then(res => {
bestepid: item.bestepid,
}).then((res) => {
if (res.code == 200) {
if (res.result) {
//有任务权限
const { href } = this.$router.resolve('/workFrame?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + '&sqywbm=' + item.djywbm);
window.open(href, '_blank');
const { href } = this.$router.resolve(
"/workFrame?bsmSlsq=" +
item.bsmSlsq +
"&bestepid=" +
item.bestepid +
"&bsmBusiness=" +
"&sqywbm=" +
item.djywbm
);
window.open(href, `urlname${item.bsmSlsq}`);
//从待办箱进入的调取任务领取接口
claimTask(item.bsmSlsq, item.bestepid)
claimTask(item.bsmSlsq, item.bestepid);
} else {
//无任务权限
this.$message.error("无该任务操作权限,或已被他人抢办,请重新操作")
this.$message.error("无该任务操作权限,或已被他人抢办,请重新操作");
//刷新页面
this.queryClick();
}
} else {
this.$message.error("用户任务权限判断失败,请联系管理员")
this.$message.error("用户任务权限判断失败,请联系管理员");
}
})
}
}
}
});
},
},
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
......