diff --git a/src/views/erp/mold/MoldBrandForm.vue b/src/views/erp/mold/MoldBrandForm.vue
index 25e0adfe..6a860c54 100644
--- a/src/views/erp/mold/MoldBrandForm.vue
+++ b/src/views/erp/mold/MoldBrandForm.vue
@@ -63,7 +63,7 @@
-
+
@@ -253,6 +253,7 @@ const formData = ref({
const manualFileTypes = ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'txt']
const videoFileTypes = ['mp4', 'avi', 'mov', 'wmv', 'flv', 'mkv', 'webm']
+const drawingFileTypes = ['dwg', 'dxf', 'step', 'stp', 'igs', 'iges']
const splitAssetValue = (value: unknown): string[] => {
if (!value) return []
@@ -277,9 +278,23 @@ const splitAssetValue = (value: unknown): string[] => {
const normalizeAssetString = (value: unknown) => splitAssetValue(value).join(',')
+// 图纸字段专用处理函数,支持 JSON 格式
+const parseDrawingValue = (value: unknown): string => {
+ if (!value) return ''
+ if (typeof value === 'string') {
+ const trimmed = value.trim()
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
+ return trimmed
+ }
+ // 旧格式,直接返回
+ return trimmed
+ }
+ return JSON.stringify(value)
+}
+
const drawingsValue = computed({
- get: () => splitAssetValue((formData.value as any).drawings),
- set: (value: any) => { ;(formData.value as any).drawings = normalizeAssetString(value) }
+ get: () => parseDrawingValue((formData.value as any).drawings),
+ set: (value: any) => { (formData.value as any).drawings = parseDrawingValue(value) }
})
const operationManualValue = computed({
@@ -455,7 +470,7 @@ const submitForm = async () => {
const payload: MoldBrandVO = {
...formData.value,
productIds: Array.isArray(formData.value.productIds) ? formData.value.productIds : [],
- drawings: normalizeAssetString((formData.value as any).drawings),
+ drawings: (formData.value as any).drawings,
operationManual: normalizeAssetString((formData.value as any).operationManual),
operationVideo: normalizeAssetString((formData.value as any).operationVideo),
isEnable: Boolean(formData.value.isEnable)
diff --git a/src/views/erp/mold/detail/brand.vue b/src/views/erp/mold/detail/brand.vue
index 0991d41d..5c3510c4 100644
--- a/src/views/erp/mold/detail/brand.vue
+++ b/src/views/erp/mold/detail/brand.vue
@@ -305,15 +305,11 @@
-
+
-
+
+ {{ scope.row.name }}
+
@@ -469,6 +465,33 @@ const getAssetName = (url: string) => {
}
const parseAssetRows = (value: any) => {
+ if (!value) return []
+
+ const text = String(value).trim()
+ if (text.startsWith('{') || text.startsWith('[')) {
+ try {
+ const parsed = JSON.parse(text)
+ if (Array.isArray(parsed)) {
+ return parsed.map((item) => {
+ if (item && typeof item === 'object' && item.fileUrl) {
+ return {
+ url: String(item.fileUrl),
+ name: item.fileName ? String(item.fileName) : getAssetName(item.fileUrl)
+ }
+ }
+ return null
+ }).filter(Boolean)
+ }
+ if (parsed && typeof parsed === 'object' && parsed.fileUrl) {
+ return [{
+ url: String(parsed.fileUrl),
+ name: parsed.fileName ? String(parsed.fileName) : getAssetName(parsed.fileUrl)
+ }]
+ }
+ } catch {}
+ }
+
+ // 旧格式处理
return parseAssetUrls(value).map((url) => ({
url,
name: getAssetName(url)