From bf0ef9e148f2f438b5630c9fc9f6b8943592eeff Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期一, 07 九月 2026 16:55:15 +0800
Subject: [PATCH] fix(排产): 生产状态为已完成的单不再显示0%进度,已完成类型隐藏排产维护按钮
---
src/views/mes/qc/components/export-range-modal.vue | 89 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 89 insertions(+), 0 deletions(-)
diff --git a/src/views/mes/qc/components/export-range-modal.vue b/src/views/mes/qc/components/export-range-modal.vue
new file mode 100644
index 0000000..19fedfe
--- /dev/null
+++ b/src/views/mes/qc/components/export-range-modal.vue
@@ -0,0 +1,89 @@
+<script lang="ts" setup>
+import { ref } from 'vue';
+
+import { useVbenModal } from '@vben/common-ui';
+import { downloadFileFromBlobPart } from '@vben/utils';
+
+import { DatePicker, message } from 'ant-design-vue';
+
+import { getRangePickerDefaultProps } from '#/utils';
+
+/** 瀵煎嚭鍙傛暟锛堝悗绔� PageReqVO 浠ユ暟缁勮В鏋� inspectDate 璧锋锛� */
+interface ExportParams {
+ inspectDate?: [string, string];
+}
+
+interface ExportModalData {
+ /** 寮圭獥鏍囬 */
+ title?: string;
+ /** 妯″潡瀵煎嚭鍑芥暟锛歳equestClient.download(...) 杩斿洖 Blob */
+ exportApi: (params: ExportParams) => Promise<Blob>;
+ /** 瀵煎嚭鏂囦欢鍚� */
+ fileName: string;
+}
+
+defineOptions({ name: 'QcExportRangeModal' });
+
+const rangePickerProps = getRangePickerDefaultProps();
+
+const modalData = ref<ExportModalData>();
+const range = ref<[string, string] | undefined>(undefined);
+const exporting = ref(false);
+const title = ref('瀵煎嚭');
+
+const [Modal, modalApi] = useVbenModal({
+ async onConfirm() {
+ if (exporting.value) {
+ return;
+ }
+ const data = modalData.value;
+ if (!data) {
+ return;
+ }
+ exporting.value = true;
+ modalApi.lock();
+ try {
+ const params: ExportParams =
+ range.value && range.value.length === 2
+ ? { inspectDate: range.value }
+ : {};
+ const blob = await data.exportApi(params);
+ downloadFileFromBlobPart({ fileName: data.fileName, source: blob });
+ message.success('瀵煎嚭鎴愬姛');
+ await modalApi.close();
+ } finally {
+ exporting.value = false;
+ modalApi.unlock();
+ }
+ },
+ onOpenChange(isOpen: boolean) {
+ if (!isOpen) {
+ modalData.value = undefined;
+ range.value = undefined;
+ return;
+ }
+ const data = modalApi.getData<ExportModalData>();
+ modalData.value = data;
+ range.value = undefined;
+ title.value = data?.title ?? '瀵煎嚭';
+ modalApi.setState({ confirmText: '瀵煎嚭' });
+ },
+});
+</script>
+
+<template>
+ <Modal :title="title" class="w-2/5" :mask-closable="false">
+ <div class="px-1 py-3">
+ <div class="mb-2 text-sm font-medium text-gray-700">妫�楠屾椂闂�</div>
+ <DatePicker.RangePicker
+ v-model:value="range"
+ v-bind="rangePickerProps"
+ allow-clear
+ class="w-full"
+ />
+ <div class="mt-2 text-xs text-gray-400">
+ 涓嶉�夋椂闂村垯瀵煎嚭鍏ㄩ儴鏁版嵁锛涘鍑烘寜銆屾娴嬫棩鏈熴�嶈繃婊�
+ </div>
+ </div>
+ </Modal>
+</template>
--
Gitblit v1.9.3