提交 97222c8e authored 作者: huaxinzhu's avatar huaxinzhu

3.1添加商品

上级 b49200a2
...@@ -147,3 +147,12 @@ export function getByCategoryData(query) { ...@@ -147,3 +147,12 @@ export function getByCategoryData(query) {
params: query params: query
}) })
} }
// 综合列表-仓库-供应商-计量单位。。。
export function synthesisList(data) {
return request({
url: '/system/goodsNew/synthesisList',
method: 'post',
data: data
})
}
import request from '@/utils/request'
export function warehouseList(data) {
return request({
url: '/local/warehouse/list',
method: 'post',
data: data
})
}
...@@ -115,5 +115,8 @@ new Vue({ ...@@ -115,5 +115,8 @@ new Vue({
el: '#app', el: '#app',
router, router,
store, store,
render: h => h(App) render: h => h(App),
beforeCreate() {
Vue.prototype.$bus = this
}
}) })
...@@ -77,59 +77,58 @@ ...@@ -77,59 +77,58 @@
</el-card> </el-card>
<el-card class="box-card" ref="outhervalue"> <!-- <el-card class="box-card" ref="outhervalue">-->
<div slot="header" class="clearfix" > <!-- <div slot="header" class="clearfix" >-->
<span>其他设置</span> <!-- <span>其他设置</span>-->
</div> <!-- </div>-->
<el-form-item label='商品关键词:' prop="goods_des"> <!--&lt;!&ndash; <el-form-item label='商品关键词:' prop="goods_des">&ndash;&gt;-->
<el-input v-model.trim="goodsAfterSaleForm.goods_des" placeholder="请输入商品关键词" style="width:420px;"></el-input> <!--&lt;!&ndash; <el-input v-model.trim="goodsAfterSaleForm.goods_des" placeholder="请输入商品关键词" style="width:420px;"></el-input>&ndash;&gt;-->
<span class="tip-span ml20">关键词之间用 <strong>英文逗号</strong> 分开,最多可以添加5个</span> <!--&lt;!&ndash; <span class="tip-span ml20">关键词之间用 <strong>英文逗号</strong> 分开,最多可以添加5个</span>&ndash;&gt;-->
</el-form-item> <!--&lt;!&ndash; </el-form-item>&ndash;&gt;-->
<el-form-item label="商品产地:" prop="producing_area"> <!-- <el-form-item label="商品产地:" prop="producing_area">-->
<el-select v-model.trim="goodsAfterSaleForm.producing_area" placeholder="请选择商品产地" style="width: 420px;"> <!-- <el-select v-model.trim="goodsAfterSaleForm.producing_area" placeholder="请选择商品产地" style="width: 420px;">-->
<el-option <!-- <el-option-->
v-for="item in areaOptions" <!-- v-for="item in areaOptions"-->
:key="item.id" <!-- :key="item.id"-->
:label="item.name" <!-- :label="item.name"-->
:value="item.id" <!-- :value="item.id"-->
></el-option> <!-- ></el-option>-->
</el-select> <!-- </el-select>-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="商品发货地:" prop="deliver_area"> <!-- <el-form-item label="商品发货地:" prop="deliver_area">-->
<el-select v-model.trim="goodsAfterSaleForm.deliver_area" placeholder="请选择商品发货地" style="width: 420px;"> <!-- <el-select v-model.trim="goodsAfterSaleForm.deliver_area" placeholder="请选择商品发货地" style="width: 420px;">-->
<el-option <!-- <el-option-->
v-for="item in areaOptions" <!-- v-for="item in areaOptions"-->
:key="item.id" <!-- :key="item.id"-->
:label="item.name" <!-- :label="item.name"-->
:value="item.id" <!-- :value="item.id"-->
></el-option> <!-- ></el-option>-->
</el-select> <!-- </el-select>-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label='商品单位:' prop="unit"> <!-- <el-form-item label='商品单位:' prop="unit">-->
<el-input v-model.trim="goodsAfterSaleForm.unit" placeholder="请输入商品单位" style="width:420px;"></el-input> <!-- <el-input v-model.trim="goodsAfterSaleForm.unit" placeholder="请输入商品单位" style="width:420px;"></el-input>-->
<!-- <span class="tip-span ml20">关键词之间用逗号分开,最多可以添加5个</span>--> <!-- &lt;!&ndash; <span class="tip-span ml20">关键词之间用逗号分开,最多可以添加5个</span>&ndash;&gt;-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label='市场参考价链接:' prop="web_url"> <!--&lt;!&ndash; <el-form-item label='市场参考价链接:' prop="web_url">&ndash;&gt;-->
<el-input v-model.trim="goodsAfterSaleForm.web_url" placeholder="请输入京东或者淘宝的商品链接" style="width:420px;"></el-input> <!--&lt;!&ndash; <el-input v-model.trim="goodsAfterSaleForm.web_url" placeholder="请输入京东或者淘宝的商品链接" style="width:420px;"></el-input>&ndash;&gt;-->
</el-form-item> <!--&lt;!&ndash; </el-form-item>&ndash;&gt;-->
<el-form-item label='商品编码:' prop="out_goods_id"> <!-- <el-form-item label='商品编码:' prop="out_goods_id">-->
<el-input v-model.trim="goodsAfterSaleForm.out_goods_id" placeholder="请输入商品编码(非必须)" style="width:420px;"></el-input> <!-- <el-input v-model.trim="goodsAfterSaleForm.out_goods_id" placeholder="请输入商品编码(非必须)" style="width:420px;"></el-input>-->
</el-form-item> <!-- </el-form-item>-->
</el-card> <!-- </el-card>-->
</el-form> </el-form>
</div> </div>
</template> </template>
<script> <script>
import { GetFreight } from '@/api/module/goods' import { GetFreight } from '@/api/module/goods'
import { getAreaList } from '@/api/module/retreat/address'
import draggable from 'vuedraggable' import draggable from 'vuedraggable'
export default { export default {
name: "goodsaftersale", name: "goodsaftersale",
...@@ -175,28 +174,19 @@ ...@@ -175,28 +174,19 @@
freight_id: 310, freight_id: 310,
delay_compensate: 24, delay_compensate: 24,
aftersale_time: 7, aftersale_time: 7,
// 参数
params:[ params:[
{ {
'title':'', 'title':'',
'value':'' 'value':''
} }
],//参数 ],
goods_des:'',//关键词
producing_area:'',//产地
deliver_area:'',//发货地
unit:'',//单位
web_url:'',//外部市场链接
out_goods_id:''//商品编码
}, },
goodsAfterSaleRules: { goodsAfterSaleRules: {
stags: [{ type: 'array', required: true, message: '请选择至少一个服务标签', trigger: 'change' }], stags: [{ type: 'array', required: true, message: '请选择至少一个服务标签', trigger: 'change' }],
freight_id: [{required: true, message: '请选择邮费模板', trigger: 'change'}], freight_id: [{required: true, message: '请选择邮费模板', trigger: 'change'}],
delay_compensate: [{required: true, message: '请选择发货时效', trigger: 'change'}], delay_compensate: [{required: true, message: '请选择发货时效', trigger: 'change'}],
aftersale_time: [{required: true, message: '请选择售后时长', trigger: 'change'}], aftersale_time: [{required: true, message: '请选择售后时长', trigger: 'change'}],
producing_area:[{required: true, message: '请选择商品产地', trigger: 'change'}],
deliver_area: [{required: true, message: '请选择商品发货地', trigger: 'change'}],
unit: [{required: true, message: '商品单位不能为空', trigger: 'blur'}],
goods_brand: [{required: true, message: '请选择商品品牌', trigger: 'change'}]
}, },
tagOptions: [ tagOptions: [
{id: 2, tag: "假一赔十"}, {id: 2, tag: "假一赔十"},
...@@ -211,30 +201,17 @@ ...@@ -211,30 +201,17 @@
components: { draggable }, components: { draggable },
mounted() { mounted() {
this.getFreightData(); this.getFreightData();
debugger // debugger
console.log('售后数据:',this.goodsaftersale); // console.log('售后数据:',this.goodsaftersale);
if(this.goodsaftersale) { if(this.goodsaftersale) {
this.goodsAfterSaleForm = this.goodsaftersale; this.goodsAfterSaleForm = this.goodsaftersale;
} }
}, },
created() { created() {
// 获取 省 // 获取 省
this.getArea(); // this.getArea();
}, },
methods: { methods: {
// 获取 省
getArea() {
let limboNode = {
pid: 0
};
getAreaList(limboNode).then( res => {
if( res.data && res.data.length > 0) {
this.areaOptions = res.data;
}else {
this.areaOptions = [];
}
});
},
// 添加参数 // 添加参数
addparameter(){ addparameter(){
let obj = { let obj = {
...@@ -283,11 +260,11 @@ ...@@ -283,11 +260,11 @@
flag = true flag = true
} else { } else {
flag = false flag = false
if(this.goodsAfterSaleForm.producing_area==''||this.goodsAfterSaleForm.deliver_area==''||this.goodsAfterSaleForm.unit==''){ // if(this.goodsAfterSaleForm.producing_area==''||this.goodsAfterSaleForm.deliver_area==''||this.goodsAfterSaleForm.unit==''){
sessionStorage.setItem('clickbtm',1) // sessionStorage.setItem('clickbtm',1)
}else{ // }else{
sessionStorage.setItem('clickbtm',2) // sessionStorage.setItem('clickbtm',2)
} // }
} }
}) })
return flag return flag
......
...@@ -10,34 +10,10 @@ ...@@ -10,34 +10,10 @@
</el-form-item> </el-form-item>
<el-form-item label='商品标题:' prop="goods_name"> <el-form-item label='商品标题:' prop="goods_name">
<el-input v-model.trim="goodsInfoForm.goods_name" placeholder="请输入商品标题" style="width:420px;"></el-input> <el-input v-model.trim="goodsInfoForm.goods_name" maxlength="300" show-word-limit
<span class="tip-span ml20">商品名称限制在50字以内,不要填写与商品无关的词</span> placeholder="请输入商品标题" style="width:420px;"></el-input>
<span class="tip-span ml20">商品名称限制在300字以内,不要填写与商品无关的词</span>
</el-form-item> </el-form-item>
<!-- <el-form-item label='商品关键词:' prop="goods_des">
<el-input v-model.trim="goodsInfoForm.goods_des" placeholder="请输入商品关键词" style="width:420px;"></el-input>
<span class="tip-span ml20">关键词之间用 <strong>英文逗号</strong> 分开,最多可以添加5个</span>
</el-form-item> -->
<!-- <el-form-item label="商品产地:" prop="producing_area">
<el-select v-model.trim="goodsInfoForm.producing_area" placeholder="请选择商品产地" style="width: 420px;">
<el-option
v-for="item in areaOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item> -->
<!-- <el-form-item label="商品发货地:" prop="deliver_area">
<el-select v-model.trim="goodsInfoForm.deliver_area" placeholder="请选择商品发货地" style="width: 420px;">
<el-option
v-for="item in areaOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item> -->
<!-- <el-form-item label='商品单位:' prop="unit"> <!-- <el-form-item label='商品单位:' prop="unit">
<el-input v-model.trim="goodsInfoForm.unit" placeholder="请输入商品单位" style="width:420px;"></el-input> <el-input v-model.trim="goodsInfoForm.unit" placeholder="请输入商品单位" style="width:420px;"></el-input>
</el-form-item> --> </el-form-item> -->
...@@ -45,15 +21,52 @@ ...@@ -45,15 +21,52 @@
<el-select v-model.trim="goodsInfoForm.brand_id" placeholder="请选择商品品牌" style="width: 420px;"> <el-select v-model.trim="goodsInfoForm.brand_id" placeholder="请选择商品品牌" style="width: 420px;">
<el-option v-for="item in brandOptions" :key="item.id" :label="item.brand_cn" :value="item.id"></el-option> <el-option v-for="item in brandOptions" :key="item.id" :label="item.brand_cn" :value="item.id"></el-option>
</el-select> </el-select>
<el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toBrand">新增品牌</el-link> <el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('brand')">新增品牌</el-link>
</el-form-item>
<el-form-item label="计量单位:" prop="metering_unit">
<el-select v-model.trim="goodsInfoForm.metering_unit" placeholder="请选择商品计量单位" style="width: 420px;">
<el-option v-for="item in unitList" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="包装单位:" prop="packaging_unit">
<el-select v-model.trim="goodsInfoForm.packaging_unit" placeholder="请选择商品包装单位" style="width: 420px;">
<el-option v-for="item in packageList" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="换算关系:" prop="conversion_unit">
<el-input v-model.trim="goodsInfoForm.conversion_unit" placeholder="请输入换算关系都数量值" style="width:420px;"></el-input>
<span class="tip-span ml20">1包装单位=n计量单位,如:1箱=10个,请填写数字10</span>
</el-form-item>
<el-form-item label="商品产地:" prop="producing_area_id">
<el-cascader ref="producing_area" v-model.trim="goodsInfoForm.producing_area_id" :props="areaProps" placeholder="请选择"
style="width:420px;" size="mini" @change="matchIdName('producing_area')">
</el-cascader>
</el-form-item>
<el-form-item label="商品发货地:" prop="deliver_area_id">
<el-cascader ref="deliver_area" v-model.trim="goodsInfoForm.deliver_area_id" :props="areaProps" placeholder="请选择"
style="width:420px;" size="mini" @change="matchIdName('deliver_area')">
</el-cascader>
</el-form-item> </el-form-item>
<!-- <el-form-item label='市场参考价链接:' prop="web_url">
<el-input v-model.trim="goodsInfoForm.web_url" placeholder="请输入京东或者淘宝的商品链接" style="width:420px;"></el-input>
</el-form-item> -->
<!-- <el-form-item label='商品编码:' prop="out_goods_id"> <!-- <el-form-item label='商品编码:' prop="out_goods_id">
<el-input v-model.trim="goodsInfoForm.out_goods_id" placeholder="请输入商品编码(非必须)" style="width:420px;"></el-input> <el-input v-model.trim="goodsInfoForm.out_goods_id" placeholder="请输入商品编码(非必须)" style="width:420px;"></el-input>
</el-form-item> --> </el-form-item> -->
<div style="display: flex;justify-content: flex-start;flex-direction: row;">
<el-form-item label='税收分类:' prop="ssfl">
<el-input v-model.trim="goodsInfoForm.ssfl" :disabled="true" placeholder="请输入税收分类" style="width:160px;"></el-input>
</el-form-item>
<el-form-item label='税率:' prop="tax_rate" label-width="100px">
<el-select v-model.trim="goodsInfoForm.tax_rate" placeholder="请选择商品税率" style="width: 160px;">
<el-option
v-for="item in taxRateOptions"
:key="item.id"
:label="item.value"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</div>
<el-form-item label="商品图片:" prop="imgs"> <el-form-item label="商品图片:" prop="imgs">
<span class="tip-span" style="display: block;line-height: 34px;"> <span class="tip-span" style="display: block;line-height: 34px;">
<i style="margin: 10px;">{{ goodsImgFileList.length }} / 7</i> <i style="margin: 10px;">{{ goodsImgFileList.length }} / 7</i>
...@@ -90,11 +103,49 @@ ...@@ -90,11 +103,49 @@
</el-dialog> </el-dialog>
</el-form-item> </el-form-item>
<!-- 更多设置 -->
<p class="more-settings-p" @click="switchMoreSetting">
<span>{{ !isMoreSetting ? "展开" : "收起"}}</span>更多设置
<i v-show="!isMoreSetting" class="el-icon-arrow-down"></i>
<i v-show="isMoreSetting" class="el-icon-arrow-up"></i>
</p>
<transition name="fade">
<div v-show="isMoreSetting">
<el-form-item label='市场参考价链接:'>
<el-input v-model.trim="goodsInfoForm.web_url" placeholder="请输入京东或者淘宝的商品链接" style="width:420px;"></el-input>
</el-form-item>
<el-form-item label="商品分组:">
<el-select v-model.trim="goodsInfoForm.group" placeholder="请选择商品分组" style="width: 420px;">
<el-option v-for="item in goodsGroupList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
<el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('group')">新增分组</el-link>
</el-form-item>
<el-form-item label="所属供应商:">
<el-select v-model.trim="goodsInfoForm.supplier" placeholder="请选择供应商" style="width: 420px;">
<el-option v-for="item in supplierList" :key="item.id" :label="item.title" :value="item.id"></el-option>
</el-select>
<el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('supplier')">新增供应商</el-link>
</el-form-item>
<el-form-item label="所属仓库:">
<el-select v-model.trim="goodsInfoForm.storehouse" v-el-select-loadmore="loadMoreTheme" class="w-600" placeholder="请选择仓库" style="width: 420px;">
<el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
<el-link class="edit-type-span el-icon-plus" type="primary" :underline="false" @click="toPage('warehouse')">新增仓库</el-link>
</el-form-item>
<el-form-item label='商品标签:' prop="goods_des">
<el-input v-model.trim="goodsInfoForm.goods_des" placeholder="请输入商品标签" style="width:420px;"></el-input>
<span class="tip-span ml20">关键词之间用 <strong>英文逗号</strong> 分开,最多可以添加5个</span>
</el-form-item>
<el-form-item label='商品视频:'> <el-form-item label='商品视频:'>
<span class="tip-span" style="display: block;line-height: 34px;"> <span class="tip-span" style="display: block;line-height: 34px;">
最多上传一个视频(mp4格式),视频时长不超过30秒, 最多上传一个视频(mp4格式),视频时长不超过30秒,
<span style="margin-left: 20px;">视频大小不超过10M,默认视频在图片前面</span> <span style="margin-left: 20px;">视频大小不超过100M,默认视频在图片前面</span>
</span> </span>
<video v-if="vediosrc" style="width:300px;height:150px;float:left;margin:0 10px 0 0;" v-bind:src="vediosrc" <video v-if="vediosrc" style="width:300px;height:150px;float:left;margin:0 10px 0 0;" v-bind:src="vediosrc"
...@@ -110,6 +161,8 @@ ...@@ -110,6 +161,8 @@
<!-- v-if="videoform.showvideopath !='' && !videoflag" --> <!-- v-if="videoform.showvideopath !='' && !videoflag" -->
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</div>
</transition>
</el-form> </el-form>
<!-- 修改 商品分类目录 --> <!-- 修改 商品分类目录 -->
...@@ -127,9 +180,10 @@ ...@@ -127,9 +180,10 @@
</template> </template>
<script> <script>
import { NewGetCategory,NewGetCategoryData, GetFreight, UploadImg, getByCategoryData, uploadVideo } from '@/api/module/goods' import { NewGetCategoryData, UploadImg, getByCategoryData, uploadVideo,synthesisList } from '@/api/module/goods'
import { getBrandsInf } from '@/api/module/brand/brand' import { getBrandsInf } from '@/api/module/brand/brand'
import { getAreaList } from '@/api/module/retreat/address' import { getAreaList } from '@/api/module/retreat/address'
import { warehouseList } from '@/api/module/mockTest' // 仓库列表
import draggable from 'vuedraggable' import draggable from 'vuedraggable'
export default { export default {
name: 'goods', name: 'goods',
...@@ -153,6 +207,27 @@ ...@@ -153,6 +207,27 @@
}; };
} }
}, },
directives: {
'el-select-loadmore': {
bind(el, binding) {
// 获取element-ui定义好的scroll盒子
const SELECTWRAP_DOM = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap');
SELECTWRAP_DOM.addEventListener('scroll', function () {
/**
* scrollHeight 获取元素内容高度(只读)
* scrollTop 获取或者设置元素的偏移值,常用于, 计算滚动条的位置, 当一个元素的容器没有产生垂直方向的滚动条, 那它的scrollTop的值默认为0.
* clientHeight 读取元素的可见高度(只读)
* 如果元素滚动到底, 下面等式返回true, 没有则返回false:
* ele.scrollHeight - ele.scrollTop === ele.clientHeight;
*/
const condition = this.scrollHeight - this.scrollTop <= this.clientHeight;
if (condition) {
binding.value();
}
});
}
}
},
data() { data() {
let categoryIdCheck = (rule, value, callback) => { let categoryIdCheck = (rule, value, callback) => {
if (this.goodsImgFileList.length < 1) { if (this.goodsImgFileList.length < 1) {
...@@ -194,6 +269,9 @@ ...@@ -194,6 +269,9 @@
showvideopath: '' showvideopath: ''
}, },
goodsvedioFileList: [], goodsvedioFileList: [],
taxRateOptions: [
{id: 0,value: '0'}
], // 税率
vediosrc: '', vediosrc: '',
loadingapp: false, loadingapp: false,
drag: false, drag: false,
...@@ -204,29 +282,41 @@ ...@@ -204,29 +282,41 @@
goods_id: 0, goods_id: 0,
categoryStr: '', // 商品分类 地址拼接 categoryStr: '', // 商品分类 地址拼接
categoryList: [], // 商品分类 id集合的数组 categoryList: [], // 商品分类 id集合的数组
goods_des: '', // 关键词 goods_des: '', // 商品标签
goods_name: '', // 商品标题 goods_name: '', // 商品标题
category_id: '', category_id: '',
producing_area: '', // 产地 producing_area_id: '', // 产地id
deliver_area: '', // 发货地 producing_area: '', // 产地name
unit: '', // 单位 deliver_area_id: '', // 发货地id
deliver_area: '', // 发货地name
goods_brand: '', // 品牌 goods_brand: '', // 品牌
brand_id: '', // 品牌id brand_id: '', // 品牌id
metering_unit: '', // 计量单位
packaging_unit: '', // 包装单位
conversion_unit: '', // 换算关系
ssfl: '', // 税收分类
tax_rate: 0, // 税率
web_url: '', // 外部链接 web_url: '', // 外部链接
group: '', // 商品分组
supplier: '', // 供应商
storehouse: '', // 仓库
out_goods_id: '', // 商品编码 out_goods_id: '', // 商品编码
imgs: [], // 商品图片 imgs: [], // 商品图片
video: '' video: ''
}, },
isMoreSetting: false, // true-展开状态;false-收起状态
goodsInfoRules: { goodsInfoRules: {
categoryStr: [{ required: true, message: '商品分类不能为空', trigger: 'blur' }], categoryStr: [{ required: true, message: '商品分类不能为空', trigger: 'blur' }],
goods_name: [ goods_name: [
{ required: true, message: '请输入商品名称', trigger: 'blur' }, { required: true, message: '请输入商品名称', trigger: 'blur' },
{ min: 3, max: 50, message: '商品标题限制在3字符以上,50个字符以下', trigger: 'blur' } { min: 3, max: 50, message: '商品标题限制在3字符以上,50个字符以下', trigger: 'blur' }
], ],
brand_id: [{ required: true, message: '请选择商品品牌', trigger: 'change' }],
ssfl: [{ required: true, message: '请选择商品税收分类', trigger: 'change' }],
// goods_des: [{required: true, validator: goodsDecCheck, trigger: 'blur'}], // goods_des: [{required: true, validator: goodsDecCheck, trigger: 'blur'}],
// producing_area:[{required: true, message: '请选择商品产地', trigger: 'change'}], producing_area_id:[{required: true, message: '请选择商品产地', trigger: 'change'}],
deliver_area: [{ required: true, message: '请选择商品发货地', trigger: 'change' }], deliver_area_id: [{ required: true, message: '请选择商品发货地', trigger: 'change' }],
unit: [{ required: true, message: '商品单位不能为空', trigger: 'blur' }], metering_unit: [{ required: true, message: '商品单位不能为空', trigger: 'blur' }],
goods_brand: [{ required: true, message: '请选择商品品牌', trigger: 'change' }], goods_brand: [{ required: true, message: '请选择商品品牌', trigger: 'change' }],
imgs: [{ required: true, message: '请上传商品图片', validator: categoryIdCheck }] imgs: [{ required: true, message: '请上传商品图片', validator: categoryIdCheck }]
}, },
...@@ -249,6 +339,27 @@ ...@@ -249,6 +339,27 @@
}, },
fuckoptions: [], fuckoptions: [],
catefee: 0, catefee: 0,
areaProps: {
checkStrictly: true ,
expandTrigger: 'click',
emitPath: true,
lazy: true,
lazyLoad: this.areaLazyLoad,
value: "id",
label: "name",
leaf: "leaf"
},
unitList: [], // 计量单位
packageList: [], // 包装单位
goodsGroupList: [], //分组
supplierList: [], // 供应商
warehouseList: [], // 仓库
pageDataTheme: {
page: 1,
limit: 20,
// status: 1, // 已起用的
},
warehouseCount: 0, // 仓库总数量
} // return end } // return end
}, },
watch: { watch: {
...@@ -262,8 +373,8 @@ ...@@ -262,8 +373,8 @@
created() { created() {
// 获取 商品品牌 // 获取 商品品牌
this.getBrands(); this.getBrands();
// 获取类目 // 综合接口,获取仓库,供应商,商品分组,计量单位,默认返回第一页的数据
// this.getSSQArea(); this.getSynthesisList();
}, },
mounted() { mounted() {
if (this.goodsinfodata.goods_id) { if (this.goodsinfodata.goods_id) {
...@@ -279,13 +390,93 @@ ...@@ -279,13 +390,93 @@
} else { } else {
this.goodsInfoForm.categoryStr = this.goodsinfodata.categoryStr; this.goodsInfoForm.categoryStr = this.goodsinfodata.categoryStr;
this.goodsInfoForm.categoryList = this.goodsinfodata.categoryList; this.goodsInfoForm.categoryList = this.goodsinfodata.categoryList;
let categoryNameList = this.goodsinfodata.categoryStr.split("/");
if (categoryNameList.length === 3) {
this.goodsInfoForm.ssfl = categoryNameList[2]
}
} }
// 初始化 服务费率 // 初始化 服务费率
this.getByCategoryFee(this.goodsInfoForm.categoryList) this.getByCategoryFee(this.goodsInfoForm.categoryList)
this.SSQGoodsList = this.goodsInfoForm.categoryList this.SSQGoodsList = this.goodsInfoForm.categoryList
this. getalllist(this.SSQGoodsList) this.getalllist(this.SSQGoodsList)
}, },
methods: { methods: {
// 更多设置 初始化 数据
resetMoreSetting() {
let resetPartData = {
web_url: '',
group: '',
supplier: '',
storehouse: '',
goods_des: '',
video: ''
};
this.delvideo()
Object.assign(this.goodsInfoForm,resetPartData)
},
// 产地
areaLazyLoad(node, resolve) {
this.getArea(node, resolve);
},
// 商品产地
getArea(node, resolve) {
const level = node.level
let date = {}
if (level === 0) {
date = { pid: 0 }
}else {
date = { pid: node.value }
}
getAreaList(date).then(res => {
let result = {}
result = res.data
if (level === 0) {
result.forEach(item => {
item.value = item.id;
item.label = item.name
item.children=[]
item.leaf = 0
})
}
if (level === 1) {
result.forEach(item => {
item.value = item.id;
item.label = item.name
item.children=[]
//这句代码表示当点击最后一级的时候 label后面不会转圈圈 并把相关值赋值到选择器上
item.leaf = 0
})
}
if (level === 2) {
result.forEach(item => {
item.value = item.id;
item.label = item.name
//这句代码表示当点击最后一级的时候 label后面不会转圈圈 并把相关值赋值到选择器上
item.leaf = 1
})
}
resolve(result)
})
},
// 产地查处id对应的中文地址
matchIdName(typeName) {
let areaLabelList = this.$refs[typeName].getCheckedNodes()[0].pathLabels;
let areaLastName = 0;
if (areaLabelList.length > 0) {
areaLastName = areaLabelList.length - 1
// 产地
if (typeName === "producing_area") {
this.goodsInfoForm.producing_area = areaLabelList[areaLastName]
}
// 发货地
if (typeName === "deliver_area") {
this.goodsInfoForm.deliver_area = areaLabelList[areaLastName]
}
}
},
handchange() {//图片拖动结束 handchange() {//图片拖动结束
this.goodsInfoForm.imgs = [] this.goodsInfoForm.imgs = []
this.goodsImgFileList.forEach(item => { this.goodsImgFileList.forEach(item => {
...@@ -299,7 +490,7 @@ ...@@ -299,7 +490,7 @@
// 上传 视频 之前 // 上传 视频 之前
beforeUpGoodsvedio(file) { beforeUpGoodsvedio(file) {
// debugger // debugger
let isImgSize = (file.size / 1024 / 1024) > 10; let isImgSize = (file.size / 1024 / 1024) > 100;
if (file.type !== "video/mp4") { if (file.type !== "video/mp4") {
this.$message({ this.$message({
...@@ -311,7 +502,7 @@ ...@@ -311,7 +502,7 @@
if (isImgSize) { if (isImgSize) {
this.$message({ this.$message({
message: '上传视频大小不能超过10MB', message: '上传视频大小不能超过100MB',
type: "warning" type: "warning"
}); });
return false; return false;
...@@ -380,13 +571,68 @@ ...@@ -380,13 +571,68 @@
status: 1 status: 1
} }
getBrandsInf(data).then(res => { getBrandsInf(data).then(res => {
if (res.code == 1) { if (res.data) {
this.brandOptions = res.data.data ? res.data.data : []; this.brandOptions = res.data.data ? res.data.data : [];
} else {
this.brandOptions = [];
} }
}); });
}, },
// 综合接口,获取仓库,供应商,商品分组,计量单位,默认返回第一页的数据
getSynthesisList() {
synthesisList().then(res=> {
// 数据兼容
if (res.code === 1 && res.data) {
// 包装单位
if (Array.isArray(res.data.goods_pack_list)) {
this.packageList = res.data.goods_pack_list
}
// 计量单位
if (Array.isArray(res.data.goods_unit_list)) {
this.unitList = res.data.goods_unit_list
}
// 商品分组
if (res.data.group_list && Array.isArray(res.data.group_list.list)) {
this.goodsGroupList = res.data.group_list.list
}
// 供应商
if (Array.isArray(res.data.operator_list)) {
this.supplierList = res.data.operator_list
}
// 仓库
if (res.data.warehouse_list && Array.isArray(res.data.warehouse_list.list)) {
this.warehouseList = res.data.warehouse_list.list
// 默认一次数据最多20条,如果这个接口,返回仓库数据小于20条,说明仓库已经没有数据了,不用再进行滚动懒加载;否则仓库总数量,
// 可能多于20条,需要进行滚动懒加载
if (this.warehouseList.length === 20) {
this.loadMoreTheme()
}
}
}else {
this.$message({type: "error",message: res.message ? res.message : ""});
}
});
},
// 仓库 滚动加载
loadMoreTheme() {
if (this.warehouseList.length < this.warehouseCount) {
this.pageDataTheme.page++;
this.getWarehouseList();
}
},
// 仓库列表
getWarehouseList() {
warehouseList(this.pageDataTheme).then(res=> {
if (res.data) {
if (Array.isArray(res.data.list) && res.data.list.length > 0) {
this.warehouseList = this.warehouseList.concat(res.data.list);
this.warehouseCount = res.data.count;
}
}
});
},
/* 修改 商品分类 类目 */ /* 修改 商品分类 类目 */
editType() { editType() {
// this.SSQGoodsList = []; // this.SSQGoodsList = [];
...@@ -491,6 +737,7 @@ ...@@ -491,6 +737,7 @@
let ssqLabelList = this.$refs['ssqGoodsCascader'].getCheckedNodes()[0].pathLabels; let ssqLabelList = this.$refs['ssqGoodsCascader'].getCheckedNodes()[0].pathLabels;
this.goodsInfoForm.categoryList = this.SSQGoodsList; this.goodsInfoForm.categoryList = this.SSQGoodsList;
this.goodsInfoForm.categoryStr = ssqLabelList[0] + '/' + ssqLabelList[1] + '/' + ssqLabelList[2]; this.goodsInfoForm.categoryStr = ssqLabelList[0] + '/' + ssqLabelList[1] + '/' + ssqLabelList[2];
this.goodsInfoForm.ssfl = ssqLabelList[2];
this.editGoodsTypeDialog = false; this.editGoodsTypeDialog = false;
this.$message({ type: 'success', message: '修改成功' }); this.$message({ type: 'success', message: '修改成功' });
// 修改类目后更新 服务费率 // 修改类目后更新 服务费率
...@@ -505,6 +752,10 @@ ...@@ -505,6 +752,10 @@
this.SSQGoodsList = []; this.SSQGoodsList = [];
}, },
// 更多设置
switchMoreSetting() {
this.isMoreSetting = !this.isMoreSetting
},
// 上传 商品图片,限制 7 张 // 上传 商品图片,限制 7 张
limitImg5() { limitImg5() {
...@@ -609,9 +860,26 @@ ...@@ -609,9 +860,26 @@
} }
}, },
// 维护品牌 // 跳转到对应页面
toBrand() { toPage(name) {
switch (name) {
case 'brand' : {
this.$router.push({ path: '/system/shop/brand' }); this.$router.push({ path: '/system/shop/brand' });
break;
}
case 'group' : {
this.$router.push({ path: '/system/setup/commodityGroup' });
break;
}
case 'supplier' : {
this.$router.push({ path: '/system/supplier' });
break;
}
case 'warehouse' : {
this.$router.push({ path: '/system/warehouse' });
break;
}
}
}, },
/** 根据类目 获取服务费率 /** 根据类目 获取服务费率
...@@ -676,6 +944,22 @@ ...@@ -676,6 +944,22 @@
margin: 0 20px; margin: 0 20px;
} }
/*更多设置*/
.more-settings-p {
display: inline-block;
margin: 20px 0;
padding: 0 0 0 66px;
font-size: 14px;
font-weight: 400;
cursor: pointer;
color: #1890ff;
}
.more-settings-p:hover {
display: inline-block;
color: #647dff;
}
/* 一般提示性文字 */ /* 一般提示性文字 */
.tip-span { .tip-span {
color: #909399; color: #909399;
...@@ -715,4 +999,12 @@ ...@@ -715,4 +999,12 @@
.opendow /deep/ .el-dialog{ .opendow /deep/ .el-dialog{
width:800px; width:800px;
} }
.fade-enter-active, .fade-leave-active {
transition: opacity .5s;
}
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
opacity: 0;
}
</style> </style>
<template> <template>
<div class="goods-parameter"> <div :class="['goods-parameter']">
<div v-show="isradioguide==1"> <div v-if="parameterdata.isradioguide === 1">
<!-- <p style="margin: 10px 0;color: #333;font-size: 14px;font-weight: 400;">默认</p> --> <!-- <p style="margin: 10px 0;color: #333;font-size: 14px;font-weight: 400;">默认</p> -->
<el-table <el-table
border border
size="small" size="small"
:data="singleSpecTable" :data="singleSpecTable"
style="width: 80%;margin-right:10%;" style="width: 100%;margin-right:10%;"
> >
<el-table-column align="center" prop="js_price" label="协议价" > <el-table-column align="center" prop="sc_price" label="市场划线价">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.js_price" placeholder="请输入协议价" ></el-input> <el-input size="mini" style="width:90%" v-model.trim="scope.row.sc_price" placeholder="请输入市场价"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="sl_price" label="结算价"> <el-table-column align="center" prop="price" label="销售指导价">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ settleSLPriceFormatter(scope.row.js_price) }}</span> <el-input size="mini" style="width:90%" v-model.trim="scope.row.price" placeholder="请输入指导价"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="price" label="指导价"> <el-table-column align="center" prop="js_price" label="供货结算价" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.price" placeholder="请输入指导价"></el-input> <el-input size="mini" style="width:90%" v-model.trim="scope.row.js_price" placeholder="请输入协议价" ></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="sc_price" label="市场价"> <el-table-column align="center" label="成本核算价" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.sc_price" placeholder="请输入市场价"></el-input> <el-input size="mini" style="width:90%" v-model.trim="scope.row.prime_cost" placeholder="请输入" ></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="stock" label="库存量">
<el-table-column align="center" prop="stock" label="库存">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.stock" placeholder="请输入库存量"></el-input> <el-input size="mini" style="width:90%" v-model.trim="scope.row.stock" placeholder="请输入库存量"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="weight" label="重量"> <el-table-column align="center" prop="" label="库存预警">
<template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.stock_warning" placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column align="center" prop="weight" label="重量(g)">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.weight" placeholder="请输入重量"></el-input> <el-input size="mini" style="width:90%" v-model.trim="scope.row.weight" placeholder="请输入重量"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="体积(m³)">
<template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.volume" placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column align="center" label="编码">
<template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.goods_code" placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column align="center" label="条形码">
<template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.number="scope.row.bar_code" placeholder="请输入"></el-input>
</template>
</el-table-column>
<!-- <el-table-column align="center" prop="imgs9" label="图片">--> <!-- <el-table-column align="center" prop="imgs9" label="图片">-->
<!-- <template slot-scope="scope">--> <!-- <template slot-scope="scope">-->
<!-- &lt;!&ndash;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&ndash;&gt;--> <!-- &lt;!&ndash;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;&ndash;&gt;-->
...@@ -57,16 +80,44 @@ ...@@ -57,16 +80,44 @@
<!-- </template>--> <!-- </template>-->
<!-- </el-table-column>--> <!-- </el-table-column>-->
</el-table> </el-table>
<div class="tiered-pricing-con">
<el-checkbox v-model="parameterdata.is_ladder">启用阶梯定价</el-checkbox>
<el-table v-show="parameterdata.is_ladder" border size="small" :data="parameterdata.ladder"
style="width: 80%;margin-right:10%;" class="single-tiered-pricing-table">
<el-table-column align="center" prop="" label="规格" >
<template slot-scope="scope">
<span>默认</span>
</template>
</el-table-column>
<el-table-column align="center" prop="" label="起订量" >
<template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.number="scope.row.quantity" placeholder="起订量" ></el-input>
</template>
</el-table-column>
<el-table-column align="center" prop="" label="价格" >
<template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.number="scope.row.money" placeholder="价格" ></el-input>
</template>
</el-table-column>
<el-table-column align="center" prop="" label="操作" >
<template slot-scope="scope">
<el-button @click="delTieredPrice(scope.$index)" v-if="parameterdata.ladder.length > 1" size="mini" type="text" class="custom-button-danger">删除</el-button>
<el-divider v-if="parameterdata.ladder.length > 1" direction="vertical"></el-divider>
<el-button @click="addTieredPrice" size="mini" type="text">添加阶梯</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div> </div>
<div v-if="parameterdata.specs&&parameterdata.specs.length > 0&&isradioguide==2" class="single-spe-con"> <div v-if="parameterdata.specs&&parameterdata.specs.length > 0 && parameterdata.isradioguide === 2" class="single-spe-con">
<!-- {{parameterdata.specs_group}} -->
<el-table <el-table
border border
size="small" size="small"
:data="parameterdata.specs_group" :data="parameterdata.specs_group"
:span-method="objectSpanMethod1" :span-method="objectSpanMethod1"
style="width: 80%" style="width: 100%"
:key="keyvalue" :key="keyvalue"
> >
<el-table-column <el-table-column
...@@ -80,60 +131,90 @@ ...@@ -80,60 +131,90 @@
<!-- <template slot-scope="scope"> <!-- <template slot-scope="scope">
</template> --> </template> -->
</el-table-column> </el-table-column>
<el-table-column align="center" prop="js_price" label="协议价"> <el-table-column align="center" prop="sc_price" label="市场划线价">
<template slot="header"> <template slot="header">
<span>协议</span> <span>市场划线</span>
<el-tooltip placemetn="top"> <el-tooltip placemetn="top" >
<span slot="content">点击可批量设置价格</span> <span slot="content">点击可批量设置价格</span>
<span class="spe-ali-icon0435 iconfont icon-iconset0435" @click="applyAllTable('js_price')"></span> <span class="spe-ali-icon0435 iconfont icon-iconset0435" @click="applyAllTable('sc_price')"></span>
</el-tooltip> </el-tooltip>
</template> </template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.js_price" placeholder="请输入协议价"></el-input> <el-input size="mini" style="width:90%" v-model.trim="scope.row.sc_price" placeholder="请输入"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="sl_price" label="结算价">
<el-table-column align="center" prop="price" label="销售指导价">
<template slot="header">
<span>销售指导价</span>
<el-tooltip placemetn="top" >
<span slot="content">点击可批量设置价格</span>
<span class="spe-ali-icon0435 iconfont icon-iconset0435" @click="applyAllTable('price')"></span>
</el-tooltip>
</template>
<template slot-scope="scope"> <template slot-scope="scope">
<span class="sl-price-span-input">{{ settleSLPriceFormatter(scope.row.js_price) }}</span> <el-input size="mini" style="width:90%" v-model.trim="scope.row.price" placeholder="请输入"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="price" label="指导价">
<el-table-column align="center" prop="js_price" label="供货结算价">
<template slot="header"> <template slot="header">
<span>指导</span> <span>供货结算</span>
<el-tooltip placemetn="top" > <el-tooltip placemetn="top">
<span slot="content">点击可批量设置价格</span> <span slot="content">点击可批量设置价格</span>
<span class="spe-ali-icon0435 iconfont icon-iconset0435" @click="applyAllTable('price')"></span> <span class="spe-ali-icon0435 iconfont icon-iconset0435" @click="applyAllTable('js_price')"></span>
</el-tooltip> </el-tooltip>
</template> </template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.price" placeholder="请输入指导价"></el-input> <el-input size="mini" style="width:90%" v-model.trim="scope.row.js_price" placeholder="请输入"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="sc_price" label="市场价">
<el-table-column align="center" prop="prime_cost" label="成本核算价">
<template slot="header"> <template slot="header">
<span>市场</span> <span>成本核算</span>
<el-tooltip placemetn="top" > <el-tooltip placemetn="top">
<span slot="content">点击可批量设置价格</span> <span slot="content">点击可批量设置价格</span>
<span class="spe-ali-icon0435 iconfont icon-iconset0435" @click="applyAllTable('sc_price')"></span> <span class="spe-ali-icon0435 iconfont icon-iconset0435" @click="applyAllTable('prime_cost')"></span>
</el-tooltip> </el-tooltip>
</template> </template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.sc_price" placeholder="请输入市场价"></el-input> <el-input size="mini" style="width:90%" v-model.trim="scope.row.prime_cost" placeholder="请输入"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="stock" label="库存量">
<!-- <el-table-column align="center" prop="sl_price" label="结算价">-->
<!-- <template slot-scope="scope">-->
<!-- <span class="sl-price-span-input">{{ settleSLPriceFormatter(scope.row.js_price) }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column align="center" prop="stock" label="库存">
<template slot="header"> <template slot="header">
<span>库存</span> <span>库存</span>
<el-tooltip placemetn="top" > <el-tooltip placemetn="top" >
<span slot="content">点击可批量设置数量</span> <span slot="content">点击可批量设置数量</span>
<span class="spe-ali-icon0435 iconfont icon-iconset0435" @click="applyAllTable('stock')"></span> <span class="spe-ali-icon0435 iconfont icon-iconset0435" @click="applyAllTable('stock')"></span>
</el-tooltip> </el-tooltip>
</template> </template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.stock" placeholder="请输入库存量"></el-input> <el-input size="mini" style="width:90%" v-model.trim="scope.row.stock" placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column align="center" prop="stock_warning" label="库存预警">
<template slot="header">
<span>库存预警</span>
<el-tooltip placemetn="top" >
<span slot="content">点击可批量设置数量</span>
<span class="spe-ali-icon0435 iconfont icon-iconset0435" @click="applyAllTable('stock_warning')"></span>
</el-tooltip>
</template>
<template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.stock_warning" placeholder="请输入"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="weight" label="重量"> <el-table-column align="center" prop="weight" label="重量(g)">
<template slot="header"> <template slot="header">
<span>重量</span> <span>重量</span>
<el-tooltip placemetn="top" > <el-tooltip placemetn="top" >
...@@ -142,9 +223,49 @@ ...@@ -142,9 +223,49 @@
</el-tooltip> </el-tooltip>
</template> </template>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.weight" placeholder="请输入重量"></el-input> <el-input size="mini" style="width:90%" v-model.trim="scope.row.weight" placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column align="center" prop="volume" label="体积(m³)">
<template slot="header">
<span>体积</span>
<el-tooltip placemetn="top" >
<span slot="content">点击可批量设置</span>
<span class="spe-ali-icon0435 iconfont icon-iconset0435" @click="applyAllTable('volume')"></span>
</el-tooltip>
</template>
<template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.volume" placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column align="center" prop="goods_code" label="编码">
<template slot="header">
<span>编码</span>
<el-tooltip placemetn="top" >
<span slot="content">点击可批量设置</span>
<span class="spe-ali-icon0435 iconfont icon-iconset0435" @click="applyAllTable('goods_code')"></span>
</el-tooltip>
</template>
<template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.goods_code" placeholder="请输入"></el-input>
</template>
</el-table-column>
<el-table-column align="center" prop="bar_code" label="条形码">
<template slot="header">
<span>条形码</span>
<el-tooltip placemetn="top" >
<span slot="content">点击可批量设置</span>
<span class="spe-ali-icon0435 iconfont icon-iconset0435" @click="applyAllTable('bar_code')"></span>
</el-tooltip>
</template>
<template slot-scope="scope">
<el-input size="mini" style="width:90%" v-model.trim="scope.row.bar_code" placeholder="请输入"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="thumb" label="图片"> <el-table-column align="center" prop="thumb" label="图片">
<template slot-scope="scope"> <template slot-scope="scope">
<span <span
...@@ -164,8 +285,76 @@ ...@@ -164,8 +285,76 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<input type="file" style="display: none;" ref="guideupimg" accept="image/*" <input type="file" style="display: none;" ref="guideupimg" accept="image/*" @change="changeIMG()">
@change="changeIMG()"> </div>
<!-- 多规格,阶梯定价 -->
<div v-if="parameterdata.is_ladder_spec && parameterdata.specs&&parameterdata.specs.length > 0 && parameterdata.isradioguide === 2">
<el-table
border
size="small"
:data="parameterdata.specs_group"
:span-method="objectSpanMethod1"
style="width: 100%"
:key="keyvalue"
>
<el-table-column
header-align="center"
align="center"
v-for="(item, index) in parameterdata.specs"
:key="index"
:prop="item.spec_name"
:label="item.spec_name"
>
<!-- <template slot-scope="scope">
</template> -->
</el-table-column>
<el-table-column align="center" label="起批量">
<!-- <template slot="header">-->
<!-- <span>起批量</span>-->
<!-- <el-tooltip placemetn="top">-->
<!-- <span slot="content">点击可批量设置</span>-->
<!-- <span class="spe-ali-icon0435 iconfont icon-iconset0435"></span>-->
<!-- </el-tooltip>-->
<!-- </template>-->
<template slot-scope="scope">
<el-input size="mini" v-for="(iten,inde) in scope.row.ladder" :key="inde" style="width:90%"
v-model="scope.row.ladder[inde].quantity" placeholder="请输入" @input="upChange"
class="custom-el-input-con"></el-input>
</template>
</el-table-column>
<el-table-column align="center" label="价格">
<!-- <template slot="header">-->
<!-- <span>价格</span>-->
<!-- <el-tooltip placemetn="top">-->
<!-- <span slot="content">点击可批量设置</span>-->
<!-- <span class="spe-ali-icon0435 iconfont icon-iconset0435"></span>-->
<!-- </el-tooltip>-->
<!-- </template>-->
<template slot-scope="scope">
<el-input size="mini" v-for="(iten,inde) in scope.row.ladder" :key="inde" style="width:90%"
v-model="scope.row.ladder[inde].money" placeholder="请输入" @input="upChange"
class="custom-el-input-con"></el-input>
</template>
</el-table-column>
<el-table-column align="center" prop="" label="操作">
<template slot-scope="scope">
<div class="options-price-con">
<div>
<div v-for="(iten,inde) in scope.row.ladder">
<el-button @click="delTieredPrice1(scope.$index,inde)" v-if="scope.row.ladder.length > 1" size="mini" type="text" class="custom-button-danger">删除</el-button>
<el-divider v-if="scope.row.ladder.length > 1" direction="vertical"></el-divider>
</div>
</div>
<div>
<el-button @click="addTieredPrice1(scope.$index)" size="mini" type="text">添加阶梯</el-button>
</div>
</div>
</template>
</el-table-column>
</el-table>
</div> </div>
</div> </div>
</template> </template>
...@@ -178,11 +367,13 @@ export default { ...@@ -178,11 +367,13 @@ export default {
parameterdata: { parameterdata: {
type: Object, type: Object,
required: true required: true
} },
}, },
data() { data() {
return { return {
isradioguide:'', // isCustomPriceSingle: false, // 单规格-阶梯定价
// isCustomPriceSpec: false, // 多规格-阶梯定价
fuckVal: 0,
upimgindex:'', upimgindex:'',
keyvalue:1, keyvalue:1,
spacArr:[], spacArr:[],
...@@ -192,12 +383,16 @@ export default { ...@@ -192,12 +383,16 @@ export default {
/** 无规格 数据 */ /** 无规格 数据 */
singleSpecTable: [ singleSpecTable: [
{ {
js_price: '', // 协议 sc_price: '', // 市场划线
sl_price: '', // 结算 price: '', // 销售指导
price: '', // 指导 js_price: '', // 供货结算
sc_price: '', // 市场 prime_cost: '', // 成本核算
stock: '', // 库存 stock: '', // 库存
stock_warning: '', // 库存预警
weight: '', // 重量 g weight: '', // 重量 g
volume: '', // 体积
goods_code: '', // 编码
bar_code: '', // 条码
} }
], ],
singleSpecImgList: [], singleSpecImgList: [],
...@@ -219,35 +414,60 @@ export default { ...@@ -219,35 +414,60 @@ export default {
} // return end } // return end
}, },
watch:{ watch:{
'parameterdata': function(val) {
this.orgGoodsPam = val;
if(val.pamNameList){
this.spacArr = val.pamNameList
}
},
}, },
created() { created() {
this.cateFee = this.$store.state.user.cateFee; this.cateFee = this.$store.state.user.cateFee;
}, },
mounted() { mounted() {
this.isradioguide = this.parameterdata.isradioguide ? this.parameterdata.isradioguide:1
console.log(this.parameterdata)
this.getSpanArr(this.parameterdata); this.getSpanArr(this.parameterdata);
this.keyvalue++ this.keyvalue++
if(this.parameterdata.singleSpecTable && this.parameterdata.singleSpecTable.length === 1 ) { // debugger
if (this.parameterdata.singleSpecTable && this.parameterdata.singleSpecTable.length === 1) {
this.singleSpecTable = this.parameterdata.singleSpecTable this.singleSpecTable = this.parameterdata.singleSpecTable
} }
// console.log(439,this.parameterdata)
// 接受 多规格是否启用阶梯定价
this.$bus.$on("customPriceSpec",(data)=> {
this.parameterdata.is_ladder_spec = data
this.keyvalue++
})
},
beforeDestroy () {
this.$bus.$off('customPriceSpec')
}, },
methods: { methods: {
parentMsg(val){ upChange() {
console.log(val,'guangbo') this.keyvalue++
this.isradioguide = val // this.$forceUpdate()
}, },
/** 初始化 商品售价 数据 */ /** 初始化 商品售价 数据 */
initInfo() { initInfo() {
this.orgGoodsPam = {}; this.orgGoodsPam = {};
//this.singleSpecTable =
}, },
addTieredPrice1(index){
let priceItem = {quantity: 1,money: 0}
// this.parameterdata.specs_group[index].ladder.push(priceItem)
this.$set(this.parameterdata.specs_group[index].ladder,this.parameterdata.specs_group[index].ladder.length,priceItem);
this.keyvalue++
},
delTieredPrice1(index,inde) {
this.parameterdata.specs_group[index].ladder.splice(inde,1)
this.keyvalue++
},
// 添加阶梯
addTieredPrice() {
let ladderItem = {quantity: 1,money: 0}
this.parameterdata.ladder.push(ladderItem)
},
// 删除阶梯
delTieredPrice(index) {
this.parameterdata.ladder.splice(index,1);
},
// ------ 无规格,上传图片相关 ------ // ------ 无规格,上传图片相关 ------
limit5() { limit5() {
this.$message({type: 'warning',message: '只能上传5张图片'}); this.$message({type: 'warning',message: '只能上传5张图片'});
...@@ -330,46 +550,28 @@ export default { ...@@ -330,46 +550,28 @@ export default {
* 当多规格数据时候,才调用 * 当多规格数据时候,才调用
* */ * */
priceReduce() { priceReduce() {
// debugger
if(this.parameterdata.pamTableList && this.parameterdata.pamTableList.length > 0) { if(this.parameterdata.pamTableList && this.parameterdata.pamTableList.length > 0) {
this.parameterdata.pamTableList.forEach((item)=> { this.parameterdata.pamTableList.forEach((item)=> {
if(item[0].js_price) { if(item[0].sc_price) {
item[0].js_price = item[0].js_price / 100; item[0].sc_price = item[0].sc_price / 100;
} }
if(item[0].price) { if(item[0].price) {
item[0].price = item[0].price / 100; item[0].price = item[0].price / 100;
} }
if(item[0].sc_price) {
item[0].sc_price = item[0].sc_price / 100; if(item[0].js_price) {
item[0].js_price = item[0].js_price / 100;
} }
if(item[0].sl_price) {
item[0].sl_price = item[0].sl_price / 100; if(item[0].price_cost) {
item[0].price_cost = item[0].price_cost / 100;
} }
}) })
} }
// else {
// if(this.singleSpecTable[0].js_price) {
// this.singleSpecTable[0].js_price = this.singleSpecTable[0].js_price / 100
// }
// if(this.singleSpecTable[0].price) {
// this.singleSpecTable[0].price = this.singleSpecTable[0].price / 100
// }
// if(this.singleSpecTable[0].sc_price) {
// this.singleSpecTable[0].sc_price = this.singleSpecTable[0].sc_price / 100
// }
// if(this.singleSpecTable[0].sl_price) {
// this.singleSpecTable[0].sl_price = this.singleSpecTable[0].sl_price / 100
// }
// }
}, },
/** 一键应用所有 */ /** 一键应用所有 */
applyAllTable(key) { applyAllTable(key) {
// js_price: '', // 协议价
// sl_price: '', // 结算价
// price: '', // 指导价
// sc_price: '', // 市场价
// stock: '', // 库存
// weight: '', // 重量 g
let text = '' let text = ''
let pacee = '' let pacee = ''
if(key == 'js_price'){ if(key == 'js_price'){
...@@ -509,6 +711,22 @@ export default { ...@@ -509,6 +711,22 @@ export default {
} }
} }
}, },
// 表格合并 列单元格
// arraySpanMethod({ row, column, rowIndex, columnIndex }) {
// if (columnIndex > 2 && columnIndex != 6 && columnIndex != 7) { // 用于设置要合并开始的列号
// if (rowIndex === 0) { // 用于设置合并开始的行号
// return {
// rowspan: 100,     // 合并的行数
// colspan: 1 // 合并的列数,设为0则直接不显示
// }
// } else {
// return {
// rowspan: 0,
// colspan: 0
// }
// }
// }
// },
// 合并行数 // 合并行数
objectSpanMethod1({ row, column, rowIndex, columnIndex }) { objectSpanMethod1({ row, column, rowIndex, columnIndex }) {
if(this.parameterdata.specs_group && this.parameterdata.specs_group.length > 0) { if(this.parameterdata.specs_group && this.parameterdata.specs_group.length > 0) {
...@@ -628,7 +846,11 @@ p { ...@@ -628,7 +846,11 @@ p {
} }
.goods-parameter { .goods-parameter {
padding: 20px; padding: 20px;
}
.goods-parameter-spe {
padding-top: 0;
margin-top: -20px;
} }
.edit-type-span { .edit-type-span {
...@@ -695,4 +917,31 @@ p { ...@@ -695,4 +917,31 @@ p {
height: 50px; height: 50px;
} }
} }
.tiered-pricing-con {
margin: 20px 0 0;
}
.single-tiered-pricing-table {
margin: 20px 0 0;
}
.custom-button-danger {
color: #F56C6C;
}
.custom-button-danger:hover {
color: #ff4949;
}
.custom-el-input-con {
margin: 3px 0;
}
.options-price-con {
display: flex;
justify-content: center;
flex-direction: row;
align-items: center;
}
</style> </style>
...@@ -46,8 +46,10 @@ ...@@ -46,8 +46,10 @@
<el-button type="danger" plain icon="el-icon-delete" size="mini" @click="deleteSpe(index)">删除该规格</el-button> <el-button type="danger" plain icon="el-icon-delete" size="mini" @click="deleteSpe(index)">删除该规格</el-button>
</div> </div>
</div> </div>
<div>
<el-checkbox v-model="isCustomPriceSpec" class="custom-price-check" @change="switchCustomPriceSpec">启用阶梯定价</el-checkbox>
<el-button @click="addSpe" class="el-icon-plus" size="mini">添加规格</el-button> <el-button @click="addSpe" class="el-icon-plus" size="mini">添加规格</el-button>
</div>
<!-- 添加 规格名称 --> <!-- 添加 规格名称 -->
<el-dialog <el-dialog
...@@ -88,6 +90,7 @@ export default { ...@@ -88,6 +90,7 @@ export default {
}, },
data() { data() {
return { return {
isCustomPriceSpec: false, // 是否启用 阶梯定价
tableData7:{}, tableData7:{},
speData: [], // 商品规格总数据 speData: [], // 商品规格总数据
specsGroup: { specsGroup: {
...@@ -113,7 +116,7 @@ export default { ...@@ -113,7 +116,7 @@ export default {
/** 先获取 本地存储的localStorage **/ /** 先获取 本地存储的localStorage **/
this.getLocalSpecNameOption(); this.getLocalSpecNameOption();
// 先判断是新增还是修改 // 先判断是新增还是修改
//console.log(123,this.specificationsdata) // console.log(44444,this.specificationsdata)
if(this.specificationsdata.length === 0) { if(this.specificationsdata.length === 0) {
this.$set(this.specsGroup.spec_value,this.specsGroup.spec_value.length,this.speParamName); this.$set(this.specsGroup.spec_value,this.specsGroup.spec_value.length,this.speParamName);
this.speData = []; this.speData = [];
...@@ -132,6 +135,12 @@ export default { ...@@ -132,6 +135,12 @@ export default {
// } // }
}, },
methods: { methods: {
switchCustomPriceSpec() {
this.$bus.$emit("customPriceSpec",this.isCustomPriceSpec)
if (!this.isCustomPriceSpec) {
console.log(151,this.specificationsdata)
}
},
/** 初始化 商品规格数据 */ /** 初始化 商品规格数据 */
initInfo() { initInfo() {
// debugger // debugger
...@@ -346,7 +355,7 @@ export default { ...@@ -346,7 +355,7 @@ export default {
if (proSpeData.length === 0) { if (proSpeData.length === 0) {
let goodsPam = { let goodsPam = {
specs:[], specs:[],
isradioguide:1 isradioguide:2
}; };
this.$emit('calcSpeTable', goodsPam); this.$emit('calcSpeTable', goodsPam);
} else { } else {
...@@ -358,43 +367,55 @@ export default { ...@@ -358,43 +367,55 @@ export default {
} }
// goodsParametersList newList // goodsParametersList newList
let goodsParametersList = this.cartesian(proSpeData); let goodsParametersList = this.cartesian(proSpeData);
debugger // debugger
for (let index = 0; index < goodsParametersList.length; index++) { for (let index = 0; index < goodsParametersList.length; index++) {
var listobj = {}; var listobj = {};
listobj["js_price"] = "";
listobj["sl_price"] = "";
listobj["price"] = "";
listobj["sc_price"] = ""; listobj["sc_price"] = "";
listobj["price"] = "";
listobj["js_price"] = "";
listobj["prime_cost"] = "";
listobj["stock"] = ""; listobj["stock"] = "";
listobj["stock_warning"] = "";
listobj["weight"] = ""; listobj["weight"] = "";
listobj["volume"] = "";
listobj["goods_code"] = "";
listobj["bar_code"] = "";
listobj["thumb"] = ""; listobj["thumb"] = "";
listobj["spec_values"] = goodsParametersList[index] listobj["spec_values"] = goodsParametersList[index]
for (let i = 0; i < this.speData.length; i++) { for (let i = 0; i < this.speData.length; i++) {
debugger
if(this.speData.length>1){ if(this.speData.length>1){
listobj[this.speData[i].spec_name] = goodsParametersList[index][i]; listobj[this.speData[i].spec_name] = goodsParametersList[index][i];
} }
if(this.speData.length==1){ if(this.speData.length==1){
debugger
listobj[this.speData[0].spec_name] = goodsParametersList[index]; listobj[this.speData[0].spec_name] = goodsParametersList[index];
} }
} }
specs_group.push(listobj); specs_group.push(listobj);
} }
// goodsParametersList.forEach((item,index)=> { // goodsParametersList.forEach((item,index)=> {
// goodsPam.pamTableList.push(prePamTable) // goodsPam.pamTableList.push(prePamTable)
// }); // });
this.tableData7['specs_group'] = specs_group this.tableData7['specs_group'] = specs_group
this.tableData7['specs'] = this.speData this.tableData7['specs'] = this.speData
this.tableData7['shopTypes'] = this.cartesian(proSpeData) this.tableData7['shopTypes'] = this.cartesian(proSpeData)
this.tableData7['isradioguide'] = 2 this.tableData7['isradioguide'] = 2
if(this.isCustomPriceSpec) {
this.tableData7.specs_group.forEach((item,index)=> {
item['ladder'] = []
let obj = {
quantity: 1,money: 0
}
item['ladder'].push(obj)
})
}
this.$emit('calcSpeTable',this.tableData7); this.$emit('calcSpeTable',this.tableData7);
console.log(this.tableData7) // this.switchCustomPriceSpec()
// if (this.tableData7.is_ladder_spec !== undefined) {
// this.tableData7.is_ladder_spec = this.isCustomPriceSpec
// }
console.log(399,this.tableData7)
} }
}, },
...@@ -551,4 +572,8 @@ export default { ...@@ -551,4 +572,8 @@ export default {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.custom-price-check {
margin: 0 20px 0 0;
}
</style> </style>
...@@ -40,15 +40,14 @@ ...@@ -40,15 +40,14 @@
<el-radio :label="1">单规格</el-radio> <el-radio :label="1">单规格</el-radio>
<el-radio :label="2">多规格</el-radio> <el-radio :label="2">多规格</el-radio>
</el-radio-group> </el-radio-group>
<el-link class="edit-type-span el-icon-search" type="primary" :underline="false" @click="viewPriceExp">
<el-link class="edit-type-span el-icon-search" type="primary" :underline="false" @click="viewPriceExp">查看各类价格说明 查看各类价格说明
</el-link> </el-link>
<span class="tip-span">所有商品价格均为含税价,必须开具发票</span> <span class="tip-span">所有商品价格均为含税价,必须开具发票</span>
</p> </p>
<GoodsSpecifications v-show="radioguide==2" ref="goodsspecifications" :specificationsdata="specificationsdata" @calcSpeTable="calcSpeTable"/> <GoodsSpecifications v-show="radioguide==2" ref="goodsspecifications" :specificationsdata="specificationsdata" @calcSpeTable="calcSpeTable"/>
<!-- <keep-alive>--> <!-- <keep-alive>-->
<GoodsParameter :key="keyvalue" ref="goodsparameter" :parameterdata="parameterdata" @ /> <GoodsParameter :key="keyvalue" ref="goodsparameter" :parameterdata="parameterdata"/>
<!-- </keep-alive>--> <!-- </keep-alive>-->
</div> </div>
</div> </div>
...@@ -88,27 +87,25 @@ ...@@ -88,27 +87,25 @@
> >
<el-form ref="workOrderForm" size="small" label-width="150px"> <el-form ref="workOrderForm" size="small" label-width="150px">
<el-form-item label="协议价:"> <el-form-item label="市场划线价:">
<span>指您供货给下游的价格</span> <span>市场原价</span>
</el-form-item>
<el-form-item label="结算价:">
<span>与云仓平台结算的价格,根据协议价自动计算</span>
</el-form-item> </el-form-item>
<el-form-item label="指导售价:"> <el-form-item label="销售指导价:">
<span>指导下游商户制定销售的价格</span> <span>供货场景下,定义为指导售价;销售场景下,定义为您的销售价</span>
</el-form-item> </el-form-item>
<el-form-item label="市场价:"> <el-form-item label="供货结算价:">
<span>市场售价,参考京东、天猫等平台的售</span> <span>本商品铺货到第三方平台的供货结算</span>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item label="成本核算价:">
<span class="pre-price-tip">商品价格均为含税价,必须开具发票。请准确填写并更新商品实际库存,超卖导致的虚假及延迟发货会引起用户投诉与平台判罚。</span> <span>指本商品采购进货的成本价,仅自己可见</span>
</el-form-item> </el-form-item>
<!-- <el-form-item>-->
<!-- <span class="pre-price-tip">商品价格均为含税价,必须开具发票。请准确填写并更新商品实际库存,超卖导致的虚假及延迟发货会引起用户投诉与平台判罚。</span>-->
<!-- </el-form-item>-->
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="isViewPriceExp = false" size="mini">取 消</el-button> <el-button @click="isViewPriceExp = false" size="mini">取 消</el-button>
...@@ -127,12 +124,6 @@ ...@@ -127,12 +124,6 @@
export default { export default {
name: 'Index', name: 'Index',
// props: {
// option: {
// type: Number,
// required: true
// }
// },
components: { components: {
Goodsinfomation, Goodsinfomation,
GoodsSpecifications, GoodsSpecifications,
...@@ -165,8 +156,7 @@ ...@@ -165,8 +156,7 @@
{ id: 2, name: '商品规格' }, { id: 2, name: '商品规格' },
{ id: 3, name: '商品详情' }, { id: 3, name: '商品详情' },
{ id: 4, name: '商品参数' }, { id: 4, name: '商品参数' },
{ id: 5, name: '售后及服务' }, { id: 5, name: '售后及服务' }
{ id: 6, name: '其他设置' }
], ],
/* 商品信息 */ /* 商品信息 */
goodsinfodata: { goodsinfodata: {
...@@ -178,13 +168,14 @@ ...@@ -178,13 +168,14 @@
specificationsdata: [], specificationsdata: [],
/* 商品售价 */ /* 商品售价 */
parameterdata: { parameterdata: {
isradioguide:this.radioguide, isradioguide:1,
singleSpecTable: [] is_ladder: false, // 单规格,是否开启,阶梯定价
is_ladder_spec: false, // 多规格,是否开启,阶梯定价
singleSpecTable: [],
ladder: [
{quantity: 1,money: 0} // 默认一个,处理方便一些
]
}, },
/* 商品详情 */
// imgdata: {
// description: ''
// },
description: '', description: '',
/* 售后及服务 */ /* 售后及服务 */
goodsaftersale: { goodsaftersale: {
...@@ -197,25 +188,18 @@ ...@@ -197,25 +188,18 @@
stags: [], stags: [],
freight_id: 310, freight_id: 310,
delay_compensate: 24, delay_compensate: 24,
aftersale_time: 7, aftersale_time: 7
goods_des:'',//关键词
producing_area:'',//产地
deliver_area:'',//发货地
unit:'',//单位
web_url:'',//外部市场链接
out_goods_id:''//商品编码
}, },
goodsAllData: { goodsAllData: {
submit: 0, submit: 0,
}, // 商品所有数据 }, // 商品所有数据
TIMER: null, TIMER: null,
hehe: 0,
option: 0 option: 0
} // return end } // return end
}, },
created() { created() {
// option 商品的id // option 商品的id
//debugger //debugger
this.option = Number(this.$route.query.goods_id) this.option = Number(this.$route.query.goods_id)
if( this.option && this.option !== 0 ) { if( this.option && this.option !== 0 ) {
...@@ -228,18 +212,26 @@ ...@@ -228,18 +212,26 @@
goods_id: res.data.goods_id, goods_id: res.data.goods_id,
categoryStr: '', // 商品分类 地址拼接 categoryStr: '', // 商品分类 地址拼接
categoryList: [], // 商品分类 id集合的数组 categoryList: [], // 商品分类 id集合的数组
// goods_des: res.data.goods_des, // 关键词 goods_des: res.data.goods_des, // 商品标签
goods_name: res.data.goods_name, // 商品标题 goods_name: res.data.goods_name, // 商品标题
category_id: res.data.category_id, category_id: res.data.category_id,
// producing_area: res.data.producing_area, // 产地 metering_unit: res.data.metering_unit,// 计量单位
// deliver_area: res.data.deliver_area, // 发货地 packaging_unit: res.data.packaging_unit,// 包装单位
// unit: res.data.unit, // 单位 conversion_unit: res.data.conversion_unit, // 换算关系
producing_area_id: "", // 产地的idlist
producing_area: res.data.producing_area, // 产地中文名称
deliver_area_id: "", // 发货地的idlist
deliver_area: res.data.deliver_area, // 发货地中文名称
tax_rate: res.data.tax_rate,// 税率
goods_brand: res.data.goods_brand, // 品牌 goods_brand: res.data.goods_brand, // 品牌
brand_id: res.data.brand_id, // 品牌 brand_id: res.data.brand_id, // 品牌
// web_url: res.data.web_url, // 外部链接 web_url: res.data.web_url, // 市场参考价链接
// out_goods_id: (res.data.out_goods_id == 0) ? '' : res.data.out_goods_id , // 商品编码 group: res.data.group, // 商品分组
supplier: res.data.supplier, // 供应商
storehouse: res.data.storehouse, // 仓库
imgs: res.data.imgs, // 商品图片 imgs: res.data.imgs, // 商品图片
video:res.data.video video:res.data.video,
ssfl: (res.data.category_three_id && res.data.category_three_name) ? res.data.category_three_name : ""
} }
this.goodsinfodata.categoryStr = res.data.category_first_name + '/' + res.data.category_first_name + '/' + res.data.category_three_name; this.goodsinfodata.categoryStr = res.data.category_first_name + '/' + res.data.category_first_name + '/' + res.data.category_three_name;
...@@ -249,26 +241,51 @@ ...@@ -249,26 +241,51 @@
arr[2] = res.data.category_three_id; arr[2] = res.data.category_three_id;
this.goodsinfodata.categoryList = arr; this.goodsinfodata.categoryList = arr;
// 产地
let producing_area_list = res.data.producing_area_list
if (Array.isArray(producing_area_list) && producing_area_list.length > 0) {
this.goodsinfodata.producing_area_id = producing_area_list.map((item)=> {
return item.id
});
}
// 发货地
let deliver_area_list = res.data.deliver_area_list
if (Array.isArray(deliver_area_list) && deliver_area_list.length > 0) {
this.goodsinfodata.deliver_area_id = deliver_area_list.map((item)=> {
return item.id
});
}
// 是否启用阶梯定价
// 商品规格, 售价由规格决定 // 商品规格, 售价由规格决定
if(res.data.specs && res.data.specs.length > 0) { if(res.data.specs && res.data.specs.length > 0) {
this.specificationsdata = res.data.specs; this.specificationsdata = res.data.specs;
this.radioguide = 2 this.radioguide = 2
this.parameterdata.isradioguide = 2 this.parameterdata.isradioguide = 2
this.parameterdata.is_ladder = false
this.parameterdata.is_ladder_spec = res.data.is_ladder == 1 ? true : false;
// this.$bus.$emit("FUCK",this.parameterdata.is_ladder_spec)
}else{ }else{
this.parameterdata['specs']=[] this.parameterdata['specs']=[]
this.radioguide = 1 this.radioguide = 1
this.parameterdata.isradioguide = 1 this.parameterdata.isradioguide = 1
this.parameterdata.is_ladder = res.data.is_ladder == 1 ? true : false;
this.parameterdata.is_ladder_spec = false;
} }
// debugger
// 商品售价 // 商品售价
// 多规格
if(res.data.specs_group && res.data.specs_group.length > 0) { if(res.data.specs_group && res.data.specs_group.length > 0) {
//this.parameterdata
let specs_group = res.data.specs_group let specs_group = res.data.specs_group
res.data.specs_group.forEach((item)=> { res.data.specs_group.forEach((item)=> {
item.js_price = item.js_price / 100;
item.sl_price = item.js_price / 100;
item.price = item.price / 100;
item.sc_price = item.sc_price / 100; item.sc_price = item.sc_price / 100;
item.price = item.price / 100;
item.js_price = item.js_price / 100;
item.prime_cost = item.prime_cost / 100;
}) })
let goodsParametersList = this.cartesian(this.processData(res.data.specs)); let goodsParametersList = this.cartesian(this.processData(res.data.specs));
...@@ -276,7 +293,6 @@ ...@@ -276,7 +293,6 @@
for (let i = 0; i < res.data.specs.length; i++) { for (let i = 0; i < res.data.specs.length; i++) {
if(res.data.specs.length>1){ if(res.data.specs.length>1){
specs_group[index][res.data.specs[i].spec_name] = goodsParametersList[index][i]; specs_group[index][res.data.specs[i].spec_name] = goodsParametersList[index][i];
} }
if(res.data.specs.length==1){ if(res.data.specs.length==1){
specs_group[index][res.data.specs[0].spec_name] = goodsParametersList[index]; specs_group[index][res.data.specs[0].spec_name] = goodsParametersList[index];
...@@ -289,23 +305,40 @@ ...@@ -289,23 +305,40 @@
this.parameterdata['shopTypes'] = goodsParametersList this.parameterdata['shopTypes'] = goodsParametersList
}else { }else {
// 单规格
this.parameterdata.pamTableList = []; this.parameterdata.pamTableList = [];
let singleSpecObj = { let singleSpecObj = {
js_price:'', sc_price: '', // 市场划线价
sl_price:'', price: '', // 销售指导价
price:'', js_price: '', // 供货结算价
sc_price:'', prime_cost: '', // 成本核算价
stock:'', stock: '', // 库存
weight:'', stock_warning: '', // 库存预警
weight: '', // 重量 g
volume: '', // 体积
goods_code: '', // 编码
bar_code: '', // 条码
} }
this.parameterdata.singleSpecTable = []; this.parameterdata.singleSpecTable = [];
singleSpecObj.js_price = res.data.js_price / 100;
singleSpecObj.sl_price = res.data.js_price / 100;
singleSpecObj.price = res.data.price / 100;
singleSpecObj.sc_price = res.data.sc_price / 100; singleSpecObj.sc_price = res.data.sc_price / 100;
singleSpecObj.price = res.data.price / 100;
singleSpecObj.js_price = res.data.js_price / 100;
singleSpecObj.prime_cost = res.data.prime_cost / 100;
singleSpecObj.stock = res.data.stock; singleSpecObj.stock = res.data.stock;
singleSpecObj.stock_warning = res.data.stock_warning;
singleSpecObj.weight = res.data.weight; singleSpecObj.weight = res.data.weight;
singleSpecObj.volume = res.data.volume;
singleSpecObj.goods_code = res.data.goods_code;
singleSpecObj.bar_code = res.data.bar_code;
this.parameterdata.singleSpecTable.push(singleSpecObj); this.parameterdata.singleSpecTable.push(singleSpecObj);
// 价格阶梯
if (res.data.ladder.length > 0) {
this.parameterdata.ladder = res.data.ladder.map((item)=> {
item.money = item.money/100
return item
});
}
} }
// 商品详情 // 商品详情
...@@ -313,11 +346,6 @@ ...@@ -313,11 +346,6 @@
// 商品参数 售后服务 其他设置 // 商品参数 售后服务 其他设置
this.goodsaftersale.params = res.data.params?res.data.params:[{'title':'','value':''}]//参数 this.goodsaftersale.params = res.data.params?res.data.params:[{'title':'','value':''}]//参数
this.goodsaftersale.goods_des = res.data.goods_des//关键词
this.goodsaftersale.producing_area = res.data.producing_area // 产地
this.goodsaftersale.deliver_area = res.data.deliver_area // 发货地
this.goodsaftersale.unit = res.data.unit // 单位
this.goodsaftersale.web_url = res.data.web_url // 外部链接
this.goodsaftersale.out_goods_id = (res.data.out_goods_id == 0) ? '' : res.data.out_goods_id //商品编码 this.goodsaftersale.out_goods_id = (res.data.out_goods_id == 0) ? '' : res.data.out_goods_id //商品编码
this.goodsaftersale.freight_id = res.data.freight_id; this.goodsaftersale.freight_id = res.data.freight_id;
this.goodsaftersale.delay_compensate = res.data.delay_compensate; this.goodsaftersale.delay_compensate = res.data.delay_compensate;
...@@ -348,7 +376,7 @@ ...@@ -348,7 +376,7 @@
} }
} }
}); });
console.log(this.goodsaftersale) // console.log("售后数据:",this.goodsaftersale)
}else { }else {
this.isShowGoodsDetails = false; this.isShowGoodsDetails = false;
} }
...@@ -357,8 +385,8 @@ ...@@ -357,8 +385,8 @@
}, },
methods: { methods: {
radiochange(val){ radiochange(val){
this.parameterdata.isradioguide = val this.parameterdata.isradioguide = this.radioguide
this.$refs.goodsparameter.parentMsg(val) this.keyvalue++
}, },
// 查看各类价格说明 // 查看各类价格说明
viewPriceExp() { viewPriceExp() {
...@@ -368,8 +396,6 @@ ...@@ -368,8 +396,6 @@
calcSpeTable(data) { calcSpeTable(data) {
this.keyvalue++ this.keyvalue++
this.parameterdata = data; this.parameterdata = data;
// debugger
}, },
// 只有点击完最后一级,才会有值 // 只有点击完最后一级,才会有值
SSQChange() { SSQChange() {
...@@ -462,70 +488,147 @@ ...@@ -462,70 +488,147 @@
// 保存/提交 // 保存/提交
save() { save() {
// 此处变量 有顺序 校验时,电梯至某处 // 此处变量 有顺序 校验时,电梯至某处
// 商品信息 是否填写完整 // 商品信息 是否填写完整
let isGoodsInfoMsg = this.$refs['goodsInfo'].validateGoodsInfoForm(); let isGoodsInfoMsg = this.$refs['goodsInfo'].validateGoodsInfoForm();
debugger
// 商品规格 无需校验 // 商品规格 无需校验
let spggRef = this.$refs.goodsspecifications; let spggRef = this.$refs.goodsspecifications;
let spggData = spggRef.speData; let spggData = spggRef.speData;
spggRef.upDateDom(); spggRef.upDateDom();
// return;
// 商品售价,通过获取的数据,分别进行判断 // 商品售价,通过获取的数据,分别进行判断,
// 1-单规格和多规格【规格组合】数据进行处理;
// 2-单规格和多规格【阶梯定价】数据进行处理
let isGoodsPrice = true; let isGoodsPrice = true;
let goodsPriceMsg = ''; let goodsPriceMsg = '';
let spsjData1 = JSON.parse(JSON.stringify(this.$refs.goodsparameter.singleSpecTable)); let spsjData1 = JSON.parse(JSON.stringify(this.$refs.goodsparameter.singleSpecTable));
let spsjData2 = JSON.parse(JSON.stringify(this.$refs.goodsparameter.parameterdata)); let spsjData2 = JSON.parse(JSON.stringify(this.$refs.goodsparameter.parameterdata));
// 如果有,则说明有规格组合数据 let goodsparameterData = this.$refs.goodsparameter; // 后续可以将spsjData1和spsjData2进行优化掉
// 阶梯定价-控制参数
this.goodsAllData['is_ladder'] = spsjData2.is_ladder ? 1 : 0;
if (this.radioguide === 1) {
this.goodsAllData.is_ladder = spsjData2.is_ladder ? 1 : 0;
}
if (this.radioguide === 2) {
this.goodsAllData.is_ladder = spsjData2.is_ladder_spec ? 1 : 0;
}
this.goodsAllData['ladder'] = []
// 阶梯定价数据
let ladder = []
// 多规格【规格组合】数据 -- start --//
if ( this.radioguide==2&&spsjData2.specs_group && spsjData2.specs_group.length > 0 ) { if ( this.radioguide==2&&spsjData2.specs_group && spsjData2.specs_group.length > 0 ) {
// debugger
for(let i = 0; i < spsjData2.specs_group.length; i++) { for(let i = 0; i < spsjData2.specs_group.length; i++) {
let itemObj = spsjData2.specs_group[i][0]; let itemObj = spsjData2.specs_group[i][0];
for (let itemKey in itemObj) { for (let itemKey in itemObj) {
// 有多余字段,可能为空,需要对有效字段单独判断 // 有多余字段,可能为空,需要对有效字段单独判断
// Number后,有三中情况:0,正数,负数,NaN // Number后,有三中情况:0,正数,负数,NaN
if( !Number(itemObj['js_price']) || Number(itemObj['js_price']) <0 ) { if( !Number(itemObj['sc_price']) || Number(itemObj['sc_price']) <0 ) {
goodsPriceMsg = '[ 商品售价 ]中,协议价不能为空,并且只能填大于0的数值' goodsPriceMsg = '[ 商品售价 ]中,市场划线价不能为空,并且只能填大于0的数字'
isGoodsPrice = false; isGoodsPrice = false;
break break
} else if ( !Number(itemObj['price']) || Number(itemObj['price']) <0 ) { } else if ( !Number(itemObj['price']) || Number(itemObj['price']) <0 ) {
goodsPriceMsg = '[ 商品售价 ]中,指导价不能为空,并且只能填大于0的数值' goodsPriceMsg = '[ 商品售价 ]中,销售指导价不能为空,并且只能填大于0的数字'
isGoodsPrice = false; isGoodsPrice = false;
break break
} else if( !Number(itemObj['sc_price']) || Number(itemObj['sc_price']) <0 ) { } else if( !Number(itemObj['js_price']) || Number(itemObj['js_price']) <0 ) {
goodsPriceMsg = '[ 商品售价 ]中,市场价不能为空,并且只能填大于0的数值' goodsPriceMsg = '[ 商品售价 ]中,供货结算价不能为空,并且只能填大于0的数字'
isGoodsPrice = false; isGoodsPrice = false;
break
} else if ( !Number(itemObj['stock']) || Number(itemObj['stock']) <0 ) { } else if ( !Number(itemObj['stock']) || Number(itemObj['stock']) <0 ) {
goodsPriceMsg = '[ 商品售价 ]中,库存量不能为空,并且只能填大于0的整数' goodsPriceMsg = '[ 商品售价 ]中,库存量不能为空,并且只能填大于0的整数'
isGoodsPrice = false; isGoodsPrice = false;
break
} else if ( !Number(itemObj['weight']) || Number(itemObj['weight']) <0 ) {
goodsPriceMsg = '[ 商品售价 ]中,商品重量不能为空,并且只能填大于0的数字'
isGoodsPrice = false;
break
} else { } else {
goodsPriceMsg = ''; goodsPriceMsg = '';
isGoodsPrice = true; isGoodsPrice = true;
} }
// 多规格【阶梯定价】数据 -- start --//
if (this.goodsAllData.is_ladder) {
for(let la = 0; la < spsjData2.specs_group[i][ladder].length; la++) {
let ladderItem = spsjData2.specs_group[i][ladder][la]
for(let laKey in ladderItem) {
if( !Number(ladderItem['quantity']) || Number(ladderItem['quantity']) <0 ) {
goodsPriceMsg = '[ 阶梯定价 ]中,商品数量不能为空,并且只能填大于0的整数'
isGoodsPrice = false;
break;
}else if( !Number(ladderItem['money']) || Number(ladderItem['money']) <0 ) {
goodsPriceMsg = '[ 阶梯定价 ]中,商品数量不能为空,并且只能填大于0的数字'
isGoodsPrice = false;
break;
}else {
goodsPriceMsg = ''
isGoodsPrice = true;
}
}
}
}else {
spsjData2.specs_group[i][ladder] = []
}
// 多规格【阶梯定价】数据 -- end --//
} }
if (!isGoodsPrice) { if (!isGoodsPrice) {
break break
} }
} }
// 多规格【规格组合】数据 -- end --//
}else { }else {
// 无规格组合数据 // 单规格组合数据【规格组合】数据 -- start --//
let slingleSpeObj = spsjData1[0]; let slingleSpeObj = spsjData1[0];
if ( !Number(slingleSpeObj['js_price']) || Number(slingleSpeObj['js_price']) <0 ) { if ( !Number(slingleSpeObj['sc_price']) || Number(slingleSpeObj['sc_price']) <0 ) {
goodsPriceMsg = '[ 商品售价 ]中,协议价不能为空,并且只能填大于0的数值' goodsPriceMsg = '[ 商品售价 ]中,市场划线价不能为空,并且只能填大于0的数字'
isGoodsPrice = false; isGoodsPrice = false;
} else if ( !Number(slingleSpeObj['price']) || Number(slingleSpeObj['price']) <0 ) { } else if ( !Number(slingleSpeObj['price']) || Number(slingleSpeObj['price']) <0 ) {
goodsPriceMsg = '[ 商品售价 ]中,指导价不能为空,并且只能填大于0的数值' goodsPriceMsg = '[ 商品售价 ]中,销售指导价不能为空,并且只能填大于0的数字'
isGoodsPrice = false; isGoodsPrice = false;
} else if ( !Number(slingleSpeObj['sc_price']) || Number(slingleSpeObj['sc_price']) <0 ) { } else if ( !Number(slingleSpeObj['js_price']) || Number(slingleSpeObj['js_price']) <0 ) {
goodsPriceMsg = '[ 商品售价 ]中,市场价不能为空,并且只能填大于0的数值' goodsPriceMsg = '[ 商品售价 ]中,供货结算价不能为空,并且只能填大于0的数字'
isGoodsPrice = false; isGoodsPrice = false;
} else if ( !Number(slingleSpeObj['stock']) || Number(slingleSpeObj['stock']) <0 ) { } else if ( !Number(slingleSpeObj['stock']) || Number(slingleSpeObj['stock']) <0 ) {
goodsPriceMsg = '[ 商品售价 ]中,库存量不能为空,并且只能填大于0的整数' goodsPriceMsg = '[ 商品售价 ]中,库存量不能为空,并且只能填大于0的整数'
isGoodsPrice = false; isGoodsPrice = false;
} else if ( !Number(slingleSpeObj['weight']) || Number(slingleSpeObj['weight']) <0 ) {
goodsPriceMsg = '[ 商品售价 ]中,商品重量不能为空,并且只能填大于0的数字'
isGoodsPrice = false;
} else { } else {
goodsPriceMsg = '' goodsPriceMsg = ''
isGoodsPrice = true; isGoodsPrice = true;
} }
// 单规格【规格组合】数据 -- end --//
// 单规格【阶梯定价】数据 -- start --//
ladder = goodsparameterData.parameterdata.ladder;
if (this.goodsAllData.is_ladder) {
if (ladder.length > 0) {
for (let la = 0; la < ladder.length; la++) {
let ladderItem = ladder[la]
for(let laKey in ladderItem) {
if( !Number(ladderItem['quantity']) || Number(ladderItem['quantity']) <0 ) {
goodsPriceMsg = '[ 阶梯定价 ]中,商品数量不能为空,并且只能填大于0的整数'
isGoodsPrice = false;
break;
}else if( !Number(ladderItem['money']) || Number(ladderItem['money']) <0 ) {
goodsPriceMsg = '[ 阶梯定价 ]中,商品数量不能为空,并且只能填大于0的数字'
isGoodsPrice = false;
break;
}else {
goodsPriceMsg = ''
isGoodsPrice = true;
}
}
}
}
}else {
ladder = []
}
// 单规格【阶梯定价】数据 -- end --//
} }
// 商品详情 是否填写完整 // 商品详情 是否填写完整
...@@ -535,6 +638,13 @@ ...@@ -535,6 +638,13 @@
// 售后服务 是否填写完整 // 售后服务 是否填写完整
let isGoodsAfterSaleMsg = this.$refs['goodsaftersale'].validateGoodsAfterSaleForm(); let isGoodsAfterSaleMsg = this.$refs['goodsaftersale'].validateGoodsAfterSaleForm();
// ----------- 自测用
// 获取 商品信息数据
// let fuck = this.$refs.goodsInfo.goodsInfoForm;
// console.log("商品信息:",fuck)
// return
// ----------- 自测用
if(!isGoodsInfoMsg) { if(!isGoodsInfoMsg) {
this.$message({type:'error',message:'商品信息未填写完整'}); this.$message({type:'error',message:'商品信息未填写完整'});
this.setFloorNavMountClick(0); this.setFloorNavMountClick(0);
...@@ -555,14 +665,8 @@ ...@@ -555,14 +665,8 @@
} }
if(!isGoodsAfterSaleMsg) { if(!isGoodsAfterSaleMsg) {
if(sessionStorage.getItem('clickbtm')==1){
this.$message({type:'error',message:'其他设置未填写完整'});
this.setFloorNavMountClick(5);
}else if(sessionStorage.getItem('clickbtm')==2){
this.$message({type:'error',message:'售后及服务未填写完整'}); this.$message({type:'error',message:'售后及服务未填写完整'});
this.setFloorNavMountClick(4); this.setFloorNavMountClick(4);
}
return return
} }
...@@ -572,8 +676,6 @@ ...@@ -572,8 +676,6 @@
// 品牌处理 goods_brand // 品牌处理 goods_brand
let brandOptions = this.$refs.goodsInfo.brandOptions; let brandOptions = this.$refs.goodsInfo.brandOptions;
// debugger
// goods_brand
if (Array.isArray(brandOptions) && brandOptions.length > 0) { if (Array.isArray(brandOptions) && brandOptions.length > 0) {
for(let bi = 0; bi < brandOptions.length; bi++) { for(let bi = 0; bi < brandOptions.length; bi++) {
if( Number(spxxData.brand_id) === Number(brandOptions[bi].id) ) { if( Number(spxxData.brand_id) === Number(brandOptions[bi].id) ) {
...@@ -583,18 +685,24 @@ ...@@ -583,18 +685,24 @@
} }
} }
// 产地
spxxData.producing_area_id = spxxData.producing_area_id[spxxData.producing_area_id.length - 1]
// 发货地
spxxData.deliver_area_id = spxxData.deliver_area_id[spxxData.deliver_area_id.length - 1]
// 发货地数据处理,预留
// for(let ai = 0; ai < areaOptions.length; ai++) {
// if ( Number(ssffData.deliver_area) === Number(areaOptions[ai].id) ) {
// ssffData.deliver_area = areaOptions[ai].name;
// break;
// }
// }
// console.log(500,spxxData);
if( spxxData.imgs.length > 7 ) { if( spxxData.imgs.length > 7 ) {
this.$message({ type: 'warning',message: '商品信息中,商品图片最大数量为7张,请检查' }); this.$message({ type: 'warning',message: '商品信息中,商品图片最大数量为7张,请检查' });
this.setFloorNavMountClick(0); this.setFloorNavMountClick(0);
return; return;
} }
// 商品规格
// let spggData = this.$refs.goodsspecifications.speData;
//
// 商品售价,上面已经获取, // 商品售价,上面已经获取,
let spsjData = {}; let spsjData = {};
if(this.radioguide==2 && spsjData2.specs_group && spsjData2.specs_group.length > 0 ) { if(this.radioguide==2 && spsjData2.specs_group && spsjData2.specs_group.length > 0 ) {
...@@ -604,6 +712,16 @@ ...@@ -604,6 +712,16 @@
spsjData = spsjData1[0]; spsjData = spsjData1[0];
this.goodsAllData['specs_group'] = [] this.goodsAllData['specs_group'] = []
this.goodsAllData['specs'] = [] this.goodsAllData['specs'] = []
// 启用,才赋值,否则是空数组
if (this.goodsAllData.is_ladder) {
this.goodsAllData.ladder = ladder
// 进一步处理金额数据
this.goodsAllData.ladder.map((item)=> {
item.money = item.money * 10000 / 100
return item
});
}
} }
// 商品详情 数据 // 商品详情 数据
...@@ -612,36 +730,20 @@ ...@@ -612,36 +730,20 @@
// 售后服务 数据 // 售后服务 数据
let ssffData = this.$refs.goodsaftersale.goodsAfterSaleForm; let ssffData = this.$refs.goodsaftersale.goodsAfterSaleForm;
// 产地数据处理
let areaOptions = this.$refs.goodsaftersale.areaOptions;
for(let ai = 0; ai < areaOptions.length; ai++) {
if ( Number(ssffData.producing_area) === Number(areaOptions[ai].id) ) {
ssffData.producing_area = areaOptions[ai].name;
break;
}
}
// 发货地数据处理
for(let ai = 0; ai < areaOptions.length; ai++) {
if ( Number(ssffData.deliver_area) === Number(areaOptions[ai].id) ) {
ssffData.deliver_area = areaOptions[ai].name;
break;
}
}
console.log(569,ssffData);
if (ssffData.delay_compensate == 72) { if (ssffData.delay_compensate == 72) {
this.$message({ type: 'warning',message: '发货时长不能超过48小时,请重新编辑' }); this.$message({ type: 'warning',message: '发货时长不能超过48小时,请重新编辑' });
return return
} }
// return
// 所有数据合并 // 所有数据合并
Object.assign( this.goodsAllData, spxxData, spsjData, ssffData); Object.assign( this.goodsAllData, spxxData, spsjData, ssffData);
this.goodsAllData.description = spxqData this.goodsAllData.description = spxqData
// 经营类目,服务标签,需要单独处理数据格式 // 经营类目,服务标签,需要单独处理数据格式
this.goodsAllData.category_id = spxxData.categoryList.slice(-1)[0] ? spxxData.categoryList.slice(-1)[0] : ''; this.goodsAllData.category_id = spxxData.categoryList.slice(-1)[0] ? spxxData.categoryList.slice(-1)[0] : '';
if(this.goodsAllData.stags) { if(this.goodsAllData.stags) {
this.goodsAllData.stags = this.goodsAllData.stags.toString(); this.goodsAllData.stags = this.goodsAllData.stags.toString();
} }
...@@ -649,24 +751,28 @@ ...@@ -649,24 +751,28 @@
// 价格数字需要 乘以100 // 价格数字需要 乘以100
if(this.goodsAllData.specs_group && this.goodsAllData.specs_group.length > 0) { if(this.goodsAllData.specs_group && this.goodsAllData.specs_group.length > 0) {
this.goodsAllData.specs_group.forEach((item)=> { this.goodsAllData.specs_group.forEach((item)=> {
item.js_price = (Number(item.js_price) * 1000)/10;
item.price = (Number(item.price) * 1000)/10;
item.sc_price = (Number(item.sc_price) * 1000)/10; item.sc_price = (Number(item.sc_price) * 1000)/10;
item.sl_price = (Number(item.sl_price) * 1000)/10; item.price = (Number(item.price) * 1000)/10;
item.js_price = (Number(item.js_price) * 1000)/10;
item.prime_cost = (Number(item.prime_cost) * 1000)/10;
item.stock = Number(item.stock); item.stock = Number(item.stock);
item.stock_warning = Number(item.stock_warning);
item.bar_code = Number(item.bar_code);
}) })
delete this.goodsAllData.js_price;
delete this.goodsAllData.price;
delete this.goodsAllData.sc_price; delete this.goodsAllData.sc_price;
delete this.goodsAllData.sl_price; delete this.goodsAllData.price;
delete this.goodsAllData.js_price;
delete this.goodsAllData.prime_cost;
delete this.goodsAllData.stock; delete this.goodsAllData.stock;
delete this.goodsAllData.weight; delete this.goodsAllData.weight;
}else { }else {
this.goodsAllData.js_price = (Number(this.goodsAllData.js_price) * 1000)/10
this.goodsAllData.price = (Number(this.goodsAllData.price) * 1000)/10
this.goodsAllData.sc_price = (Number(this.goodsAllData.sc_price) * 1000)/10 this.goodsAllData.sc_price = (Number(this.goodsAllData.sc_price) * 1000)/10
this.goodsAllData.sl_price = (Number(this.goodsAllData.sl_price) * 1000)/10 this.goodsAllData.price = (Number(this.goodsAllData.price) * 1000)/10
this.goodsAllData.js_price = (Number(this.goodsAllData.js_price) * 1000)/10
this.goodsAllData.prime_cost = (Number(this.goodsAllData.prime_cost) * 1000)/10
this.goodsAllData.stock = Number(this.goodsAllData.stock); this.goodsAllData.stock = Number(this.goodsAllData.stock);
this.goodsAllData.stock_warning = Number(this.goodsAllData.stock_warning);
this.goodsAllData.bar_code = Number(this.goodsAllData.bar_code);
delete this.goodsAllData.specs; delete this.goodsAllData.specs;
delete this.goodsAllData.specs_group; delete this.goodsAllData.specs_group;
} }
...@@ -759,7 +865,6 @@ ...@@ -759,7 +865,6 @@
} }
if(index==3){ if(index==3){
floor_item = this.$refs.goodsaftersale.$refs.paramsvalue.$el floor_item = this.$refs.goodsaftersale.$refs.paramsvalue.$el
console.log(floor_item)
floor_offsetTop =floor_item.offsetTop - 90 floor_offsetTop =floor_item.offsetTop - 90
} }
if(index==4){ if(index==4){
...@@ -767,11 +872,6 @@ ...@@ -767,11 +872,6 @@
floor_offsetTop = floor_item.offsetTop - 90 floor_offsetTop = floor_item.offsetTop - 90
} }
if(index==5){
floor_item = this.$refs.goodsaftersale.$refs.outhervalue.$el
floor_offsetTop = floor_item.offsetTop - 90
}
// 每次点击,对应dom需要滚动的高度 // 每次点击,对应dom需要滚动的高度
let window_scrollTop = _this.$refs.scrollview.scrollTop let window_scrollTop = _this.$refs.scrollview.scrollTop
...@@ -783,31 +883,27 @@ ...@@ -783,31 +883,27 @@
let resList = []; let resList = [];
let list = []; let list = [];
for(let i = 0; i < 6; i++) { for (let i = 0; i < 6; i++) {
if(i==0||i==1||i==2){ if (i == 0 || i == 1 || i == 2) {
let floor_item = document.getElementsByClassName('floor-item') let floor_item = document.getElementsByClassName('floor-item')
list.push(Number(floor_item[i].offsetHeight)); list.push(Number(floor_item[i].offsetHeight));
} }
if(i==3){ if (i == 3) {
list.push(Number(this.$refs.goodsaftersale.$refs.paramsvalue.$el.offsetHeight)); list.push(Number(this.$refs.goodsaftersale.$refs.paramsvalue.$el.offsetHeight));
} }
if(i==4){ if (i == 4) {
list.push(Number(this.$refs.goodsaftersale.$refs.salesvalue.$el.offsetHeight)); list.push(Number(this.$refs.goodsaftersale.$refs.salesvalue.$el.offsetHeight));
} }
if(i==5){
list.push(Number(this.$refs.goodsaftersale.$refs.outhervalue.$el.offsetHeight));
}
} }
resList = list.slice(index) resList = list.slice(index)
for(let j = 0; j < resList.length; j++) { for (let j = 0; j < resList.length; j++) {
hxz += resList[j] hxz += resList[j]
} }
if( hxz > floor_cont.offsetHeight) { if (hxz > floor_cont.offsetHeight) {
timer.FLOOR_OFFSETTOP = floor_offsetTop; timer.FLOOR_OFFSETTOP = floor_offsetTop;
}else { } else {
timer.FLOOR_OFFSETTOP = floor_cont.scrollHeight - floor_cont.offsetHeight timer.FLOOR_OFFSETTOP = floor_cont.scrollHeight - floor_cont.offsetHeight
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论