From e97b55310155a2dd691bd698a10295a4d867f60c Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期五, 17 四月 2026 15:55:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-plus-soybean/src/views/qm/batch/modules/batch-search.vue |  166 ++++++++++++++++++++++++++++--------------------------
 1 files changed, 86 insertions(+), 80 deletions(-)

diff --git a/ruoyi-plus-soybean/src/views/qm/batch/modules/batch-search.vue b/ruoyi-plus-soybean/src/views/qm/batch/modules/batch-search.vue
old mode 100644
new mode 100755
index 77400be..3397bf9
--- a/ruoyi-plus-soybean/src/views/qm/batch/modules/batch-search.vue
+++ b/ruoyi-plus-soybean/src/views/qm/batch/modules/batch-search.vue
@@ -1,6 +1,7 @@
 <script setup lang="ts">
-import { ref, toRaw } from 'vue';
+import { onMounted, ref, toRaw, watch } from 'vue';
 import { jsonClone } from '@sa/utils';
+import { fetchGetMatList } from '@/service/api/md/mat';
 import { useNaiveForm } from '@/hooks/common/form';
 import { $t } from '@/locales';
 
@@ -16,38 +17,53 @@
 
 const { formRef, validate, restoreValidation } = useNaiveForm();
 
-const dateRangeToMesDate = ref<[string, string] | null>(null);
-const dateRangeFromMesDate = ref<[string, string] | null>(null);
 const model = defineModel<Api.Qm.BatchSearchParams>('model', { required: true });
+
+const dateRangeBatchDate = ref<[string, string] | null>(null);
+
+const matOptions = ref<CommonType.Option[]>([]);
+
+async function getMatOptions() {
+  const { data } = await fetchGetMatList({ tid: '1' as any, pageSize: 1000 });
+  if (data) {
+    matOptions.value = data.rows.map(item => ({
+      label: item.name,
+      value: item.code
+    }));
+  }
+}
+
+onMounted(() => {
+  getMatOptions();
+});
+
+// sync model params to dateRangeBatchDate
+watch(
+  () => model.value.params,
+  val => {
+    if (val?.beginBatchDate && val?.endBatchDate) {
+      dateRangeBatchDate.value = [val.beginBatchDate, val.endBatchDate];
+    } else {
+      dateRangeBatchDate.value = null;
+    }
+  },
+  { immediate: true, deep: true }
+);
 
 const defaultModel = jsonClone(toRaw(model.value));
 
