|
@@ -6,7 +6,7 @@
|
|
|
<div class="project-basic-info">
|
|
<div class="project-basic-info">
|
|
|
<div class="info-row">{{ `研发项目名称:${ formData.xmmc || '' }` }}</div>
|
|
<div class="info-row">{{ `研发项目名称:${ formData.xmmc || '' }` }}</div>
|
|
|
<div class="info-row">{{ `项目负责人:${ getXmfzrName || '' }` }}</div>
|
|
<div class="info-row">{{ `项目负责人:${ getXmfzrName || '' }` }}</div>
|
|
|
- <div class="info-row">{{ `项目申请单位:${ formData.xmsqdw || '' }` }}</div>
|
|
|
|
|
|
|
+ <div class="info-row">{{ `项目申请单位:${ xmsqdwName }` }}</div>
|
|
|
<div class="info-row">{{ `项目执行期:${ getXmDateRange || '' }` }}</div>
|
|
<div class="info-row">{{ `项目执行期:${ getXmDateRange || '' }` }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
@@ -14,30 +14,42 @@
|
|
|
<table>
|
|
<table>
|
|
|
<tbody>
|
|
<tbody>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td class="doc-label">研发项目名称</td>
|
|
|
|
|
|
|
+ <td class="doc-label">
|
|
|
|
|
+ <span style="color: red; padding-right: 3px; font-size: 16px;">*</span>研发项目名称
|
|
|
|
|
+ </td>
|
|
|
<td class="doc-input">
|
|
<td class="doc-input">
|
|
|
- <el-input v-model="formData.xmmc" placeholder="请输入项目名称" />
|
|
|
|
|
|
|
+ <el-input v-model="formData.xmmc" placeholder="请输入项目名称" :disabled="isEdit" />
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class="doc-label">
|
|
|
|
|
+ <span style="color: red; padding-right: 3px; font-size: 16px;">*</span>项目编号
|
|
|
</td>
|
|
</td>
|
|
|
- <td class="doc-label">项目编号</td>
|
|
|
|
|
<td class="doc-input">
|
|
<td class="doc-input">
|
|
|
- <el-input
|
|
|
|
|
- v-model="formData.xmbh"
|
|
|
|
|
- placeholder="请输入项目编号"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <el-input v-model="formData.xmbh" placeholder="请输入项目编号" :disabled="isEdit" />
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td class="doc-label">项目申请单位</td>
|
|
|
|
|
|
|
+ <td class="doc-label">
|
|
|
|
|
+ <span style="color: red; padding-right: 3px; font-size: 16px;">*</span>项目申请单位
|
|
|
|
|
+ </td>
|
|
|
<td colspan="3">
|
|
<td colspan="3">
|
|
|
<!-- <el-input
|
|
<!-- <el-input
|
|
|
v-model="formData.xmsqdw"
|
|
v-model="formData.xmsqdw"
|
|
|
placeholder="请选择项目申请单位"
|
|
placeholder="请选择项目申请单位"
|
|
|
/> -->
|
|
/> -->
|
|
|
- <second-unit-cascader v-model="formData.xmsqdwid" :yearAndMonth="yearAndMonth" style="width: 100%;"></second-unit-cascader>
|
|
|
|
|
|
|
+ <second-unit-cascader
|
|
|
|
|
+ v-model="formData.xmsqdwid"
|
|
|
|
|
+ :yearAndMonth="yearAndMonth"
|
|
|
|
|
+ style="width: 100%;"
|
|
|
|
|
+ :disabled="isEdit"
|
|
|
|
|
+ @change="handleSecondUnitChange"
|
|
|
|
|
+ >
|
|
|
|
|
+ </second-unit-cascader>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td class="doc-label">研发开始时间</td>
|
|
|
|
|
|
|
+ <td class="doc-label">
|
|
|
|
|
+ <span style="color: red; padding-right: 3px; font-size: 16px;">*</span>研发开始时间
|
|
|
|
|
+ </td>
|
|
|
<td class="doc-input">
|
|
<td class="doc-input">
|
|
|
<el-date-picker
|
|
<el-date-picker
|
|
|
v-model="formData.xmkssj"
|
|
v-model="formData.xmkssj"
|
|
@@ -45,9 +57,12 @@
|
|
|
value-format="yyyy-MM-dd"
|
|
value-format="yyyy-MM-dd"
|
|
|
placeholder="请选择日期"
|
|
placeholder="请选择日期"
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
|
|
+ :disabled="isEdit"
|
|
|
></el-date-picker>
|
|
></el-date-picker>
|
|
|
</td>
|
|
</td>
|
|
|
- <td class="doc-label">研发结束时间</td>
|
|
|
|
|
|
|
+ <td class="doc-label">
|
|
|
|
|
+ <span style="color: red; padding-right: 3px; font-size: 16px;">*</span>研发结束时间
|
|
|
|
|
+ </td>
|
|
|
<td class="doc-input">
|
|
<td class="doc-input">
|
|
|
<el-date-picker
|
|
<el-date-picker
|
|
|
v-model="formData.xmjssj"
|
|
v-model="formData.xmjssj"
|
|
@@ -55,20 +70,26 @@
|
|
|
value-format="yyyy-MM-dd"
|
|
value-format="yyyy-MM-dd"
|
|
|
placeholder="请选择日期"
|
|
placeholder="请选择日期"
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
|
|
+ :disabled="isEdit"
|
|
|
></el-date-picker>
|
|
></el-date-picker>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td class="doc-label">项目负责人</td>
|
|
|
|
|
|
|
+ <td class="doc-label">
|
|
|
|
|
+ <span style="color: red; padding-right: 3px; font-size: 16px;">*</span>项目负责人
|
|
|
|
|
+ </td>
|
|
|
<td class="doc-input">
|
|
<td class="doc-input">
|
|
|
<avue-select
|
|
<avue-select
|
|
|
v-model="formData.xmfzr"
|
|
v-model="formData.xmfzr"
|
|
|
placeholder="请选择"
|
|
placeholder="请选择"
|
|
|
:dic="fzrList"
|
|
:dic="fzrList"
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
|
|
+ :disabled="isEdit"
|
|
|
></avue-select>
|
|
></avue-select>
|
|
|
</td>
|
|
</td>
|
|
|
- <td class="doc-label">研究类型</td>
|
|
|
|
|
|
|
+ <td class="doc-label">
|
|
|
|
|
+ <span style="color: red; padding-right: 3px; font-size: 16px;">*</span>研究类型
|
|
|
|
|
+ </td>
|
|
|
<td class="doc-input">
|
|
<td class="doc-input">
|
|
|
<avue-select
|
|
<avue-select
|
|
|
v-model="formData.yjlx"
|
|
v-model="formData.yjlx"
|
|
@@ -79,7 +100,9 @@
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td class="doc-label">项目来源</td>
|
|
|
|
|
|
|
+ <td class="doc-label">
|
|
|
|
|
+ <span style="color: red; padding-right: 3px; font-size: 16px;">*</span>项目来源
|
|
|
|
|
+ </td>
|
|
|
<td class="doc-input">
|
|
<td class="doc-input">
|
|
|
<avue-select
|
|
<avue-select
|
|
|
v-model="formData.xmly"
|
|
v-model="formData.xmly"
|
|
@@ -88,7 +111,9 @@
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
></avue-select>
|
|
></avue-select>
|
|
|
</td>
|
|
</td>
|
|
|
- <td class="doc-label">项目开展形式</td>
|
|
|
|
|
|
|
+ <td class="doc-label">
|
|
|
|
|
+ <span style="color: red; padding-right: 3px; font-size: 16px;">*</span>项目开展形式
|
|
|
|
|
+ </td>
|
|
|
<td class="doc-input">
|
|
<td class="doc-input">
|
|
|
<avue-select
|
|
<avue-select
|
|
|
v-model="formData.xmkzxs"
|
|
v-model="formData.xmkzxs"
|
|
@@ -99,7 +124,9 @@
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td class="doc-label">预期成果形式</td>
|
|
|
|
|
|
|
+ <td class="doc-label">
|
|
|
|
|
+ <span style="color: red; padding-right: 3px; font-size: 16px;">*</span>预期成果形式
|
|
|
|
|
+ </td>
|
|
|
<td class="doc-input">
|
|
<td class="doc-input">
|
|
|
<avue-select
|
|
<avue-select
|
|
|
multiple
|
|
multiple
|
|
@@ -109,7 +136,9 @@
|
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
|
></avue-select>
|
|
></avue-select>
|
|
|
</td>
|
|
</td>
|
|
|
- <td class="doc-label">项目技术经济目标</td>
|
|
|
|
|
|
|
+ <td class="doc-label">
|
|
|
|
|
+ <span style="color: red; padding-right: 3px; font-size: 16px;">*</span>项目技术经济目标
|
|
|
|
|
+ </td>
|
|
|
<td class="doc-input">
|
|
<td class="doc-input">
|
|
|
<avue-select
|
|
<avue-select
|
|
|
multiple
|
|
multiple
|
|
@@ -121,17 +150,22 @@
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td class="doc-label">项目预算总额(万元)</td>
|
|
|
|
|
|
|
+ <td class="doc-label">
|
|
|
|
|
+ <span style="color: red; padding-right: 3px; font-size: 16px;">*</span>项目预算总额(万元)
|
|
|
|
|
+ </td>
|
|
|
<td class="doc-input">
|
|
<td class="doc-input">
|
|
|
- <el-input-number v-model="formData.xmysze" type="number" :min="0" controls-position="right" />
|
|
|
|
|
|
|
+ <!-- <el-input-number v-model="formData.xmysze" type="number" :min="0" controls-position="right" :disabled="isEdit" /> -->
|
|
|
|
|
+ {{ getXmysze }}
|
|
|
|
|
+ </td>
|
|
|
|
|
+ <td class="doc-label">
|
|
|
|
|
+ <span style="color: red; padding-right: 3px; font-size: 16px;">*</span>其中
|
|
|
</td>
|
|
</td>
|
|
|
- <td class="doc-label">其中</td>
|
|
|
|
|
<td class="doc-input">
|
|
<td class="doc-input">
|
|
|
<div class="year-list">
|
|
<div class="year-list">
|
|
|
<div class="year-list-item" v-for="year of yearList" :key="year" :style="{ height: yearList.length == 1 ? '51px' : '32px', lineHeight: yearList.length == 1 ? '51px' : '32px' }">
|
|
<div class="year-list-item" v-for="year of yearList" :key="year" :style="{ height: yearList.length == 1 ? '51px' : '32px', lineHeight: yearList.length == 1 ? '51px' : '32px' }">
|
|
|
<div class="year" >{{ year }}</div>
|
|
<div class="year" >{{ year }}</div>
|
|
|
<div class="year-input">
|
|
<div class="year-input">
|
|
|
- <input v-model="formData[year]" type="number" :class="{ 'red': budgetIsExceed }" @input="handleYearInput" style="padding: 0 6px;" />
|
|
|
|
|
|
|
+ <input v-model="formData[year]" type="number" :class="{ 'red': budgetIsExceed }" @input="handleYearInput" style="padding: 0 6px;" :disabled="isEdit" />
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -169,12 +203,15 @@ import { getList as getTechnicanRosterList } from "@/api/basicResource/technicia
|
|
|
import { add, update, getDetail } from "@/api/projectManage/projectList";
|
|
import { add, update, getDetail } from "@/api/projectManage/projectList";
|
|
|
import moment from "moment";
|
|
import moment from "moment";
|
|
|
import { deepClone } from "@/util/util";
|
|
import { deepClone } from "@/util/util";
|
|
|
|
|
+import Decimal from "decimal.js";
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
components: {
|
|
components: {
|
|
|
secondUnitCascader
|
|
secondUnitCascader
|
|
|
},
|
|
},
|
|
|
props: {
|
|
props: {
|
|
|
|
|
+ // add or edit
|
|
|
|
|
+ operateType: String,
|
|
|
projectId: [String, Number]
|
|
projectId: [String, Number]
|
|
|
},
|
|
},
|
|
|
data() {
|
|
data() {
|
|
@@ -200,7 +237,43 @@ export default {
|
|
|
// 经济目标
|
|
// 经济目标
|
|
|
economicObjectivesList: [],
|
|
economicObjectivesList: [],
|
|
|
|
|
|
|
|
- option: {
|
|
|
|
|
|
|
+ xmsqdwName: ''
|
|
|
|
|
+
|
|
|
|
|
+ };
|
|
|
|
|
+ },
|
|
|
|
|
+ watch: {
|
|
|
|
|
+ 'formData.xmkssj'(newVal) {
|
|
|
|
|
+ this.yearList = this.getDateRangeYear(newVal, this.formData.xmjssj);
|
|
|
|
|
+ if (!newVal) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ let cMonth = moment(newVal).format('yyyyMM');
|
|
|
|
|
+ if (cMonth != this.xmStartDateYearAndMonth) {
|
|
|
|
|
+ this.xmStartDateYearAndMonth = cMonth;
|
|
|
|
|
+ this.getTechnicanRosterListFunc(cMonth)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ 'formData.xmjssj'(newVal) {
|
|
|
|
|
+ this.yearList = this.getDateRangeYear(this.formData.xmkssj, newVal);
|
|
|
|
|
+ },
|
|
|
|
|
+ 'formData.xmysze'(newVal) {
|
|
|
|
|
+ this.calcBudgetIsExceed(newVal);
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ computed: {
|
|
|
|
|
+ isEdit() {
|
|
|
|
|
+ return this.operateType == 'edit';
|
|
|
|
|
+ },
|
|
|
|
|
+ // 获取项目预算总额
|
|
|
|
|
+ getXmysze() {
|
|
|
|
|
+ let total = new Decimal(0);
|
|
|
|
|
+ this.yearList.forEach(year => {
|
|
|
|
|
+ total = total.add (new Decimal(this.formData[year] || 0));
|
|
|
|
|
+ });
|
|
|
|
|
+ return total.toFixed(2);
|
|
|
|
|
+ },
|
|
|
|
|
+ option() {
|
|
|
|
|
+ return {
|
|
|
submitBtn: false,
|
|
submitBtn: false,
|
|
|
emptyBtn: false,
|
|
emptyBtn: false,
|
|
|
submitText: '保存',
|
|
submitText: '保存',
|
|
@@ -212,6 +285,7 @@ export default {
|
|
|
type: "upload",
|
|
type: "upload",
|
|
|
multiple: true,
|
|
multiple: true,
|
|
|
span: 24,
|
|
span: 24,
|
|
|
|
|
+ disabled: this.isEdit,
|
|
|
dataType: "object",
|
|
dataType: "object",
|
|
|
propsHttp: {
|
|
propsHttp: {
|
|
|
url: "link",
|
|
url: "link",
|
|
@@ -241,6 +315,7 @@ export default {
|
|
|
res: "data",
|
|
res: "data",
|
|
|
},
|
|
},
|
|
|
action: '/api/kd-resource/oss/endpoint/put-file',
|
|
action: '/api/kd-resource/oss/endpoint/put-file',
|
|
|
|
|
+ disabled: this.isEdit,
|
|
|
uploadPreview: (file, column, done) => {
|
|
uploadPreview: (file, column, done) => {
|
|
|
window.open(file.url, "_blank");
|
|
window.open(file.url, "_blank");
|
|
|
return;
|
|
return;
|
|
@@ -257,6 +332,7 @@ export default {
|
|
|
multiple: true,
|
|
multiple: true,
|
|
|
span: 24,
|
|
span: 24,
|
|
|
action: '/api/kd-resource/oss/endpoint/put-file',
|
|
action: '/api/kd-resource/oss/endpoint/put-file',
|
|
|
|
|
+ disabled: this.isEdit,
|
|
|
uploadPreview: (file, column, done) => {
|
|
uploadPreview: (file, column, done) => {
|
|
|
window.open(file.url, "_blank");
|
|
window.open(file.url, "_blank");
|
|
|
return;
|
|
return;
|
|
@@ -269,29 +345,8 @@ export default {
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
],
|
|
],
|
|
|
- },
|
|
|
|
|
- };
|
|
|
|
|
- },
|
|
|
|
|
- watch: {
|
|
|
|
|
- 'formData.xmkssj'(newVal) {
|
|
|
|
|
- this.yearList = this.getDateRangeYear(newVal, this.formData.xmjssj);
|
|
|
|
|
- if (!newVal) {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- let cMonth = moment(newVal).format('yyyyMM');
|
|
|
|
|
- if (cMonth != this.xmStartDateYearAndMonth) {
|
|
|
|
|
- this.xmStartDateYearAndMonth = cMonth;
|
|
|
|
|
- this.getTechnicanRosterListFunc(cMonth)
|
|
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- 'formData.xmjssj'(newVal) {
|
|
|
|
|
- this.yearList = this.getDateRangeYear(this.formData.xmkssj, newVal);
|
|
|
|
|
- },
|
|
|
|
|
- 'formData.xmysze'(newVal) {
|
|
|
|
|
- this.calcBudgetIsExceed(newVal);
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- computed: {
|
|
|
|
|
getDocTile() {
|
|
getDocTile() {
|
|
|
let tit = '研发项目资料';
|
|
let tit = '研发项目资料';
|
|
|
if (this.formData.xmmc) {
|
|
if (this.formData.xmmc) {
|
|
@@ -330,6 +385,9 @@ export default {
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ handleSecondUnitChange(val, nameArr) {
|
|
|
|
|
+ this.xmsqdwName = nameArr.join('/');
|
|
|
|
|
+ },
|
|
|
getProjectDetail(xmId) {
|
|
getProjectDetail(xmId) {
|
|
|
this.loading = true;
|
|
this.loading = true;
|
|
|
getDetail({ id: xmId }).then(({ data }) => {
|
|
getDetail({ id: xmId }).then(({ data }) => {
|
|
@@ -346,7 +404,7 @@ export default {
|
|
|
beanData.xmyszemx.forEach(item => {
|
|
beanData.xmyszemx.forEach(item => {
|
|
|
beanData[item.year] = item.amount;
|
|
beanData[item.year] = item.amount;
|
|
|
});
|
|
});
|
|
|
- console.log(beanData)
|
|
|
|
|
|
|
+
|
|
|
this.formData = { ...beanData };
|
|
this.formData = { ...beanData };
|
|
|
}
|
|
}
|
|
|
}).catch(err => {
|
|
}).catch(err => {
|
|
@@ -421,69 +479,79 @@ export default {
|
|
|
errorText = '请输入项目编号';
|
|
errorText = '请输入项目编号';
|
|
|
} else if (!this.formData.xmsqdwid || !this.formData.xmsqdwid.length) {
|
|
} else if (!this.formData.xmsqdwid || !this.formData.xmsqdwid.length) {
|
|
|
errorText = '请选择项目申请单位';
|
|
errorText = '请选择项目申请单位';
|
|
|
- } else if (!this.formData.yjlx) {
|
|
|
|
|
- errorText = '请选择研究类型'
|
|
|
|
|
- } else if (!this.formData.xmfzr) {
|
|
|
|
|
- errorText = '请选择项目负责人';
|
|
|
|
|
} else if (!this.formData.xmkssj) {
|
|
} else if (!this.formData.xmkssj) {
|
|
|
errorText = '请选择项目开始时间';
|
|
errorText = '请选择项目开始时间';
|
|
|
} else if (!this.formData.xmjssj) {
|
|
} else if (!this.formData.xmjssj) {
|
|
|
errorText = '请选择项目结束时间';
|
|
errorText = '请选择项目结束时间';
|
|
|
|
|
+ } else if (!this.formData.yjlx) {
|
|
|
|
|
+ errorText = '请选择研究类型'
|
|
|
|
|
+ } else if (!this.formData.xmfzr) {
|
|
|
|
|
+ errorText = '请选择项目负责人';
|
|
|
|
|
+ } else if (!this.formData.xmly) {
|
|
|
|
|
+ errorText = '请选择项目来源';
|
|
|
|
|
+ } else if (!this.formData.xmkzxs) {
|
|
|
|
|
+ errorText = '请选择项目开展形式';
|
|
|
|
|
+ } else if (!this.formData.yqcgxs) {
|
|
|
|
|
+ errorText = '请选择预期成果形式';
|
|
|
|
|
+ } else if (!this.formData.xmjsjjmb) {
|
|
|
|
|
+ errorText = '请选择项目技术经济目标';
|
|
|
} else if (!this.formData.xmysze) {
|
|
} else if (!this.formData.xmysze) {
|
|
|
errorText = '请输入项目预算总额';
|
|
errorText = '请输入项目预算总额';
|
|
|
}
|
|
}
|
|
|
- // else if (!this.formData.lxpw.length) {
|
|
|
|
|
- // errorText = '请上传立项批文!';
|
|
|
|
|
- // } else if (!this.formData.lxbg.length) {
|
|
|
|
|
- // errorText = '请上传立项报告!';
|
|
|
|
|
- // }
|
|
|
|
|
else {
|
|
else {
|
|
|
- let yearAmount = 0;
|
|
|
|
|
this.yearList.forEach(year => {
|
|
this.yearList.forEach(year => {
|
|
|
- let account = this.formData[year] || 0;
|
|
|
|
|
- yearAmount += account;
|
|
|
|
|
|
|
+ if (this.formData[year] === null || this.formData[year] === undefined || this.formData[year] === '') {
|
|
|
|
|
+ errorText = `${year}年的预算不能为空`;
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
- if (yearAmount > this.budgetAmount) {
|
|
|
|
|
- errorText = '所有年份的预算不等于项目预算总额,请重新填写!';
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return errorText;
|
|
return errorText;
|
|
|
},
|
|
},
|
|
|
handleSaveBtn() {
|
|
handleSaveBtn() {
|
|
|
- let errorText = this.validForm();
|
|
|
|
|
- if (errorText) {
|
|
|
|
|
- this.$message.error(errorText+'!');
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (this.operateType === 'add') {
|
|
|
|
|
+ let errorText = this.validForm();
|
|
|
|
|
+ if (errorText) {
|
|
|
|
|
+ this.$message.error(errorText+'!');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- let params = deepClone(this.formData);
|
|
|
|
|
- params.yqcgxs = params.yqcgxs ? params.yqcgxs.join(',') : '';
|
|
|
|
|
- params.xmjsjjmb = params.xmjsjjmb ? params.xmjsjjmb.join(',') : '';
|
|
|
|
|
- params.xmsqdwid = params.xmsqdwid ? params.xmsqdwid[params.xmsqdwid.length - 1] : '';
|
|
|
|
|
- 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.xmyszemx = JSON.stringify(yearAmountList);
|
|
|
|
|
|
|
+ let params = deepClone(this.formData);
|
|
|
|
|
+ params.yqcgxs = params.yqcgxs ? params.yqcgxs.join(',') : '';
|
|
|
|
|
+ params.xmjsjjmb = params.xmjsjjmb ? params.xmjsjjmb.join(',') : '';
|
|
|
|
|
+ params.xmsqdwid = params.xmsqdwid ? params.xmsqdwid[params.xmsqdwid.length - 1] : '';
|
|
|
|
|
+ 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.xmyszemx = JSON.stringify(yearAmountList);
|
|
|
|
|
|
|
|
- this.addOrUpdate(params);
|
|
|
|
|
|
|
+ this.addOrUpdate(params);
|
|
|
|
|
+ } else if (this.operateType === 'edit') {
|
|
|
|
|
+ let params = {
|
|
|
|
|
+ xmId: this.formData.id,
|
|
|
|
|
+ yjlx: this.formData.yjlx,
|
|
|
|
|
+ xmly: this.formData.xmly,
|
|
|
|
|
+ xmkzxs: this.formData.xmkzxs,
|
|
|
|
|
+ yqcgxs: this.formData.yqcgxs.join(','),
|
|
|
|
|
+ xmjsjjmb: this.formData.xmjsjjmb.join(',')
|
|
|
|
|
+ };
|
|
|
|
|
+ this.addOrUpdate(params);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
},
|
|
},
|
|
|
addOrUpdate(params) {
|
|
addOrUpdate(params) {
|
|
|
- let func = params.id ? update : add;
|
|
|
|
|
|
|
+ let func = this.operateType === 'edit' ? update : add;
|
|
|
this.loading = true;
|
|
this.loading = true;
|
|
|
func(params).then(({ data }) => {
|
|
func(params).then(({ data }) => {
|
|
|
this.loading = false;
|
|
this.loading = false;
|
|
|
if (data.code == 200) {
|
|
if (data.code == 200) {
|
|
|
- if (!params.id) {
|
|
|
|
|
- this.$emit('success', data.data);
|
|
|
|
|
- this.formData.id = data.data.xmId;
|
|
|
|
|
- }
|
|
|
|
|
- this.$message.success(params.id ? '修改成功!' : '保存成功!');
|
|
|
|
|
|
|
+ this.$emit('success', data.data);
|
|
|
|
|
+ this.$message.success(this.operateType === 'edit' ? '修改成功!' : '保存成功!');
|
|
|
}
|
|
}
|
|
|
}).catch(err => {
|
|
}).catch(err => {
|
|
|
this.loading = false;
|
|
this.loading = false;
|