1c56475d by 田浩浩

修改相关流程功能

1 parent 511f79cf
......@@ -96,3 +96,12 @@ export function stepExpandInfo (data) {
data
})
}
// 登簿接口
export function record (data) {
return request({
url: '/business/workFlow/record',
method: 'post',
data
})
}
......
<template>
<div class="model">
<div class="mask">123</div>
<div class="model-dialog">
<div class="model-header">
<span>提示</span>
<a href="javascript:;" class="icon-close"></a>
</div>
<div class="model-body">
<div class="body">这是条消息</div>
</div>
<div class="model-footer">
<button class="btn">确认</button>
</div>
</div>
</div>
</template>
<style scoped lang='scss'>
//css部分
.mask {
position: fixed; //这里用固定定位,后面设置动画时才不受影响
top: 0;
height: 100%;
width: 100%;
background-color: rgba(167, 165, 165, 0.486);
opacity: 0.5;
z-index: 9;
}
.model-dialog {
position: absolute;
//让弹框居中显示
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: #fff;
border-radius: 12px;
width: 600px;
height: 300px;
border: 1px solid #f5f5f5;
overflow: hidden;
z-index: 10; //这里注意层级要比mask大,覆盖它
}
.model-header {
position: relative;
height: 50px;
padding-left: 10px;
padding-top: 10px;
font-size: 20px;
line-height: 50px;
background-color: #f5f5f5;
border-bottom: 1px solid rgb(177, 176, 176);
}
.model-body {
height: 150px;
line-height: 150px;
font-size: 28px;
text-align: center;
background-color: #fff;
}
.model-footer {
background-color: #f5f5f5;
height: 100px;
text-align: center;
line-height: 100px;
}
.btn {
width: 180px;
height: 40px;
border-radius: 8px;
background-color: rgb(180, 103, 103);
color: #fff;
font-size: 18px;
border: none;
}
.icon-close {
position: absolute; //如果不加绝对布局,图表显示不出来
background-color: pink;
right: 15px;
top: 16px;
width: 30px;
height: 30px;
z-index: 10;
//background: url("../assets/icon-close.png") no-repeat;
background-size: contain;
}
</style>
\ No newline at end of file
......@@ -166,7 +166,7 @@ export default {
text-align: center;
font-size: 24px;
display: block;
margin-bottom: 10px;
margin: 30px 0;
}
/deep/.el-form-item {
......
<template>
<div class='fqsq'>
<div class="fqsq">
<div class="fqsq-header">
<ul>
<li @click="operation(index, item)" v-for="(item, index) in headerleftList" :key="index">
<li
@click="operation(index, item)"
v-for="(item, index) in headerleftList"
:key="index"
>
<svg-icon :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
</ul>
<ul>
<li @click="operation(index, item)" v-for="(item, index) in headerRightList" :key="index">
<li
@click="operation(index, item)"
v-for="(item, index) in headerRightList"
:key="index"
>
<svg-icon class="icon" :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
......@@ -16,20 +24,30 @@
</div>
<div class="tabsList">
<div class="tabsList-left">
<div class="map-drawer-click" v-if='!isShowdrawer' @click="() => {
<div
class="map-drawer-click"
v-if="!isShowdrawer"
@click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}">
</div>
<div class="map-drawer-expand" v-else @click="() => {
}
"
></div>
<div
class="map-drawer-expand"
v-else
@click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}">
</div>
<ul v-if='this.isShowdrawer'>
<p class="title">受理单元列表({{unitData.length}})</p>
<div v-for='(item,index) in unitData' :key='index'>
<li @click='unitClick(item)'>
<p>{{item.bdcdyh}}</p>
<p>{{item.zl}}</p>
}
"
></div>
<ul v-if="this.isShowdrawer">
<p class="title">申请单元列表({{ unitData.length }})</p>
<div v-for="(item, index) in unitData" :key="index">
<li @click="unitClick(item)">
<p>{{ item.bdcdyh }}</p>
<p>{{ item.zl }}</p>
</li>
<div class="xian"></div>
</div>
......@@ -40,31 +58,54 @@
<p class="splitScreen tabsList-title">材料信息</p>
<div class="splitScreen"></div>
</div>
<el-tabs v-model="activeName" @tab-click='activeClick'>
<el-tab-pane :label="item.name" :name="item.value" v-for="(item, index) in tabList" :key="index">
<el-tabs v-model="activeName" @tab-click="activeClick">
<el-tab-pane
:label="item.name"
:name="item.value"
v-for="(item, index) in tabList"
:key="index"
>
<div class="splitScreen-con">
<component ref='slxx' v-if='index == 0' :is="editItem" :flag="flag" :key="key" />
<component ref='clxx' :is="editItem" v-else-if="index == 1" :key="key" />
<component
ref="slxx"
v-if="index == 0"
:is="editItem"
:flag="flag"
:key="key"
/>
<component
ref="clxx"
:is="editItem"
v-else-if="index == 1"
:key="key"
/>
<component :is="editItem" v-else :key="key" />
</div>
</el-tab-pane>
</el-tabs>
</div>
</div>
<zc ref="zcDialogRef" v-model="zcDialog" :queryForm='queryForm' />
<thDialog ref='thdialogRef' v-model="thflag" :taskId='taskId' :bsmBusiness='bsmBusiness' :queryForm='queryForm' />
<zsylDialog v-model='zsylFlag' />
<zc ref="zcDialogRef" v-model="zcDialog" :queryForm="queryForm" />
<thDialog
ref="thdialogRef"
v-model="thflag"
:taskId="taskId"
:bsmBusiness="bsmBusiness"
:queryForm="queryForm"
/>
<zsylDialog v-model="zsylFlag" />
</div>
</template>
<script>
import { leftMenu, stepExpandInfo } from "@/api/fqsq.js"
import zc from "./components/zc.vue"
import thDialog from "./components/th.vue"
import zsylDialog from './components/zsyl'
import { leftMenu, stepExpandInfo, record } from "@/api/fqsq.js";
import comMsg from "@/views/components/comMsg.vue";
import zc from "./components/zc.vue";
import thDialog from "./components/th.vue";
import zsylDialog from "./components/zsyl";
export default {
/**注册组件*/
components: { zc, thDialog, zsylDialog },
data () {
components: { zc, thDialog, zsylDialog, comMsg },
data() {
return {
zsylFlag: false,
zcDialog: false,
......@@ -78,10 +119,10 @@ export default {
flag: false,
headerleftList: [],
headerRightList: [],
activeName: 'slxx',
activeName: "slxx",
tabList1: [],
tabList: [],
editItem: '',
editItem: "",
issplitScreen: false,
unitData: [],
taskId: "",
......@@ -91,98 +132,113 @@ export default {
},
watch: {
activeName: {
handler (newName, oldName) {
this.editItem = this.loadView(newName)
handler(newName, oldName) {
this.editItem = this.loadView(newName);
},
immediate: true,
},
immediate: true
}
},
mounted () {
mounted() {
if (this.$route.query.bsmSlsq) {
this.expandInfo(this.$route.query.bsmSlsq, this.$route.query.bestepid);
this.list(this.$route.query.bsmSlsq)
this.queryForm.bsmSlsq = this.$route.query.bsmSlsq
this.queryForm.bestepid = this.$route.query.bestepid
this.list(this.$route.query.bsmSlsq);
this.queryForm.bsmSlsq = this.$route.query.bsmSlsq;
this.queryForm.bestepid = this.$route.query.bestepid;
}
},
methods: {
// 获取左侧列表
list (id) {
let that = this
that.id = id
list(id) {
let that = this;
that.id = id;
var formdata = new FormData();
formdata.append("bsmSlsq", id);
leftMenu(formdata).then(res => {
console.log(res, 'eeeeeeeeeeee');
leftMenu(formdata).then((res) => {
console.log(res, "eeeeeeeeeeee");
if (res.code === 200) {
this.unitData = res.result ? res.result : []
this.unitData = res.result ? res.result : [];
setTimeout(() => {
that.$refs?.slxx[0].list(that.unitData && that.unitData[0].bsmSldy)
this.taskId = that.unitData[0].taskId
this.bsmBusiness = that.unitData[0].bsmBusiness
that.$refs?.slxx[0].list(that.unitData && that.unitData[0].bsmSldy);
this.taskId = that.unitData[0].taskId;
this.bsmBusiness = that.unitData[0].bsmBusiness;
}, 300);
}
})
});
},
//获取环节扩展信息
expandInfo (bsmSlsq, bestepid) {
let that = this
expandInfo(bsmSlsq, bestepid) {
let that = this;
var formdata = new FormData();
formdata.append("bsmSlsq", bsmSlsq);
formdata.append("bestepid", bestepid);
stepExpandInfo(formdata).then(res => {
stepExpandInfo(formdata).then((res) => {
if (res.code === 200) {
this.tabList1 = [...res.result.form]
this.tabList1 = [...res.result.form];
this.tabList = res.result.form;
this.headerleftList = res.result.button;
this.headerRightList = res.result.operation;
}
})
});
},
activeClick (tab, event) {
if (tab.name == 'slxx') {
this.list(this.id)
activeClick(tab, event) {
if (tab.name == "slxx") {
this.list(this.id);
}
},
// 左侧列表点击调用接口
unitClick (item) {
this.taskId = item.taskId
this.bsmBusiness = item.bsmBusiness
unitClick(item) {
this.taskId = item.taskId;
this.bsmBusiness = item.bsmBusiness;
this.$nextTick(() => {
this.$refs.slxx[0].list(item.bsmSldy)
})
this.$refs.slxx[0].list(item.bsmSldy);
});
},
operation (index, item) {
if (item.value == 'zsyl') {
this.zsylFlag = true
} else if (item.value == 'clfp') {
this.key++
this.issplitScreen = !this.issplitScreen
this.flag = !this.flag
operation(index, item) {
switch (item.value) {
case "zsyl":
this.zsylFlag = true;
break;
case "clfp":
this.key++;
this.issplitScreen = !this.issplitScreen;
this.flag = !this.flag;
if (this.issplitScreen) {
this.tabList.splice(1, 1)
this.tabList.splice(1, 1);
} else {
this.tabList = [...this.tabList1]
this.tabList = [...this.tabList1];
}
} else if (item.value == 'th') {
this.thflag = true
break;
case "th":
this.thflag = true;
this.$nextTick(() => {
this.$refs.thdialogRef.tablelistFn()
})
this.$refs.thdialogRef.tablelistFn();
});
break;
case "zc":
this.zcDialog = true;
this.$refs.zcDialogRef.tablelistFn();
break;
case "tc":
window.close();
break;
case "db":
// comMsg;
var formdata = new FormData();
formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
formdata.append("bestepid", this.$route.query.bestepid);
record(formdata).then((res) => {
if (res.code === 200) {
}
else if (item.value == 'zc') {
this.zcDialog = true
this.$refs.zcDialogRef.tablelistFn()
} else if (item.value === 'tc') {
window.close()
});
break;
}
},
loadView (view) {
return r => require.ensure([], () => r(require(`./components/${view}.vue`)))
loadView(view) {
return (r) =>
require.ensure([], () => r(require(`./components/${view}.vue`)));
},
},
}
};
</script>
<style scoped lang='scss'>
@import "~@/styles/mixin.scss";
......@@ -222,7 +278,6 @@ export default {
background-color: #ffffff;
overflow: hidden;
.splitScreen {
min-width: 50%;
}
......@@ -231,7 +286,7 @@ export default {
@include flex;
width: 100%;
height: 80px;
background-color: #3498DB;
background-color: #3498db;
color: #ffffff;
justify-content: space-between;
padding-left: 15px;
......@@ -257,7 +312,6 @@ export default {
border-radius: 5px;
//color: $light-blue ;
.svg-icon {
//color: $light-blue ;
}
......@@ -268,7 +322,7 @@ export default {
.map-drawer-expand {
width: 20px;
height: 77px;
background: url('../../../image/right.png');
background: url("../../../image/right.png");
background-size: cover;
position: absolute;
right: 0%;
......@@ -280,7 +334,7 @@ export default {
.map-drawer-click {
width: 20px;
height: 77px;
background: url('../../../image/left.png');
background: url("../../../image/left.png");
background-size: cover;
position: absolute;
left: 0%;
......@@ -302,7 +356,7 @@ export default {
@include flex;
.tabsList-left {
border-right: 1px solid #EBEEF5;
border-right: 1px solid #ebeef5;
position: relative;
width: 250px;
box-sizing: border-box;
......@@ -311,7 +365,7 @@ export default {
position: relative;
.xian {
background: #F2F2F2;
background: #f2f2f2;
padding: 2px;
}
......@@ -328,8 +382,8 @@ export default {
}
li:hover {
color: #0F93F6;
cursor: pointer
color: #0f93f6;
cursor: pointer;
}
}
}
......@@ -337,7 +391,7 @@ export default {
.tabsList-right {
.fenpin {
min-width: 50%;
border-right: 1px solid #EBEEF5;
border-right: 1px solid #ebeef5;
}
background-color: #ffffff;
......