|
@@ -2,23 +2,14 @@ import { basePositionApi } from '@/api/ticketMr/ticketMr'
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
- selectDeliveryAreaDialogList:[],
|
|
|
- getCityDataRequestList:[],
|
|
|
- currentChargeRegionList:[],
|
|
|
- currentChargeRegionList:[],
|
|
|
- getCityDataRequestList:[],
|
|
|
- currentFilterAreaObj: {},
|
|
|
- currentEchoedRegions: [],
|
|
|
- currentAreaIndex: null,
|
|
|
- selectDeliveryAreaDialogOpen: false,
|
|
|
+ selectDeliveryAreaDialogList:[], // 全部数据
|
|
|
+ selectDeliveryAreaDialogOpen: false, // 是否显示弹窗
|
|
|
selectDeliveryAreaDialogTitle: '可售区域',
|
|
|
- props: {
|
|
|
- label: 'name',
|
|
|
- children: 'zones',
|
|
|
- isLeaf: 'leaf'
|
|
|
- },
|
|
|
|
|
|
- selectCityListAll: [],
|
|
|
+ selectCityListLoading: false,
|
|
|
+
|
|
|
+ provinceIndex: -1,
|
|
|
+ initSelectData: {} // 回显载体
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
@@ -29,9 +20,31 @@ export default {
|
|
|
|
|
|
},
|
|
|
/**
|
|
|
- * 取消查看可配送区域对话框
|
|
|
+ * 打开 可售区域配置
|
|
|
*/
|
|
|
- deliverableAreaDialogCancel() {
|
|
|
+ deliverableAreaDialogCancel(data) {
|
|
|
+ let obj = {}
|
|
|
+
|
|
|
+ this.selectCityListLoading = false
|
|
|
+
|
|
|
+ this.provinceIndex = -1
|
|
|
+ this.initSelectData = {}
|
|
|
+
|
|
|
+ if(data && data.length>0) {
|
|
|
+ data.forEach((item,index)=>{
|
|
|
+ let list = item.split('-')
|
|
|
+ if(obj[list[0]] && list[1]){
|
|
|
+ obj[list[0]].push([list[1]])
|
|
|
+ }else {
|
|
|
+ obj[list[0]] = []
|
|
|
+ if(list[1]){
|
|
|
+ obj[list[0]].push([list[1]])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ console.log('obj====',data,obj)
|
|
|
+ this.initSelectData = obj
|
|
|
this.selectDeliveryAreaDialogOpen = true;
|
|
|
this.basePositionFun("#")
|
|
|
},
|
|
@@ -43,18 +56,24 @@ export default {
|
|
|
selectDeliveryAreaDialogSubmitForm(){
|
|
|
let list = []
|
|
|
this.selectDeliveryAreaDialogList.forEach((item)=>{
|
|
|
- if(item.selectCityList && item.selectCityList.length>0) {
|
|
|
+ if(item.selected){
|
|
|
+ list.push(item.name)
|
|
|
+ }else if(item.selectCityList && item.selectCityList.length>0) {
|
|
|
item.selectCityList.forEach((item1,index1)=>{
|
|
|
+ console.log("item1===",item1)
|
|
|
list.push(item.name+'-'+item1.join('-'))
|
|
|
})
|
|
|
|
|
|
}
|
|
|
})
|
|
|
+ this.form.saleArea = list
|
|
|
+ this.selectDeliveryAreaDialogOpen = false
|
|
|
console.log("list====",list)
|
|
|
},
|
|
|
- /** 获取行政区划 */
|
|
|
+ /** 初次获取行政区划 */
|
|
|
async basePositionFun(upCode) {
|
|
|
try {
|
|
|
+ this.selectCityListLoading = true
|
|
|
let res = await basePositionApi({
|
|
|
upCode,
|
|
|
})
|
|
@@ -66,7 +85,8 @@ export default {
|
|
|
list.push({
|
|
|
...item,
|
|
|
countyList: [],
|
|
|
- selectCityList: [],
|
|
|
+ selected: this.initChekeSelectAll(item),
|
|
|
+ selectCityList: this.initSelectData[item.name] ?this.initSelectData[item.name] : [] ,
|
|
|
cityList: []
|
|
|
})
|
|
|
listApi.push(basePositionApi({
|
|
@@ -78,81 +98,71 @@ export default {
|
|
|
let res1 = await Promise.all(listApi)
|
|
|
if(res1) {
|
|
|
res1.forEach((item,index)=>{
|
|
|
- list[index].cityList = [].concat(item.data)
|
|
|
+ let list1 = []
|
|
|
+ item.data.forEach((item1,index1)=>{
|
|
|
+ list1.push({
|
|
|
+ ...item1,
|
|
|
+ //countyList: [],
|
|
|
+ //leaf: true,
|
|
|
+ })
|
|
|
+ })
|
|
|
+ list[index].cityList = [].concat(list1)
|
|
|
})
|
|
|
}
|
|
|
|
|
|
this.selectDeliveryAreaDialogList = [].concat(list)
|
|
|
console.log("res1=====",res1,this.selectDeliveryAreaDialogList)
|
|
|
}
|
|
|
+ this.selectCityListLoading = false
|
|
|
} catch (error) {
|
|
|
console.error("error====",error)
|
|
|
+ this.selectCityListLoading = false
|
|
|
}
|
|
|
- },
|
|
|
- async basePositionFunCopy(upCode) {
|
|
|
- try {
|
|
|
- let res = await basePositionApi({
|
|
|
- upCode,
|
|
|
- })
|
|
|
- if(res.code == 200) {
|
|
|
- return res.data
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- return []
|
|
|
- }
|
|
|
- },
|
|
|
- loadNode(node, resolve) {
|
|
|
- console.log(node,resolve)
|
|
|
- // if(){
|
|
|
-
|
|
|
- // }
|
|
|
- },
|
|
|
- /** 展开某个 */
|
|
|
- urrentEchoedRegionsFun(areaItem){
|
|
|
- this.urrentEchoedRegions = areaItem.areaCode
|
|
|
- },
|
|
|
-
|
|
|
- handleChangeAreaCity(){
|
|
|
-
|
|
|
},
|
|
|
/** 懒加载 配置 */
|
|
|
areaCascaderProps(areaItem, areaIndex) {
|
|
|
return {
|
|
|
- lazy: true,
|
|
|
+ lazy: false,
|
|
|
lazyLoad: (node, resolve) => this.areaLazyLoad(node, resolve, areaItem, areaIndex),
|
|
|
multiple: true,
|
|
|
children: 'countyList',
|
|
|
label: 'name',
|
|
|
value: 'name',
|
|
|
- expandTrigger: 'hover'
|
|
|
+ expandTrigger: 'hover',
|
|
|
+ // emitPath: false,
|
|
|
};
|
|
|
},
|
|
|
/** 懒加载 函数 */
|
|
|
areaLazyLoad(node, resolve, areaItem, provinceIndex) {
|
|
|
const { level } = node;
|
|
|
- console.log(node, resolve, areaItem, provinceIndex)
|
|
|
+ // console.log(node, resolve, areaItem, provinceIndex)
|
|
|
if (level === 0) {
|
|
|
resolve([])
|
|
|
} else if(level == 1 ) {
|
|
|
- //console.log(node, resolve, areaItem, provinceIndex)
|
|
|
+ console.log(node, resolve, areaItem, provinceIndex)
|
|
|
if(node.data && node.data.code){
|
|
|
- basePositionApi({
|
|
|
- upCode: node.data.code,
|
|
|
- }).then((res)=>{
|
|
|
+ if(node.data.countyList) {
|
|
|
let list = []
|
|
|
- //let listLable = []
|
|
|
- res.data.forEach((item,index)=>{
|
|
|
- //listLable.push([node.label,item.name])
|
|
|
+ node.data.countyList.forEach((item,index)=>{
|
|
|
list.push({
|
|
|
...item,
|
|
|
leaf: true,
|
|
|
})
|
|
|
})
|
|
|
- // if(areaItem.selected) {
|
|
|
- // this.selectDeliveryAreaDialogList[provinceIndex].selectCityList = list
|
|
|
- // }
|
|
|
resolve(list)
|
|
|
- })
|
|
|
+ }
|
|
|
+ // basePositionApi({
|
|
|
+ // upCode: node.data.code,
|
|
|
+ // }).then((res)=>{
|
|
|
+ // let list = []
|
|
|
+ // res.data.forEach((item,index)=>{
|
|
|
+ // list.push({
|
|
|
+ // ...item,
|
|
|
+ // leaf: true,
|
|
|
+ // })
|
|
|
+ // })
|
|
|
+ // resolve(list)
|
|
|
+ // })
|
|
|
}else {
|
|
|
resolve([])
|
|
|
}
|
|
@@ -162,21 +172,96 @@ export default {
|
|
|
},
|
|
|
// 当选中节点变化时触发
|
|
|
changeCascader(data){
|
|
|
- console.log(data)
|
|
|
- console.log('selectDeliveryAreaDialogList====',this.selectDeliveryAreaDialogList)
|
|
|
+ console.log("data===",data)
|
|
|
+ // console.log('selectDeliveryAreaDialogList====',this.selectDeliveryAreaDialogList)
|
|
|
+ this.chekeSelectAll(this.provinceIndex)
|
|
|
},
|
|
|
// 下拉框出现/隐藏时触发
|
|
|
- handleCascaderVisibleChangeCity(isVisible, areaItem, provinceIndex){
|
|
|
- console.log(isVisible, areaItem, provinceIndex)
|
|
|
- if(areaItem.selected){
|
|
|
- let list = ['市辖区','东城区']
|
|
|
- // this.selectDeliveryAreaDialogList[provinceIndex].cityList.forEach((item,index)=>{
|
|
|
- // list.push([item.name])
|
|
|
- // })
|
|
|
- console.log("dsfsdfsdf===",list)
|
|
|
- this.$set(this.selectDeliveryAreaDialogList[provinceIndex],'selectCityList',[].concat(list))
|
|
|
+ async handleCascaderVisibleChangeCity(isVisible, areaItem, provinceIndex){
|
|
|
+ this.provinceIndex = provinceIndex
|
|
|
+ if (isVisible) {
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: 'Loading',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)',
|
|
|
+ customClass: 'custom-class-box'
|
|
|
+ });
|
|
|
+ try {
|
|
|
+ console.log('this.selectDeliveryAreaDialogList1111====',this.selectDeliveryAreaDialogList)
|
|
|
+ if(false && isVisible && this.selectDeliveryAreaDialogList[provinceIndex].cityList[0].countyList.length==0){
|
|
|
+
|
|
|
+ console.log(isVisible, areaItem, provinceIndex)
|
|
|
+
|
|
|
+ let listApi = []
|
|
|
+ areaItem.cityList.forEach((item,index)=>{
|
|
|
+ listApi.push(basePositionApi({
|
|
|
+ upCode: item.code?item.code : '#',
|
|
|
+ }))
|
|
|
+ })
|
|
|
+ let res1 = await Promise.all(listApi)
|
|
|
+ console.log("res1====",res1)
|
|
|
+ if(res1) {
|
|
|
+ res1.forEach((item,index)=>{
|
|
|
+ this.$set(this.selectDeliveryAreaDialogList[provinceIndex].cityList[index],'countyList',item.data)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ loading.close();
|
|
|
+ if(isVisible && areaItem.selected){
|
|
|
+ this.$nextTick(()=>{
|
|
|
+ // let list = [['市辖区']]
|
|
|
+ // this.$set(this.selectDeliveryAreaDialogList[provinceIndex],'selectCityList',list)
|
|
|
+ // console.log('this.selectDeliveryAreaDialogList1111====',this.selectDeliveryAreaDialogList)
|
|
|
+ this.setSelectAll(isVisible, areaItem, provinceIndex)
|
|
|
+ })
|
|
|
+
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ loading.close();
|
|
|
+ console.error("error=====",error)
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
|
|
|
- }
|
|
|
+ },
|
|
|
+ /** 全选状态 */
|
|
|
+ setSelectAll(isVisible, areaItem, provinceIndex){
|
|
|
+ this.$nextTick(()=>{
|
|
|
+ let list = []
|
|
|
+ this.selectDeliveryAreaDialogList[provinceIndex].cityList.forEach((item,index)=>{
|
|
|
+ if(item.countyList && item.countyList.length > 0) {
|
|
|
+ item.countyList.forEach((item1,index1)=>{
|
|
|
+ list.push([item.name,item1.name])
|
|
|
+ })
|
|
|
+ }else {
|
|
|
+ list.push([item.name])
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.$set(this.selectDeliveryAreaDialogList[provinceIndex],'selectCityList',list)
|
|
|
+ //console.log('this.selectDeliveryAreaDialogList1111====',this.selectDeliveryAreaDialogList)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 点击选中时 判断是否全选 */
|
|
|
+ chekeSelectAll(provinceIndex){
|
|
|
+ let flog = true
|
|
|
+ this.selectDeliveryAreaDialogList[provinceIndex].cityList.forEach((item,index)=>{
|
|
|
+ if(this.selectDeliveryAreaDialogList[provinceIndex].selectCityList.every((currentValue)=> !currentValue.includes(item.name)) ) {
|
|
|
+ flog = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.selectDeliveryAreaDialogList[provinceIndex].selected = flog
|
|
|
+ console.log("provinceIndex====",provinceIndex)
|
|
|
+ console.log("flog====",flog)
|
|
|
+ console.log('this.selectDeliveryAreaDialogList1111====',this.selectDeliveryAreaDialogList)
|
|
|
+ },
|
|
|
+ /** 点击选中时 判断是否全选 */
|
|
|
+ initChekeSelectAll(item){
|
|
|
+ if(this.initSelectData[item.name] && this.initSelectData[item.name].length == 0) {
|
|
|
+ return true
|
|
|
+ }else {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ },
|
|
|
}
|
|
|
}
|