41264184 by 任超

feat:工作流

1 parent 79dfe818
<template>
<transition name="dialog-fade" mode="out-in" v-if="isShow">
<transition name="dialog-fade" mode="out-in" v-if="myShow">
<div class="ls-mask" v-loading="loading">
<div class="ls-mask-window" :style="{ 'width': width }">
<div class="ls-head">
......@@ -35,6 +35,7 @@ export default {
confirmText: '确认',
isSync: false,
isShow: false,
myShow: false,
titleStyle: 'center',
width: "75%",
height: "auto",
......@@ -47,10 +48,12 @@ export default {
loading: { type: Boolean, default: false },
},
watch: {
isShow (a, b) {
this.key++
isShow (newValue) {
this.editItem = this.loadViewFn(this.editItem)
document.body.appendChild(this.$el);
this.$nextTick(() => {
this.myShow = newValue
})
}
},
mounted () {
......
import Popup from '@/components/Popup/index'
export function popupDialog (title, url, params, width = '75%', height, btnShow = false, callback) {
Popup.install(title, url, {
height: height,
width: width,
formData: params,
btnShow: btnShow,
cancel: () => {
console.log("取消回调");
},
confirm: () => {
callback
}
})
}
\ No newline at end of file
......@@ -9,32 +9,9 @@
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox">
<div class="xxTableBox rollTable">
<table class="xxTable">
<tr v-for="(item, colindex) in columns.slice(0, 2)" :key="colindex">
<td>
{{ item.label }}
</td>
<td v-for="(row, index) in tableData" :key="index" :class="[
row.qszt == '2' ? 'lishi' : '',
row.qszt == '0' ? 'linshi' : '',
item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
]">
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
正在办理
</div>
<span v-if="item.prop == 'qszt'">
{{ getQsztName(row[item.prop]) }}
</span>
<span v-else> {{ row[item.prop] }}</span>
</td>
<td v-for="count in emptycolNum" :key="~count"></td>
</tr>
</table>
<table class="xxTable rollTable">
<tr v-for="(item, colindex) in columns.slice(3)" :key="colindex">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
{{ item.label }}
</td>
......@@ -91,8 +68,8 @@ export default {
}).then((res) => {
if (res.code === 200) {
this.tableData = res.result;
this.tableData.forEach((item,index) => {
if(item.sfbxf == '1'){
this.tableData.forEach((item, index) => {
if (item.sfbxf == '1') {
item.zxywh = '';
item.zxdbr = '';
item.zxsj = '';
......
......@@ -9,32 +9,9 @@
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox">
<div class="xxTableBox rollTable">
<table class="xxTable">
<tr v-for="(item, colindex) in columns.slice(0, 3)" :key="colindex">
<td>
{{ item.label }}
</td>
<td v-for="(row, index) in tableData" :key="index" :class="[
row.qszt == '2' ? 'lishi' : '',
row.qszt == '0' ? 'linshi' : '',
item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
]">
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
正在办理
</div>
<span v-if="item.prop == 'qszt'">
{{ getQsztName(row[item.prop]) }}
</span>
<span v-else> {{ row[item.prop] }}</span>
</td>
<td v-for="count in emptycolNum" :key="~count"></td>
</tr>
</table>
<table class="xxTable rollTable">
<tr v-for="(item, colindex) in columns.slice(3)" :key="colindex">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
{{ item.label }}
</td>
......
......@@ -9,31 +9,9 @@
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox">
<div class="xxTableBox rollTable">
<table class="xxTable">
<tr v-for="(item, colindex) in columns.slice(0, 3)" :key="colindex">
<td>
{{ item.label }}
</td>
<td v-for="(row, index) in tableData" :key="index" :class="[
row.qszt == '2' ? 'lishi' : '',
row.qszt == '0' ? 'linshi' : '',
item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
]">
<div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
正在办理
</div>
<span v-if="item.prop == 'qszt'">
{{ getQsztName(row[item.prop]) }}
</span>
<span v-else> {{ row[item.prop] }}</span>
</td>
<td v-for="count in emptycolNum" :key="~count"></td>
</tr>
</table>
<table class="xxTable rollTable">
<tr v-for="(item, colindex) in columns.slice(3)" :key="colindex">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
{{ item.label }}
</td>
......
......@@ -62,6 +62,7 @@ export default {
};
},
handleNodeClick (data, node, elem) {
console.log(data.form);
this.loadComponent(data.form);
},
loadComponent (form) {
......
......@@ -10,7 +10,6 @@
</div>
</div>
<div class="xxTableBox rollTable">
<!-- 固定前三个 -->
<table class="xxTable">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
......
......@@ -71,6 +71,7 @@
position: sticky;
top: 80px;
z-index: 3;
box-shadow: 0px 15px 10px -15px #409EFF;
}
tr td:first-child {
......
......@@ -9,8 +9,8 @@
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox">
<table class="xxTable rollTable">
<div class="xxTableBox rollTable">
<table class="xxTable">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
{{ item.label }}
......
......@@ -9,8 +9,8 @@
</el-checkbox-group>
</div>
</div>
<div class="xxTableBox">
<table class="xxTable rollTable">
<div class="xxTableBox rollTable">
<table class="xxTable">
<tr v-for="(item, colindex) in columns" :key="colindex">
<td>
{{ item.label }}
......
......@@ -24,7 +24,6 @@
<script>
import imgPath from "./djbyb.png"
export default {
components: {},
props: ["formData"],
created () {
......
<template>
<dialogBox
title="申请人信息"
width="60%"
isMain
v-model="myValue"
:isFullscreen="false"
@submitForm="submitForm"
@closeDialog="closeDialog"
>
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="120px"
>
<dialogBox title="申请人信息" width="60%" isMain v-model="myValue" :isFullscreen="false" @submitForm="submitForm"
@closeDialog="closeDialog">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px">
<el-row>
<el-col :span="8">
<el-form-item label="权利人类型" prop="sqrlx">
<el-select
clearable
v-model="ruleForm.sqrlx"
class="width100"
placeholder="请选择"
>
<el-option
v-for="item in dictData['A36']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode"
>
<el-select clearable v-model="ruleForm.sqrlx" class="width100" placeholder="请选择">
<el-option v-for="item in dictData['A36']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
......@@ -40,18 +18,8 @@
</el-col>
<el-col :span="8">
<el-form-item label="证件种类" prop="zjzl">
<el-select
clearable
v-model="ruleForm.zjzl"
class="width100"
placeholder="请选择"
>
<el-option
v-for="item in dictData['A30']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode"
>
<el-select clearable v-model="ruleForm.zjzl" class="width100" placeholder="请选择">
<el-option v-for="item in dictData['A30']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
......@@ -70,18 +38,8 @@
</el-col>
<el-col :span="8">
<el-form-item label="性别">
<el-select
clearable
v-model="ruleForm.xb"
class="width100"
placeholder="请选择"
>
<el-option
v-for="item in dictData['A43']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode"
>
<el-select clearable v-model="ruleForm.xb" class="width100" placeholder="请选择">
<el-option v-for="item in dictData['A43']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
......@@ -162,18 +120,8 @@
</el-col>
<el-col :span="8">
<el-form-item label="代理人证件类型">
<el-select
clearable
v-model="ruleForm.dlrzjlx"
class="width100"
placeholder="请选择"
>
<el-option
v-for="item in dictData['A30']"
:key="item.dcode"
:label="item.dname"
:value="item.dcode"
>
<el-select clearable v-model="ruleForm.dlrzjlx" class="width100" placeholder="请选择">
<el-option v-for="item in dictData['A30']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
</el-form-item>
......@@ -199,7 +147,7 @@ export default {
computed: {
...mapGetters(["dictData"]),
},
data() {
data () {
return {
myValue: this.value,
ruleForm: {
......@@ -232,7 +180,7 @@ export default {
};
},
watch: {
value(val) {
value (val) {
this.myValue = _.cloneDeep(val);
},
details: {
......@@ -243,11 +191,11 @@ export default {
},
},
methods: {
closeDialog() {
closeDialog () {
this.$emit("input", false);
this.$refs["ruleForm"].resetFields();
},
submitForm() {
submitForm () {
// this.$refs['ruleForm'].validate((valid) => {
// if (valid) {
// this.$message({
......
<template>
<div>
<lb-table :column="column" :maxHeight="300" heightNumSetting :pagination="false" :key="key" :data="tableData">
</lb-table>
</div>
<lb-table :column="column" :maxHeight="300" heightNumSetting :pagination="false" :key="key" :data="tableData">
</lb-table>
</template>
<script>
import addQlr from './addQlr.vue'
......@@ -35,17 +33,17 @@ export default {
tableDataList: [],
InformationTable: [
{
label: '序号',
type: 'index',
width: '50',
render: (h, scope) => {
return (
<div>
{scope.$index + 1}
</div>
)
}
},
label: '序号',
type: 'index',
width: '50',
render: (h, scope) => {
return (
<div>
{scope.$index + 1}
</div>
)
}
},
{
prop: "qllxmc",
label: "权利类型"
......
<template>
<div>
<lb-table :column="column" :maxHeight="300" heightNumSetting :pagination="false" :key="key" :data="tableData">
</lb-table>
</div>
<lb-table :column="column" :maxHeight="300" heightNumSetting :pagination="false" :key="key" :data="tableData">
</lb-table>
</template>
<script>
import addQlr from './addQlr.vue'
......
import { getWorkFlowImage } from "@/api/jsydsyqFlow.js";
import { popupDialog } from "@/utils/popup.js";
import {
leftMenu,
stepExpandInfo,
......@@ -86,23 +88,20 @@ export default {
let that = this;
switch (item.value) {
case "B0":
// let type = queueDjywmc(this.$route.query.sqywbm)
this.isDialog = true;
break;
case "B1":
getWorkFlowImage(this.bsmSlsq, this.$route.query.bestepid).then(res => {
let { result } = res
this.$popup("流程图", "workflow/components/processViewer", {
formData: {
xml: result.xml,
finishedInfo: {
finishedTaskSet: result.finishedTaskSet,
unfinishedTaskSet: result.unfinishedTaskSet,
rejectedTaskSet: result.rejectedTaskSet,
finishedSequenceFlowSet: result.finishedSequenceFlowSet
},
allCommentList: result.historyTaskList
}
popupDialog("流程图", "workflow/components/processViewer", {
xml: result.xml,
finishedInfo: {
finishedTaskSet: result.finishedTaskSet,
unfinishedTaskSet: result.unfinishedTaskSet,
rejectedTaskSet: result.rejectedTaskSet,
finishedSequenceFlowSet: result.finishedSequenceFlowSet
},
allCommentList: result.historyTaskList
})
})
break;
......@@ -123,50 +122,24 @@ export default {
}
break;
case "B4":
this.$popup("登记簿详情", "registerBook/djbFrame", {
formData: this.currentSelectProps,
width: "1220px",
height: "790px",
cancel: () => {
console.log("取消回调");
},
confirm: () => {
console.log("确认回调");
},
});
popupDialog("登记簿详情", "registerBook/djbFrame", this.currentSelectProps, '80%')
break;
case "B5":
this.$popup("证书预览", "workflow/components/zsyl", {
height: "600px",
width: "800px",
formData: {
bsmSlsq: this.bsmSlsq,
entryType: '1'
},
})
popupDialog("证书预览", "workflow/components/zsyl", {
bsmSlsq: this.bsmSlsq,
entryType: '1'
}, '800px')
break;
case "B7":
this.$popup("证书领取", "workflow/components/zslq", {
width: '900px',
formData: { bsmSlsq: this.$route.query.bsmSlsq },
formData: { bsmSlsq: this.$route.query.bsmSlsq }
})
break;
case "back": //退回按钮
this.$popup("退回", "workflow/components/th", {
height: "200px",
width: '30%',
formData: {
bsmSlsq: this.bsmSlsq,
bestepid: this.bestepid
},
btnShow: true,
cancel: () => {
console.log("取消回调");
},
confirm: () => {
console.log("确认回调");
},
})
popupDialog("退回", "workflow/components/th", {
bsmSlsq: this.bsmSlsq,
bestepid: this.bestepid
}, '30%', "200px", true,)
break;
case "transfer": //转件按钮
getNextLinkInfo({
......@@ -183,21 +156,10 @@ export default {
});
break;
case "stop": //终止按钮
this.$popup("终止", "workflow/components/stop", {
height: "330px",
width: '30%',
formData: {
bsmSlsq: this.bsmSlsq,
bestepid: this.bestepid,
},
btnShow: true,
cancel: () => {
console.log("取消回调");
},
confirm: () => {
console.log("确认回调");
},
})
popupDialog("终止", "workflow/components/stop", {
bsmSlsq: this.bsmSlsq,
bestepid: this.bestepid,
}, '30%', "330px", true)
break;
case "signout":
window.close();
......
......@@ -28,6 +28,7 @@
.title {
line-height: 36px;
text-align: center;
font-size: 14px;
}
.batchDel {
......@@ -45,7 +46,7 @@
ul {
position: relative;
height: calc(100vh - 120px);
overflow-y: scroll;
overflow-y: auto;
.xian {
background: #f2f2f2;
......
......@@ -178,11 +178,9 @@ export default {
},
handleBatchDel () {
let that = this;
this.$popup({
title: "批量删除",
this.$popup("批量删除", "workflow/components/batchDel", {
width: "50%",
btnShow: true,
editItem: "workflow/components/batchDel",
height: "600px",
formData: {
bsmSlsq: this.bsmSlsq,
......
......@@ -102,9 +102,6 @@ export default {
}
}
},
created () {
this.queryClick()
},
mounted () {
sendThis(this);
this.queryClick()
......