前端:商品编辑,部分逻辑,解决 sku 编辑的 bug 。

This commit is contained in:
YunaiV
2019-05-02 20:18:40 +08:00
parent e05f19ddc6
commit 91d475034c
8 changed files with 107 additions and 55 deletions

View File

@@ -1,12 +1,10 @@
import { message } from 'antd';
import {
productCategoryTree,
productSpuAdd,
productCategoryUpdate,
productCategoryUpdateStatus,
productCategoryDelete,
productSpuUpdate,
productSpuInfo
} from '../../services/product';
import {bool} from "prop-types";
export default {
namespace: 'productSpuAddOrUpdate',
@@ -52,7 +50,7 @@ export default {
// payload: {},
// });
// },
*info({ payload }, { call, put }) {
*info({ payload, callback }, { call, put }) {
// 显示加载中
yield put({
type: 'changeLoading',
@@ -109,10 +107,20 @@ export default {
};
attrTree.push(attrTreeNode);
} else {
// let values = attrTreeNode.values;
// for (let k in ) {
//
// }
let attrValueExists = false;
let values = attrTreeNode.values;
for (let k in values) {
if (values[k].id === attr.attrValueId) {
attrValueExists = true;
break;
}
}
if (!attrValueExists) {
values.push({
id: attr.attrValueId,
name: attr.attrValueName,
});
}
}
}
}
@@ -127,6 +135,11 @@ export default {
},
});
// 如果有回调,则执行回调方法
if (callback) {
callback(response.data);
}
// 隐藏加载中
yield put({
type: 'changeLoading',
@@ -190,7 +203,7 @@ export default {
},
*update({ payload }, { call, put }) {
const { callback, body } = payload;
const response = yield call(productSpuAdd, body);
const response = yield call(productSpuUpdate, body);
if (callback) {
callback(response);
}
@@ -238,7 +251,13 @@ export default {
quantity: undefined,
});
}
// let interval = skuSize; // 该间隔,用于下面规格组合
for (let i = 0; i < state.attrTree.length; i++) { // 初始化 sku 格子里的 attrs
if (i === 1) {
// debugger;
}
let values = state.attrTree[i].values;
let interval = skuSize / values.length;
for (let j = 0; j < skuSize; j++) {
// let values = state.attrTree[i].values;
// let attr = values[j % values.length];
@@ -246,8 +265,8 @@ export default {
// id: attr.id,
// name: attr.name,
// });
let values = state.attrTree[i].values;
let attr = values[j % values.length];
// let attr = values[j % values.length];
let attr = values[parseInt(j / interval)];
skus[j].attrs.push({
id: attr.id,
name: attr.name,

View File

@@ -10,28 +10,6 @@ export default {
},
effects: {
// *add({ payload }, { call, put }) {
// const { callback, body } = payload;
// const response = yield call(productCategoryAdd, body);
// if (callback) {
// callback(response);
// }
// yield put({
// type: 'tree',
// payload: {},
// });
// },
// *update({ payload }, { call, put }) {
// const { callback, body } = payload;
// const response = yield call(productCategoryUpdate, body);
// if (callback) {
// callback(response);
// }
// yield put({
// type: 'tree',
// payload: {},
// });
// },
// *updateStatus({ payload }, { call, put }) {
// const { callback, body } = payload;
// const response = yield call(productCategoryUpdateStatus, body);