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/FormDialog.vue | 95 +++++++++++++++++++++++++++++++++--------------
1 files changed, 66 insertions(+), 29 deletions(-)
diff --git a/src/views/CNAS/process/method/standardNoveltyRetrieval/component/FormDialog.vue b/src/views/CNAS/process/method/standardNoveltyRetrieval/component/FormDialog.vue
index 784cd5f..5f666ba 100644
--- a/src/views/CNAS/process/method/standardNoveltyRetrieval/component/FormDialog.vue
+++ b/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
--
Gitblit v1.9.3