|
@@ -30,8 +30,13 @@
|
|
</tr>
|
|
</tr>
|
|
<tr v-for="(item,index) in shippingTemplateRuleList" :key="index" style="">
|
|
<tr v-for="(item,index) in shippingTemplateRuleList" :key="index" style="">
|
|
<td class="spec-table-td" style="text-align: left">
|
|
<td class="spec-table-td" style="text-align: left">
|
|
- <div v-for="(area) in item.shippingTemplateRuleAreaList" class="spec-table-td-link">{{area.city}}({{area.province}}),</div>
|
|
|
|
- <a @click="setListData(item.shippingTemplateRuleAreaList,item.id)" style="color:#00aaff;text-underline: #00aaff;float: right">编辑</a>
|
|
|
|
|
|
+ <div style="width: 100%;" v-for="(areas,index) in item.filterList" :key="index" class="spec-table-td-link" >
|
|
|
|
+ <div>
|
|
|
|
+ <div style="float: left">{{ areas.city }}</div>
|
|
|
|
+ <div v-if="areas.provinceList.length > 0">({{ areas.provinceList.join(',') }})</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <a @click="setListData(item.shippingTemplateRuleAreaList,index+1)" style="color:#00aaff;text-underline: #00aaff;float: right">编辑</a>
|
|
</td>
|
|
</td>
|
|
<td>
|
|
<td>
|
|
<el-form-item :prop="`shippingTemplateRuleList.${index}.defaultNumber`"
|
|
<el-form-item :prop="`shippingTemplateRuleList.${index}.defaultNumber`"
|
|
@@ -91,8 +96,13 @@
|
|
</tr>
|
|
</tr>
|
|
<tr v-for="(item,index) in shippingTemplateRuleList2" :key="index">
|
|
<tr v-for="(item,index) in shippingTemplateRuleList2" :key="index">
|
|
<td class="spec-table-td" style="text-align: left">
|
|
<td class="spec-table-td" style="text-align: left">
|
|
- <div class="spec-table-td-link" v-for="(area) in item.shippingTemplateRuleAreaList">{{area.city}}({{area.province}}), </div>
|
|
|
|
- <a @click="setListData(item.shippingTemplateRuleAreaList,item.id)" style="color:#00aaff;text-underline: #00aaff;float: right">编辑</a>
|
|
|
|
|
|
+ <div style="width: 100%;" v-for="(areas,index) in item.filterList" :key="index" class="spec-table-td-link" >
|
|
|
|
+ <div>
|
|
|
|
+ <div style="float: left">{{ areas.city }}</div>
|
|
|
|
+ <div v-if="areas.provinceList.length > 0">({{ areas.provinceList.join(',') }})</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <a @click="setListData(item.shippingTemplateRuleAreaList,shippingTemplateRuleList.length+index+1)" style="color:#00aaff;text-underline: #00aaff;float: right">编辑</a>
|
|
</td>
|
|
</td>
|
|
<td>
|
|
<td>
|
|
<el-form-item :prop="`shippingTemplateRuleList2.${index}.remark`"
|
|
<el-form-item :prop="`shippingTemplateRuleList2.${index}.remark`"
|
|
@@ -129,7 +139,7 @@
|
|
<region-list
|
|
<region-list
|
|
v-if="createShow"
|
|
v-if="createShow"
|
|
:dialog-show="createShow"
|
|
:dialog-show="createShow"
|
|
- :data-list="shippingTemplateRuleList"
|
|
|
|
|
|
+ :shippingTemplateRuleList="shippingTemplateRuleList" :shippingTemplateRuleList2="shippingTemplateRuleList2"
|
|
:id="id" :list="list"
|
|
:id="id" :list="list"
|
|
@close="close"
|
|
@close="close"
|
|
/>
|
|
/>
|
|
@@ -152,7 +162,6 @@ export default {
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
createShow: false,
|
|
createShow: false,
|
|
-
|
|
|
|
listPidProvince: [],//省
|
|
listPidProvince: [],//省
|
|
props: {
|
|
props: {
|
|
multiple: true,
|
|
multiple: true,
|
|
@@ -183,13 +192,7 @@ export default {
|
|
province: '',//省
|
|
province: '',//省
|
|
provinceId: '',//省id
|
|
provinceId: '',//省id
|
|
remark: '不发货备注',
|
|
remark: '不发货备注',
|
|
- }, {
|
|
|
|
- city: '',//市
|
|
|
|
- cityId: '',//市id
|
|
|
|
- province: '',//省
|
|
|
|
- provinceId: '',//省id
|
|
|
|
- remark: '不发货备注',
|
|
|
|
- }, {}
|
|
|
|
|
|
+ }
|
|
],
|
|
],
|
|
},
|
|
},
|
|
],
|
|
],
|
|
@@ -199,11 +202,12 @@ export default {
|
|
|
|
|
|
rules: {
|
|
rules: {
|
|
title: [{required: true, message: '请输入模板名称', trigger: 'blur'}],
|
|
title: [{required: true, message: '请输入模板名称', trigger: 'blur'}],
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
+ provinceList:{}//省(市)
|
|
};
|
|
};
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
- // this.getList()
|
|
|
|
|
|
+ this.getList()
|
|
if (this.id) {
|
|
if (this.id) {
|
|
getTemplateDetail(this.id).then(res => {
|
|
getTemplateDetail(this.id).then(res => {
|
|
const {id, title, shippingTemplateRuleList} = res.data
|
|
const {id, title, shippingTemplateRuleList} = res.data
|
|
@@ -212,18 +216,26 @@ export default {
|
|
item.defaultPrice = accDiv(item.defaultPrice, 100)
|
|
item.defaultPrice = accDiv(item.defaultPrice, 100)
|
|
if (item.type == 1){
|
|
if (item.type == 1){
|
|
this.shippingTemplateRuleList.push(item)
|
|
this.shippingTemplateRuleList.push(item)
|
|
-
|
|
|
|
}else {
|
|
}else {
|
|
this.shippingTemplateRuleList2.push(item)
|
|
this.shippingTemplateRuleList2.push(item)
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
})
|
|
})
|
|
this.addData = {id, title}
|
|
this.addData = {id, title}
|
|
|
|
+ this.filterList()
|
|
})
|
|
})
|
|
- }
|
|
|
|
|
|
|
|
|
|
+ }
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ //获取省份
|
|
|
|
+ getList(reset) {
|
|
|
|
+ getTreeList().then(res => {
|
|
|
|
+ if (res.code == 0) {
|
|
|
|
+ this.listPidProvince = res.data || []
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
// 关闭弹框
|
|
// 关闭弹框
|
|
close(ruleArea) {
|
|
close(ruleArea) {
|
|
this.createShow = false;
|
|
this.createShow = false;
|
|
@@ -251,12 +263,41 @@ export default {
|
|
}
|
|
}
|
|
}else {
|
|
}else {
|
|
let shippingTemplateRuleList = [...this.shippingTemplateRuleList,...this.shippingTemplateRuleList2]
|
|
let shippingTemplateRuleList = [...this.shippingTemplateRuleList,...this.shippingTemplateRuleList2]
|
|
- shippingTemplateRuleList.map(res=>{
|
|
|
|
- if(res.id == this.listId){
|
|
|
|
- res.shippingTemplateRuleAreaList = ruleArea
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
|
|
+ for (let i = 0; i < shippingTemplateRuleList.length; i++) {
|
|
|
|
+ shippingTemplateRuleList[this.listId-1].shippingTemplateRuleAreaList = ruleArea
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ this.filterList()
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ filterList() {
|
|
|
|
+ let shippingTemplateRuleList = [...this.shippingTemplateRuleList,...this.shippingTemplateRuleList2]
|
|
|
|
+ shippingTemplateRuleList.forEach(item => {
|
|
|
|
+ item.filterList = []
|
|
|
|
+ let data = item.shippingTemplateRuleAreaList
|
|
|
|
+ let cityArr = [... new Set(data.map(item => item.city))]
|
|
|
|
+ for (let i = 0; i < cityArr.length; i++) {
|
|
|
|
+ let obj = {
|
|
|
|
+ city: cityArr[i],
|
|
|
|
+ provinceList: []
|
|
|
|
+ }
|
|
|
|
+ for (let j = 0; j < data.length; j++) {
|
|
|
|
+ if(cityArr[i] == data[j].city) {
|
|
|
|
+ obj.provinceList.push(data[j].province)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ item.filterList.push(obj)
|
|
|
|
+ }
|
|
|
|
+ // //折叠市
|
|
|
|
+ for (let i = 0; i < this.listPidProvince.length; i++) {
|
|
|
|
+ let data = this.listPidProvince[i]
|
|
|
|
+ for (let j = 0; j < item.filterList.length; j++) {
|
|
|
|
+ if(data.areaName == item.filterList[j].city && data.cityList.length == item.filterList[j].provinceList.length){
|
|
|
|
+ item.filterList[j].provinceList = []
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
},
|
|
},
|
|
|
|
|
|
//付费地区
|
|
//付费地区
|
|
@@ -277,9 +318,9 @@ export default {
|
|
},
|
|
},
|
|
|
|
|
|
//编辑
|
|
//编辑
|
|
- setListData(list,id){
|
|
|
|
|
|
+ setListData(list,index){
|
|
this.list = list
|
|
this.list = list
|
|
- this.listId = id
|
|
|
|
|
|
+ this.listId = index
|
|
this.createShow = true;
|
|
this.createShow = true;
|
|
},
|
|
},
|
|
|
|
|