Browse Source

物联一张图的设备列表,打开设备;联建负责人的名称改为手填

dongming
duanliangtao 9 months ago
parent
commit
84b16c104d
  1. BIN
      src/assets/images/overview/resources010.png
  2. BIN
      src/assets/images/overview/resources010_bak.png
  3. 94
      src/views/dataBoard/IoTPerception/equipmentList/index.vue
  4. 2
      src/views/dataBoard/IoTPerception/equipmentWarning/index.vue
  5. BIN
      src/views/dataBoard/IoTPerception/image/lixian.png
  6. 28
      src/views/dataBoard/IoTPerception/index.vue
  7. 188
      src/views/dataBoard/IoTPerception/more/equipmentListMore.vue
  8. 7
      src/views/dataBoard/IoTPerception/more/warning.vue
  9. 6
      src/views/dataBoard/cpts/sjkb-map/index.vue
  10. 18
      src/views/modules/communityParty/regionalParty/unitsForm.vue

BIN
src/assets/images/overview/resources010.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
src/assets/images/overview/resources010_bak.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

94
src/views/dataBoard/IoTPerception/equipmentList/index.vue

@ -26,56 +26,20 @@
<table class="table" border="0" cellspacing="0" cellpadding="0"> <table class="table" border="0" cellspacing="0" cellpadding="0">
<col :align="item.align" :width="item.width" :key="'col' + index" v-for="(item, index) in colList" /> <col :align="item.align" :width="item.width" :key="'col' + index" v-for="(item, index) in colList" />
<tbody class="table-body" style="width: 1886px;"> <tbody class="table-body" style="width: 1886px;">
<tr class="table-body-tr" v-for="(value, index) in list" :key="index" <tr class="table-body-tr" v-for="(item, index) in list" :key="index" >
> <td class="td">
<td class="td" v-for="(item, indexs) in value" :key="indexs"> <div>{{ item.name }}</div>
<div v-if=" </td>
typeof item === 'string' || <td class="td">
typeof item === 'number' <div>{{ item.date }}</div>
" :title="item"> </td>
{{ item }} <td class="td">
</div> <div>{{ item.address }}</div>
<div v-if=" </td>
typeof item === 'object' || <td class="table-header-th" style="color: #007FF1;">
typeof item.type === 'object' <div @click="handleClickDevice(item)">查看</div> </td>
" :title="item.name" :class="item.class">
{{ item.name }} </tr>
</div>
<div v-if="
typeof item === 'object' &&
item.type === 'img'
">
<!-- <span>{{ item.type+ item.src}}</span> -->
<img style="width: 18px; height: 18px" :src="item.src" alt="" />
</div>
<div v-if="
typeof item === 'object' &&
item &&
item.type == 'index'
">
<img v-if="highlightTop3 && index == 0" src="@/assets/img/shuju/top/1.png" alt="" />
<img v-else-if="highlightTop3 && index == 1" src="@/assets/img/shuju/top/2.png"
alt="" />
<img v-else-if="highlightTop3 && index == 2" src="@/assets/img/shuju/top/3.png"
alt="" />
<span v-else>{{ index + 1 }}</span>
</div>
<a v-else-if="
typeof item === 'object' &&
item &&
item.type == 'operate'
" fixed v-for="btn in item.list" :key="'operate' + index + btn"
@click.stop="handleClickBtn(index, btn)">{{ btn }}</a>
<a v-else-if="
typeof item === 'object' &&
item &&
item.type == 'people'
" @click="handleClickPeople(item)">{{ item.name }}</a>
</td>
<td class="table-header-th" style="color: #007FF1;">
查看
</td>
</tr>
</tbody> </tbody>
<!-- </div> --> <!-- </div> -->
</table></el-scrollbar> </table></el-scrollbar>
@ -132,7 +96,29 @@ import titleSmall from "@/views/dataBoard/satisfactionEval/components/Title/titl
"操作", "操作",
], ],
list: [], list: [],
equipmentListType: [], equipmentListType: [
{
label: "智能监控",
},
{
label: "智能灯杆",
},
{
label: "智能手环",
},
{
label: "智能垃圾桶",
},
{
label: "智能井盖",
},
{
label: "智能消防栓",
},
{
label: "直饮水机",
},
],
equipmentType: '', equipmentType: '',
orgId: this.$store.state.chooseArea.chooseName, orgId: this.$store.state.chooseArea.chooseName,
report: "", report: "",
@ -411,6 +397,12 @@ import titleSmall from "@/views/dataBoard/satisfactionEval/components/Title/titl
}, },
handleClickDevice(item){
console.log("-----------------------handleClickDevice----------------------------------")
console.log(item);
this.$emit('openDeviceDetail', item)
},
}, },
}; };
</script> </script>

