liding
10 小时以前 49cdc0884a9a4381cd968cffff65e2a332bc675a
src/views/CNAS/process/method/standardNoveltyRetrieval/component/EditFormDia.vue
@@ -1,52 +1,63 @@
<template>
  <div>
    <el-dialog v-model="formDia" title="编辑" width="80%" @close="closeDia">
    <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"></el-input>
            <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"></el-input>
            <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="fileNo">
            <el-input v-model="form.fileNo" size="small"></el-input>
          <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-tag type="success">是</el-tag>
          <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="查新记录来源:" prop="searchNewSource">
            <el-radio-group v-model="form.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-group>
          <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="remark">
            <el-select v-model="form.remark"
                       clearable size="small">
              <el-option :value="0" label="作废"></el-option>
              <el-option :value="1" label="替换"></el-option>
          <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 v-if="form.isNewStandard == 1" :span="8">
        <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.isNewStandard == 1" :span="8">
        <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>
@@ -64,6 +75,8 @@
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',
@@ -73,21 +86,29 @@
    // 这里存放数据
    return {
      formDia: false,
      searchResultOptions,
      searchSourceOptions,
      form: {
        methodName: '',
        standardNo: '',
        isNewStandard: '',
        newMethodName: '',
        newStandardNo: '',
        searchNewTime: '',
        nextSearchDate: '',
        searchNewResult: '',
        searchNewUserName: '',
        searchNewWebsite: '',
        searchNewSource: '',
        remark: '',
        fileNo: '',
      },
      formRules: {
        methodName: [{required: true, message: '请填写标准名称',trigger: 'blur'}],
        standardNo: [{required: true, message: '请填写标准号',trigger: 'blur'}],
        newMethodName: [{required: false, message: '请填写新标准名称',trigger: 'blur'}],
        newStandardNo: [{required: false, 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'}],
      },
@@ -95,11 +116,40 @@
      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, isNewStandard: 1}
      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) => {
@@ -107,10 +157,14 @@
          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.$message.success('查新记录已保存')
              this.closeDia()
            }
          }).catch(err => {