style:业务办理
Showing
7 changed files
with
255 additions
and
42 deletions
| ... | @@ -31,6 +31,14 @@ export const constantRoutes = [ | ... | @@ -31,6 +31,14 @@ export const constantRoutes = [ |
| 31 | hidden: true, | 31 | hidden: true, |
| 32 | meta: { title: '发起申请' } | 32 | meta: { title: '发起申请' } |
| 33 | }, | 33 | }, |
| 34 | // 业务流程框架 | ||
| 35 | { | ||
| 36 | path: '/workFramecs', | ||
| 37 | component: () => import('@/views/workflow/workFrame1.vue'), | ||
| 38 | name: 'workFramecs', | ||
| 39 | hidden: true, | ||
| 40 | meta: { title: '发起申请1' } | ||
| 41 | }, | ||
| 34 | // 业务流程只读框架 | 42 | // 业务流程只读框架 |
| 35 | { | 43 | { |
| 36 | path: '/workFrameView', | 44 | path: '/workFrameView', | ... | ... |
| ... | @@ -8,7 +8,7 @@ class data extends filter { | ... | @@ -8,7 +8,7 @@ class data extends filter { |
| 8 | constructor() { | 8 | constructor() { |
| 9 | super() | 9 | super() |
| 10 | } | 10 | } |
| 11 | columns() { | 11 | columns () { |
| 12 | return { | 12 | return { |
| 13 | //发证列表 | 13 | //发证列表 |
| 14 | fzgrid: [ | 14 | fzgrid: [ |
| ... | @@ -20,13 +20,6 @@ class data extends filter { | ... | @@ -20,13 +20,6 @@ class data extends filter { |
| 20 | { | 20 | { |
| 21 | prop: "bdcqzlx", | 21 | prop: "bdcqzlx", |
| 22 | label: "不动产权证类型", | 22 | label: "不动产权证类型", |
| 23 | // render: (h, scope) => { | ||
| 24 | // if (scope.row.bdcqzlx == "1") { | ||
| 25 | // return (<div>不动产权证书</div>) | ||
| 26 | // } else { | ||
| 27 | // return (<div>不动产登记证明</div>) | ||
| 28 | // } | ||
| 29 | // } | ||
| 30 | }, | 23 | }, |
| 31 | { | 24 | { |
| 32 | prop: "qllx", | 25 | prop: "qllx", |
| ... | @@ -82,13 +75,6 @@ class data extends filter { | ... | @@ -82,13 +75,6 @@ class data extends filter { |
| 82 | prop: "bdcqzlx", | 75 | prop: "bdcqzlx", |
| 83 | label: "不动产权证类型", | 76 | label: "不动产权证类型", |
| 84 | width: '120', | 77 | width: '120', |
| 85 | // render: (h, scope) => { | ||
| 86 | // if (scope.row.bdcqzlx == "1") { | ||
| 87 | // return (<div>不动产权证书</div>) | ||
| 88 | // } else { | ||
| 89 | // return (<div>不动产登记证明</div>) | ||
| 90 | // } | ||
| 91 | // } | ||
| 92 | }, | 78 | }, |
| 93 | { | 79 | { |
| 94 | prop: "qllx", | 80 | prop: "qllx", | ... | ... |
src/views/workflow/mixin/index.js
0 → 100644
This diff is collapsed.
Click to expand it.
| ... | @@ -4,14 +4,14 @@ | ... | @@ -4,14 +4,14 @@ |
| 4 | <div class="topButton"> | 4 | <div class="topButton"> |
| 5 | <!-- 左侧业务功能按钮 --> | 5 | <!-- 左侧业务功能按钮 --> |
| 6 | <ul> | 6 | <ul> |
| 7 | <li @click="operation(index, item)" v-for="(item, index) in leftButtonList" :key="index"> | 7 | <li @click="operation(item)" v-for="(item, index) in leftButtonList" :key="index"> |
| 8 | <svg-icon class="icon" :icon-class="item.icon" /> | 8 | <svg-icon class="icon" :icon-class="item.icon" /> |
| 9 | <span class="iconName">{{ item.name }}</span> | 9 | <span class="iconName">{{ item.name }}</span> |
| 10 | </li> | 10 | </li> |
| 11 | </ul> | 11 | </ul> |
| 12 | <!-- 右侧流程按钮 --> | 12 | <!-- 右侧流程按钮 --> |
| 13 | <ul> | 13 | <ul> |
| 14 | <li @click="operation(index, item)" v-for="(item, index) in rightButtonList" :key="index"> | 14 | <li @click="operation(item)" v-for="(item, index) in rightButtonList" :key="index"> |
| 15 | <svg-icon class="icon" :icon-class="item.icon" /> | 15 | <svg-icon class="icon" :icon-class="item.icon" /> |
| 16 | <span class="iconName">{{ item.name }}</span> | 16 | <span class="iconName">{{ item.name }}</span> |
| 17 | </li> | 17 | </li> |
| ... | @@ -231,24 +231,11 @@ export default { | ... | @@ -231,24 +231,11 @@ export default { |
| 231 | if (res.code === 200) { | 231 | if (res.code === 200) { |
| 232 | this.leftButtonList = res.result.button; | 232 | this.leftButtonList = res.result.button; |
| 233 | this.rightButtonList = res.result.operation; | 233 | this.rightButtonList = res.result.operation; |
| 234 | //this.tabList = res.result.form; | ||
| 235 | //默认选择第一个选项卡内容 | ||
| 236 | // this.tabName = res.result.form[0].value; | ||
| 237 | // let that = this; | ||
| 238 | // this.tabList.forEach(function (item, index) { | ||
| 239 | // if (item.value == "clxx") { | ||
| 240 | // that.clxxIndex = index; | ||
| 241 | // that.clxxForm = getForm(item.value, that.$route.query.sqywbm); | ||
| 242 | // that.clxxTab = item; | ||
| 243 | // } | ||
| 244 | // }); | ||
| 245 | // //默认加载第一个选项卡的组件内容 | ||
| 246 | // this.getFromRouter(res.result.form[0].value); | ||
| 247 | } | 234 | } |
| 248 | }); | 235 | }); |
| 249 | }, | 236 | }, |
| 250 | //流程环节操作按钮 | 237 | //流程环节操作按钮 |
| 251 | operation (index, item) { | 238 | operation (item) { |
| 252 | //按钮 B0:选择不动产单元 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书 B7:证书领取 B8:楼盘表 B9:登簿 | 239 | //按钮 B0:选择不动产单元 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书 B7:证书领取 B8:楼盘表 B9:登簿 |
| 253 | //操作按钮 登簿:record 转件:transfer 退回:back 退出:signout | 240 | //操作按钮 登簿:record 转件:transfer 退回:back 退出:signout |
| 254 | let that = this; | 241 | let that = this; |
| ... | @@ -350,9 +337,9 @@ export default { | ... | @@ -350,9 +337,9 @@ export default { |
| 350 | bestepid: this.bestepid, | 337 | bestepid: this.bestepid, |
| 351 | }).then((res) => { | 338 | }).then((res) => { |
| 352 | if (res.code === 200) { | 339 | if (res.code === 200) { |
| 353 | if(res.result){ | 340 | if (res.result) { |
| 354 | this.sendToNext(res.result); | 341 | this.sendToNext(res.result); |
| 355 | }else{ | 342 | } else { |
| 356 | this.sendToEnd(); | 343 | this.sendToEnd(); |
| 357 | } | 344 | } |
| 358 | } | 345 | } |
| ... | @@ -484,12 +471,6 @@ export default { | ... | @@ -484,12 +471,6 @@ export default { |
| 484 | }, | 471 | }, |
| 485 | //表单选项卡事件 | 472 | //表单选项卡事件 |
| 486 | beforeLeave (activeName, oldActiveName) { | 473 | beforeLeave (activeName, oldActiveName) { |
| 487 | // if (!_.isEqual(this.oldDetail, this.newDetail)) { | ||
| 488 | // this.$message.error('界面内容有所变化,请先保存') | ||
| 489 | // return false | ||
| 490 | // } else { | ||
| 491 | // if (activeName && activeName != 0) this.getFromRouter(activeName) | ||
| 492 | // } | ||
| 493 | if (activeName && activeName != 0) this.getFromRouter(activeName) | 474 | if (activeName && activeName != 0) this.getFromRouter(activeName) |
| 494 | }, | 475 | }, |
| 495 | //切换选项卡内容组件 | 476 | //切换选项卡内容组件 |
| ... | @@ -545,7 +526,7 @@ export default { | ... | @@ -545,7 +526,7 @@ export default { |
| 545 | }); | 526 | }); |
| 546 | }); | 527 | }); |
| 547 | }, | 528 | }, |
| 548 | sendToEnd() { | 529 | sendToEnd () { |
| 549 | const h = this.$createElement; | 530 | const h = this.$createElement; |
| 550 | this.$msgbox({ | 531 | this.$msgbox({ |
| 551 | title: "您确定转出吗?", | 532 | title: "您确定转出吗?", | ... | ... |
src/views/workflow/workFrame1.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div class="container"> | ||
| 3 | <!-- 顶部内容框 --> | ||
| 4 | <div class="topButton"> | ||
| 5 | <!-- 左侧业务功能按钮 --> | ||
| 6 | <ul> | ||
| 7 | <li @click="operation(item)" v-for="(item, index) in leftButtonList" :key="index"> | ||
| 8 | <svg-icon class="icon" :icon-class="item.icon" /> | ||
| 9 | <span class="iconName">{{ item.name }}</span> | ||
| 10 | </li> | ||
| 11 | </ul> | ||
| 12 | <!-- 右侧流程按钮 --> | ||
| 13 | <ul> | ||
| 14 | <li @click="operation(item)" v-for="(item, index) in rightButtonList" :key="index"> | ||
| 15 | <svg-icon class="icon" :icon-class="item.icon" /> | ||
| 16 | <span class="iconName">{{ item.name }}</span> | ||
| 17 | </li> | ||
| 18 | </ul> | ||
| 19 | <NoticeBar class="NoticeBar" :noticeList="noticeList" /> | ||
| 20 | </div> | ||
| 21 | <!-- 内容框架 --> | ||
| 22 | <div class="containerFrame"> | ||
| 23 | <!-- 左侧菜单栏 --> | ||
| 24 | <div class="leftmenu" :class="{ 'animation-map-drawer': isShowdrawer }"> | ||
| 25 | <div class="title" @click="unitClick(-1)">{{ batchButtonName }}</div> | ||
| 26 | <div v-if="this.isShowdrawer"> | ||
| 27 | <div class="title"> | ||
| 28 | 申请单元列表({{ unitData.length }}) | ||
| 29 | <el-button type="text" class="batchDel" @click="handleBatchDel" v-if="unitData.length > 1">批量删除</el-button> | ||
| 30 | </div> | ||
| 31 | <el-menu :default-active="activeIndex" @select="unitClick"> | ||
| 32 | <el-menu-item v-for="(item, index) in unitData" :index="index.toString()" :key="index"> | ||
| 33 | <div> | ||
| 34 | <p>{{ item.bdcdyh }}</p> | ||
| 35 | <p class="title-detail">{{ item.zl }}</p> | ||
| 36 | </div> | ||
| 37 | <i class="el-icon-delete" v-if="unitData.length > 1" @click.stop="handleDel(item)"></i> | ||
| 38 | </el-menu-item> | ||
| 39 | </el-menu> | ||
| 40 | </div> | ||
| 41 | <div class="map-drawer-click map-drawer" v-if="!isShowdrawer" @click=" | ||
| 42 | () => { | ||
| 43 | this.isShowdrawer = !this.isShowdrawer; | ||
| 44 | } | ||
| 45 | "></div> | ||
| 46 | <div class="map-drawer-expand map-drawer" v-else @click=" | ||
| 47 | () => { | ||
| 48 | this.isShowdrawer = !this.isShowdrawer; | ||
| 49 | } | ||
| 50 | "></div> | ||
| 51 | </div> | ||
| 52 | <div class="leftCon"> | ||
| 53 | <!-- 分屏左侧预览 --> | ||
| 54 | <div v-if="splitScreen" class="splitScreen-con"> | ||
| 55 | <component :is="clxxForm" v-bind="currentSelectProps" :key="fresh" /> | ||
| 56 | </div> | ||
| 57 | <!-- 表单内容区域 --> | ||
| 58 | <div class="rightContainer"> | ||
| 59 | <el-tabs v-model="tabName" :before-leave="beforeLeave"> | ||
| 60 | <el-tab-pane :label="item.name" :name="item.value" v-for="item in tabList" :key="item.value"> | ||
| 61 | </el-tab-pane> | ||
| 62 | </el-tabs> | ||
| 63 | <component :key="fresh" :is="componentTag" v-bind="currentSelectProps" /> | ||
| 64 | </div> | ||
| 65 | </div> | ||
| 66 | </div> | ||
| 67 | <fqsqDialog v-model="isDialog" :djywbm="$route.query.sqywbm" :isJump="true" @updateDialog="updateDialog" /> | ||
| 68 | </div> | ||
| 69 | </template> | ||
| 70 | <style scoped lang='scss'> | ||
| 71 | @import "~@/styles/mixin.scss"; | ||
| 72 | @import "./workFrame.scss"; | ||
| 73 | </style> | ||
| 74 | <script> | ||
| 75 | import { mapGetters } from "vuex" | ||
| 76 | import WorkFlow from "./mixin/index" | ||
| 77 | import { getStepFormInfo } from "@/api/fqsq.js"; | ||
| 78 | import NoticeBar from '@/components/NoticeBar/index' | ||
| 79 | import { deleteFlow, unClaimTask } from "@/api/ywbl.js"; | ||
| 80 | import ProcessViewer from './components/processViewer.vue' | ||
| 81 | import { getForm } from "./flowform.js"; | ||
| 82 | import fqsqDialog from "@/views/ywbl/ywsq/slectBdc.vue"; | ||
| 83 | export default { | ||
| 84 | components: { | ||
| 85 | fqsqDialog, | ||
| 86 | NoticeBar, | ||
| 87 | ProcessViewer | ||
| 88 | }, | ||
| 89 | mixins: [WorkFlow], | ||
| 90 | data () { | ||
| 91 | return { | ||
| 92 | noticeList: [], | ||
| 93 | isDialog: false, | ||
| 94 | // 流程图 | ||
| 95 | // 折叠 | ||
| 96 | isShowdrawer: true, | ||
| 97 | // 默认选中 | ||
| 98 | activeIndex: "0", | ||
| 99 | //受理申请标识码 | ||
| 100 | bsmSlsq: this.$route.query.bsmSlsq, | ||
| 101 | //当前流程所在环节 | ||
| 102 | bestepid: this.$route.query.bestepid, | ||
| 103 | //设置那个表单选中 | ||
| 104 | tabName: "", | ||
| 105 | //表单集合 | ||
| 106 | tabList: [], | ||
| 107 | //选择加载哪一个组件 | ||
| 108 | componentTag: "", | ||
| 109 | //设置表单传递数据 | ||
| 110 | currentSelectProps: {}, | ||
| 111 | //材料分屏表单 | ||
| 112 | clxxForm: "", | ||
| 113 | //材料信息选择卡索引 | ||
| 114 | clxxIndex: "", | ||
| 115 | //材料信息选项卡对象 | ||
| 116 | clxxTab: {}, | ||
| 117 | //页面监听时间 | ||
| 118 | _beforeUnload_time: "" | ||
| 119 | } | ||
| 120 | }, | ||
| 121 | mounted () { | ||
| 122 | //添加页面监听事件 | ||
| 123 | window.addEventListener('beforeunload', e => this.beforeunloadHandler(e)) | ||
| 124 | window.addEventListener('unload', e => this.unloadHandler(e)) | ||
| 125 | }, | ||
| 126 | destroyed () { | ||
| 127 | window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e)) | ||
| 128 | window.removeEventListener('unload', e => this.unloadHandler(e)) | ||
| 129 | }, | ||
| 130 | computed: { | ||
| 131 | ...mapGetters(["oldDetail", "newDetail"]) | ||
| 132 | }, | ||
| 133 | methods: { | ||
| 134 | beforeunloadHandler () { | ||
| 135 | this._beforeUnload_time = new Date().getTime() | ||
| 136 | }, | ||
| 137 | unloadHandler (e) { | ||
| 138 | thsi.$alert("234234"); | ||
| 139 | this._gap_time = new Date().getTime() - this._beforeUnload_time | ||
| 140 | //判断是窗口关闭还是刷新 | ||
| 141 | if (this._gap_time <= 10) { | ||
| 142 | //取消认领 | ||
| 143 | unClaimTask(this.bsmSlsq, this.bestepid) | ||
| 144 | } | ||
| 145 | }, | ||
| 146 | changeLoadIndex () { | ||
| 147 | this.loadIndex++ | ||
| 148 | }, | ||
| 149 | closeDialog () { | ||
| 150 | this.myValue = false | ||
| 151 | }, | ||
| 152 | // 更新列表 | ||
| 153 | updateDialog () { | ||
| 154 | this.loadBdcdylist(); | ||
| 155 | }, | ||
| 156 | // 删除左侧列表 | ||
| 157 | handleDel (item) { | ||
| 158 | this.$confirm("确定要删除吗, 是否继续?", "提示", { | ||
| 159 | confirmButtonText: "确定", | ||
| 160 | cancelButtonText: "取消", | ||
| 161 | type: "warning", | ||
| 162 | }) | ||
| 163 | .then(() => { | ||
| 164 | var formdata = new FormData(); | ||
| 165 | formdata.append("bsmSldyList", item.bsmSldy.split(",")); | ||
| 166 | formdata.append("bsmSlsq", this.bsmSlsq); | ||
| 167 | deleteFlow(formdata).then((res) => { | ||
| 168 | if (res.code == 200) { | ||
| 169 | this.$message.success("删除成功"); | ||
| 170 | this.loadBdcdylist(); | ||
| 171 | } else { | ||
| 172 | this.$message.error(res.message); | ||
| 173 | } | ||
| 174 | }); | ||
| 175 | }) | ||
| 176 | .catch(() => { | ||
| 177 | this.$message({ | ||
| 178 | type: "info", | ||
| 179 | message: "已取消删除", | ||
| 180 | }); | ||
| 181 | }); | ||
| 182 | }, | ||
| 183 | handleBatchDel () { | ||
| 184 | let that = this; | ||
| 185 | this.$popup({ | ||
| 186 | title: "批量删除", | ||
| 187 | width: "50%", | ||
| 188 | btnShow: true, | ||
| 189 | editItem: "workflow/components/batchDel", | ||
| 190 | height: "600px", | ||
| 191 | formData: { | ||
| 192 | bsmSlsq: this.bsmSlsq, | ||
| 193 | dataList: this.unitData, | ||
| 194 | }, | ||
| 195 | cancel: function () { }, //取消事件的回调 | ||
| 196 | confirm: function () { | ||
| 197 | that.loadBdcdylist(); | ||
| 198 | }, //确认事件的回调 | ||
| 199 | }); | ||
| 200 | }, | ||
| 201 | //申请单元点击事件 | ||
| 202 | unitClick (index) { | ||
| 203 | if (index >= 0) { | ||
| 204 | this.currentSelectProps = this.unitData[index]; | ||
| 205 | this.currentSelectProps.batchOperation = false; | ||
| 206 | } else { | ||
| 207 | this.currentSelectProps.batchOperation = true; | ||
| 208 | } | ||
| 209 | getStepFormInfo(this.currentSelectProps).then((res) => { | ||
| 210 | if (res.code === 200) { | ||
| 211 | this.fresh += 1; | ||
| 212 | //获取单元对应的所有表单信息 | ||
| 213 | this.tabList = res.result; | ||
| 214 | //默认加载第一个表单信息 | ||
| 215 | this.tabName = res.result[0].value; | ||
| 216 | //处理分屏材料信息 | ||
| 217 | let that = this; | ||
| 218 | this.tabList.forEach(function (item, index) { | ||
| 219 | if (item.value == "clxx") { | ||
| 220 | that.clxxIndex = index; | ||
| 221 | that.clxxForm = getForm(item.value, that.$route.query.sqywbm); | ||
| 222 | that.clxxTab = item; | ||
| 223 | } | ||
| 224 | }) | ||
| 225 | } | ||
| 226 | }) | ||
| 227 | }, | ||
| 228 | //表单选项卡事件 | ||
| 229 | beforeLeave (activeName, oldActiveName) { | ||
| 230 | if (activeName && activeName != 0) this.getFromRouter(activeName) | ||
| 231 | }, | ||
| 232 | //切换选项卡内容组件 | ||
| 233 | getFromRouter (tabname) { | ||
| 234 | this.componentTag = getForm(tabname, this.$route.query.sqywbm); | ||
| 235 | } | ||
| 236 | } | ||
| 237 | } | ||
| 238 | </script> |
| ... | @@ -170,6 +170,7 @@ export default { | ... | @@ -170,6 +170,7 @@ export default { |
| 170 | }, | 170 | }, |
| 171 | ywhClick (item) { | 171 | ywhClick (item) { |
| 172 | const { href } = this.$router.resolve('/workFrame?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + '&sqywbm=' + item.djywbm); | 172 | const { href } = this.$router.resolve('/workFrame?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + '&sqywbm=' + item.djywbm); |
| 173 | // const { href } = this.$router.resolve('/workFramecs?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + '&sqywbm=' + item.djywbm); | ||
| 173 | window.open(href, '_blank'); | 174 | window.open(href, '_blank'); |
| 174 | //从待办箱进入的调取任务领取接口 | 175 | //从待办箱进入的调取任务领取接口 |
| 175 | claimTask(item.bsmSlsq, item.bestepid) | 176 | claimTask(item.bsmSlsq, item.bestepid) | ... | ... |
-
Please register or sign in to post a comment