mirror of
https://gitee.com/ZhongBangKeJi/crmeb_java.git
synced 2026-04-24 20:28:33 +08:00
圣诞快乐
# v1.3 更新列表
1. 【新增】砍价
2. 【新增】拼团
3. 【新增】一号通
4. 【修复】商品sku 编辑时出现商品属性对应错误的问题
5. 【修复】商品推广海报生成二维码可能会出错的问题【小程序调试中】
6. 【修复】微信公众号和小程序头像可能获取不到的问题
7. 【修复】下单时可能会出错的问题
8. 【修复】pc管理端用户访问量
9. 【修复】微信退款
10. 【修复】管理端订单状态可能出现不正确的情况
11. 【修复】WEB管理端-菜单色调,短信API更新,首页用户访问量,系统设置tab是自动选择下一及表单
12. 【修复】系统设置出现更新不正确的问题
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
<!-- 商品信息-->
|
||||
<el-col v-bind="grid2">
|
||||
<el-form-item label="商品名称:" prop="storeName">
|
||||
<el-input v-model="formValidate.storeName" placeholder="请输入商品名称" />
|
||||
<el-input v-model="formValidate.storeName" maxlength="249" placeholder="请输入商品名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="grid2">
|
||||
@@ -34,7 +34,7 @@
|
||||
</el-col>
|
||||
<el-col v-bind="grid2">
|
||||
<el-form-item label="商品简介:">
|
||||
<el-input v-model="formValidate.storeInfo" type="textarea" :rows="3" placeholder="请输入商品简介" />
|
||||
<el-input v-model="formValidate.storeInfo" type="textarea" maxlength="250" :rows="3" placeholder="请输入商品简介" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="grid2">
|
||||
@@ -63,7 +63,7 @@
|
||||
<img :src="item">
|
||||
<i class="el-icon-error btndel" @click="handleRemove(index)" />
|
||||
</div>
|
||||
<div class="upLoadPicBox" @click="modalPicTap('2')">
|
||||
<div v-if="formValidate.sliderImages.length<10" class="upLoadPicBox" @click="modalPicTap('2')">
|
||||
<div class="upLoad">
|
||||
<i class="el-icon-camera cameraIconfont" />
|
||||
</div>
|
||||
@@ -329,19 +329,17 @@
|
||||
<el-input v-model="scope.row[iii]" :type="formThead[iii].title==='商品编号'?'text':'number'" class="priceBox" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template v-if="formValidate.isSub">
|
||||
<el-table-column align="center" label="一级返佣(元)" min-width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.brokerage" type="number" :min="0" class="priceBox" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="二级返佣(元)" min-width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.brokerageTwo" type="number" :min="0" class="priceBox" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
<el-table-column align="center" label="操作" min-width="80">
|
||||
<el-table-column align="center" label="一级返佣(元)" min-width="120" v-if="formValidate.isSub">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.brokerage" type="number" :min="0" class="priceBox" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="二级返佣(元)" min-width="120" v-if="formValidate.isSub">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.brokerageTwo" type="number" :min="0" class="priceBox" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column key="3" align="center" label="操作" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" class="submission" @click="delAttrTable(scope.$index)">删除</el-button>
|
||||
</template>
|
||||
@@ -366,6 +364,7 @@
|
||||
import { shippingTemplatesList } from '@/api/logistics'
|
||||
import { clearTreeData } from '@/utils/ZBKJIutil'
|
||||
import CreatTemplates from '@/views/systemSetting/logistics/shippingTemplates/creatTemplates'
|
||||
import Templates from "../../appSetting/wxAccount/wxTemplate/index";
|
||||
const defaultObj = {
|
||||
image: '',
|
||||
sliderImages: [],
|
||||
@@ -432,7 +431,7 @@
|
||||
const proOptions = [{ name: '是否热卖', value: 'isHot' }, { name: '优品推荐', value: 'isGood' }, { name: '促销单品', value: 'isBenefit' }, { name: '是否精品', value: 'isBest' }, { name: '是否新品', value: 'isNew' }]
|
||||
export default {
|
||||
name: 'ProductProductAdd',
|
||||
components: { CreatTemplates },
|
||||
components: {Templates, CreatTemplates },
|
||||
data() {
|
||||
return {
|
||||
activity: { '默认': 'red', '秒杀': 'blue', '砍价': 'green', '拼团': 'yellow' },
|
||||
@@ -525,7 +524,8 @@
|
||||
keywords: ''
|
||||
},
|
||||
tempRoute: {},
|
||||
keyNum: 0
|
||||
keyNum: 0,
|
||||
isAttr: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -543,7 +543,7 @@
|
||||
watch: {
|
||||
'formValidate.attr': {
|
||||
handler: function(val) {
|
||||
if (this.formValidate.specType) this.watCh(val)
|
||||
if (this.formValidate.specType && this.isAttr) this.watCh(val)
|
||||
},
|
||||
immediate: false,
|
||||
deep: true
|
||||
@@ -571,6 +571,7 @@
|
||||
},
|
||||
methods: {
|
||||
handleCloseCoupon(tag) {
|
||||
this.isAttr = true
|
||||
this.formValidate.coupons.splice(this.formValidate.coupons.indexOf(tag), 1)
|
||||
},
|
||||
addCoupon() {
|
||||
@@ -697,10 +698,12 @@
|
||||
},
|
||||
// 选择规格
|
||||
onChangeSpec(num) {
|
||||
this.isAttr = true;
|
||||
if (num) this.productGetRule()
|
||||
},
|
||||
// 选择属性确认
|
||||
confirm() {
|
||||
this.isAttr = true
|
||||
if (!this.formValidate.selectRule) {
|
||||
return this.$message.warning('请选择属性')
|
||||
}
|
||||
@@ -810,6 +813,7 @@
|
||||
},
|
||||
// 删除规格
|
||||
handleRemoveAttr(index) {
|
||||
this.isAttr = true
|
||||
this.formValidate.attr.splice(index, 1)
|
||||
this.manyFormValidate.splice(index, 1)
|
||||
},
|
||||
@@ -819,6 +823,7 @@
|
||||
},
|
||||
// 添加规则名称
|
||||
createAttrName() {
|
||||
this.isAttr = true
|
||||
if (this.formDynamic.attrsName && this.formDynamic.attrsVal) {
|
||||
const data = {
|
||||
attrName: this.formDynamic.attrsName,
|
||||
@@ -841,6 +846,7 @@
|
||||
},
|
||||
// 添加属性
|
||||
createAttr (num, idx) {
|
||||
this.isAttr = true
|
||||
if (num) {
|
||||
this.formValidate.attr[idx].attrValue.push(num);
|
||||
var hash = {};
|
||||
@@ -858,6 +864,7 @@
|
||||
getInfo () {
|
||||
this.fullscreenLoading = true
|
||||
productDetailApi(this.$route.params.id).then(async res => {
|
||||
this.isAttr = false;
|
||||
let info = res
|
||||
this.formValidate = {
|
||||
image: info.image,
|
||||
@@ -903,10 +910,20 @@
|
||||
// inputVisible: false
|
||||
}
|
||||
})
|
||||
this.ManyAttrValue = info.attrValues
|
||||
this.ManyAttrValue = info.attrValues;
|
||||
this.ManyAttrValue.forEach((val) => {
|
||||
this.attrInfo[Object.values(val.attrValue).sort().join('/')] = val
|
||||
})
|
||||
|
||||
const tmp = {}
|
||||
const tmpTab = {}
|
||||
this.formValidate.attr.forEach((o, i) => {
|
||||
tmp['value' + i] = { title: o.attrName }
|
||||
tmpTab['value' + i] = ''
|
||||
})
|
||||
this.manyTabTit = tmp
|
||||
this.manyTabDate = tmpTab
|
||||
this.formThead = Object.assign({}, this.formThead, tmp)
|
||||
}else{
|
||||
this.OneattrValue = info.attrValue
|
||||
this.formValidate.attr = []
|
||||
@@ -929,6 +946,8 @@
|
||||
_this.OneattrValue[0].image = img[0].sattDir
|
||||
}
|
||||
if(tit==='2'&& !num){
|
||||
if(img.length>10) return this.$message.warning("最多选择10张图片!");
|
||||
if(img.length + _this.formValidate.sliderImages.length > 10) return this.$message.warning("最多选择10张图片!");
|
||||
img.map((item) => {
|
||||
_this.formValidate.sliderImages.push(item.sattDir)
|
||||
});
|
||||
@@ -949,19 +968,17 @@
|
||||
if (this.currentTab-- <0) this.currentTab = 0;
|
||||
},
|
||||
handleSubmitNest(name){
|
||||
if (this.currentTab++ > 2) this.currentTab = 0
|
||||
// this.$refs[name].validate((valid) => {
|
||||
// if (valid) {
|
||||
// if (this.currentTab++ > 2) this.currentTab = 0;
|
||||
// // this.currentTab=1
|
||||
// } else {
|
||||
// if(!this.formValidate.store_name || !this.formValidate.cate_id || !this.formValidate.keyword
|
||||
// || !this.formValidate.unit_name || !this.formValidate.store_info
|
||||
// || !this.formValidate.image || !this.formValidate.slider_image){
|
||||
// this.$message.warning("请填写完整商品信息!");
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
this.$refs[name].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.currentTab++ > 2) this.currentTab = 0;
|
||||
} else {
|
||||
if(!this.formValidate.store_name || !this.formValidate.cate_id || !this.formValidate.keyword
|
||||
|| !this.formValidate.unit_name || !this.formValidate.store_info
|
||||
|| !this.formValidate.image || !this.formValidate.slider_image){
|
||||
this.$message.warning("请填写完整商品信息!");
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
// 提交
|
||||
handleSubmit (name) {
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<el-cascader v-model="tableFrom.cateId" :options="merCateList" :props="props" clearable class="selWidth mr20" @change="seachList" size="small"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品搜索:">
|
||||
<el-input v-model="tableFrom.keywords" placeholder="请输入商品名称,关键字,商品ID" class="selWidth" size="small">
|
||||
<el-input v-model="tableFrom.keywords" placeholder="请输入商品名称,关键字,商品ID" class="selWidth" size="small" clearable>
|
||||
<el-button slot="append" icon="el-icon-search" @click="seachList" size="small"/>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
@@ -20,7 +20,7 @@
|
||||
<router-link :to=" { path:'/store/list/creatProduct' } ">
|
||||
<el-button size="small" type="primary" class="mr10">添加商品</el-button>
|
||||
</router-link>
|
||||
<el-button size="small" type="success" class="mr10" @click="onCopy">复制淘宝、天猫、拼多多、京东、苏宁</el-button>
|
||||
<el-button size="small" type="success" class="mr10" @click="onCopy">商品采集</el-button>
|
||||
<el-button size="small" @click="exports">导出</el-button>
|
||||
</div>
|
||||
<el-table
|
||||
@@ -116,13 +116,13 @@
|
||||
<span>{{scope.row.addTime | formatDate}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" min-width="120" fixed="right" align="center">
|
||||
<el-table-column label="操作" min-width="150" fixed="right" align="center">
|
||||
<template slot-scope="scope">
|
||||
<router-link :to="{path: '/store/list/creatProduct/' + scope.row.id}">
|
||||
<el-button type="text" size="small" class="mr10">编辑</el-button>
|
||||
</router-link>
|
||||
<el-button v-if="tableFrom.type === '5'" type="text" size="small" @click="handleRestore(scope.row.id, scope.$index)">恢复商品</el-button>
|
||||
<el-button type="text" size="small" @click="handleDelete(scope.row.id, scope.$index)">{{ tableFrom.type === '5' ? '删除' : '加入回收站' }}</el-button>
|
||||
<el-button type="text" size="small" @click="handleDelete(scope.row.id, tableFrom.type)">{{ tableFrom.type === '5' ? '删除' : '加入回收站' }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -140,19 +140,19 @@
|
||||
</el-card>
|
||||
|
||||
<el-dialog
|
||||
title="复制淘宝、天猫、拼多多、京东、苏宁"
|
||||
title="复制淘宝、天猫、京东、苏宁"
|
||||
:visible.sync="dialogVisible"
|
||||
width="1000px"
|
||||
width="1200px"
|
||||
:modal="false"
|
||||
class="taoBaoModal"
|
||||
:before-close="handleClose">
|
||||
<tao-bao v-if="dialogVisible"></tao-bao>
|
||||
<tao-bao v-if="dialogVisible" @handleClose="handleClose"></tao-bao>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { productLstApi, productDeleteApi, categoryApi, putOnShellApi, offShellApi, productHeadersApi, productExportApi, restoreApi } from '@/api/store'
|
||||
import { productLstApi, productDeleteApi, categoryApi, putOnShellApi, offShellApi, productHeadersApi, productExportApi, restoreApi, productExcelApi } from '@/api/store'
|
||||
import { getToken } from '@/utils/auth'
|
||||
import taoBao from './taoBao'
|
||||
export default {
|
||||
@@ -209,13 +209,21 @@ export default {
|
||||
handleClose() {
|
||||
this.dialogVisible = false
|
||||
},
|
||||
handleCloseMod(item){
|
||||
this.dialogVisible = item
|
||||
this.goodHeade();
|
||||
this.getList();
|
||||
},
|
||||
// 复制
|
||||
onCopy(){
|
||||
this.dialogVisible = true
|
||||
},
|
||||
// 导出
|
||||
exports () {
|
||||
window.open(this.objectUrl + 'admin/export/excel/product?type=1&Authori-zation=' + getToken())
|
||||
productExcelApi({cateId:this.tableFrom.cateId,keywords: this.tableFrom.keywords, type:this.tableFrom.type}).then((res) => {
|
||||
window.open(res.fileName)
|
||||
})
|
||||
// window.open(this.objectUrl + 'admin/export/excel/product?type=1&Authori-zation=' + getToken())
|
||||
},
|
||||
// 获取商品表单头数量
|
||||
goodHeade () {
|
||||
@@ -231,6 +239,7 @@ export default {
|
||||
this.merCateList = res
|
||||
}).catch(res => {
|
||||
this.$message.error(res.message)
|
||||
this.$message.error(res.message)
|
||||
})
|
||||
},
|
||||
// 列表
|
||||
@@ -270,10 +279,14 @@ export default {
|
||||
this.$message.success('上架成功')
|
||||
this.getList()
|
||||
this.goodHeade();
|
||||
}).catch(()=>{
|
||||
row.isShow = !row.isShow
|
||||
}) : offShellApi(row.id).then(() => {
|
||||
this.$message.success('下架成功')
|
||||
this.getList()
|
||||
this.goodHeade();
|
||||
}).catch(()=>{
|
||||
row.isShow = !row.isShow
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<div class="container">
|
||||
<el-form inline size="small">
|
||||
<el-form-item label="规格搜索:">
|
||||
<el-input v-model="tableFrom.keywords" placeholder="请输入商品规格" class="selWidth">
|
||||
<el-input v-model="tableFrom.keywords" placeholder="请输入商品规格" class="selWidth" clearable>
|
||||
<el-button slot="append" icon="el-icon-search" @click="seachList" />
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<i class="el-icon-error btndel" @click="handleRemove(index)" />
|
||||
<!--<Button shape="circle" icon="md-close" class="btndel" @click.native="handleRemove(index)" />-->
|
||||
</div>
|
||||
<div class="upLoadPicBox" @click="modalPicTap('2')">
|
||||
<div v-if="pics<10" class="upLoadPicBox" @click="modalPicTap('2')">
|
||||
<div class="upLoad">
|
||||
<i class="el-icon-camera cameraIconfont" />
|
||||
</div>
|
||||
|
||||
@@ -17,26 +17,25 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品搜索:" class="mr10">
|
||||
<el-input v-model="tableFrom.productSearch" placeholder="请输入商品名称,商品id" class="selWidth" size="small">
|
||||
<el-input v-model="tableFrom.productSearch" placeholder="请输入商品名称,商品id" class="selWidth" size="small" clearable>
|
||||
<el-button slot="append" icon="el-icon-search" @click="seachList" size="small"/>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户名称:">
|
||||
<el-select v-model="uids" class="selWidth" reserve-keyword multiple remote filterable
|
||||
:remote-method="remoteMethod" :loading="loading" placeholder="请输入用户名称" clearable @change="seachList">
|
||||
<el-option
|
||||
v-for="item in options"
|
||||
:key="item.uid"
|
||||
:label="item.nickname"
|
||||
:value="item.uid">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-input v-model="tableFrom.nickname" placeholder="请输入用户名称" class="selWidth" size="small" clearable>
|
||||
<el-button slot="append" icon="el-icon-search" @click="seachList" size="small"/>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<!--<el-form-item label="用户名称:">-->
|
||||
<!--<el-input v-model="tableFrom.nickname" placeholder="请输入用户名称" class="selWidth" size="small">-->
|
||||
<!--<el-button slot="append" icon="el-icon-search" @click="seachList" size="small"/>-->
|
||||
<!--</el-input>-->
|
||||
<!--</el-form-item>-->
|
||||
<!--<el-select v-model="uids" class="selWidth" reserve-keyword multiple remote filterable-->
|
||||
<!--:remote-method="remoteMethod" :loading="loading" placeholder="请输入用户名称" clearable @change="seachList">-->
|
||||
<!--<el-option-->
|
||||
<!--v-for="item in options"-->
|
||||
<!--:key="item.uid"-->
|
||||
<!--:label="item.nickname"-->
|
||||
<!--:value="item.uid">-->
|
||||
<!--</el-option>-->
|
||||
<!--</el-select>-->
|
||||
|
||||
</el-form>
|
||||
</div>
|
||||
<el-button size="small" type="primary" @click="add">添加虚拟评论</el-button>
|
||||
@@ -71,9 +70,14 @@
|
||||
label="用户名称"
|
||||
min-width="200"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="productScore"
|
||||
label="商品评分"
|
||||
min-width="90"
|
||||
/>
|
||||
<el-table-column
|
||||
prop="serviceScore"
|
||||
label="评分"
|
||||
label="服务评分"
|
||||
min-width="90"
|
||||
/>
|
||||
<el-table-column
|
||||
@@ -185,7 +189,8 @@ export default {
|
||||
limit: 20,
|
||||
isReply: '',
|
||||
dateLimit: '',
|
||||
uid: '',
|
||||
// uid: '',
|
||||
nickname: '',
|
||||
productSearch:'',
|
||||
isDel: false
|
||||
},
|
||||
|
||||
@@ -1,21 +1,29 @@
|
||||
<template>
|
||||
<div class="Box">
|
||||
<el-card>
|
||||
<div>生成的商品默认是没有上架的,请手动上架商品!</div>
|
||||
<div>生成的商品默认是没有上架的,请手动上架商品!
|
||||
<span v-if="copyConfig.copyType && copyConfig.copyType==1">您当前剩余{{copyConfig.copyNum}}条采集次数,
|
||||
<router-link :to="{path:'/operation/onePass'}">
|
||||
<el-link type="primary" :underline="false">增加采集次数</el-link>
|
||||
</router-link>
|
||||
</span>
|
||||
<el-link v-if="copyConfig.copyType && copyConfig.copyType!=1" type="primary" :underline="false" href="https://www.kancloud.cn/crmeb/crmeb_java/1909022" target="_blank">如何配置密钥</el-link>
|
||||
<br>
|
||||
商品采集设置:设置 > 系统设置 > 第三方接口设置 > 采集商品配置(如配置一号通采集,请先登录一号通账号,无一号通,请选择99Api设置)</div>
|
||||
</el-card>
|
||||
<el-form class="formValidate mt20" ref="formValidate" :model="formValidate" :rules="ruleInline" label-width="120px"
|
||||
@submit.native.prevent v-loading="loading">
|
||||
<el-form-item>
|
||||
<el-form-item v-if="copyConfig.copyType && copyConfig.copyType!=1">
|
||||
<el-radio-group v-model="form">
|
||||
<el-radio :label="1">淘宝</el-radio>
|
||||
<el-radio :label="2">京东</el-radio>
|
||||
<el-radio :label="3">苏宁</el-radio>
|
||||
<el-radio :label="4">拼多多</el-radio>
|
||||
<!--<el-radio :label="3">苏宁</el-radio>-->
|
||||
<!--<el-radio :label="4">拼多多</el-radio>-->
|
||||
<el-radio :label="5">天猫</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="24">
|
||||
<el-col :span="24" v-if="copyConfig.copyType">
|
||||
<el-form-item label="链接地址:">
|
||||
<el-input v-model="url" placeholder="请输入链接地址" class="selWidth" size="small">
|
||||
<el-button slot="append" icon="el-icon-search" @click="add" size="small"/>
|
||||
@@ -25,12 +33,12 @@
|
||||
<el-col v-if="formValidate">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="商品名称:" prop="storeName">
|
||||
<el-input v-model="formValidate.storeName" placeholder="请输入商品名称"></el-input>
|
||||
<el-input v-model="formValidate.storeName" maxlength="249" placeholder="请输入商品名称"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="商品简介:">
|
||||
<el-input v-model="formValidate.storeInfo" type="textarea" :rows="3" placeholder="请输入商品简介"></el-input>
|
||||
<el-input v-model="formValidate.storeInfo" maxlength="250" type="textarea" :rows="3" placeholder="请输入商品简介"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
@@ -103,7 +111,7 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-if="formValidate.specType" :span="24" class="noForm">
|
||||
<el-col v-if="formValidate.specType || formValidate.attr.length" :span="24" class="noForm">
|
||||
<el-form-item label="批量设置:" class="labeltop">
|
||||
<el-table :data="oneFormBatch" border class="tabNumWidth" size="mini">
|
||||
<el-table-column align="center" label="图片" min-width="80">
|
||||
@@ -186,13 +194,13 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {crawlFromApi, treeListApi, crawlSaveApi, categoryApi, importProductApi, productCreateApi} from '@/api/store';
|
||||
import {crawlFromApi, treeListApi, crawlSaveApi, categoryApi, importProductApi, productCreateApi, copyConfigApi} from '@/api/store';
|
||||
import { shippingTemplatesList } from '@/api/logistics'
|
||||
const defaultObj = [{
|
||||
image: '',
|
||||
price: null,
|
||||
cost: null,
|
||||
ot_price: null,
|
||||
otPrice: null,
|
||||
stock: null,
|
||||
barCode: '',
|
||||
weight: null,
|
||||
@@ -205,7 +213,7 @@
|
||||
cost: {
|
||||
title: '成本价'
|
||||
},
|
||||
ot_price: {
|
||||
otPrice: {
|
||||
title: '原价'
|
||||
},
|
||||
stock: {
|
||||
@@ -274,7 +282,8 @@
|
||||
md: 12,
|
||||
sm: 24,
|
||||
xs: 24
|
||||
}
|
||||
},
|
||||
copyConfig: {}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -303,8 +312,18 @@
|
||||
},
|
||||
mounted() {
|
||||
this.productGetTemplate();
|
||||
this.getCopyConfig();
|
||||
},
|
||||
methods: {
|
||||
// 删除表格中的属性
|
||||
delAttrTable(index) {
|
||||
this.ManyAttrValue.splice(index, 1)
|
||||
},
|
||||
getCopyConfig(){
|
||||
copyConfigApi().then(res => {
|
||||
this.copyConfig = res
|
||||
})
|
||||
},
|
||||
// 批量添加
|
||||
batchAdd() {
|
||||
// if (!this.oneFormBatch[0].pic || !this.oneFormBatch[0].price || !this.oneFormBatch[0].cost || !this.oneFormBatch[0].ot_price ||
|
||||
@@ -313,7 +332,7 @@
|
||||
this.$set(val, 'image', this.oneFormBatch[0].image)
|
||||
this.$set(val, 'price', this.oneFormBatch[0].price)
|
||||
this.$set(val, 'cost', this.oneFormBatch[0].cost)
|
||||
this.$set(val, 'ot_price', this.oneFormBatch[0].ot_price)
|
||||
this.$set(val, 'otPrice', this.oneFormBatch[0].otPrice)
|
||||
this.$set(val, 'stock', this.oneFormBatch[0].stock)
|
||||
this.$set(val, 'barCode', this.oneFormBatch[0].barCode)
|
||||
this.$set(val, 'weight', this.oneFormBatch[0].weight)
|
||||
@@ -350,7 +369,7 @@
|
||||
image: '',
|
||||
price: 0,
|
||||
cost: 0,
|
||||
ot_price: 0,
|
||||
otPrice: 0,
|
||||
stock: 0,
|
||||
barCode: '',
|
||||
weight: 0,
|
||||
@@ -381,7 +400,7 @@
|
||||
image: '',
|
||||
price: 0,
|
||||
cost: 0,
|
||||
ot_price: 0,
|
||||
otPrice: 0,
|
||||
stock: 0,
|
||||
barCode: '',
|
||||
weight: 0,
|
||||
@@ -429,17 +448,16 @@
|
||||
// }
|
||||
this.loading = true;
|
||||
importProductApi({ url: this.url, form: this.form}).then(res => {
|
||||
let info = res
|
||||
this.formValidate = {
|
||||
image: info.image,
|
||||
sliderImages: JSON.parse(info.sliderImage),
|
||||
sliderImage: info.sliderImage,
|
||||
storeName: info.storeName,
|
||||
storeInfo: info.storeInfo,
|
||||
keyword: info.keyword,
|
||||
cateIds: info.cateId ? info.cateId.split(',') : [], // 商品分类id
|
||||
cateId: info.cateId,// 商品分类id传值
|
||||
unitName: info.unitName,
|
||||
image: res.image,
|
||||
sliderImages: JSON.parse(res.sliderImage),
|
||||
sliderImage: res.sliderImage,
|
||||
storeName: res.storeName,
|
||||
storeInfo: res.storeInfo,
|
||||
keyword: res.keyword,
|
||||
cateIds: res.cateId ? res.cateId.split(',') : [], // 商品分类id
|
||||
cateId: res.cateId,// 商品分类id传值
|
||||
unitName: res.unitName,
|
||||
sort: 0,
|
||||
isShow: 0,
|
||||
isBenefit: 0,
|
||||
@@ -447,20 +465,20 @@
|
||||
isGood: 0,
|
||||
isHot: 0,
|
||||
isBest: 0,
|
||||
tempId: info.tempId,
|
||||
attrValue: info.attrValue,
|
||||
attr: info.attr || [],
|
||||
selectRule: info.selectRule,
|
||||
tempId: res.tempId,
|
||||
attrValue: res.attrValue,
|
||||
attr: res.attr || [],
|
||||
selectRule: res.selectRule,
|
||||
isSub: false,
|
||||
content: info.content,
|
||||
specType: info.specType || false,
|
||||
id: info.id,
|
||||
giveIntegral: info.giveIntegral,
|
||||
ficti: info.ficti
|
||||
content: res.content,
|
||||
specType: res.attr.length ? true : false,
|
||||
id: res.id,
|
||||
giveIntegral: res.giveIntegral,
|
||||
ficti: res.ficti
|
||||
}
|
||||
if(this.formValidate.attr.length){
|
||||
for (var i = 0; i < this.formValidate.attr.length; i++) {
|
||||
this.formValidate.attr[i].attrValue = JSON.parse(info.attr[i].attrValues)
|
||||
this.formValidate.attr[i].attrValue = JSON.parse(this.formValidate.attr[i].attrValues)
|
||||
}
|
||||
}
|
||||
this.loading = false;
|
||||
@@ -473,13 +491,9 @@
|
||||
},
|
||||
// 提交
|
||||
handleSubmit (name) {
|
||||
this.formValidate.attr.length ? this.formValidate.attrValue=JSON.stringify(this.ManyAttrValue):this.formValidate.attrValue=[]
|
||||
this.formValidate.attr.length ? this.formValidate.attrValue=this.ManyAttrValue:this.formValidate.attrValue=[]
|
||||
this.formValidate.cateId = this.formValidate.cateIds.join(',')
|
||||
this.formValidate.sliderImage = JSON.stringify(this.formValidate.sliderImages)
|
||||
if(!this.formValidate.specType){
|
||||
this.formValidate.attr = []
|
||||
this.formValidate.attrValue = ''
|
||||
}
|
||||
for (var i = 0; i < this.formValidate.attr.length; i++) {
|
||||
this.formValidate.attr[i].attrValues = JSON.stringify(this.formValidate.attr[i].attrValue)
|
||||
}
|
||||
@@ -488,7 +502,7 @@
|
||||
this.modal_loading = true
|
||||
productCreateApi(this.formValidate).then(async res => {
|
||||
this.$message.success('新增成功');
|
||||
this.$parent.dialogVisible = false
|
||||
this.$emit('handleCloseMod', false)
|
||||
this.modal_loading = false
|
||||
}).catch(() => {
|
||||
this.modal_loading = false
|
||||
@@ -510,6 +524,8 @@
|
||||
_this.OneattrValue[0].image = img[0].sattDir
|
||||
}
|
||||
if(tit==='2'&& !num){
|
||||
if(img.length>10) return this.$message.warning("最多选择10张图片!");
|
||||
if(img.length + _this.formValidate.sliderImages.length > 10) return this.$message.warning("最多选择10张图片!");
|
||||
img.map((item) => {
|
||||
_this.formValidate.sliderImages.push(item.sattDir)
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user