From bd63da40b4f5a5130bbb73fc654e7aaa25cacce6 Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期二, 10 十二月 2024 18:11:15 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/components/Process/panel/PropertiesPanel.vue | 88 ++++- src/views/projectEngineering/projectLibrary/index.vue | 9 src/assets/styles/index.scss | 4 src/store/modules/user.js | 6 src/views/flowable/task/myProcess/detail/index.vue | 70 ++++- vue.config.js | 2 src/layout/components/Navbar.vue | 2 .env.staging | 4 src/utils/request.js | 2 .env.development | 4 src/views/flowable/task/myProcess/send/index.vue | 23 + src/views/flowable/task/myProcess/detail/index1.vue | 201 +++++++++++++++ src/api/flowable/todo.js | 7 src/views/login.vue | 4 src/views/projectEngineering/projectLibrary/component/BasicInfo.vue | 4 package.json | 2 .env.production | 4 src/layout/components/AppMain.vue | 4 src/views/projectEngineering/abnormalProject/index.vue | 2 src/views/projectEngineering/projectLibrary/projectDetails.vue | 83 +++-- src/views/projectProcess/detail/index.vue | 246 +++++++++--------- src/views/projectProcess/index.vue | 2 22 files changed, 542 insertions(+), 231 deletions(-) diff --git a/.env.development b/.env.development index b573e4e..17348f4 100644 --- a/.env.development +++ b/.env.development @@ -1,10 +1,10 @@ # 椤甸潰鏍囬 -VUE_APP_TITLE = 灏勬椽椤圭洰绠$悊绯荤粺 +VUE_APP_TITLE = 灏勬椽鏅烘収椤圭洰绠$悊绯荤粺 # 寮�鍙戠幆澧冮厤缃� ENV = 'development' -# 灏勬椽椤圭洰绠$悊绯荤粺/寮�鍙戠幆澧� +# 灏勬椽鏅烘収椤圭洰绠$悊绯荤粺/寮�鍙戠幆澧� VUE_APP_BASE_API = '/dev-api' # 璺敱鎳掑姞杞� diff --git a/.env.production b/.env.production index 8332f47..7519423 100644 --- a/.env.production +++ b/.env.production @@ -1,10 +1,10 @@ # 椤甸潰鏍囬 -VUE_APP_TITLE = 灏勬椽椤圭洰绠$悊绯荤粺 +VUE_APP_TITLE = 灏勬椽鏅烘収椤圭洰绠$悊绯荤粺 # 鐢熶骇鐜閰嶇疆 ENV = 'production' -# 灏勬椽椤圭洰绠$悊绯荤粺/鐢熶骇鐜 +# 灏勬椽鏅烘収椤圭洰绠$悊绯荤粺/鐢熶骇鐜 VUE_APP_BASE_API = '/prod-api' # 寮�鎵撴柊鐨則ab鐨剈rl鍓嶇紑 diff --git a/.env.staging b/.env.staging index fc69d39..2042b60 100644 --- a/.env.staging +++ b/.env.staging @@ -1,5 +1,5 @@ # 椤甸潰鏍囬 -VUE_APP_TITLE = 灏勬椽椤圭洰绠$悊绯荤粺 +VUE_APP_TITLE = 灏勬椽鏅烘収椤圭洰绠$悊绯荤粺 BABEL_ENV = production @@ -8,5 +8,5 @@ # 娴嬭瘯鐜閰嶇疆 ENV = 'staging' -# 灏勬椽椤圭洰绠$悊绯荤粺/娴嬭瘯鐜 +# 灏勬椽鏅烘収椤圭洰绠$悊绯荤粺/娴嬭瘯鐜 VUE_APP_BASE_API = '/stage-api' diff --git a/package.json b/package.json index 22b2295..e8042cf 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ruoyi", "version": "3.8.8", - "description": "灏勬椽椤圭洰绠$悊绯荤粺", + "description": "灏勬椽鏅烘収椤圭洰绠$悊绯荤粺", "author": "灏勬椽椤圭洰", "license": "MIT", "scripts": { diff --git a/src/api/flowable/todo.js b/src/api/flowable/todo.js index 276977b..6354aeb 100644 --- a/src/api/flowable/todo.js +++ b/src/api/flowable/todo.js @@ -131,3 +131,10 @@ params: query }) } +// 娴佺▼鑺傜偣鏌ョ湅璇︽儏琛ㄥ崟 +export function flowTaskFormDetail(taskId) { + return request({ + url: '/flowable/task/detail/' + taskId, + method: 'get', + }) +} diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index 61bf7ef..074c329 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -139,6 +139,10 @@ //main-container鍏ㄥ眬鏍峰紡 .app-container { padding: 20px; + height: calc(100vh - 96px); + display: flex; + flex-direction: column; + box-sizing: border-box; } // search闈㈡澘鏍峰紡 diff --git a/src/components/Process/panel/PropertiesPanel.vue b/src/components/Process/panel/PropertiesPanel.vue index 5a4f9f1..959fc1a 100644 --- a/src/components/Process/panel/PropertiesPanel.vue +++ b/src/components/Process/panel/PropertiesPanel.vue @@ -6,28 +6,36 @@ <el-table-column label="灞炴�у��" prop="value" min-width="100px" show-overflow-tooltip /> <el-table-column label="鎿嶄綔" width="90px"> <template slot-scope="{ row, $index }"> - <el-button size="mini" type="text" @click="openAttributesForm(row, $index)">缂栬緫</el-button> - <el-divider direction="vertical" /> <el-button size="mini" type="text" style="color: #ff4d4f" @click="removeAttributes(row, $index)">绉婚櫎</el-button> </template> </el-table-column> </el-table> <div class="element-drawer__button"> - <el-button size="mini" type="primary" icon="el-icon-plus" @click="openAttributesForm(null, -1)">娣诲姞灞炴��</el-button> + <el-button size="mini" type="primary" icon="el-icon-setting" @click="openAttributesForm(null, -1)">灞炴�ц缃�</el-button> </div> <el-dialog :visible.sync="propertyFormModelVisible" title="灞炴�ч厤缃�" width="600px" append-to-body destroy-on-close> - <el-form :model="propertyForm" label-width="80px" size="mini" ref="attributeFormRef" @submit.native.prevent> - <el-form-item label="灞炴�у悕锛�" prop="name"> - <el-input v-model="propertyForm.name" clearable /> - </el-form-item> - <el-form-item label="灞炴�у�硷細" prop="value"> - <el-input v-model="propertyForm.value" clearable /> - </el-form-item> - </el-form> + <div v-for="item in canConfigPropertyList"> + <div v-if="item.vueType === 'switch'"> + <el-switch + v-model="item.value" + :inactive-text="item.name" + @change="(val) => item.method(item.name, val === true ? '鏄�' : '鍚�')" + active-color="#13ce66" + inactive-color="#ff4949"> + </el-switch> + </div> + </div> +<!-- <el-form :model="propertyForm" label-width="80px" size="mini" ref="attributeFormRef" @submit.native.prevent>--> +<!-- <el-form-item label="灞炴�у悕锛�" prop="name">--> +<!-- <el-input v-model="propertyForm.name" clearable />--> +<!-- </el-form-item>--> +<!-- <el-form-item label="灞炴�у�硷細" prop="value">--> +<!-- <el-input v-model="propertyForm.value" clearable />--> +<!-- </el-form-item>--> +<!-- </el-form>--> <template slot="footer"> - <el-button size="mini" @click="propertyFormModelVisible = false">鍙� 娑�</el-button> - <el-button size="mini" type="primary" @click="saveAttribute">纭� 瀹�</el-button> + <el-button size="mini" @click="propertyFormModelVisible = false">鍏� 闂�</el-button> </template> </el-dialog> </div> @@ -46,7 +54,19 @@ }, data() { return { - elementPropertyList: [], + canConfigPropertyList: [ + { + name: '璇ヨ妭鐐规槸瀹℃壒鑺傜偣', + value: false, + vueType: 'switch', + method: (name, value) => { + this.propertyForm.name = name + this.propertyForm.value = value + this.saveAttribute() + } + } + ], // 鍙互閰嶇疆鐨勫睘鎬у垪琛� + elementPropertyList: [], // 鎵╁睍灞炴�у垪琛� otherExtensionList: [], propertyForm: {}, editingPropertyIndex: -1, @@ -74,10 +94,20 @@ } return ex.$type === `flowable:Properties`; }) ?? []; - // 淇濆瓨鎵�鏈夌殑 鎵╁睍灞炴�у瓧娈� this.bpmnElementPropertyList = this.bpmnElementProperties.reduce((pre, current) => pre.concat(current.values), []); - // 澶嶅埗 鏄剧ず + + // 鍥炴樉 + this.canConfigPropertyList.forEach(item => { + const find = this.bpmnElementPropertyList.find(el => el.name === item.name); + if (find) { + if (item.vueType === 'switch') { + item.value = find.value === '鏄�' ? true : false + } + + } + }) + console.log(this.canConfigPropertyList, "杩欐槸浠�涔堥") this.elementPropertyList = JSON.parse(JSON.stringify(this.bpmnElementPropertyList ?? [])); }, openAttributesForm(attr, index) { @@ -114,15 +144,25 @@ value }); } else { - // 鏂板缓灞炴�у瓧娈� - const newPropertyObject = this.modelerStore.moddle.create(`flowable:Property`, { name, value }); - // 鏂板缓涓�涓睘鎬у瓧娈电殑淇濆瓨鍒楄〃 - const propertiesObject = this.modelerStore.moddle.create(`flowable:Properties`, { - values: this.bpmnElementPropertyList.concat([newPropertyObject]) - }); - this.updateElementExtensions(propertiesObject); + // 濡傛灉宸茬粡瀛樺湪杩欎釜灞炴��,灏卞仛淇敼 + const find = this.bpmnElementPropertyList.find(item => item.name === name); + if (find) { + this.modelerStore.modeling.updateModdleProperties(this.bpmnElement, this.bpmnElementPropertyList[this.bpmnElementPropertyList.indexOf(find)], { + name, + value + }); + } else { + // 鏂板缓灞炴�у瓧娈� + const newPropertyObject = this.modelerStore.moddle.create(`flowable:Property`, { name, value }); + // 鏂板缓涓�涓睘鎬у瓧娈电殑淇濆瓨鍒楄〃 + const propertiesObject = this.modelerStore.moddle.create(`flowable:Properties`, { + values: this.bpmnElementPropertyList.concat([newPropertyObject]) + }); + this.updateElementExtensions(propertiesObject); + } } - this.propertyFormModelVisible = false; + // this.propertyFormModelVisible = false; + this.$message.success("鎿嶄綔鎴愬姛") this.resetAttributesList(); }, updateElementExtensions(properties) { diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue index a25c562..9366fa8 100644 --- a/src/layout/components/AppMain.vue +++ b/src/layout/components/AppMain.vue @@ -29,7 +29,7 @@ <style lang="scss" scoped> .app-main { /* 50= navbar 50 */ - min-height: calc(100vh - 50px); + // min-height: calc(100vh - 50px); width: 100%; position: relative; overflow: hidden; @@ -42,7 +42,7 @@ .hasTagsView { .app-main { /* 84 = navbar + tags-view = 50 + 34 */ - min-height: calc(100vh - 84px); + min-height: calc(100vh - 96px); } .fixed-header + .app-main { diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 9a5141b..1155780 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -2,7 +2,7 @@ <div class="navbar"> <div class="ruoyi-logo"> <img src="@/assets/logo/logo.png" alt="" /> - <span>灏勬椽椤圭洰绠$悊绯荤粺</span> + <span>灏勬椽鏅烘収椤圭洰绠$悊绯荤粺</span> </div> <div class="right-menu flex align-center"> <template> diff --git a/src/store/modules/user.js b/src/store/modules/user.js index cdbab1e..115cb18 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -7,6 +7,7 @@ id: '', name: '', avatar: '', + deptId: null, roles: [], permissions: [] }, @@ -26,6 +27,9 @@ }, SET_ROLES: (state, roles) => { state.roles = roles + }, + SET_DEPT: (state, deptId) => { + state.deptId = deptId }, SET_PERMISSIONS: (state, permissions) => { state.permissions = permissions @@ -64,7 +68,9 @@ } commit('SET_ID', user.userId) commit('SET_NAME', user.userName) + commit('SET_DEPT', user.deptId) commit('SET_AVATAR', avatar) + resolve(res) }).catch(error => { reject(error) diff --git a/src/utils/request.js b/src/utils/request.js index ffb0d21..a7a9c08 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -17,7 +17,7 @@ // axios涓姹傞厤缃湁baseURL閫夐」锛岃〃绀鸿姹俇RL鍏叡閮ㄥ垎 baseURL: process.env.VUE_APP_BASE_API, // 瓒呮椂 - timeout: 10000 + timeout: 50000 }) // request鎷︽埅鍣� diff --git a/src/views/flowable/task/myProcess/detail/index.vue b/src/views/flowable/task/myProcess/detail/index.vue index f655c72..c797cb2 100644 --- a/src/views/flowable/task/myProcess/detail/index.vue +++ b/src/views/flowable/task/myProcess/detail/index.vue @@ -2,14 +2,18 @@ <div class="app-container"> <el-card class="box-card" > <div slot="header" class="clearfix"> - <span class="el-icon-document">宸插彂浠诲姟</span> + <span class="el-icon-document">宸插畬鎴愪换鍔�</span> <el-button style="float: right;" size="mini" type="danger" @click="goBack">鍏抽棴</el-button> </div> <el-tabs tab-position="top" v-model="activeName" @tab-click="handleClick"> <!--琛ㄥ崟淇℃伅--> <el-tab-pane label="琛ㄥ崟淇℃伅" name="1"> - <el-col :span="16" :offset="4"> - <v-form-render ref="vFormRef"/> + <el-col :span="16" :offset="4" v-if="formDataList && formDataList.length > 0"> + <div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp"> + <div v-if="formDataObj.current" style="margin-bottom: 15px;color: #409eff">褰撳墠闃舵锛�<span style="color: red">{{formDataObj.beforeNodeName}}</span></div> + <div v-else style="margin-bottom: 15px;color: #409eff">鍓嶇疆闃舵锛�<span style="color: #d5904b">{{formDataObj.beforeNodeName}}</span></div> + <v-form-render :form-data="formDataObj.formJson" :ref="'form' + index"/> + </div> </el-col> </el-tab-pane> <!--娴佺▼娴佽浆璁板綍--> @@ -70,6 +74,7 @@ <script> import {flowRecord} from "@/api/flowable/finished"; import {getProcessVariables, flowXmlAndNode} from "@/api/flowable/definition"; +import {flowTaskForm, flowTaskFormDetail} from "@/api/flowable/todo"; import BpmnViewer from '@/components/Process/viewer'; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; @@ -83,12 +88,14 @@ return { // 妯″瀷xml鏁版嵁 flowData: {}, + formDataList: [], // 琛ㄥ崟鍒楄〃 activeName: '1', // 鏌ヨ鍙傛暟 queryParams: {}, // 閬僵灞� loading: true, flowRecordList: [], // 娴佺▼娴佽浆鏁版嵁 + goBackParams: {}, taskForm:{ multiple: false, comment:"", // 鎰忚鍐呭 @@ -104,6 +111,7 @@ this.taskForm.deployId = this.$route.query && this.$route.query.deployId; this.taskForm.taskId = this.$route.query && this.$route.query.taskId; this.taskForm.procInsId = this.$route.query && this.$route.query.procInsId; + this.goBackParams = this.$route.query && this.$route.query.goBackParams; // 娴佺▼浠诲姟閲嶈幏鍙栧彉閲忚〃鍗� this.processVariables( this.taskForm.taskId) this.getFlowRecordList(this.taskForm.procInsId, this.taskForm.deployId); @@ -144,28 +152,47 @@ processVariables(taskId) { if (taskId) { // 鎻愪氦娴佺▼鐢宠鏃跺~鍐欑殑琛ㄥ崟瀛樺叆浜嗘祦绋嬪彉閲忎腑鍚庣画浠诲姟澶勭悊鏃堕渶瑕佸睍绀� - getProcessVariables(taskId).then(res => { - this.$nextTick(() => { - // 鍥炴樉琛ㄥ崟 - this.$refs.vFormRef.setFormJson(res.data.formJson); + flowTaskFormDetail(taskId).then(res => { + this.formDataList = res.data + if (this.formDataList && this.formDataList.length > 0) { this.$nextTick(() => { - // 鍔犺浇琛ㄥ崟濉啓鐨勬暟鎹� - this.$refs.vFormRef.setFormData(res.data); - this.$nextTick(() => { - // 琛ㄥ崟绂佺敤 - this.$refs.vFormRef.disableForm(); + this.formDataList.forEach((formDataObj, index) => { + console.log("琛ㄥ崟鏁版嵁鍒楄〃", formDataObj.formJson) + let that = this + console.log(eval("that.$refs.form" + index)[0]) + if (formDataObj.formJsonObj) { + eval("that.$refs.form" + index)[0].setFormJson(formDataObj.formJsonObj.formJson); + + eval("that.$refs.form" + index)[0].setFormData(formDataObj.formJsonObj); + this.$nextTick(() => { + eval("that.$refs.form" + index)[0].disableForm(); + }) + } }) + // this.formJson = this.formDataList[0].formJsonObj.formJson }) - }) + } + // this.$nextTick(() => { + // // 鍥炴樉琛ㄥ崟 + // this.$refs.vFormRef.setFormJson(res.data.formJson); + // this.$nextTick(() => { + // // 鍔犺浇琛ㄥ崟濉啓鐨勬暟鎹� + // this.$refs.vFormRef.setFormData(res.data); + // this.$nextTick(() => { + // // 琛ㄥ崟绂佺敤 + // this.$refs.vFormRef.disableForm(); + // }) + // }) + // }) }); } }, /** 杩斿洖椤甸潰 */ goBack() { - // // 鍏抽棴褰撳墠鏍囩椤靛苟杩斿洖涓婁釜椤甸潰 - // const obj = { path: "/task/process", query: { t: Date.now()} }; - // this.$tab.closeOpenPage(obj); - this.$tab.closePage() + this.$router.push({ + path: '/projectFlow/detail', + query: this.goBackParams + }) }, } }; @@ -198,4 +225,13 @@ .my-label { background: #E1F3D8; } + +.form-warp { + padding: 20px; + margin-bottom: 20px; + box-shadow: + inset 0 -3em 3em rgba(0, 0, 0, 0.1), + 0 0 0 2px rgb(239, 239, 239), + 0.3em 0.3em 1em rgba(0, 0, 0, 0.3); +} </style> diff --git a/src/views/flowable/task/myProcess/detail/index1.vue b/src/views/flowable/task/myProcess/detail/index1.vue new file mode 100644 index 0000000..f655c72 --- /dev/null +++ b/src/views/flowable/task/myProcess/detail/index1.vue @@ -0,0 +1,201 @@ +<template> + <div class="app-container"> + <el-card class="box-card" > + <div slot="header" class="clearfix"> + <span class="el-icon-document">宸插彂浠诲姟</span> + <el-button style="float: right;" size="mini" type="danger" @click="goBack">鍏抽棴</el-button> + </div> + <el-tabs tab-position="top" v-model="activeName" @tab-click="handleClick"> + <!--琛ㄥ崟淇℃伅--> + <el-tab-pane label="琛ㄥ崟淇℃伅" name="1"> + <el-col :span="16" :offset="4"> + <v-form-render ref="vFormRef"/> + </el-col> + </el-tab-pane> + <!--娴佺▼娴佽浆璁板綍--> + <el-tab-pane label="娴佽浆璁板綍" name="2"> + <el-col :span="16" :offset="4" > + <div class="block"> + <el-timeline> + <el-timeline-item + v-for="(item,index ) in flowRecordList" + :key="index" + :icon="setIcon(item.finishTime)" + :color="setColor(item.finishTime)" + > + <p style="font-weight: 700">{{item.taskName}}</p> + <el-card :body-style="{ padding: '10px' }"> + <el-descriptions class="margin-top" :column="1" size="small" border> + <el-descriptions-item v-if="item.assigneeName" label-class-name="my-label"> + <template slot="label"><i class="el-icon-user"></i>鍔炵悊浜�</template> + {{item.assigneeName}} + <el-tag type="info" size="mini">{{item.deptName}}</el-tag> + </el-descriptions-item> + <el-descriptions-item v-if="item.candidate" label-class-name="my-label"> + <template slot="label"><i class="el-icon-user"></i>鍊欓�夊姙鐞�</template> + {{item.candidate}} + </el-descriptions-item> + <el-descriptions-item label-class-name="my-label"> + <template slot="label"><i class="el-icon-date"></i>鎺ユ敹鏃堕棿</template> + {{item.createTime}} + </el-descriptions-item> + <el-descriptions-item v-if="item.finishTime" label-class-name="my-label"> + <template slot="label"><i class="el-icon-date"></i>澶勭悊鏃堕棿</template> + {{item.finishTime}} + </el-descriptions-item> + <el-descriptions-item v-if="item.duration" label-class-name="my-label"> + <template slot="label"><i class="el-icon-time"></i>鑰楁椂</template> + {{item.duration}} + </el-descriptions-item> + <el-descriptions-item v-if="item.comment" label-class-name="my-label"> + <template slot="label"><i class="el-icon-tickets"></i>澶勭悊鎰忚</template> + {{item.comment.comment}} + </el-descriptions-item> + </el-descriptions> + </el-card> + </el-timeline-item> + </el-timeline> + </div> + </el-col> + </el-tab-pane> + <!--娴佺▼鍥�--> + <el-tab-pane label="娴佺▼鍥�" name="3"> + <bpmn-viewer :flowData="flowData" :procInsId="taskForm.procInsId"/> + </el-tab-pane> + </el-tabs> + </el-card> + </div> +</template> + +<script> +import {flowRecord} from "@/api/flowable/finished"; +import {getProcessVariables, flowXmlAndNode} from "@/api/flowable/definition"; +import BpmnViewer from '@/components/Process/viewer'; +import "@riophae/vue-treeselect/dist/vue-treeselect.css"; + +export default { + name: "Record", + components: { + BpmnViewer + }, + props: {}, + data() { + return { + // 妯″瀷xml鏁版嵁 + flowData: {}, + activeName: '1', + // 鏌ヨ鍙傛暟 + queryParams: {}, + // 閬僵灞� + loading: true, + flowRecordList: [], // 娴佺▼娴佽浆鏁版嵁 + taskForm:{ + multiple: false, + comment:"", // 鎰忚鍐呭 + procInsId: "", // 娴佺▼瀹炰緥缂栧彿 + instanceId: "", // 娴佺▼瀹炰緥缂栧彿 + deployId: "", // 娴佺▼瀹氫箟缂栧彿 + taskId: "" ,// 娴佺▼浠诲姟缂栧彿 + procDefId: "", // 娴佺▼缂栧彿 + }, + }; + }, + created() { + this.taskForm.deployId = this.$route.query && this.$route.query.deployId; + this.taskForm.taskId = this.$route.query && this.$route.query.taskId; + this.taskForm.procInsId = this.$route.query && this.$route.query.procInsId; + // 娴佺▼浠诲姟閲嶈幏鍙栧彉閲忚〃鍗� + this.processVariables( this.taskForm.taskId) + this.getFlowRecordList(this.taskForm.procInsId, this.taskForm.deployId); + }, + methods: { + handleClick(tab, event) { + if (tab.name === '3'){ + flowXmlAndNode({procInsId:this.taskForm.procInsId,deployId:this.taskForm.deployId}).then(res => { + this.flowData = res.data; + }) + } + }, + setIcon(val) { + if (val) { + return "el-icon-check"; + } else { + return "el-icon-time"; + } + }, + setColor(val) { + if (val) { + return "#2bc418"; + } else { + return "#b3bdbb"; + } + }, + /** 娴佺▼娴佽浆璁板綍 */ + getFlowRecordList(procInsId, deployId) { + const that = this + const params = {procInsId: procInsId, deployId: deployId} + flowRecord(params).then(res => { + that.flowRecordList = res.data.flowList; + }).catch(res => { + this.goBack(); + }) + }, + /** 鑾峰彇娴佺▼鍙橀噺鍐呭 */ + processVariables(taskId) { + if (taskId) { + // 鎻愪氦娴佺▼鐢宠鏃跺~鍐欑殑琛ㄥ崟瀛樺叆浜嗘祦绋嬪彉閲忎腑鍚庣画浠诲姟澶勭悊鏃堕渶瑕佸睍绀� + getProcessVariables(taskId).then(res => { + this.$nextTick(() => { + // 鍥炴樉琛ㄥ崟 + this.$refs.vFormRef.setFormJson(res.data.formJson); + this.$nextTick(() => { + // 鍔犺浇琛ㄥ崟濉啓鐨勬暟鎹� + this.$refs.vFormRef.setFormData(res.data); + this.$nextTick(() => { + // 琛ㄥ崟绂佺敤 + this.$refs.vFormRef.disableForm(); + }) + }) + }) + }); + } + }, + /** 杩斿洖椤甸潰 */ + goBack() { + // // 鍏抽棴褰撳墠鏍囩椤靛苟杩斿洖涓婁釜椤甸潰 + // const obj = { path: "/task/process", query: { t: Date.now()} }; + // this.$tab.closeOpenPage(obj); + this.$tab.closePage() + }, + } +}; +</script> +<style lang="scss" scoped> +.test-form { + margin: 15px auto; + width: 800px; + padding: 15px; +} + +.clearfix:before, +.clearfix:after { + display: table; + content: ""; +} +.clearfix:after { + clear: both +} + +.box-card { + width: 100%; + margin-bottom: 20px; +} + +.el-tag + .el-tag { + margin-left: 10px; +} + +.my-label { + background: #E1F3D8; +} +</style> diff --git a/src/views/flowable/task/myProcess/send/index.vue b/src/views/flowable/task/myProcess/send/index.vue index d0b86cd..b235359 100644 --- a/src/views/flowable/task/myProcess/send/index.vue +++ b/src/views/flowable/task/myProcess/send/index.vue @@ -10,7 +10,10 @@ <el-tab-pane label="琛ㄥ崟淇℃伅" name="1"> <!--鍒濆鍖栨祦绋嬪姞杞借〃鍗曚俊鎭�--> <el-col :span="16" :offset="4" v-if="formDataList && formDataList.length > 0"> - <div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp"> + <div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp" style="position: relative"> + <div v-if="!formDataObj.current" style="position: absolute; top: 2px; right: 2px"> + <el-button type="danger" disabled>椹冲洖(鍔熻兘寮�鍙戜腑)</el-button> + </div> <div v-if="formDataObj.current" style="margin-bottom: 15px;color: #409eff">褰撳墠闃舵锛�<span style="color: red">{{formDataObj.beforeNodeName}}</span></div> <div v-else style="margin-bottom: 15px;color: #409eff">鍓嶇疆闃舵锛�<span style="color: #d5904b">{{formDataObj.beforeNodeName}}</span></div> <v-form-render :form-data="formDataObj.formJson" :ref="'form' + index"/> @@ -19,8 +22,8 @@ <!-- <v-form-render :form-data="formRenderData" ref="vFormRef"/>--> <div style="display: flex;justify-content: center; align-items: center; margin: 20px 0"> <el-button type="primary" @click="submitForm">纭骞舵彁浜�</el-button> - <el-button type="primary" @click="submitForm">鍗忓悓鍔炵悊</el-button> - <el-button type="primary" @click="submitForm">杞氦浠栦汉鍔炵悊</el-button> + <el-button type="primary" disabled @click="submitForm">鍗忓悓鍔炵悊(鍔熻兘寮�鍙戜腑)</el-button> + <el-button type="primary" disabled @click="submitForm">杞氦浠栦汉鍔炵悊(鍔熻兘寮�鍙戜腑)</el-button> <!-- <el-button type="primary" @click="resetForm">閲� 缃�</el-button>--> </div> </el-col> @@ -62,7 +65,8 @@ props: {}, data() { return { - formDataList: [], + goBackParams: {}, + formDataList: [], // 琛ㄥ崟鍒楄〃 taskId: '', processName: '', // 妯″瀷xml鏁版嵁 @@ -96,6 +100,7 @@ this.taskId = this.$route.query && this.$route.query.taskId; // 鍒濆鍖栬〃鍗� this.procDefId = this.$route.query && this.$route.query.procDefId; + this.goBackParams = this.$route.query && this.$route.query.goBackParams; // this.getNextFlowNodeByStart(this.deployId); this.getFlowFormData(this.taskId); }, @@ -112,8 +117,6 @@ const params = {taskId: taskId} flowTaskForm(params).then(res => { this.formDataList = res.data - // this.formRenderDataList = res.data.map(item => item.formJson) - // console.log("琛ㄥ崟鏁版嵁鍒楄〃", this.formRenderDataList) if (this.formDataList && this.formDataList.length > 0) { this.$nextTick(() => { this.formDataList.forEach((formDataObj, index) => { @@ -154,10 +157,10 @@ }, /** 杩斿洖椤甸潰 */ goBack() { - // // 鍏抽棴褰撳墠鏍囩椤靛苟杩斿洖涓婁釜椤甸潰 - // const obj = { path: "/task/process", query: { t: Date.now()} }; - // this.$tab.closeOpenPage(obj); - this.$tab.closePage() + this.$router.push({ + path: '/projectFlow/detail', + query: this.goBackParams + }) }, /** 鐢宠娴佺▼琛ㄥ崟鏁版嵁鎻愪氦 */ submitForm() { diff --git a/src/views/login.vue b/src/views/login.vue index e1f97cb..1794448 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -2,11 +2,11 @@ <div class="login"> <div class="nav"> <img alt="" src="../assets/images/bj.png" /> - <div class="ml-[10px]">灏勬椽甯傞」鐩鐞嗙郴缁�</div> + <div class="ml-[10px]">灏勬椽鏅烘収椤圭洰绠$悊绯荤粺</div> </div> <div class="conter"> <div class="left"> - <div class="title">灏勬椽甯傞」鐩鐞嗙郴缁�</div> + <div class="title">灏勬椽鏅烘収椤圭洰绠$悊绯荤粺</div> <div> 杩愮敤绯荤粺鐨勮鐐广�佹柟娉曞拰鐞嗚锛屽椤圭洰娑夊強鐨勫叏閮ㄥ伐浣滆繘琛屾湁鏁堝湴绠$悊 </div> diff --git a/src/views/projectEngineering/abnormalProject/index.vue b/src/views/projectEngineering/abnormalProject/index.vue index 3e8245b..4118f26 100644 --- a/src/views/projectEngineering/abnormalProject/index.vue +++ b/src/views/projectEngineering/abnormalProject/index.vue @@ -182,7 +182,7 @@ v-loading="loading" :data="projectInfoList" @selection-change="handleSelectionChange" - height="60vh" + height="100%" sortable="custom" :show-overflow-tooltip="true"> <el-table-column type="selection" width="55" align="center"/> diff --git a/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue b/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue index 7b6c23b..0dade99 100644 --- a/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue +++ b/src/views/projectEngineering/projectLibrary/component/BasicInfo.vue @@ -304,6 +304,7 @@ import {approvalList} from "@/api/system/dept"; export default { + name: 'BasicInfo', dicts: ['sys_funding_type', 'sys_investment_type', 'sys_project_type', 'sys_project_status', 'sys_competent_department' , 'sys_administrative_divisions', 'sys_centralized_management', 'sys_approval_type', 'sys_key_categories', 'sys_annual_plan'], components: { @@ -428,9 +429,10 @@ this.approvalList = res.data; }); }, - submit() { + submit(usedStatus) { this.$refs["projectForm"].validate(valid => { if (valid) { + this.projectForm.usedStatus = usedStatus; if (this.projectForm.id) { updateProject(this.projectForm).then(response => { this.$modal.msgSuccess("淇敼鎴愬姛"); diff --git a/src/views/projectEngineering/projectLibrary/index.vue b/src/views/projectEngineering/projectLibrary/index.vue index 0cb0ff6..f21bbdb 100644 --- a/src/views/projectEngineering/projectLibrary/index.vue +++ b/src/views/projectEngineering/projectLibrary/index.vue @@ -196,13 +196,14 @@ v-loading="loading" :data="projectInfoList" @selection-change="handleSelectionChange" - height="60vh" + height="100%" sortable="custom" :show-overflow-tooltip="true"> <el-table-column type="selection" width="55" align="center"/> <!-- 鍔ㄦ�佸垪 --> <el-table-column v-for="item in columns" + :key="item.id" v-if="item.visible" :prop="item.id" :label="item.label" @@ -274,7 +275,7 @@ <pagination v-show="total>0" :total="total" - :page.sync="queryParams.pageNum" + :page.sync="queryParams.currentPage" :limit.sync="queryParams.pageSize" @pagination="getList" /> @@ -338,7 +339,7 @@ timeRange: [], // 鏌ヨ鍙傛暟 queryParams: { - pageNum: 1, + currentPage: 1, pageSize: 10, projectName: null, projectCode: null, @@ -532,7 +533,7 @@ }, /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { - this.queryParams.pageNum = 1; + this.queryParams.currentPage = 1; this.getList(); }, /** 閲嶇疆鎸夐挳鎿嶄綔 */ diff --git a/src/views/projectEngineering/projectLibrary/projectDetails.vue b/src/views/projectEngineering/projectLibrary/projectDetails.vue index 6494775..46e1b6b 100644 --- a/src/views/projectEngineering/projectLibrary/projectDetails.vue +++ b/src/views/projectEngineering/projectLibrary/projectDetails.vue @@ -1,5 +1,5 @@ <template> - <el-card class="card-container" > + <el-card class="card-container"> <div class="flex-container mb-4"> <el-tabs v-model="currentTab" @tab-click="handleClick" v-show="isShow"> <el-tab-pane @@ -24,7 +24,16 @@ class="full-width custom-height" /> <div v-if="!disabled" class="button-container"> - <el-button class="save-button" type="primary" @click="submit">淇濆瓨</el-button> + <el-button + v-if="componentName.name == 'BasicInfo'" + class="save-button" + type="primary" + @click="submit(0)" + >鑽夌</el-button + > + <el-button class="save-button" type="primary" @click="submit(1)" + >淇濆瓨</el-button + > <el-button class="reset-button" @click="reset">閲嶇疆</el-button> <!-- <el-button v-else class="cancel-button" @click="cancel">鍙栨秷</el-button> --> </div> @@ -32,53 +41,53 @@ </template> <script> -import BasicInfo from '@/views/projectEngineering/projectLibrary/component/BasicInfo'; -import InvestInfo from '@/views/projectEngineering/projectLibrary/component/InvestInfo'; -import InvestmentFunds from '@/views/projectEngineering/projectLibrary/component/investmentFunds'; -import LegalPerson from '@/views/projectEngineering/projectLibrary/component/legalPerson'; -import PolicyInfo from '@/views/projectEngineering/projectLibrary/component/PolicyInfo'; -import DocumentsInfo from '@/views/projectEngineering/projectLibrary/component/DocumentsInfo'; +import BasicInfo from "@/views/projectEngineering/projectLibrary/component/BasicInfo"; +import InvestInfo from "@/views/projectEngineering/projectLibrary/component/InvestInfo"; +import InvestmentFunds from "@/views/projectEngineering/projectLibrary/component/investmentFunds"; +import LegalPerson from "@/views/projectEngineering/projectLibrary/component/legalPerson"; +import PolicyInfo from "@/views/projectEngineering/projectLibrary/component/PolicyInfo"; +import DocumentsInfo from "@/views/projectEngineering/projectLibrary/component/DocumentsInfo"; export default { - name: 'ProjectDetails', + name: "ProjectDetails", data() { return { isShow: false, - currentTab: '椤圭洰绠$悊鍩虹淇℃伅', + currentTab: "椤圭洰绠$悊鍩虹淇℃伅", disabled: false, - projectForm:{}, + projectForm: {}, componentName: BasicInfo, TABS_DATA: [ { - label: '椤圭洰绠$悊鍩虹淇℃伅', - value: '椤圭洰绠$悊鍩虹淇℃伅', - componentName: BasicInfo + label: "椤圭洰绠$悊鍩虹淇℃伅", + value: "椤圭洰绠$悊鍩虹淇℃伅", + componentName: BasicInfo, }, { - label: '鎶曡祫绠$悊鍩虹淇℃伅', - value: '鎶曡祫绠$悊鍩虹淇℃伅', - componentName: InvestInfo + label: "鎶曡祫绠$悊鍩虹淇℃伅", + value: "鎶曡祫绠$悊鍩虹淇℃伅", + componentName: InvestInfo, }, { - label: '椤圭洰鎶曡祫鍙婅祫閲戞潵婧�', - value: '椤圭洰鎶曡祫鍙婅祫閲戞潵婧�', - componentName: InvestmentFunds + label: "椤圭洰鎶曡祫鍙婅祫閲戞潵婧�", + value: "椤圭洰鎶曡祫鍙婅祫閲戞潵婧�", + componentName: InvestmentFunds, }, { - label: '椤圭洰(娉曚汉)鍗曚綅鐧昏淇℃伅', - value: '椤圭洰(娉曚汉)鍗曚綅鐧昏淇℃伅', - componentName: LegalPerson + label: "椤圭洰(娉曚汉)鍗曚綅鐧昏淇℃伅", + value: "椤圭洰(娉曚汉)鍗曚綅鐧昏淇℃伅", + componentName: LegalPerson, }, { - label: '鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌', - value: '鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌', - componentName: PolicyInfo + label: "鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌", + value: "鎶曡祫椤圭洰浜т笟鏀跨瓥绗﹀悎鎯呭喌", + componentName: PolicyInfo, }, { - label: '鐩稿叧鏂囦功', - value: '鐩稿叧鏂囦功', - componentName: DocumentsInfo - } + label: "鐩稿叧鏂囦功", + value: "鐩稿叧鏂囦功", + componentName: DocumentsInfo, + }, ], childRef: null, }; @@ -88,29 +97,29 @@ this.isShow = newValue; }, handleClick(tabTarget) { - this.componentName = this.TABS_DATA[tabTarget.index].componentName; + this.componentName = this.TABS_DATA[tabTarget.index].componentName; + }, changeTable(index) { this.componentName = this.TABS_DATA[index].componentName; this.currentTab = this.TABS_DATA[index].value; }, - submit() { - this.$refs.childRef.submit(); + submit(usedStatus) { + this.$refs.childRef.submit(usedStatus); }, reset() { this.$refs.childRef.reset(); }, }, mounted() { - if(this.$route.query.disabled){ - this.disabled = true + if (this.$route.query.disabled) { + this.disabled = true; } - } + }, }; </script> <style scoped> - ::v-deep .el-tabs__nav-wrap::after { background-color: rgba(0, 0, 0, 0) !important; } diff --git a/src/views/projectProcess/detail/index.vue b/src/views/projectProcess/detail/index.vue index 31d5d71..37167c0 100644 --- a/src/views/projectProcess/detail/index.vue +++ b/src/views/projectProcess/detail/index.vue @@ -1,103 +1,104 @@ <template> - <div class="app-container" v-loading.fullscreen.lock="loading"> - <div class="top"> - <div class="project-title"> - <h2>椤圭洰鍚嶇О锛歿{detailData.projectName}}</h2> - </div> - <div class="project-info"> - <div class="project-info-item"></div> - <div class="project-info-item">椤圭洰浠g爜锛歿{detailData.projectCode}}</div> - <div class="project-info-item"> - <div style="color: black"> - <div>涓璧勯噾</div> - <div>甯傞噸鐐归」鐩�</div> + <div class="app-container"> + <div v-loading="loading"> + <div class="top"> + <div class="project-title"> + <h2>椤圭洰鍚嶇О锛歿{detailData.projectName}}</h2> + </div> + <div class="project-info"> + <div class="project-info-item"></div> + <div class="project-info-item">椤圭洰浠g爜锛歿{detailData.projectCode}}</div> + <div class="project-info-item"> + <div style="color: black"> + <div>涓璧勯噾</div> + <div>甯傞噸鐐归」鐩�</div> + </div> </div> </div> </div> - </div> - <div class="search-warp"> - <div @click="changeTab(1, 'all')" :class="{'item-warm': true, 'all-color': true, 'active': 1 === selectTabId}">鍏ㄩ儴浜嬮」<span v-if="detailData && detailData.statistics">锛坽{detailData.statistics.totalTaskNum}}锛�</span></div> - <div @click="changeTab(2, 'todo')" :class="{'item-warm': true, 'all-color': true, 'active': 2 === selectTabId}">浠e姙浜嬮」<span v-if="detailData && detailData.statistics">锛坽{detailData.statistics.todoTaskNum}}锛�</span></div> - <div @click="changeTab(3, 'todo')" :class="{'item-warm': true, 'current-color': true, 'active': 3 === selectTabId}">褰撳墠鐜妭</div> - <div @click="changeTab(4, 'remaining')" :class="{'item-warm': true, 'remaining-color': true, 'active': 4 === selectTabId}">鍓╀綑浜嬮」<span v-if="detailData && detailData.statistics">锛坽{detailData.statistics.remainingTaskNum}}锛�</span></div> - <div @click="changeTab(5, 'timely')" :class="{'item-warm': true, 'timely-color': true, 'active': 5 === selectTabId}">鎸夋椂瀹屾垚锛�0锛�</div> - <div @click="changeTab(6, 'overtime')" :class="{'item-warm': true, 'overtime-color': true, 'active': 6 === selectTabId}">瓒呮椂浜嬮」锛�0锛�</div> - <div @click="changeTab(7, 'willOvertime')" :class="{'item-warm': true, 'willOvertime-color': true, 'active': 7 === selectTabId}">涓存湡浜嬮」锛�0锛�</div> - <div @click="changeTab(8, 'urge')" :class="{'item-warm': true, 'urge-color': true, 'active': 8 === selectTabId}">鐫e姙浜嬮」锛�0锛�</div> - </div> - <div style="display: flex;justify-content: center;align-items: center;margin-top: 20px"> - <el-form :inline="true" :model="queryParams" class="demo-form-inline"> - <el-form-item label="浠诲姟鍚嶇О"> - <el-input v-model="queryParams.taskName" placeholder="浠诲姟鍚嶇О"></el-input> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="getList">鏌ヨ</el-button> - </el-form-item> - </el-form> - </div> - <div class="table"> - <el-table - v-loading="tableLoading" - :data="taskList" - border - style="width: 100%"> - <el-table-column - prop="taskName" - label="浠诲姟鍚嶇О" - > - </el-table-column> - <el-table-column - prop="processName" - label="娴佺▼鍚嶇О" - > - </el-table-column> - <el-table-column - prop="promoterName" - label="鍙戣捣浜�" - > - </el-table-column> - <el-table-column - prop="promoterUnitName" - label="鍙戣捣鍗曚綅" - > - </el-table-column> - <el-table-column - prop="handlerUnitName" - label="澶勭悊鍗曚綅" - > - </el-table-column> - <el-table-column - prop="handlerName" - label="瀹為檯澶勭悊浜�" - > - </el-table-column> - <el-table-column - prop="taskStatus" - label="浠诲姟鐘舵��" - > - </el-table-column> - <el-table-column - fixed="right" - label="鎿嶄綔" - width="100"> - <template slot-scope="scope"> - <el-button v-if="scope.row.taskStatus !== '鏈紑濮�'" @click="goToProcessDetail(scope.row)" type="text" size="small">鏌ョ湅</el-button> - <el-button v-if="showHandle(scope.row)" @click="goToDo(scope.row)" type="text" size="small">鍔炵悊</el-button> - </template> - </el-table-column> - </el-table> - </div> - <div class="table" style="margin-top: 15px"> - <el-pagination - v-if="total > queryParams.pageSize" - @size-change="getList" - @current-change="getList" - :current-page.sync="queryParams.currentPage" - :page-sizes="[5, 10, 20]" - :page-size="100" - layout="sizes, prev, pager, next" - :total="total"> - </el-pagination> + <div class="search-warp"> + <div @click="changeTab(1, 'all')" :class="{'item-warm': true, 'all-color': true, 'active': 1 === selectTabId}">鍏ㄩ儴浜嬮」<span v-if="detailData && detailData.statistics">锛坽{detailData.statistics.totalTaskNum}}锛�</span></div> + <div @click="changeTab(2, 'todo')" :class="{'item-warm': true, 'all-color': true, 'active': 2 === selectTabId}">浠e姙浜嬮」<span v-if="detailData && detailData.statistics">锛坽{detailData.statistics.todoTaskNum}}锛�</span></div> + <div @click="changeTab(3, 'todo')" :class="{'item-warm': true, 'current-color': true, 'active': 3 === selectTabId}">褰撳墠鐜妭</div> + <div @click="changeTab(4, 'remaining')" :class="{'item-warm': true, 'remaining-color': true, 'active': 4 === selectTabId}">鍓╀綑浜嬮」<span v-if="detailData && detailData.statistics">锛坽{detailData.statistics.remainingTaskNum}}锛�</span></div> + <div @click="changeTab(5, 'timely')" :class="{'item-warm': true, 'timely-color': true, 'active': 5 === selectTabId}">鎸夋椂瀹屾垚锛�0锛�</div> + <div @click="changeTab(6, 'overtime')" :class="{'item-warm': true, 'overtime-color': true, 'active': 6 === selectTabId}">瓒呮椂浜嬮」锛�0锛�</div> + <div @click="changeTab(7, 'willOvertime')" :class="{'item-warm': true, 'willOvertime-color': true, 'active': 7 === selectTabId}">涓存湡浜嬮」锛�0锛�</div> + <div @click="changeTab(8, 'urge')" :class="{'item-warm': true, 'urge-color': true, 'active': 8 === selectTabId}">鐫e姙浜嬮」锛�0锛�</div> + </div> + <div style="display: flex;justify-content: center;align-items: center;margin-top: 20px"> + <el-form :inline="true" :model="queryParams" class="demo-form-inline"> + <el-form-item label="浠诲姟鍚嶇О"> + <el-input v-model="queryParams.taskName" placeholder="浠诲姟鍚嶇О"></el-input> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="search">鏌ヨ</el-button> + </el-form-item> + </el-form> + </div> + <div class="table"> + <el-table + v-loading="tableLoading" + :data="taskList" + border + style="width: 100%"> + <el-table-column + prop="taskName" + label="浠诲姟鍚嶇О" + > + </el-table-column> + <el-table-column + prop="processName" + label="娴佺▼鍚嶇О" + > + </el-table-column> + <el-table-column + prop="promoterUnitName" + label="鍙戣捣鍗曚綅" + > + </el-table-column> + <el-table-column + prop="promoterName" + label="鍙戣捣浜�" + > + </el-table-column> + <el-table-column + prop="handlerUnitName" + label="澶勭悊鍗曚綅" + > + </el-table-column> + <el-table-column + prop="handlerName" + label="瀹為檯澶勭悊浜�" + > + </el-table-column> + <el-table-column + prop="taskStatus" + label="浠诲姟鐘舵��" + > + </el-table-column> + <el-table-column + fixed="right" + label="鎿嶄綔" + width="100"> + <template slot-scope="scope"> + <el-button v-if="scope.row.taskStatus !== '鏈紑濮�'" @click="goToProcessDetail(scope.row)" type="text" size="small">鏌ョ湅</el-button> + <el-button v-if="showHandle(scope.row)" @click="goToDo(scope.row)" type="text" size="small">鍔炵悊</el-button> + </template> + </el-table-column> + </el-table> + </div> + <div class="table" style="margin-top: 15px"> + <el-pagination + @size-change="sizeChange" + @current-change="pageChange" + :current-page.sync="queryParams.currentPage" + :page-sizes="[5, 10, 20]" + :page-size="100" + layout="sizes, prev, pager, next" + :total="total"> + </el-pagination> + </div> </div> </div> </template> @@ -142,7 +143,9 @@ if (row.handlerType === "USER") { return this.$store.state.user.id === row.handlerId } else if (row.handlerType === "DEPT") { - return this.$store.state.user.id === row.handlerId + console.log(this.$store.state.user.deptId, "閮ㄩ棬id", row.handlerUnitId) + return this.$store.state.user.deptId === row.handlerUnitId + // return this.$store.state.user.name === '甯傚彂灞曟敼闈╁' || this.$store.state.user.name === '甯備綇寤哄眬' } else if (row.handlerType === "ROLE") { return this.$auth.hasRole(row.handlerUnitName) } @@ -151,47 +154,46 @@ } }, goToDo(row) { - // TODO 杩欓噷鐨勫垽鏂潯浠舵牴鎹疄闄呮儏鍐佃缃� - // let params = { - // processDefId: row.processDefId, - // taskId: row.taskId - // } - // getTaskIsAuditing(params).then(res => { - // - // }) - // if (this.showHandle(row)) { - console.log("zhe") + // 鏌ヨ璇ヤ换鍔℃槸鍚﹂厤缃簡闇�瑕佸鎵� + let params = { + processDefId: row.processDefId, + taskId: row.taskId + } + getTaskIsAuditing(params).then(res => { this.$router.push({ path: '/flowable/task/myProcess/send/index', query: { deployId: row.deployId, procDefId: row.processDefId, processName: row.taskName, - taskId: row.taskId + taskId: row.taskId, + showAuditing: res.data, + goBackParams: this.queryParams } }) - // } else { - // this.$router.push({ - // path: '/flowable/task/todo/detail/index', - // query: { - // taskName: row.taskName, - // startUser: row.promoterName, - // deployId: row.deployId, - // taskId: row.taskId, - // procInsId: row.processInsId, - // executionId: row.executionId - // } - // }) - // } + }) }, goToProcessDetail(row) { this.$router.push({ path: '/flowable/task/myProcess/detail/index', query: { procInsId: row.processInsId, deployId: row.deployId, - taskId: row.taskId + taskId: row.taskId, + goBackParams: this.queryParams }}) }, + search() { + this.queryParams.currentPage = 1; + this.getList() + }, + sizeChange(pageSize) { + this.queryParams.pageSize = pageSize; + this.getList() + }, + pageChange(pageNum) { + this.queryParams.currentPage = pageNum; + this.getList() + }, getList() { // 鑾峰彇浠诲姟鍒楄〃 getProjectProcessDetailTaskList(this.queryParams).then(res => { diff --git a/src/views/projectProcess/index.vue b/src/views/projectProcess/index.vue index 675c7bb..969ae34 100644 --- a/src/views/projectProcess/index.vue +++ b/src/views/projectProcess/index.vue @@ -185,7 +185,7 @@ v-loading="loading" :data="projectInfoList" @selection-change="handleSelectionChange" - height="60vh" + height="100%" sortable="custom" :show-overflow-tooltip="true"> <el-table-column type="selection" width="55" align="center"/> diff --git a/vue.config.js b/vue.config.js index 76eafd1..8b2ced5 100644 --- a/vue.config.js +++ b/vue.config.js @@ -7,7 +7,7 @@ const CompressionPlugin = require('compression-webpack-plugin') -const name = process.env.VUE_APP_TITLE || '灏勬椽椤圭洰绠$悊绯荤粺' // 缃戦〉鏍囬 +const name = process.env.VUE_APP_TITLE || '灏勬椽鏅烘収椤圭洰绠$悊绯荤粺' // 缃戦〉鏍囬 const port = process.env.port || process.env.npm_config_port || 80 // 绔彛 -- Gitblit v1.8.0