|
@@ -210,7 +210,7 @@
|
|
|
</parentTable>
|
|
|
</y-page-list-layout>
|
|
|
</div>
|
|
|
- <el-dialog :visible.sync="checkDialogVisible" center width="70%" top="5vh">
|
|
|
+ <el-dialog :visible.sync="checkDialogVisible" center width="70%" top="5vh" @close="clearCheckFrom()">
|
|
|
<el-divider content-position="left">抽检扣分</el-divider>
|
|
|
<el-form ref="spotCheck" :model="spotCheck">
|
|
|
<div>
|
|
@@ -230,6 +230,16 @@
|
|
|
<el-input-number :min="0" style="width:100%;" type="number" v-model="spotCheck.fatalMistake" class="filter-item" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item
|
|
|
+ prop="modified"
|
|
|
+ label-width="120px"
|
|
|
+ label="归属时间:"
|
|
|
+ :rules="[{ required: spotCheck.normalMistake || spotCheck.hardMistake || spotCheck.fatalMistake, message: '请选择归属时间', trigger: 'change' }]"
|
|
|
+ >
|
|
|
+ <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" style="width:100%;" v-model="spotCheck.modified" type="date" placeholder="选择日期"></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :xs="24" :sm="12" :lg="24" :span="12">
|
|
@@ -264,6 +274,16 @@
|
|
|
<el-input-number :min="0" style="width:100%;" type="number" v-model="outsideCheck.serviceAttitude" class="filter-item" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item
|
|
|
+ prop="modified"
|
|
|
+ label-width="120px"
|
|
|
+ label="归属时间:"
|
|
|
+ :rules="[{ required: outsideCheck.normalMistake || outsideCheck.hardMistake || outsideCheck.fatalMistake, message: '请选择归属时间', trigger: 'change' }]"
|
|
|
+ >
|
|
|
+ <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" style="width:100%;" v-model="outsideCheck.modified" type="date" placeholder="选择日期"></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :xs="24" :sm="12" :lg="24" :span="12">
|
|
@@ -298,6 +318,16 @@
|
|
|
<el-input-number :min="0" style="width:100%;" type="number" v-model="insideCheck.serviceAttitude" class="filter-item" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item
|
|
|
+ prop="modified"
|
|
|
+ label-width="120px"
|
|
|
+ label="归属时间:"
|
|
|
+ :rules="[{ required: insideCheck.normalMistake || insideCheck.hardMistake || insideCheck.fatalMistake, message: '请选择归属时间', trigger: 'change' }]"
|
|
|
+ >
|
|
|
+ <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" style="width:100%;" v-model="insideCheck.modified" type="date" placeholder="选择日期"></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :xs="24" :sm="12" :lg="24" :span="12">
|
|
@@ -311,12 +341,17 @@
|
|
|
<el-divider content-position="left">额外加减分</el-divider>
|
|
|
<el-form ref="bonusPoints1" :model="bonusPoints1">
|
|
|
<el-row>
|
|
|
- <el-col :span="8">
|
|
|
+ <el-col :span="6">
|
|
|
<el-form-item prop="score" label-width="120px" label="疑难项目加减分:">
|
|
|
<el-input-number style="width:100%;" type="number" v-model="bonusPoints1.score" class="filter-item" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="16">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="modified" label-width="120px" label="归属时间:" :rules="[{ required: bonusPoints1.score, message: '请选择归属时间', trigger: 'change' }]">
|
|
|
+ <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" style="width:100%;" v-model="bonusPoints1.modified" type="date" placeholder="选择日期"></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
<el-form-item prop="reason" label-width="120px" label="加减分原因:">
|
|
|
<el-input v-model="bonusPoints1.reason" class="filter-item" type="textarea" />
|
|
|
</el-form-item>
|
|
@@ -325,12 +360,17 @@
|
|
|
</el-form>
|
|
|
<el-form ref="bonusPoints2" :model="bonusPoints2">
|
|
|
<el-row>
|
|
|
- <el-col :span="8">
|
|
|
+ <el-col :span="6">
|
|
|
<el-form-item prop="score" label-width="120px" label="总经理加减分:">
|
|
|
<el-input-number style="width:100%;" type="number" v-model="bonusPoints2.score" class="filter-item" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="16">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="modified" label-width="120px" label="归属时间:" :rules="[{ required: bonusPoints2.score, message: '请选择归属时间', trigger: 'change' }]">
|
|
|
+ <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" style="width:100%;" v-model="bonusPoints2.modified" type="date" placeholder="选择日期"></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
<el-form-item prop="reason" label-width="120px" label="加减分原因:">
|
|
|
<el-input v-model="bonusPoints2.reason" class="filter-item" type="textarea" />
|
|
|
</el-form-item>
|
|
@@ -340,12 +380,17 @@
|
|
|
<el-form ref="bonusPoints3" :model="bonusPoints3">
|
|
|
<div>
|
|
|
<el-row>
|
|
|
- <el-col :span="8">
|
|
|
+ <el-col :span="6">
|
|
|
<el-form-item prop="score" label-width="120px" label="部门综合加减分:">
|
|
|
<el-input-number style="width:100%;" type="number" v-model="bonusPoints3.score" class="filter-item" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="16">
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item prop="modified" label-width="120px" label="归属时间:" :rules="[{ required: bonusPoints3.score, message: '请选择归属时间', trigger: 'change' }]">
|
|
|
+ <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" style="width:100%;" v-model="bonusPoints3.modified" type="date" placeholder="选择日期"></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
<el-form-item prop="reason" label-width="120px" label="加减分原因:">
|
|
|
<el-input v-model="bonusPoints3.reason" class="filter-item" type="textarea" />
|
|
|
</el-form-item>
|
|
@@ -511,7 +556,7 @@ export default {
|
|
|
if (this.selectDate) {
|
|
|
this.listQuery.startTime = this.selectDate[0] + ' 00:00:00';
|
|
|
this.listQuery.endTime = this.selectDate[1] + ' 23:59:59';
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
this.listQuery.startTime = null;
|
|
|
this.listQuery.endTime = null;
|
|
|
}
|
|
@@ -548,11 +593,11 @@ export default {
|
|
|
},
|
|
|
// 打开抽检弹窗
|
|
|
openCheckDialog(productionId) {
|
|
|
- this.checkDialogVisible = true;
|
|
|
this.initProQuality({ productionId: productionId, checkLoop: '抽检', businessType: 'MAJOR_BUSINESS' });
|
|
|
this.initProQuality({ productionId: productionId, checkLoop: '内部', businessType: 'MAJOR_BUSINESS' });
|
|
|
this.initProQuality({ productionId: productionId, checkLoop: '外部', businessType: 'MAJOR_BUSINESS' });
|
|
|
this.initProBonusPoints(productionId, 'MAJOR_BUSINESS');
|
|
|
+ this.checkDialogVisible = true;
|
|
|
},
|
|
|
// 质检信息基础信息赋值
|
|
|
initProQuality(productionPerformance) {
|
|
@@ -572,27 +617,13 @@ export default {
|
|
|
if (res.code === 200 && res.data !== null) {
|
|
|
switch (productionPerformance.checkLoop) {
|
|
|
case '抽检':
|
|
|
- this.spotCheck.id = res.data.id;
|
|
|
- this.spotCheck.fatalMistake = res.data.fatalMistake;
|
|
|
- this.spotCheck.hardMistake = res.data.hardMistake;
|
|
|
- this.spotCheck.normalMistake = res.data.normalMistake;
|
|
|
- this.spotCheck.reason = res.data.reason;
|
|
|
+ this.spotCheck = res.data;
|
|
|
break;
|
|
|
case '内部':
|
|
|
- this.insideCheck.id = res.data.id;
|
|
|
- this.insideCheck.fatalMistake = res.data.fatalMistake;
|
|
|
- this.insideCheck.hardMistake = res.data.hardMistake;
|
|
|
- this.insideCheck.normalMistake = res.data.normalMistake;
|
|
|
- this.insideCheck.serviceAttitude = res.data.serviceAttitude;
|
|
|
- this.insideCheck.reason = res.data.reason;
|
|
|
+ this.insideCheck = res.data;
|
|
|
break;
|
|
|
case '外部':
|
|
|
- this.outsideCheck.id = res.data.id;
|
|
|
- this.outsideCheck.fatalMistake = res.data.fatalMistake;
|
|
|
- this.outsideCheck.hardMistake = res.data.hardMistake;
|
|
|
- this.outsideCheck.normalMistake = res.data.normalMistake;
|
|
|
- this.outsideCheck.serviceAttitude = res.data.serviceAttitude;
|
|
|
- this.outsideCheck.reason = res.data.reason;
|
|
|
+ this.outsideCheck = res.data;
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -635,40 +666,91 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
// 保存质检信息
|
|
|
- saveOrUpdateCheck() {
|
|
|
- const performances = [];
|
|
|
- performances.push(this.spotCheck);
|
|
|
- performances.push(this.insideCheck);
|
|
|
- performances.push(this.outsideCheck);
|
|
|
- this.$api.businessProductionPerformance.saveOrUpdate(performances).then((res) => {
|
|
|
- if (res.code === 200 && res.data) {
|
|
|
- this.$notify({
|
|
|
- title: '成功',
|
|
|
- message: '质检信息保存成功!',
|
|
|
- type: 'success',
|
|
|
- duration: 3000,
|
|
|
+ async saveOrUpdateCheck() {
|
|
|
+ try {
|
|
|
+ await Promise.all([
|
|
|
+ this.$refs.spotCheck.validate(),
|
|
|
+ this.$refs.insideCheck.validate(),
|
|
|
+ this.$refs.outsideCheck.validate(),
|
|
|
+ this.$refs.bonusPoints1.validate(),
|
|
|
+ this.$refs.bonusPoints2.validate(),
|
|
|
+ this.$refs.bonusPoints3.validate(),
|
|
|
+ ]);
|
|
|
+ const performances = [];
|
|
|
+ if (this.spotCheck.normalMistake || this.spotCheck.hardMistake || this.spotCheck.fatalMistake) {
|
|
|
+ performances.push(this.spotCheck);
|
|
|
+ }
|
|
|
+ if (this.insideCheck.normalMistake || this.insideCheck.hardMistake || this.insideCheck.fatalMistake) {
|
|
|
+ performances.push(this.insideCheck);
|
|
|
+ }
|
|
|
+ if (this.outsideCheck.normalMistake || this.outsideCheck.hardMistake || this.outsideCheck.fatalMistake) {
|
|
|
+ performances.push(this.outsideCheck);
|
|
|
+ }
|
|
|
+ if (performances.length > 0) {
|
|
|
+ this.$api.businessProductionPerformance.saveOrUpdate(performances).then((res) => {
|
|
|
+ if (res.code === 200 && res.data) {
|
|
|
+ this.$notify({
|
|
|
+ title: '成功',
|
|
|
+ message: '质检信息保存成功!',
|
|
|
+ type: 'success',
|
|
|
+ duration: 3000,
|
|
|
+ });
|
|
|
+ this.clearCheckFrom();
|
|
|
+ }
|
|
|
});
|
|
|
- this.checkDialogVisible = false;
|
|
|
}
|
|
|
- });
|
|
|
+ } catch (error) {
|
|
|
+ console.log('校验未通过');
|
|
|
+ return;
|
|
|
+ }
|
|
|
},
|
|
|
// 保存额外加减分
|
|
|
- saveOrUpdateBonusPoints() {
|
|
|
- const bonusPointsArr = [];
|
|
|
- bonusPointsArr.push(this.bonusPoints1);
|
|
|
- bonusPointsArr.push(this.bonusPoints2);
|
|
|
- bonusPointsArr.push(this.bonusPoints3);
|
|
|
- this.$api.businessProductionBonusPoints.saveOrUpdate(bonusPointsArr).then((res) => {
|
|
|
- if (res.code === 200 && res.data) {
|
|
|
- this.$notify({
|
|
|
- title: '成功',
|
|
|
- message: '额外加减分信息保存成功!',
|
|
|
- type: 'success',
|
|
|
- duration: 3000,
|
|
|
+ async saveOrUpdateBonusPoints() {
|
|
|
+ try {
|
|
|
+ await Promise.all([
|
|
|
+ this.$refs.spotCheck.validate(),
|
|
|
+ this.$refs.insideCheck.validate(),
|
|
|
+ this.$refs.outsideCheck.validate(),
|
|
|
+ this.$refs.bonusPoints1.validate(),
|
|
|
+ this.$refs.bonusPoints2.validate(),
|
|
|
+ this.$refs.bonusPoints3.validate(),
|
|
|
+ ]);
|
|
|
+ const bonusPointsArr = [];
|
|
|
+ if (this.bonusPoints1.score) {
|
|
|
+ bonusPointsArr.push(this.bonusPoints1);
|
|
|
+ }
|
|
|
+ if (this.bonusPoints2.score) {
|
|
|
+ bonusPointsArr.push(this.bonusPoints2);
|
|
|
+ }
|
|
|
+ if (this.bonusPoints3.score) {
|
|
|
+ bonusPointsArr.push(this.bonusPoints3);
|
|
|
+ }
|
|
|
+ if (bonusPointsArr.length > 0) {
|
|
|
+ this.$api.businessProductionBonusPoints.saveOrUpdate(bonusPointsArr).then((res) => {
|
|
|
+ if (res.code === 200 && res.data) {
|
|
|
+ this.$notify({
|
|
|
+ title: '成功',
|
|
|
+ message: '额外加减分信息保存成功!',
|
|
|
+ type: 'success',
|
|
|
+ duration: 3000,
|
|
|
+ });
|
|
|
+ this.clearCheckFrom();
|
|
|
+ }
|
|
|
});
|
|
|
- this.checkDialogVisible = false;
|
|
|
}
|
|
|
- });
|
|
|
+ } catch (error) {
|
|
|
+ console.log('校验未通过');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ clearCheckFrom() {
|
|
|
+ this.$refs.spotCheck.resetFields();
|
|
|
+ this.$refs.insideCheck.resetFields();
|
|
|
+ this.$refs.outsideCheck.resetFields();
|
|
|
+ this.$refs.bonusPoints1.resetFields();
|
|
|
+ this.$refs.bonusPoints2.resetFields();
|
|
|
+ this.$refs.bonusPoints3.resetFields();
|
|
|
+ this.checkDialogVisible = false;
|
|
|
},
|
|
|
},
|
|
|
};
|