diff --git a/src/views/product/components/EditDialog.vue b/src/views/product/components/EditDialog.vue index d77387d..0a64306 100644 --- a/src/views/product/components/EditDialog.vue +++ b/src/views/product/components/EditDialog.vue @@ -20,9 +20,9 @@
- {{ item.categoryIDName }} + {{ item.value }} - 新增产品类别 +
@@ -45,23 +45,23 @@ - - - - - - - - - - - - - + + - + + + + + + + + @@ -95,12 +107,31 @@ - - - - + + + + - + + + + + + + + + + + + + + + + + + + + @@ -175,6 +206,7 @@ const rolesValue = ref([]) const roles = ref([]) const imgUrl = ref('') const areaList = ref([]) +const images = ref([]) const childOpen = ref(false) const formArea = ref({ name: '', status: 'enabled' }) formRules.value = { @@ -182,10 +214,12 @@ formRules.value = { code: { required: true, message: '请输入产品名称' }, categoryID: { required: true, message: '请选择产品类别', trigger: 'change' }, compose: { required: true, message: '请选择产品适用对象', trigger: 'change' }, - feature: { required: true, message: '请输入产品功能特点', trigger: 'change' }, + feature: [{ required: true, message: '请输入产品功能特点', trigger: 'change' }], // feature: [{ required: true, message: '请输入产品功能特点' }], standard: [{ required: true, message: '请输入产品标准' }], images: [{ required: true, message: '请上传产品图片' }], + mainImage: { required: true, message: '请上传产品图片' }, + contentImage: { required: true, message: '请上传产品内容图片' }, sequence: [{ required: true, message: '请输入产品排序' }], status: [{ required: true, message: '请选择状态', trigger: 'change' }], } @@ -200,21 +234,23 @@ const initDataBatch = async (configs) => { const responses = await Promise.all( configs.map(({ apiFunc }) => apiFunc({ pageSize: 999, page: 1 })) ) - configs.forEach(({ nameKey, resultKey }, index) => { const { success, data } = responses[index] + if (config('http.code.success') === success) { - areaList.value = [ - ...areaList.value, - ...data - .filter(item => item.status === 'enabled') - .map(item => ({ - code: item.id, - [resultKey]: item[nameKey], - })) - ] + const mapped = data.map(item => { + return { + value: item.value, + children:item.children, + [resultKey]: item.label,// e.g. item['label'] + } + }) + + areaList.value = [...areaList.value, ...mapped] + console.log('after merge:', areaList.value) } }) + } catch (error) { message.error({ content: error.message }) } finally { @@ -249,10 +285,26 @@ function handleCreate() { compose: '', target: '', feature: [], - standard: [{ label: '', value: '' }], - images: [''], - sequence: 1, - status: 'enabled' + standard: [{ + label: '', + val: '' , + fu_hoao: '' , + prx: '' , + }], + images: [ + ...(Array.isArray(formData.value.mainImage) + ? formData.value.mainImage + : [formData.value.mainImage] + ).filter(Boolean).map(item => String(item)), + + ...(Array.isArray(formData.value.contentImage) + ? formData.value.contentImage + : [formData.value.contentImage] + ).filter(Boolean).map(item => String(item)) + ], + + sequence: null, + status: 'enabled', } initData() } @@ -306,25 +358,48 @@ async function handleEdit(record = {}) { } formData.value = { ...data, - standard:data.standard||[{ label: '', value: '' }], - images:data.images || [''] + standard:data.standard|| [{ + label: '', + val: '' , + fu_hoao: '' , + prx: '' , + }], + // images:data.images || [''], + mainImage: data.images?.[0] || '', + contentImage: data.images?.[1] || '', } imgUrl.value = config('http.apiBasic') + data.img + console.log('编辑产品数据:',formData.value); } /** * 确定 */ function handleOk() { - console.log(formData.value) + console.log('编辑产品列表', formData.value) formRef.value.validateFields().then(async (values) => { try { showLoading() const params = { ...values, - sequence:'1', - standard:formData.value.standard||[{ label: '', value: '' }], + standard:formData.value.standard|| + [{ + label: '', + val: '' , + fu_hoao: '' , + prx: '' , + }], + images: [ + ...(Array.isArray(formData.value.mainImage) + ? formData.value.mainImage + : [formData.value.mainImage] + ).filter(Boolean).map(item => String(item)), + ...(Array.isArray(formData.value.contentImage) + ? formData.value.contentImage + : [formData.value.contentImage] + ).filter(Boolean).map(item => String(item)) + ], } let result = null switch (modal.value.type) { diff --git a/src/views/product/index.vue b/src/views/product/index.vue index d6d130b..44b1f38 100644 --- a/src/views/product/index.vue +++ b/src/views/product/index.vue @@ -71,6 +71,12 @@
{{ record.target }}
+ +