From c425a8afba0a76eb62d5650cc9c98c42d8339f06 Mon Sep 17 00:00:00 2001
From: zhuguifei <312353457@qq.com>
Date: 星期四, 12 三月 2026 13:01:23 +0800
Subject: [PATCH] perf: 1.优化储丝柜单柜卷包产量计算方式,支持未出料结束计算统计 2.新增储丝柜单柜卷包产量桑基图
---
ruoyi-plus-soybean/src/views/analy/store-silk/modules/store-silk-search.vue | 111 +++++++++++++++++++++++++++++++++++++------------------
1 files changed, 74 insertions(+), 37 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
index ce8a1d2..ffb40b6 100644
--- 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
@@ -34,51 +34,78 @@
const dateRange = ref<[string, string] | null>(null);
-onMounted(() => {
- if (model.value.params?.beginTime && model.value.params?.endTime) {
- dateRange.value = [model.value.params.beginTime as string, model.value.params.endTime as string];
+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 {
- dateRange.value = getDefaultRange();
- if (!model.value.params) {
- model.value.params = {};
- }
- model.value.params.beginTime = dateRange.value[0];
- model.value.params.endTime = dateRange.value[1];
+ delete model.value.params.beginTime;
+ delete model.value.params.endTime;
+ }
+}
+
+function setDefaultRange() {
+ const range = getDefaultRange();
+ dateRange.value = range;
+ onDateRangeUpdate(range);
+}
+
+onMounted(() => {
+ 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 {
+ setDefaultRange();
}
});
-
-watch(
- dateRange,
- val => {
- if (!model.value.params) {
- model.value.params = {};
- }
- if (val && val[0] && val[1]) {
- model.value.params.beginTime = val[0];
- model.value.params.endTime = val[1];
- } else {
- model.value.params.beginTime = null;
- model.value.params.endTime = null;
- }
- },
- { deep: true }
-);
async function reset() {
await restoreValidation();
resetModel();
- dateRange.value = getDefaultRange();
- if (!model.value.params) {
- model.value.params = {};
- }
- model.value.params.beginTime = dateRange.value[0];
- model.value.params.endTime = 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>
@@ -95,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"
@@ -109,9 +136,10 @@
>
<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
@@ -127,6 +155,8 @@
:default-time="['00:00:00', '23:59:59']"
value-format="yyyy-MM-dd HH:mm:ss"
clearable
+ class="w-full"
+ @update:formatted-value="onDateRangeUpdate"
/>
</NFormItemGi>
<NFormItemGi
@@ -136,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