From cbf6a875ede774c577c3ab21aa0a1cd9faa63a59 Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期五, 20 五月 2022 17:44:07 +0800
Subject: [PATCH] 'lct'
---
src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue | 46 +++
src/components/Tab/Marker.vue | 542 +++++++++++++++++++++++++++---------------------------
2 files changed, 308 insertions(+), 280 deletions(-)
diff --git a/src/components/Tab/Marker.vue b/src/components/Tab/Marker.vue
index 37f2391..71b0322 100644
--- a/src/components/Tab/Marker.vue
+++ b/src/components/Tab/Marker.vue
@@ -1,290 +1,290 @@
<template>
- <div class="container">
- <div class="images">
-<!-- <img-->
-<!-- v-for="image in images"-->
-<!-- :key="image.url"-->
-<!-- :src="image.url"-->
-<!-- @click="clickCreateHandle(image.url)"-->
-<!-- />-->
- </div>
- <div class="model-panel-list">
- <el-row :gutter="10">
- <el-col :span="6">
- <el-button
- icon="el-icon-plus"
- size="small"
- type="primary"
- @click="showCreateHandle"
- >
- 创建
- </el-button>
- </el-col>
- <el-col :span="6">
- <el-button
- icon="el-icon-delete"
- size="small"
- type="danger"
- @click="clearHandle"
- >
- 清空
- </el-button>
- </el-col>
- <el-col :span="6">
- <el-button
- icon="el-icon-view"
- size="small"
- :type="showPlot ? 'success' : 'info'"
- @click="toggleVisible"
- >
- {{ showPlot ? '隐藏' : '显示' }}
- </el-button>
- </el-col>
- </el-row>
- <el-row :gutter="10" v-for="marker in markers" :key="marker.attr.id">
- <el-col :span="2">
- <img :src="marker.style.image" style="width:22px;height:22px;" />
- </el-col>
- <el-col :span="12">
- {{ marker.attr.name || ' ' }}
- </el-col>
- <el-col :span="10" style="textAlign:right">
- <el-button
- icon="el-icon-s-promotion"
- size="mini"
- circle
- @click="() => focusHandle(marker.attr.id)"
- />
- <el-button
- icon="el-icon-edit"
- size="mini"
- circle
- @click="() => editHandle(marker)"
- />
- <el-button
- icon="el-icon-delete"
- type="danger"
- size="mini"
- circle
- @click="() => removeHandle(marker.attr.id)"
- />
- </el-col>
- </el-row>
- </div>
- <el-dialog
- :visible="showCreatePanel"
- width="380px"
- title="创建图标"
- :append-to-body="true"
- :close-on-click-modal="false"
- :before-close="closeCreateHandle"
- >
- <p>请输入内容:</p>
- <el-input v-model="marker.name" placeholder="请输入内容" />
- <div class="image-list">
- <ul>
- <li
- v-for="item in images"
- :key="item.url"
- @click="marker.image = item.url"
- :class="marker.image === item.url ? 'active' : ''"
- >
- <img :src="item.url" />
- </li>
- </ul>
- </div>
- <span slot="footer" class="dialog-footer">
+ <div class="container">
+ <div class="images">
+ <!-- <img-->
+ <!-- v-for="image in images"-->
+ <!-- :key="image.url"-->
+ <!-- :src="image.url"-->
+ <!-- @click="clickCreateHandle(image.url)"-->
+ <!-- />-->
+ </div>
+ <div class="model-panel-list">
+ <el-row :gutter="10">
+ <el-col :span="6">
+ <el-button
+ icon="el-icon-plus"
+ size="small"
+ type="primary"
+ @click="showCreateHandle"
+ >
+ 创建
+ </el-button>
+ </el-col>
+ <el-col :span="6">
+ <el-button
+ icon="el-icon-delete"
+ size="small"
+ type="danger"
+ @click="clearHandle"
+ >
+ 清空
+ </el-button>
+ </el-col>
+ <el-col :span="6">
+ <el-button
+ icon="el-icon-view"
+ size="small"
+ :type="showPlot ? 'success' : 'info'"
+ @click="toggleVisible"
+ >
+ {{ showPlot ? '隐藏' : '显示' }}
+ </el-button>
+ </el-col>
+ </el-row>
+ <el-row :gutter="10" v-for="marker in markers" :key="marker.attr.id">
+ <el-col :span="2">
+ <img :src="marker.style.image" style="width:22px;height:22px;" />
+ </el-col>
+ <el-col :span="12">
+ {{ marker.attr.name || ' ' }}
+ </el-col>
+ <el-col :span="10" style="textAlign:right">
+ <el-button
+ icon="el-icon-s-promotion"
+ size="mini"
+ circle
+ @click="() => focusHandle(marker.attr.id)"
+ />
+ <el-button
+ icon="el-icon-edit"
+ size="mini"
+ circle
+ @click="() => editHandle(marker)"
+ />
+ <el-button
+ icon="el-icon-delete"
+ type="danger"
+ size="mini"
+ circle
+ @click="() => removeHandle(marker.attr.id)"
+ />
+ </el-col>
+ </el-row>
+ </div>
+ <el-dialog
+ :visible="showCreatePanel"
+ width="380px"
+ title="创建图标"
+ :append-to-body="true"
+ :close-on-click-modal="false"
+ :before-close="closeCreateHandle"
+ >
+ <p>请输入内容:</p>
+ <el-input v-model="marker.name" placeholder="请输入内容" />
+ <div class="image-list">
+ <ul>
+ <li
+ v-for="item in images"
+ :key="item.url"
+ @click="marker.image = item.url"
+ :class="marker.image === item.url ? 'active' : ''"
+ >
+ <img :src="item.url" />
+ </li>
+ </ul>
+ </div>
+ <span slot="footer" class="dialog-footer">
<el-button @click="closeCreateHandle">取 消</el-button>
<el-button type="primary" @click="createHandle">确 定</el-button>
</span>
- </el-dialog>
- </div>
+ </el-dialog>
+ </div>
</template>
<script>
-import { global } from '@/global';
+ import { global } from '@/global';
-export default {
- components: {},
- data() {
- return {
- images: [
- { url: '../../../public/images/icon/1.png', type: '消防预警' },
- { url: '../../../public/images/icon/2.png', type: '风险预警' },
- { url: '../../../public/images/icon/3.png', type: '监控' },
- { url: '../../../public/images/wet.png', type: '车辆1' },
- { url: '../../../public/images/dry.png', type: '车辆2' },
- { url: '../../../public/images/alarm1.png', type: '告警' },
- { url: '../../../public/images/police.png', type: '警察' },
- ],
- marker: {
- id: null,
- name: '',
- image: null,
- scale: 0.25,
- },
- showCreatePanel: false,
- showPlot: true,
- };
- },
- computed: {
- timestamp() {
- return this.$store.state.map.timestamp;
- },
- markers() {
- return this.entities.map(entity => entity.attribute);
- },
- entities() {
- let entities =
- this.timestamp && global.map
- ? global.map.plotDrawTool.getEntitys()
- : [];
- return entities.filter(entity => entity.attribute.type === 'billboard');
- },
- },
- methods: {
- editHandle(marker) {
- if (!global.map) return;
- this.marker = {
- id: marker.attr.id,
- name: marker.attr.name,
- image: marker.style.image,
- scale: 0.5,
- };
- this.showCreatePanel = true;
- },
- removeHandle(id) {
- if (!global.map) return;
- global.map.deletePlot(id);
- this.$store.dispatch('map/updateTimestamp');
- },
- closeCreateHandle() {
- this.showCreatePanel = false;
- },
- showCreateHandle() {
- this.showCreatePanel = true;
- },
- _initMarker() {
- this.marker = {
- id: null,
- name: '',
- image: '',
- scale: 0.25,
- };
- },
- createHandle() {
- if (!global.map) return;
- let map = global.map;
- const { id, image, scale, name } = this.marker;
- const entity = id && map.getPlotById(id);
- this.closeCreateHandle();
- if (entity) {
- map.updatePlotStyle(id, { image, scale });
- map.updatePlotAttribute(id, { name });
- this._initMarker();
- this.$store.dispatch('map/updateTimestamp');
- } else {
- map.startDraw(
- {
- type: 'billboard',
- style: {
- image,
- scale,
- },
- attr: {
- name,
- },
- },
- () => {
- this._initMarker();
- }
- );
- }
- },
- toggleVisible() {
- this.showPlot = !this.showPlot;
- if (global.map) {
- this.entities.forEach(entity => {
- entity.show = this.showPlot;
- });
- }
- this.$store.dispatch('map/updateTimestamp');
- },
- focusHandle(markerId) {
- if (global.map) {
- const entity = global.map.getPlotById(markerId);
- if (entity) {
- global.map.viewer.flyTo(entity, { duration: 1 });
- }
- }
- },
- clickCreateHandle(url) {
- if (!global.map) return;
- global.map.startDraw(
- {
- type: 'billboard',
- style: {
- image: url,
- scale: 0.25,
- },
+ export default {
+ components: {},
+ data() {
+ return {
+ images: [
+ { url: '../../../public/images/icon/1.png', type: '消防预警' },
+ { url: '../../../public/images/icon/2.png', type: '风险预警' },
+ { url: '../../../public/images/icon/3.png', type: '监控' },
+ { url: '../../../public/images/wet.png', type: '车辆1' },
+ { url: '../../../public/images/dry.png', type: '车辆2' },
+ { url: '../../../public/images/alarm1.png', type: '告警' },
+ { url: '../../../public/images/police.png', type: '警察' },
+ ],
+ marker: {
+ id: null,
+ name: '',
+ image: null,
+ scale: 0.25,
+ },
+ showCreatePanel: false,
+ showPlot: true,
+ };
},
- () => {
- this.$store.dispatch('map/updateTimestamp');
- }
- );
- },
- clearHandle() {
- if (global.map) {
- this.entities.forEach(entity => {
- global.map.plotDrawTool.deleteEntity(entity);
- });
- }
- this.$store.dispatch('map/updateTimestamp');
- },
- },
-};
+ computed: {
+ timestamp() {
+ return this.$store.state.map.timestamp;
+ },
+ markers() {
+ return this.entities.map(entity => entity.attribute);
+ },
+ entities() {
+ let entities =
+ this.timestamp && global.map
+ ? global.map.plotDrawTool.getEntitys()
+ : [];
+ return entities.filter(entity => entity.attribute.type === 'billboard');
+ },
+ },
+ methods: {
+ editHandle(marker) {
+ if (!global.map) return;
+ this.marker = {
+ id: marker.attr.id,
+ name: marker.attr.name,
+ image: marker.style.image,
+ scale: 0.5,
+ };
+ this.showCreatePanel = true;
+ },
+ removeHandle(id) {
+ if (!global.map) return;
+ global.map.deletePlot(id);
+ this.$store.dispatch('map/updateTimestamp');
+ },
+ closeCreateHandle() {
+ this.showCreatePanel = false;
+ },
+ showCreateHandle() {
+ this.showCreatePanel = true;
+ },
+ _initMarker() {
+ this.marker = {
+ id: null,
+ name: '',
+ image: '',
+ scale: 0.25,
+ };
+ },
+ createHandle() {
+ if (!global.map) return;
+ let map = global.map;
+ const { id, image, scale, name } = this.marker;
+ const entity = id && map.getPlotById(id);
+ this.closeCreateHandle();
+ if (entity) {
+ map.updatePlotStyle(id, { image, scale });
+ map.updatePlotAttribute(id, { name });
+ this._initMarker();
+ this.$store.dispatch('map/updateTimestamp');
+ } else {
+ map.startDraw(
+ {
+ type: 'billboard',
+ style: {
+ image,
+ scale,
+ },
+ attr: {
+ name,
+ },
+ },
+ () => {
+ this._initMarker();
+ }
+ );
+ }
+ },
+ toggleVisible() {
+ this.showPlot = !this.showPlot;
+ if (global.map) {
+ this.entities.forEach(entity => {
+ entity.show = this.showPlot;
+ });
+ }
+ this.$store.dispatch('map/updateTimestamp');
+ },
+ focusHandle(markerId) {
+ if (global.map) {
+ const entity = global.map.getPlotById(markerId);
+ if (entity) {
+ global.map.viewer.flyTo(entity, { duration: 1 });
+ }
+ }
+ },
+ clickCreateHandle(url) {
+ if (!global.map) return;
+ global.map.startDraw(
+ {
+ type: 'billboard',
+ style: {
+ image: url,
+ scale: 0.25,
+ },
+ },
+ () => {
+ this.$store.dispatch('map/updateTimestamp');
+ }
+ );
+ },
+ clearHandle() {
+ if (global.map) {
+ this.entities.forEach(entity => {
+ global.map.plotDrawTool.deleteEntity(entity);
+ });
+ }
+ this.$store.dispatch('map/updateTimestamp');
+ },
+ },
+ };
</script>
<style scoped>
-.images img {
- width: 36px;
- height: auto;
- margin: 0px 5px;
- cursor: pointer;
-}
+ .images img {
+ width: 36px;
+ height: auto;
+ margin: 0px 5px;
+ cursor: pointer;
+ }
-.model-panel-list > div {
- margin-bottom: 5px;
- padding: 5px 0 5px 0;
- border-bottom: 1px solid rgba(0, 0, 0, 0.1);
-}
+ .model-panel-list > div {
+ margin-bottom: 5px;
+ padding: 5px 0 5px 0;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ }
-.image-list {
- margin: 20px 0;
-}
+ .image-list {
+ margin: 20px 0;
+ }
-.image-list ul,
-.image-list li {
- margin: 0;
- padding: 0;
- list-style: none;
-}
+ .image-list ul,
+ .image-list li {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ }
-.image-list li {
- display: inline-block;
- margin: 0 5px 5px 5px;
- cursor: pointer;
- padding: 5px 8px;
- border-radius: 3px;
-}
+ .image-list li {
+ display: inline-block;
+ margin: 0 5px 5px 5px;
+ cursor: pointer;
+ padding: 5px 8px;
+ border-radius: 3px;
+ }
-.image-list li img {
- width: 32px;
- height: 32px;
-}
+ .image-list li img {
+ width: 32px;
+ height: 32px;
+ }
-.image-list li:hover,
-.image-list li.active {
- box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.15);
-}
+ .image-list li:hover,
+ .image-list li.active {
+ box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.15);
+ }
</style>
diff --git a/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue b/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue
index f9b28b2..fc79069 100644
--- a/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue
+++ b/src/views/doublePreventAction/hiddenDanger/inspectionRecord/components/detail.vue
@@ -84,6 +84,20 @@
<div v-if="ifNormal">
<el-row>
<el-col :span="24">
+ <el-form-item label="异常通知部门" prop="execDepartment">
+ <el-select v-model="inspectionRecordDetailForm.noticeDepId" filterable clearable class="analyseUnit_input" @change="changeExec">
+ <el-option
+ v-for="item in departmentList"
+ :key="item.id"
+ :value="item.id"
+ :label="item.department"
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="24">
<el-form-item label="异常通知人员" prop="noticeUid">
<el-select v-model="inspectionRecordDetailForm.noticeUid" clearable filterable :disabled="ifShow" class="input">
<el-option
@@ -100,6 +114,20 @@
<el-col :span="24">
<el-form-item label="整改时间" prop="fixTime">
<el-date-picker placeholder="选择时间" v-model="inspectionRecordDetailForm.fixTime" class="input" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" :disabled="ifShow"></el-date-picker>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="异常整改部门" prop="execDepartment">
+ <el-select v-model="inspectionRecordDetailForm.fixDepId" filterable clearable class="analyseUnit_input" @change="changeExec">
+ <el-option
+ v-for="item in departmentList"
+ :key="item.id"
+ :value="item.id"
+ :label="item.department"
+ ></el-option>
+ </el-select>
</el-form-item>
</el-col>
</el-row>
@@ -136,8 +164,8 @@
:headers="header"
:data="uploadForm"
list-type="picture-card"
- :file-list="fileList"
- v-model="inspectionRecordDetailForm.img"
+ :file-list="inspectionRecordDetailForm.imgInfoList"
+ v-model="inspectionRecordDetailForm.imgInfoList"
:on-change="handleChangeFile"
:on-success="onFileSuccess"
:multiple="false"
@@ -212,12 +240,14 @@
execUid: null,
fixTime: null,
fixUid: null,
- img: null,
+ imgInfoList: [],
info: null,
noticeUid: null,
result: 1,
taskId: null,
- unitId: null
+ unitId: null,
+ fixDepId:null,
+ noticeDepId:null,
},
inspectionRecordDetailFormRules:{
img: [{ required: true, validator: validateImg, trigger: 'blur' }],
@@ -279,7 +309,7 @@
this.inspectionRecordDetailForm.fixTime = null
this.inspectionRecordDetailForm.fixUid = null
this.inspectionRecordDetailForm.info = null
- this.inspectionRecordDetailForm.img = null
+ this.inspectionRecordDetailForm.img = []
}
this.$refs["inspectionRecordDetailForm"].validate((valid) =>{
if(valid){
@@ -314,8 +344,7 @@
},
onFileSuccess(response){
if(response.code === '200'){
- this.inspectionRecordDetailForm.img = response.result.path
- this.fileList.push({url:process.env.IMG_API + response.result.path})
+ this.inspectionRecordDetailForm.img.push({url:process.env.IMG_API + response.result.path})
this.$notify({
type:'success',
duration:2000,
@@ -339,8 +368,7 @@
cancelButtonText:'取消',
type:'warning',
}).then(()=> {
- this.inspectionRecordDetailForm.img = null
- this.fileList = []
+
})
},
}
--
Gitblit v1.9.2