From 2b31fa203f3435a582be51f45899d99164c9917a Mon Sep 17 00:00:00 2001
From: zhuguifei <312353457@qq.com>
Date: 星期四, 09 四月 2026 13:34:59 +0800
Subject: [PATCH] Merge branch 'master' of http://lanpucloud.cn:1111/r/SC/gfzl
---
ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-search.vue | 123 +++++++++++++++++++++++++++-------------
1 files changed, 82 insertions(+), 41 deletions(-)
diff --git a/ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-search.vue b/ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-search.vue
old mode 100644
new mode 100755
index 1489ba2..ffb40b6
--- a/ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-search.vue
+++ b/ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-search.vue
@@ -1,6 +1,5 @@
<script setup lang="ts">
import { onMounted, ref, toRaw, watch } from 'vue';
-import dayjs from 'dayjs';
import { jsonClone } from '@sa/utils';
import { useNaiveForm } from '@/hooks/common/form';
import { $t } from '@/locales';
@@ -26,55 +25,87 @@
}
function getDefaultRange(): [string, string] {
- const end = dayjs().format('YYYY-MM-DD');
- const start = dayjs().subtract(3, 'day').format('YYYY-MM-DD');
- return [start, end];
+ const now = new Date();
+ const threeDaysAgo = new Date(now.getTime() - 3 * 24 * 60 * 60 * 1000);
+ const todayStart = `${threeDaysAgo.getFullYear()}-${String(threeDaysAgo.getMonth() + 1).padStart(2, '0')}-${String(threeDaysAgo.getDate()).padStart(2, '0')} 00:00:00`;
+ const todayEnd = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')} 23:59:59`;
+ return [todayStart, todayEnd];
}
-const dateRange = ref<[string, string]>(getDefaultRange());
+const dateRange = ref<[string, string] | null>(null);
-function isDateDisabled(ts: number) {
- const min = dayjs().subtract(3, 'day').startOf('day').valueOf();
- const max = dayjs().endOf('day').valueOf();
- return ts < min || ts > max;
+function onDateRangeUpdate(value: [string, string] | null) {
+ if (!model.value.params) {
+ model.value.params = {};
+ }
+
+ const beginTime = value?.[0] ? String(value[0]).trim() : '';
+ const endTime = value?.[1] ? String(value[1]).trim() : '';
+
+ if (beginTime && endTime) {
+ model.value.params.beginTime = beginTime;
+ model.value.params.endTime = endTime;
+ } else {
+ delete model.value.params.beginTime;
+ delete model.value.params.endTime;
+ }
+}
+
+function setDefaultRange() {
+ const range = getDefaultRange();
+ dateRange.value = range;
+ onDateRangeUpdate(range);
}
onMounted(() => {
- if (!model.value.distimebegin || !model.value.distimeend) {
- dateRange.value = getDefaultRange();
- model.value.distimebegin = dateRange.value[0];
- model.value.distimeend = dateRange.value[1];
+ if (!model.value.params) {
+ model.value.params = {};
+ }
+
+ const beginTime = model.value.params.beginTime ? String(model.value.params.beginTime).trim() : '';
+ const endTime = model.value.params.endTime ? String(model.value.params.endTime).trim() : '';
+
+ if (beginTime && endTime) {
+ dateRange.value = [beginTime, endTime];
} else {
- dateRange.value = [model.value.distimebegin as string, model.value.distimeend as string];
+ setDefaultRange();
}
});
-
-watch(
- dateRange,
- val => {
- if (val && val[0] && val[1]) {
- model.value.distimebegin = val[0];
- model.value.distimeend = val[1];
- } else {
- model.value.distimebegin = null;
- model.value.distimeend = null;
- }
- },
- { deep: true }
-);
async function reset() {
await restoreValidation();
resetModel();
- dateRange.value = getDefaultRange();
- model.value.distimebegin = dateRange.value[0];
- model.value.distimeend = dateRange.value[1];
+ setDefaultRange();
emit('search');
}
async function search() {
await validate();
emit('search');
+}
+
+const siloOptions = Array.from({ length: 12 }, (_, i) => ({
+ label: `${i + 1}鍙峰偍涓濇煖`,
+ value: String(i + 1)
+}));
+
+const selectedSilos = ref<string[]>([]);
+
+watch(
+ () => model.value.siloid,
+ val => {
+ if (val) {
+ selectedSilos.value = (val as string).split(',');
+ } else {
+ selectedSilos.value = [];
+ }
+ },
+ { immediate: true }
+);
+
+function handleSiloChange(val: string[]) {
+ selectedSilos.value = val;
+ model.value.siloid = val.join(',');
}
</script>
@@ -91,10 +122,10 @@
path="materialname"
class="pr-24px"
>
- <NInput v-model:value="model.materialname" placeholder="璇疯緭鍏ョ墝鍙�" />
+ <NInput v-model:value="model.materialname" clearable placeholder="璇疯緭鍏ョ墝鍙�" />
</NFormItemGi>
<NFormItemGi span="24 s:12 m:8 l:8 xl:8" label="鎵规鍙�" label-width="auto" path="batchcode" class="pr-24px">
- <NInput v-model:value="model.batchcode" placeholder="璇疯緭鍏ユ壒娆″彿" />
+ <NInput v-model:value="model.batchcode" clearable placeholder="璇疯緭鍏ユ壒娆″彿" />
</NFormItemGi>
<NFormItemGi
span="24 s:12 m:8 l:8 xl:8"
@@ -105,24 +136,27 @@
>
<NDatePicker
v-model:formatted-value="model.actualstarttime"
- type="datetime"
- value-format="yyyy-MM-dd HH:mm:ss"
+ type="date"
+ value-format="yyyy-MM-dd"
clearable
+ class="w-full"
/>
</NFormItemGi>
<NFormItemGi
span="24 s:12 m:8 l:8 xl:8"
- label="鍑烘枡鏃堕棿"
+ label="鍑烘枡缁撴潫鏃堕棿"
label-width="auto"
- path="distimebegin"
+ path="params.beginTime"
class="pr-24px"
>
<NDatePicker
v-model:formatted-value="dateRange"
- type="daterange"
- value-format="yyyy-MM-dd"
+ type="datetimerange"
+ :default-time="['00:00:00', '23:59:59']"
+ value-format="yyyy-MM-dd HH:mm:ss"
clearable
- :is-date-disabled="isDateDisabled"
+ class="w-full"
+ @update:formatted-value="onDateRangeUpdate"
/>
</NFormItemGi>
<NFormItemGi
@@ -132,7 +166,14 @@
path="siloid"
class="pr-24px"
>
- <NInput v-model:value="model.siloid" placeholder="璇疯緭鍏ユ煖瀛愬彿(鏈綅)" />
+ <NSelect
+ v-model:value="selectedSilos"
+ multiple
+ clearable
+ :options="siloOptions"
+ placeholder="璇烽�夋嫨鏌滃瓙鍙�"
+ @update:value="handleSiloChange"
+ />
</NFormItemGi>
<NFormItemGi :show-feedback="false" span="24" class="pr-24px">
<NSpace class="w-full" justify="end">
--
Gitblit v1.9.3