|
@@ -1,18 +1,12 @@
|
|
<template>
|
|
<template>
|
|
<div>
|
|
<div>
|
|
- <BasicForm
|
|
|
|
- @register="register"
|
|
|
|
- @submit="handleSubmit"
|
|
|
|
- @resetFunc="addBut"
|
|
|
|
- :submitButtonOptions="{ type: 'default', text: '生成规格明细' }"
|
|
|
|
- :resetButtonOptions="{ text: '添加规格项目', onClick: addBut }"
|
|
|
|
- >
|
|
|
|
|
|
+ <BasicForm @register="register" @submit="handleSubmit">
|
|
<template #but="{ field }">
|
|
<template #but="{ field }">
|
|
<Icon
|
|
<Icon
|
|
size="20px"
|
|
size="20px"
|
|
v-if="showBut(field, false)"
|
|
v-if="showBut(field, false)"
|
|
icon="ion:remove-circle-outline"
|
|
icon="ion:remove-circle-outline"
|
|
- @click="del(field)"
|
|
|
|
|
|
+ @click="del.bind(null, field)"
|
|
/>{{ field }}
|
|
/>{{ field }}
|
|
</template>
|
|
</template>
|
|
<template #parentBut="{ field }">
|
|
<template #parentBut="{ field }">
|
|
@@ -20,11 +14,11 @@
|
|
size="28px"
|
|
size="28px"
|
|
v-if="showBut(field, true)"
|
|
v-if="showBut(field, true)"
|
|
icon="ion:remove-circle-outline"
|
|
icon="ion:remove-circle-outline"
|
|
- @click="parentDel(field)"
|
|
|
|
|
|
+ @click="parentDel.bind(null, field)"
|
|
/>{{ field }}
|
|
/>{{ field }}
|
|
</template>
|
|
</template>
|
|
<template #addAttribute="{ field }">
|
|
<template #addAttribute="{ field }">
|
|
- <Button @click="addBut(field)"> 添加属性值 </Button>
|
|
|
|
|
|
+ <a-button @click="addBut.bind(null, field)"> 添加属性值 </a-button>
|
|
</template>
|
|
</template>
|
|
</BasicForm>
|
|
</BasicForm>
|
|
</div>
|
|
</div>
|
|
@@ -39,7 +33,7 @@
|
|
|
|
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
components: { BasicForm, Icon },
|
|
components: { BasicForm, Icon },
|
|
- emits: ['setEditData'],
|
|
|
|
|
|
+ emits: ['update'],
|
|
setup(_, { emit }) {
|
|
setup(_, { emit }) {
|
|
let ggList = reactive({
|
|
let ggList = reactive({
|
|
goodsNumber: 1,
|
|
goodsNumber: 1,
|
|
@@ -152,20 +146,20 @@
|
|
},
|
|
},
|
|
});
|
|
});
|
|
function del(field) {
|
|
function del(field) {
|
|
- let numbler = Number(field.split('_')[0]);
|
|
|
|
|
|
+ let number = Number(field.split('_')[0]);
|
|
let item = Number(field.split('_')[1]);
|
|
let item = Number(field.split('_')[1]);
|
|
- let { list, value } = ggList.list[numbler];
|
|
|
|
|
|
+ let { list, value } = ggList.list[number];
|
|
console.log(
|
|
console.log(
|
|
item,
|
|
item,
|
|
- 'numbler',
|
|
|
|
- numbler,
|
|
|
|
|
|
+ 'number',
|
|
|
|
+ number,
|
|
list,
|
|
list,
|
|
value,
|
|
value,
|
|
'listfield',
|
|
'listfield',
|
|
list.filter((ele) => ele !== item),
|
|
list.filter((ele) => ele !== item),
|
|
);
|
|
);
|
|
removeSchemaByFiled([`goodsSn_${field}`, `picUrl_${field}`, `${field}`]);
|
|
removeSchemaByFiled([`goodsSn_${field}`, `picUrl_${field}`, `${field}`]);
|
|
- ggList.list[numbler] = {
|
|
|
|
|
|
+ ggList.list[number] = {
|
|
value: value - 1,
|
|
value: value - 1,
|
|
list: list.filter((ele) => ele !== value - 1),
|
|
list: list.filter((ele) => ele !== value - 1),
|
|
};
|
|
};
|
|
@@ -190,25 +184,25 @@
|
|
let specsNumber = ggList.specsNumber;
|
|
let specsNumber = ggList.specsNumber;
|
|
if (typeof val == 'string') {
|
|
if (typeof val == 'string') {
|
|
console.log('addBut');
|
|
console.log('addBut');
|
|
- let numbler = Number(val.split('_')[1]);
|
|
|
|
- let { value, list } = ggList.list[numbler];
|
|
|
|
|
|
+ let number = Number(val.split('_')[1]);
|
|
|
|
+ let { value, list } = ggList.list[number];
|
|
value++;
|
|
value++;
|
|
console.log(
|
|
console.log(
|
|
'addBut',
|
|
'addBut',
|
|
list,
|
|
list,
|
|
value,
|
|
value,
|
|
- 'numbler',
|
|
|
|
- numbler,
|
|
|
|
|
|
+ 'number',
|
|
|
|
+ number,
|
|
'ggList.goodsNumber.list',
|
|
'ggList.goodsNumber.list',
|
|
- ggList.list[numbler].value,
|
|
|
|
|
|
+ ggList.list[number].value,
|
|
);
|
|
);
|
|
list.push(value);
|
|
list.push(value);
|
|
- let filed = numbler + '_' + ggList.list[numbler].value;
|
|
|
|
- ggList.list[numbler] = {
|
|
|
|
|
|
+ let filed = number + '_' + ggList.list[number].value;
|
|
|
|
+ ggList.list[number] = {
|
|
value,
|
|
value,
|
|
list,
|
|
list,
|
|
};
|
|
};
|
|
- let listSchemas = addSchemas(numbler, goodsNumber + 1, false).reverse();
|
|
|
|
|
|
+ let listSchemas = addSchemas(number, goodsNumber + 1, false).reverse();
|
|
console.log('addButlist', filed, list, ggList);
|
|
console.log('addButlist', filed, list, ggList);
|
|
listSchemas.map((ele) => {
|
|
listSchemas.map((ele) => {
|
|
appendSchemaByField(ele, filed);
|
|
appendSchemaByField(ele, filed);
|
|
@@ -236,10 +230,10 @@
|
|
if (type) {
|
|
if (type) {
|
|
//父级
|
|
//父级
|
|
key = Number(item[1]);
|
|
key = Number(item[1]);
|
|
- let arry = Object.keys(ggList.list || []);
|
|
|
|
- console.log('item', arry);
|
|
|
|
- console.log('item', item, show, ggList.list, 'arry', arry);
|
|
|
|
- if (!(arry && arry.length > 1)) return false;
|
|
|
|
|
|
+ let array = Object.keys(ggList.list || []);
|
|
|
|
+ console.log('item', array);
|
|
|
|
+ console.log('item', item, show, ggList.list, 'array', array);
|
|
|
|
+ if (!(array && array.length > 1)) return false;
|
|
} else {
|
|
} else {
|
|
//子集
|
|
//子集
|
|
key = Number(item[0]);
|
|
key = Number(item[0]);
|
|
@@ -253,45 +247,51 @@
|
|
let getData = await getFieldsValue();
|
|
let getData = await getFieldsValue();
|
|
console.log('getData', val, data, getData);
|
|
console.log('getData', val, data, getData);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ async function handleSubmit() {
|
|
|
|
+ let data = await validate();
|
|
|
|
+ let getData = await getFieldsValue();
|
|
|
|
+ let goodsSpecificationList = [],
|
|
|
|
+ productList = [];
|
|
|
|
+ console.log('ggList', ggList.list, data);
|
|
|
|
+ for (let index = 0; index < ggList.specsNumber; index++) {
|
|
|
|
+ let ele = ggList.list[index + 1];
|
|
|
|
+ let name = getData[`name_${index + 1}`];
|
|
|
|
+ let val = [];
|
|
|
|
+ ele.list.map((element) => {
|
|
|
|
+ console.log('element', getData, `picUrl_${index + 1}_${element}`);
|
|
|
|
+ val.push({
|
|
|
|
+ name: getData[`goodsSn_${index + 1}_${element}`],
|
|
|
|
+ picUrl: getData[`picUrl_${index + 1}_${element}`][0],
|
|
|
|
+ uuid: `${index + 1}-${element}`,
|
|
|
|
+ });
|
|
|
|
+ });
|
|
|
|
+ console.log('ggList', val, specsObj.value);
|
|
|
|
+ let item = {
|
|
|
|
+ name: name,
|
|
|
|
+ specificationId: specsObj.value[name],
|
|
|
|
+ val,
|
|
|
|
+ };
|
|
|
|
+ goodsSpecificationList.push(item);
|
|
|
|
+ productList.push({
|
|
|
|
+ goodsNumber: null,
|
|
|
|
+ goodsSn: null,
|
|
|
|
+ marketPrice: null,
|
|
|
|
+ retailPrice: null,
|
|
|
|
+ uuidLink: '1-1',
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ console.log('update', { goodsSpecificationList, productList });
|
|
|
|
+ emit('update', { goodsSpecificationList, productList });
|
|
|
|
+ createMessage.success('click search,values:' + JSON.stringify(values));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // const submitButtonOptions = { type: 'default', text: '生成规格明细' } as UseButtonProps;
|
|
|
|
+ // const resetButtonOptions = { text: '添加规格项目', onClick: addBut } as UseButtonProps;
|
|
|
|
+
|
|
return {
|
|
return {
|
|
register,
|
|
register,
|
|
- handleSubmit: async (values: any) => {
|
|
|
|
- let data = await validate();
|
|
|
|
- let getData = await getFieldsValue();
|
|
|
|
- let goodsSpecificationList = [],
|
|
|
|
- productList = [];
|
|
|
|
- console.log('ggList', ggList.list, data);
|
|
|
|
- for (let index = 0; index < ggList.specsNumber; index++) {
|
|
|
|
- let ele = ggList.list[index + 1];
|
|
|
|
- let name = getData[`name_${index + 1}`];
|
|
|
|
- let val = [];
|
|
|
|
- ele.list.map((element) => {
|
|
|
|
- console.log('element', getData, `picUrl_${index + 1}_${element}`);
|
|
|
|
- val.push({
|
|
|
|
- name: getData[`goodsSn_${index + 1}_${element}`],
|
|
|
|
- picUrl: getData[`picUrl_${index + 1}_${element}`][0],
|
|
|
|
- uuid: `${index + 1}-${element}`,
|
|
|
|
- });
|
|
|
|
- });
|
|
|
|
- console.log('ggList', val, specsObj.value);
|
|
|
|
- let item = {
|
|
|
|
- name: name,
|
|
|
|
- specificationId: specsObj.value[name],
|
|
|
|
- val,
|
|
|
|
- };
|
|
|
|
- goodsSpecificationList.push(item);
|
|
|
|
- productList.push({
|
|
|
|
- goodsNumber: null,
|
|
|
|
- goodsSn: null,
|
|
|
|
- marketPrice: null,
|
|
|
|
- retailPrice: null,
|
|
|
|
- uuidLink: '1-1',
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
- console.log('setEditData', { goodsSpecificationList, productList });
|
|
|
|
- emit('setEditData', { goodsSpecificationList, productList });
|
|
|
|
- createMessage.success('click search,values:' + JSON.stringify(values));
|
|
|
|
- },
|
|
|
|
|
|
+ handleSubmit,
|
|
addSchemas,
|
|
addSchemas,
|
|
setProps,
|
|
setProps,
|
|
ggList,
|
|
ggList,
|