refactor(orders): 移除 compatConfig 并优化 style-print 组件

移除所有组件中的 compatConfig 配置,以简化代码结构。在 style-print 组件中,新增 styleGroupDicts 和 getStyleGroupName 方法,用于动态加载和显示 StyleGroup 字典项,提升代码可维护性和可读性。
This commit is contained in:
user 2025-04-19 13:41:02 +08:00
parent e8484a0b63
commit d20f007a46
4 changed files with 39 additions and 9 deletions

View File

@ -9,7 +9,6 @@ import type { VxeTableInstance } from 'vxe-table';
import JhiCamera from '@/shared/components/jhi_camera.vue';
export default defineComponent({
compatConfig: { MODE: 3 },
name: 'StyleUpdate',
setup() {
const { t: $t } = useI18n();

View File

@ -11,7 +11,6 @@ import buildPaginationQuery from '@/shared/sort/sorts';
import { property } from 'xe-utils';
export default defineComponent({
compatConfig: { MODE: 3 },
name: 'StylePrint',
components: {
QrcodeVue,
@ -33,6 +32,7 @@ export default defineComponent({
const settingTypes = ref([]);
const styleGroupTitle = ref([]); // 新增:存储 StyleGroup 标题
const styleGroupPrefix = 'styleGroup'; // 新增StyleGroup 前缀
const styleGroupDicts = ref(Array(6).fill([])); // 新增:存储每个 StyleGroup 的字典项
const style = ref({
id: null,
number: '',
@ -131,6 +131,7 @@ export default defineComponent({
// 保存 StyleGroup 标题
styleGroupTitle.value = styleGroupTitleRes.data;
await loadStyleGroupDicts();
// 加载款式明细
await loadStyleDtls();
}
@ -194,9 +195,34 @@ export default defineComponent({
}
};
onMounted(() => {
loadStyle();
});
// 加载 StyleGroup 字典项
const loadStyleGroupDicts = async () => {
for (let i = 0; i < styleGroupTitle.value.length; i++) {
const groupKey = `${styleGroupPrefix}${i.toString().padStart(2, '0')}`;
const groupValue = style.value[groupKey];
if (!groupValue) continue;
try {
const res = await axios.get('api/dicts', {
params: {
parentNumber: { op: '=', value: groupKey },
status: { op: '=', value: '1' },
},
});
styleGroupDicts.value[i] = res.data;
} catch (e) {
styleGroupDicts.value[i] = [];
}
}
};
// 获取分组名称
const getStyleGroupName = (groupNumber, value) => {
if (!groupNumber) return '-';
const idx = styleGroupTitle.value.findIndex(item => item.number === groupNumber);
if (idx === -1) return '-';
const dictArr = styleGroupDicts.value[idx] || [];
const found = dictArr.find(item => item.number === value);
return found ? found.name : '-';
};
const getProductTypeName = computed(() => {
const productType = productTypes.value.find(item => item.number === style.value.productType);
@ -220,6 +246,10 @@ export default defineComponent({
return titleEntry ? titleEntry.name : $t(`jewpmsApp.style.${fieldName}`); // 回退到 i18n
};
onMounted(() => {
loadStyle();
});
const downloadPdf = async () => {
try {
const element = document.getElementById('stylePrintContent');
@ -272,11 +302,13 @@ export default defineComponent({
getProductTypeName,
getProcessTypeName,
getSettingTypeName,
getStyleGroupTitle, // 新增:导出方法
getStyleGroupTitle,
pdfBlob,
downloadPdf,
pdfPreviewRef,
styleGroupTitle, // 确保暴露给模板
styleGroupTitle,
styleGroupDicts,
getStyleGroupName,
};
},
});

View File

@ -65,7 +65,7 @@
<template v-for="(group, idx) in styleGroupTitle" :key="group.number">
<div class="print-row">
<div class="print-label">{{ group.name }}:</div>
<div class="print-value">{{ style[group.number] }}</div>
<div class="print-value">{{ getStyleGroupName(group.number, style[group.number]) }}</div>
</div>
</template>
</div>

View File

@ -9,7 +9,6 @@ import type { VxeToolbarInstance, VxeTableInstance, VxePagerEvents } from 'vxe-t
import debounce from 'lodash/debounce';
export default defineComponent({
compatConfig: { MODE: 3 },
name: 'Style',
components: {
StreamBarcodeReader,