| | |
| | | </div> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item :prop="`taskRel.${index}.newMethodName`" :rules="{required: true, message: '请填写标准名称',trigger: 'blur',}" label="新标准名称:"> |
| | | <el-input v-model="items.newMethodName" size="small"></el-input> |
| | | <el-form-item :prop="`taskRel.${index}.methodName`" :rules="{required: true, message: '请填写标准名称',trigger: 'blur',}" label="标准名称:"> |
| | | <el-input v-model="items.methodName" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :prop="`taskRel.${index}.newStandardNo`" :rules="{required: true,message: '请填写标准号',trigger: 'blur',}" label="新标准号:"> |
| | | <el-input v-model="items.newStandardNo" size="small"></el-input> |
| | | <el-form-item :prop="`taskRel.${index}.standardNo`" :rules="{required: true,message: '请填写标准号',trigger: 'blur',}" label="标准号:"> |
| | | <el-input v-model="items.standardNo" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :prop="`taskRel.${index}.fileNo`" :rules="{required: true,message: '请填写文件编号',trigger: 'blur',}" label="文件编号:"> |
| | | <el-input v-model="items.fileNo" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :prop="`taskRel.${index}.searchNewTime`" :rules="{required: true,message: '请选择查新日期',trigger: 'change',}" label="查新日期:"> |
| | | <el-date-picker v-model="items.searchNewTime" type="date" value-format="YYYY-MM-DD" |
| | | format="YYYY-MM-DD" placeholder="请选择日期" size="small" |
| | | style="width: 100%;" @change="refreshDefaultNextSearchDate(items)"></el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="下次查新日期:"> |
| | | <el-input v-if="isSearchRetired(items.searchNewResult)" model-value="不适用" size="small" disabled /> |
| | | <el-date-picker v-else v-model="items.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="12"> |
| | | <el-form-item label="查新人:"> |
| | | <el-input :model-value="currentUserName" size="small" disabled></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :prop="`taskRel.${index}.searchNewResult`" :rules="{required: true,message: '请选择查新结果',trigger: 'change',}" label="查新结果:"> |
| | | <el-select v-model="items.searchNewResult" placeholder="请选择" style="width: 100%" |
| | | @change="handleSearchResultChange(items)"> |
| | | <el-option v-for="result in searchResultOptions" :key="result" :label="result" :value="result" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item :prop="`taskRel.${index}.searchNewSource`" :rules="{required: true,message: '请选择查新记录来源',trigger: 'change',}" label="查新记录来源:"> |
| | | <el-radio-group v-model="items.searchNewSource"> |
| | | <el-radio :value="0">标准网</el-radio> |
| | | <el-radio :value="1">委托情报</el-radio> |
| | | <el-radio :value="2">标准数</el-radio> |
| | | <el-radio :value="3">其他</el-radio> |
| | | <el-radio v-for="source in searchSourceOptions" :key="source.value" :value="source.value">{{ source.label }}</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :prop="`taskRel.${index}.remark`" :rules="{required: false,message: '请选择备注',trigger: 'change',}" label="备注:"> |
| | | <el-select v-model="items.remark" clearable size="small" style="width: 100%;"> |
| | | <el-option :value="0" label="作废"></el-option> |
| | | <el-option :value="1" label="替换"></el-option> |
| | | </el-select> |
| | | <el-col v-if="items.searchNewSource === 3" :span="24"> |
| | | <el-form-item :prop="`taskRel.${index}.searchNewWebsite`" |
| | | label="其他来源名称:"> |
| | | <el-input v-model="items.searchNewWebsite" size="small" placeholder="选填,无需填写网址"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col v-if="items.searchNewResult === '已修订/有新版本替代'" :span="12"> |
| | | <el-form-item :prop="`taskRel.${index}.newMethodName`" :rules="{required: true,message: '请填写新标准名称',trigger: 'blur',}" label="新标准名称:"> |
| | | <el-input v-model="items.newMethodName" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col v-if="items.searchNewResult === '已修订/有新版本替代'" :span="12"> |
| | | <el-form-item :prop="`taskRel.${index}.newStandardNo`" :rules="{required: true,message: '请填写新标准号',trigger: 'blur',}" label="新标准号:"> |
| | | <el-input v-model="items.newStandardNo" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | |
| | | <script> |
| | | import { addMethodSearchNew } from '@/api/cnas/process/method/standardNoveltyRetrieval' |
| | | import useUserStore from '@/store/modules/user' |
| | | import { calculateNextSearchDate, isSearchRetired, searchResultOptions, searchSourceOptions } from '../options' |
| | | |
| | | export default { |
| | | name: 'FormDialog', |
| | |
| | | // 这里存放数据 |
| | | return { |
| | | formDia: false, |
| | | searchResultOptions, |
| | | searchSourceOptions, |
| | | form: { |
| | | taskRel: [ |
| | | { |
| | | methodName: '', |
| | | standardNo: '', |
| | | fileNo: '', |
| | | searchNewTime: '', |
| | | nextSearchDate: '', |
| | | searchNewResult: '', |
| | | searchNewWebsite: '', |
| | | searchNewSource: '', |
| | | newMethodName: '', |
| | | newStandardNo: '', |
| | | searchNewSource: '', |
| | | remark: '', |
| | | } |
| | | ] |
| | | }, |
| | |
| | | info: {}, |
| | | }; |
| | | }, |
| | | computed: { |
| | | currentUserName() { |
| | | const user = useUserStore() |
| | | return user.nickName || user.name || user.userName |
| | | } |
| | | }, |
| | | // 方法集合 |
| | | methods: { |
| | | isSearchRetired, |
| | | openDia (row) { |
| | | this.formDia = true |
| | | }, |
| | | // 添加一条 |
| | | addBtn() { |
| | | this.form.taskRel.push({ newMethodName: '', newStandardNo:'', searchNewSource: '', remark: ''}); |
| | | this.form.taskRel.push({ methodName: '', standardNo: '', fileNo: '', searchNewTime: '', |
| | | nextSearchDate: '', searchNewResult: '', searchNewWebsite: '', searchNewSource: '', |
| | | newMethodName: '', newStandardNo: '' }); |
| | | }, |
| | | refreshDefaultNextSearchDate(item) { |
| | | item.nextSearchDate = isSearchRetired(item.searchNewResult) ? null |
| | | : calculateNextSearchDate(item.searchNewTime) |
| | | }, |
| | | handleSearchResultChange(item) { |
| | | if (isSearchRetired(item.searchNewResult)) { |
| | | item.nextSearchDate = null |
| | | } else if (!item.nextSearchDate) { |
| | | this.refreshDefaultNextSearchDate(item) |
| | | } |
| | | }, |
| | | // 删除一条 |
| | | deleteHeaderRow (index) { |
| | |
| | | this.$refs['form'].validate((valid) => { |
| | | if (valid) { |
| | | this.editLoad = true |
| | | addMethodSearchNew(this.form.taskRel).then(res => { |
| | | const records = this.form.taskRel.map(item => ({ |
| | | ...item, |
| | | searchNewTime: `${item.searchNewTime} 00:00:00`, |
| | | searchNewWebsite: item.searchNewSource === 3 ? item.searchNewWebsite : null, |
| | | newMethodName: item.searchNewResult === '已修订/有新版本替代' ? item.newMethodName : null, |
| | | newStandardNo: item.searchNewResult === '已修订/有新版本替代' ? item.newStandardNo : null |
| | | })) |
| | | addMethodSearchNew(records).then(res => { |
| | | this.editLoad = false |
| | | this.$message.success('操作成功') |
| | | this.closeDia() |