提交 12d44261 authored 作者: 王天霸's avatar 王天霸

1

上级 d46ba41b
...@@ -64,25 +64,27 @@ ...@@ -64,25 +64,27 @@
<!-- </el-table-column>--> <!-- </el-table-column>-->
</el-table> </el-table>
</div> </div>
<div v-if="orgGoodsPam.pamTableList.length > 0" class="single-spe-con"> <div v-if="orgGoodsPam.specs.length > 0" class="single-spe-con">
{{orgGoodsPam.specs_group}}
<el-table <el-table
border border
size="small" size="small"
:data="orgGoodsPam.pamTableList" :data="orgGoodsPam.specs_group"
:span-method="objectSpanMethod1" :span-method="objectSpanMethod1"
style="width: 80%" style="width: 80%"
:key="keyvalue"
> >
<el-table-column <el-table-column
header-align="center" header-align="center"
align="center" align="center"
v-for="(item, index) in spacArr" v-for="(item, index) in orgGoodsPam.specs"
:key="index" :key="index"
:prop="item.spec_name"
:label="item.spec_name" :label="item.spec_name"
> >
<template slot-scope="scope"> <!-- <template slot-scope="scope">
1
</template> </template> -->
</el-table-column> </el-table-column>
<el-table-column align="center" prop="js_price" label="协议价"> <el-table-column align="center" prop="js_price" label="协议价">
<template slot="header"> <template slot="header">
...@@ -225,6 +227,7 @@ export default { ...@@ -225,6 +227,7 @@ export default {
}, },
data() { data() {
return { return {
keyvalue:1,
spacArr:[], spacArr:[],
orgGoodsPam: {}, orgGoodsPam: {},
preTableTitle: [], preTableTitle: [],
...@@ -247,8 +250,9 @@ export default { ...@@ -247,8 +250,9 @@ export default {
}, },
watch:{ watch:{
'parameterdata': function(val) { 'parameterdata': function(val) {
debugger console.log('更新')
this.orgGoodsPam = val; this.orgGoodsPam = val;
this.keyvalue++
if(val.pamNameList){ if(val.pamNameList){
this.spacArr = val.pamNameList this.spacArr = val.pamNameList
console.log(val) console.log(val)
......
...@@ -72,20 +72,6 @@ ...@@ -72,20 +72,6 @@
<el-button type="primary" @click="saveSpecName" size="mini">确 定</el-button> <el-button type="primary" @click="saveSpecName" size="mini">确 定</el-button>
</span> </span>
</el-dialog> </el-dialog>
<!-- 规格 -->
<div class="goods-parameter">
<p class="tip-p">
<!-- <el-link class="edit-type-span el-icon-search" type="primary" :underline="false" @click="viewPriceExp">查看各类价格说明 -->
</el-link>
<span class="tip-span">所有商品价格均为含税价,必须开具发票</span>
</p>
</div>
</div> </div>
</template> </template>
...@@ -102,6 +88,7 @@ export default { ...@@ -102,6 +88,7 @@ export default {
}, },
data() { data() {
return { return {
tableData7:{},
speData: [], // 商品规格总数据 speData: [], // 商品规格总数据
specsGroup: { specsGroup: {
spec_name: '', // 规格名称 spec_name: '', // 规格名称
...@@ -116,6 +103,7 @@ export default { ...@@ -116,6 +103,7 @@ export default {
speNameList: [], speNameList: [],
addSpecNameDialog: false, addSpecNameDialog: false,
specName_sm: '', specName_sm: '',
tablearr: [],
}; };
}, },
created() { created() {
...@@ -329,6 +317,7 @@ export default { ...@@ -329,6 +317,7 @@ export default {
/** 规格参数 变化时,对数据进行处理后,再进行笛卡尔积算法,最终计算出商品售价的数据 */ /** 规格参数 变化时,对数据进行处理后,再进行笛卡尔积算法,最终计算出商品售价的数据 */
specCalcResult() { specCalcResult() {
// 商品规格原始数据 // 商品规格原始数据
let specs_group = []
let orgSpeData = this.deepClone(this.speData); let orgSpeData = this.deepClone(this.speData);
// 进行数据处理后的数据, // 进行数据处理后的数据,
...@@ -361,24 +350,46 @@ export default { ...@@ -361,24 +350,46 @@ export default {
}; };
this.$emit('calcSpeTable', goodsPam); this.$emit('calcSpeTable', goodsPam);
} else { } else {
//speData this.shopTypes
if(this.speData && this.speData.length > 0) {
for (let i = 0; i < this.speData.length; i++) {
this.tablearr.push(this.speData[i].spec_name);
}
}
// goodsParametersList newList
let goodsParametersList = this.cartesian(proSpeData); let goodsParametersList = this.cartesian(proSpeData);
console.log(goodsParametersList)
let goodsPam = {
pamNameList: [], for (let index = 0; index < goodsParametersList.length; index++) {
pamDataList: [], var listobj = {};
pamTableList: [], for (let i = 0; i < this.speData.length; i++) {
specs:[] if(this.speData.length>1){
}; listobj[this.speData[i].spec_name] = goodsParametersList[index][i];
goodsPam.pamNameList = this.speNameList;
goodsPam.pamDataList = goodsParametersList; }
goodsPam.specs = if(this.speData.length==1){
goodsParametersList.forEach((item)=> { listobj[this.speData[i].spec_name] = goodsParametersList[index];
let prePamTable = [ }
{ js_price:'', sl_price:'', price:'', sc_price:'', stock:'', weight:'', thumb:'',spec_values: [] } listobj["js_price"] = "";
]; listobj["sl_price"] = "";
goodsPam.pamTableList.push(prePamTable) listobj["price"] = "";
}); listobj["sc_price"] = "";
this.$emit('calcSpeTable',goodsPam); listobj["stock"] = "";
listobj["weight"] = "";
listobj["thumb"] = "";
listobj["spec_values"] = goodsParametersList[index]
}
specs_group.push(listobj);
}
// goodsParametersList.forEach((item,index)=> {
// goodsPam.pamTableList.push(prePamTable)
// });
this.tableData7['specs_group'] = specs_group
this.tableData7['specs'] = this.speData
this.$emit('calcSpeTable',this.tableData7);
console.log(this.tableData7)
} }
}, },
...@@ -532,14 +543,4 @@ export default { ...@@ -532,14 +543,4 @@ export default {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
/* guige */
.goods-parameter {
padding: 20px;
}
/* 一般提示性文字 */
.tip-span {
color: #909399;
font-size: 12px;
}
</style> </style>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<p class="card-header-title floor-item-box-title"><span class="blue-block-goods blue-block-goods-title"></span>商品规格</p> <p class="card-header-title floor-item-box-title"><span class="blue-block-goods blue-block-goods-title"></span>商品规格</p>
<GoodsSpecifications ref="goodsspecifications" :specificationsdata="specificationsdata" @calcSpeTable="calcSpeTable"/> <GoodsSpecifications ref="goodsspecifications" :specificationsdata="specificationsdata" @calcSpeTable="calcSpeTable"/>
<!-- <keep-alive>--> <!-- <keep-alive>-->
<!-- <GoodsParameter ref="goodsparameter" :parameterdata="parameterdata" /> --> <GoodsParameter ref="goodsparameter" :parameterdata="parameterdata" />
<!-- </keep-alive>--> <!-- </keep-alive>-->
</div> </div>
</div> </div>
...@@ -129,7 +129,6 @@ ...@@ -129,7 +129,6 @@
specificationsdata: [], specificationsdata: [],
/* 商品售价 */ /* 商品售价 */
parameterdata: { parameterdata: {
specs:[],
pamDataList: [], pamDataList: [],
pamNameList: [], pamNameList: [],
pamTableList: [], pamTableList: [],
...@@ -199,7 +198,6 @@ ...@@ -199,7 +198,6 @@
if(res.data.specs_group && res.data.specs_group.length > 0) { if(res.data.specs_group && res.data.specs_group.length > 0) {
//this.parameterdata //this.parameterdata
let prePriceArr = []; let prePriceArr = [];
this.parameterdata.specs = res.data.specs
this.parameterdata.pamTableList = []; this.parameterdata.pamTableList = [];
this.parameterdata.pamDataList = []; this.parameterdata.pamDataList = [];
res.data.specs_group.forEach((item)=> { res.data.specs_group.forEach((item)=> {
...@@ -276,33 +274,33 @@ ...@@ -276,33 +274,33 @@
// 规格子组件,传给父组件的数据 // 规格子组件,传给父组件的数据
calcSpeTable(data) { calcSpeTable(data) {
//console.log('原始值',data); // //console.log('原始值',data);
// 第一步,获取原来的值 // // 第一步,获取原来的值
// let spsjData2 = this.$refs.goodsparameter.orgGoodsPam; let spsjData2 = this.$refs.goodsparameter.orgGoodsPam;
let spsjData2Clone = this.deepClone(spsjData2); let spsjData2Clone = this.deepClone(spsjData2);
// 第二步,重新渲染dom // // 第二步,重新渲染dom
if(data.pamTableList.length > 0) { // if(data.pamTableList.length > 0) {
data.pamTableList.forEach((item, index) => { // data.pamTableList.forEach((item, index) => {
if( Array.isArray(data.pamDataList[index]) ) { // if( Array.isArray(data.pamDataList[index]) ) {
item[0].spec_values = data.pamDataList[index]; // item[0].spec_values = data.pamDataList[index];
}else { // }else {
item[0].spec_values.push(data.pamDataList[index]); // item[0].spec_values.push(data.pamDataList[index]);
} // }
}) // })
} // }
// 第三步,重新赋值 // // 第三步,重新赋值
if(data.pamTableList.length > 0 && spsjData2Clone.pamTableList.length > 0) { // if(data.pamTableList.length > 0 && spsjData2Clone.pamTableList.length > 0) {
for(let i = 0; i < data.pamTableList.length; i++) { // for(let i = 0; i < data.pamTableList.length; i++) {
for(let j = 0; j < spsjData2Clone.pamTableList.length; j++) { // for(let j = 0; j < spsjData2Clone.pamTableList.length; j++) {
// 这两个值,如果不转 toString(),就不相等,?? // // 这两个值,如果不转 toString(),就不相等,??
if( (data.pamTableList[i][0].spec_values).toString() === (spsjData2Clone.pamTableList[j][0].spec_values).toString() ) { // if( (data.pamTableList[i][0].spec_values).toString() === (spsjData2Clone.pamTableList[j][0].spec_values).toString() ) {
data.pamTableList[i] = spsjData2Clone.pamTableList[j]; // data.pamTableList[i] = spsjData2Clone.pamTableList[j];
} // }
} // }
} // }
} // }
this.parameterdata = data; this.parameterdata = data;
...@@ -412,7 +410,7 @@ ...@@ -412,7 +410,7 @@
let isGoodsPrice = true; let isGoodsPrice = true;
let goodsPriceMsg = ''; let goodsPriceMsg = '';
let spsjData1 = this.$refs.goodsparameter.singleSpecTable; let spsjData1 = this.$refs.goodsparameter.singleSpecTable;
// let spsjData2 = this.$refs.goodsparameter.orgGoodsPam; let spsjData2 = this.$refs.goodsparameter.orgGoodsPam;
// 如果有,则说明有规格组合数据 // 如果有,则说明有规格组合数据
if ( spsjData2.pamTableList && spsjData2.pamTableList.length > 0 ) { if ( spsjData2.pamTableList && spsjData2.pamTableList.length > 0 ) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论