1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- import Vue from 'vue'
- import iview from 'iview'
- export default function editCategory (payload = {}, option = {}) {
- return new Promise(async (resolve, reject) => {
- const data = JSON.parse(JSON.stringify(payload))
- data.store_type_ids = data.store_type_ids.join()
- const error = {}
- const requestBody = {}
- // 字段验证方法
- const checkFuncs = {
- city_ids (value) {
- return value.length ? '' : '请选择可售卖城市'
- },
- name (value) {
- return value && value.trim() ? '' : '商品名称不能为空'
- },
- sale_name (value) {
- return value && value.trim() ? '' : '上架名称不能为空'
- },
- category_id1 (value) {
- return data.category_id3 ? '' : '请选择商品分类'
- },
- img (value) {
- return value ? '' : '请选择上传商品主图'
- },
- imgs (value) {
- return value.length ? '' : '请上传至少一张商品图集'
- },
- store_type_ids (value) {
- return value.length ? '' : '请选择商品储藏方式'
- },
- label (value) {
- return value.length ? '' : '请选择商品检测标签'
- },
- attribute_category_id (value) {
- return value ? '' : '请选择商品规格属性分类'
- },
- sku (value) {
- return value.length ? '' : '请生成至少一条sku'
- },
- parameter (value) {
- return value.length ? '' : '请选择至少一条商品参数'
- },
- deliver_type (value) {
- return typeof value === 'number' && value > -1 ? '' : '请选择商品配送方式'
- },
- is_confirm_sale (value) {
- return typeof value === 'number' && value > -1 ? '' : '请选择商品上架时间'
- },
- receive_type (value) {
- return value === 0 || data.receive_time ? '' : '请输入具体送达时间'
- },
- limit_number (value) {
- return typeof value === 'number' && value > -1 ? '' : '请输入正确的限购数量'
- },
- limit_type (value) {
- return typeof value === 'number' && value > -1 ? '' : '请选择限购类型'
- },
- }
- const valid = Object.keys(data).reduce((resultList, key) => {
- const func = checkFuncs[key]
- const value = data[key]
- const errorText = func ? func(value) : ''
- if (!errorText) requestBody[key] = value
- error[key] = errorText
- resultList.push(!errorText)
- return resultList
- }, []).every(Boolean)
- if (!valid) return reject(error)
- if (data.id) requestBody.id = data.id
- delete requestBody.category_id1
- delete requestBody.category_id2
- delete requestBody.category_name1
- delete requestBody.category_name2
- delete requestBody.category_name3
- delete requestBody.parameterData
- delete requestBody.patternData
- try {
- const method = requestBody.id ? 'put' : 'post'
- await Vue.http[method]('/product/product', requestBody)
- iview.Message.success('保存成功')
- resolve()
- } catch (e) {
- reject(e)
- }
- })
- }
|