From 858df78951d5c29e8d4217cffcf81d2cc4fabcd4 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 03 八月 2026 14:58:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro2.0' into dev_pro2.0

---
 deploy.bat                                                                  |    5 +-
 src/preferences.ts                                                          |    3 +
 vite.config.ts                                                              |    6 +++
 src/views/mes/md/unitmeasure/components/select.vue                          |   44 ++++++++++++----------
 public/logos/TEST.png                                                       |    0 
 public/logos/.gitkeep                                                       |    0 
 src/views/wls/transaction/data.ts                                           |    4 ++
 src/packages/effects/layouts/src/widgets/preferences/preferences-drawer.vue |    1 
 company.config.ts                                                           |   17 ++++++++
 9 files changed, 57 insertions(+), 23 deletions(-)

diff --git a/company.config.ts b/company.config.ts
new file mode 100644
index 0000000..b2d21a3
--- /dev/null
+++ b/company.config.ts
@@ -0,0 +1,17 @@
+export interface CompanyConfig {
+  /** 鍏徃鍚嶇О */
+  name: string;
+  /** logo 鍥剧墖璺緞锛岀浉瀵逛簬 public 鐩綍 */
+  logo: string;
+}
+
+/**
+ * 鎵�鏈夊叕鍙搁厤缃�
+ * 鏂板鍏徃鍙渶鍦ㄤ笅闈㈠姞涓�琛屽嵆鍙�
+ *
+ * 鎵撳寘锛氳寰楀湪鍦╠eploy.bat鏂囦欢涓皢set "COMPANY=TEST"鏀瑰悕瀛�
+ * 绀轰緥锛歴et "COMPANY=TEST"
+ */
+export const companies: Record<string, CompanyConfig> = {
+  TEST: { name: '娴嬭瘯鍏徃', logo: '/logos/TEST.png' },
+};
diff --git a/deploy.bat b/deploy.bat
index 658af05..11a1ca0 100644
--- a/deploy.bat
+++ b/deploy.bat
@@ -3,6 +3,7 @@
 setlocal enabledelayedexpansion
 
 :: ================= Config =================
+set "COMPANY=TEST"
 set "USER=root"
 set "PASS=Xdrjkj@10086#"
 set "IP=36.213.180.217"
@@ -91,10 +92,10 @@
 )
 
 :: Build the project
-echo [STEP 1/3] Building project...
+echo [STEP 1/3] Building project for %COMPANY%...
 echo [INFO] Running: pnpm run build
 echo.
-call pnpm run build
+set COMPANY=%COMPANY% && call pnpm run build
 if !errorlevel! neq 0 (
     echo [ERROR] Build failed! Check your project configuration.
     goto :error_exit
diff --git a/public/logos/.gitkeep b/public/logos/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/public/logos/.gitkeep
diff --git a/public/logos/TEST.png b/public/logos/TEST.png
new file mode 100644
index 0000000..f5d4f2c
--- /dev/null
+++ b/public/logos/TEST.png
Binary files differ
diff --git a/src/packages/effects/layouts/src/widgets/preferences/preferences-drawer.vue b/src/packages/effects/layouts/src/widgets/preferences/preferences-drawer.vue
index 3a9fd65..12f4076 100644
--- a/src/packages/effects/layouts/src/widgets/preferences/preferences-drawer.vue
+++ b/src/packages/effects/layouts/src/widgets/preferences/preferences-drawer.vue
@@ -511,7 +511,6 @@
                 v-model:copyright-enable="copyrightEnable"
                 v-model:copyright-icp="copyrightIcp"
                 v-model:copyright-icp-link="copyrightIcpLink"
-                :disabled="!footerEnable"
               />
             </Block>
           </template>
diff --git a/src/preferences.ts b/src/preferences.ts
index 626b2ff..f2b5a03 100644
--- a/src/preferences.ts
+++ b/src/preferences.ts
@@ -32,6 +32,9 @@
     companyName: import.meta.env.VITE_APP_TITLE,
     companySiteLink: 'https://gitee.com/yudaocode/yudao-ui-admin-vben',
   },
+  logo: {
+    source: import.meta.env.VITE_APP_LOGO || undefined,
+  },
   tabbar: {
     /** 鍒锋柊娴忚鍣ㄥ悗鍙繚鐣欏綋鍓嶉〉闈紝涓嶆寔涔呭寲鎵�鏈夋爣绛鹃〉 */
     persist: false,
diff --git a/src/views/mes/md/unitmeasure/components/select.vue b/src/views/mes/md/unitmeasure/components/select.vue
index 33edc29..ce9645f 100644
--- a/src/views/mes/md/unitmeasure/components/select.vue
+++ b/src/views/mes/md/unitmeasure/components/select.vue
@@ -1,11 +1,11 @@
 <script lang="ts" setup>
-import type { MesMdUnitMeasureApi } from '#/api/mes/md/unitmeasure';
+import type { MdmUnitApi } from '#/api/mdm/unit';
 
 import { computed, onMounted, ref, watch } from 'vue';
 
-import { Select, Tag, Tooltip } from 'ant-design-vue';
+import { Select, Tooltip } from 'ant-design-vue';
 
-import { getUnitMeasureSimpleList } from '#/api/mes/md/unitmeasure';
+import { getUnitPage } from '#/api/mdm/unit';
 
 defineOptions({ name: 'MdUnitMeasureSelect', inheritAttrs: false });
 
@@ -25,29 +25,32 @@
 );
 
 const emit = defineEmits<{
-  change: [item: MesMdUnitMeasureApi.UnitMeasure | undefined];
+  change: [item: MdmUnitApi.Unit | undefined];
   'update:modelValue': [value: number | undefined];
 }>();
 
