Browse Source

导出提交

ljb 8 months ago
parent
commit
7258b4f222

+ 9 - 0
src/api/projectManage/projectList.js

@@ -81,3 +81,12 @@ export const saveJdxbg = (row) => {
     data: row
   })
 }
+
+// 通过年份获取项目列表
+export const getProjectListByYear = (params) => {
+  return request({
+    url: '/api/kd-scientific/xm/list-year',
+    method: 'get',
+    params
+  })
+}

+ 1 - 1
src/page/login/userlogin.vue

@@ -100,7 +100,7 @@
           //用户名
           username: "admin",
           //密码
-          password: "kd2025!",
+          password: "kd2025@2026!",
           //账号类型
           type: "account",
           //验证码的值

+ 3 - 4
src/views/external-reports/external-manage/107-1.vue

@@ -30,13 +30,12 @@
 </template>
 
 <script>
-import { exportBlob } from "@/api/common";
+import { exportBloByPost } from "@/api/common";
 import YearMonthSelect from "@/components/year-month-select";
 import moment from "moment";
 import { getToken } from "@/util/auth";
 import { downloadXls } from "@/util/util";
 import { mapGetters } from "vuex"
-import { computed } from "vue";
 
 export default window.$crudCommon({
   components: {
@@ -80,8 +79,8 @@ export default window.$crudCommon({
       return { yearAndMonth: this.params.year, xmId: this.form.xmId, id: this.form.id, xmStage: this.form.xmStageField, govBonus: this.form.govBonusField };
     },
     handleExport() {
-      exportBlob(
-        `/api/kd-scientific/qyyjkfxmqk/export?${
+      exportBloByPost(
+        `/api/kd-scientific/qyyjkfhdjxgqk/export?${
           this.website.tokenHeader
         }=${getToken()}`,
         this.params

+ 141 - 68
src/views/wel/index.vue

@@ -3,39 +3,39 @@
     
 
     <div style="position: relative; padding: 16px 0; background-color: #fff;">
-      <div style="position: absolute; top: 20px; right: 20px;">
+      <div style="position: absolute; top: 20px; right: 20px; z-index: 99;">
         <year-month-select v-model="currYear" :showMonth="false" style="margin: 0;" />
       </div>
 
       <el-row gutter="20">
-        <el-col :span="8">
-        <basic-card title="研发项目情况">
-          <avue-data-display :option="projectTotalOpt"></avue-data-display>
-          <div style="position: relative;">
-            <basic-chart
-              style="width: 100%; height: 300px"
-              :options="projectStatusOpt"
-            />
-          </div>
-        </basic-card>
+        <el-col :span="9">
+          <basic-card title="研发项目情况">
+            <avue-data-display :option="projectTotalOpt"></avue-data-display>
+            <div style="position: relative;">
+              <basic-chart
+                style="width: 100%; height: 300px"
+                :options="projectStatusOpt"
+              />
+            </div>
+          </basic-card>
         </el-col>
-        <el-col :span="8">
-        <basic-card title="研发费用情况">
-          <avue-data-display :option="RD_costOpt"></avue-data-display>
-          <div style="position: relative;">
-            <basic-chart
-              style="width: 100%; height: 300px"
-              :options="yffyPieOptions"
-            />
-          </div>
-        </basic-card>
+        <el-col :span="9">
+          <basic-card title="研发费用情况">
+            <avue-data-display :option="RD_costOpt"></avue-data-display>
+            <div style="position: relative;">
+              <basic-chart
+                style="width: 100%; height: 300px"
+                :options="yffyPieOptions"
+              />
+            </div>
+          </basic-card>
         </el-col>
       </el-row>
 
       <el-divider></el-divider>
 
       <el-row gutter="20">
-        <el-col :span="8">
+        <el-col :span="9">
         <basic-card title="研发人员情况">
 
           <div style="position: relative;">
@@ -46,7 +46,7 @@
           </div>
         </basic-card>
         </el-col>
-        <el-col :span="8">
+        <el-col :span="9">
         <basic-card title="知识产权情况">
           <div style="position: relative;">
             <basic-chart
@@ -98,6 +98,10 @@ import basicCard from "@/components/basic-card";
 import basicChart from "@/components/basic-chart";
 import numStatistics from "./components/num-statistics.vue";
 import YearMonthSelect from "@/components/year-month-select";
+import { getProjectListByYear } from "@/api/projectManage/projectList";
+import { getList as getCostSummaryList } from "@/api/yfCostManage/yfCostStatistics/yfCostSummaryList";
+import { getList as getZlList } from "@/api/achievement/patentAchievement";
+import Decimal from "decimal.js";
 
 export default {
   name: "home",
@@ -114,30 +118,9 @@ export default {
     }
     return {
       currYear: "",
-      projectTotalOpt: {
-        span: 24,
-        data: [
-          {
-            icon: 'el-icon-view',
-            color: 'rgb(56, 161, 242)',
-            count: 100,
-            decimals: 0,
-            title: "项目总数",
-          },
-        ],
-      },
-      RD_costOpt: {
-        span: 24,
-        data: [
-          {
-            icon: 'el-icon-view',
-            color: 'rgb(56, 161, 242)',
-            count: 1212121,
-            decimals: 2,
-            title: "研发费用(元)",
-          },
-        ],
-      },
+      projectTotal: 0,
+      costAmount: 0,
+      
       // 项目情况
       projectStatusOpt: {},
       // 研发费用情况
@@ -274,21 +257,122 @@ export default {
       }
     };
   },
+  computed: {
+    projectTotalOpt() {
+      return {
+        span: 24,
+        data: [
+          {
+            icon: 'el-icon-view',
+            color: 'rgb(56, 161, 242)',
+            count: this.projectTotal,
+            decimals: 0,
+            title: "项目总数",
+          },
+        ],
+      }
+    },
+    RD_costOpt() {
+      return {
+        span: 24,
+        data: [
+          {
+            icon: 'el-icon-view',
+            color: 'rgb(56, 161, 242)',
+            count: this.costAmount,
+            decimals: 2,
+            title: "研发费用(元)",
+          },
+        ],
+      }
+    },
+  },
+  watch: {
+    currYear() {
+      this.getProjectListByYearFunc();
+      this.getCostSummaryListFunc();
+      this.getZlListFunc();
+    }
+  },
   mounted() {
-    this.initProjectStatusOptions();
+    // this.initProjectStatusOptions();
     this.initRdPersonOptions();
     this.initZscqOptions();
-    this.initYfffChartOptions();
+    // this.initYfffChartOptions();
+
   },
   methods: {
-    initProjectStatusOptions() {
-      this.projectStatusOpt = this.getPieOptions("", [
-        { value: 21, name: "开展中" },
-        { value: 3, name: "已结题" },
-        { value: 3, name: "项目暂停" },
-        { value: 3, name: "项目终止" },
-      ]);
+    getProjectListByYearFunc() {
+      getProjectListByYear({ year: this.currYear }).then(({ data }) => {
+        let _projectList = data.data;
+        this.projectTotal = _projectList.length;
+
+        this.projectStatusOpt = this.getPieOptions("研发项目情况", [
+          { value: _projectList.filter(item => item.status == 1).length, name: "开展中" },
+          { value: _projectList.filter(item => item.status == 2).length, name: "已结题" },
+          { value: _projectList.filter(item => item.status == 3).length, name: "项目暂停" },
+          { value: _projectList.filter(item => item.status == 4).length, name: "项目终止" },
+        ]);
+      });
+    },
+    // 获取费用统计数据
+    getCostSummaryListFunc() {
+      getCostSummaryList({ yearAndMonth: `${this.currYear}12` }).then(({ data }) => {
+        let ryrgfyTotal = new Decimal(0); // 人员人工费用
+        let zjtrfyTotal = new Decimal(0); // 直接投入费用
+        let zjfyycqdtfyTotal = new Decimal(0); // 折旧费用和长期待摊费用
+        let sjfyTotal = new Decimal(0); // 设计费用
+        let wxzctxfyTotal = new Decimal(0); // 无形资产摊销费用
+        let zbtsfyysyfyTotal = new Decimal(0); // 装备调试费用与试验费用
+        let qtfyTotal = new Decimal(0); // 其他费用
+        let wwfyTotal = new Decimal(0); // 委外费用
+        data.data.forEach(item => {
+          ryrgfyTotal = ryrgfyTotal.add(new Decimal(item.ryrgfy));
+          zjtrfyTotal = zjtrfyTotal.add(new Decimal(item.zjtrfy));
+          zjfyycqdtfyTotal = zjfyycqdtfyTotal.add(new Decimal(item.zjfyycqdtfy));
+          sjfyTotal = sjfyTotal.add(new Decimal(item.sjfy));
+          wxzctxfyTotal = wxzctxfyTotal.add(new Decimal(item.wxzctxfy));
+          zbtsfyysyfyTotal = zbtsfyysyfyTotal.add(new Decimal(item.zbtsfyysyfy));
+          qtfyTotal = qtfyTotal.add(new Decimal(item.qtfy));
+          wwfyTotal = wwfyTotal.add(new Decimal(item.wwfy));
+        });
+        // 研发费用总额
+        let costAmount = ryrgfyTotal
+        .add(zjtrfyTotal)
+        .add(zjfyycqdtfyTotal)
+        .add(sjfyTotal)
+        .add(wxzctxfyTotal)
+        .add(zbtsfyysyfyTotal)
+        .add(qtfyTotal)
+        .add(wwfyTotal)
+
+        this.costAmount = costAmount.toFixed(2);
+        this.yffyPieOptions = this.getPieOptions("研发费用情况", [
+          { value: Number(ryrgfyTotal), name: "人员人工费用" },
+          { value: Number(zjtrfyTotal), name: "直接投入费用" },
+          { value: Number(zjfyycqdtfyTotal), name: "折旧费用与长期待摊费用" },
+          { value: Number(wxzctxfyTotal), name: "无形资产摊销费用" },
+          { value: Number(sjfyTotal), name: "设计费用" },
+          { value: Number(zbtsfyysyfyTotal), name: "装备调试费用与试验费用" },
+          { value: Number(wwfyTotal), name: "委托外部研究开发费用" },
+          { value: Number(qtfyTotal), name: "其他费用" },
+        ]);
+      })
+    },
+    // 获取专利数据 
+    getZlListFunc() {
+      getZlList().then(({ data }) => {
+        console.log(data)
+      });
     },
+    // initProjectStatusOptions() {
+    //   this.projectStatusOpt = this.getPieOptions("", [
+    //     { value: 21, name: "开展中" },
+    //     { value: 3, name: "已结题" },
+    //     { value: 3, name: "项目暂停" },
+    //     { value: 3, name: "项目终止" },
+    //   ]);
+    // },
     initRdPersonOptions() {
       this.RD_personOpt = this.getPieOptions("", [
         { value: 21, name: "全职" },
@@ -301,23 +385,12 @@ export default {
         { value: 29, name: "授权数" },
       ]);
     },
-    initYfffChartOptions() {
-      this.yffyPieOptions = this.getPieOptions("", [
-        { value: 800, name: "人员人工费用" },
-        { value: 2400, name: "直接投入费用" },
-        { value: 500, name: "折旧费用与长期待摊费用" },
-        { value: 50, name: "无形资产摊销费用" },
-        { value: 100, name: "设计费用" },
-        { value: 100, name: "装备调试费用与试验费用" },
-        { value: 20, name: "委托外部研究开发费用" },
-        { value: 30, name: "其他费用" },
-      ]);
-    },
     getPieOptions(title, seriesData) {
       let options = {
         title: {
           text: title,
           left: "center",
+          show: false
         },
         tooltip: {
           trigger: "item",

+ 3 - 0
src/views/yf-cost-manage/basic-data-setting/hourse-details-list.vue

@@ -126,6 +126,9 @@ import assetSelect from "@/components/asset-select";
 import moment from "moment";
 import Decimal from "decimal.js";
 import { mapGetters } from "vuex";
+import {exportBloByPost} from "@/api/common";
+import {getToken} from "@/util/auth";
+import {downloadXls} from "@/util/util";
 
 
 export default window.$crudCommon({

+ 3 - 0
src/views/yf-cost-manage/basic-data-setting/ky-device-list.vue

@@ -126,6 +126,9 @@ import assetSelect from "@/components/asset-select";
 import moment from "moment";
 import Decimal from "decimal.js";
 import { mapGetters } from "vuex";
+import {exportBloByPost} from "@/api/common";
+import {getToken} from "@/util/auth";
+import {downloadXls} from "@/util/util";
 
 
 export default window.$crudCommon({

+ 4 - 4
src/views/yf-cost-manage/basic-data-setting/sjzbsy-cost-ledger.vue

@@ -92,11 +92,11 @@
 import YearMonthSelect from "@/components/year-month-select";
 import UploadExcelDialog from "@/components/upload-excel-dialog";
 import projectSelect from "@/components/project-select";
-import {exportBlob} from "@/api/common";
-import {getToken} from "@/util/auth";
-import {downloadXls, summaryMethod} from "@/util/util";
 import moment from "moment";
 import { mapGetters } from "vuex";
+import {exportBloByPost} from "@/api/common";
+import {getToken} from "@/util/auth";
+import {downloadXls, summaryMethod} from "@/util/util";
 
 
 export default window.$crudCommon({
@@ -174,7 +174,7 @@ export default window.$crudCommon({
       this.getList(this.page);
     },
     handleExport() {
-      exportBlob(`/api/kd-scientific/xm/design-cost/export-xmDesignCost?${this.website.tokenHeader}=${getToken()}`, this.params).then(res => {
+      exportBloByPost(`/api/kd-scientific/xm/design-cost/export-xmDesignCost?${this.website.tokenHeader}=${getToken()}`, this.params).then(res => {
         downloadXls(res.data, `${this.pageTitle}.xlsx`);
       });
     },

+ 1 - 1
src/views/yf-cost-manage/basic-data-setting/working-hours-records.vue

@@ -59,7 +59,7 @@
       
     </avue-crud>
 
-    <upload-excel-dialog ref="uploadExcelDialog" :uploadAfter="uploadAfter"/>
+    <upload-excel-dialog ref="uploadExcelDialog" :showTempBtn="false" :uploadAfter="uploadAfter"/>
 
     <WideTablePrinter
       ref="printWideTable"

+ 3 - 0
src/views/yf-cost-manage/basic-data-setting/wxzc-details.vue

@@ -144,6 +144,9 @@ import assetSelect from "@/components/asset-select";
 import moment from "moment";
 import Decimal from "decimal.js";
 import { mapGetters } from "vuex";
+import {exportBloByPost} from "@/api/common";
+import {getToken} from "@/util/auth";
+import {downloadXls} from "@/util/util";
 
 
 export default window.$crudCommon({

+ 1 - 1
src/views/yf-cost-manage/yf-cost-statistics/wxzc-cost-statistics/amortize-cost-summary-list.vue

@@ -154,7 +154,7 @@ export default window.$crudCommon({
       return newParams;
     },
     handleExport() {
-      exportBlob(`/api/kd-scientific/lease/export?${this.website.tokenHeader}=${getToken()}`, this.params).then(res => {
+      exportBlob(`/api/kd-scientific/ys-wxzctxfy/export?${this.website.tokenHeader}=${getToken()}`, this.params).then(res => {
         downloadXls(res.data, `${this.pageTitle}.xlsx`);
       });
     },