Browse Source

收入分析

2545307760@qq.com 1 year ago
parent
commit
8d815a6bba

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

@@ -43,3 +43,30 @@ export const delProcess = (data) => {
     data
   })
 }
+
+// 开关流程
+export const switchProcess = (data) => {
+  return service({
+    url: '/process/switchProcess',
+    method: 'post',
+    data
+  })
+}
+
+// 查询项目审批列表
+export const getItemApproveList = (data) => {
+  return service({
+    url: '/projectProcess/queryProjectApplicantList',
+    method: 'POST',
+    data
+  })
+}
+
+// 查询项目流程列表
+export const getItemProcessList = (data) => {
+  return service({
+    url: '/projectProcess/queryProjectProcessList',
+    method: 'POST',
+    data
+  })
+}

+ 2 - 7
web/src/pinia/node/node.js

@@ -3,13 +3,9 @@ import { reactive, ref } from 'vue'
 import { getNodeList, getApproverNode } from '@/api/node'
 export const nodeData = defineStore('node', () => {
   const nodeList = reactive([])
-  const nodeListCondition = reactive({
-    page: 1,
-    pageSize: 10
-  })
   const nodeListTotal = ref(0)
-  const queryNodeList = () => {
-    getNodeList(nodeListCondition).then(res => {
+  const queryNodeList = (condition) => {
+    getNodeList(condition).then(res => {
       if (res.code === 0) {
         nodeList.length = 0
         nodeList.push(...res.data.list)
@@ -27,7 +23,6 @@ export const nodeData = defineStore('node', () => {
   }
   return {
     nodeList,
-    nodeListCondition,
     nodeListTotal,
     queryNodeList,
     queryApproverNode

+ 87 - 236
web/src/view/approve/approveList/approveList.vue

@@ -1,50 +1,17 @@
 <template>
   <div>
-    <el-button
-      type="primary"
-      icon="Edit"
-      @click="openApproverEdit"
-    >审核人编辑</el-button>
-    <el-dialog
-      v-model="editApproverShow"
-      title="编辑审核人"
-      width="40%"
-    >
-      <el-tabs type="border-card">
-        <el-tab-pane label="新增与修改">
-          <el-alert
-            :title="prompt"
-            type="info"
-            :closable="false"
-          />
-          <el-form
-            label-width="90px"
-            label-position="left"
-            size="large"
-            style="margin-top: 20px"
-          >
-            <el-form-item label="审核人:">
+    <div class="box">
+      <el-row>
+        <el-col :span="4">
+          <el-form>
+            <el-form-item label="审批发起人:">
               <el-select
-                v-model="approverId"
+                v-model="peopleSelect"
                 placeholder="请选择人员名称"
-                filterable
                 clearable
-                @clear="clearApproverId"
-                @change="changeApproverId"
-              >
-                <el-option
-                  v-for="item in approverList"
-                  :key="item.ID"
-                  :label="item.user.nickName"
-                  :value="item.ID"
-                />
-              </el-select>
-            </el-form-item>
-            <el-form-item label="用户:">
-              <el-select
-                v-model="approverInfo.userId"
-                placeholder="请选择人员名称"
                 filterable
+                @change="changePeopleSelect"
+                @clear="clearPeopleSelect"
               >
                 <el-option
                   v-for="item in userList"
@@ -54,221 +21,89 @@
                 />
               </el-select>
             </el-form-item>
-            <el-form-item label="详情:">
-              <el-input
-                v-model="approverInfo.approverDescription"
-                placeholder="请输入审核人详情"
-                clearable
-              />
-            </el-form-item>
-            <el-form-item label="权限详情:">
-              <el-input
-                v-model="approverInfo.approverRightsDescription"
-                placeholder="请输入审核人权限详情"
-                clearable
-              />
-            </el-form-item>
-            <el-row
-              justify="end"
-              style="margin-top: 40px"
+          </el-form>
+        </el-col>
+      </el-row>
+      <el-row style="margin-top: 10px">
+        <el-col :span="24">
+          <el-table :data="itemApproveList">
+            <el-table-column
+              label="项目流程名称"
+              align="center"
+              prop="projectProcessName"
+            />
+            <el-table-column
+              label="流程名称"
+              align="center"
+              prop="process.processName"
+            />
+            <el-table-column
+              label="流程类型"
+              align="center"
+              prop="process.processType"
+            />
+            <el-table-column
+              label="当前流程节点"
+              align="center"
+              prop="node.nodeName"
+            />
+            <el-table-column
+              label="操作"
+              align="center"
             >
-              <el-col :span="2">
+              <template>
                 <el-button
                   type="primary"
-                  size="large"
-                  @click="editApprover"
-                >
-                  确认
-                </el-button>
-              </el-col>
-            </el-row>
-          </el-form>
-        </el-tab-pane>
-        <el-tab-pane label="删除">
-          <el-row justify="center">
-            <el-col :span="10">
-              <el-select
-                v-model="delApproverId"
-                placeholder="请选择审核人员"
-                size="large"
-                filterable
-              >
-                <el-option
-                  v-for="item in approverList"
-                  :key="item.ID"
-                  :label="item.user.nickName"
-                  :value="item.ID"
-                />
-              </el-select>
-            </el-col>
-            <el-col
-              :span="3"
-              :offset="2"
-            >
-              <el-button
-                type="primary"
-                size="large"
-                @click="delApprover"
-              >删除</el-button>
-            </el-col>
-          </el-row>
-        </el-tab-pane>
-      </el-tabs>
-    </el-dialog>
+                  icon="Memo"
+                  text
+                >详情</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-col>
+      </el-row>
+    </div>
   </div>
 </template>
 
 <script setup>
 import { onMounted, reactive, ref } from 'vue'
-import { getApprovePerson, postApprovePerson, putApprovePerson, deleteApprovePerson } from '@/api/approver'
+import { getItemApproveList } from '@/api/process'
 import { getAllUsers } from '@/api/user'
-import { ElMessage, ElMessageBox } from 'element-plus'
+// import { ElMessage, ElMessageBox } from 'element-plus'
 
 defineOptions({
   name: 'ApproveList'
 })
 onMounted(() => {
-  // queryApproveList()
-  queryApprover()
-  queryAllUsers()
-})
-// 查询审核人列表
-const approverList = reactive([])
-const queryApprover = () => {
-  getApprovePerson().then(res => {
-    if (res.code === 0) {
-      approverList.length = 0
-      approverList.push(...res.data)
-      if (approverList.length !== 0) {
-        delApproverId.value = approverList[0].ID
-      } else {
-        delApproverId.value = 0
-      }
-    }
-  })
-}
-// .................................................................................
-// 新增、编辑审核人
-const prompt = '注意:如果不选择审核人则默认为添加审核人,如果选择审核人则默认修改该审核人信息'
-const approverId = ref('')
-const approverInfo = reactive({
-  id: 0,
-  userId: 0,
-  approverDescription: '',
-  approverRightsDescription: ''
+  queryItemApproveList()
+  getUserList()
 })
-const editApproverShow = ref(false)
-const editApprover = () => {
-  if (approverId.value === '') {
-    // 新增审批人
-    approverInfo.id = 0
-    const add = {
-      userId: approverInfo.userId,
-      approverDescription: approverInfo.approverDescription,
-      approverRightsDescription: approverInfo.approverRightsDescription
-    }
-    postApprovePerson(add).then(res => {
-      if (res.code === 0) {
-        ElMessage.success('添加成功')
-        queryApprover()
-      }
-    })
-  } else {
-    // 修改审批人
-    approverInfo.id = approverId.value
-    const modify = {
-      id: approverInfo.id,
-      userId: approverInfo.userId,
-      approverDescription: approverInfo.approverDescription,
-      approverRightsDescription: approverInfo.approverRightsDescription
-    }
-    putApprovePerson(modify).then(res => {
-      if (res.code === 0) {
-        ElMessage.success('修改成功')
-        queryApprover()
-      }
-    })
-  }
-}
-const clearApproverId = () => {
-  approverId.value = ''
-  approverInfo.id = 0
-  approverInfo.userId = userList[0].ID
-  approverInfo.approverDescription = ''
-  approverInfo.approverRightsDescription = ''
-}
 
-const changeApproverId = (val) => {
-  approverList.forEach(item => {
-    if (item.ID === val) {
-      approverInfo.userId = item.user.ID
-      approverInfo.approverDescription = item.approverDescription
-      approverInfo.approverRightsDescription = item.approverRightsDescription
+// 查询项目审批列表
+const condition = reactive({
+  pageInfo: {
+    page: 1,
+    pageSize: 10,
+  },
+  userId: 0
+})
+const itemApproveList = reactive([])
+const queryItemApproveList = () => {
+  getItemApproveList(condition).then(res => {
+    if (res.code === 0) {
+      console.log(res.data.list)
+      const list = res.data.list
+      itemApproveList.length = 0
+      itemApproveList.push(...list)
     }
   })
 }
-// ..............................................................................
-// 获取审批列表
-// const condition = reactive({
-//   page: 1,
-//   pageSize: 10
-// })
-// const queryApproveList = () => {
-//   getApproveList(condition).then(res => {
-//     if (res.code === 0) {
-//       console.log('审核列表', res)
-//     }
-//   })
-// }
 
-// 打开审核人编辑窗口
-const openApproverEdit = () => {
-  editApproverShow.value = true
-  approverInfo.userId = userList[0].ID
-  if (approverList.length !== 0) {
-    delApproverId.value = approverList[0].ID
-  }
-}
-// .................................................................................
-// 删除审核人
-const delApproverId = ref(0)
-const delApprover = () => {
-  if (approverList.length === 0) {
-    ElMessage.error('暂无审核人')
-    return
-  }
-  ElMessageBox.confirm(
-    '你确定进行删除此审核人吗?',
-    '删除',
-    {
-      confirmButtonText: '确定',
-      cancelButtonText: '取消',
-      type: 'warning',
-    }
-  )
-    .then(() => {
-      const deleteId = {
-        id: delApproverId.value
-      }
-      deleteApprovePerson(deleteId).then(res => {
-        if (res.code === 0) {
-          ElMessage.success('删除成功')
-          queryApprover()
-          console.log(approverList.length)
-        }
-      })
-    })
-    .catch(() => {
-      ElMessage({
-        type: 'info',
-        message: '取消删除',
-      })
-    })
-}
-// .................................................................................
-// 获取用户列表
+// 查询用户列表
 const userList = reactive([])
-const queryAllUsers = () => {
+const peopleSelect = ref('')
+const getUserList = () => {
   getAllUsers().then(res => {
     if (res.code === 0) {
       userList.length = 0
@@ -276,8 +111,24 @@ const queryAllUsers = () => {
     }
   })
 }
+const changePeopleSelect = (val) => {
+  userList.forEach(item => {
+    if (item.ID === val) {
+      peopleSelect.value = item.nickName
+      condition.userId = val
+      console.log(peopleSelect.value)
+    }
+  })
+}
+const clearPeopleSelect = () => {}
+
 </script>
 
 <style scoped>
-
+.box{
+  width: 1550px;
+  height: 700px;
+  background-color: #ffffff;
+  padding: 20px;
+}
 </style>

+ 14 - 0
web/src/view/approve/approveList/components/inspectList.vue

@@ -0,0 +1,14 @@
+<template>
+  <div>
+  </div>
+</template>
+
+<script setup>
+defineOptions({
+  name: 'InspectList'
+})
+</script>
+
+<style scoped>
+
+</style>

+ 13 - 0
web/src/view/approve/approveList/components/promoterList.vue

@@ -0,0 +1,13 @@
+<template>
+
+</template>
+
+<script setup>
+defineOptions({
+  name: 'PromoterList'
+})
+</script>
+
+<style scoped>
+
+</style>

+ 28 - 11
web/src/view/approve/flowManage/components/nodeManage.vue

@@ -34,7 +34,10 @@
     </el-row>
     <el-row style="margin-top: 20px">
       <el-col :span="24">
-        <el-table :data="point.nodeList">
+        <el-table
+          :data="point.nodeList"
+          height="605px"
+        >
           <el-table-column
             prop="nodeName"
             label="节点名称"
@@ -86,13 +89,12 @@
     </el-row>
     <el-row justify="end">
       <el-pagination
-        :current-page="point.nodeListCondition.page"
-        :page-size="point.nodeListCondition.pageSize"
-        :page-sizes="[10, 30, 50, 100]"
+        v-show="approverValue === ''"
+        v-model:current-page="condition.page"
+        background
+        layout="prev, pager, next"
         :total="point.nodeListTotal"
-        layout="total, sizes, prev, pager, next, jumper"
-        @current-change="handleCurrentChange"
-        @size-change="handleSizeChange"
+        @change="changeNodePage"
       />
     </el-row>
     <el-dialog
@@ -160,8 +162,23 @@ defineOptions({
 })
 onMounted(() => {
   queryApprover()
+  queryNodeList()
 })
+
 const point = nodeData()
+
+const condition = reactive({
+  page: 1,
+  pageSize: 10
+})
+
+const queryNodeList = () => {
+  point.queryNodeList(condition)
+}
+const changeNodePage = (val) => {
+  condition.page = val
+  point.queryNodeList(condition)
+}
 // 按审核人查询节点
 const approverValue = ref('')
 
@@ -174,7 +191,7 @@ const changeApprover = (val) => {
   })
 }
 const clearApprover = () => {
-  point.queryNodeList()
+  point.queryNodeList(condition)
   approverValue.value = ''
 }
 
@@ -220,7 +237,7 @@ const createNode = () => {
   if (identifyType.value === '新增节点') {
     postNode(createNodeData).then(res => {
       if (res.code === 0) {
-        point.queryNodeList()
+        point.queryNodeList(condition)
         ElMessage.success('新增节点成功')
         createNodeData.nodeName = ''
         createNodeData.approverId = approverList[0].ID
@@ -239,7 +256,7 @@ const createNode = () => {
       if (res.code === 0) {
         ElMessage.success('修改成功')
         addDialogShow.value = false
-        point.queryNodeList()
+        point.queryNodeList(condition)
       }
     })
   }
@@ -263,7 +280,7 @@ const deleteNode = (val) => {
       delNode(delId).then(res => {
         if (res.code === 0) {
           ElMessage.success('删除成功')
-          point.queryNodeList()
+          point.queryNodeList(condition)
         }
       })
     })

+ 33 - 11
web/src/view/approve/flowManage/flowManage.vue

@@ -43,6 +43,20 @@
               prop="nodes.length"
               width="250"
             />
+            <el-table-column
+              label="流程开关"
+              align="center"
+              width="180"
+            >
+              <template #default="scope">
+                <el-switch
+                  v-model="scope.row.isUse"
+                  class="ml-2"
+                  style="--el-switch-on-color: #13ce66;"
+                  @change="changeProcessSwitch(scope.row)"
+                />
+              </template>
+            </el-table-column>
             <el-table-column
               label="操作"
               align="center"
@@ -281,9 +295,9 @@
             >
               <el-step
                 v-for="item in renderNodeList"
-                :key="item.nodeId"
+                :key="item.ID"
                 :title="item.nodeName"
-                :description="item.nodeHead"
+                :description="item.approver.nickName"
               />
             </el-steps>
           </el-col>
@@ -296,17 +310,13 @@
 <script setup>
 import NodeManage from './components/nodeManage.vue'
 import { ref, onMounted, reactive } from 'vue'
-import { nodeData } from '@/pinia/node/node'
 import { getAllNode } from '@/api/node'
 import { ElMessage, ElMessageBox } from 'element-plus'
-import { postProcess, getProcessList, delProcess, putProcess } from '@/api/process'
+import { postProcess, getProcessList, delProcess, putProcess, switchProcess } from '@/api/process'
 defineOptions({
   name: 'FlowManage'
 })
-const record = nodeData()
 onMounted(() => {
-  // 获取节点列表
-  record.queryNodeList()
   queryAllNode()
   // 查看流程
   queryProcessList()
@@ -324,7 +334,6 @@ const queryAllNode = () => {
     if (res.code === 0) {
       nodeList.length = 0
       nodeList.push(...res.data)
-      // console.log('节点列表', nodeList)
     }
   })
 }
@@ -457,19 +466,19 @@ const processActive = ref(0)
 const processEffectShow = ref(false) // 弹窗显示
 
 const openEffectDialog = () => {
+  processActive.value = intermediary.value.length
   processEffectShow.value = true
 } // 打开弹窗
 
 // 查看流程列表
 const processPag = reactive({
   page: 1,
-  pageSize: 10
+  pageSize: 1000
 })
 const processList = reactive([])
 const queryProcessList = () => {
   getProcessList(processPag).then(res => {
     if (res.code === 0) {
-      console.log('流程列表', res.data)
       processList.length = 0
       processList.push(...res.data.list)
     }
@@ -526,7 +535,6 @@ const deleteProcess = (row) => {
       }
       delProcess(delId).then(res => {
         if (res.code === 0) {
-          console.log(res.data)
           ElMessage.success('删除成功')
           queryProcessList()
         }
@@ -540,6 +548,20 @@ const deleteProcess = (row) => {
     })
 }
 
+const changeProcessSwitch = (val) => {
+  const obj = {
+    id: val.ID,
+    processType: val.processType,
+    isUse: val.isUse
+  }
+  switchProcess(obj).then(res => {
+    if (res.code === 0) {
+      ElMessage.success('操作成功')
+      queryProcessList()
+    }
+  })
+}
+
 </script>
 
 <style scoped>

+ 285 - 0
web/src/view/approve/old.vue

@@ -0,0 +1,285 @@
+<template>
+  <div>
+    <el-row>
+      <el-button
+        type="primary"
+        icon="Edit"
+        @click="openApproverEdit"
+      >审核人编辑</el-button>
+    </el-row>
+    <el-dialog
+      v-model="editApproverShow"
+      title="编辑审核人"
+      width="40%"
+    >
+      <el-tabs type="border-card">
+        <el-tab-pane label="新增与修改">
+          <el-alert
+            :title="prompt"
+            type="info"
+            :closable="false"
+          />
+          <el-form
+            label-width="90px"
+            label-position="left"
+            size="large"
+            style="margin-top: 20px"
+          >
+            <el-form-item label="审核人:">
+              <el-select
+                v-model="approverId"
+                placeholder="请选择人员名称"
+                filterable
+                clearable
+                @clear="clearApproverId"
+                @change="changeApproverId"
+              >
+                <el-option
+                  v-for="item in approverList"
+                  :key="item.ID"
+                  :label="item.user.nickName"
+                  :value="item.ID"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="用户:">
+              <el-select
+                v-model="approverInfo.userId"
+                placeholder="请选择人员名称"
+                filterable
+              >
+                <el-option
+                  v-for="item in userList"
+                  :key="item.ID"
+                  :label="item.nickName"
+                  :value="item.ID"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="详情:">
+              <el-input
+                v-model="approverInfo.approverDescription"
+                placeholder="请输入审核人详情"
+                clearable
+              />
+            </el-form-item>
+            <el-form-item label="权限详情:">
+              <el-input
+                v-model="approverInfo.approverRightsDescription"
+                placeholder="请输入审核人权限详情"
+                clearable
+              />
+            </el-form-item>
+            <el-row
+              justify="end"
+              style="margin-top: 40px"
+            >
+              <el-col :span="2">
+                <el-button
+                  type="primary"
+                  size="large"
+                  @click="editApprover"
+                >
+                  确认
+                </el-button>
+              </el-col>
+            </el-row>
+          </el-form>
+        </el-tab-pane>
+        <el-tab-pane label="删除">
+          <el-row justify="center">
+            <el-col :span="10">
+              <el-select
+                v-model="delApproverId"
+                placeholder="请选择审核人员"
+                size="large"
+                filterable
+              >
+                <el-option
+                  v-for="item in approverList"
+                  :key="item.ID"
+                  :label="item.user.nickName"
+                  :value="item.ID"
+                />
+              </el-select>
+            </el-col>
+            <el-col
+              :span="3"
+              :offset="2"
+            >
+              <el-button
+                type="primary"
+                size="large"
+                @click="delApprover"
+              >删除</el-button>
+            </el-col>
+          </el-row>
+        </el-tab-pane>
+      </el-tabs>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup>
+import { onMounted, reactive, ref } from 'vue'
+import { getApprovePerson, postApprovePerson, putApprovePerson, deleteApprovePerson } from '@/api/approver'
+import { getAllUsers } from '@/api/user'
+import { ElMessage, ElMessageBox } from 'element-plus'
+
+defineOptions({
+  name: 'Old'
+})
+onMounted(() => {
+  // queryApproveList()
+  queryApprover()
+  queryAllUsers()
+})
+// 查询审核人列表
+const approverList = reactive([])
+const queryApprover = () => {
+  getApprovePerson().then(res => {
+    if (res.code === 0) {
+      approverList.length = 0
+      approverList.push(...res.data)
+      if (approverList.length !== 0) {
+        delApproverId.value = approverList[0].ID
+      } else {
+        delApproverId.value = 0
+      }
+    }
+  })
+}
+// .................................................................................
+// 新增、编辑审核人
+const prompt = '注意:如果不选择审核人则默认为添加审核人,如果选择审核人则默认修改该审核人信息'
+const approverId = ref('')
+const approverInfo = reactive({
+  id: 0,
+  userId: 0,
+  approverDescription: '',
+  approverRightsDescription: ''
+})
+const editApproverShow = ref(false)
+const editApprover = () => {
+  if (approverId.value === '') {
+    // 新增审批人
+    approverInfo.id = 0
+    const add = {
+      userId: approverInfo.userId,
+      approverDescription: approverInfo.approverDescription,
+      approverRightsDescription: approverInfo.approverRightsDescription
+    }
+    postApprovePerson(add).then(res => {
+      if (res.code === 0) {
+        ElMessage.success('添加成功')
+        queryApprover()
+      }
+    })
+  } else {
+    // 修改审批人
+    approverInfo.id = approverId.value
+    const modify = {
+      id: approverInfo.id,
+      userId: approverInfo.userId,
+      approverDescription: approverInfo.approverDescription,
+      approverRightsDescription: approverInfo.approverRightsDescription
+    }
+    putApprovePerson(modify).then(res => {
+      if (res.code === 0) {
+        ElMessage.success('修改成功')
+        queryApprover()
+      }
+    })
+  }
+}
+const clearApproverId = () => {
+  approverId.value = ''
+  approverInfo.id = 0
+  approverInfo.userId = userList[0].ID
+  approverInfo.approverDescription = ''
+  approverInfo.approverRightsDescription = ''
+}
+
+const changeApproverId = (val) => {
+  approverList.forEach(item => {
+    if (item.ID === val) {
+      approverInfo.userId = item.user.ID
+      approverInfo.approverDescription = item.approverDescription
+      approverInfo.approverRightsDescription = item.approverRightsDescription
+    }
+  })
+}
+// ..............................................................................
+// 获取审批列表
+// const condition = reactive({
+//   page: 1,
+//   pageSize: 10
+// })
+// const queryApproveList = () => {
+//   getApproveList(condition).then(res => {
+//     if (res.code === 0) {
+//       console.log('审核列表', res)
+//     }
+//   })
+// }
+
+// 打开审核人编辑窗口
+const openApproverEdit = () => {
+  editApproverShow.value = true
+  approverInfo.userId = userList[0].ID
+  if (approverList.length !== 0) {
+    delApproverId.value = approverList[0].ID
+  }
+}
+// .................................................................................
+// 删除审核人
+const delApproverId = ref(0)
+const delApprover = () => {
+  if (approverList.length === 0) {
+    ElMessage.error('暂无审核人')
+    return
+  }
+  ElMessageBox.confirm(
+    '你确定进行删除此审核人吗?',
+    '删除',
+    {
+      confirmButtonText: '确定',
+      cancelButtonText: '取消',
+      type: 'warning',
+    }
+  )
+    .then(() => {
+      const deleteId = {
+        id: delApproverId.value
+      }
+      deleteApprovePerson(deleteId).then(res => {
+        if (res.code === 0) {
+          ElMessage.success('删除成功')
+          queryApprover()
+          console.log(approverList.length)
+        }
+      })
+    })
+    .catch(() => {
+      ElMessage({
+        type: 'info',
+        message: '取消删除',
+      })
+    })
+}
+// .................................................................................
+// 获取用户列表
+const userList = reactive([])
+const queryAllUsers = () => {
+  getAllUsers().then(res => {
+    if (res.code === 0) {
+      userList.length = 0
+      userList.push(...res.data)
+    }
+  })
+}
+</script>
+
+<style scoped>
+
+</style>