Bladeren bron

收入分析

2545307760@qq.com 1 jaar geleden
bovenliggende
commit
4cb91c4e3f

+ 0 - 0
web/src/api/flow.js


+ 45 - 0
web/src/api/process.js

@@ -0,0 +1,45 @@
+import service from '@/utils/request'
+
+// 查询所有流程
+export const getAllProcess = () => {
+  return service({
+    url: '/process/queryAllProcess',
+    method: 'GET'
+  })
+}
+
+// 新增流程
+export const postProcess = (data) => {
+  return service({
+    url: '/process/createProcess',
+    method: 'POST',
+    data
+  })
+}
+
+// 查询流程列表
+export const getProcessList = (data) => {
+  return service({
+    url: '/process/queryProcessList',
+    method: 'POST',
+    data
+  })
+}
+
+// 修改流程
+export const putProcess = (data) => {
+  return service({
+    url: '/process/updateProcess',
+    method: 'PUT',
+    data
+  })
+}
+
+// 删除流程
+export const delProcess = (data) => {
+  return service({
+    url: '/process/deleteProcess',
+    method: 'delete',
+    data
+  })
+}

+ 6 - 1
web/src/pinia/node/node.js

@@ -1,5 +1,5 @@
 import { defineStore } from 'pinia'
-import { reactive } from 'vue'
+import { reactive, ref } from 'vue'
 import { getNodeList, getApproverNode } from '@/api/node'
 export const nodeData = defineStore('node', () => {
   const nodeList = reactive([])
@@ -7,11 +7,14 @@ export const nodeData = defineStore('node', () => {
     page: 1,
     pageSize: 10
   })
+  const nodeListTotal = ref(0)
   const queryNodeList = () => {
     getNodeList(nodeListCondition).then(res => {
       if (res.code === 0) {
         nodeList.length = 0
+        console.log('节点列表', res.data)
         nodeList.push(...res.data.list)
+        nodeListTotal.value = res.data.total
       }
     })
   }
@@ -25,6 +28,8 @@ export const nodeData = defineStore('node', () => {
   }
   return {
     nodeList,
+    nodeListCondition,
+    nodeListTotal,
     queryNodeList,
     queryApproverNode
   }

+ 19 - 22
web/src/view/approve/flowManage/components/nodeManage.vue

@@ -45,11 +45,6 @@
             label="审核人"
             align="center"
           />
-          <el-table-column
-            prop="nodeOrder"
-            label="节点顺序"
-            align="center"
-          />
           <el-table-column
             label="操作"
             align="center"
@@ -89,6 +84,17 @@
         </el-table>
       </el-col>
     </el-row>
+    <el-row justify="end">
+      <el-pagination
+        :current-page="point.nodeListCondition.page"
+        :page-size="point.nodeListCondition.pageSize"
+        :page-sizes="[10, 30, 50, 100]"
+        :total="point.nodeListTotal"
+        layout="total, sizes, prev, pager, next, jumper"
+        @current-change="handleCurrentChange"
+        @size-change="handleSizeChange"
+      />
+    </el-row>
     <el-dialog
       v-model="addDialogShow"
       :title="identifyType"
@@ -118,16 +124,6 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="节点顺序:">
-          <el-select v-model="createNodeData.nodeOrder">
-            <el-option
-              v-for="(item,index) in orderList"
-              :key="index"
-              :label="item"
-              :value="item"
-            />
-          </el-select>
-        </el-form-item>
         <el-form-item label="节点描述:">
           <el-input
             v-model="createNodeData.nodeDescription"
@@ -196,19 +192,18 @@ const queryApprover = () => {
 
 // 新增、修改节点
 const addDialogShow = ref(false)
-const orderList = reactive([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20])
 const identifyType = ref('')
 // 新增、修改节点数据
 const createNodeData = reactive({
   nodeName: '',
   approverId: 0,
-  nodeOrder: 0,
   nodeDescription: ''
 })
 const openAddDialog = () => {
   addDialogShow.value = true
   createNodeData.approverId = approverList[0].ID
-  createNodeData.nodeOrder = orderList[0]
+  createNodeData.nodeName = ''
+  createNodeData.nodeDescription = ''
   identifyType.value = '新增节点'
 }
 
@@ -217,7 +212,6 @@ const editNode = (row) => {
   editId.value = row.ID
   createNodeData.approverId = row.approverId
   createNodeData.nodeName = row.nodeName
-  createNodeData.nodeOrder = row.nodeOrder
   createNodeData.nodeDescription = row.nodeDescription
   addDialogShow.value = true
   identifyType.value = '修改节点'
@@ -231,7 +225,6 @@ const createNode = () => {
         ElMessage.success('新增节点成功')
         createNodeData.nodeName = ''
         createNodeData.approverId = approverList[0].ID
-        createNodeData.nodeOrder = orderList[0]
         createNodeData.nodeDescription = ''
         addDialogShow.value = false
       }
@@ -241,13 +234,13 @@ const createNode = () => {
       id: editId.value,
       nodeName: createNodeData.nodeName,
       approverId: createNodeData.approverId,
-      nodeOrder: createNodeData.nodeOrder,
       nodeDescription: createNodeData.nodeDescription
     }
     putNode(editData).then(res => {
       if (res.code === 0) {
         ElMessage.success('修改成功')
         addDialogShow.value = false
+        point.queryNodeList()
       }
     })
   }
@@ -271,7 +264,7 @@ const deleteNode = (val) => {
       delNode(delId).then(res => {
         if (res.code === 0) {
           ElMessage.success('删除成功')
-          queryApprover()
+          point.queryNodeList()
         }
       })
     })
@@ -283,6 +276,10 @@ const deleteNode = (val) => {
     })
 }
 
+const handleCurrentChange = () => {}
+
+const handleSizeChange = () => {}
+
 </script>
 
 <style scoped>

+ 180 - 1
web/src/view/approve/flowManage/flowManage.vue

@@ -1,6 +1,15 @@
 <template>
   <div>
     <el-row>
+      <el-col :span="2">
+        <el-button
+          icon="Plus"
+          type="primary"
+          @click="openAddDrawer"
+        >
+          新增流程
+        </el-button>
+      </el-col>
       <el-col :span="3">
         <el-button
           icon="Edit"
@@ -9,6 +18,11 @@
         >节点编辑</el-button>
       </el-col>
     </el-row>
+    <el-row style="margin-top: 20px">
+      <el-col :span="24">
+        <el-table />
+      </el-col>
+    </el-row>
     <el-drawer
       v-model="nodeManageShow"
       title="节点管理"
@@ -16,13 +30,132 @@
     >
       <node-manage />
     </el-drawer>
+    <el-drawer
+      v-model="editProcessShow"
+      :title="processDrawerTitle"
+      size="37%"
+    >
+      <el-form
+        label-position="left"
+        label-width="100"
+        size="large"
+      >
+        <el-form-item label="流程名称:">
+          <el-input
+            v-model="editProcessData.process.processName"
+            placeholder="请输入审核流程名称"
+          />
+        </el-form-item>
+        <el-form-item label="流程内容:">
+          <el-input
+            v-model="editProcessData.process.processContent"
+            placeholder="请输入审核流程内容"
+          />
+        </el-form-item>
+        <el-form-item label="流程类型:">
+          <el-input
+            v-model="editProcessData.process.processType"
+            placeholder="请输入审核流程类型"
+          />
+        </el-form-item>
+      </el-form>
+      <el-row
+        style="margin-top: 20px"
+        justify="end"
+      >
+        <el-col :span="4">
+          <el-button
+            type="primary"
+            icon="Plus"
+            @click="processNodeDialog = true"
+          >添加节点</el-button>
+        </el-col>
+      </el-row>
+      <el-row style="margin-top: 20px">
+        <el-col :span="24">
+          <el-table
+            height="470"
+            :data="editProcessData.processNodes"
+          >
+            <el-table-column
+              label="节点顺序"
+              align="center"
+              width="180"
+              prop="nodeOrder"
+            />
+            <el-table-column
+              label="节点名称"
+              align="center"
+            >
+              <template #default="scope">
+                <el-text>{{ scope.row.nodeId }}</el-text>
+              </template>
+            </el-table-column>
+            <el-table-column
+              label="操作"
+              align="center"
+            />
+          </el-table>
+        </el-col>
+      </el-row>
+      <el-row
+        style="margin-top: 50px"
+        justify="end"
+      >
+        <el-button
+          type="primary"
+          size="large"
+        >确认</el-button>
+      </el-row>
+    </el-drawer>
+    <el-dialog
+      v-model="processNodeDialog"
+      title="新增流程节点"
+      width="40%"
+    >
+      <el-form
+        size="large"
+        label-position="left"
+        label-width="90"
+        style="margin-top: 20px"
+      >
+        <el-form-item label="节点:">
+          <el-select v-model="addProcessNodeData.nodeId">
+            <el-option
+              v-for="item in nodeList"
+              :key="item.ID"
+              :label="item.nodeName"
+              :value="item.ID"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="节点顺序:">
+          <el-select v-model="addProcessNodeData.nodeOrder">
+            <el-option
+              v-for="(item,index) in orderList"
+              :key="index"
+              :label="item"
+              :value="item"
+            />
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <el-button
+          size="large"
+          type="primary"
+          @click="addProcessNodes"
+        >确认</el-button>
+      </template>
+    </el-dialog>
   </div>
 </template>
 
 <script setup>
 import NodeManage from './components/nodeManage.vue'
-import { ref, onMounted } from 'vue'
+import { ref, onMounted, reactive } from 'vue'
 import { nodeData } from '@/pinia/node/node'
+import { getAllNode } from '@/api/node'
 defineOptions({
   name: 'FlowManage'
 })
@@ -30,11 +163,57 @@ const record = nodeData()
 onMounted(() => {
   // 获取节点列表
   record.queryNodeList()
+  queryAllNode()
 })
+// .....................................节点
 const nodeManageShow = ref(false)
 const openNodeManage = () => {
   nodeManageShow.value = true
 }
+const nodeList = reactive([])
+// 查询所有节点
+const queryAllNode = () => {
+  getAllNode().then(res => {
+    if (res.code === 0) {
+      console.log('所有节点', res.data)
+      const list = res.data
+      nodeList.length = 0
+      nodeList.push(...res.data)
+      addProcessNodeData.nodeId = list[0].ID
+    }
+  })
+}
+// .....................................流程
+const editProcessShow = ref(false)
+
+const processDrawerTitle = ref('新增流程')
+
+const editProcessData = reactive({
+  process: {
+    processName: '',
+    processContent: '',
+    processType: ''
+  },
+  processNodes: []
+})
+const openAddDrawer = () => {
+  editProcessShow.value = true
+}
+// 为流程添加节点
+const processNodeDialog = ref(false)
+const orderList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
+
+const addProcessNodeData = reactive({
+  nodeId: 0,
+  nodeOrder: 1
+})
+
+const addProcessNodes = () => {
+  console.log(addProcessNodeData)
+  console.log(editProcessData.processNodes)
+  // editProcessData.processNodes.push(...addProcessNodeData)
+}
+
 </script>
 
 <style scoped>