From a0cc8e02560f7e72e2efb3d4540ddcd5f82aca6e Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期四, 05 十二月 2024 17:09:16 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/components/Process/panel/PropertiesPanel.vue | 2 src/views/flowable/task/myProcess/send/index.vue | 84 ++++++++++++++++++++------- src/components/Process/designer.vue | 1 src/api/projectProcess/projectProcess.js | 10 +++ src/views/projectProcess/detail/index.vue | 80 ++++++++++++++++++-------- 5 files changed, 127 insertions(+), 50 deletions(-) diff --git a/src/api/projectProcess/projectProcess.js b/src/api/projectProcess/projectProcess.js index 389f932..9123b96 100644 --- a/src/api/projectProcess/projectProcess.js +++ b/src/api/projectProcess/projectProcess.js @@ -59,3 +59,13 @@ params: query }) } + +// 鑾峰彇浠诲姟鏄惁鏄鎵硅妭鐐� +export function getTaskIsAuditing(query) { + return request({ + url: '/project-process/detail/task/is/auditing', + method: 'get', + params: query + }) +} + diff --git a/src/components/Process/designer.vue b/src/components/Process/designer.vue index e3fd0a7..5fb87e9 100644 --- a/src/components/Process/designer.vue +++ b/src/components/Process/designer.vue @@ -133,6 +133,7 @@ getActiveElement() { // 鍒濆绗竴涓�変腑鍏冪礌 bpmn:Process this.initFormOnChanged(null); + // see https://bpmn.io/toolkit/bpmn-js/walkthrough/ this.modelerStore.modeler.on("import.done", e => { this.initFormOnChanged(null); }); diff --git a/src/components/Process/panel/PropertiesPanel.vue b/src/components/Process/panel/PropertiesPanel.vue index 3d9b41c..5a4f9f1 100644 --- a/src/components/Process/panel/PropertiesPanel.vue +++ b/src/components/Process/panel/PropertiesPanel.vue @@ -107,7 +107,7 @@ }, saveAttribute() { const { name, value } = this.propertyForm; - console.log(this.bpmnElementPropertyList); + console.log(this.bpmnElementPropertyList, "灞炴�у垪琛�"); if (this.editingPropertyIndex !== -1) { this.modelerStore.modeling.updateModdleProperties(this.bpmnElement, this.bpmnElementPropertyList[this.editingPropertyIndex], { name, diff --git a/src/views/flowable/task/myProcess/send/index.vue b/src/views/flowable/task/myProcess/send/index.vue index de3b8ca..d0b86cd 100644 --- a/src/views/flowable/task/myProcess/send/index.vue +++ b/src/views/flowable/task/myProcess/send/index.vue @@ -9,11 +9,19 @@ <!--琛ㄥ崟淇℃伅--> <el-tab-pane label="琛ㄥ崟淇℃伅" name="1"> <!--鍒濆鍖栨祦绋嬪姞杞借〃鍗曚俊鎭�--> - <el-col :span="16" :offset="4"> - <v-form-render :form-data="formRenderData" ref="vFormRef"/> - <div style="margin-left:15%;margin-bottom: 20px;font-size: 14px;"> - <el-button type="primary" @click="submitForm">鎻� 浜�</el-button> - <el-button type="primary" @click="resetForm">閲� 缃�</el-button> + <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> + +<!-- <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" @click="resetForm">閲� 缃�</el-button>--> </div> </el-col> </el-tab-pane> @@ -54,6 +62,7 @@ props: {}, data() { return { + formDataList: [], taskId: '', processName: '', // 妯″瀷xml鏁版嵁 @@ -68,6 +77,7 @@ deployId: "", // 娴佺▼瀹氫箟缂栧彿 procDefId: "", // 娴佺▼瀹炰緥缂栧彿 formRenderData: {}, + formRenderDataList: [], variables: [], // 娴佺▼鍙橀噺鏁版嵁 taskTitle: null, taskOpen: false, @@ -80,7 +90,7 @@ formJson: {} // 琛ㄥ崟json }; }, - created() { + mounted() { this.processName = this.$route.query && this.$route.query.processName; this.deployId = this.$route.query && this.$route.query.deployId; this.taskId = this.$route.query && this.$route.query.taskId; @@ -101,26 +111,44 @@ getFlowFormData(taskId) { const params = {taskId: taskId} flowTaskForm(params).then(res => { - if (res.data.formJson) { - // 鍥炴樉琛ㄥ崟 - this.$refs.vFormRef.setFormJson(res.data.formJson); - this.formJson = res.data.formJson; + 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.$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]) + eval("that.$refs.form" +index)[0].setFormJson(formDataObj.formJsonObj.formJson); + + eval("that.$refs.form" +index)[0].setFormData(formDataObj.formJsonObj); + }) + this.formJson = this.formDataList[0].formJsonObj.formJson }) - } else { - this.$nextTick(() => { - // 鍥炴樉鏁版嵁 - this.$refs.vFormRef.setFormJson(res.data); - this.formJson = res.data; - }) + } + // if (res.data.formJson) { + // // 鍥炴樉琛ㄥ崟 + // this.$refs.vFormRef.setFormJson(res.data.formJson); + // this.formJson = res.data.formJson; + // this.$nextTick(() => { + // // 鍔犺浇琛ㄥ崟濉啓鐨勬暟鎹� + // this.$refs.vFormRef.setFormData(res.data); + // // this.$nextTick(() => { + // // // 琛ㄥ崟绂佺敤 + // // this.$refs.vFormRef.disableForm(); + // // }) + // }) + // } else { + // this.$nextTick(() => { + // // 鍥炴樉鏁版嵁 + // this.$refs.vFormRef.setFormJson(res.data); + // this.formJson = res.data; + // }) + // } }).catch(res => { + console.log("鎶ラ敊浜嗭細", res) this.goBack(); }) }, @@ -133,7 +161,8 @@ }, /** 鐢宠娴佺▼琛ㄥ崟鏁版嵁鎻愪氦 */ submitForm() { - this.$refs.vFormRef.getFormData().then(formData => { + let that = this + eval("that.$refs.form" +0)[0].getFormData().then(formData => { // 鏍规嵁褰撳墠浠诲姟鎴栬�呮祦绋嬭璁¢厤缃殑涓嬩竴姝ヨ妭鐐� todo 鏆傛椂鏈秹鍙婂埌鑰冭檻缃戝叧銆佽〃杈惧紡鍜屽鑺傜偣鎯呭喌 getNextFlowNodeByStart({deploymentId: this.deployId, variables: formData}).then(res => { const data = res.data; @@ -275,4 +304,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/projectProcess/detail/index.vue b/src/views/projectProcess/detail/index.vue index a819527..31d5d71 100644 --- a/src/views/projectProcess/detail/index.vue +++ b/src/views/projectProcess/detail/index.vue @@ -82,26 +82,32 @@ 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="scope.row.taskStatus === '寰呭姙'" @click="goToDo(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> - <el-pagination - v-if="total > queryParams.pageSize" - :page-size="queryParams.pageSize" - :current-page="queryParams.currentPage" - :total="total" - layout="total, prev, pager, next" - @current-change="getList" - ></el-pagination> - </div> + </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> </div> </template> <script> -import {getProjectProcessDetail, getProjectProcessDetailTaskList} from "@/api/projectProcess/projectProcess"; +import { + getProjectProcessDetail, + getProjectProcessDetailTaskList, + getTaskIsAuditing +} from "@/api/projectProcess/projectProcess"; export default { name: "index", @@ -130,22 +136,31 @@ this.getProjectProcessInfo() }, methods: { + showHandle(row) { + console.log(this.$store.state.user, "鐢ㄦ埛淇℃伅") + if (row.taskStatus === '寰呭姙') { + 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 + } else if (row.handlerType === "ROLE") { + return this.$auth.hasRole(row.handlerUnitName) + } + } else { + return false + } + }, goToDo(row) { // TODO 杩欓噷鐨勫垽鏂潯浠舵牴鎹疄闄呮儏鍐佃缃� - if (this.$auth.hasRole('admin')) { + // let params = { + // processDefId: row.processDefId, + // taskId: row.taskId + // } + // getTaskIsAuditing(params).then(res => { + // + // }) + // if (this.showHandle(row)) { console.log("zhe") - 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 - } - }) - } else { this.$router.push({ path: '/flowable/task/myProcess/send/index', query: { @@ -155,7 +170,19 @@ taskId: row.taskId } }) - } + // } 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', @@ -178,6 +205,7 @@ getProjectProcessDetail(this.queryParams.projectId, this.queryParams.processDefId).then(res => { this.detailData = res.data this.taskList = res.taskList + this.total = res.total this.loading = false }) }, -- Gitblit v1.8.0