Browse Source

新增仓库分布图

master
guoxing 8 months ago
parent
commit
d1779b7a88
  1. 14
      src/api/gd36524/allData.js
  2. 6
      src/layout/components/Navbar.vue
  3. 52
      src/views/map/index.vue
  4. 193
      src/views/mortgage/allData.vue
  5. 2
      src/views/mortgage/yqpb-原始.vue
  6. 2
      src/views/mortgage/yqpb.vue

14
src/api/gd36524/allData.js

@ -23,7 +23,7 @@ export default {
// 获取基础信息 , // 获取基础信息 ,
getProjectBySid: function(data) { getProjectBySid: function(data) {
return request({ return request({
url: '/datacenter/getProjectBySid?projectSid='+data, url: '/datacenter/getProjectBySid?projectSid=' + data,
method: 'get', method: 'get',
data: data data: data
}); });
@ -32,7 +32,7 @@ export default {
// 获取仓库sid, // 获取仓库sid,
getProjectIsJk: function(data) { getProjectIsJk: function(data) {
return request({ return request({
url: '/datacenter/getProjectIsJk?projectSid='+data, url: '/datacenter/getProjectIsJk?projectSid=' + data,
method: 'get' method: 'get'
}); });
}, },
@ -40,7 +40,7 @@ export default {
// 获取摄像头 设备列表, // 获取摄像头 设备列表,
getOtherList: function(data) { getOtherList: function(data) {
return request({ return request({
url: '/datacenter/getOtherList?type=1&ckId='+data, url: '/datacenter/getOtherList?type=1&ckId=' + data,
method: 'get' method: 'get'
}); });
}, },
@ -62,5 +62,13 @@ export default {
method: 'get' method: 'get'
}); });
}, },
// 仓库分布
getPos: function(data) {
return request({
url: '/datacenter/getWarehouseAddress',
method: 'post',
data: data
});
},
} }

6
src/layout/components/Navbar.vue

@ -1,8 +1,8 @@
<template> <template>
<div> <div>
<div class="navbar"> <div class="navbar">
<p class="breadcrumb-container"><img src="@/assets/loginImg/logo.png" style="width: 45px;height: 45px;margin-right: 10px;">汇融清分系统</p> <p class="breadcrumb-container"><img src="@/assets/loginImg/logo.png" style="width: 45px;height: 45px;margin-right: 10px;">清分系统</p>
<!-- <h3 class="breadcrumb-container">汇融银行供应链贷后监管平台</h3> --> <!-- <h3 class="breadcrumb-container">银行供应链贷后监管平台</h3> -->
<div class="right-menu"> <div class="right-menu">
<!-- <p>{{Orgname}} {{departmentName}} 欢迎, {{name}}</p>--> <!-- <p>{{Orgname}} {{departmentName}} 欢迎, {{name}}</p>-->
<p>欢迎您{{ name }}</p> <p>欢迎您{{ name }}</p>
@ -11,7 +11,7 @@
<span class="backToHome" @click="logout"><i class="el-icon-back" />返回首页</span> <span class="backToHome" @click="logout"><i class="el-icon-back" />返回首页</span>
</div> </div>
</div> </div>
<el-footer class="footer" height="40px">Copyright © {{ year }} 汇融清分系统All Rights Reserved</el-footer> <el-footer class="footer" height="40px">Copyright © {{ year }} 清分系统All Rights Reserved</el-footer>
</div> </div>
</template> </template>

52
src/views/map/index.vue