-const allList = ref<MesMdUnitMeasureApi.UnitMeasure[]>([]); // 璁¢噺鍗曚綅鍒楄〃
-const filteredList = ref<MesMdUnitMeasureApi.UnitMeasure[]>([]); // 杩囨护鍚庣殑璁¢噺鍗曚綅鍒楄〃
-const selectedItem = ref<MesMdUnitMeasureApi.UnitMeasure>(); // 褰撳墠閫変腑璁¢噺鍗曚綅
+const allList = ref<MdmUnitApi.Unit[]>([]); // 璁¢噺鍗曚綅鍒楄〃
+const filteredList = ref<MdmUnitApi.Unit[]>([]); // 杩囨护鍚庣殑璁¢噺鍗曚綅鍒楄〃
+const selectedItem = ref<MdmUnitApi.Unit>(); // 褰撳墠閫変腑璁¢噺鍗曚綅
 
 const selectValue = computed({
   // 閫夋嫨鍣ㄧ粦瀹氬��
   get: () => props.modelValue,
-  set: (value: number | undefined) => {
-    emit('update:modelValue', value);
+  set: (val: number | undefined) => {
+    emit('update:modelValue', val);
   },
 });
 
 /** 鍓嶇鎸夊悕绉板拰缂栫爜杩囨护璁¢噺鍗曚綅 */
 function handleFilter(input: string, option: any) {
   const keyword = input.toLowerCase();
-  const item = option?.item as MesMdUnitMeasureApi.UnitMeasure | undefined;
+  // Ant Design Vue 4 涓� Select.Option 鐨勮嚜瀹氫箟灞炴�т笉浼氫紶鍏� option 瀵硅薄
+  // 鏀逛负閫氳繃 option.value 浠� allList 涓煡鎵惧搴旂殑鏁版嵁椤�
+  const item = allList.value.find((i) => i.id === option?.value);
+  if (!item) return false;
   return Boolean(
-    item?.name?.toLowerCase().includes(keyword) ||
-    item?.code?.toLowerCase().includes(keyword),
+    item.name?.toLowerCase().includes(keyword) ||
+    item.code?.toLowerCase().includes(keyword),
   );
 }
 
@@ -68,13 +71,18 @@
 
 watch(
   () => props.modelValue,
-  (value) => {
-    syncSelectedItem(value);
+  (val) => {
+    syncSelectedItem(val);
   },
 );
 
 onMounted(async () => {
-  allList.value = await getUnitMeasureSimpleList();
+  try {
+    const result = await getUnitPage({ pageNo: 1, pageSize: 100 });
+    allList.value = result.list ?? [];
+  } catch {
+    allList.value = [];
+  }
   filteredList.value = allList.value;
   syncSelectedItem(props.modelValue);
 });
@@ -109,13 +117,9 @@
       <Select.Option
         v-for="item in filteredList"
         :key="item.id"
-        :item="item"
         :value="item.id"
       >
-        <div class="flex items-center gap-2">
-          <span>{{ item.name }}</span>
-          <Tag v-if="item.code" color="default">缂栧彿: {{ item.code }}</Tag>
-        </div>
+        {{ item.name }}
       </Select.Option>
     </Select>
   </Tooltip>
diff --git a/src/views/wls/transaction/data.ts b/src/views/wls/transaction/data.ts
index 59e50fc..117aa3f 100644
--- a/src/views/wls/transaction/data.ts
+++ b/src/views/wls/transaction/data.ts
@@ -103,6 +103,10 @@
         options: [
           { label: '鍏ュ簱', value: 1 },
           { label: '鍑哄簱', value: 2 },
+          { label: '璋冩嫧绉诲嚭', value: 3 },
+          { label: '璋冩嫧绉诲叆', value: 4 },
+          { label: '鐩樼泩', value: 5 },
+          { label: '鐩樹簭', value: 6 },
         ],
         placeholder: '璇烽�夋嫨浜嬪姟绫诲瀷',
       },
diff --git a/vite.config.ts b/vite.config.ts
index 149f3a6..82ece29 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,10 +1,16 @@
 import { resolve } from "node:path";
 import { defineConfig } from "./internal/vite-config/src";
+import { companies } from "./company.config";
+
+const appLogo = process.env.COMPANY ? companies[process.env.COMPANY]?.logo : undefined;
 
 export default defineConfig(async () => {
   return {
     application: {},
     vite: {
+      define: {
+        'import.meta.env.VITE_APP_LOGO': JSON.stringify(appLogo ?? ''),
+      },
       resolve: {
         alias: {
           '@vue-office/pdf': resolve(__dirname, 'node_modules/@vue-office/pdf/lib/v3/vue-office-pdf.mjs'),

--
Gitblit v1.9.3