Commit a8cd38c6 authored by youjj's avatar youjj

Merge remote-tracking branch 'origin/master'

parents a6d108e1 6f7d6c8e
...@@ -10,6 +10,22 @@ export function page(query) { ...@@ -10,6 +10,22 @@ export function page(query) {
}); });
} }
export function allPage(query) {
return fetch({
url: '/vehicle/campsite/allPage',
method: 'get',
params: query
});
}
export function campsiteAllPage(query) {
return fetch({
url: '/vehicle/campsite/allPage',
method: 'get',
params: query
});
}
export function getObj(id) { export function getObj(id) {
return fetch({ return fetch({
url: '/vehicle/campsite/' + id, url: '/vehicle/campsite/' + id,
......
...@@ -79,7 +79,7 @@ Object.keys(filters).forEach(key => { ...@@ -79,7 +79,7 @@ Object.keys(filters).forEach(key => {
}); });
// register global progress. // register global progress.
const whiteList = ['/login', '/authredirect', '/map', '/stockCrowd', '/stockCrowdDetail', '/companyInfo', '/provinceMap'];// 不重定向白名单 const whiteList = ['/login', '/authredirect', '/map', '/stockCrowd', '/stockCrowdDetail', '/companyInfo', '/provinceMap', '/campsite'];// 不重定向白名单
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
NProgress.start(); // 开启Progress NProgress.start(); // 开启Progress
if (getToken()) { // 判断是否有token if (getToken()) { // 判断是否有token
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
</div> </div>
</div> </div>
<!--营地分布图--> <!--营地分布图-->
<company-map v-on:headCallBack="headCall" v-if="toList" :toSonData="list" :provinceName="provinceName"></company-map> <company-map v-on:headCallBack="headCall" v-if="toList" :toSonData="type" :provinceName="provinceName"></company-map>
<!--营地数据--> <!--营地数据-->
<div v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="0"> <div v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="0">
<div class="shoppings company-list" <div class="shoppings company-list"
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
/*引入postcss-px2rem 通过require的形式*/ /*引入postcss-px2rem 通过require的形式*/
// var px2rem = require('postcss-px2rem'); // var px2rem = require('postcss-px2rem');
import { import {
page allPage
} from 'api/base_info/campsite'; } from 'api/base_info/campsite';
import chinaMap from '../companyInfo/chinaMap'; import chinaMap from '../companyInfo/chinaMap';
import companyMap from "../companyInfo/companyMap"; import companyMap from "../companyInfo/companyMap";
...@@ -99,6 +99,7 @@ ...@@ -99,6 +99,7 @@
companyMap}, companyMap},
data() { data() {
return { return {
type: "campsite",
toList: false, toList: false,
nodata: false, nodata: false,
nomore:false, nomore:false,
...@@ -339,7 +340,7 @@ ...@@ -339,7 +340,7 @@
let params = this.objDeepCopy(this.listQuery);//深拷贝 let params = this.objDeepCopy(this.listQuery);//深拷贝
params.page = this.page++; params.page = this.page++;
this.send = !0; this.send = !0;
page(params) allPage(params)
.then(res => { .then(res => {
this.loading = false; this.loading = false;
let allList = []; let allList = [];
...@@ -358,7 +359,7 @@ ...@@ -358,7 +359,7 @@
} }
res.data.data.forEach(function (item) { res.data.data.forEach(function (item) {
allList.push(item); allList.push(item);
});debugger });
if(res.data.data.length< this.listQuery.limit && this.list.length>0){ if(res.data.data.length< this.listQuery.limit && this.list.length>0){
//已加载全部 //已加载全部
this.nomore = true; this.nomore = true;
......
...@@ -13,11 +13,10 @@ ...@@ -13,11 +13,10 @@
getRegionByCodes, getRegionByCodes,
} from 'api/base_info/region/'; } from 'api/base_info/region/';
import { import {
page, campsiteAllPage,
addObj, } from 'api/base_info/campsite';
getObj, import {
delObj, allPage,
putObj
} from 'api/base_info/branch_company'; } from 'api/base_info/branch_company';
export default { export default {
props: ["toSonData","provinceName"], props: ["toSonData","provinceName"],
...@@ -41,9 +40,17 @@ ...@@ -41,9 +40,17 @@
} }
}, },
mounted() { mounted() {
// let that = this;
// if(this.map){
// this.map.addEventListener("zoomend", function(e){
// var ZoomNum = that.map.getZoom();
// this.addMarker(map);
// });
// }
}, },
watch: { watch: {
provinceName(newValue, oldValue) { provinceName(newValue, oldValue) {
let that = this;
console.log(this.provinceName); console.log(this.provinceName);
if(this.map){ if(this.map){
if(this.provinceName == "兰州"){ if(this.provinceName == "兰州"){
...@@ -52,50 +59,68 @@ ...@@ -52,50 +59,68 @@
this.map.centerAndZoom(this.provinceName,6); this.map.centerAndZoom(this.provinceName,6);
} }
} }
// this.map.addEventListener("zoomend", function(e){
// var ZoomNum = that.map.getZoom();
// that.map.clearOverlays();//清空地图上标注点
// that.addMarker(this,map);
// });
}, },
}, },
methods: { methods: {
getList() { handler({map}) {
page(this.listQuery) this.map = map;
if(this.toSonData =="campsite"){
campsiteAllPage(this.listQuery)
.then(response => { .then(response => {
let listTemp = response.data.data; let listTemp = response.data.data;
//一次读入所有涉及地区,防止多次读取 let arr = [];
if (!this.$utils.isEmpty(listTemp)) {
let allRegions = new Set();
for (let index in listTemp) {
allRegions.add(listTemp[index].addrProvince);
allRegions.add(listTemp[index].addrCity);
allRegions.add(listTemp[index].addrTown);
let regions = getRegionByCodes([listTemp[index].addrProvince, listTemp[index].addrCity, listTemp[index].addrTown]);
listTemp[index].address = regions[0].name + ' ' + regions[1].name + ' ' + regions[2].name + ' ';
}
getRegionByCodes([...allRegions]);
}
let arr = this.list;
listTemp.map(function(item){ listTemp.map(function(item){
arr.push(item); arr.push(item);
}); });
this.list = arr; this.list = arr;
// 定位
this.geolocation(map);
// 产生随机点
const bounds = map.getBounds();
for (let i = 0; i < arr.length; i++) {
const point = {
title: "",//list[i].name
point: {
lng: arr[i].longitude,
lat: arr[i].latitude
}
};
this.pointList.push(point);
}
this.addMarker(map);
}) })
}, } else {
handler({map}) { allPage(this.listQuery)
this.map = map; .then(response => {
let list = this.toSonData; let listTemp = response.data.data;
let arr = [];
listTemp.map(function(item){
arr.push(item);
});
this.list = arr;
// 定位 // 定位
this.geolocation(map); this.geolocation(map);
// 产生随机点 // 产生随机点
const bounds = map.getBounds(); const bounds = map.getBounds();
for (let i = 0; i < list.length; i++) { for (let i = 0; i < arr.length; i++) {
const point = { const point = {
title: "",//list[i].name title: "",//list[i].name
point: { point: {
lng: list[i].longitude, lng: arr[i].longitude,
lat: list[i].latitude lat: arr[i].latitude
} }
}; };
this.pointList.push(point); this.pointList.push(point);
} }
this.addMarker(map); this.addMarker(map);
})
}
}, },
mapClick(map, e) { mapClick(map, e) {
const point = e.point; const point = e.point;
...@@ -108,6 +133,7 @@ ...@@ -108,6 +133,7 @@
const p = new BMap.Point(point.lng, point.lat); const p = new BMap.Point(point.lng, point.lat);
this.pickPoint = new BMap.Marker(p); this.pickPoint = new BMap.Marker(p);
this.addressDetail(point);//根据经纬度获取省市信息 this.addressDetail(point);//根据经纬度获取省市信息
// this.addMarker(map);
}, },
addressDetail(point){ //获取地理位置 addressDetail(point){ //获取地理位置
let mydata = getSonRegionByCodes(1); let mydata = getSonRegionByCodes(1);
...@@ -130,9 +156,17 @@ ...@@ -130,9 +156,17 @@
}); });
}, },
addMarker(map) { addMarker(map) {
let zoom = map.getZoom();
var myIcon = new BMap.Icon('https://cwmp.upyuns.com/attachment/images/4/2019/05/HnFr78H280dv972KuNZku70297rz7z.png',new BMap.Size(16,16));//这里先不用第三个参数IconOptions;
// if(zoom <6){
// myIcon = new BMap.Icon('https://cwmp.upyuns.com/attachment/images/4/2019/05/HnFr78H280dv972KuNZku70297rz7z.png',new BMap.Size(16,16));//这里先不用第三个参数IconOptions
// }
for (const item of this.pointList) { for (const item of this.pointList) {
const point = new BMap.Point(item.point.lng, item.point.lat); const point = new BMap.Point(item.point.lng, item.point.lat);
const mk = new BMap.Marker(point); var mk = new BMap.Marker(point, {icon:myIcon});
// if(zoom > 6){
// mk = new BMap.Marker(point);
// }
const label = new BMap.Label(item.title); const label = new BMap.Label(item.title);
label.setOffset(new BMap.Size(15, -15)); label.setOffset(new BMap.Size(15, -15));
label.setStyle({ label.setStyle({
......
...@@ -21,26 +21,28 @@ ...@@ -21,26 +21,28 @@
</div> </div>
</div> </div>
<!--分公司分布图--> <!--分公司分布图-->
<company-map v-on:headCallBack="headCall" v-if="toList" :toSonData="list" :provinceName="provinceName"></company-map> <company-map v-on:headCallBack="headCall" v-if="toList" :toSonData="type" :provinceName="provinceName"></company-map>
<!--地图-->
<!--<china-map v-on:headCallBack="headCall" :list="list" :provinceName="provinceName"></china-map>-->
<!--分公司数据--> <!--分公司数据-->
<div v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="0">
<div class="shoppings company-list" <div class="shoppings company-list"
v-for="item in list" v-for="item in list"
:key="item.key" :key="item.key"
> >
<div class="item-right-p company-item"> <div class="item-right-p company-item">
<div class="ellipsis company-name">{{item.name}}</div> <div class="ellipsis company-name">{{item.name}}</div>
<p class="ellipsis">负责人{{item.leader}}</p> <p class="ellipsis">总经理{{item.leader}}</p>
<p>地址: {{item.address + item.addrDetail}}</p> <p>地址: {{item.address + item.addrDetail}}</p>
<p class="ellipsis">电话:{{item.leaderContactInfo}}</p> <p class="ellipsis">电话:{{item.leaderContactInfo}}</p>
</div> </div>
</div> </div>
<div class="tip-css" v-if="nodata"> <infinite-loading v-show="loading" spinner="spiral" style="margin-top:2em" ref="sroller">
暂无数据 </infinite-loading>
<div v-if="nomore && !loading" style="text-align: center;color: #999;padding: 10px;">
---暂无更多数据---
</div>
<div v-if="toList && !loading && list.length == 0" style="text-align: center;color: #999;padding: 10px;">
---暂无数据---
</div> </div>
<div v-else-if="nomore" class="tip-css">
已加载全部
</div> </div>
</div> </div>
</div> </div>
...@@ -88,18 +90,25 @@ ...@@ -88,18 +90,25 @@
import {mapGetters} from 'vuex'; import {mapGetters} from 'vuex';
import BmMap from "../../../../node_modules/vue-baidu-map/components/map/Map.vue"; import BmMap from "../../../../node_modules/vue-baidu-map/components/map/Map.vue";
import infiniteScroll from 'vue-infinite-scroll'
import InfiniteLoading from 'vue-infinite-loading'
export default { export default {
name: 'branchCompany', name: 'branchCompany',
directives: {
infiniteScroll
},
components: { components: {
BmMap, BmMap,
chinaMap, InfiniteLoading,
companyMap}, companyMap},
data() { data() {
return { return {
type: "companyInfo",
toList: false, toList: false,
nodata: false, nodata: false,
nomore:false, nomore:false,
loading: false,
form: { form: {
id: undefined, id: undefined,
name: undefined, name: undefined,
...@@ -209,11 +218,11 @@ ...@@ -209,11 +218,11 @@
} }
] ]
}, },
list: null, list: [],
total: null, total: null,
listLoading: true, listLoading: true,
listQuery: {
page: 1, page: 1,
listQuery: {
limit: 10, limit: 10,
addrProvince: undefined, addrProvince: undefined,
addrCity: undefined, addrCity: undefined,
...@@ -232,10 +241,10 @@ ...@@ -232,10 +241,10 @@
provinceName: "", provinceName: "",
tableKey: 0, tableKey: 0,
send: !1,//是否已发送请求 send: !1,//是否已发送请求
nomore: false
} }
}, },
created() { created() {
this.getList();
this.branchCompany_btn_edit = this.elements['branchCompany:btn_edit']; this.branchCompany_btn_edit = this.elements['branchCompany:btn_edit'];
this.branchCompany_btn_del = this.elements['branchCompany:btn_del']; this.branchCompany_btn_del = this.elements['branchCompany:btn_del'];
this.branchCompany_btn_add = this.elements['branchCompany:btn_add']; this.branchCompany_btn_add = this.elements['branchCompany:btn_add'];
...@@ -307,24 +316,40 @@ ...@@ -307,24 +316,40 @@
} }
return this.companyStatusAndCode[code].val; return this.companyStatusAndCode[code].val;
}, },
getList(reachBottom) { getList(){
if(this.send){ this.page = 1;
return;
}
if(!reachBottom){
this.list = []; this.list = [];
this.listQuery.page = 1;
this.nodata = false;
this.nomore = false; this.nomore = false;
} else if(reachBottom) { this.loadMore();
},
/**
* 深拷贝
*/
objDeepCopy (source) {
var sourceCopy = source instanceof Array ? [] : {};
for (var item in source) {
sourceCopy[item] = typeof source[item] === 'object' ? objDeepCopy(source[item]) : source[item];
}
return sourceCopy;
},
loadMore: function() {
let that = this;
if(this.nomore){ if(this.nomore){
return false return;
} }
if(this.send){
return;
} }
this.busy = true;
this.loading = true;
let params = this.objDeepCopy(this.listQuery);//深拷贝
params.page = this.page++;
this.send = !0; this.send = !0;
allPage(this.listQuery) allPage(params)
.then(response => { .then(res => {
let listTemp = response.data.data; this.loading = false;
let allList = [];
let listTemp = res.data.data;
//一次读入所有涉及地区,防止多次读取 //一次读入所有涉及地区,防止多次读取
if (!this.$utils.isEmpty(listTemp)) { if (!this.$utils.isEmpty(listTemp)) {
let allRegions = new Set(); let allRegions = new Set();
...@@ -337,160 +362,25 @@ ...@@ -337,160 +362,25 @@
} }
getRegionByCodes([...allRegions]); getRegionByCodes([...allRegions]);
} }
let arr = this.list; res.data.data.forEach(function (item) {
// if(this.listQuery.page >1){ allList.push(item);
listTemp.map(function(item){
arr.push(item);
}); });
// } if(res.data.data.length< this.listQuery.limit && this.list.length>0){
this.list = arr; //已加载全部
this.total = response.data.totalCount;
this.listLoading = false;
if(arr.length == this.listQuery.page*this.listQuery.limit){
this.listQuery.page++;
}else if(arr.length == 0){
this.nodata = true;
}else if(arr.length < this.listQuery.page*this.listQuery.limit){
this.nomore = true; this.nomore = true;
} }
this.list = [...this.list, ...allList];
this.send = !1; this.send = !1;
this.toList = true; this.toList = true;
}) });
this.busy = false;
}, },
getAddrStr(branchCompany) { getAddrStr(branchCompany) {
let regions = getRegionByCodes([branchCompany.addrProvince, branchCompany.addrCity, branchCompany.addrTown]); let regions = getRegionByCodes([branchCompany.addrProvince, branchCompany.addrCity, branchCompany.addrTown]);
return regions[0].name + ' ' + regions[1].name + ' ' + regions[2].name + ' '; return regions[0].name + ' ' + regions[1].name + ' ' + regions[2].name + ' ';
}, },
handleFilter() {
this.$refs.queryForm.validate(valid => {
if (valid) {
this.getList();
} else {
return false;
}
});
},
handleSizeChange(val) {
this.listQuery.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.listQuery.page = val;
this.getList();
},
handleCreate() {
this.resetTemp();
this.dialogStatus = 'create';
this.dialogFormVisible = true;
},
handleUpdate(row) {
getObj(row.id)
.then(response => {
this.form = response.data;
this.dialogFormVisible = true;
this.dialogStatus = 'update';
this.selectedProvince = response.data.addrProvince;
this.selectedCity = response.data.addrCity;
});
},
scroll() {
let isLoading = false
window.onscroll = () => {
// 距离底部20px时加载一次
let bottomOfWindow = document.documentElement.offsetHeight - document.documentElement.scrollTop - window.innerHeight <= 0;
if (bottomOfWindow && isLoading == false) {
this.getList(true);
setTimeout(function(){
isLoading = true;
});
}
}
},
handleDelete(row) {
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
delObj(row.id)
.then(() => {
this.$notify({
title: '成功',
message: '删除成功',
type: 'success',
duration: 2000
});
const index = this.list.indexOf(row);
this.list.splice(index, 1);
});
});
},
create(formName) {
const set = this.$refs;
set[formName].validate(valid => {
if (valid) {
addObj(this.form)
.then(() => {
this.dialogFormVisible = false;
this.getList();
this.$notify({
title: '成功',
message: '创建成功',
type: 'success',
duration: 2000
});
})
} else {
return false;
}
});
},
cancel(formName) {
this.dialogFormVisible = false;
this.$refs[formName].resetFields();
},
update(formName) {
const set = this.$refs;
set[formName].validate(valid => {
if (valid) {
this.dialogFormVisible = false;
putObj(this.form).then(() => {
this.dialogFormVisible = false;
this.getList();
this.$notify({
title: '成功',
message: '创建成功',
type: 'success',
duration: 2000
});
});
} else {
return false;
}
});
},
resetTemp() {
this.form = {
id: undefined,
name: undefined,
status: undefined,
addrProvince: undefined,
addrCity: undefined,
addrTown: undefined,
addrDetail: undefined,
leader: undefined,
leaderContactInfo: undefined,
updateTime: undefined
};
}
}, },
mounted() {    // 滚动加载更多  mounted() {
const _this = this;
this.$nextTick(() => {
window.addEventListener('scroll', this.scroll)
})
}, },
} }
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment