From 39efab1d5585dcc6229a0c0e88d58556d9a9a67c Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 27 十一月 2024 02:37:22 +0800
Subject: [PATCH] 流程信息配置功能、项目关联流程功能

---
 src/views/projectProcess/components/RunProcess.vue            |   79 ++++++++++++++++++++++----
 src/views/flowable/definition/index.vue                       |   22 +++++--
 src/api/projectProcess/processConfigInfo.js                   |    9 +++
 src/api/projectProcess/projectProcess.js                      |   11 +++
 src/views/flowable/definition/component/EditProcessConfig.vue |    7 +-
 src/views/projectProcess/index.vue                            |   32 +++++++---
 6 files changed, 128 insertions(+), 32 deletions(-)

diff --git a/src/api/projectProcess/processConfigInfo.js b/src/api/projectProcess/processConfigInfo.js
index 709f894..bc3749c 100644
--- a/src/api/projectProcess/processConfigInfo.js
+++ b/src/api/projectProcess/processConfigInfo.js
@@ -9,6 +9,15 @@
   })
 }
 
+// 鑾峰彇娴佺▼绫诲瀷閰嶇疆淇℃伅琛�
+export const getProcessConfigInfoList = (params) => {
+  return request({
+    url: "/process-config-info/list",
+    method: "GET",
+    params: params
+  })
+}
+
 // 淇濆瓨娴佺▼绫诲瀷閰嶇疆淇℃伅琛�
 export const saveProcessConfigInfo = (data) => {
   return request({
diff --git a/src/api/projectProcess/projectProcess.js b/src/api/projectProcess/projectProcess.js
index e8c7416..1ebada4 100644
--- a/src/api/projectProcess/projectProcess.js
+++ b/src/api/projectProcess/projectProcess.js
@@ -1,10 +1,19 @@
 import request from '@/utils/request'
 
 // 鑾峰彇椤圭洰娴佺▼鍏崇郴琛ㄥ垎椤�
-export const getProjectProcesss = (data) => {
+export const getProjectProcess = (data) => {
     return request({
         url: "/project-process/page",
         method: "POST",
         data: data
     })
 }
+
+// 鑾峰彇椤圭洰娴佺▼鍏崇郴琛ㄥ垎椤�
+export const projectSetProcess = (data) => {
+  return request({
+    url: "/project-process/set",
+    method: "POST",
+    data: data
+  })
+}
diff --git a/src/views/flowable/definition/component/EditProcessConfig.vue b/src/views/flowable/definition/component/EditProcessConfig.vue
index 700767b..c9bd663 100644
--- a/src/views/flowable/definition/component/EditProcessConfig.vue
+++ b/src/views/flowable/definition/component/EditProcessConfig.vue
@@ -4,6 +4,7 @@
       :title="`娴佺▼鍩虹閰嶇疆锛歚 + deployName"
       :visible.sync="processConfigShow"
       width="500px"
+      :destroy-on-close="true"
       :close-on-click-modal="false"
       :before-close="handleClose">
 
@@ -49,15 +50,15 @@
   name: "EditProcessConfig",
   props: {
     processConfigShow: {
-      require: true,
+      required: true,
       type: Boolean
     },
     deployName: {
-      require: true,
+      required: true,
       type: String
     },
     form: {
-      require: true,
+      required: true,
       type: Object
     }
   },
diff --git a/src/views/flowable/definition/index.vue b/src/views/flowable/definition/index.vue
index d8963ad..630c9ce 100644
--- a/src/views/flowable/definition/index.vue
+++ b/src/views/flowable/definition/index.vue
@@ -262,8 +262,9 @@
   data() {
     return {
       configForm: {
+        processDefId: '',
         deployId: '',
-        deployVersion: null,
+        processDefVersion: null,
         projectType: '', // 椤圭洰绫诲瀷
         fundType: '',  // 璧勯噾绫诲瀷
         investType: '',  // 鎶曡祫绫诲埆
@@ -361,22 +362,31 @@
   },
   methods: {
     closeConfig() {
+      this.configForm = {
+        processDefId: '',
+        deployId: '',
+        processDefVersion: null,
+        projectType: '', // 椤圭洰绫诲瀷
+        fundType: '',  // 璧勯噾绫诲瀷
+        investType: '',  // 鎶曡祫绫诲埆
+        importanceType: '',  // 閲嶇偣鍒嗙被
+      }
       this.processConfigShow = false
     },
     handleConfig(row) {
-      const infoArr = row.id.split(":");
 
       const params = {
-        deployId: infoArr[2],
-        deployVersion: infoArr[1]
+        processDefId: row.id,
+        processDefVersion: row.version
       }
       getProcessConfigInfoByDeploy(params).then(res => {
         if (res.data) {
           this.configForm = res.data
         }
       })
-      this.configForm.deployId = infoArr[2]
-      this.configForm.deployVersion = infoArr[1]
+      this.configForm.processDefId = row.id
+      this.configForm.deployId = row.deploymentId
+      this.configForm.processDefVersion = row.version
       this.configDeployName = row.name
       this.processConfigShow = true
     },
diff --git a/src/views/projectProcess/components/RunProcess.vue b/src/views/projectProcess/components/RunProcess.vue
index 27e9699..24e17a8 100644
--- a/src/views/projectProcess/components/RunProcess.vue
+++ b/src/views/projectProcess/components/RunProcess.vue
@@ -1,9 +1,10 @@
 <template>
   <div>
     <el-dialog
-      title="娴佺▼鍚姩"
+      :title="`娴佺▼鍚姩锛歚 + projectInfo.projectName"
       :visible.sync="show"
-      width="750px"
+      width="950px"
+      :destroy-on-close="true"
       :close-on-click-modal="false"
       :before-close="handleClose">
       <div>
@@ -34,10 +35,46 @@
             label="娴佺▼绫诲瀷"
           >
           </el-table-column>
+          <el-table-column label="椤圭洰绫诲瀷" >
+            <template slot-scope="scope">
+              <dict-tag
+                :options="dict.type.sys_project_type"
+                :value="scope.row.projectType"
+              >
+              </dict-tag>
+            </template>
+          </el-table-column>
+          <el-table-column label="璧勯噾绫诲瀷" >
+            <template slot-scope="scope">
+              <dict-tag
+                :options="dict.type.sys_funding_type"
+                :value="scope.row.fundType"
+              >
+              </dict-tag>
+            </template>
+          </el-table-column>
+          <el-table-column label="鎶曡祫绫诲埆" >
+            <template slot-scope="scope">
+              <dict-tag
+                :options="dict.type.sys_investment_type"
+                :value="scope.row.investType"
+              >
+              </dict-tag>
+            </template>
+          </el-table-column>
+          <el-table-column label="閲嶇偣鍒嗙被" >
+            <template slot-scope="scope">
+              <dict-tag
+                :options="dict.type.sys_key_categories"
+                :value="scope.row.importanceType"
+              >
+              </dict-tag>
+            </template>
+          </el-table-column>
         </el-table>
       </div>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="startProcess">鍚姩</el-button>
+        <el-button type="danger" @click="startProcess">鍚姩</el-button>
         <el-button type="primary" @click="changeProcess">鍙樻洿</el-button>
       </span>
     </el-dialog>
@@ -45,35 +82,42 @@
 </template>
 
 <script>
+import {projectSetProcess} from "@/api/projectProcess/projectProcess";
+
 export default {
+  dicts: ['sys_project_type', 'sys_funding_type', 'sys_investment_type', 'sys_key_categories'],
   name: "RunProcess",
   props: {
     show: {
-      require: true,
+      required: true,
       type: Boolean
     },
-    projectId: {
-      require: true,  // 椤圭洰id
-      type: Number
+    projectInfo: {
+      required: true,  // 椤圭洰id銆佸悕绉�
+      type: Object
     },
     processList: {  // 娴佺▼鍒楄〃
-      require: true,
+      required: true,
       type: Array
     },
     nowProcessId: {  // 褰撳墠椤圭洰缁戝畾鐨勬祦绋媔d
-      require: true,
+      required: true,
       type: String
     },
     nowProcessName: {
-      require: true,
+      required: true,
       type: String
     }
   },
   watch: {
     // 鐩戝惉鍥炴樉鍊�
     nowProcessId(newVal, oldVal) {
+      console.log("浼犲叆鍊硷細", newVal, this.processList)
       this.processList.forEach((item,index) => {
-        if(item.id == newVal){
+        console.log(item.id, newVal, item.id === newVal)
+        if(item.id === newVal){
+          console.log("wwwwwww")
+          this.selectProcessId = newVal
           this.$nextTick(() => {
             this.$refs.myTable.toggleRowSelection(item);
           })
@@ -104,7 +148,18 @@
     },
     // 鍙樻洿娴佺▼
     changeProcess() {
-
+      if (!this.selectProcessId) {
+        this.$message.error("閫夊垯涓�涓祦绋嬪悗鎵嶈兘鍙樻洿")
+        return
+      }
+      const data = {
+        projectId: this.projectInfo.projectId,
+        flowableProcessId: this.selectProcessId
+      }
+      projectSetProcess(data).then(res => {
+        this.$message.success("鍙樻洿鎴愬姛")
+        this.handleClose()
+      })
     },
     handleClose() {
       this.$emit("close")
diff --git a/src/views/projectProcess/index.vue b/src/views/projectProcess/index.vue
index cdb3acc..ce1a2f3 100644
--- a/src/views/projectProcess/index.vue
+++ b/src/views/projectProcess/index.vue
@@ -270,17 +270,24 @@
       :currentColumns="columns"
     />
 
-    <RunProcess :show="showRunProcess" :now-process-id="nowProcessId" :now-process-name="nowProcessName" :process-list="processList" @close="closeRunProcess"></RunProcess>
+    <RunProcess :show="showRunProcess"
+                :now-process-id="nowProcessId"
+                :now-process-name="nowProcessName"
+                :project-info="projectRunFrom"
+                :process-list="processList"
+                @close="closeRunProcess">
+    </RunProcess>
   </div>
 </template>
 
 <script>
 import { listDefinition } from "@/api/flowable/definition";
 import {listInfo, getInfo, delInfo, addInfo, updateInfo} from "@/api/projectInfo";
-import { getProjectProcesss } from "@/api/projectProcess/projectProcess"
+import { getProjectProcess } from "@/api/projectProcess/projectProcess"
 import {current, currentRest} from '@/views/projectEngineering/projectLibrary/list';
 import FileDialog from '@/views/projectEngineering/projectLibrary/component/FileDialog';
 import RunProcess from "@/views/projectProcess/components/RunProcess";
+import {getProcessConfigInfoList} from "@/api/projectProcess/processConfigInfo";
 
 export default {
   dicts: ['sys_administrative_divisions', 'sys_investment_type', 'sys_project_phases',
@@ -292,9 +299,12 @@
   },
   data() {
     return {
+      projectRunFrom: {
+        projectId: null,
+        projectName: ''
+      },
       processList: [],
       showRunProcess: false,
-      projectId: null,
       nowProcessId: '',
       nowProcessName: '',
       isImportOrExport: false,
@@ -381,15 +391,17 @@
   methods: {
     closeRunProcess() {
       this.showRunProcess = false
+      this.getList()
     },
     // 鎵撳紑娴佺▼椤甸潰
     openOpProcess(row) {
-      this.projectId = row.id;
-      this.nowProcessId = row.flowableProcessId;
-      this.nowProcessName = row.flowableProcessName;
-      // 鎷垮埌娴佺▼鍒楄〃
-      listDefinition(this.queryParams).then(response => {
-        this.processList = response.data.records;
+      // 鎷垮埌娴佺▼鍒楄〃 TODO 鏍规嵁椤圭洰绫诲瀷鍋氱瓫閫�
+      getProcessConfigInfoList().then(response => {
+        this.processList = response.data;
+        this.projectRunFrom.projectId = row.id;
+        this.projectRunFrom.projectName = row.projectName;
+        this.nowProcessId = row.flowableProcessId;
+        this.nowProcessName = row.flowableProcessName;
         this.showRunProcess = true;
       });
     },
@@ -448,7 +460,7 @@
     /** 鏌ヨ椤圭洰绠$悊鍩虹淇℃伅鍒楄〃 */
     getList() {
       this.loading = true;
-      getProjectProcesss(this.queryParams).then(response => {
+      getProjectProcess(this.queryParams).then(response => {
         this.projectInfoList = response.data;
         this.total = response.total;
       });

--
Gitblit v1.8.0