2
src/views/dataBoard/IoTPerception/equipmentWarning/index.vue

@ -193,7 +193,7 @@ import titleSmall from "@/views/dataBoard/satisfactionEval/components/Title/titl
async getList(){ async getList(){
let {data,code} = await requestPost('/actual/base/equipmentInspectRecord/page',{agencyId:this.$store.state.user.agencyId}) let {data,code} = await requestPost('/actual/base/equipmentInspectRecord/page',{agencyId:this.$store.state.user.agencyId})
if(code === 0){ if(code === 0){
this.list = data.list.map(item=>({date:item.inspectTime,baoxiu:item.inspectName,type:item.status,address:'东明社区160号',inspectCode:item.inspectCode?item.inspectCode:'',id:item.id})) this.list = data.list.map(item=>({date:item.inspectTime,baoxiu:item.inspectName,type:item.status,address:item.address,inspectCode:item.inspectCode?item.inspectCode:'',id:item.id}))
} }
}, },
close(){this.showInfo=false}, close(){this.showInfo=false},

BIN
src/views/dataBoard/IoTPerception/image/lixian.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

28
src/views/dataBoard/IoTPerception/index.vue

@ -21,7 +21,7 @@
更多 <i class="el-icon-arrow-right"></i></div> 更多 <i class="el-icon-arrow-right"></i></div>
</Title> </Title>
<!-- <RequirementList :currentLevelData="currentLevelData"/> --> <!-- <RequirementList :currentLevelData="currentLevelData"/> -->
<equipmentList :currentLevelData="currentLevelData" /> <equipmentList :currentLevelData="currentLevelData" @openDeviceDetail="openDeviceDetail"/>
</div> </div>
</div> </div>
<div class="g-center"> <div class="g-center">
@ -46,7 +46,7 @@
</div> </div>
<div class="legend-list"> <div class="legend-list">
<div class="legend-item "> <div class="legend-item ">
<img style="width: 25px;" src="@/assets/images/overview/resources010_bak.png"> <img style="width: 25px;" src="@/assets/images/overview/resources010.png">
智能监控 智能监控
</div> </div>
<div class="legend-item "> <div class="legend-item ">
@ -107,7 +107,7 @@
<cpt-loading v-show="false" /> <cpt-loading v-show="false" />
<MapResourceInfo ref="MapResourceInfo" :currentLevelData="currentLevelData" /> <MapResourceInfo ref="MapResourceInfo" :currentLevelData="currentLevelData" />
<more :showDialog="showDialog" :type="type" @close="close"></more> <more :showDialog="showDialog" :type="type" @close="close"></more>
<equipmentListMore :showequipmentListMore="showequipmentListMore" @close="close1"></equipmentListMore> <equipmentListMore :showequipmentListMore="showequipmentListMore" @close="close1" @openDeviceDetail="openDeviceDetail"></equipmentListMore>
</div> </div>
</template> </template>
<script> <script>
@ -478,11 +478,22 @@
if (dataClass === 10) { if (dataClass === 10) {
console.log("点击摄像头"); console.log("点击摄像头");
console.log(data); console.log(data);
this.$refs.jdjs.videoPlay(data.monitorCode) this.$refs.jdjs.videoPlay(data.equipmentNum)
}else{ }else{
this.$refs.MapResourceInfo.open(data.id, data.dataClass) this.$refs.MapResourceInfo.open(data.id, data.dataClass)
} }
}, },
openDeviceDetail(data){
console.log("--------------------openDeviceDetail---------------------------------");
this.$refs.jdjs.videoPlay(data.date)
// if (dataClass === 10) {
// this.$refs.jdjs.videoPlay(data.date)
// }else{
// console.log("");
// }
},
search(data) { search(data) {
data = data.filter(item => item.latitude && item.longitude) data = data.filter(item => item.latitude && item.longitude)
data = data.map(item => { data = data.map(item => {
@ -495,19 +506,22 @@
this.$refs.map.setResourcesPoint(data) this.$refs.map.setResourcesPoint(data)
}, },
setResourcesPoint({agencyId}) { setResourcesPoint({agencyId}) {
let params = {
agencyId:this.$store.state.user.agencyId
};
// //
this.$http.get('/actual/base/videoMonitoring/page').then(res => { this.$http.post('/actual/base/equipment/page',params).then(res => {
// this.$http.get('/actual/base/dataBoard/resource/search?keyword=&agencyId=' + agencyId).then(res => {
let data = res.data.data.list; let data = res.data.data.list;
data = data.filter(item => item.latitude && item.longitude) data = data.filter(item => item.latitude && item.longitude)
data = data.map(item => { data = data.map(item => {
return { return {
...item, ...item,
dataClass: 10, dataClass: parseInt(item.typeCode),
latitude: item.latitude * 1, latitude: item.latitude * 1,
longitude: item.longitude * 1 longitude: item.longitude * 1
} }
}) })
console.log(data);
this.$refs.map.setResourcesPoint(data) this.$refs.map.setResourcesPoint(data)
}) })
}, },

188
src/views/dataBoard/IoTPerception/more/equipmentListMore.vue

@ -13,7 +13,7 @@
</el-option> </el-option>
</el-select> </el-select>
<el-input style="margin-left: 5px;" v-model="equipmentName" placeholder="设备名称"></el-input> <el-input style="margin-left: 5px;" v-model="equipmentName" placeholder="设备名称"></el-input>
<el-input style="margin-left: 5px;" v-model="equipmentAdress" placeholder="设备位置"></el-input> <!-- <el-input style="margin-left: 5px;" v-model="equipmentAdress" placeholder="设备位置"></el-input> -->
<el-button style="background-color: #1a95ff; color: #00153E; ;"> <el-button style="background-color: #1a95ff; color: #00153E; ;">
</el-button> </el-button>
</div> </div>
@ -31,56 +31,20 @@
<table class="table" border="0" cellspacing="0" cellpadding="0"> <table class="table" border="0" cellspacing="0" cellpadding="0">
<col :align="item.align" :width="item.width" :key="'col' + index" v-for="(item, index) in colList" /> <col :align="item.align" :width="item.width" :key="'col' + index" v-for="(item, index) in colList" />
<tbody v-if="!loading" class="table-body" style="width: 1886px;"> <tbody v-if="!loading" class="table-body" style="width: 1886px;">
<tr class="table-body-tr" v-for="(value, index) in list" :key="index" <tr class="table-body-tr" v-for="(item, index) in list" :key="index" >
@click="handleClickRow(index)"> <td class="td">
<td class="td" v-for="(item, indexs) in value" :key="indexs"> <div>{{ item.name }}</div>
<div v-if=" </td>
typeof item === 'string' || <td class="td">
typeof item === 'number' <div>{{ item.date }}</div>
" :title="item"> </td>
{{ item }} <td class="td">
</div> <div>{{ item.address }}</div>
<div v-if=" </td>
typeof item === 'object' ||
typeof item.type === 'object'
" :title="item.name" :class="item.class">
{{ item.name }}
</div>
<div v-if="
typeof item === 'object' &&
item.type === 'img'
">
<!-- <span>{{ item.type+ item.src}}</span> -->
<img style="width: 18px; height: 18px" :src="item.src" alt="" />
</div>
<div v-if="
typeof item === 'object' &&
item &&
item.type == 'index'
">
<img v-if="highlightTop3 && index == 0" src="@/assets/img/shuju/top/1.png" alt="" />
<img v-else-if="highlightTop3 && index == 1" src="@/assets/img/shuju/top/2.png"
alt="" />
<img v-else-if="highlightTop3 && index == 2" src="@/assets/img/shuju/top/3.png"
alt="" />
<span v-else>{{ index + 1 }}</span>
</div>
<a v-else-if="
typeof item === 'object' &&
item &&
item.type == 'operate'
" fixed v-for="btn in item.list" :key="'operate' + index + btn"
@click.stop="handleClickBtn(index, btn)">{{ btn }}</a>
<a v-else-if="
typeof item === 'object' &&
item &&
item.type == 'people'
" @click="handleClickPeople(item)">{{ item.name }}</a>
</td>
<td class="table-header-th" style="color: #007FF1;"> <td class="table-header-th" style="color: #007FF1;">
查看 <div @click="handleClickDevice(item)">查看</div> </td>
</td>
</tr> </tr>
</tbody> </tbody>
<!-- </div> --> <!-- </div> -->
</table></el-scrollbar> </table></el-scrollbar>
@ -142,102 +106,28 @@ export default {
"设备位置", "设备位置",
"操作", "操作",
], ],
list: [{ list: [],
date: '2016-05-02', equipmentListType: [{
name: '王小虎', value: '10',
address: '上海市普陀区金沙江路 1518 弄' label: '智能监控'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
},{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, { }, {
date: '2016-05-01', value: '11',
name: '王小虎', label: '智能灯杆'
address: '上海市普陀区金沙江路 1519 弄'
}, { }, {
date: '2016-05-01', value: '12',
name: '王小虎', label: '智能手环'
address: '上海市普陀区金沙江路 1519 弄'
}, { }, {
date: '2016-05-01', value: '13',
name: '王小虎', label: '智能垃圾桶'
address: '上海市普陀区金沙江路 1519 弄'
}, { }, {
date: '2016-05-01', value: '14',
name: '王小虎', label: '智能井盖'
address: '上海市普陀区金沙江路 1519 弄'
}, { }, {
date: '2016-05-01', value: '15',
name: '王小虎', label: '智能消防栓'
address: '上海市普陀区金沙江路 1519 弄'
}, { }, {
date: '2016-05-03', value: '16',
name: '王小虎', label: '直饮水机'
address: '上海市普陀区金沙江路 1516 弄'
}],
equipmentListType: [{
value: '选项1',
label: '黄金糕'
}, {
value: '选项2',
label: '双皮奶'
}, {
value: '选项3',
label: '蚵仔煎'
}, {
value: '选项4',
label: '龙须面'
}, {
value: '选项5',
label: '北京烤鸭'
}], }],
equipmentType: '', equipmentType: '',
bubbleList: [ bubbleList: [
@ -402,6 +292,7 @@ export default {
created() { created() {
console.log('showDialog:', this.equipmentListMore); // showDialog console.log('showDialog:', this.equipmentListMore); // showDialog
console.log('type:', this.type); // type console.log('type:', this.type); // type
this.getData();
this.bubbleList.forEach((i, index) => { this.bubbleList.forEach((i, index) => {
this.$set( this.$set(
@ -430,6 +321,23 @@ export default {
// handelClickNavigator(navigator) { // handelClickNavigator(navigator) {
// this.$emit('handelClickNavigator', navigator) // this.$emit('handelClickNavigator', navigator)
// } // }
async getData() {
let params = {
agencyId:this.$store.state.user.agencyId
};
let {data,code} = await requestPost("/actual/base/equipment/page",params)
if(code === 0){
this.list = data.list.map(item=>({name:item.typeName,date:item.equipmentNum,address:item.address}))
console.log(this.list);
}
},
handleClickDevice(item){
console.log(item);
this.handleClose();
this.$emit('openDeviceDetail', item)
},
}, },
mounted() { mounted() {
console.log('showDialog:', this.showDialog); // showDialog console.log('showDialog:', this.showDialog); // showDialog

7
src/views/dataBoard/IoTPerception/more/warning.vue

@ -18,7 +18,9 @@
<div style=" width: 50%;"> <div style=" width: 50%;">
<h2 style="color: #fff; width: 50%;">实时画面</h2> <h2 style="color: #fff; width: 50%;">实时画面</h2>
<div class="video-right"> <div class="video-right">
<img style="width:100%;height: 120px;" :src="warnItem.imgUrl?warnItem.imgUrl:require('../image/jiedaotu.jpg')" /> <!-- <img style="width:100%;" :src="warnItem.imgUrl?warnItem.imgUrl:require('../image/monitor.png')" /> -->
<img style="width:100%;" src=" https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet-saas/dongming/20241129/b2f5b0a8cbbc4c609d8c6db008d50a55.png" />
<div class="prism-big-play-btn" @click="videoPlay(warnItem.inspectCode)"> <div class="prism-big-play-btn" @click="videoPlay(warnItem.inspectCode)">
<div class="outter"></div> <div class="outter"></div>
</div> </div>
@ -176,6 +178,7 @@ export default {
isAssigned: false, isAssigned: false,
isCompleted: false, isCompleted: false,
showVideoDialog:false, showVideoDialog:false,
monitorCode:"",
}; };
}, },
computed: {}, computed: {},
@ -627,7 +630,7 @@ section {
top: 50%; top: 50%;
width: 32px; width: 32px;
height: 32px; height: 32px;
background: url("../image/vidio.png") no-repeat; background: url("../image/lixian.png") no-repeat;
background-size: contain; background-size: contain;
cursor: pointer; cursor: pointer;
.outter { .outter {

6
src/views/dataBoard/cpts/sjkb-map/index.vue

@ -944,6 +944,11 @@ export default {
scene.addImage('resources05', require('@/assets/images/overview/resources05.png')); scene.addImage('resources05', require('@/assets/images/overview/resources05.png'));
scene.addImage('resources010', require('@/assets/images/overview/resources010.png')); scene.addImage('resources010', require('@/assets/images/overview/resources010.png'));
scene.addImage('resources011', require('@/assets/images/overview/resources011.png'));
scene.addImage('resources012', require('@/assets/images/overview/resources012.png'));
scene.addImage('resources013', require('@/assets/images/overview/resources013.png'));
scene.addImage('resources014', require('@/assets/images/overview/resources014.png'));
scene.addImage('resources015', require('@/assets/images/overview/resources015.png'));
} }
ResourcesPoint = new PointLayer({ ResourcesPoint = new PointLayer({
@ -963,6 +968,7 @@ export default {
.size(18); .size(18);
scene.addLayer(ResourcesPoint); scene.addLayer(ResourcesPoint);
ResourcesPoint.on("click", (e) => { ResourcesPoint.on("click", (e) => {
console.log(e)
this.$emit('resourcesPointClick', e.feature) this.$emit('resourcesPointClick', e.feature)
}) })

18
src/views/modules/communityParty/regionalParty/unitsForm.vue

@ -76,14 +76,22 @@
class="u-item-width-normal" class="u-item-width-normal"
></el-cascader> ></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="联系人" prop="principalId"> <el-form-item label="联系人" prop="contact"
<el-select v-model.trim="formData.principalId" class="u-item-width-normal" size="small" clearable label-width="150px"
style="display: block">
<!-- <el-select v-model.trim="formData.principalId" class="u-item-width-normal" size="small" clearable
placeholder="请选择联系人" @change="handelChangeStaff"> placeholder="请选择联系人" @change="handelChangeStaff">
<el-option v-for="item in dicts.stafflist" <el-option v-for="item in dicts.stafflist"
:key="item.value" :key="item.value"
:label="item.name" :label="item.name"
:value="item.staffId"></el-option> :value="item.staffId"></el-option>
</el-select> </el-select> -->
<el-input
class="item_width_1"
placeholder="请输入联系人姓名"
v-model.trim="formData.contact"
>
</el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="联系电话" label="联系电话"
@ -200,7 +208,7 @@ export default {
unitName: "", unitName: "",
serviceMatterList: [], serviceMatterList: [],
type: "", type: "",
principalId: "", contact: "",
contactMobile: "", contactMobile: "",
memberCount: 0, memberCount: 0,
remark: "", //500 remark: "", //500
@ -545,7 +553,7 @@ export default {
], ],
type: [{ required: true, message: "分类不能为空", trigger: "blur" }], type: [{ required: true, message: "分类不能为空", trigger: "blur" }],
principalId: [ contact: [
{ required: true, message: "联系人不能为空", trigger: "blur" }, { required: true, message: "联系人不能为空", trigger: "blur" },
], ],
contactMobile: [ contactMobile: [

Loading…
Cancel
Save