Parcourir la source

新增 首页 收款提醒列表

xuwenhao il y a 8 mois
Parent
commit
efd8ee1bee

+ 9 - 0
server/service/admin/project.go

@@ -14,6 +14,15 @@ func (ps *ProjectService) QueryProjectList(info request.SearchProject) (list int
 	limit := info.PageInfo.PageSize
 	offset := info.PageInfo.PageSize * (info.PageInfo.Page - 1)
 	project, total, err := dao.QueryProjectList(limit, offset, info.State, info.Name, info.Time)
+
+	for i, p := range project {
+		collection, err := dao.QueryCollection(p.Code)
+		if err != nil {
+			return nil, total, err
+		}
+		project[i].Collection = collection
+	}
+
 	return project, total, err
 }
 

+ 76 - 36
web/src/view/dashboard/dashboardTable/dashboardTable.vue

@@ -1,56 +1,96 @@
 <template>
   <div class="commit-table">
     <div class="commit-table-title">
-      更新日志
+      需收款项目
     </div>
     <div class="log">
-      <div
-        v-for="(item,key) in dataTimeline"
-        :key="key"
-        class="log-item"
+      <el-table
+        :data="projectList"
+        max-height="400"
       >
-        <div class="flex-1 flex key-box">
-          <span
-            class="key"
-            :class="key<3&&'top'"
-          >{{ key+1 }}</span>
-        </div>
-        <div class="flex-5 flex message">{{ item.message }}</div>
-        <div class="flex-3 flex form">{{ item.from }}</div>
-      </div>
+        <el-table-column
+          prop="name"
+          label="项目名称"
+          align="center"
+        />
+        <el-table-column
+          prop="price"
+          label="项目总金额"
+          align="center"
+        />
+        <el-table-column
+          label="已收款金额"
+          align="center"
+        >
+          <template #default="scope">
+            {{ already(scope.row) }}
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="还需收款金额"
+          align="center"
+        >
+          <template #default="scope">
+            {{ isTo(scope.row) }}
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="collectionTime"
+          label="完成日期"
+          align="center"
+        />
+      </el-table>
     </div>
   </div>
 </template>
 
 <script setup>
-import { Commits } from '@/api/github'
-import { formatTimeToStr } from '@/utils/date.js'
-import { ref } from 'vue'
+import { onMounted, reactive, ref } from 'vue'
+import { getProjectList } from '@/api/project'
 
-defineOptions({
-  name: 'DashboardTable',
-})
+const projectList = ref()
 
-const loading = ref(true)
-const dataTimeline = ref([])
+const condition = reactive({
+  pageInfo: {
+    page: 1,
+    pageSize: 1000
+  },
+  name: '',
+  time: '',
+  state: 3
+})
 
-const loadCommits = () => {
-  Commits(0).then(({ data }) => {
-    loading.value = false
-    data.forEach((element, index) => {
-      if (element.commit.message && index < 10) {
-        dataTimeline.value.push({
-          from: formatTimeToStr(element.commit.author.date, 'yyyy-MM-dd'),
-          title: element.commit.author.name,
-          showDayAndMonth: true,
-          message: element.commit.message,
-        })
-      }
-    })
+const queryData = async() => {
+  await getProjectList(condition).then(res => {
+    projectList.value = res.data.list
   })
 }
 
-loadCommits()
+// 计算
+const already = (val) => {
+  console.log(val.collection)
+  let sum = 0
+  for (const key in val.collection) {
+    sum = sum + Number(val.collection[key].price)
+  }
+  return sum
+}
+
+const isTo = (val) => {
+  let sum = 0
+  for (const key in val.collection) {
+    sum = sum + Number(val.collection[key].price)
+  }
+  return Number(val.price) - sum
+}
+
+defineOptions({
+  name: 'DashboardTable',
+})
+
+onMounted(() => {
+  queryData()
+})
 </script>
 
 <style lang="scss" scoped>