2545307760@qq.com 1 سال پیش
والد
کامیت
4dd0a1759c

+ 4 - 31
web/src/api/cost.js

@@ -136,38 +136,11 @@ export const delProjectCostType = (data) => {
   })
 }
 
-// 查询公司费用类型
-export const firmCostType = () => {
+// 查询备用金信息
+export const getStandbyMoney = () => {
   return service({
-    url: '/finance/queryExpensesGenre',
-    method: 'get'
-  })
-}
-
-// 新增公司费用类型
-export const postFirmCostType = (data) => {
-  return service({
-    url: '/finance/createExpensesGenre',
-    method: 'post',
-    data
-  })
-}
-
-// 更新公司费用类型
-export const putFirmCostType = (data) => {
-  return service({
-    url: '/finance/updateExpensesGenre',
-    method: 'put',
-    data
-  })
-}
-
-// 删除公司费用类型
-export const delFirmCostType = (data) => {
-  return service({
-    url: '/finance/updateExpensesGenre',
-    method: 'delete',
-    data
+    url: '/finance/queryReserveBalance',
+    method: 'GET'
   })
 }
 

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

@@ -12,7 +12,7 @@ export const nodeData = defineStore('node', () => {
       if (res.code === 0) {
         console.log('节点列表', res.data)
         nodeList.length = 0
-        nodeList.push(...res.data)
+        nodeList.push(...res.data.list)
       }
     })
   }

+ 94 - 12
web/src/view/approve/flowManage/components/nodeManage.vue

@@ -25,21 +25,68 @@
           <el-form-item>
             <el-button
               icon="Search"
+              type="primary"
               @click="queryApproverNode"
             >查询</el-button>
           </el-form-item>
           <el-form-item>
             <el-button
               icon="Plus"
+              type="primary"
               @click="openAddDialog"
             >新增</el-button>
           </el-form-item>
         </el-form>
       </el-col>
     </el-row>
-    <el-row style="margin-top: 40px">
+    <el-row style="margin-top: 20px">
       <el-col :span="24">
-        <el-table />
+        <el-table :data="point.nodeList">
+          <el-table-column
+            prop="nodeName"
+            label="节点名称"
+            align="center"
+          />
+          <el-table-column
+            prop="approver.nickName"
+            label="审核人"
+            align="center"
+          />
+          <el-table-column
+            prop="nodeOrder"
+            label="节点顺序"
+            align="center"
+          />
+          <el-table-column
+            label="操作"
+            align="center"
+          >
+            <template #default="scope">
+              <el-popover
+                placement="top"
+                trigger="click"
+                :width="200"
+                :content="scope.row.nodeDescription"
+              >
+                <template #reference>
+                  <el-button
+                    text
+                    type="primary"
+                    icon="Memo"
+                    size="small"
+                  >描述</el-button>
+                </template>
+              </el-popover>
+              <el-button
+                text
+                type="primary"
+                icon="Memo"
+                size="small"
+                @click="deleteNode(scope.row)"
+              >删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
       </el-col>
     </el-row>
     <el-dialog
@@ -88,10 +135,19 @@
             maxlength="200"
             show-word-limit
             :rows="6"
+            placeholder="请输入节点相关描述"
           />
         </el-form-item>
       </el-form>
-
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button
+            size="large"
+            type="primary"
+            @click="createNode"
+          >确认</el-button>
+        </div>
+      </template>
     </el-dialog>
   </div>
 </template>
@@ -99,14 +155,17 @@
 <script setup>
 import { reactive, onMounted, ref } from 'vue'
 import { getApprovePerson } from '@/api/approver'
-import { getApproverNode } from '@/api/node'
+import { getApproverNode, delNode } from '@/api/node'
+import { nodeData } from '@/pinia/node/node'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { postNode } from '@/api/node'
 defineOptions({
   name: 'NodeManage'
 })
 onMounted(() => {
   queryApprover()
 })
