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

1

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