From 4462b1bf81d82cf690b16aad2cc0955a7c6e0b01 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Tue, 09 Jan 2024 17:27:14 +0800
Subject: [PATCH] fix:地图
---
src/views/toCarryOutLegislativeReforms/components/locationMap.vue | 125 +++-
src/main.js | 3
src/views/toCarryOutLegislativeReforms/reform/index.vue | 460 ++++++++++++++----
src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue | 325 +++++++++++--
src/App.vue | 1
src/views/toCarryOutLegislativeReforms/components/workOrderInformation.vue | 485 ++++++++++++++++---
6 files changed, 1,107 insertions(+), 292 deletions(-)
diff --git a/src/App.vue b/src/App.vue
index 3336e60..fe89222 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -22,4 +22,5 @@
#app {
height: 100%;
}
+.amap-sug-result { z-index: 99999 !important; }
</style>
diff --git a/src/main.js b/src/main.js
index d4f3b30..2e04d03 100644
--- a/src/main.js
+++ b/src/main.js
@@ -58,7 +58,8 @@
'AMap.MapType',
'AMap.PolyEditor',
'AMap.CircleEditor',
- 'AMap.DistrictSearch'
+ 'AMap.DistrictSearch',
+ 'AMap.Geolocation'
],
// ������������ sdk ��������� 1.4.4
v: '1.4.4'
diff --git a/src/views/toCarryOutLegislativeReforms/components/locationMap.vue b/src/views/toCarryOutLegislativeReforms/components/locationMap.vue
index 847753a..fdda51b 100644
--- a/src/views/toCarryOutLegislativeReforms/components/locationMap.vue
+++ b/src/views/toCarryOutLegislativeReforms/components/locationMap.vue
@@ -7,25 +7,25 @@
width="1000px"
center
:before-close="close"
+ @closed="close"
>
- <div class="searchBox">
- <el-input
- v-model="placeSearch"
- placeholder="���������������"
- class="input-with-select"
- >
- <el-button
- slot="append"
- icon="el-icon-search"
- @click="search"
- />
- </el-input>
- </div>
- <div id="panel" />
<div
v-if="visible"
class="mapBox"
>
+ <div
+ class="searchBox"
+ >
+ <el-input
+ id="tipinput"
+ v-model="placeSearchName"
+ :disabled="$parent.mapType!=='edit'"
+ prefix-icon="el-icon-search"
+ placeholder="���������������"
+ class="input-with-select"
+ @keyup.enter.native="searchPlace"
+ />
+ </div>
<div id="mapd" />
</div>
</el-dialog>
@@ -41,7 +41,11 @@
return {
title: '������������',
map: null,
- placeSearch: null
+ geolocation: null,
+ marker: null,
+ placeSearchName: null,
+ mapPlaceSearch: null,
+ position: []
}
},
mounted () {
@@ -61,37 +65,71 @@
resizeEnable: true,
zooms: [3, 18],
zoom: 15,
- center: [120.9781494, 31.4265156]
})
this.map = map
-
- const lnglat = new AMap.LngLat('120.9781494', '31.4265156')
- const marker = new AMap.Marker({
- position: lnglat
- })
-
- // ������������������������������������������������������
- marker.setAnimation('AMAP_ANIMATION_BOUNCE')
- marker.setMap(this.map)
- AMap.service(['AMap.PlaceSearch'], function () {
- // ���������������������
- var placeSearch = new AMap.PlaceSearch({
- pageSize: 5, // ������������������������
- pageIndex: 1, // ������
- city: '010', // ���������������
- citylimit: true, // ���������������������������������������������
- map: map, // ���������������������������
- panel: 'panel', // ���������������������������������������������
- autoFitView: true // ������������������������������������������ Marker���������������������������������
+ let that = this
+ AMap.plugin(['AMap.Autocomplete', 'AMap.PlaceSearch'], function () {
+ // ���������Autocomplete
+ let autoOptions = {
+ // city ���������������������������
+ city: '������',
+ input: 'tipinput',
+ }
+ that.mapPlaceSearch = new AMap.PlaceSearch({
+ map: map,
})
- // ���������������
- placeSearch.search('������������')
+ // that.geolocation = new AMap.Geolocation({})
+ let autoComplete = new AMap.Autocomplete(autoOptions)
+ AMap.event.addListener(autoComplete, 'select', function (e) {
+ that.map.clearMap()
+ that.mapPlaceSearch.search(e.poi.name)
+ })
+ AMap.event.addListener(that.mapPlaceSearch, 'markerClick', function (e) {
+ that.position = [e.data.location.lng, e.data.location.lat]
+ this.placeSearchName = e.data.cityname + e.data.adname + e.data.address
+ console.log(e)
+ console.log(this.placeSearchName)
+ document.getElementById('tipinput').value = e.data.name
+ })
+ })
+ if (this.$parent.mapType === 'edit') {
+ map.on('click', function (ev) {
+ that.map.clearMap()
+ that.position = [ev.lnglat.lng, ev.lnglat.lat]
+ that.marker = new AMap.Marker({
+ position: that.position,
+ offset: new AMap.Pixel(-13, -30)
+ })
+ that.marker.setMap(map)
+ that.getAddress(that.position)
+ })
+ } else {
+ this.map.clearMap()
+ let marker = new AMap.Marker({
+ map: map,
+ position: this.$parent.position
+ })
+ marker.setMap(map)
+ marker.setAnimation('AMAP_ANIMATION_BOUNCE')
+ this.placeSearchName = this.$parent.address
+ }
+ },
+ getAddress (position) {
+ AMap.plugin('AMap.Geocoder', () => {
+ const geocoder = new AMap.Geocoder({})
+ geocoder.getAddress(position, (status, result) => {
+ if (status === 'complete' && result.info === 'OK') {
+ this.placeSearchName = result.regeocode.formattedAddress
+ }
+ })
})
},
- search () {
- let this_ = this
+ searchPlace () {
+ this.mapPlaceSearch.search(this.placeSearchName)
},
close () {
+ this.map.destroy()
+ this.$emit('addressAndLnt', this.position, this.placeSearchName)
this.$emit('update:visible', false)
}
}
@@ -101,13 +139,16 @@
<style scoped lang="scss">
/deep/.el-dialog__body {
height: 600px;
- .searchBox {
- margin-bottom: 10px;
- }
.mapBox {
width: 100%;
height: 100%;
padding-bottom: 30px;
+ position: relative;
+ .searchBox{
+ position: absolute;
+ z-index: 100;
+ width: 100%;
+ }
}
}
#mapd {
diff --git a/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue b/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue
index 8781c41..7430bde 100644
--- a/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue
+++ b/src/views/toCarryOutLegislativeReforms/components/newWorkOrder.vue
@@ -1,120 +1,322 @@
<template>
<div>
- <el-dialog :title="title" :visible.sync="visible" top="30px" width="900px" center :before-close="close">
- <div slot="title" class="titBox">
+ <el-dialog
+ :title="title"
+ :visible.sync="visible"
+ top="30px"
+ width="900px"
+ center
+ :before-close="close"
+ >
+ <div
+ slot="title"
+ class="titBox"
+ >
<div>{{ parentFormData.allocationNum }}</div>
<div>{{ title }}</div>
</div>
<div>
- <el-form ref="ruleForm" :disabled="pageState === 'detail'" label-width="120px" :model="formData" class="demo-form-inline" :rules="rules">
+ <el-form
+ ref="ruleForm"
+ :disabled="pageState === 'detail'"
+ label-width="120px"
+ :model="formData"
+ class="demo-form-inline"
+ :rules="rules"
+ >
<el-row>
<el-col :span="12">
- <el-form-item label="���������������" prop="escalationTime" class="span">
- <el-date-picker v-model="formData.escalationTime" value-format="yyyy-MM-dd" size="small" type="date" placeholder="������������" />
+ <el-form-item
+ label="���������������"
+ prop="escalationTime"
+ class="span"
+ >
+ <el-date-picker
+ v-model="formData.escalationTime"
+ value-format="yyyy-MM-dd"
+ size="small"
+ type="date"
+ placeholder="������������"
+ />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="���������������" prop="pollutePosition" class="span">
- <el-input v-model="formData.pollutePosition" type="text" placeholder="���������" size="small" />
+ <el-form-item
+ label="���������������"
+ prop="pollutePosition"
+ class="span"
+ >
+ <!-- el-icon-map-location -->
+ <el-input
+ v-model="formData.pollutePosition"
+ type="text"
+ placeholder="���������"
+ size="small"
+ >
+ <template
+ slot="append"
+ >
+ <div
+ style="line-height: 2;"
+ @click="toMap()"
+ >
+ ������
+ </div>
+ </template>
+ </el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
- <el-form-item label="���������������" prop="unitId" class="span">
- <el-select v-model="formData.unitId" placeholder="���������" size="small">
- <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
+ <el-form-item
+ label="���������������"
+ prop="unitId"
+ class="span"
+ >
+ <el-select
+ v-model="formData.unitId"
+ placeholder="���������"
+ size="small"
+ >
+ <el-option
+ v-for="item in unitList"
+ :key="item.unitId"
+ :label="item.unitName"
+ :value="item.unitId"
+ />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="���������������" prop="polluteType" class="span">
- <el-select v-model="formData.polluteType" placeholder="���������" size="small">
- <el-option v-for="item in polluteList" :key="item.dataKey" :label="item.dataValue" :value="item.dataKey" />
+ <el-form-item
+ label="���������������"
+ prop="polluteType"
+ class="span"
+ >
+ <el-select
+ v-model="formData.polluteType"
+ placeholder="���������"
+ size="small"
+ >
+ <el-option
+ v-for="item in polluteList"
+ :key="item.dataKey"
+ :label="item.dataValue"
+ :value="item.dataKey"
+ />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
- <el-form-item label="���������������" prop="changeType" class="span">
- <el-select v-model="formData.changeType" placeholder="���������" size="small" @change="changeEnumList">
- <el-option v-for="item in Dic.changeEnum" :key="item.value" :label="item.name" :value="item.value" />
+ <el-form-item
+ label="���������������"
+ prop="changeType"
+ class="span"
+ >
+ <el-select
+ v-model="formData.changeType"
+ placeholder="���������"
+ size="small"
+ @change="changeEnumList"
+ >
+ <el-option
+ v-for="item in Dic.changeEnum"
+ :key="item.value"
+ :label="item.name"
+ :value="item.value"
+ />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="���������������" prop="changeDay" class="span">
- <el-input-number v-model="formData.changeDay" :disabled="formData.changeType === 1" :min="0" label="���������" />
+ <el-form-item
+ label="���������������"
+ prop="changeDay"
+ class="span"
+ >
+ <el-input-number
+ v-model="formData.changeDay"
+ :disabled="formData.changeType === 1"
+ :min="0"
+ label="���������"
+ />
<!-- <el-input v-model.number="formData.changeDay" :disabled="formData.changeType===1" type="text" placeholder="���������" size="small" /> -->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
- <el-form-item label="���������������" prop="escalationUnitId" class="span">
- <el-select v-model="formData.escalationUnitId" placeholder="���������" size="small">
- <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
+ <el-form-item
+ label="���������������"
+ prop="escalationUnitId"
+ class="span"
+ >
+ <el-select
+ v-model="formData.escalationUnitId"
+ placeholder="���������"
+ size="small"
+ >
+ <el-option
+ v-for="item in unitList"
+ :key="item.unitId"
+ :label="item.unitName"
+ :value="item.unitId"
+ />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="������������" prop="escalationName" class="span">
- <el-input v-model="formData.escalationName" type="text" placeholder="���������" size="small" />
+ <el-form-item
+ label="������������"
+ prop="escalationName"
+ class="span"
+ >
+ <el-input
+ v-model="formData.escalationName"
+ type="text"
+ placeholder="���������"
+ size="small"
+ />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
- <el-form-item label="���������������" prop="investigationType" class="span">
- <el-radio-group v-model="formData.investigationType" size="small">
- <el-radio v-for="item in Dic.investigationEnum" :key="item.value" :label="item.value">{{ item.name }}</el-radio>
+ <el-form-item
+ label="���������������"
+ prop="investigationType"
+ class="span"
+ >
+ <el-radio-group
+ v-model="formData.investigationType"
+ size="small"
+ >
+ <el-radio
+ v-for="item in Dic.investigationEnum"
+ :key="item.value"
+ :label="item.value"
+ >
+ {{ item.name }}
+ </el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
- <el-form-item label="���������������" prop="keyPointlist" class="span">
- <el-radio-group v-model="formData.keyPoint" size="small">
- <el-radio v-for="item in Dic.emphasisEnum" :key="item.value" :label="item.value">{{ item.name }}</el-radio>
+ <el-form-item
+ label="���������������"
+ prop="keyPointlist"
+ class="span"
+ >
+ <el-radio-group
+ v-model="formData.keyPoint"
+ size="small"
+ >
+ <el-radio
+ v-for="item in Dic.emphasisEnum"
+ :key="item.value"
+ :label="item.value"
+ >
+ {{ item.name }}
+ </el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
- <el-form-item label="���������������" prop="problemDescribe" class="span">
- <el-input v-model="formData.problemDescribe" type="textarea" :rows="4" placeholder="���������������" />
+ <el-form-item
+ label="���������������"
+ prop="problemDescribe"
+ class="span"
+ >
+ <el-input
+ v-model="formData.problemDescribe"
+ type="textarea"
+ :rows="4"
+ placeholder="���������������"
+ />
</el-form-item>
</el-row>
<el-row>
<el-form-item label="���������">
<div>
<div v-if="pageState === 'edit'">
- <div v-for="(file, index) in fileBaseListCover" :key="file.fileId + index" class="block">
- <el-image v-if="file.fileType === 1" style="width: 100px; height: 100px" :src="file.url" :preview-src-list="
+ <div
+ v-for="(file, index) in fileBaseListCover"
+ :key="file.fileId + index"
+ class="block"
+ >
+ <el-image
+ v-if="file.fileType === 1"
+ style="width: 100px; height: 100px"
+ :src="file.url"
+ :preview-src-list="
getPreviewImages(file.fileId, fileBaseList)
- " :initial-index="index" />
- <video v-else :src="file.url" style="width: 100px; height: 100px" @click="openVideo(file)">
+ "
+ :initial-index="index"
+ />
+ <video
+ v-else
+ :src="file.url"
+ style="width: 100px; height: 100px"
+ @click="openVideo(file)"
+ >
������������������������ video ���������
</video>
</div>
</div>
</div>
- <uploadFile v-if="pageState !== 'detail'" :upload-url="uploadTermExcelUrl" :sys-code="sysCode" />
+ <uploadFile
+ v-if="pageState !== 'detail'"
+ :upload-url="uploadTermExcelUrl"
+ :sys-code="sysCode"
+ />
</el-form-item>
</el-row>
</el-form>
</div>
- <div slot="footer" class="dialog-footer">
- <el-button @click="close">������</el-button>
- <el-button v-if="pageState !== 'detail'" type="info" @click="handleSubmit('9')">������</el-button>
- <el-button v-if="pageState !== 'detail'" type="primary" @click="handleSubmit('10')">������</el-button>
+ <div
+ slot="footer"
+ class="dialog-footer"
+ >
+ <el-button @click="close">
+ ������
+ </el-button>
+ <el-button
+ v-if="pageState !== 'detail'"
+ type="info"
+ @click="handleSubmit('9')"
+ >
+ ������
+ </el-button>
+ <el-button
+ v-if="pageState !== 'detail'"
+ type="primary"
+ @click="handleSubmit('10')"
+ >
+ ������
+ </el-button>
</div>
</el-dialog>
- <el-dialog :visible.sync="videoVisible" width="600px" :modal-append-to-body="false" :destroy-on-close="true" @close="handleCancel">
+ <el-dialog
+ :visible.sync="videoVisible"
+ width="600px"
+ :modal-append-to-body="false"
+ :destroy-on-close="true"
+ @close="handleCancel"
+ >
<div style="text-align: center">
- <video ref="video" style="width: 300px; height: 500px" :src="dialogImageUrl" controls autoplay />
+ <video
+ ref="video"
+ style="width: 300px; height: 500px"
+ :src="dialogImageUrl"
+ controls
+ autoplay
+ />
</div>
</el-dialog>
</div>
@@ -130,10 +332,11 @@
props: {
title: { type: String, default: '' },
visible: { type: Boolean, required: true },
+ isToMap: { type: Boolean, required: true, default: false },
pageState: { type: String, required: true, default: 'add' },
parentFormData: { type: Object, default: () => {} }
},
- data() {
+ data () {
return {
videoVisible: false,
formData: {
@@ -146,7 +349,8 @@
escalationName: '',
keyPoint: 0,
changeDay: 0,
- investigationType: 1
+ investigationType: 1,
+ pollutePosition: ''
},
fileBaseList: [],
fileBaseListCover: [],
@@ -188,13 +392,13 @@
}
},
computed: {
- uploadTermExcelUrl() {
+ uploadTermExcelUrl () {
return `${requestObj.baseUrl}/file/upload`
}
},
watch: {
pageState: {
- handler(newVal) {
+ handler (newVal) {
if (this.pageState === 'edit') {
if (
this.parentFormData.fileBaseList &&
@@ -226,7 +430,7 @@
immediate: true
}
},
- async created() {
+ async created () {
this.getUnitList()
console.log('oldValue', this.parentFormData)
@@ -244,10 +448,13 @@
})
},
methods: {
- changeKeyPoint(data) {
+ toMap () {
+ this.$emit('update:isToMap', true)
+ },
+ changeKeyPoint (data) {
this.$forceUpdate()
},
- getPreviewImages(index, list) {
+ getPreviewImages (index, list) {
let startIndex = 0
const chechList = _.cloneDeep(list)
chechList.forEach((item, i) => {
@@ -266,22 +473,22 @@
var remain = imgList.splice(0, startIndex)
return start.concat(remain)
},
- openVideo(item) {
+ openVideo (item) {
console.log('item', item)
this.dialogImageUrl = item.url
this.videoVisible = true
},
- handleCancel() {
+ handleCancel () {
this.dialogImageUrl = ''
this.videoVisible = false
},
- changeEnumList(val) {
+ changeEnumList (val) {
if (val === 1) {
this.formData.changeDay = 0
}
},
// ������������������list
- getUnitList() {
+ getUnitList () {
this.$request({
url: '/allocation/unit',
method: 'get'
@@ -290,7 +497,7 @@
this.getContaminateList()
})
},
- getContaminateList() {
+ getContaminateList () {
this.$request({
url: '/allocation/contaminate',
method: 'get'
@@ -310,13 +517,13 @@
}
})
},
- close() {
+ close () {
this.$nextTick(function () {
this.$refs.ruleForm.resetFields()
})
this.$emit('update:visible', false)
},
- handleSubmit(val) {
+ handleSubmit (val) {
console.log('this.formData', this.formData)
if (this.fileBaseListCover && this.fileBaseListCover.length > 0) {
this.fileBaseListCover.forEach(item => {
@@ -386,4 +593,10 @@
/deep/.el-checkbox__inner {
border-radius: 50%;
}
+/deep/.el-input-group__append {
+ width: 60px !important;
+ padding: 0;
+ text-align: center;
+ cursor: pointer;
+}
</style>
diff --git a/src/views/toCarryOutLegislativeReforms/components/workOrderInformation.vue b/src/views/toCarryOutLegislativeReforms/components/workOrderInformation.vue
index f67231a..2ee73ab 100644
--- a/src/views/toCarryOutLegislativeReforms/components/workOrderInformation.vue
+++ b/src/views/toCarryOutLegislativeReforms/components/workOrderInformation.vue
@@ -1,37 +1,137 @@
<template>
<div>
- <el-dialog :title="dialogData.title" top="30px" :visible.sync="visible" width="900px" center :before-close="close">
- <div slot="title" class="titBox">
+ <el-dialog
+ :title="dialogData.title"
+ top="30px"
+ :visible.sync="visible"
+ width="900px"
+ center
+ :before-close="close"
+ >
+ <div
+ slot="title"
+ class="titBox"
+ >
<div>{{ parentFormData.allocationNum }}</div>
<div>{{ dialogData.title }}</div>
</div>
<div>
- <div v-if="dialogData.pageType !=='delay'" class="stepsList">
- <el-steps :space="200" :active="activeLeng" align-center>
- <el-step v-for="(item,index) in setepList" :key="index" :title="'' + item.createName + ' ' + item.stateName" :description="item.createTime" />
+ <div
+ v-if="dialogData.pageType !=='delay'"
+ class="stepsList"
+ >
+ <el-steps
+ :space="200"
+ :active="activeLeng"
+ align-center
+ >
+ <el-step
+ v-for="(item,index) in setepList"
+ :key="index"
+ :title="'' + item.createName + ' ' + item.stateName"
+ :description="item.createTime"
+ />
</el-steps>
</div>
<div class="inforData">
- <el-descriptions title="������������" :column="parseInt('4')">
- <el-descriptions-item label="������������" label-class-name="itemSpan">{{ parentFormData.escalationTime }}</el-descriptions-item>
- <el-descriptions-item label="������������" label-class-name="itemSpan">{{ unitIdFormatter }}</el-descriptions-item>
- <el-descriptions-item label="������������" label-class-name="itemSpan">{{ polluteTypeFormatter }}</el-descriptions-item>
- <el-descriptions-item label="������������" label-class-name="itemSpan">{{ dictObj.changeEnum[parentFormData.changeType] }}</el-descriptions-item>
- <el-descriptions-item label="������������" label-class-name="itemSpan">{{ parentFormData.changeDay }}</el-descriptions-item>
- <el-descriptions-item label="������������" label-class-name="itemSpan">{{ updataUnitIdFormatter }}</el-descriptions-item>
- <el-descriptions-item label="���������" label-class-name="itemSpan">{{ parentFormData.escalationName }}</el-descriptions-item>
+ <el-descriptions
+ title="������������"
+ >
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
+ {{ parentFormData.escalationTime }}
+ </el-descriptions-item>
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
+ {{ unitIdFormatter }}
+ </el-descriptions-item>
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
+ {{ polluteTypeFormatter }}
+ </el-descriptions-item>
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
+ {{ dictObj.changeEnum[parentFormData.changeType] }}
+ </el-descriptions-item>
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
+ {{ parentFormData.changeDay }}
+ </el-descriptions-item>
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
+ {{ updataUnitIdFormatter }}
+ </el-descriptions-item>
+ <el-descriptions-item
+ label="���������"
+ label-class-name="itemSpan"
+ >
+ {{ parentFormData.escalationName }}
+ </el-descriptions-item>
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
+ {{ dictObj.emphasisEnum[parentFormData.keyPoint] }}
+ </el-descriptions-item>
</el-descriptions>
- <el-descriptions :column="parseInt('2')">
- <el-descriptions-item label="������������" label-class-name="itemSpan">{{ parentFormData.pollutePosition }}</el-descriptions-item>
- <el-descriptions-item label="������������" label-class-name="itemSpan">{{ dictObj.emphasisEnum[parentFormData.keyPoint] }}</el-descriptions-item>
+ <el-descriptions>
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
+ {{ parentFormData.pollutePosition }}
+ <i
+ v-if="parentFormData.latitude&&parentFormData.longitude"
+ style="color:#409EFF;margin-left:10px;font-size:18px;cursor:pointer"
+ class="el-icon-location-outline"
+ @click="toMap"
+ />
+ </el-descriptions-item>
</el-descriptions>
<el-descriptions :column="parseInt('1')">
- <el-descriptions-item label="������������" label-class-name="itemSpan" :content-style="{'width': '80%'}">{{ parentFormData.problemDescribe }}</el-descriptions-item>
- <el-descriptions-item label="������" label-class-name="itemSpan" :content-style="{'width': '80%'}">
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ :content-style="{'width': '80%'}"
+ >
+ {{ parentFormData.problemDescribe }}
+ </el-descriptions-item>
+ <el-descriptions-item
+ label="������"
+ label-class-name="itemSpan"
+ :content-style="{'width': '80%'}"
+ >
<div>
- <div v-for="(file,index) in fileBaseListCover" :key="file.id+index" class="block">
- <el-image v-if="file.fileType ===1" style="width: 100px; height: 100px" :src="file.url" :preview-src-list="getPreviewImages(file.id,fileBaseList)" :initial-index="index" />
- <video v-else :src="file.url" style="width: 100px; height: 100px" @click="openVideo(file)">
+ <div
+ v-for="(file,index) in fileBaseListCover"
+ :key="file.id+index"
+ class="block"
+ >
+ <el-image
+ v-if="file.fileType ===1"
+ style="width: 100px; height: 100px"
+ :src="file.url"
+ :preview-src-list="getPreviewImages(file.id,fileBaseList)"
+ :initial-index="index"
+ />
+ <video
+ v-else
+ :src="file.url"
+ style="width: 100px; height: 100px"
+ @click="openVideo(file)"
+ >
������������������������ video ���������
</video>
</div>
@@ -40,29 +140,50 @@
</el-descriptions>
</div>
<!-- ������������������ -->
- <div v-if="dialogData.pageType ==='work'" class="rectification">
+ <div
+ v-if="dialogData.pageType ==='work'"
+ class="rectification"
+ >
<div>
- <el-form label-width="90px" class="demo-form-inline">
+ <el-form
+ label-width="90px"
+ class="demo-form-inline"
+ >
<div style="display: flex;">
<el-form-item label="������������:">
<el-radio-group v-model="workForme.isChange">
- <el-radio :label="1">���</el-radio>
- <el-radio :label="0">���</el-radio>
+ <el-radio :label="1">
+ ���
+ </el-radio>
+ <el-radio :label="0">
+ ���
+ </el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="���������:">
- <el-input v-model="workForme.changeName" size="mini" placeholder="������������������" />
+ <el-input
+ v-model="workForme.changeName"
+ size="mini"
+ placeholder="������������������"
+ />
</el-form-item>
</div>
<el-form-item label="������������:">
- <el-input v-model="workForme.changeDescribe" type="textarea" :autosize="{ minRows: 2, maxRows: 4}" placeholder="���������������" />
+ <el-input
+ v-model="workForme.changeDescribe"
+ type="textarea"
+ :autosize="{ minRows: 2, maxRows: 4}"
+ placeholder="���������������"
+ />
</el-form-item>
<el-row>
<el-form-item label="������:">
- <uploadFile :upload-url="uploadTermExcelUrl" :sys-code="dialogData.sysCode" />
+ <uploadFile
+ :upload-url="uploadTermExcelUrl"
+ :sys-code="dialogData.sysCode"
+ />
</el-form-item>
</el-row>
-
</el-form>
</div>
</div>
@@ -71,26 +192,62 @@
<el-row class="rectificationContent">
<el-col :span="12">
<div class="grid-content bg-purple" />
- <el-descriptions title="������������" :column="parseInt('2')">
- <el-descriptions-item label="������������" label-class-name="itemSpan">{{ dictObj.yesOrNo[parentFormData.isChange] }}</el-descriptions-item>
- <el-descriptions-item label="���������" label-class-name="itemSpan">{{ parentFormData.changeName }}</el-descriptions-item>
+ <el-descriptions
+ title="������������"
+ :column="parseInt('2')"
+ >
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
+ {{ dictObj.yesOrNo[parentFormData.isChange] }}
+ </el-descriptions-item>
+ <el-descriptions-item
+ label="���������"
+ label-class-name="itemSpan"
+ >
+ {{ parentFormData.changeName }}
+ </el-descriptions-item>
</el-descriptions>
<el-descriptions :column="parseInt('1')">
- <el-descriptions-item label="������������" label-class-name="itemSpan">{{ parentFormData.changeDescribe }}</el-descriptions-item>
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
+ {{ parentFormData.changeDescribe }}
+ </el-descriptions-item>
</el-descriptions>
</el-col>
<el-col :span="12">
<div class="grid-content bg-purple-light" />
<el-row>
- <el-col :span="3" style="margin-top: 40px;font-size: 15px;color: #101010;">
+ <el-col
+ :span="3"
+ style="margin-top: 40px;font-size: 15px;color: #101010;"
+ >
<div class="grid-content bg-purple" />���������
</el-col>
<el-col :span="21">
<div class="grid-content bg-purple-light" />
<div>
- <div v-for="(file,index) in fileChangeListCover" :key="file.id+index" class="block">
- <el-image v-if="file.fileType ===1" style="width: 100px; height: 100px" :src="file.url" :preview-src-list="getPreviewImages(file.id,fileChangeList)" :initial-index="index" />
- <video v-else :src="file.url" style="width: 100px; height: 100px" @click="openVideo(file)">
+ <div
+ v-for="(file,index) in fileChangeListCover"
+ :key="file.id+index"
+ class="block"
+ >
+ <el-image
+ v-if="file.fileType ===1"
+ style="width: 100px; height: 100px"
+ :src="file.url"
+ :preview-src-list="getPreviewImages(file.id,fileChangeList)"
+ :initial-index="index"
+ />
+ <video
+ v-else
+ :src="file.url"
+ style="width: 100px; height: 100px"
+ @click="openVideo(file)"
+ >
������������������������ video ���������
</video>
</div>
@@ -105,26 +262,57 @@
<el-row class="rectificationContent">
<el-col :span="12">
<div class="grid-content bg-purple" />
- <el-descriptions title="������������" :column="2">
- <el-descriptions-item label="������������" label-class-name="itemSpan">{{ parentFormData.checkScore }}</el-descriptions-item>
+ <el-descriptions
+ title="������������"
+ :column="2"
+ >
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
+ {{ parentFormData.checkScore }}
+ </el-descriptions-item>
</el-descriptions>
<el-descriptions :column="1">
- <el-descriptions-item label="������" label-class-name="itemSpan">{{ parentFormData.checkDescribe }}</el-descriptions-item>
+ <el-descriptions-item
+ label="������"
+ label-class-name="itemSpan"
+ >
+ {{ parentFormData.checkDescribe }}
+ </el-descriptions-item>
</el-descriptions>
</el-col>
<el-col :span="12">
<div class="grid-content bg-purple-light" />
<el-row>
- <el-col :span="3" style="margin-top: 40px;font-size: 15px;color: #101010;">
+ <el-col
+ :span="3"
+ style="margin-top: 40px;font-size: 15px;color: #101010;"
+ >
<div class="grid-content bg-purple" />���������
</el-col>
<el-col :span="21">
<div class="grid-content bg-purple-light" />
<div>
<div>
- <div v-for="(file,index) in fileApproveListCover" :key="file.id+index" class="block">
- <el-image v-if="file.fileType ===1" style="width: 100px; height: 100px" :src="file.url" :preview-src-list="getPreviewImages(file.id,fileApproveList)" :initial-index="index" />
- <video v-else :src="file.url" style="width: 100px; height: 100px" @click="openVideo(file)">
+ <div
+ v-for="(file,index) in fileApproveListCover"
+ :key="file.id+index"
+ class="block"
+ >
+ <el-image
+ v-if="file.fileType ===1"
+ style="width: 100px; height: 100px"
+ :src="file.url"
+ :preview-src-list="getPreviewImages(file.id,fileApproveList)"
+ :initial-index="index"
+ />
+ <video
+ v-else
+ :src="file.url"
+ style="width: 100px; height: 100px"
+ @click="openVideo(file)"
+ >
������������������������ video ���������
</video>
</div>
@@ -140,23 +328,54 @@
<el-row class="rectificationContent">
<el-col :span="12">
<div class="grid-content bg-purple" />
- <el-descriptions title="������������" :column="1">
- <el-descriptions-item label="������������" label-class-name="itemSpan">{{ parentFormData.extensionNum }}</el-descriptions-item>
- <el-descriptions-item label="������������" label-class-name="itemSpan">{{ parentFormData.remake }}</el-descriptions-item>
+ <el-descriptions
+ title="������������"
+ :column="1"
+ >
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
+ {{ parentFormData.extensionNum }}
+ </el-descriptions-item>
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
+ {{ parentFormData.remake }}
+ </el-descriptions-item>
</el-descriptions>
</el-col>
<el-col :span="12">
<div class="grid-content bg-purple-light" />
<el-row>
- <el-col :span="3" style="margin-top: 40px;font-size: 15px;color: #101010;">
+ <el-col
+ :span="3"
+ style="margin-top: 40px;font-size: 15px;color: #101010;"
+ >
<div class="grid-content bg-purple" />���������
</el-col>
<el-col :span="21">
<div class="grid-content bg-purple-light" />
<div>
- <div v-for="(file,index) in fileDelayListCover" :key="file.id+index" class="block">
- <el-image v-if="file.fileType ===1" style="width: 100px; height: 100px" :src="file.url" :preview-src-list="getPreviewImages(file.id,fileDelayList)" :initial-index="index" />
- <video v-else :src="file.url" style="width: 100px; height: 100px" @click="openVideo(file)">
+ <div
+ v-for="(file,index) in fileDelayListCover"
+ :key="file.id+index"
+ class="block"
+ >
+ <el-image
+ v-if="file.fileType ===1"
+ style="width: 100px; height: 100px"
+ :src="file.url"
+ :preview-src-list="getPreviewImages(file.id,fileDelayList)"
+ :initial-index="index"
+ />
+ <video
+ v-else
+ :src="file.url"
+ style="width: 100px; height: 100px"
+ @click="openVideo(file)"
+ >
������������������������ video ���������
</video>
</div>
@@ -167,47 +386,131 @@
</el-row>
</div>
<!-- ������������ -->
- <div v-if="dialogData.pageType ==='approve'" class="examineAndApprove">
- <el-form label-width="90px" :model="rectificationFromData" class="demo-form-inline">
+ <div
+ v-if="dialogData.pageType ==='approve'"
+ class="examineAndApprove"
+ >
+ <el-form
+ label-width="90px"
+ :model="rectificationFromData"
+ class="demo-form-inline"
+ >
<el-form-item label="������������:">
- <el-input v-model="approveForm.checkScore" style="width: 120px;" size="mini" />
+ <el-input
+ v-model="approveForm.checkScore"
+ style="width: 120px;"
+ size="mini"
+ />
</el-form-item>
<el-form-item label="������:">
- <el-input v-model="approveForm.checkDescribe" type="textarea" :autosize="{ minRows: 2, maxRows: 4}" placeholder="���������������" />
+ <el-input
+ v-model="approveForm.checkDescribe"
+ type="textarea"
+ :autosize="{ minRows: 2, maxRows: 4}"
+ placeholder="���������������"
+ />
</el-form-item>
<el-form-item label="������:">
- <uploadFile :upload-url="uploadTermExcelUrl" :sys-code="dialogData.sysCode" />
+ <uploadFile
+ :upload-url="uploadTermExcelUrl"
+ :sys-code="dialogData.sysCode"
+ />
</el-form-item>
</el-form>
</div>
<!-- ������������ -->
- <div v-if="dialogData.pageType ==='delay' && ( dialogData.pageState ==='approve')" class="examineAndApprove">
- <el-form label-width="90px" :model="rectificationFromData" class="demo-form-inline">
+ <div
+ v-if="dialogData.pageType ==='delay' && ( dialogData.pageState ==='approve')"
+ class="examineAndApprove"
+ >
+ <el-form
+ label-width="90px"
+ :model="rectificationFromData"
+ class="demo-form-inline"
+ >
<el-form-item label="������������:">
- <el-input v-model="delayForm.extensionNum" style="width: 200px;" />
+ <el-input
+ v-model="delayForm.extensionNum"
+ style="width: 200px;"
+ />
</el-form-item>
<el-form-item label="������������:">
- <el-input v-model="delayForm.remake" type="textarea" :autosize="{ minRows: 2, maxRows: 4}" placeholder="���������������" />
+ <el-input
+ v-model="delayForm.remake"
+ type="textarea"
+ :autosize="{ minRows: 2, maxRows: 4}"
+ placeholder="���������������"
+ />
</el-form-item>
<el-form-item label="������:">
- <uploadFile :upload-url="uploadTermExcelUrl" :sys-code="dialogData.sysCode" />
+ <uploadFile
+ :upload-url="uploadTermExcelUrl"
+ :sys-code="dialogData.sysCode"
+ />
</el-form-item>
</el-form>
</div>
</div>
- <el-alert v-if="parentFormData.isInvalid===1" title="���������" type="warning" show-icon :description="`���������${parentFormData.invalidReason}`" :closable="false">
- </el-alert>
- <div slot="footer" class="dialog-footer">
- <el-button @click="close()">������</el-button>
- <el-button v-if="dialogData.pageType ==='approve'" type="danger" @click="handleSubmit(50)">������</el-button>
- <el-button v-if="dialogData.pageType ==='delay'&& dialogData.pageState ==='edit'" type="danger" @click="handleDelaySubmit(50)">������</el-button>
- <el-button v-if="dialogData.pageType ==='delay'&& dialogData.pageState ==='edit'" type="primary" @click="handleDelaySubmit(40)">������</el-button>
- <el-button v-if="dialogData.pageType !=='detail'&& dialogData.pageState ==='approve'" type="primary" @click="handleSubmit(40)">������</el-button>
+ <el-alert
+ v-if="parentFormData.isInvalid===1"
+ title="���������"
+ type="warning"
+ show-icon
+ :description="`���������${parentFormData.invalidReason}`"
+ :closable="false"
+ />
+ <div
+ slot="footer"
+ class="dialog-footer"
+ >
+ <el-button @click="close()">
+ ������
+ </el-button>
+ <el-button
+ v-if="dialogData.pageType ==='approve'"
+ type="danger"
+ @click="handleSubmit(50)"
+ >
+ ������
+ </el-button>
+ <el-button
+ v-if="dialogData.pageType ==='delay'&& dialogData.pageState ==='edit'"
+ type="danger"
+ @click="handleDelaySubmit(50)"
+ >
+ ������
+ </el-button>
+ <el-button
+ v-if="dialogData.pageType ==='delay'&& dialogData.pageState ==='edit'"
+ type="primary"
+ @click="handleDelaySubmit(40)"
+ >
+ ������
+ </el-button>
+ <el-button
+ v-if="dialogData.pageType !=='detail'&& dialogData.pageState ==='approve'"
+ type="primary"
+ @click="handleSubmit(40)"
+ >
+ ������
+ </el-button>
</div>
</el-dialog>
- <el-dialog :visible.sync="videoVisible" width="600px" :modal-append-to-body="false" :destroy-on-close="true" @close="handleCancel">
+ <el-dialog
+ :visible.sync="videoVisible"
+ width="600px"
+ :modal-append-to-body="false"
+ :destroy-on-close="true"
+ @close="handleCancel"
+ >
<div style="text-align: center;">
- <video ref="video" style="width: 300px;height: 500px" :src="dialogImageUrl" controls autoplay />
+ <video
+ ref="video"
+ style="width: 300px;height: 500px"
+ :src="dialogImageUrl"
+ controls
+ autoplay
+ />
</div>
</el-dialog>
</div>
@@ -224,10 +527,11 @@
uploadFile
},
props: {
+ isToMap: { type: Boolean, required: true, default: false },
dialogData: { type: Object, default: () => {} },
visible: { type: Boolean, required: true }
},
- data() {
+ data () {
return {
centerDialogVisible: true,
workForme: {
@@ -277,11 +581,11 @@
}
},
computed: {
- uploadTermExcelUrl() {
+ uploadTermExcelUrl () {
return `${requestObj.baseUrl}/file/upload`
},
- parentFormData() {
- console.log('parentFormData.approveList', this.dialogData.parentFormData)
+ parentFormData () {
+ console.log('parentFormData.approveList', this.dialogData)
return this.dialogData.parentFormData
},
updataUnitIdFormatter: function () {
@@ -306,20 +610,22 @@
)
return data ? data.dataValue : ''
},
- setepList() {
+ setepList () {
const leng = this.dialogData.parentFormData.approveList.length
let data = _.cloneDeep(this.dialogData.parentFormData.approveList)
- console.log('setepList', this.dialogData.parentFormData.approveList)
if (leng === 1) {
data = [...data, ...this.setepListAdd.set1]
+ // eslint-disable-next-line vue/no-side-effects-in-computed-properties
this.activeLeng = 1
}
if (leng === 2) {
data = [...data, ...this.setepListAdd.set2]
+ // eslint-disable-next-line vue/no-side-effects-in-computed-properties
this.activeLeng = 2
}
if (leng === 3) {
data = [...data, ...this.setepListAdd.set3]
+ // eslint-disable-next-line vue/no-side-effects-in-computed-properties
this.activeLeng = 4
}
console.log('datadata', data)
@@ -328,14 +634,14 @@
},
watch: {
parentFormData: {
- handler(newVal) {
+ handler (newVal) {
this.searchthisFileList(newVal)
},
deep: true,
immediate: true
}
},
- created() {
+ created () {
const name = this.$store.state.user.name
this.workForme.changeName = name
this.getContaminateList()
@@ -353,7 +659,10 @@
})
},
methods: {
- getPreviewImages(index, list) {
+ toMap () {
+ this.$emit('update:isToMap', true)
+ },
+ getPreviewImages (index, list) {
let startIndex = 0
const chechList = _.cloneDeep(list)
chechList.forEach((item, i) => {
@@ -369,16 +678,16 @@
var remain = imgList.splice(0, startIndex)
return start.concat(remain)
},
- openVideo(item) {
+ openVideo (item) {
console.log('item', item)
this.dialogImageUrl = item.url
this.videoVisible = true
},
- handleCancel() {
+ handleCancel () {
this.dialogImageUrl = ''
this.videoVisible = false
},
- searchthisFileList(newVal) {
+ searchthisFileList (newVal) {
if (newVal.fileBaseList && newVal.fileBaseList.length > 0) {
newVal.fileBaseList.forEach(item => {
if (item.fileType === 1) {
@@ -456,11 +765,11 @@
})
}
},
- close() {
+ close () {
this.$emit('update:visible', false)
},
// ������������������list
- getUnitList() {
+ getUnitList () {
this.$request({
url: '/allocation/unit',
method: 'get'
@@ -468,7 +777,7 @@
this.unitList = res.data
})
},
- handleDelaySubmit(state) {
+ handleDelaySubmit (state) {
this.$request({
url: '/allocationExtension/check',
method: 'get',
@@ -485,7 +794,7 @@
}
})
},
- handleSubmit(state) {
+ handleSubmit (state) {
// ������
let api = '/allocation/change'
let data = {}
@@ -527,7 +836,7 @@
}
})
},
- getContaminateList() {
+ getContaminateList () {
this.$request({
url: '/allocation/contaminate',
method: 'get'
diff --git a/src/views/toCarryOutLegislativeReforms/reform/index.vue b/src/views/toCarryOutLegislativeReforms/reform/index.vue
index 5f05f20..2019831 100644
--- a/src/views/toCarryOutLegislativeReforms/reform/index.vue
+++ b/src/views/toCarryOutLegislativeReforms/reform/index.vue
@@ -1,17 +1,43 @@
<template>
- <div v-loading="loading" class="main">
+ <div
+ v-loading="loading"
+ class="main"
+ >
<div>
- <searchBar v-if="searchType" :search-type="'reform'" @handleSearch="handleSearchBut" @handleAdd="handleOpenDialog(null, 'add')" />
- <newWorkOrder v-if="centerDialogVisible" ref="newWorkOrder" :isToMap.sync='isToMap' :parent-form-data="parentFormData" :title="title" :page-state="pageState" :visible.sync="centerDialogVisible" @handleSubmit="newHandleSubmit" />
+ <searchBar
+ v-if="searchType"
+ :search-type="'reform'"
+ @handleSearch="handleSearchBut"
+ @handleAdd="handleOpenDialog(null, 'add')"
+ />
+ <newWorkOrder
+ v-if="centerDialogVisible"
+ ref="newWorkOrder"
+ :is-to-map.sync="isToMap"
+ :parent-form-data="parentFormData"
+ :title="title"
+ :page-state="pageState"
+ :visible.sync="centerDialogVisible"
+ @handleSubmit="newHandleSubmit"
+ />
<!-- <el-divider></el-divider> -->
<div class="tab">
<div class="exportBox">
<div>������������</div>
<div>
- <el-button type="primary" size="mini" @click="handleOpenDialog(null, 'add')">
+ <el-button
+ type="primary"
+ size="mini"
+ @click="handleOpenDialog(null, 'add')"
+ >
������
</el-button>
- <el-button :disabled="!(selectionRows.length>0)" type="info" size="mini" @click="isNowDonw">
+ <el-button
+ :disabled="!(selectionRows.length>0)"
+ type="info"
+ size="mini"
+ @click="isNowDonw"
+ >
������
</el-button>
</div>
@@ -20,8 +46,15 @@
<div style="position: relative;">
<div>
<div v-if="sealList.length>0">
- <div v-for="(item,index) in sealList" :key="index" :style="{'height':item.styleHeight}">
- <div v-if="item.isInvalid===1" class="yingzhang">
+ <div
+ v-for="(item,index) in sealList"
+ :key="index"
+ :style="{'height':item.styleHeight}"
+ >
+ <div
+ v-if="item.isInvalid===1"
+ class="yingzhang"
+ >
<div class="seal-red">
���������
</div>
@@ -30,12 +63,28 @@
</div>
</div>
<div style="position: absolute;top:0;width: 100%;">
- <el-table size="mini" :data="tableData" border style="width: 100%" :header-cell-style="{
+ <el-table
+ size="mini"
+ :data="tableData"
+ border
+ style="width: 100%"
+ :header-cell-style="{
color: '#101111',
fontSize: '16px'
- }" @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="40" align="center" />
- <el-table-column type="index" label="������" width="60px" align="center" />
+ }"
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column
+ type="selection"
+ width="40"
+ align="center"
+ />
+ <el-table-column
+ type="index"
+ label="������"
+ width="60px"
+ align="center"
+ />
<el-table-column align="center">
<template slot="header">
<div>������</div>
@@ -46,8 +95,20 @@
<div>{{ scope.row.escalationTime }}</div>
</template>
</el-table-column>
- <el-table-column align="center" prop="unitId" label="������������" width="150px" :formatter="unitIdFormatter" />
- <el-table-column align="center" prop="polluteType" label="������������" width="120px" :formatter="polluteTypeFormatter" />
+ <el-table-column
+ align="center"
+ prop="unitId"
+ label="������������"
+ width="150px"
+ :formatter="unitIdFormatter"
+ />
+ <el-table-column
+ align="center"
+ prop="polluteType"
+ label="������������"
+ width="120px"
+ :formatter="polluteTypeFormatter"
+ />
<el-table-column align="center">
<template slot="header">
<div>������������</div>
@@ -55,7 +116,10 @@
</template>
<template slot-scope="scope">
<div>{{ dictObj.changeEnum[scope.row.changeType] }}</div>
- <div v-show="scope.row.changeType && scope.row.changeType === 2" :class="[Number(scope.row.residueDay) < 0 ? errorClass : '']">
+ <div
+ v-show="scope.row.changeType && scope.row.changeType === 2"
+ :class="[Number(scope.row.residueDay) < 0 ? errorClass : '']"
+ >
<span v-if="Number(scope.row.residueDay) < 0">
������ {{ Math.abs(scope.row.residueDay) }}���
</span>
@@ -63,31 +127,63 @@
</div>
</template>
</el-table-column>
- <el-table-column align="center" prop="investigationType" label="������������" width="100px" :formatter="investigationTypeFormatter" />
- <el-table-column align="center" prop="state" width="100px" label="������������">
+ <el-table-column
+ align="center"
+ prop="investigationType"
+ label="������������"
+ width="100px"
+ :formatter="investigationTypeFormatter"
+ />
+ <el-table-column
+ align="center"
+ prop="state"
+ width="100px"
+ label="������������"
+ >
<template slot-scope="scope">
- <el-tag v-if="scope.row.state === 40" type="success">
+ <el-tag
+ v-if="scope.row.state === 40"
+ type="success"
+ >
{{ stateFormatter(scope.row) }}
</el-tag>
- <el-tag v-if="scope.row.state === 50" type="danger">
+ <el-tag
+ v-if="scope.row.state === 50"
+ type="danger"
+ >
{{ stateFormatter(scope.row) }}
</el-tag>
- <el-tag v-if="scope.row.state === 9" type="info">
+ <el-tag
+ v-if="scope.row.state === 9"
+ type="info"
+ >
{{ stateFormatter(scope.row) }}
</el-tag>
- <el-tag v-if="scope.row.state === 20" type="warning">
+ <el-tag
+ v-if="scope.row.state === 20"
+ type="warning"
+ >
{{ stateFormatter(scope.row) }}
</el-tag>
- <el-tag v-if="scope.row.state === 10" type="warning">
+ <el-tag
+ v-if="scope.row.state === 10"
+ type="warning"
+ >
{{ stateFormatter(scope.row) }}
</el-tag>
- <el-tag v-if="scope.row.state === 30" type="warning">
+ <el-tag
+ v-if="scope.row.state === 30"
+ type="warning"
+ >
{{ stateFormatter(scope.row) }}
</el-tag>
</template>
</el-table-column>
<!-- <el-table-column align="center" prop="isInvalid" label="������������" width="60px" :formatter="isInvalidFormatter" /> -->
- <el-table-column align="center" width="150px">
+ <el-table-column
+ align="center"
+ width="150px"
+ >
<template slot="header">
<div>������������</div>
<div>���������</div>
@@ -107,27 +203,66 @@
<div>{{ scope.row.updateTime }}</div>
</template>
</el-table-column>
- <el-table-column align="center" prop="createTime" min-width="100px" label="������">
+ <el-table-column
+ align="center"
+ prop="createTime"
+ min-width="100px"
+ label="������"
+ >
<template slot-scope="scope">
- <el-button type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'detail')">
+ <el-button
+ type="text"
+ size="medium"
+ @click="openWorkOrdinDialog(scope.row, 'detail')"
+ >
������
</el-button>
- <el-button v-if="scope.row.isCode==='1'" type="text" size="medium" @click="openEditDialog(scope.row)">
+ <el-button
+ v-if="scope.row.isCode==='1'"
+ type="text"
+ size="medium"
+ @click="openEditDialog(scope.row)"
+ >
������������
</el-button>
- <el-button v-if="scope.row.state === 9" type="text" size="medium" @click="handleOpenDialog(scope.row, 'edit')">
+ <el-button
+ v-if="scope.row.state === 9"
+ type="text"
+ size="medium"
+ @click="handleOpenDialog(scope.row, 'edit')"
+ >
������
</el-button>
- <el-button v-if="scope.row.state > 30 && scope.row.isInvalid === 0" type="text" size="medium" @click="handleCancel(scope.row)">
+ <el-button
+ v-if="scope.row.state > 30 && scope.row.isInvalid === 0"
+ type="text"
+ size="medium"
+ @click="handleCancel(scope.row)"
+ >
������
</el-button>
- <el-button v-if="scope.row.state === 20" type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'work')">
+ <el-button
+ v-if="scope.row.state === 20"
+ type="text"
+ size="medium"
+ @click="openWorkOrdinDialog(scope.row, 'work')"
+ >
������
</el-button>
- <el-button v-if="scope.row.state === 30 && scope.row.isApprove === 1" type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'approve')">
+ <el-button
+ v-if="scope.row.state === 30 && scope.row.isApprove === 1"
+ type="text"
+ size="medium"
+ @click="openWorkOrdinDialog(scope.row, 'approve')"
+ >
������
</el-button>
- <el-button v-if="scope.row.state === 20 && scope.row.changeType === 2 &&scope.row.applyState === 0" type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'delay')">
+ <el-button
+ v-if="scope.row.state === 20 && scope.row.changeType === 2 &&scope.row.applyState === 0"
+ type="text"
+ size="medium"
+ @click="openWorkOrdinDialog(scope.row, 'delay')"
+ >
������������
</el-button>
</template>
@@ -137,52 +272,119 @@
</div>
</div>
<div class="pagina">
- <el-pagination background :current-page="pagination.currentPage" :page-sizes="pagination.pageSizes" :page-size="pagination.pageSize" :total="pagination.totalCount" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+ <el-pagination
+ background
+ :current-page="pagination.currentPage"
+ :page-sizes="pagination.pageSizes"
+ :page-size="pagination.pageSize"
+ :total="pagination.totalCount"
+ layout="total, sizes, prev, pager, next, jumper"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
</div>
</div>
- <workOrderInformation v-if="workOrdinDialogVisible" :dialog-data="dialogData" :visible.sync="workOrdinDialogVisible" @handeleSumit="handeleSumit" />
- <el-dialog title="������" :visible.sync="dialogVisible" width="600px" :before-close="handleClose" center>
+ <workOrderInformation
+ v-if="workOrdinDialogVisible"
+ :dialog-data="dialogData"
+ :is-to-map.sync="isToMap"
+ :visible.sync="workOrdinDialogVisible"
+ @handeleSumit="handeleSumit"
+ />
+ <el-dialog
+ title="������"
+ :visible.sync="dialogVisible"
+ width="600px"
+ :before-close="handleClose"
+ center
+ >
<div>
<el-form label-width="100px">
- <el-form-item label="���������������" style="margin-right: 30px">
- <el-input v-model="invalidReason" type="textarea" :autosize="{ minRows: 2, maxRows: 10 }" placeholder="���������������" />
+ <el-form-item
+ label="���������������"
+ style="margin-right: 30px"
+ >
+ <el-input
+ v-model="invalidReason"
+ type="textarea"
+ :autosize="{ minRows: 2, maxRows: 10 }"
+ placeholder="���������������"
+ />
</el-form-item>
</el-form>
</div>
- <span slot="footer" class="dialog-footer">
+ <span
+ slot="footer"
+ class="dialog-footer"
+ >
<el-button @click="handleClose">��� ���</el-button>
- <el-button type="primary" @click="handleInvalid">��� ���</el-button>
+ <el-button
+ type="primary"
+ @click="handleInvalid"
+ >��� ���</el-button>
</span>
</el-dialog>
- <el-dialog v-if="dialogEditVisible" title="������" :visible.sync="dialogEditVisible" width="800px" top="5vh" :before-close="handleClose" center>
+ <el-dialog
+ v-if="dialogEditVisible"
+ title="������"
+ :visible.sync="dialogEditVisible"
+ width="800px"
+ top="5vh"
+ :before-close="handleClose"
+ center
+ >
<el-descriptions title="������������">
<template slot="extra">
<div>
{{ editEscalationUnitData.allocationNum }}
</div>
</template>
- <el-descriptions-item label="������������" label-class-name="itemSpan">
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
{{ editEscalationUnitData.escalationTime }}
</el-descriptions-item>
- <el-descriptions-item label="������������" label-class-name="itemSpan">
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
{{ updataUnitIdFormatter }}
</el-descriptions-item>
- <el-descriptions-item label="������������" label-class-name="itemSpan">
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
{{ polluteTypeeDITFormatter }}
</el-descriptions-item>
- <el-descriptions-item label="������������" label-class-name="itemSpan">
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
{{ dictObj.changeEnum[editEscalationUnitData.changeType] }}
</el-descriptions-item>
- <el-descriptions-item label="������������" label-class-name="itemSpan">
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
{{ editEscalationUnitData.changeDay || 0 }} ���
</el-descriptions-item>
- <el-descriptions-item label="������������" label-class-name="itemSpan">
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
{{ updataEscalationUnitIdFormatter }}
</el-descriptions-item>
- <el-descriptions-item label="���������" label-class-name="itemSpan">
+ <el-descriptions-item
+ label="���������"
+ label-class-name="itemSpan"
+ >
{{ editEscalationUnitData.escalationName }}
</el-descriptions-item>
- <el-descriptions-item label="������������" label-class-name="itemSpan">
+ <el-descriptions-item
+ label="������������"
+ label-class-name="itemSpan"
+ >
{{ editEscalationUnitData.pollutePosition }}
</el-descriptions-item>
</el-descriptions>
@@ -191,24 +393,55 @@
<p class="editTile">
������������
</p>
- <el-form :inline="true" class="demo-form-inline">
+ <el-form
+ :inline="true"
+ class="demo-form-inline"
+ >
<el-form-item label="������������:">
- <el-select v-model="formInEdit.unitId" size="small" clearable placeholder="���������">
- <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" />
+ <el-select
+ v-model="formInEdit.unitId"
+ size="small"
+ clearable
+ placeholder="���������"
+ >
+ <el-option
+ v-for="item in unitList"
+ :key="item.unitId"
+ :label="item.unitName"
+ :value="item.unitId"
+ />
</el-select>
</el-form-item>
<el-form-item label="������������:">
- <el-select v-model="formInEdit.polluteType" size="small" clearable placeholder="���������">
- <el-option v-for="item in polluteList" :key="item.dataKey" :label="item.dataValue" :value="item.dataKey" />
+ <el-select
+ v-model="formInEdit.polluteType"
+ size="small"
+ clearable
+ placeholder="���������"
+ >
+ <el-option
+ v-for="item in polluteList"
+ :key="item.dataKey"
+ :label="item.dataValue"
+ :value="item.dataKey"
+ />
</el-select>
</el-form-item>
</el-form>
</div>
<el-collapse>
- <el-collapse-item title="������������" name="1">
+ <el-collapse-item
+ title="������������"
+ name="1"
+ >
<div class="block">
<el-timeline>
- <el-timeline-item v-for="(activity, index) in operatingLog" :key="index" :color="'#0bbd87'" :timestamp="activity.createTime">
+ <el-timeline-item
+ v-for="(activity, index) in operatingLog"
+ :key="index"
+ :color="'#0bbd87'"
+ :timestamp="activity.createTime"
+ >
<div v-if="activity.content">
���������: {{ activity.userName }}
</div>
@@ -224,12 +457,22 @@
</el-collapse-item>
</el-collapse>
- <span slot="footer" class="dialog-footer">
+ <span
+ slot="footer"
+ class="dialog-footer"
+ >
<el-button @click="handleClose">��� ���</el-button>
- <el-button type="primary" @click="handleEditChange">��� ���</el-button>
+ <el-button
+ type="primary"
+ @click="handleEditChange"
+ >��� ���</el-button>
</span>
</el-dialog>
- <mapContainer :visible.sync="isToMap" v-if="isToMap"></mapContainer>
+ <mapContainer
+ v-if="isToMap"
+ :visible.sync="isToMap"
+ @addressAndLnt="getaddressAndLnt"
+ />
</div>
</template>
@@ -250,11 +493,12 @@
workOrderInformation
},
// mixins: [mixins],
- data() {
+ data () {
return {
loading: false,
isToMap: false,
selectionRows: [],
+ position: [],
errorClass: 'errorClass',
searchType: 'reform',
pagination: {
@@ -284,7 +528,9 @@
dictObj: JSON.parse(localStorage.getItem('dictObj')),
parentFormData: {},
pageState: 'add',
+ mapType: 'edit',
invalidReason: '',
+ address: '',
slectRow: {},
title: '',
searchData: {
@@ -297,11 +543,6 @@
},
operatingLog: [],
sealList: []
- }
- },
- watch: {
- isToMap(newVal, oldVal) {
- this.isToMap = newVal
}
},
computed: {
@@ -327,32 +568,28 @@
return data ? data.dataValue : ''
}
},
- created() {
+ watch: {
+ isToMap (newVal, oldVal) {
+ this.isToMap = newVal
+ }
+ },
+ created () {
this.handleSearch({ isInvalid: 0, state: [9, 20, 30] })
this.getUnitList()
this.getContaminateList()
- if (navigator.geolocation) {
- navigator.geolocation.getCurrentPosition(
- this.successCallback,
- this.errorCallback
- )
- } else {
- alert('���������������������������������������������')
- }
},
methods: {
- successCallback(position) {
- const latitude = position.coords.latitude // ������
- const longitude = position.coords.longitude // ������
- console.log('���������' + longitude)
- console.log('���������' + latitude)
+ getaddressAndLnt (position, address) {
+ if (this.mapType === 'edit') {
+ this.$refs.newWorkOrder.formData.pollutePosition = address
+ this.position = position
+ }
},
- errorCallback() {},
- handleSelectionChange(rows) {
+ handleSelectionChange (rows) {
console.log(rows)
this.selectionRows = rows
},
- isNowDonw() {
+ isNowDonw () {
this.$confirm('������������������������������?', '������', {
confirmButtonText: '������������',
cancelButtonText: '������������',
@@ -372,7 +609,7 @@
}
})
},
- exportData() {
+ exportData () {
// this.dowOrgFile('���������������.xlsx')
let that = this
const CancelToken = axios.CancelToken
@@ -396,10 +633,10 @@
params: {
id: this.selectionRows.map(item => item.allocationId)
},
- cancelToken: new CancelToken(function executor(c) {
+ cancelToken: new CancelToken(function executor (c) {
cancel = c
}),
- onDownloadProgress(progress) {
+ onDownloadProgress (progress) {
console.log('onDownloadProgress', progress)
const loaded = progress.loaded
// progress������������loaded������������������������������total������������������������������������������
@@ -436,10 +673,11 @@
})
.catch(err => {
clearTimeout(timer)
+ console.log('������������', err)
this.loading = false
})
},
- getOutExcel(fileName, res) {
+ getOutExcel (fileName, res) {
const blob = new Blob([res], { type: 'application/x-xls' })
if (window.navigator.msSaveOrOpenBlob) {
// ������ IE & EDGE
@@ -466,7 +704,7 @@
this.loading = false
}
},
- openEditDialog(row) {
+ openEditDialog (row) {
this.editEscalationUnitData = row
this.dialogEditVisible = true
this.$request({
@@ -485,15 +723,15 @@
console.log(err)
})
},
- handleCancel(row) {
+ handleCancel (row) {
this.dialogVisible = true
this.slectRow = row
},
- handleClose() {
+ handleClose () {
this.dialogVisible = false
this.dialogEditVisible = false
},
- handleEditChange() {
+ handleEditChange () {
if (this.formInEdit.polluteType === '' && this.formInEdit.unitId === '') {
this.$message({
message: '���������������������',
@@ -529,7 +767,7 @@
console.log(err)
})
},
- handleInvalid() {
+ handleInvalid () {
this.$request({
url: '/allocation/invalid',
method: 'get',
@@ -550,12 +788,13 @@
})
},
// ������
- handleOpenDialog(row, type) {
+ handleOpenDialog (row, type) {
this.pageState = type
this.parentFormData = {}
if (type === 'add') {
this.title = '���������������'
this.centerDialogVisible = true
+ this.mapType = 'edit'
} else {
this.title = '���������������'
this.$request({
@@ -571,35 +810,35 @@
})
}
},
- updatUnitIdFormatter(val) {
+ updatUnitIdFormatter (val) {
const data = this.unitList.find(
item => item && item.unitId === val.escalationUnitId
)
return data ? data.unitName : ''
},
- unitIdFormatter(val) {
+ unitIdFormatter (val) {
const data = this.unitList.find(
item => item && item.unitId === val.unitId
)
return data ? data.unitName : ''
},
- polluteTypeFormatter(val) {
+ polluteTypeFormatter (val) {
const data = this.polluteList.find(
item => item && parseInt(item.dataKey) === val.polluteType
)
return data ? data.dataValue : ''
},
- investigationTypeFormatter(val) {
+ investigationTypeFormatter (val) {
return this.dictObj.investigationEnum[val.investigationType]
},
- stateFormatter(val) {
+ stateFormatter (val) {
return this.dictObj.allocationApproveEnum[val.state]
},
- isInvalidFormatter(val) {
+ isInvalidFormatter (val) {
return this.dictObj.yesOrNo[val.isInvalid]
},
// ������������������list
- getUnitList() {
+ getUnitList () {
this.$request({
url: '/allocation/unit',
method: 'get'
@@ -611,7 +850,7 @@
}
})
},
- getContaminateList() {
+ getContaminateList () {
this.$request({
url: '/allocation/contaminate',
method: 'get'
@@ -623,11 +862,11 @@
}
})
},
- handeleSumit() {
+ handeleSumit () {
this.handleSearch()
},
// ������
- newHandleSubmit(obj) {
+ newHandleSubmit (obj) {
console.log(obj)
console.log(this.parentFormData)
let api = '/allocation/insert'
@@ -635,10 +874,18 @@
api = '/allocation/update'
// obj.fileBaseList = [...this.parentFormData.fileBaseList, ... obj.fileBaseList]
}
+ let latitude = ''
+ let longitude = ''
+ if (this.position.length > 0) {
+ latitude = this.position[1]
+ longitude = this.position[0]
+ }
this.$request({
url: api,
method: 'post',
data: {
+ 'latitude': latitude,
+ 'longitude': longitude,
...obj
}
}).then(res => {
@@ -651,7 +898,7 @@
}
})
},
- handleSearchBut(obj) {
+ handleSearchBut (obj) {
const pageSize = this.pagination.pageSize
this.pagination = {
currentPage: 1,
@@ -664,7 +911,7 @@
}
this.handleSearch(obj)
},
- handleSearch(obj) {
+ handleSearch (obj) {
this.selectionRows = []
if (obj) {
this.searchData = obj
@@ -701,7 +948,7 @@
},
// ������
// ���������������������
- handleSizeChange(val) {
+ handleSizeChange (val) {
// ���������������������������
console.log('345')
this.pagination.pageSize = val
@@ -710,14 +957,14 @@
this.handleSearch()
},
// ���������������
- handleCurrentChange(val) {
+ handleCurrentChange (val) {
// ���������������������
console.log('123')
this.pagination.currentPage = val
this.handleSearch()
// console.log(val)
},
- openWorkOrdinDialog(row, type) {
+ openWorkOrdinDialog (row, type) {
this.$request({
url: '/allocation/detail',
method: 'get',
@@ -744,6 +991,9 @@
sysCode: '1010203'
}
} else if (type === 'detail') {
+ this.mapType = 'view'
+ this.position = [res.data.longitude, res.data.latitude]
+ this.address = res.data.pollutePosition
this.dialogData = {
title: '���������������',
parentFormData: res.data,
--
Gitblit v1.8.0