|
@@ -23,46 +23,179 @@
|
|
|
>
|
|
|
<!-- 零部件DVP 变更后描述-->
|
|
|
<template slot='changeDesc' slot-scope='text, record, index'>
|
|
|
+ <!--试验项目-->
|
|
|
+ <a-input
|
|
|
+ v-if="index === 0"
|
|
|
+ v-model.trim="record.changeDesc"
|
|
|
+ :disabled="dataSource && dataSource !== '0'"
|
|
|
+ :maxLength='100'
|
|
|
+ allowClear
|
|
|
+ :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-project')"/>
|
|
|
+ <!--开发目标要求-->
|
|
|
+ <a-input
|
|
|
+ v-else-if="index === 1"
|
|
|
+ v-model.trim="record.changeDesc"
|
|
|
+ :disabled="dataSource && dataSource !== '0'"
|
|
|
+ :maxLength='100'
|
|
|
+ allowClear
|
|
|
+ :placeholder="$t('global-btn.please-enter') + $t('base.info.development-objective-requirements')"/>
|
|
|
+ <!--试验标准-->
|
|
|
+ <a-input
|
|
|
+ v-else-if="index === 2"
|
|
|
+ v-model.trim="record.changeDesc"
|
|
|
+ :disabled="dataSource && dataSource !== '0'"
|
|
|
+ :maxLength='500'
|
|
|
+ allowClear
|
|
|
+ :placeholder="$t('global-btn.please-enter') + $t('base.info.Test-standards')"/>
|
|
|
+ <!--试验类型-->
|
|
|
+ <a-select
|
|
|
+ v-else-if="index === 3"
|
|
|
+ v-model="record.changeDesc"
|
|
|
+ :options="testTypeList"
|
|
|
+ :filter-option="handleFilterDataList"
|
|
|
+ allowClear
|
|
|
+ :placeholder="$t('plan.dvp.please_select-test-type')"
|
|
|
+ style="width: 100%">
|
|
|
+ </a-select>
|
|
|
+ <!--试验来源-->
|
|
|
+ <a-select
|
|
|
+ v-else-if="index === 4"
|
|
|
+ v-model="record.changeDesc"
|
|
|
+ :options="testSourceList"
|
|
|
+ :filter-option="handleFilterDataList"
|
|
|
+ allowClear
|
|
|
+ :placeholder="$t('global-btn.please-select') + $t('plan.dvp.test-source')"
|
|
|
+ style="width: 100%">
|
|
|
+ </a-select>
|
|
|
<!-- 是否开展试验 -->
|
|
|
- <a-select v-if="index === 0" v-model="record.changeDesc" style="width: 100%" @change="handleCarryOut" allowClear :placeholder="$t('base.info.please-enter-whether-to-develop-experimental-projects')">
|
|
|
+ <a-select
|
|
|
+ v-else-if="index === 5"
|
|
|
+ v-model="record.changeDesc"
|
|
|
+ style="width: 100%"
|
|
|
+ @change="handleCarryOut"
|
|
|
+ allowClear
|
|
|
+ :placeholder="$t('base.info.please-enter-whether-to-develop-experimental-projects')">
|
|
|
<a-select-option :value="1">{{ $t('global-btn.yes') }}</a-select-option>
|
|
|
<a-select-option :value="0">{{ $t('global-btn.no') }}</a-select-option>
|
|
|
</a-select>
|
|
|
- <!--试验类型-->
|
|
|
- <a-select v-else-if="index === 1" v-model="record.changeDesc" :disabled="dataSource && dataSource !== '0'" :options="testTypeList" :filter-option="handleFilterDataList" allowClear :placeholder="$t('plan.dvp.please_select-test-type')" style="width: 100%"></a-select>
|
|
|
- <!--试验来源-->
|
|
|
- <a-select v-else-if="index === 2" v-model="record.changeDesc" :disabled="dataSource && dataSource !== '0'" :options="testSourceList" :filter-option="handleFilterDataList" allowClear :placeholder="$t('global-btn.please-select') + $t('plan.dvp.test-source')" style="width: 100%"></a-select>
|
|
|
- <!--试验项目-->
|
|
|
- <a-input v-else-if="index === 3" v-model.trim="record.changeDesc" :disabled="dataSource && dataSource !== '0'" :maxLength='100' allowClear :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-project')"/>
|
|
|
- <!--开发目标要求-->
|
|
|
- <a-input v-else-if="index === 4" v-model.trim="record.changeDesc" :disabled="dataSource && dataSource !== '0'" :maxLength='100' allowClear :placeholder="$t('global-btn.please-enter') + $t('base.info.development-objective-requirements')"/>
|
|
|
- <!--试验标准-->
|
|
|
- <a-input v-else-if="index === 5" v-model.trim="record.changeDesc" :disabled="dataSource && dataSource !== '0'" :maxLength='500' allowClear :placeholder="$t('global-btn.please-enter') + $t('base.info.Test-standards')"/>
|
|
|
+ <!--是否等效-->
|
|
|
+ <a-select
|
|
|
+ v-else-if="index === 6"
|
|
|
+ :disabled="notCarryOutDisabled"
|
|
|
+ v-model="record.changeDesc"
|
|
|
+ style="width: 100%"
|
|
|
+ @change="handleEquivalent"
|
|
|
+ allowClear
|
|
|
+ :placeholder="$t('global-btn.please-select') + $t('plan.dvp.is-it-an-equivalent-test')">
|
|
|
+ <a-select-option :value="1">{{ $t('plan.dvp.equivalent-experiment') }}</a-select-option>
|
|
|
+ <a-select-option :value="0">{{ $t('plan.dvp.non-equivalent-experiment') }}</a-select-option>
|
|
|
+ </a-select>
|
|
|
<!--等效实验报告编号-->
|
|
|
- <a-select v-else-if="index === 6" v-model="record.changeDesc" :options="equivalentList" :filter-option="handleFilterDataList" allowClear :placeholder="$t('global-btn.please-select') + $t('plan.dvp.equivalent-experiment-report-number')" style="width: 100%"></a-select>
|
|
|
+ <a-select
|
|
|
+ v-else-if="index === 7"
|
|
|
+ :disabled="notCarryOutDisabled || !isEquivalentDisabled"
|
|
|
+ v-model="record.changeDesc"
|
|
|
+ :options="equivalentList"
|
|
|
+ :filter-option="handleFilterDataList"
|
|
|
+ allowClear
|
|
|
+ :placeholder="$t('global-btn.please-select') + $t('plan.dvp.equivalent-experiment-report-number')"
|
|
|
+ style="width: 100%">
|
|
|
+ </a-select>
|
|
|
<!--测试地点-->
|
|
|
- <a-input v-else-if="index === 7" v-model.trim="record.changeDesc" :maxLength='50' allowClear :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-site')"/>
|
|
|
+ <a-input
|
|
|
+ v-else-if="index === 8"
|
|
|
+ :disabled="notCarryOutDisabled || isEquivalentDisabled"
|
|
|
+ v-model.trim="record.changeDesc"
|
|
|
+ :maxLength='50'
|
|
|
+ allowClear
|
|
|
+ :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-site')"/>
|
|
|
<!--测试负责人 -->
|
|
|
- <a-select v-if="index === 8" v-model="record.changeDesc" :options="testOwnerList" allowClear style="width: 100%" :placeholder="$t('global-btn.please-select') + $t('plan.dvp.test-user')" ></a-select>
|
|
|
+ <a-select
|
|
|
+ v-if="index === 9"
|
|
|
+ :disabled="notCarryOutDisabled || isEquivalentDisabled"
|
|
|
+ v-model="record.changeDesc"
|
|
|
+ :options="testOwnerList"
|
|
|
+ allowClear style="width: 100%"
|
|
|
+ :placeholder="$t('global-btn.please-select') + $t('plan.dvp.test-user')" >
|
|
|
+ </a-select>
|
|
|
<!--计划开始时间 -->
|
|
|
- <a-date-picker v-else-if="index === 9" :disabled-date="disabledStartDate" @change='handleStartTime' v-model="record.changeDesc" :placeholder="$t('plan.dvp.please_select-scheduled-start-time')" style="width: 100%" valueFormat="YYYY/MM/DD"/>
|
|
|
+ <a-date-picker
|
|
|
+ v-else-if="index === 10"
|
|
|
+ :disabled="notCarryOutDisabled || isEquivalentDisabled"
|
|
|
+ :disabled-date="disabledStartDate"
|
|
|
+ @change='handleStartTime'
|
|
|
+ v-model="record.changeDesc"
|
|
|
+ :placeholder="$t('plan.dvp.please_select-scheduled-start-time')"
|
|
|
+ style="width: 100%"
|
|
|
+ valueFormat="YYYY/MM/DD"/>
|
|
|
<!--计划结束时间 -->
|
|
|
- <a-date-picker v-else-if="index === 10" :disabled-date="disabledEndDate" @change='handleEndTime' v-model="record.changeDesc" :placeholder="$t('plan.dvp.please_select-scheduled-end-time')" style="width: 100%" valueFormat="YYYY/MM/DD"/>
|
|
|
+ <a-date-picker
|
|
|
+ v-else-if="index === 11"
|
|
|
+ :disabled="(dataSource && dataSource !== '0') || isEquivalentDisabled"
|
|
|
+ :disabled-date="disabledEndDate"
|
|
|
+ @change='handleEndTime'
|
|
|
+ v-model="record.changeDesc"
|
|
|
+ :placeholder="$t('plan.dvp.please_select-scheduled-end-time')"
|
|
|
+ style="width: 100%"
|
|
|
+ valueFormat="YYYY/MM/DD"/>
|
|
|
<!--测试阶段-->
|
|
|
- <a-input v-else-if="index === 11" v-model.trim="record.changeDesc" :maxLength='50' allowClear :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-step')"/>
|
|
|
+ <a-input
|
|
|
+ v-else-if="index === 12"
|
|
|
+ :disabled="notCarryOutDisabled || isEquivalentDisabled"
|
|
|
+ v-model.trim="record.changeDesc"
|
|
|
+ :maxLength='50'
|
|
|
+ allowClear
|
|
|
+ :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-step')"/>
|
|
|
<!--测试次数-->
|
|
|
- <a-input-number v-else-if="index === 12" v-model.number="record.changeDesc" :defaultValue="0" :min="1" :max="999" :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-count')" style="width: 100%"></a-input-number>
|
|
|
+ <a-input-number
|
|
|
+ v-else-if="index === 13"
|
|
|
+ :disabled="notCarryOutDisabled || isEquivalentDisabled"
|
|
|
+ v-model.number="record.changeDesc"
|
|
|
+ :defaultValue="0"
|
|
|
+ :min="1"
|
|
|
+ :max="999"
|
|
|
+ :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.test-count')"
|
|
|
+ style="width: 100%">
|
|
|
+ </a-input-number>
|
|
|
<!--样件类型-->
|
|
|
- <a-input v-else-if="index === 13" v-model.trim="record.changeDesc" :maxLength='50' allowClear :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.sample-type')"/>
|
|
|
+ <a-input
|
|
|
+ v-else-if="index === 14"
|
|
|
+ :disabled="notCarryOutDisabled || isEquivalentDisabled"
|
|
|
+ v-model.trim="record.changeDesc"
|
|
|
+ :maxLength='50'
|
|
|
+ allowClear
|
|
|
+ :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.sample-type')"/>
|
|
|
<!--样本数量-->
|
|
|
- <a-input-number v-else-if="index === 14" v-model.number="record.changeDesc" :defaultValue="0" :min="1" :max="999" :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.number-of-samples')" style="width: 100%"></a-input-number>
|
|
|
+ <a-input-number
|
|
|
+ v-else-if="index === 15"
|
|
|
+ :disabled="notCarryOutDisabled || isEquivalentDisabled"
|
|
|
+ v-model.number="record.changeDesc"
|
|
|
+ :defaultValue="0"
|
|
|
+ :min="1"
|
|
|
+ :max="999"
|
|
|
+ :placeholder="$t('global-btn.please-enter') + $t('plan.dvp.number-of-samples')"
|
|
|
+ style="width: 100%">
|
|
|
+ </a-input-number>
|
|
|
<!-- 不开展试验原因 -->
|
|
|
- <a-textarea v-else-if="index === 15" autoSize v-model.trim="record.changeDesc" :disabled="causeShowFlag" :maxLength="500" :placeholder="$t('base.info.please-enter-change-reason')"></a-textarea>
|
|
|
+ <a-textarea
|
|
|
+ v-else-if="index === 16"
|
|
|
+ autoSize
|
|
|
+ v-model.trim="record.changeDesc"
|
|
|
+ :disabled="causeShowFlag || !notCarryOutDisabled"
|
|
|
+ :maxLength="500"
|
|
|
+ :placeholder="$t('base.info.please-enter-reason-for-not-conducting-the-experiment')">
|
|
|
+ </a-textarea>
|
|
|
</template>
|
|
|
|
|
|
<!-- 变更原因 -->
|
|
|
<template slot='changeReason' slot-scope='text, record, index'>
|
|
|
- <a-textarea autoSize v-model.trim="record.changeReason" :disabled="index < 5 && dataSource && dataSource !== '0'" :maxLength="500" :placeholder="$t('base.info.please-enter-change-reason')"></a-textarea>
|
|
|
+ <a-textarea
|
|
|
+ autoSize
|
|
|
+ v-model.trim="record.changeReason"
|
|
|
+ :disabled="index < 3 && dataSource && dataSource !== '0'"
|
|
|
+ :maxLength="500"
|
|
|
+ :placeholder="$t('base.info.please-enter-change-reason')">
|
|
|
+ </a-textarea>
|
|
|
</template>
|
|
|
|
|
|
<!-- 操作列 -->
|
|
@@ -279,7 +412,11 @@ export default {
|
|
|
/** 等效实验报告编号下拉选项 */
|
|
|
equivalentList: [],
|
|
|
/**数据来源 0-新建1-模板2-FMEA3-历史DVP */
|
|
|
- dataSource: undefined
|
|
|
+ dataSource: undefined,
|
|
|
+ /** 不开展试验 插槽disabled */
|
|
|
+ notCarryOutDisabled: false,
|
|
|
+ /** 等效试验 插槽disabled */
|
|
|
+ isEquivalentDisabled: false
|
|
|
};
|
|
|
},
|
|
|
watch: {
|
|
@@ -483,11 +620,51 @@ export default {
|
|
|
*/
|
|
|
buildData() {
|
|
|
let _that = this;
|
|
|
+ let message = [];
|
|
|
for (let i = 0; i < _that.tableDataLength; i++) {
|
|
|
if (_that.tableData[i].changeDesc && !_that.tableData[i].changeReason) {
|
|
|
_that.tableData[i].changeReason = "";
|
|
|
}
|
|
|
}
|
|
|
+ // 是否开展实验
|
|
|
+ if (_that.tableData[5].changeDesc === undefined) {
|
|
|
+ message.push(_that.$t('base.info.please-enter-whether-to-develop-experimental-projects'));
|
|
|
+ }
|
|
|
+ // 选择了不开展试验,校验不开展原因
|
|
|
+ if (_that.tableData[5].changeDesc === 0) {
|
|
|
+ if (!_that.tableData[16].changeDesc) {
|
|
|
+ message.push(_that.$t('base.info.please-enter-reason-for-not-conducting-the-experiment'));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 选择了等效试验,校验等效实验报告不能为空
|
|
|
+ if (_that.tableData[6].changeDesc === 1) {
|
|
|
+ if (!_that.tableData[7].changeDesc) {
|
|
|
+ message.push(_that.$t('global-btn.please-select') + _that.$t('plan.dvp.equivalent-experiment-report-number'));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (message && message.length > 0) {
|
|
|
+ for (let i = 0; i < message.length; i++) {
|
|
|
+ _that.$notification.warning({message: message[i]});
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 等效/非等效
|
|
|
+ * @param e
|
|
|
+ */
|
|
|
+ handleEquivalent(e) {
|
|
|
+ this.tableData[6].changeDesc = e;
|
|
|
+ // 0: 非等效, 1: 等效
|
|
|
+ if (e === 0) {
|
|
|
+ this.isEquivalentDisabled = false;
|
|
|
+ this.tableData[7].changeDesc = undefined;
|
|
|
+ this.tableData[7].changeReason = undefined;
|
|
|
+ } else {
|
|
|
+ this.isEquivalentDisabled = true;
|
|
|
+ }
|
|
|
},
|
|
|
|
|
|
/**
|
|
@@ -496,43 +673,46 @@ export default {
|
|
|
*/
|
|
|
save() {
|
|
|
let _that = this;
|
|
|
- _that.buildData();
|
|
|
+ // 非空校验
|
|
|
+ if (!_that.buildData()) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
// 请求参数整理
|
|
|
let data = {
|
|
|
dvpId: _that.$store.getters.dvpId,
|
|
|
testId: _that.testId,
|
|
|
- isCarryOut: _that.tableData[0].changeDesc,
|
|
|
- isCarryOutCause: _that.tableData[0].changeReason,
|
|
|
- testType: _that.tableData[1].changeDesc,
|
|
|
- testTypeCause: _that.tableData[1].changeReason,
|
|
|
- testSource: _that.tableData[2].changeDesc,
|
|
|
- testSourceCause: _that.tableData[2].changeReason,
|
|
|
- equivalentId: _that.tableData[6].changeDesc,
|
|
|
- equivalentIdCause: _that.tableData[6].changeReason,
|
|
|
- testProject: _that.tableData[3].changeDesc,
|
|
|
- testProjectCause: _that.tableData[3].changeReason,
|
|
|
- targetRequire: _that.tableData[4].changeDesc,
|
|
|
- targetRequireCause: _that.tableData[4].changeReason,
|
|
|
- testStandard: _that.tableData[5].changeDesc,
|
|
|
- testStandardCause: _that.tableData[5].changeReason,
|
|
|
- testSite: _that.tableData[7].changeDesc,
|
|
|
- testSiteCause: _that.tableData[7].changeReason,
|
|
|
- testUserId: _that.tableData[8].changeDesc,
|
|
|
- testUserIdCause: _that.tableData[8].changeReason,
|
|
|
- testStep: _that.tableData[11].changeDesc,
|
|
|
- testStepCause: _that.tableData[11].changeReason,
|
|
|
- testFrequency: _that.tableData[12].changeDesc,
|
|
|
- testFrequencyCause: _that.tableData[12].changeReason,
|
|
|
- sampleNumber: _that.tableData[14].changeDesc,
|
|
|
- sampleNumberCause: _that.tableData[14].changeReason,
|
|
|
- sampleType: _that.tableData[13].changeDesc,
|
|
|
- sampleTypeCause: _that.tableData[13].changeReason,
|
|
|
- planStartTime: _that.tableData[9].changeDesc,
|
|
|
- planStartTimeCause: _that.tableData[9].changeReason,
|
|
|
- planEndTime: _that.tableData[10].changeDesc,
|
|
|
- planEndTimeCause: _that.tableData[10].changeReason,
|
|
|
- notCarryOutCause: _that.tableData[15].changeDesc,
|
|
|
- notCarryOutCauseChange: _that.tableData[15].changeReason
|
|
|
+ isCarryOut: _that.tableData[5].changeDesc,
|
|
|
+ isCarryOutCause: _that.tableData[5].changeReason,
|
|
|
+ testType: _that.tableData[3].changeDesc,
|
|
|
+ testTypeCause: _that.tableData[3].changeReason,
|
|
|
+ testSource: _that.tableData[4].changeDesc,
|
|
|
+ testSourceCause: _that.tableData[4].changeReason,
|
|
|
+ equivalentId: _that.tableData[7].changeDesc,
|
|
|
+ equivalentIdCause: _that.tableData[7].changeReason,
|
|
|
+ testProject: _that.tableData[0].changeDesc,
|
|
|
+ testProjectCause: _that.tableData[0].changeReason,
|
|
|
+ targetRequire: _that.tableData[1].changeDesc,
|
|
|
+ targetRequireCause: _that.tableData[1].changeReason,
|
|
|
+ testStandard: _that.tableData[2].changeDesc,
|
|
|
+ testStandardCause: _that.tableData[2].changeReason,
|
|
|
+ testSite: _that.tableData[8].changeDesc,
|
|
|
+ testSiteCause: _that.tableData[8].changeReason,
|
|
|
+ testUserId: _that.tableData[9].changeDesc,
|
|
|
+ testUserIdCause: _that.tableData[9].changeReason,
|
|
|
+ testStep: _that.tableData[12].changeDesc,
|
|
|
+ testStepCause: _that.tableData[12].changeReason,
|
|
|
+ testFrequency: _that.tableData[13].changeDesc,
|
|
|
+ testFrequencyCause: _that.tableData[13].changeReason,
|
|
|
+ sampleNumber: _that.tableData[15].changeDesc,
|
|
|
+ sampleNumberCause: _that.tableData[15].changeReason,
|
|
|
+ sampleType: _that.tableData[14].changeDesc,
|
|
|
+ sampleTypeCause: _that.tableData[14].changeReason,
|
|
|
+ planStartTime: _that.tableData[10].changeDesc,
|
|
|
+ planStartTimeCause: _that.tableData[10].changeReason,
|
|
|
+ planEndTime: _that.tableData[11].changeDesc,
|
|
|
+ planEndTimeCause: _that.tableData[11].changeReason,
|
|
|
+ notCarryOutCause: _that.tableData[16].changeDesc,
|
|
|
+ notCarryOutCauseChange: _that.tableData[16].changeReason
|
|
|
};
|
|
|
// 打开审批弹框
|
|
|
_that.submitApprovalTitle = _that.$t('global-btn.apply-for-changes') + _that.$t("global-btn.submit-approval");
|
|
@@ -551,14 +731,15 @@ export default {
|
|
|
* @param val
|
|
|
*/
|
|
|
handleCarryOut(val){
|
|
|
- this.tableData[0].changeDesc = val;
|
|
|
+ this.tableData[5].changeDesc = val;
|
|
|
// 当是否展开试验选择“否”时,其他输入和选择都置灰
|
|
|
if (val === 0) {
|
|
|
this.causeShowFlag = false;
|
|
|
+ this.notCarryOutDisabled = true;
|
|
|
} else {
|
|
|
this.causeShowFlag = true;
|
|
|
+ this.notCarryOutDisabled = false;
|
|
|
}
|
|
|
- this.$forceUpdate();
|
|
|
},
|
|
|
|
|
|
/**
|
|
@@ -594,9 +775,9 @@ export default {
|
|
|
}
|
|
|
this.tableData[8].changeDesc = dateString;
|
|
|
// 当选择的开始时间大于结束时间时,清空结束时间,让用户重新选择结束时间
|
|
|
- if (Date.parse(this.tableData[8].changeDesc) > Date.parse(this.tableData[9].changeDesc)) {
|
|
|
- this.tableData[9].changeDesc = undefined;
|
|
|
- }
|
|
|
+ // if (Date.parse(this.tableData[8].changeDesc) > Date.parse(this.tableData[9].changeDesc)) {
|
|
|
+ // this.tableData[9].changeDesc = undefined;
|
|
|
+ // }
|
|
|
},
|
|
|
/**
|
|
|
* 计划结束时间 时间选择器Change方法
|