From b0d5edcb0445d654154ba3baf8110886b8543d61 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期五, 06 十二月 2024 14:05:54 +0800 Subject: [PATCH] bug修改 --- src/utils/request.js | 2 src/views/flowable/task/myProcess/send/index.vue | 13 src/views/flowable/task/myProcess/detail/index1.vue | 201 ++++++++++++++++++++++ src/api/flowable/todo.js | 7 src/views/flowable/task/myProcess/detail/index.vue | 60 +++++- src/views/projectProcess/detail/index.vue | 208 ++++++++++++---------- 6 files changed, 374 insertions(+), 117 deletions(-) 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/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..2d186fb 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,6 +88,7 @@ return { // 妯″瀷xml鏁版嵁 flowData: {}, + formDataList: [], // 琛ㄥ崟鍒楄〃 activeName: '1', // 鏌ヨ鍙傛暟 queryParams: {}, @@ -144,19 +150,38 @@ 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(); + // }) + // }) + // }) }); } }, @@ -198,4 +223,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..ce36f2e 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,7 @@ props: {}, data() { return { - formDataList: [], + formDataList: [], // 琛ㄥ崟鍒楄〃 taskId: '', processName: '', // 妯″瀷xml鏁版嵁 @@ -112,8 +115,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) => { diff --git a/src/views/projectProcess/detail/index.vue b/src/views/projectProcess/detail/index.vue index 31d5d71..c3415ed 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="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 + @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,8 @@ 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 + // return this.$store.state.user.id === row.handlerId + return this.$store.state.user.name === '甯傚彂灞曟敼闈╁' || this.$store.state.user.name === '甯備綇寤哄眬' } else if (row.handlerType === "ROLE") { return this.$auth.hasRole(row.handlerUnitName) } @@ -192,6 +194,18 @@ taskId: row.taskId }}) }, + 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 => { -- Gitblit v1.8.0