From 295bdcf5c1c434604d35bdb592660284870014d7 Mon Sep 17 00:00:00 2001
From: zhuguifei <312353457@qq.com>
Date: 星期三, 18 三月 2026 13:36:58 +0800
Subject: [PATCH] feat: 1.新增判定规程明细项目维护 2.新增储丝单柜产量报表 3.新增exceljs、dompdf等文件导出工具 4.修改启动loading、icon、fav
---
ruoyi-plus-soybean/src/views/qm/checkitem/modules/checkitem-operate-drawer.vue | 118 ++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 93 insertions(+), 25 deletions(-)
diff --git a/ruoyi-plus-soybean/src/views/qm/checkitem/modules/checkitem-operate-drawer.vue b/ruoyi-plus-soybean/src/views/qm/checkitem/modules/checkitem-operate-drawer.vue
old mode 100644
new mode 100755
index 54c4ccc..4037161
--- a/ruoyi-plus-soybean/src/views/qm/checkitem/modules/checkitem-operate-drawer.vue
+++ b/ruoyi-plus-soybean/src/views/qm/checkitem/modules/checkitem-operate-drawer.vue
@@ -1,7 +1,11 @@
<script setup lang="ts">
import { computed, ref, watch } from 'vue';
import { jsonClone } from '@sa/utils';
-import { fetchCreateCheckitem, fetchUpdateCheckitem } from '@/service/api/qm/checkitem';
+import {
+ fetchCreateCheckitem,
+ fetchGetRid,
+ fetchUpdateCheckitem
+} from '@/service/api/qm/checkitem';
import { useFormRules, useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
@@ -14,6 +18,8 @@
operateType: NaiveUI.TableOperateType;
/** the edit row data */
rowData?: Api.Qm.Checkitem | null;
+ /** preset stdCode for add */
+ stdCode?: string | null;
}
const props = defineProps<Props>();
@@ -39,9 +45,59 @@
return titles[props.operateType];
});
+const enableOptions = [
+ { label: '鍚敤', value: 1 },
+ { label: '鍋滅敤', value: 0 }
+];
+
+const categoryOptions = [
+ { label: '鎴愬搧', value: 0 },
+ { label: '杈呮枡', value: 1 }
+];
+
+const checkLevelOptions = [
+ { label: 'A', value: 'A' },
+ { label: 'B', value: 'B' },
+ { label: 'C', value: 'C' },
+ { label: 'D', value: 'D' }
+];
+
+const ismixOptions = [
+ { label: '鏄�', value: 1 },
+ { label: '鍚�', value: 0 }
+];
+
+const delOptions = [
+ { label: '姝e父', value: 0 },
+ { label: '鍒犻櫎', value: 1 }
+];
+
type Model = Api.Qm.CheckitemOperateParams;
const model = ref<Model>(createDefaultModel());
+const ridOptions = ref<{ label: string; value: string | number }[]>([]);
+
+async function fetchRidOptions(searchText?: string) {
+ const params: any = {};
+ if (searchText) {
+ params.itemName = searchText;
+ }
+ if (props.stdCode) {
+ params.stdCode = props.stdCode;
+ }
+
+ const { data } = await fetchGetRid(params);
+ if (data) {
+ ridOptions.value = data;
+ } else {
+ ridOptions.value = [];
+ }
+}
+
+function handleRidSelectSearch(query: string) {
+ fetchRidOptions(query);
+}
+
function createDefaultModel(): Model {
return {
@@ -49,15 +105,15 @@
itemCode: '',
itemName: '',
unit: '',
- enable: null,
- del: null,
+ enable: 1,
+ del: 0,
itemDes: '',
stdCode: '',
instrumentDes: '',
location: '',
checkLevel: '',
ismix: null,
- rid: '',
+ rid: null,
category: null,
instrumentCode: '',
score: null
@@ -73,11 +129,19 @@
id: createRequiredRule('缂栫爜涓嶈兘涓虹┖'),
};
-function handleUpdateModelWhenEdit() {
+async function handleUpdateModelWhenEdit() {
model.value = createDefaultModel();
+ ridOptions.value = []; // Clear options initially
if (props.operateType === 'edit' && props.rowData) {
Object.assign(model.value, jsonClone(props.rowData));
+ }
+
+ // Fetch options for rid
+ await fetchRidOptions();
+
+ if (props.operateType === 'add' && props.stdCode) {
+ model.value.stdCode = props.stdCode;
}
}
@@ -92,12 +156,14 @@
// request
if (props.operateType === 'add') {
- const { error } = await fetchCreateCheckitem({ itemCode, itemName, unit, enable, del, itemDes, stdCode, instrumentDes, location, checkLevel, ismix, rid, category, instrumentCode, score });
+ const payload = { itemCode, itemName, unit, enable, del, itemDes, stdCode, instrumentDes, location, checkLevel, ismix, rid, category, instrumentCode, score };
+ const { error } = await fetchCreateCheckitem(payload);
if (error) return;
}
if (props.operateType === 'edit') {
- const { error } = await fetchUpdateCheckitem({ id, itemCode, itemName, unit, enable, del, itemDes, stdCode, instrumentDes, location, checkLevel, ismix, rid, category, instrumentCode, score });
+ const payload = { id, itemCode, itemName, unit, enable, del, itemDes, stdCode, instrumentDes, location, checkLevel, ismix, rid, category, instrumentCode, score };
+ const { error } = await fetchUpdateCheckitem(payload);
if (error) return;
}
@@ -110,7 +176,6 @@
if (visible.value) {
handleUpdateModelWhenEdit();
restoreValidation();
- getTreeList();
}
});
</script>
@@ -129,40 +194,43 @@
<NInput v-model:value="model.unit" placeholder="璇疯緭鍏ュ崟浣�" />
</NFormItem>
<NFormItem label="鍚敤" path="enable">
- <NInput v-model:value="model.enable" placeholder="璇疯緭鍏ュ惎鐢�" />
+ <NSelect v-model:value="model.enable" :options="enableOptions" placeholder="璇烽�夋嫨鍚敤" clearable />
</NFormItem>
<NFormItem label="鍒犻櫎" path="del">
- <NInput v-model:value="model.del" placeholder="璇疯緭鍏ュ垹闄�" />
+ <NSelect v-model:value="model.del" :options="delOptions" placeholder="璇烽�夋嫨鍒犻櫎" clearable />
</NFormItem>
<NFormItem label="妫�楠岄」鎻忚堪" path="itemDes">
<NInput v-model:value="model.itemDes" placeholder="璇疯緭鍏ユ楠岄」鎻忚堪" />
</NFormItem>
- <NFormItem label="瑙勭▼浠g爜" path="stdCode">
- <NInput v-model:value="model.stdCode" placeholder="璇疯緭鍏ヨ绋嬩唬鐮�" />
- </NFormItem>
+
<NFormItem label="浠櫒鎻忚堪" path="instrumentDes">
<NInput v-model:value="model.instrumentDes" placeholder="璇疯緭鍏ヤ华鍣ㄦ弿杩�" />
</NFormItem>
- <NFormItem label="缂洪櫡浣嶇疆-澶栬鐢�" path="location">
+ <NFormItem label="缂洪櫡浣嶇疆" path="location">
<NInput v-model:value="model.location" placeholder="璇疯緭鍏ョ己闄蜂綅缃�-澶栬鐢�" />
</NFormItem>
- <NFormItem label="鍒咥,B,C,D鍥涗釜绾у埆" path="checkLevel">
- <NInput v-model:value="model.checkLevel" placeholder="璇疯緭鍏ュ垎A,B,C,D鍥涗釜绾у埆" />
+ <NFormItem label="绾у埆" path="checkLevel">
+ <NSelect v-model:value="model.checkLevel" :options="checkLevelOptions" placeholder="璇烽�夋嫨绾у埆" clearable />
</NFormItem>
<NFormItem label="鏄惁鍚堟垚椤�" path="ismix">
- <NInput v-model:value="model.ismix" placeholder="璇疯緭鍏ユ槸鍚﹀悎鎴愰」" />
+ <NSelect v-model:value="model.ismix" :options="ismixOptions" placeholder="璇烽�夋嫨鏄惁鍚堟垚椤�" clearable />
</NFormItem>
- <NFormItem label="鍏宠仈椤笽D" path="rid">
- <NInput v-model:value="model.rid" placeholder="璇疯緭鍏ュ叧鑱旈」ID" />
+ <NFormItem label="涓婄骇椤�" path="rid">
+ <NSelect
+ v-model:value="model.rid"
+ :options="ridOptions"
+ placeholder="璇烽�夋嫨涓婄骇椤�"
+ clearable
+ filterable
+ @search="handleRidSelectSearch"
+ @focus="() => fetchRidOptions()"
+ />
</NFormItem>
- <NFormItem label="绫诲埆 0:鎴愬搧 1杈呮枡" path="category">
- <NInput v-model:value="model.category" placeholder="璇疯緭鍏ョ被鍒� 0:鎴愬搧 1杈呮枡" />
- </NFormItem>
- <NFormItem label="浠櫒缂栫爜" path="instrumentCode">
- <NInput v-model:value="model.instrumentCode" placeholder="璇疯緭鍏ヤ华鍣ㄧ紪鐮�" />
+ <NFormItem label="绫诲埆" path="category">
+ <NSelect v-model:value="model.category" :options="categoryOptions" placeholder="璇烽�夋嫨绫诲埆" clearable />
</NFormItem>
<NFormItem label="鍒嗗��" path="score">
- <NInput v-model:value="model.score" placeholder="璇疯緭鍏ュ垎鍊�" />
+ <NInputNumber v-model:value="model.score" placeholder="璇疯緭鍏ュ垎鍊�" :precision="2" />
</NFormItem>
</NForm>
<template #footer>
--
Gitblit v1.9.3