@ -2,14 +2,8 @@
<div class="app-container"> <div class="app-container">
<el-amap ref="map" :center="center" :zoom="zoom"> <el-amap ref="map" :center="center" :zoom="zoom">
<el-amap-control-map-type :visible="controlVisible" /> <el-amap-control-map-type :visible="controlVisible" />
<el-amap-marker <el-amap-marker v-for="(marker, index) in markers" :key="index" :icon="marker.icon" :title="marker.title"
v-for="(marker, index) in markers" :position="marker.position" @click="(e) => {clickArrayMarker(marker, e)}" />
:key="index"
:icon="marker.icon"
:title="marker.title"
:position="marker.position"
@click="(e) => {clickArrayMarker(marker, e)}"
/>
</el-amap> </el-amap>
<div class="toolbar"> <div class="toolbar">
<el-collapse v-model="activeNames"> <el-collapse v-model="activeNames">
@ -18,7 +12,8 @@
<i class="el-icon-s-shop" /> 当前选中门店信息 <i class="el-icon-s-shop" /> 当前选中门店信息
</template> </template>
<el-descriptions :column="1" size="mini" border> <el-descriptions :column="1" size="mini" border>
<el-descriptions-item :label-style="{'width': '70px'}" label="序号">{{ currentStore.serNumber }}</el-descriptions-item> <el-descriptions-item :label-style="{'width': '70px'}"
label="序号">{{ currentStore.serNumber }}</el-descriptions-item>
<el-descriptions-item label="门店名称">{{ currentStore.name }}</el-descriptions-item> <el-descriptions-item label="门店名称">{{ currentStore.name }}</el-descriptions-item>
<el-descriptions-item label="门店地址">{{ currentStore.address }}</el-descriptions-item> <el-descriptions-item label="门店地址">{{ currentStore.address }}</el-descriptions-item>
<el-descriptions-item label="门店面积">{{ currentStore.area }}</el-descriptions-item> <el-descriptions-item label="门店面积">{{ currentStore.area }}</el-descriptions-item>
@ -27,7 +22,8 @@
</el-collapse-item> </el-collapse-item>
<el-collapse-item title="" name="list"> <el-collapse-item title="" name="list">
<template slot="title"> <template slot="title">
<i class="el-icon-s-grid" /> 门店列表<el-button style="margin-left: 20px;padding: 3px 0" type="text" @click.stop="showUploadXlsx">更新门店数据</el-button> <i class="el-icon-s-grid" /> 门店列表<el-button style="margin-left: 20px;padding: 3px 0" type="text"
@click.stop="showUploadXlsx">更新门店数据</el-button>
</template> </template>
<el-form ref="form" :model="queryParams" label-width="70px" size="mini"> <el-form ref="form" :model="queryParams" label-width="70px" size="mini">
<el-form-item label="门店名称"> <el-form-item label="门店名称">
@ -53,7 +49,8 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%;margin-top: 10px;" max-height="400"> <el-table v-loading="tableLoading" :data="dataList" border style="width: 100%;margin-top: 10px;"
max-height="400">
<el-table-column prop="name" label="门店名称" align="center" /> <el-table-column prop="name" label="门店名称" align="center" />
<el-table-column prop="dueDiligence" label="是否尽调" align="center" width="90" /> <el-table-column prop="dueDiligence" label="是否尽调" align="center" width="90" />
</el-table> </el-table>
@ -74,23 +71,15 @@
<el-dialog title="上传《门店信息.xlsx》" :visible.sync="uploadDialogVisible" width="40%" :before-close="dialogClose"> <el-dialog title="上传《门店信息.xlsx》" :visible.sync="uploadDialogVisible" width="40%" :before-close="dialogClose">
<el-card class="box-card"> <el-card class="box-card">
<div> <div>
<el-upload <el-upload ref="upload" class="upload-demo" :action="updateAction" :on-progress="handleProgress"
ref="upload" :on-success="handleSuccess" :file-list="fileList" :auto-upload="false" :multiple="false"
class="upload-demo" :limit="1">
:action="updateAction"
:on-progress="handleProgress"
:on-success="handleSuccess"
:file-list="fileList"
:auto-upload="false"
:multiple="false"
:limit="1"
>
<el-button slot="trigger" size="small" type="primary">选取文件</el-button> <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> <el-button style="margin-left: 10px;" size="small" type="success"
<div slot="tip" class="el-upload__tip">上传 门店信息.xlsx文件文件中数据格式需要按照 <el-button type="text" @click="downtemplate">模板Excel文件</el-button> 中填写可以点击<el-button @click="submitUpload">上传到服务器</el-button>
size="mini" <div slot="tip" class="el-upload__tip">上传 门店信息.xlsx文件文件中数据格式需要按照 <el-button type="text"
type="warning" @click="downtemplate">模板Excel文件</el-button> <el-button size="mini"
>下载模板Excel文件</el-button> </div> type="warning">下载模板Excel文件</el-button> </div>
</el-upload> </el-upload>
</div> </div>
<el-card class="box-card" shadow="never"> <el-card class="box-card" shadow="never">
@ -102,7 +91,8 @@
<el-descriptions-item label="已尽调数">{{ uploadVo.numberTure }}</el-descriptions-item> <el-descriptions-item label="已尽调数">{{ uploadVo.numberTure }}</el-descriptions-item>
<el-descriptions-item label="未尽调数">{{ uploadVo.numberFalse }}</el-descriptions-item> <el-descriptions-item label="未尽调数">{{ uploadVo.numberFalse }}</el-descriptions-item>
<el-descriptions-item label="未知状态数">{{ uploadVo.numberOther }}</el-descriptions-item> <el-descriptions-item label="未知状态数">{{ uploadVo.numberOther }}</el-descriptions-item>
<el-descriptions-item v-show="uploadVo.errInfo" label="异常信息">{{ uploadVo.errInfo }}</el-descriptions-item> <el-descriptions-item v-show="uploadVo.errInfo"
label="异常信息">{{ uploadVo.errInfo }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-card> </el-card>
</el-card> </el-card>
@ -186,7 +176,11 @@
var x = 0 var x = 0
var y = 0 var y = 0
for (var i in listdata) { for (var i in listdata) {
if (listdata[i].dueDiligence === '是') { x++ } else { y++ } if (listdata[i].dueDiligence === '是') {
x++
} else {
y++
}
} }
const _dataX = [] const _dataX = []
_dataX.push({ _dataX.push({

193
src/views/mortgage/allData.vue

@ -61,6 +61,10 @@
<span>仓库安防</span> <span>仓库安防</span>
</div> </div>
<div class="mortgage-layout-top-right-title-right"> <div class="mortgage-layout-top-right-title-right">
<div style="border-bottom: solid 1px #58A55C;padding-bottom: 2px;
color: #58A55C;position: absolute;right:5px ; bottom: 12px; font-size: 18px;pointer-events: auto; cursor: pointer;
z-index:10" @click="showPos">仓库分布图>></div>
</div> </div>
</div> </div>
@ -299,6 +303,56 @@
</iframe> </iframe>
</el-dialog> </el-dialog>
<!-- 仓库分布 -->
<el-dialog title="仓库分布" :visible.sync="dialogVisible" width="90%" :before-close="handleClose">
<div class="iframemap">
<div class="app-container">
<el-amap ref="map" :center="center" :zoom="zoom">
<el-amap-control-map-type :visible="controlVisible" />
<el-amap-marker v-for="(marker, index) in markers" :key="index" :icon="marker.icon"
:title="marker.title" :position="marker.position" style=" z-index:99;"
@click="(e) => {clickArrayMarker(marker, e)}" />
</el-amap>
<div class="toolbar">
<el-collapse v-model="activeNames">
<el-collapse-item name="info">
<template slot="title">
<i class="el-icon-s-shop" /> 当前选中仓库信息
</template>
<el-descriptions :column="1" size="mini" border>
<!-- <el-descriptions-item :label-style="{'width': '70px'}"
label="序号">{{ currentStore.serNumber }}</el-descriptions-item> -->
<el-descriptions-item
label="仓库名称">{{ currentStore.warehouseName }}</el-descriptions-item>
<el-descriptions-item
label="仓库编码">{{ currentStore.warehouseCode }}</el-descriptions-item>
</el-descriptions>
</el-collapse-item>
<el-collapse-item title="" name="list">
<template slot="title">
<i class="el-icon-s-grid" /> 仓库列表
</template>
<el-form ref="form" :model="queryParams" label-width="70px" size="mini">
<el-form-item label="仓库名称">
<el-input v-model="queryParams.name" clearable @clear="dosearch">
<el-button slot="append" icon="el-icon-search" @click="dosearch" />
</el-input>
</el-form-item>
</el-form>
<el-table v-loading="tableLoading" :data="dataList" border
style="width: 100%;margin-top: 10px;" max-height="400">
<el-table-column prop="warehouseName" label="仓库名称" align="center" />
<el-table-column prop="warehouseCode" label="仓库编码" align="center" width="90" />
</el-table>
</el-collapse-item>
</el-collapse>
</div>
</div>
</div>
</el-dialog>
</div> </div>
</template> </template>
@ -317,6 +371,8 @@
}, },
data() { data() {
return { return {
activeNames: ['info', 'list'],
dialogVisible: false,
times: getDateRang('yesterday'), times: getDateRang('yesterday'),
warehouse: [{ warehouse: [{
value: "选项1", value: "选项1",
@ -371,14 +427,34 @@
}, },
warehouseImg: "", warehouseImg: "",
warehouseSid: "", warehouseSid: "",
cameraList: [] cameraList: [],
currentStore: {
serNumber: '',
name: '',
address: '',
area: '',
dueDiligence: ''
},
queryParams: {
name: '',
projectSid: ""
},
dataList: [],
tableLoading: false,
controlVisible: false,
zoom: 7,
center: [114.490788, 38.033577],
markers: [],
mapicon: {
red: 'https://supervise.yxtsoft.com/map365/image/icon_local_red.png',
blue: process.env.VUE_APP_PUBLIC_PATH + 'image/icon_local_blue.png'
},
}; };
}, },
mounted() { mounted() {
// url // url
const searchParams = new URLSearchParams(/(?<=#.*\?).*/.exec(window.location.href)[0]); const searchParams = new URLSearchParams(/(?<=#.*\?).*/.exec(window.location.href)[0]);
console.log("searchParams>>>>", searchParams) console.log("searchParams>>>>", searchParams)
@ -388,7 +464,7 @@
this.params.orderDate = searchParams.get('orderDate'); this.params.orderDate = searchParams.get('orderDate');
console.log("projectSid>>>>", this.params.projectSid) console.log("projectSid>>>>", this.params.projectSid)
console.log("projectName>>>>", this.params.projectName) console.log("projectName>>>>", this.params.projectName)
console.log("orderDate>>>>",this.params.orderDate) console.log("orderDate>>>>", this.params.orderDate)
this.times = this.params.orderDate this.times = this.params.orderDate
this.loadList() // this.loadList() //
@ -404,6 +480,64 @@
// }, // },
methods: { methods: {
showPos() {
this.dialogVisible = true
this.loadList2()
},
handleClose() {
this.dialogVisible = false
},
loadList2() {
this.queryParams.projectSid = this.params.projectSid
req.getPos(this.queryParams).then(res => {
this.dataList = res.data
this.resetMarkers()
}).catch(e => {
console.log('GdinventoryLog-loadList-ee:', e)
})
},
dosearch() {
this.loadList2()
},
resetQuery() {
this.queryParams = {
name: '',
projectSid: this.params.projectSid
}
this.loadList2()
},
resetMarkers() {
this.markers = []
for (var i in this.dataList) {
const d = this.dataList[i]
// let nicon = this.mapicon.red
// if (d.dueDiligence === '') {
// nicon = this.mapicon.red
// }
const newMarker = {
id: d.sid,
position: [d.longitude, d.latitude],
title: d.warehouseName,
icon: this.mapicon.red,
label: {
direction: 'bottom',
offset: [0, 5], //
content: "<div class='info'>" + d.warehouseName + '</div>' //
}
}
this.markers.push(newMarker)
// console.log("marksers", this.markers);
}
},
clickArrayMarker(marker) {
for (var i in this.dataList) {
if (marker.id === this.dataList[i].sid) {
this.currentStore = this.dataList[i]
break
}
}
},
selectTime(val) { selectTime(val) {
console.log('val:', val) console.log('val:', val)
@ -635,6 +769,59 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.app-container {
width: 100%;
height: 100%;
top: 0px;
left: 0px;
margin: 0;
padding: 0;
}
.toolbar {
position: absolute;
top: 80px;
left: 40px;
width: 300px;
}
.info {
position: relative;
margin: 0;
top: 0;
right: 0;
min-width: 0;
}
.storelabel {
width: 80px
}
.amap-icon {
overflow: inherit !important;
img {
width: 25px;
height: 34px;
}
}
.chartsa {
position: absolute;
top: 20px;
right: 15px;
width: 300px;
}
.iframemap {
margin-top: -30px;
width: 100%;
height: 1000px;
}
.mortgage { .mortgage {
background-color: #040C2B; background-color: #040C2B;
width: 100%; width: 100%;

2
src/views/mortgage/yqpb-原始.vue

@ -1,7 +1,7 @@
<template> <template>
<div class="yxt-containers"> <div class="yxt-containers">
<div class="yxt-header"> <div class="yxt-header">
<h1>一起拼搏(汇融惠享项目)</h1> <h1>一起拼搏(惠享项目)</h1>
</div> </div>
<div class="yxt-main"> <div class="yxt-main">
<div class="yxt-main-ha"> <div class="yxt-main-ha">

2
src/views/mortgage/yqpb.vue

@ -1,7 +1,7 @@
<template> <template>
<div class="yxt-containers" style="overflow-y: auto;"> <div class="yxt-containers" style="overflow-y: auto;">
<span class="title">一起拼搏(汇融惠享项目)</span> <span class="title">一起拼搏(惠享项目)</span>
<div class="layout"> <div class="layout">

Loading…
Cancel
Save