2545307760@qq.com 1 år sedan
förälder
incheckning
97a29c0919

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

@@ -7,9 +7,9 @@ export const payData = defineStore('expenses', () => {
   const getCostList = (data) => {
     queryProjectCost(data).then(res => {
       if (res.code === 0) {
-        console.log('查看费用列表', res)
         projectCostList.length = 0
         const list = res.data.list === null ? [] : res.data.list
+        console.log(list)
         projectCostList.push(...list)
         costListTotal.value = res.data.total
       }

+ 1 - 2
web/src/view/finance/financeAnalysis/components/projectCost.vue

@@ -227,7 +227,7 @@
       </el-col>
     </el-row>
     <el-row
-      v-show="costListTotal > 6"
+      v-show="costData.costListTotal > 8"
     >
       <el-col
         :span="23"
@@ -748,7 +748,6 @@ const costDelete = (val) => {
 }
 
 // 页码
-const costListTotal = ref(8)
 const changeCostPage = (val) => {
   condition.pageInfo.page = val
   consultPayList()

+ 0 - 1
web/src/view/finance/financeAnalysis/financeAnalysis.vue

@@ -348,7 +348,6 @@ const projectList = (condition) => {
       const list = res.data.list
       projectTotal.value = res.data.total
       listData.push(...list)
-      console.log(listData)
       symbol.changeCode(list[0].code)
       getMainMessage(list[0].code)
     }

+ 280 - 147
web/src/view/standby/standby.vue

@@ -89,171 +89,230 @@
     </el-row>
     <el-row
       class="bg-white"
-      style="height: 600px;margin-top: 20px"
+      style="height: 700px;margin-top: 20px"
     >
-      <el-row>
-        <el-col
-          :span="24"
-        >
-          <el-form
-            :inline="true"
-            style="margin: 5px 0 15px 0;height: 40px"
+      <el-col :span="24">
+        <el-row style="margin-top: 15px;margin-left: 30px">
+          <el-col
+            :span="24"
           >
-            <el-form-item label="时间类型:">
-              <el-select
-                v-model="timeTypeValue"
-                placeholder="请选择日期选择器"
-                @change="changeTimeType"
+            <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-option
-                  v-for="item in timeTypeList"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
+                <el-date-picker
+                  v-model="condition.dayTime"
+                  type="date"
+                  placeholder="请选择日期"
+                  format="YYYY-MM-DD"
+                  value-format="YYYY-MM-DD"
+                  clearable
+                  @clear="condition.dayTime = ''"
                 />
-              </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-form-item>
+              <el-form-item
+                v-if="timeTypeValue === 'month'"
+                label="月份:"
               >
-                <el-option
-                  v-for="item in projectList"
-                  :key="item.ID"
-                  :label="item.name"
-                  :value="item.ID"
+                <el-date-picker
+                  v-model="condition.monthTime"
+                  type="month"
+                  placeholder="请选择月份"
+                  format="YYYY-MM"
+                  value-format="YYYY-MM"
+                  clearable
+                  @clear="condition.monthTime = ''"
                 />
-              </el-select>
-            </el-form-item>
-            <el-form-item label="人员:">
-              <el-select
-                v-model="projectSelect"
-                placeholder="请选择人员名称"
-                clearable
-                filterable
-                @clear="clearPeopleSelect"
+              </el-form-item>
+              <el-form-item
+                v-if="timeTypeValue === 'year'"
+                label="年份:"
               >
-                <el-option
-                  v-for="item in userList"
-                  :key="item.ID"
-                  :label="item.nickName"
-                  :value="item.ID"
+                <el-date-picker
+                  v-model="condition.yearTime"
+                  type="year"
+                  placeholder="请选择年份"
+                  format="YYYY"
+                  value-format="YYYY"
+                  clearable
+                  @clear="condition.yearTime = ''"
                 />
-              </el-select>
-            </el-form-item>
-            <el-form-item>
-              <el-dropdown
-                split-button
-                type="primary"
+              </el-form-item>
+              <el-form-item label="项目:">
+                <el-select
+                  v-model="condition.projectCode"
+                  placeholder="请选择项目"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in projectList"
+                    :key="item.ID"
+                    :label="item.name"
+                    :value="item.code"
+                  />
+                </el-select>
+              </el-form-item>
+              <el-form-item label="人员:">
+                <el-select
+                  v-model="peopleSelect"
+                  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-button
+                  type="primary"
+                  icon="Search"
+                  @click="consultPayList"
+                >查询</el-button>
+              </el-form-item>
+              <el-form-item>
+                <el-button
+                  type="primary"
+                  icon="Refresh"
+                  @click="payListReset"
+                >重置</el-button>
+              </el-form-item>
+            </el-form>
+          </el-col>
+        </el-row>
+        <el-row style="margin-top: 10px;margin-left: 30px">
+          <el-col :span="23">
+            <el-table
+              :data="pay.projectCostList"
+              stripe
+              border
+            >
+              <el-table-column
+                label="人员名称"
+                align="center"
+                prop="user.nickName"
+                width="180"
+              />
+              <el-table-column
+                label="费用类型"
+                align="center"
+                prop="projectFeeGenre.name"
+                width="180"
+              />
+              <el-table-column
+                label="所属项目"
+                align="center"
+                prop="project.name"
+                width="180"
+              />
+              <el-table-column
+                label="时间"
+                align="center"
+                prop="feeTime"
+                width="180"
+              />
+              <el-table-column
+                label="部门"
+                align="center"
+                prop="department.name"
+              />
+              <el-table-column
+                label="支入金额(元)"
+                align="center"
+                prop="depositAmount"
+              />
+              <el-table-column
+                label="支出金额(元)"
+                align="center"
+                prop="expenditureAmount"
+              />
+              <el-table-column
+                label="当前余额(元)"
+                align="center"
+                prop="thenBalance"
+              />
+              <el-table-column
+                label="操作"
+                align="center"
               >
-                操作
-                <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>
+                <template #default="scope">
+                  <el-popover
+                    placement="top"
+                    :width="300"
+                    trigger="click"
+                    :content="scope.row.expenseDetail"
+                  >
+                    <template #reference>
                       <el-button
+                        text
                         type="primary"
-                        icon="Plus"
-                        @click="addDetailRecord"
-                      >添加</el-button>
-                    </el-dropdown-item>
-                  </el-dropdown-menu>
+                        icon="Notebook"
+                      >
+                        明细
+                      </el-button>
+                    </template>
+                  </el-popover>
                 </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-table-column>
+            </el-table>
+          </el-col>
+        </el-row>
+        <el-row
+          v-show="pay.costListTotal > 8"
+        >
+          <el-col
+            :span="23"
+            class="flex justify-end"
+          >
+            <el-pagination
+              v-model:current-page="condition.pageInfo.page"
+              v-model:page-size="condition.pageInfo.pageSize"
+              background
+              layout="prev, pager, next"
+              :total="pay.costListTotal"
+              @change="changeCostPage"
+            />
+          </el-col>
+        </el-row>
+      </el-col>
     </el-row>
   </div>
 </template>
 
 <script setup>
-import { getStandbyMoney } from '@/api/cost'
+import { getStandbyMoney, projectCostTypeList } from '@/api/cost'
 import { getAllProject } from '@/api/project'
 import { onMounted, reactive, ref } from 'vue'
 import expense from '@/assets/expenses.png'
+import { getAllUsers } from '@/api/user'
+import { payData } from '@/pinia/cost/cost'
 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 pay = payData()
 // 搜索条件
 const condition = reactive({
   pageInfo: {
@@ -267,6 +326,62 @@ const condition = reactive({
   monthTime: '',
   yearTime: ''
 })
+// 搜索与重置
+const consultPayList = () => {
+  condition.reimburser = peopleSelect.value === '' ? 0 : peopleSelect.value
+  pay.getCostList(condition)
+}
+
+const payListReset = () => {
+  const initialCondition = {
+    pageInfo: {
+      page: 1,
+      pageSize: 8
+    },
+    reimburser: 0,
+    projectCode: '',
+    genre: condition.genre,
+    dayTime: '',
+    monthTime: '',
+    yearTime: ''
+  }
+  Object.assign(condition, initialCondition)
+  peopleSelect.value = ''
+  pay.getCostList(condition)
+}
+
+onMounted(() => {
+  queryAllProject()
+  queryStandbyMoney()
+  getUserList()
+  appointType()
+})
+
+// 指定费用类型
+const appointType = () => {
+  projectCostTypeList().then(res => {
+    if (res.code === 0) {
+      console.log('费用类型列表', res.data)
+      const list = res.data
+      list.forEach(item => {
+        if (item.name === '备用金支出') {
+          condition.genre = item.ID
+          pay.getCostList(condition)
+        }
+      })
+    }
+  })
+}
+
+// 备用金汇总
+const reserve = reactive({})
+const queryStandbyMoney = () => {
+  getStandbyMoney().then(res => {
+    if (res.code === 0) {
+      Object.assign(reserve, res.data)
+    }
+  })
+}
 // 日期查询
 const timeTypeValue = ref('date')
 const timeTypeList = reactive([
@@ -287,20 +402,38 @@ const changeTimeType = (value) => {
   }
 }
 
-// 查询所有项目
-const projectSelect = ref('')
+// 项目搜索
 const projectList = reactive([])
 const queryAllProject = () => {
   getAllProject().then(res => {
     if (res.code === 0) {
       projectList.length = 0
-      projectList.push(res.data)
+      projectList.push(...res.data)
     }
   })
 }
 
-// 删除项目
-const clearPeopleSelect = () => {}
+// 人员搜索
+const peopleSelect = ref('')
+const userList = reactive([])
+const clearPeopleSelect = () => {
+  peopleSelect.value = ''
+  condition.reimburser = 0
+}
+const getUserList = () => {
+  getAllUsers().then(res => {
+    if (res.code === 0) {
+      userList.length = 0
+      userList.push(...res.data)
+    }
+  })
+}
+
+// 改变页码
+const changeCostPage = (val) => {
+  condition.pageInfo.page = val
+  consultPayList()
+}
 </script>
 
 <style scoped>