|
@@ -19,11 +19,13 @@
|
|
|
Machine List <span v-if="loading" style="font-size: 10px;color: #fefefe;margin-left: 10px">加载中...</span>
|
|
|
</div>
|
|
|
<div class="content-list infinite-list-wrapper"
|
|
|
- v-infinite-scroll="load"
|
|
|
+ v-infinite-scroll="loadMachine"
|
|
|
:infinite-scroll-disabled="disabled"
|
|
|
>
|
|
|
- <div v-for="i in count" class="list-item">machine {{ i }}</div>
|
|
|
- <p v-if="noMore">没有更多了</p>
|
|
|
+ <div v-for="item in machineList" class="list-item" :key="item.id" @click="handleMachineClick(item)">
|
|
|
+ {{ item.name }}({{ item.machineNum }})
|
|
|
+ </div>
|
|
|
+ <p v-if="noMore" class="no-more" style="margin-top: auto">没有更多了</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -39,64 +41,46 @@
|
|
|
<div class="legend-item">
|
|
|
<i :style="{ backgroundColor:machineOpt.color[0] }"/>
|
|
|
<span>Online Machinery</span>
|
|
|
- <span>7</span>
|
|
|
+ <span>{{ machineStatusCnt.online || 0 }}</span>
|
|
|
</div>
|
|
|
<div class="legend-item">
|
|
|
<i :style="{ backgroundColor:machineOpt.color[1] }"/>
|
|
|
<span>Offline Machinery</span>
|
|
|
- <span>7</span>
|
|
|
+ <span>{{ machineStatusCnt.offline || 0 }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="online-list">
|
|
|
- <div class="list-item">
|
|
|
- <span class="machine-name">004</span>
|
|
|
- <span class="cons-unit">Machine Name</span>
|
|
|
- </div>
|
|
|
- <div class="list-item">
|
|
|
- <span class="machine-name">004</span>
|
|
|
- <span class="cons-unit">Machine Name</span>
|
|
|
- </div>
|
|
|
- <div class="list-item">
|
|
|
- <span class="machine-name">004</span>
|
|
|
- <span class="cons-unit">Machine Name</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </content-block>
|
|
|
- <content-block title="Piling Machine" class="pile-machine-status">
|
|
|
- <template v-slot:content>
|
|
|
- <div class="offset-status">
|
|
|
- <div class="offset-title">
|
|
|
- Drill Rod Inclination
|
|
|
- </div>
|
|
|
- <div class="offset-item">
|
|
|
+ <div class="list-item" v-for="item in onlineMachine">
|
|
|
+ <span class="machine-name">{{ item.name }}</span>
|
|
|
+ <span class="cons-unit">{{ item.machineNum }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
</content-block>
|
|
|
+ <MachineIndex :select-machine="selectMachine"></MachineIndex>
|
|
|
</div>
|
|
|
<el-dialog
|
|
|
- class="screen-dialog"
|
|
|
- title="Vibration Pipe Sinking and Stone Crushing Pile Information"
|
|
|
- :visible.sync="open"
|
|
|
- :modal="false"
|
|
|
- append-to-body
|
|
|
+ class="screen-dialog"
|
|
|
+ title="Vibration Pipe Sinking and Stone Crushing Pile Information"
|
|
|
+ :visible.sync="open"
|
|
|
+ :modal="false"
|
|
|
+ append-to-body
|
|
|
>
|
|
|
<div class="dialog-content">
|
|
|
<el-descriptions :column="2">
|
|
|
- <el-descriptions-item label="Pile Number">kooriookami</el-descriptions-item>
|
|
|
- <el-descriptions-item label="Status">18100000000</el-descriptions-item>
|
|
|
- <el-descriptions-item label="Machine Number">苏州市</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="Pile Number">p0021</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="Status">Completed</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="Machine Number">MH503</el-descriptions-item>
|
|
|
<el-descriptions-item label="Final Vertical Deviation (%)">
|
|
|
- <el-tag size="small">学校</el-tag>
|
|
|
+ <el-tag size="small">0.2</el-tag>
|
|
|
</el-descriptions-item>
|
|
|
- <el-descriptions-item label="Designed Pile Length (m)">kooriookami</el-descriptions-item>
|
|
|
- <el-descriptions-item label="Pile Diameter (m)">18100000000</el-descriptions-item>
|
|
|
- <el-descriptions-item label="Start Time">kooriookami</el-descriptions-item>
|
|
|
- <el-descriptions-item label="End Time">18100000000</el-descriptions-item>
|
|
|
- <el-descriptions-item label="Actual Depth (m)">kooriookami</el-descriptions-item>
|
|
|
- <el-descriptions-item label="Pipe Pulling Speed (m/min)">18100000000</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="Design Depth (m)">40</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="Actual Depth (m)">20</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="Delivery length (m)">20</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="Discharge pressure value">0.1</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="Start Time">2025-02-01 12:00:00</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="End Time">--</el-descriptions-item>
|
|
|
</el-descriptions>
|
|
|
<div class="machine-realtime-container">
|
|
|
<div class="realtime-title">
|
|
@@ -118,9 +102,14 @@ import ConsUnitTree from "@/views/cons/consUnit/ConsUnitTree.vue";
|
|
|
import ContentBlock from "@/views/cons/screen/ContentBlock.vue";
|
|
|
import PieChartBlock from "@/components/charts/PieChartBlock.vue";
|
|
|
import LineChartBlock from "@/components/charts/LineChartBlock.vue";
|
|
|
+import {calcPileMachineOnOffline, getConsUnitMachine, listAllPileMachineInfo} from "@/api/cons/pileMachineInfo";
|
|
|
+import {listPileHoleRealtimeIndex} from "@/api/cons/pileHoleInfo";
|
|
|
+import maphandle from "@/components/map/maphandle";
|
|
|
+import MachineIndex from "@/views/cons/screen/MachineIndex.vue";
|
|
|
|
|
|
export default {
|
|
|
- components: {LineChartBlock, PieChartBlock, ContentBlock, ConsUnitTree, BdMap, Treeselect},
|
|
|
+ components: {MachineIndex, LineChartBlock, PieChartBlock, ContentBlock, ConsUnitTree, BdMap, Treeselect},
|
|
|
+ mixins: [maphandle],
|
|
|
props: {
|
|
|
ws: {
|
|
|
type: String,
|
|
@@ -137,16 +126,30 @@ export default {
|
|
|
},
|
|
|
watch: {
|
|
|
consUnit(val) {
|
|
|
- console.log(val)
|
|
|
+ this.loadMachine()
|
|
|
},
|
|
|
+ searchVal(val) {
|
|
|
+ this.searchValOnchange()
|
|
|
+ },
|
|
|
+
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ mapIns: null,
|
|
|
consUnit: null,
|
|
|
searchVal: "",
|
|
|
count: 10,
|
|
|
loading: false,
|
|
|
open: true,
|
|
|
+ machineList: [],
|
|
|
+ machineOriList: [],
|
|
|
+ selectMachine: null,
|
|
|
+ realtimeInterVal: null,
|
|
|
+ machineLatextIndex: {},
|
|
|
+ pileHoleList: [],
|
|
|
+ pileHoleLayer: null,
|
|
|
+ machineStatusCnt: {},
|
|
|
+ onlineMachine: [],
|
|
|
machineOpt: {
|
|
|
color: ['#006699', '#4cabce'],
|
|
|
tooltip: {
|
|
@@ -275,27 +278,99 @@ export default {
|
|
|
},
|
|
|
// 组件卸载前清空图层信息
|
|
|
beforeDestroy() {
|
|
|
+ this.destroyLayer(this.pileHoleLayer.cust.layerId, this.mapIns)
|
|
|
},
|
|
|
created() {
|
|
|
|
|
|
},
|
|
|
mounted() {
|
|
|
this.init();
|
|
|
+ this.selectMachine = {
|
|
|
+ id: 1
|
|
|
+ }
|
|
|
},
|
|
|
methods: {
|
|
|
init() {
|
|
|
+ this.loadMachine()
|
|
|
+ this.loadMachineOnOffline()
|
|
|
+ this.loadOnlineMachine()
|
|
|
+ },
|
|
|
+ loadMachine() {
|
|
|
+ this.loading = true;
|
|
|
+ getConsUnitMachine(this.consUnit).then((response) => {
|
|
|
+ this.machineList = response.data
|
|
|
+ this.machineOriList = response.data
|
|
|
+ this.searchValOnchange()
|
|
|
+ this.count = 100
|
|
|
+ this.loading = false
|
|
|
+ })
|
|
|
+ },
|
|
|
|
|
|
+ loadOnlineMachine() {
|
|
|
+ listAllPileMachineInfo({
|
|
|
+ status: "00"
|
|
|
+ }).then(response => {
|
|
|
+ this.onlineMachine = response.rows
|
|
|
+ });
|
|
|
+ },
|
|
|
+ searchValOnchange() {
|
|
|
+ if (this.searchVal) {
|
|
|
+ this.machineList = this.machineOriList.filter(item => `${item.name}(${item.machineNum})`.includes(this.searchVal))
|
|
|
+ }
|
|
|
+ },
|
|
|
+ loadMachineOnOffline() {
|
|
|
+ calcPileMachineOnOffline().then(response => {
|
|
|
+ if (response.data) {
|
|
|
+ const {online, offline} = response.data
|
|
|
+ this.machineStatusCnt = response.data
|
|
|
+ this.machineOpt.series[0].data = [{
|
|
|
+ value: online,
|
|
|
+ name: 'online'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: offline,
|
|
|
+ name: 'offline'
|
|
|
+ }]
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ loadPileHole() {
|
|
|
+ listPileHoleRealtimeIndex({}).then(response => {
|
|
|
+ this.pileHoleList = response.data
|
|
|
+ this.pileHoleList.forEach((item, index) => {
|
|
|
+ let circle = new BDLayers.Lib.Overlays.Circle(`circle${index}`, {
|
|
|
+ center: [item.lng, item.lat], // 圆的中心点点坐标
|
|
|
+ radius: 2,
|
|
|
+ symbol: {
|
|
|
+ lineColor: '#34495e',
|
|
|
+ lineWidth: 1,
|
|
|
+ polygonFill: '#1bbc9b',
|
|
|
+ polygonOpacity: 0.2
|
|
|
+ },
|
|
|
+ labelSymbol: {
|
|
|
+ labelText: 'circle',
|
|
|
+ labelTextSize: 10
|
|
|
+ },
|
|
|
+ });
|
|
|
+ circle.cust = item
|
|
|
+ circle.on('click', (e) => {
|
|
|
+ this.pileHoleClick(e.target.cust)
|
|
|
+ })
|
|
|
+ this.pileHoleLayer.addGeometry(circle);
|
|
|
+ })
|
|
|
+ })
|
|
|
},
|
|
|
loaded(map) {
|
|
|
-
|
|
|
+ this.mapIns = map
|
|
|
+ this.pileHoleLayer = this.createLayer(map)
|
|
|
+ this.loadPileHole()
|
|
|
},
|
|
|
- load() {
|
|
|
- this.loading = true
|
|
|
- setTimeout(() => {
|
|
|
- this.count += 2
|
|
|
- this.loading = false
|
|
|
- }, 2000)
|
|
|
- }
|
|
|
+ handleClick(e) {
|
|
|
+ },
|
|
|
+ pileHoleClick(pileHole) {
|
|
|
+ console.log(">>>>>>>>>>>>", pileHole)
|
|
|
+ },
|
|
|
+
|
|
|
},
|
|
|
};
|
|
|
</script>
|