-
+const point = nodeData()
 // 按审核人查询节点
 const condition = reactive({
   approverId: 0
@@ -158,13 +217,36 @@ const openAddDialog = () => {
   createNodeData.approverId = approverList[0].ID
   createNodeData.nodeOrder = orderList[0]
 }
-// const createNode = () => {
-//   postNode(createNodeData).then(res => {
-//     if (res.code === 0) {
-//       console.log(res.data)
-//     }
-//   })
-// }
+const createNode = () => {
+  postNode(createNodeData).then(res => {
+    console.log(res)
+    if (res.code === 0) {
+      point.queryNodeList()
+      ElMessage.success('新增节点成功')
+    }
+  })
+}
+
+// 删除节点
+const deleteNode = (val) => {
+  console.log(val)
+  // ElMessageBox.confirm(
+  //   '确定要删除此费用记录吗?',
+  //   '删除记录',
+  //   {
+  //     confirmButtonText: '删除',
+  //     cancelButtonText: '取消',
+  //     type: 'warning',
+  //   }
+  // )
+  //   .then(() => {})
+  //   .catch(() => {
+  //     ElMessage({
+  //       type: 'info',
+  //       message: '取消删除',
+  //     })
+  //   })
+}
 </script>
 
 <style scoped>

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

@@ -12,6 +12,7 @@
     <el-drawer
       v-model="nodeManageShow"
       title="节点管理"
+      size="50%"
     >
       <node-manage />
     </el-drawer>

+ 4 - 4
web/src/view/finance/financeAnalysis/financeAnalysis.vue

@@ -147,16 +147,16 @@
             />
           </el-tab-pane>
           <el-tab-pane
-            label="项目费用汇总"
+            label="项目收款"
             :name="3"
           >
-            <CostSum ref="sumOut" />
+            <payment ref="paymentOut" />
           </el-tab-pane>
           <el-tab-pane
-            label="项目收款"
+            label="项目费用汇总"
             :name="4"
           >
-            <payment ref="paymentOut" />
+            <CostSum ref="sumOut" />
           </el-tab-pane>
         </el-tabs>
       </el-col>

+ 308 - 0
web/src/view/standby/standby.vue

@@ -0,0 +1,308 @@
+<template>
+  <div>
+    <el-row
+      class="bg-white"
+      style="height: 80px"
+      align="middle"
+      justify="space-around"
+    >
+      <el-col
+        :span="3"
+        class="flex align-center justify-around"
+      >
+        <el-image
+          :src="expense"
+          style="width: 50px;height: 50px"
+        />
+        <el-text style="font-size: 20px;font-weight: 550;color: #409eff">备用金收支</el-text>
+      </el-col>
+      <el-col :span="21">
+        <el-row align="middle">
+          <el-col
+            :span="4"
+            :offset="1"
+          >
+            <el-row
+              justify="center"
+              align="middle"
+            >
+              <el-text
+                style="font-size: 20px;color: #409eff;"
+                tag="b"
+                :line-clamp="1"
+              >
+                {{ reserve.reserveAmount }}元
+              </el-text>
+            </el-row>
+            <el-row
+              justify="center"
+              align="middle"
+              style="margin-top: 8px"
+            >
+              <el-text>备用金支入</el-text>
+            </el-row>
+          </el-col>
+          <el-col :span="4">
+            <el-row
+              justify="center"
+              align="middle"
+            >
+              <el-text
+                style="font-size: 20px;color: #409eff;"
+                tag="b"
+                :line-clamp="1"
+              >
+                {{ reserve.expenditureAmount }}元
+              </el-text>
+            </el-row>
+            <el-row
+              justify="center"
+              align="middle"
+              style="margin-top: 8px"
+            >
+              <el-text>备用金支出</el-text>
+            </el-row>
+          </el-col>
+          <el-col :span="4">
+            <el-row
+              justify="center"
+              align="middle"
+            >
+              <el-text
+                style="font-size: 20px;color: #409eff;"
+                tag="b"
+                :line-clamp="1"
+              >
+                {{ reserve.balance }}元
+              </el-text>
+            </el-row>
+            <el-row
+              justify="center"
+              align="middle"
+              style="margin-top: 8px"
+            >
+              <el-text>备用金余额</el-text>
+            </el-row>
+          </el-col>
+        </el-row>
+      </el-col>
+    </el-row>
+    <el-row
+      class="bg-white"
+      style="height: 600px;margin-top: 20px"
+    >
+      <el-row>
+        <el-col
+          :span="24"
+        >
+          <el-form
+            :inline="true"
+            style="margin: 5px 0 15px 0;height: 40px"
+          >
+            <el-form-item label="时间类型:">
+              <el-select
+                v-model="timeTypeValue"
+                placeholder="请选择日期选择器"
+                @change="changeTimeType"
+              >
+                <el-option
+                  v-for="item in timeTypeList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item
+              v-if="timeTypeValue === 'date'"
+              label="日期:"
+            >
+              <el-date-picker
+                v-model="condition.dayTime"
+                type="date"
+                placeholder="请选择日期"
+                format="YYYY-MM-DD"
+                value-format="YYYY-MM-DD"
+                clearable
+                @clear="condition.dayTime = ''"
+              />
+            </el-form-item>
+            <el-form-item
+              v-if="timeTypeValue === 'month'"
+              label="月份:"
+            >
+              <el-date-picker
+                v-model="condition.monthTime"
+                type="month"
+                placeholder="请选择月份"
+                format="YYYY-MM"
+                value-format="YYYY-MM"
+                clearable
+                @clear="condition.monthTime = ''"
+              />
+            </el-form-item>
+            <el-form-item
+              v-if="timeTypeValue === 'year'"
+              label="年份:"
+            >
+              <el-date-picker
+                v-model="condition.yearTime"
+                type="year"
+                placeholder="请选择年份"
+                format="YYYY"
+                value-format="YYYY"
+                clearable
+                @clear="condition.yearTime = ''"
+              />
+            </el-form-item>
+            <el-form-item label="项目:">
+              <el-select
+                v-model="projectSelect"
+                placeholder="请选择项目"
+                clearable
+                @clear="clearProjectSelect"
+              >
+                <el-option
+                  v-for="item in projectList"
+                  :key="item.ID"
+                  :label="item.name"
+                  :value="item.ID"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="人员:">
+              <el-select
+                v-model="projectSelect"
+                placeholder="请选择人员名称"
+                clearable
+                filterable
+                @clear="clearPeopleSelect"
+              >
+                <el-option
+                  v-for="item in userList"
+                  :key="item.ID"
+                  :label="item.nickName"
+                  :value="item.ID"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item>
+              <el-dropdown
+                split-button
+                type="primary"
+              >
+                操作
+                <template #dropdown>
+                  <el-dropdown-menu>
+                    <el-dropdown-item>
+                      <el-button
+                        type="primary"
+                        icon="Search"
+                        @click="consultPayList"
+                      >查询</el-button>
+                    </el-dropdown-item>
+                    <el-dropdown-item>
+                      <el-button
+                        type="primary"
+                        icon="Refresh"
+                        @click="payListReset"
+                      >重置</el-button>
+                    </el-dropdown-item>
+                    <el-dropdown-item>
+                      <el-button
+                        type="primary"
+                        icon="Plus"
+                        @click="addDetailRecord"
+                      >添加</el-button>
+                    </el-dropdown-item>
+                  </el-dropdown-menu>
+                </template>
+              </el-dropdown>
+            </el-form-item>
+            <el-form-item>
+              <el-button
+                type="primary"
+                @click="costTypePopup = true"
+              >费用类型</el-button>
+            </el-form-item>
+          </el-form>
+        </el-col>
+      </el-row>
+    </el-row>
+  </div>
+</template>
+
+<script setup>
+import { getStandbyMoney } from '@/api/cost'
+import { getAllProject } from '@/api/project'
+import { onMounted, reactive, ref } from 'vue'
+import expense from '@/assets/expenses.png'
+defineOptions({
+  name: 'Standby'
+})
+onMounted(() => {
+  queryAllProject()
+  queryStandbyMoney()
+})
+// 备用金汇总
+const reserve = reactive({})
+const queryStandbyMoney = () => {
+  getStandbyMoney().then(res => {
+    if (res.code === 0) {
+      console.log(res.data)
+      Object.assign(reserve, res.data)
+    }
+  })
+}
+// 搜索条件
+const condition = reactive({
+  pageInfo: {
+    page: 1,
+    pageSize: 8
+  },
+  reimburser: 0,
+  projectCode: '',
+  genre: 0,
+  dayTime: '',
+  monthTime: '',
+  yearTime: ''
+})
+// 日期查询
+const timeTypeValue = ref('date')
+const timeTypeList = reactive([
+  { label: '按日期查询', value: 'date' },
+  { label: '按月份查询', value: 'month' },
+  { label: '按年份查询', value: 'year' }
+])
+const changeTimeType = (value) => {
+  if (value === 'year') {
+    condition.monthTime = ''
+    condition.dayTime = ''
+  } else if (value === 'month') {
+    condition.yearTime = ''
+    condition.dayTime = ''
+  } else {
+    condition.yearTime = ''
+    condition.monthTime = ''
+  }
+}
+
+// 查询所有项目
+const projectSelect = ref('')
+const projectList = reactive([])
+const queryAllProject = () => {
+  getAllProject().then(res => {
+    if (res.code === 0) {
+      projectList.length = 0
+      projectList.push(res.data)
+    }
+  })
+}
+
+// 删除项目
+const clearPeopleSelect = () => {}
+</script>
+
+<style scoped>
+
+</style>