| company.config.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| deploy.bat | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| public/logos/.gitkeep | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| public/logos/TEST.png | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/packages/effects/layouts/src/widgets/preferences/preferences-drawer.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/preferences.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/mes/md/unitmeasure/components/select.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/wls/transaction/data.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| vite.config.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
company.config.ts
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ export interface CompanyConfig { /** å ¬å¸åç§° */ name: string; /** logo å¾çè·¯å¾ï¼ç¸å¯¹äº public ç®å½ */ logo: string; } /** * ææå ¬å¸é ç½® * æ°å¢å ¬å¸åªéå¨ä¸é¢å ä¸è¡å³å¯ * * æå ï¼è®°å¾å¨å¨deploy.batæä»¶ä¸å°set "COMPANY=TEST"æ¹åå * 示ä¾ï¼set "COMPANY=TEST" */ export const companies: Record<string, CompanyConfig> = { TEST: { name: 'æµè¯å ¬å¸', logo: '/logos/TEST.png' }, }; 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 public/logos/.gitkeep
public/logos/TEST.png
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> 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, 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> 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: 'è¯·éæ©äºå¡ç±»å', }, 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'),