Browse Source

Merge branch 'dev_shequzhili' of http://git.elinkit.com.cn:7070/r/epmet-oper-gov into dev_shequzhili

shibei_master
dai 3 years ago
parent
commit
e60363a02e
  1. 1
      .env.development
  2. 32
      src/assets/scss/modules/shequzhili/event-info.scss
  3. 29
      src/views/modules/shequzhili/event/cpts/add.vue
  4. 117
      src/views/modules/shequzhili/event/cpts/event-detail.vue
  5. 9
      src/views/modules/shequzhili/event/cpts/event-info.vue
  6. 1
      src/views/modules/shequzhili/event/cpts/process-form-project.vue
  7. 113
      src/views/modules/shequzhili/event/eventList.vue
  8. 20
      src/views/modules/visual/basicinfo/basicInfoMain.vue

1
.env.development

@ -2,6 +2,7 @@ NODE_ENV=development
# VUE_APP_API_SERVER = http://epmet-dev.elinkservice.cn:41080/api
VUE_APP_API_SERVER = http://192.168.1.140/api
# VUE_APP_API_SERVER = https://epmet-cloud.elinkservice.cn/api
# VUE_APP_API_SERVER = https://epdc-shibei.elinkservice.cn/api
#家中开发连级的后端服务
# VUE_APP_API_SERVER = https://epmet-dev.elinkservice.cn:41080/api

32
src/assets/scss/modules/shequzhili/event-info.scss

@ -21,7 +21,33 @@
.cell-width-1{
width: 250px
}
.avatar-uploader {
margin: 0 0 0 20px;
/deep/ .el-upload--picture-card{
width: 100px;
height: 100px;
}
/deep/ .el-upload{
width: 100px;
height: 100px;
line-height: 100px;
}
/deep/ .el-upload-list--picture-card .el-upload-list__item{
width: 100px;
height: 100px;
line-height: 100px;
}
/deep/ .el-upload-list--picture-card .el-upload-list__item-thumbnail{
width: 100px;
height: 100px;
line-height: 100px;
}
/deep/ .avatar{
width: 100px;
height: 100px;
}
}
}
@ -143,8 +169,8 @@
cursor:pointer
}
.info-title-2 {
width: 100px;
flex: 0 0 1;
flex: 0 0 100px;
font-size: 14px;
}

29
src/views/modules/shequzhili/event/cpts/add.vue

