Browse Source

完善数据大屏

master
myTest383 8 months ago
parent
commit
0dd96d18fd
  1. 282
      src/views/mortgage/shanhaiGf.vue

282
src/views/mortgage/shanhaiGf.vue

@ -18,7 +18,14 @@
<h1>山海能源光伏动产质押项目全局数据大屏</h1>
<i></i>
</div>
<!-- <div style="border-bottom: solid 1px #58A55C;padding-bottom: 2px;background: #f0f;
color: #58A55C;font-size: 18px; cursor: pointer;" @click="showPos">仓库分布图>></div> -->
<div class="anniu">
<span style="border-bottom: solid 1px #58A55C;padding-bottom: 2px;margin-right: 50px;
color: #58A55C;font-size: 18px; cursor: pointer;" @click.stop="showPos">仓库分布图</span>
<el-select v-model="value1" placeholder="进入项目" @change="seleProject">
<el-option v-for="item in options" :key="item.value" :label="item.label"
:value="item.value">
@ -187,7 +194,10 @@
<div class="list1" v-for="(item, index) in rightTopInfo.list" :key="index"
@click="itemClick(item)">
<p>{{ item.tbdate }}</p>
<p>{{ item.projectname }}</p>
<p style="width: 250px; display: -webkit-box;
overflow: hidden;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;">{{ item.projectname }}</p>
<p>{{ item.type=='1'?"用信":'还信' }}</p>
<p>{{ item.money }}</p>
</div>
@ -234,9 +244,15 @@
<div class="list">
<div class="list1" v-for="(item, index) in rightBomInfo.list" :key="index"
@click="itemClick2(item)">
<p>{{ item.createTime }}</p>
<p>{{ item.entryName }}</p>
<p>{{ item.name }}</p>
<p style="width: 100px;">{{ item.createTime }}</p>
<p style="width: 250px; display: -webkit-box;
overflow: hidden;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;">{{ item.entryName }}</p>
<p style="width: 250px; display: -webkit-box;
overflow: hidden;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;">{{ item.name }}</p>
</div>
</div>
</vue-seamless-scroll>
@ -247,13 +263,64 @@
</div>
</div>
<!-- 查看报告-->
<!-- <el-dialog title="查看报告" :visible.sync="dialogReport" width="800px" :before-close="handleCloseReport"
<el-dialog title="查看报告" :visible.sync="dialogReport" width="800px" :before-close="handleCloseReport"
style="z-index:999">
<iframe :src="reportUrl" width="750" height="400" id="ysOpenDevice" allowfullscreen>
</iframe>
</el-dialog> -->
</el-dialog>
<!-- <projectInfo v-show="viewState ==2 " ref="itemInfo" /> -->
<!-- 仓库分布 -->
<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>
</template>
@ -277,26 +344,27 @@
times: getCurrentDate(),
time: "",
myChart: "",
options: [{
value: "选项1",
label: "黄金糕",
},
{
value: "选项2",
label: "双皮奶",
},
{
value: "选项3",
label: "蚵仔煎",
},
{
value: "选项4",
label: "龙须面",
},
{
value: "选项5",
label: "北京烤鸭",
},
options: [
// {
// value: "1",
// label: "",
// },
// {
// value: "2",
// label: "",
// },
// {
// value: "3",
// label: "",
// },
// {
// value: "4",
// label: "",
// },
// {
// value: "5",
// label: "",
// },
],
value1: "",
params: {
@ -357,7 +425,39 @@
map: []
},
dialogReport: false,
reportUrl: ''
reportUrl: '',
activeNames: ['info', 'list'],
dialogVisible: false,
params: {
projectSid: '',
projectName: '',
orderDate: '',
},
warehouseImg: "",
warehouseSid: "",
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'
},
};
},
@ -486,6 +586,64 @@
})
},
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
}
}
},
seleProject(val) {
console.log('seleProject', val)
@ -507,14 +665,17 @@
console.log('itemClick2', row)
// this.dialogReport = true
// this.reportUrl = row.absolutePath
window.open("https://view.xdocin.com/view?src=" + encodeURIComponent(
row.absolutePath));
// window.open("https://view.xdocin.com/view?src=" + encodeURIComponent(
// row.absolutePath));
// window.open("https://supervise.yxtsoft.com/downfile/reportprojectdaily/13_20240920170045117798.doc");
window.open(row.absolutePath);
},
handleCloseReport() {
this.dialogReport = false
this.reportUrl = ''
},
// handleCloseReport() {
// // this.dialogReport = false
// this.reportUrl = ''
// },
getTime() {
var today = new Date();
var y = today.getFullYear();
@ -4444,6 +4605,59 @@
</script>
<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;
}
.index {
width: 100%;
height: 100vh;
@ -5029,7 +5243,7 @@
display: flex;
align-items: center;
box-sizing: border-box;
padding-left: 15%;
padding-left: 5%;
cursor: pointer;
&:hover {

Loading…
Cancel
Save