liding
10 小时以前 49cdc0884a9a4381cd968cffff65e2a332bc675a
src/views/CNAS/process/method/standardNoveltyRetrieval/component/FormDialog.vue
@@ -14,20 +14,33 @@
            </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}.searchNewTime`" label="查新时间:">
                  <el-date-picker v-model="items.searchNewTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
                                  format="YYYY-MM-DD HH:mm:ss" placeholder="请选择" size="small"
                                  style="width: 100%;"></el-date-picker>
                <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">
@@ -35,34 +48,35 @@
                  <el-input :model-value="currentUserName" size="small" disabled></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="24">
                <el-form-item :prop="`taskRel.${index}.searchNewResult`" label="查新结果:">
                  <el-input v-model="items.searchNewResult" type="textarea" :rows="2" size="small"></el-input>
              <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 v-if="items.searchNewSource === 3" :span="24">
                <el-form-item :prop="`taskRel.${index}.searchNewWebsite`"
                              :rules="{required: true, message: '请填写具体网址或网站名称', trigger: 'blur'}"
                              label="来源网址/网站名称:">
                  <el-input v-model="items.searchNewWebsite" size="small" placeholder="请输入具体网址或网站名称"></el-input>
                              label="其他来源名称:">
                  <el-input v-model="items.searchNewWebsite" size="small" placeholder="选填,无需填写网址"></el-input>
                </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.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>
@@ -83,6 +97,7 @@
<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',
@@ -92,16 +107,21 @@
    // 这里存放数据
    return {
      formDia: false,
      searchResultOptions,
      searchSourceOptions,
      form: {
        taskRel: [
          {
            newMethodName: '',
            newStandardNo: '',
            methodName: '',
            standardNo: '',
            fileNo: '',
            searchNewTime: '',
            nextSearchDate: '',
            searchNewResult: '',
            searchNewWebsite: '',
            searchNewSource: '',
            remark: '',
            newMethodName: '',
            newStandardNo: '',
          }
        ]
      },
@@ -118,12 +138,26 @@
  },
  // 方法集合
  methods: {
    isSearchRetired,
    openDia (row) {
      this.formDia = true
    },
    // 添加一条
    addBtn() {
      this.form.taskRel.push({ newMethodName: '', newStandardNo:'', searchNewTime: '', searchNewResult: '', searchNewWebsite: '', 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) {
@@ -135,7 +169,10 @@
          this.editLoad = true
          const records = this.form.taskRel.map(item => ({
            ...item,
            searchNewWebsite: item.searchNewSource === 3 ? item.searchNewWebsite : null
            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