中航光电热表web
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

335 lines
12 KiB

7 months ago
<template>
<el-dialog
:title="title"
append-to-body
:modelValue="openShow"
width="70%"
@close="closeDialog"
>
<el-form
ref="form"
:model="projectForm"
:rules="projectRules"
label-width="100px"
v-show="title == '新增' || title == '编辑'"
>
<el-row>
<el-col :span="8">
<el-form-item label="项目名称:" prop="tpProject">
<el-select filterable v-model="projectForm.tpProject" placeholder="请选择项目" @change="tpProjectChange" value-key="id">
<el-option v-for="(item,index) in projectOption" :key="index" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="试验条件:" prop="condition">
<el-input
disabled
v-model="projectForm.condition"
placeholder="请输入试验条件"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="试验标准:" prop="standard">
<el-input
disabled
v-model="projectForm.standard"
placeholder="请输入试验标准"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="镀种:" prop="plateId">
<el-select v-model="projectForm.plateId">
<el-option label="镀种一" value="1"></el-option>
<el-option label="镀种二" value="2"></el-option>
<el-option label="镀种三" value="3"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="试验件:" prop="testMaterialId">
<el-select v-model="projectForm.testMaterialId" placeholder="请选择试验件">
<el-option label="零件" :value="1"></el-option>
<el-option label="试片" :value="0"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="工艺员:" prop="processUserId">
<el-select v-model="projectForm.processUserId" placeholder="请选择工艺员">
<el-option label="张三" :value="1"></el-option>
<el-option label="李四" :value="0"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="试验时长:" prop="testDuration">
<el-input-number
v-model="projectForm.testDuration"
controls-position="right"
@change="handleChange"
:min="1"
>
</el-input-number>
<span style="margin-left: 5px"></span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="提前下发:" prop="genBefore">
<el-input-number
v-model="projectForm.genBefore"
controls-position="right"
@change="handleChange"
:min="1"
>
</el-input-number>
<span style="margin-left: 5px"></span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="临期提醒:" prop="remind">
<el-input-number
v-model="projectForm.remind"
controls-position="right"
@change="handleChange"
:min="projectForm.testDuration"
>
</el-input-number>
<span style="margin-left: 5px"></span>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="试验周期" prop="jobType">
<el-select
placeholder="请选择试验周期"
v-model="projectForm.jobType"
style="width: 268px"
@change="changeCycle"
>
<el-option label="每周" :value="1"></el-option>
<el-option label="每月" :value="2"></el-option>
<el-option label="每年" :value="3"></el-option>
</el-select>
</el-form-item>
<div style="margin-left: 100px" v-show="projectForm.jobType == 1">
<el-checkbox-group v-model="projectForm.jobTypeWeekValue">
<el-checkbox label="周一" value="周一" />
<el-checkbox label="周二" value="周二"></el-checkbox>
<el-checkbox label="周三" value="周三"></el-checkbox>
<el-checkbox label="周四" value="周四"></el-checkbox>
<el-checkbox label="周五" value="周五"></el-checkbox>
<el-checkbox label="周六" value="周六"></el-checkbox>
<el-checkbox label="周日" value="周日"></el-checkbox>
</el-checkbox-group>
</div>
<div style="margin-left: 100px" v-show="projectForm.jobType == 2">
<div style="display: flex; align-items: center">
<span>时间每月</span>
<el-select v-model="projectForm.monthValue" style="width: 120px; margin: 0 5px">
<el-option v-for="item in 31" :key="item" :label="item" :value="item"></el-option>
</el-select>
<span></span>
<el-button style="margin-left: 10px" type="primary" circle @click="addMonth"
><el-icon> <Plus /> </el-icon
></el-button>
</div>
<div style="display: flex; flex-wrap: wrap; margin-top: 10px">
<el-tag
v-for="tag in monthTags"
:key="tag"
closable
type="info"
style="width: 62px; margin-right: 5px; margin-top: 10px"
@close="closeMonthTag(tag, index)"
>
{{ tag }}
</el-tag>
</div>
<div>
<el-checkbox
v-model="projectForm.monthChecked"
label="任务若遇周末或当月无该日期,顺延至下周一"
/>
</div>
</div>
<div style="margin-left: 100px" v-show="projectForm.jobType == 3">
<div style="display: flex; align-items: center">
<span>时间</span>
<el-select v-model="projectForm.yearMonth" style="width: 120px; margin: 0 5px">
<el-option v-for="item in 12" :key="item" :label="item" :value="item"></el-option>
</el-select>
<span></span>
<el-select v-model="projectForm.yearDays" style="width: 120px; margin: 0 5px">
<el-option v-for="item in 31" :key="item" :label="item" :value="item"></el-option>
</el-select>
<span></span>
<el-button style="margin-left: 10px" type="primary" circle @click="addYears"
><el-icon> <Plus /> </el-icon
></el-button>
</div>
<div style="display: flex; flex-wrap: wrap; margin-top: 10px">
<el-tag
v-for="(tag, index) in yearTags"
:key="tag"
closable
type="info"
style="width: 86px; margin-right: 5px; margin-top: 10px"
@close="closeYearsTag(tag, index)"
>
{{ tag }}
</el-tag>
</div>
<div>
<el-checkbox
v-model="projectForm.yearChecked"
label="任务若遇周末或当月无该日期,顺延至下周一"
/>
</div>
</div>
</el-col>
</el-row>
</el-form>
<div v-show="title == '详情'">
<div style="font-weight: 550; margin-bottom: 20px">检测信息</div>
<el-row :gutter="20" style="padding: 5px 0">
<el-col :span="6"
>镀种{{
projectForm.plateId == '1' ? '镀种一' : projectForm.plateId == '2' ? '镀种二' : '镀种三'
}}</el-col
>
<el-col :span="6">试验件{{ projectForm.testMaterialId }}</el-col>
<el-col :span="6"><span>试验项目</span></el-col>
<el-col :span="6"
>试验标准<span style="color: #1890ff">{{ projectForm.standard }}</span></el-col
>
</el-row>
<el-row :gutter="20" style="padding: 5px 0">
<el-col :span="6">试验条件{{ projectForm.condition }}</el-col>
<el-col :span="6"
>工艺员{{ projectForm.processUserId && projectForm.processUserId.userName }}</el-col
>
<el-col :span="6">提前下发天数{{ projectForm.genBefore }}</el-col>
<el-col :span="6">试验时长{{ projectForm.testDuration }}</el-col>
</el-row>
<el-row :gutter="20" style="padding: 5px 0">
<el-col :span="6">临期提醒天数{{ projectForm.remind }}</el-col>
<el-col :span="6"
>试验周期{{ projectForm.jobTypeTitle
}}{{ projectForm.tags && projectForm.tags.length }}
<div style="margin-left: 60px">
<el-tag
v-for="tag in projectForm.tags"
:key="tag"
type="info"
style="width: 86px; margin-right: 5px; margin-top: 10px"
>
{{ tag }}
</el-tag>
</div>
</el-col>
<el-col :span="6">维护人{{ projectForm.updateUser }}</el-col>
<el-col :span="6">更新完成时间{{ projectForm.updateTime }}</el-col>
</el-row>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</template>
</el-dialog>
</template>
<script>
import { getList} from '@/api/qualityManagement/periodicTesting/testProject.js';
export default {
props: {
showDialog: {
type: Boolean,
default: false,
},
title:{
type:String,
default:''
}
},
data() {
return {
openShow: false,
projectOption:[],
projectForm: {},
projectRules: {
tpProject: [{ required: true, message: '请输入项目名称', trigger: 'blur' }],
testMaterialId: [{ required: true, message: '请选择试验件', trigger: 'blur' }],
processUserId: [{ required: true, message: '请选择工艺员', trigger: 'blur' }],
remind: [{ required: true, message: '请选择超期提醒', trigger: 'blur' }],
jobType: [{ required: true, message: '请选择试验周期', trigger: 'blur' }],
},
};
},
mounted() {
this.openShow = this.showDialog;
this.getProject()
},
methods: {
closeDialog() {
this.openShow = false;
this.$emit('closeDialog');
},
getProject(){
getList(1,999999).then(res=>{
this.projectOption = res.data.data.records
})
},
tpProjectChange(val){
let selectedOption = this.projectOption.find(option => option.id === val);
this.projectForm.condition = selectedOption.condition
this.projectForm.standard = selectedOption.standard
},
// 切换周期
changeCycle() {
this.projectForm.monthValue = '';
this.projectForm.weekList = [];
this.monthTags = [];
this.projectForm.yearMonth = '';
this.projectForm.yearDays = '';
this.yearTags = [];
},
// 添加月份日期
addMonth() {
let value = this.projectForm.monthValue + '日';
if (this.monthTags.find(item => item == value)) return;
this.monthTags.push(this.projectForm.monthValue + '日');
},
// 添加年份日期
addYears() {
let value = this.projectForm.yearMonth + '月' + this.projectForm.yearDays + '日';
if (this.yearTags.find(item => item == value)) return;
if (this.projectForm.yearMonth == '' || this.projectForm.yearDays == '') return;
this.yearTags.push(this.projectForm.yearMonth + '月' + this.projectForm.yearDays + '日');
},
// 删除月份日期
closeMonthTag(item, index) {
this.monthTags = this.monthTags.filter(tags => tags != item);
},
// 删除年份日期
closeYearsTag(item, index) {
this.yearTags = this.yearTags.filter(tags => tags != item);
},
submit(){
},
},
};
</script>
<style lang="scss" scoped></style>