@ -112,13 +112,14 @@
<el-form-item label="图片"
label-width="150px"
style="display:block">
<el-upload class="avatar-uploader"
<el-upload :class="['avatar-uploader', {'hide': hideUploadBtn}] "
ref="uploadPic"
:action="uploadUlr"
list-type="picture-card"
:on-exceed="exceedPic"
:on-remove="removePic"
:file-list="replayImgList"
:on-change="handleEditChange"
:on-success="handleSuccess"
:limit="3">
<span class="font-14">选择图片</span>
@ -161,7 +162,7 @@
</div>
</div>
<div style="margin-top: 10px">
<!-- <div style="margin-top: 10px">
<span>经度</span>
<el-input class="item_width_3"
maxlength="50"
@ -174,7 +175,7 @@
placeholder="请输入纬度"
v-model="formData.latitude">
</el-input>
</div>
</div> -->
</div>
</el-form-item>
@ -343,7 +344,9 @@ export default {
selGridId: '',
selPersonIndex: '',
selPerson: {},
demandUserList: []
demandUserList: [],
hideUploadBtn: false
};
},
components: {},
@ -481,7 +484,8 @@ export default {
const url = "/gov/org/customergrid/gridoption"
let params = {
agencyId: this.agencyId
agencyId: this.agencyId,
purpose: "addorupdate"
}
const { data, code, msg } = await requestPost(url, params)
@ -587,6 +591,10 @@ export default {
this.replayImgList.splice(this.replayImgList.findIndex(item => item.uid === file.uid), 1)
},
// 3
handleEditChange (file, fileList) {
this.hideUploadBtn = fileList.length >= 3;
},
exceedPic () {
this.$message.warning("最多上传3张预览图片")
@ -739,11 +747,14 @@ export default {
></style>
<style>
<style lang="scss">
.el-dialog__body {
padding: 0 10px 20px !important;
}
.hide {
.el-upload--picture-card {
display: none !important;
}
}
</style>

117
src/views/modules/shequzhili/event/cpts/event-detail.vue

@ -75,6 +75,10 @@
</div>
<div v-if="info.operationId||info.status==='closed_case'"
class="div-btn ">
<el-button v-if=" !info.satisfactionName && user.id===info.createdUserId"
size="small"
class="diy-button--reset"
@click="handleSatisfy">满意度评价</el-button>
<el-button size="small"
@click="handleCloseEvent">关闭</el-button>
@ -87,6 +91,41 @@
@close="handleClose"
@afterEdit="handleClose" />
</div> -->
<el-dialog :visible.sync="showSatisfy"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="满意度评价"
width="550px"
top="15vh"
class="dialog-h"
@closed="showSatisfy=false">
<div class="div-satisfy">
<div>
<img :src="selBad?badurl_light:badurl"
@click="clickSatisfy('bad')" />
<div class="tip-satisfy">不满意</div>
</div>
<div>
<img :src="selGood?goodurl_light:goodurl"
@click="clickSatisfy('good')" />
<div class="tip-satisfy">满意</div>
</div>
<div>
<img :src="selPerfect?perfecturl_light:perfecturl"
@click="clickSatisfy('perfect')" />
<div class="tip-satisfy">非常满意</div>
</div>
</div>
<div class="div-btn">
<el-button size="small"
@click="showSatisfy=false">关闭</el-button>
<el-button style="margin-left:20px"
type="primary"
size="small"
@click="handleComfirmSatisfy">确定</el-button>
</div>
</el-dialog>
</div>
</template>
@ -99,7 +138,7 @@ import dateFormat from "dai-js/tools/dateFormat";
function iniData () {
return {
user: {},
projectPageType: 'info',
info: {},
@ -122,6 +161,18 @@ function iniData () {
demandUserName: "",
demandUserMobile: "",
},
//
showSatisfy: false,
selBad: false,
selGood: false,
selPerfect: false,
badurl: require('@/assets/img/satisfy-images/face1.png'),
badurl_light: require('@/assets/img/satisfy-images/face1_light.png'),
goodurl: require('@/assets/img/satisfy-images/face2.png'),
goodurl_light: require('@/assets/img/satisfy-images/face2_light.png'),
perfecturl: require('@/assets/img/satisfy-images/face3.png'),
perfecturl_light: require('@/assets/img/satisfy-images/face3_light.png'),
};
}
@ -138,6 +189,7 @@ export default {
},
eventDetailData: {
type: Object,
default () {
return {}
@ -158,7 +210,7 @@ export default {
},
mounted () {
this.user = this.$store.state.user
if (this.eventId) {
this.info = JSON.parse(JSON.stringify(this.eventDetailData));
}
@ -172,17 +224,14 @@ export default {
},
handleClose () {
this.showType = ''
},
handleCloseEvent () {
handleCloseEvent () {
this.$emit("handleClose");
},
async getApiData () {
},
handleToProject () {
@ -199,6 +248,62 @@ export default {
this.$emit("handleToDemand")
},
//
handleSatisfy () {
this.showSatisfy = true
},
clickSatisfy (type) {
if (type === 'bad') {
this.selGood = false
this.selPerfect = false
this.selBad = true
} else if (type === 'good') {
this.selGood = true
this.selPerfect = false
this.selBad = false
} else if (type === 'perfect') {
this.selGood = false
this.selPerfect = true
this.selBad = false
}
},
async handleComfirmSatisfy () {
let satisfyLevel = ''
if (!this.selBad && !this.selGood && !this.selPerfect) {
this.$message.info("请选择评价级别");
} else {
if (this.selBad) {
satisfyLevel = 'bad'
} else if (this.selGood) {
satisfyLevel = 'good'
} else if (this.selPerfect) {
satisfyLevel = 'perfect'
}
}
const url = "/gov/project/icEvent/comment"
let params = {
icEventId: this.eventId,
satisfaction: satisfyLevel
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.$message.success("评价成功");
this.info.satisfactionName = '111'
this.showSatisfy = false
} else {
this.$message.error(msg)
}
},
},
};
</script>

9
src/views/modules/shequzhili/event/cpts/event-info.vue

@ -31,7 +31,7 @@
<div v-if="pageTypeCopy == 'dispose'||pageTypeCopy == 'info'"
class="g-page">
<div class="g-left">
<div :class="{'g-left':projectProcess.length>0}">
<event-detail ref="ref_detail"
:type="pageType"
@ -61,12 +61,12 @@
</div>
</div>
<div class="g-right">
<div v-if="projectProcess.length>0"
class="g-right">
<el-card class="m-card"
style="max-height: 90vh; overflow: auto">
<h3>事件处理进展</h3>
<div class="m-process"
v-if="projectProcess.length>0">
<div class="m-process">
<div class="list">
<div class="item"
:class="index === 0 ? 'z-on' : ''"
@ -177,7 +177,6 @@
</div>
</div>
<div v-else>暂无处理进展</div>
</el-card>
</div>

1
src/views/modules/shequzhili/event/cpts/process-form-project.vue

@ -371,7 +371,6 @@ export default {
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId)
this.selCategoryArray.push(this.eventDetailCopy.categoryId)
this.selCateObj = {
name: this.eventDetailCopy.categoryName,
id: this.eventDetailCopy.categoryId

113
src/views/modules/shequzhili/event/eventList.vue

@ -252,11 +252,11 @@
size="small"
class="div-table-button--edit">处理</el-button>
<el-button v-else-if="scope.row.status==='closed_case' && !scope.row.satisfactionName && user.id===scope.row.createdUserId"
<!-- <el-button v-else-if="scope.row.status==='closed_case' && !scope.row.satisfactionName && user.id===scope.row.createdUserId"
@click="handleSatisfy(scope.row)"
type="text"
size="small"
class="div-table-button--edit">评价</el-button>
class="div-table-button--edit">评价</el-button> -->
<el-button v-else
@click="handleWatch(scope.row)"
type="text"
@ -290,42 +290,6 @@
@dialogOk="handleEditSuccess" />
</div>
<el-dialog :visible.sync="showSatisfy"
:close-on-click-modal="false"
:close-on-press-escape="false"
title="满意度评价"
width="550px"
top="15vh"
class="dialog-h"
@closed="showSatisfy=false">
<div class="div-satisfy">
<div>
<img :src="selBad?badurl_light:badurl"
@click="clickSatisfy('bad')" />
<div class="tip-satisfy">不满意</div>
</div>
<div>
<img :src="selGood?goodurl_light:goodurl"
@click="clickSatisfy('good')" />
<div class="tip-satisfy">满意</div>
</div>
<div>
<img :src="selPerfect?perfecturl_light:perfecturl"
@click="clickSatisfy('perfect')" />
<div class="tip-satisfy">非常满意</div>
</div>
</div>
<div class="div-btn">
<el-button size="small"
@click="showSatisfy=false">关闭</el-button>
<el-button style="margin-left:20px"
type="primary"
size="small"
@click="handleComfirmSatisfy">确定</el-button>
</div>
</el-dialog>
</div>
</template>
@ -419,17 +383,7 @@ export default {
eventDetailData: {},
//
showSatisfy: false,
selBad: false,
selGood: false,
selPerfect: false,
badurl: require('@/assets/img/satisfy-images/face1.png'),
badurl_light: require('@/assets/img/satisfy-images/face1_light.png'),
goodurl: require('@/assets/img/satisfy-images/face2.png'),
goodurl_light: require('@/assets/img/satisfy-images/face2_light.png'),
perfecturl: require('@/assets/img/satisfy-images/face3.png'),
perfecturl_light: require('@/assets/img/satisfy-images/face3_light.png'),
};
},
@ -470,7 +424,8 @@ export default {
const url = "/gov/org/customergrid/gridoption"
let params = {
agencyId: this.agencyId
agencyId: this.agencyId,
purpose: "query"
}
const { data, code, msg } = await requestPost(url, params)
@ -563,72 +518,20 @@ export default {
}
},
//
handleSatisfy (row) {
this.eventId = row.icEventId
this.showSatisfy = true
},
clickSatisfy (type) {
if (type === 'bad') {
this.selGood = false
this.selPerfect = false
this.selBad = true
} else if (type === 'good') {
this.selGood = true
this.selPerfect = false
this.selBad = false
} else if (type === 'perfect') {
this.selGood = false
this.selPerfect = true
this.selBad = false
}
},
async handleComfirmSatisfy () {
let satisfyLevel = ''
if (!this.selBad && !this.selGood && !this.selPerfect) {
this.$message.info("请选择评价级别");
} else {
if (this.selBad) {
satisfyLevel = 'bad'
} else if (this.selGood) {
satisfyLevel = 'good'
} else if (this.selPerfect) {
satisfyLevel = 'perfect'
}
}
const url = "/gov/project/icEvent/comment"
let params = {
icEventId: this.eventId,
satisfaction: satisfyLevel
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.$message.success("评价成功");
this.showSatisfy = false
this.getTableData()
} else {
this.$message.error(msg)
}
},
handleClose () {
this.pageType = "list";
this.eventId = ""
this.getTableData()
},
handleOk () {
this.pageType = "list";
this.eventId = ""
this.pageNo = 1
this.getTableData()
},
handleEditSuccess () {

20
src/views/modules/visual/basicinfo/basicInfoMain.vue

@ -172,6 +172,9 @@ let iconSource; // icon
let polygonSource;//
let select;//
let xoffset = 0.0051
let yoffset = 0.0002
//url
@ -629,10 +632,14 @@ const vueGis = {
let polygonArray = []//[[lon,lat],[lon,lat],[lon,lat]]
coorArray.forEach((item, index) => {
itemArray.push(item)
if (index % 2 == 0) {//
if (index % 2 == 0) {//
item = (parseFloat(item) + xoffset) + ''
itemArray.push(item)
} else {//
item = (parseFloat(item) + yoffset) + ''
itemArray.push(item)
polygonArray.push(itemArray)
itemArray = []
}
@ -694,10 +701,15 @@ const vueGis = {
let polygonArray = []//[[lon,lat],[lon,lat],[lon,lat]]
coorArray.forEach((item, index) => {
itemArray.push(item)
// itemArray.push(item)
if (index % 2 == 0) {//
item = (parseFloat(item) + xoffset) + ''
itemArray.push(item)
} else {//
item = (parseFloat(item) + yoffset) + ''
itemArray.push(item)
polygonArray.push(itemArray)
itemArray = []
}
@ -715,6 +727,8 @@ const vueGis = {
'features': featureData
};
let feature = (new GeoJSON()).readFeatures(geojsonObject)
console.log(geojsonObject)
polygonSource.addFeatures(feature)
let iconFeatures = [];

Loading…
Cancel
Save