<template>
|
<div>
|
<el-dialog v-model="formDia" title="新增查新" width="820px" @close="closeDia">
|
<el-form ref="form" :model="form" :rules="formRules" label-width="auto">
|
<el-col :span="8">
|
<el-form-item label="标准名称:" prop="methodName">
|
<el-input v-model="form.methodName" size="small" disabled></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="标准号:" prop="standardNo">
|
<el-input v-model="form.standardNo" size="small" disabled></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="查新日期:" prop="searchNewTime">
|
<el-date-picker v-model="form.searchNewTime" type="date" value-format="YYYY-MM-DD"
|
format="YYYY-MM-DD" placeholder="请选择日期" size="small"
|
style="width: 100%;" @change="refreshDefaultNextSearchDate"></el-date-picker>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="下次查新日期:">
|
<el-input v-if="isSearchRetired" model-value="不适用" size="small" disabled />
|
<el-date-picker v-else v-model="form.nextSearchDate" type="date" value-format="YYYY-MM-DD"
|
format="YYYY-MM-DD" placeholder="默认三个月后,可修改" size="small"
|
style="width: 100%;" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="查新人:">
|
<el-input :model-value="currentUserName" size="small" disabled></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="查新结果:" prop="searchNewResult">
|
<el-select v-model="form.searchNewResult" placeholder="请选择" style="width: 100%"
|
@change="handleSearchResultChange">
|
<el-option v-for="item in searchResultOptions" :key="item" :label="item" :value="item" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="24">
|
<el-form-item label="查新记录来源:" prop="searchNewSource">
|
<el-radio-group v-model="form.searchNewSource">
|
<el-radio v-for="item in searchSourceOptions" :key="item.value" :value="item.value">{{ item.label }}</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
<el-col v-if="form.searchNewSource === 3" :span="24">
|
<el-form-item label="其他来源名称:" prop="searchNewWebsite">
|
<el-input v-model="form.searchNewWebsite" size="small" placeholder="选填,无需填写网址"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col v-if="form.searchNewResult === '已修订/有新版本替代'" :span="12">
|
<el-form-item label="新标准名称:" prop="newMethodName">
|
<el-input v-model="form.newMethodName" size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col v-if="form.searchNewResult === '已修订/有新版本替代'" :span="12">
|
<el-form-item label="新标准号:" prop="newStandardNo">
|
<el-input v-model="form.newStandardNo" size="small"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-form>
|
<template #footer><span class="dialog-footer">
|
<el-button @click="closeDia">取 消</el-button>
|
<el-button :loading="editLoad" type="primary" @click="handleEdit">提 交</el-button>
|
</span></template>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import {
|
updateMethodSearchNew
|
} from '@/api/cnas/process/method/standardNoveltyRetrieval'
|
import useUserStore from '@/store/modules/user'
|
import { calculateNextSearchDate, isSearchRetired, searchResultOptions, searchSourceOptions } from '../options'
|
|
export default {
|
name: 'FormDialog',
|
// import 引入的组件需要注入到对象中才能使用
|
components: {},
|
data() {
|
// 这里存放数据
|
return {
|
formDia: false,
|
searchResultOptions,
|
searchSourceOptions,
|
form: {
|
methodName: '',
|
standardNo: '',
|
isNewStandard: '',
|
newMethodName: '',
|
newStandardNo: '',
|
searchNewTime: '',
|
nextSearchDate: '',
|
searchNewResult: '',
|
searchNewUserName: '',
|
searchNewWebsite: '',
|
searchNewSource: '',
|
fileNo: '',
|
},
|
formRules: {
|
methodName: [{required: true, message: '请填写标准名称',trigger: 'blur'}],
|
standardNo: [{required: true, message: '请填写标准号',trigger: 'blur'}],
|
newMethodName: [{required: true, message: '请填写新标准名称',trigger: 'blur'}],
|
newStandardNo: [{required: true, message: '请填写新标准号',trigger: 'blur'}],
|
searchNewTime: [{required: true, message: '请选择查新日期',trigger: 'change'}],
|
searchNewResult: [{required: true, message: '请选择查新结果',trigger: 'change'}],
|
searchNewSource: [{required: true, message: '请选择查新记录来源',trigger: 'change'}],
|
fileNo: [{required: true, message: '请填写文件号',trigger: 'blur'}],
|
},
|
editLoad: false,
|
info: {},
|
};
|
},
|
computed: {
|
isSearchRetired() {
|
return isSearchRetired(this.form.searchNewResult)
|
},
|
currentUserName() {
|
const user = useUserStore()
|
return user.nickName || user.name || user.userName
|
}
|
},
|
// 方法集合
|
methods: {
|
openDia(row) {
|
this.formDia = true
|
this.form = {
|
...row,
|
searchNewTime: '',
|
nextSearchDate: '',
|
searchNewResult: '',
|
searchNewSource: null,
|
searchNewWebsite: '',
|
newMethodName: '',
|
newStandardNo: ''
|
}
|
},
|
refreshDefaultNextSearchDate() {
|
this.form.nextSearchDate = this.isSearchRetired ? null
|
: calculateNextSearchDate(this.form.searchNewTime)
|
},
|
handleSearchResultChange() {
|
if (this.isSearchRetired) {
|
this.form.nextSearchDate = null
|
} else if (!this.form.nextSearchDate) {
|
this.refreshDefaultNextSearchDate()
|
}
|
},
|
handleEdit() {
|
this.$refs['form'].validate((valid) => {
|
if (valid) {
|
this.editLoad = true
|
const processMethodSearchNews = this.HaveJson(this.form)
|
delete processMethodSearchNews.createTime
|
processMethodSearchNews.searchNewTime = `${processMethodSearchNews.searchNewTime} 00:00:00`
|
if (processMethodSearchNews.searchNewSource !== 3) {
|
processMethodSearchNews.searchNewWebsite = null
|
}
|
updateMethodSearchNew(processMethodSearchNews).then(res => {
|
this.editLoad = false
|
if (res.code === 200){
|
this.$message.success('查新记录已保存')
|
this.closeDia()
|
}
|
}).catch(err => {
|
console.log('err---', err);
|
this.editLoad = false
|
})
|
} else {
|
console.log('error submit!!');
|
return false;
|
}
|
});
|
},
|
closeDia() {
|
this.$refs.form.resetFields();
|
this.formDia = false
|
this.$emit('closeEditDia');
|
},
|
}
|
};
|
</script>
|
|
<style scoped>
|
.form-info {
|
display: inline-block;
|
max-height: 600px;
|
overflow-y: auto;
|
}
|
:deep(.el-dialog) {
|
margin: 6vh auto 50px !important;
|
}
|
</style>
|