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