ZaiZai 1 gadu atpakaļ
vecāks
revīzija
36b2f5efbe

+ 1 - 1
public/version.json

@@ -1,3 +1,3 @@
 {
-  "value": "20240507102248"
+  "value": "20240807174354"
 }

+ 17 - 0
src/api/modules/project/project.js

@@ -75,4 +75,21 @@ export default {
             responseType: 'blob',
         }, false)
     },
+    //获取年份
+    async getProjectYear() {
+        return HcApi({
+            url: '/api/blade-attach/project/get-project-year',
+            method: 'get',
+            params: {},
+        }, false)
+    },
+    //项目生成报告
+    async buildReport(form) {
+        return HcApi({
+            url: '/api/blade-attach/project/build-report',
+            method: 'get',
+            params: form,
+            responseType: 'blob',
+        }, false)
+    },
 }

+ 2 - 2
src/config/index.json

@@ -1,7 +1,7 @@
 {
     "version": "20230607160059",
-    "target1": "http://192.168.0.125",
-    "target": "http://39.108.216.210:8014",
+    "target": "http://192.168.0.125:8014",
+    "target1": "http://39.108.216.210:8014",
     "vite": {
         "port": 5187,
         "host": "0.0.0.0"

+ 31 - 12
src/views/project/admin/list.vue

@@ -44,20 +44,17 @@
                     <el-col :span="12">
                         <el-form-item label="选择年份:" prop="year">
                             <el-select v-model="reportsForm.year" placeholder="选择年份">
-                                <el-option label="2021" value="2021" />
-                                <el-option label="2022" value="2022" />
-                                <el-option label="2023" value="2023" />
-                                <el-option label="2024" value="2024" />
+                                <el-option v-for="item in projectYear" :key="item" :label="item" :value="item" />
                             </el-select>
                         </el-form-item>
                     </el-col>
                     <el-col :span="12">
                         <el-form-item label="选择季度:" prop="quarter">
                             <el-select v-model="reportsForm.quarter" placeholder="选择季度">
-                                <el-option label="一季度" value="1" />
-                                <el-option label="二季度" value="2" />
-                                <el-option label="三季度" value="3" />
-                                <el-option label="四季度" value="4" />
+                                <el-option label="一季度" :value="1" />
+                                <el-option label="二季度" :value="2" />
+                                <el-option label="三季度" :value="3" />
+                                <el-option label="四季度" :value="4" />
                             </el-select>
                         </el-form-item>
                     </el-col>
@@ -89,7 +86,7 @@
 <script setup>
 import { onMounted, ref } from 'vue'
 import HcTableList from '../modules/project-list.vue'
-import { arrToId, getArrValue, isNullES, newWindow } from 'js-fast-way'
+import { arrToId, formValidate, getArrValue, isNullES, newDownBlob, newWindow } from 'js-fast-way'
 import { getDictionaryData } from '~src/utils/tools'
 import mainApi from '~api/project/project'
 import { useClick } from 'hc-vue3-ui'
@@ -192,8 +189,20 @@ const deriveTableItem = async (_, resolve) => {
 
 //生成报告弹窗
 const isReportsShow = ref(false)
-const reportsClick = () => {
+const projectYear = ref([])
+const reportsClick = async () => {
     isReportsShow.value = true
+    //获取年份
+    const { data } = await mainApi.getProjectYear()
+    projectYear.value = getArrValue(data)
+    //计算当前时间
+    const today = new Date()
+    const month = today.getMonth() // 0-11
+    const quarter = Math.floor(month / 3) + 1
+    reportsForm.value = {
+        year: today.getFullYear(),
+        quarter: quarter,
+    }
 }
 
 //生成报告表单
@@ -214,8 +223,18 @@ const reportsFormRules = {
 
 //确认生成报告
 const reportsLoding = ref(false)
-const saveReportsClick = () => {
-    window.$message?.error('暂无接口')
+const saveReportsClick = async () => {
+    const isForm = await formValidate(reportsFormRef.value)
+    if (!isForm) return false
+    reportsLoding.value = true
+    const { error, val } = await mainApi.buildReport(reportsForm.value)
+    if (error) {
+        reportsLoding.value = false
+        window.$message?.error('数据异常')
+        return
+    }
+    await newDownBlob(val)
+    reportsLoding.value = false
     isReportsShow.value = false
 }