From 49cdc0884a9a4381cd968cffff65e2a332bc675a Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期六, 24 十月 2026 21:05:29 +0800
Subject: [PATCH] feat(cnas-search): 1.标准查新模块  2.印章使用记录

---
 src/views/CNAS/process/method/standardNoveltyRetrieval/component/EditFormDia.vue |  118 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 71 insertions(+), 47 deletions(-)

diff --git a/src/views/CNAS/process/method/standardNoveltyRetrieval/component/EditFormDia.vue b/src/views/CNAS/process/method/standardNoveltyRetrieval/component/EditFormDia.vue
index 591109d..279ddb8 100644
--- a/src/views/CNAS/process/method/standardNoveltyRetrieval/component/EditFormDia.vue
+++ b/src/views/CNAS/process/method/standardNoveltyRetrieval/component/EditFormDia.vue
@@ -1,75 +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="鏌ユ柊鏃堕棿锛�" prop="searchNewTime">
-            <el-date-picker v-model="form.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 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="form.searchNewUserName" size="small" disabled></el-input>
+            <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-input v-model="form.searchNewResult" size="small"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="8">
-          <el-form-item label="鏄惁鏄柊鏍囧噯锛�">
-            <el-tag type="success">鏄�</el-tag>
-          </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>
-        </el-col>
-        <el-col v-if="form.searchNewSource === 3" :span="8">
-          <el-form-item label="鏉ユ簮缃戝潃/缃戠珯鍚嶇О锛�" prop="searchNewWebsite"
-                        :rules="[{required: true, message: '璇峰~鍐欏叿浣撶綉鍧�鎴栫綉绔欏悕绉�', trigger: 'blur'}]">
-            <el-input v-model="form.searchNewWebsite" size="small"></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-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>
@@ -87,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',
@@ -96,6 +86,8 @@
     // 杩欓噷瀛樻斁鏁版嵁
     return {
       formDia: false,
+      searchResultOptions,
+      searchSourceOptions,
       form: {
         methodName: '',
         standardNo: '',
@@ -103,18 +95,20 @@
         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'}],
       },
@@ -122,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) => {
@@ -134,13 +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 => {

--
Gitblit v1.9.3