-// 绫诲瀷閫夐」锛欰-鍒朵笣 B-鎴愬瀷 C-鍗峰寘 D-灏佺 E-绯栭鏂�
-const typOptions = [
-  { label: '鍒朵笣', value: 'A' },
-  { label: '鎴愬瀷', value: 'B' },
-  { label: '鍗峰寘', value: 'C' },
-  { label: '灏佺', value: 'D' },
-  { label: '绯栭鏂�', value: 'E' }
-];
-
-// 鍙嶉MES閫夐」锛�0-鏈笂浼爉es 1-宸蹭笂浼� 3-浠嶮ES涓嬭浇
-const flagOptions = [
-  { label: '鏈笂浼爉es', value: '0' },
-  { label: '宸蹭笂浼�', value: '1' },
-  { label: '浠嶮ES涓嬭浇', value: '3' }
-];
-
-// 绫诲埆閫夐」锛�0-鎴愬搧 1-杈呮潗
-const categoryOptions = [
-  { label: '鎴愬搧', value: '0' },
-  { label: '杈呮潗', value: '1' }
-];
+function onDateRangeBatchDateUpdate(value: [string, string] | null) {
+  if (value && value.length === 2) {
+    model.value.params!.beginBatchDate = value[0];
+    model.value.params!.endBatchDate = value[1];
+  } else {
+    model.value.params!.beginBatchDate = undefined;
+    model.value.params!.endBatchDate = undefined;
+  }
+}
 
 function resetModel() {
-  dateRangeToMesDate.value = null;
-  dateRangeFromMesDate.value = null;
-  Object.assign(model.value, defaultModel);
+  Object.assign(model.value, jsonClone(defaultModel));
 }
 
 async function reset() {
@@ -58,14 +74,6 @@
 
 async function search() {
   await validate();
-  if (dateRangeToMesDate.value?.length) {
-    model.value.params!.beginToMesDate = dateRangeToMesDate.value[0];
-    model.value.params!.endToMesDate = dateRangeToMesDate.value[1];
-  }
-  if (dateRangeFromMesDate.value?.length) {
-    model.value.params!.beginFromMesDate = dateRangeFromMesDate.value[0];
-    model.value.params!.endFromMesDate = dateRangeFromMesDate.value[1];
-  }
   emit('search');
 }
 </script>
@@ -74,70 +82,68 @@
   <NCard :bordered="false" size="small" class="card-wrapper">
     <NCollapse>
       <NCollapseItem :title="$t('common.search')" name="qm-batch-search">
-        <NForm ref="formRef" :model="model" label-placement="left" :label-width="80">
+        <NForm ref="formRef" :model="model" label-placement="left" :label-width="110">
           <NGrid responsive="screen" item-responsive>
-            <NFormItemGi span="24 s:12 m:8" label="鎵规浠g爜" label-width="auto" path="batchCode" class="pr-24px">
-              <NInput v-model:value="model.batchCode" placeholder="璇疯緭鍏ユ壒娆′唬鐮�" />
-            </NFormItemGi>
-            <NFormItemGi span="24 s:12 m:8" label="绫诲瀷" label-width="auto" path="typ" class="pr-24px">
-              <NSelect v-model:value="model.typ" :options="typOptions" placeholder="璇烽�夋嫨绫诲瀷" clearable />
-            </NFormItemGi>
-            <NFormItemGi span="24 s:12 m:8" label="鏈哄彴浠g爜" label-width="auto" path="eqpCode" class="pr-24px">
-              <NInput v-model:value="model.eqpCode" placeholder="璇疯緭鍏ユ満鍙颁唬鐮�" />
-            </NFormItemGi>
-            <NFormItemGi span="24 s:12 m:8" label="鐗屽彿" label-width="auto" path="matCode" class="pr-24px">
-              <NInput v-model:value="model.matCode" placeholder="璇疯緭鍏ョ墝鍙�" />
-            </NFormItemGi>
             <NFormItemGi span="24 s:12 m:8" label="鎵规鐢熸垚鏃ユ湡" label-width="auto" path="batchDate" class="pr-24px">
               <NDatePicker
-                v-model:formatted-value="model.batchDate"
-                type="datetime"
-                value-format="yyyy-MM-dd HH:mm:ss"
-                clearable
-              />
-            </NFormItemGi>
-            <NFormItemGi span="24 s:12 m:8" label="鍙嶉MES" label-width="auto" path="flag" class="pr-24px">
-              <NSelect v-model:value="model.flag" :options="flagOptions" placeholder="璇烽�夋嫨鍙嶉MES" clearable />
-            </NFormItemGi>
-            <NFormItemGi span="24 s:12 m:8" label="涓婁紶MES鏃堕棿" label-width="auto" path="toMesDate" class="pr-24px">
-              <NDatePicker
-                v-model:formatted-value="dateRangeToMesDate"
+                v-model:formatted-value="dateRangeBatchDate"
                 type="datetimerange"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 clearable
+                :default-time="['00:00:00', '23:59:59']"
+                @update:formatted-value="onDateRangeBatchDateUpdate"
               />
             </NFormItemGi>
-            <NFormItemGi span="24 s:12 m:8" label="浠嶮ES鏃堕棿涓嬭浇" label-width="auto" path="fromMesDate" class="pr-24px">
-              <NDatePicker
-                v-model:formatted-value="dateRangeFromMesDate"
-                type="datetimerange"
-                value-format="yyyy-MM-dd HH:mm:ss"
+            <NFormItemGi span="24 s:12 m:8" label="鐗屽彿" label-width="auto" path="matCode" class="pr-24px">
+              <NSelect v-model:value="model.matCode" placeholder="璇烽�夋嫨鐗屽彿" :options="matOptions" clearable />
+            </NFormItemGi>
+            <NFormItemGi span="24 s:12 m:8" label="浣跨敤鏍囧織" label-width="auto" path="isflag" class="pr-24px">
+              <NSelect
+                v-model:value="model.isflag"
+                placeholder="璇烽�夋嫨浣跨敤鏍囧織"
+                :options="[
+                  { label: '鏄�', value: '1' },
+                  { label: '鍚�', value: '0' }
+                ]"
+                clearable
+              />
+            </NFormItemGi>
+            <NFormItemGi span="24 s:12 m:8" label="鍚敤鏍囧織" label-width="auto" path="enabled" class="pr-24px">
+              <NSelect
+                v-model:value="model.enabled"
+                placeholder="璇烽�夋嫨鍚敤鏍囧織"
+                :options="[
+                  { label: '鏄�', value: '1' },
+                  { label: '鍚�', value: '0' }
+                ]"
                 clearable
               />
             </NFormItemGi>
             <NFormItemGi span="24 s:12 m:8" label="鍒犻櫎鏍囧織" label-width="auto" path="deleted" class="pr-24px">
-              <NInputNumber v-model:value="model.deleted" placeholder="璇疯緭鍏ュ垹闄ゆ爣蹇�" class="w-full" />
+              <NSelect
+                v-model:value="model.deleted"
+                placeholder="璇烽�夋嫨鍒犻櫎鏍囧織"
+                :options="[
+                  { label: '鏄�', value: 1 },
+                  { label: '鍚�', value: 0 }
+                ]"
+                clearable
+              />
             </NFormItemGi>
-            <NFormItemGi span="24 s:12 m:8" label="绫诲埆" label-width="auto" path="category" class="pr-24px">
-              <NSelect v-model:value="model.category" :options="categoryOptions" placeholder="璇烽�夋嫨绫诲埆" clearable />
-            </NFormItemGi>
-            <NFormItemGi span="24 s:12 m:8" label="鎵规鐘舵��" label-width="auto" path="state" class="pr-24px">
-              <NInput v-model:value="model.state" placeholder="璇疯緭鍏ユ壒娆$姸鎬�" />
-            </NFormItemGi>
-            <NFormItemGi :show-feedback="false" span="24" class="pr-24px">
-              <NSpace class="w-full" justify="end">
-                <NButton @click="reset">
-                  <template #icon>
-                    <icon-ic-round-refresh class="text-icon" />
-                  </template>
-                  {{ $t('common.reset') }}
-                </NButton>
+            <NFormItemGi :show-feedback="false" span="24 s:12 m:8" class="pr-24px">
+              <NSpace class="w-full" justify="start">
                 <NButton type="primary" ghost @click="search">
                   <template #icon>
                     <icon-ic-round-search class="text-icon" />
                   </template>
                   {{ $t('common.search') }}
                 </NButton>
+                <NButton @click="reset">
+                  <template #icon>
+                    <icon-ic-round-refresh class="text-icon" />
+                  </template>
+                  {{ $t('common.reset') }}
+                </NButton>
               </NSpace>
             </NFormItemGi>
           </NGrid>

--
Gitblit v1.9.3