ソースを参照

立项申请增加修改功能

ljb 10 ヶ月 前
コミット
8063d70783
共有3 個のファイルを変更した56 個の追加17 個の削除を含む
  1. 1 1
      src/option/projectManage/zztlCost.js
  2. 47 14
      src/views/project-manage/components/apply-form.vue
  3. 8 2
      src/views/project-manage/project-list.vue

+ 1 - 1
src/option/projectManage/zztlCost.js

@@ -53,7 +53,7 @@ export default {
     },
     {
       label: '预算金额',
-      prop: 'ysje',
+      prop: 'wzysje',
       type: 'number',
       min: 0,
       precision: 2,

+ 47 - 14
src/views/project-manage/components/apply-form.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="apply-form">
+  <div class="apply-form" v-loading="loading">
     <h3 class="page-title">科德集团</h3>
 
     <h3 class="page-title" style="margin-bottom: 10px;">{{ getDocTile }}</h3>
@@ -122,7 +122,7 @@
         <tr>
           <td class="doc-label">项目预算总额(万元)</td>
           <td class="doc-input">
-              <el-input-number v-model="formData.xmze" type="number" :min="0" controls-position="right" />
+              <el-input-number v-model="formData.xmysze" type="number" :min="0" controls-position="right" />
           </td>
           <td class="doc-label">其中</td>
           <td class="doc-input">
@@ -164,11 +164,14 @@
 <script>
 import { getDictionary } from "@/api/system/dictbiz";
 import { getList as getTechnicanRosterList } from "@/api/basicResource/technicianRoster";
-import { add, update } from "@/api/projectManage/projectList";
+import { add, update, getDetail } from "@/api/projectManage/projectList";
 import moment from "moment";
 import { deepClone } from "@/util/util";
 
 export default {
+  props: {
+    projectId: [String, Number]
+  },
   data() {
     return {
       formData: {},
@@ -263,7 +266,7 @@ export default {
     'formData.xmjssj'(newVal) {
       this.yearList = this.getDateRangeYear(this.formData.xmkssj, newVal);
     },
-    'formData.xmze'(newVal) {
+    'formData.xmysze'(newVal) {
       this.calcBudgetIsExceed(newVal);
     }
   },
@@ -297,8 +300,33 @@ export default {
     this.getDictList("implementation_format", "implementFormatList");
     this.getDictList("expected_outcome_form", "expectedOutComeFormList");
     this.getDictList("economic_objectives", "economicObjectivesList");
+    if (this.projectId) {
+      this.getProjectDetail(this.projectId);
+    }
   },
   methods: {
+    getProjectDetail(xmId) {
+      this.loading = true;
+      getDetail({ id: xmId }).then(({ data }) => {
+        this.loading = false;
+        if (data.code == 200) {
+          let beanData = { ...data.data };
+          beanData.xmfzr = String(beanData.xmfzr || '');
+          beanData.yqcgxs = beanData.yqcgxs.split(",");
+          beanData.xmjsjjmb = beanData.xmjsjjmb.split(",");
+          beanData.lxpw = JSON.parse(beanData.lxpw);
+          beanData.lxbg = JSON.parse(beanData.lxbg);
+          beanData.qtzl = JSON.parse(beanData.qtzl);
+          beanData.xmyszemx = JSON.parse(beanData.xmyszemx);
+          beanData.xmyszemx.forEach(item => {
+            beanData[item.year] = item.amount;
+          });
+          this.formData = { ...beanData };
+        }
+      }).catch(err => {
+        this.loading = false;
+      });
+    },
     getDateRangeYear(sDate, eDate) {
       let yearArr = [];
       if (sDate && eDate) {
@@ -320,7 +348,7 @@ export default {
       });
     },
     handleYearInput(e) {
-      this.calcBudgetIsExceed(this.formData.xmze);
+      this.calcBudgetIsExceed(this.formData.xmysze);
     },
     /**
      * 计算是否超出预算
@@ -369,7 +397,7 @@ export default {
         errorText = '请选择项目开始时间';
       } else if (!this.formData.xmjssj) {
         errorText = '请选择项目结束时间';
-      } else if (!this.formData.xmze) {
+      } else if (!this.formData.xmysze) {
         errorText = '请输入项目预算总额';
       } else if (!this.formData.lxpw.length) {
         errorText = '请上传立项批文!';
@@ -398,23 +426,28 @@ export default {
       let params = deepClone(this.formData);
       params.yqcgxs = params.yqcgxs ? params.yqcgxs.join(',') : '';
       params.xmjsjjmb = params.xmjsjjmb ? params.xmjsjjmb.join(',') : '';
-      params.lxbg = params.lxbg ? params.lxbg.map(item => item.value).join(',') : '';
-      params.lxpw = params.lxpw ? params.lxpw.map(item => item.value).join(',') : '';
-      params.qtzl = params.qtzl ? params.qtzl.map(item => item.value).join(',') : '';
+      params.lxbg = JSON.stringify(params.lxbg);
+      params.lxpw = JSON.stringify(params.lxpw);
+      params.qtzl = JSON.stringify(params.qtzl);
       let yearAmountList = [];
       this.yearList.forEach(year => {
         yearAmountList.push({ year: Number(year), amount: params[year] || 0 });
         delete params[year];
       });
-      params.yearAmountList = yearAmountList;
+      params.xmyszemx = JSON.stringify(yearAmountList);
 
-      console.log(params)
-      // this.addOrUpdate(params);
+      this.addOrUpdate(params);
     },
     addOrUpdate(params) {
       let func = params.id ? update : add;
-      add(params).then(res => {
-
+      this.loading = true;
+      func(params).then(({ data }) => {
+        this.loading = false;
+        if (data.code == 200) {
+          this.$message.success(params.id ? '修改成功!' : '保存成功!');
+        }
+      }).catch(err => {
+        this.loading = false;
       });
     }
   },

+ 8 - 2
src/views/project-manage/project-list.vue

@@ -7,6 +7,7 @@
       :page.sync="page"
       :before-open="handleBeforeOpen"
       :permission="permissionList"
+      @row-dblclick="handleRowDbClick"	
     >
       <template slot="menuLeft">
         <el-button
@@ -54,7 +55,7 @@
     >
       <el-tabs type="border-card">
         <el-tab-pane label="1、项目立项" lazy>
-          <apply-form></apply-form>
+          <apply-form :projectId="currProjectId"></apply-form>
         </el-tab-pane>
         <el-tab-pane label="2、科研预算" lazy>
           <project-budget :projectId="currProjectId"></project-budget>
@@ -108,7 +109,7 @@ export default window.$crudCommon({
 
       drawerVisible: false,
 
-      currProjectId: '1940980024879341569'
+      currProjectId: ''
     };
   },
   watch: {
@@ -119,6 +120,11 @@ export default window.$crudCommon({
   },
   methods: {
     handleCreateClick() {
+      this.currProjectId = '';
+      this.drawerVisible = true;
+    },
+    handleRowDbClick(data) {
+      this.currProjectId = data.id;
       this.drawerVisible = true;
     },
     handleExport() {