dai 3 years ago
parent
commit
8fe2e3fced
  1. 67
      src/assets/scss/buttonstyle copy.scss
  2. 2
      src/views/modules/base/organization/organization.vue
  3. 6
      src/views/modules/shequzhili/event/cpts/event-detail.vue
  4. 4
      src/views/modules/shequzhili/event/cpts/event-info.vue
  5. 10
      src/views/modules/shequzhili/event/cpts/process-form-demand.vue
  6. 4
      src/views/modules/shequzhili/event/eventList.vue
  7. 14
      src/views/modules/visual/basicinfo/basicInfoMain.vue
  8. 357
      src/views/modules/workSys/mapConfig.vue

67
src/assets/scss/buttonstyle copy.scss

@ -1,67 +0,0 @@
//新增
.el-button--add {
color: #fff;
background-color: #22c1c3;
border-color: #22c1c3;
}
.el-button--add:hover {
color: #fff;
background-color: #05b1b4;
border-color: #05b1b4;
}
.el-button--add:focus {
color: #fff;
background-color: #22c1c3;
border-color: #22c1c3;
}
//删除导入
.el-button--delete {
color: #fff;
background-color: #fe6252;
border-color: #fe6252;
}
.el-button--delete:hover {
color: #fff;
background-color: #fe6252;
border-color: #fe6252;
}
.el-button--delete:focus {
color: #fff;
background-color: #fe6252;
border-color: #fe6252;
}
//重置导出
.el-button--reset {
color: #fff;
background-color: #feb349;
border-color: #feb349;
}
.el-button--reset:hover {
color: #fff;
background-color: #feb349;
border-color: #feb349;
}
.el-button--reset:focus {
color: #fff;
background-color: #feb349;
border-color: #feb349;
}
//查询确定
.el-button--search:hover {
color: #fff;
background-color: #3e8ef7;
border-color: #3e8ef7;
}
.el-button--search:focus {
color: #fff;
background-color: #3e8ef7;
border-color: #3e8ef7;
}
.el-button--search {
color: #fff;
background-color: #3e8ef7;
border-color: #3e8ef7;
}

2
src/views/modules/base/organization/organization.vue

@ -1897,7 +1897,7 @@ export default {
const url = '/gov/org/agency/agencydetail'
let params = {
agencyId: localStorage.getItem('agencyId')
agencyId: this.currentAgencyId
}
const { data, code, msg } = await requestPost(url,params)

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

@ -78,8 +78,12 @@
</div>
</div>
<!--
显示关闭
1状态=完成 (已评价)||(没评价&&不是本人)
<div v-if="info.operationId&&!(info.status==='closed_case'&&!info.satisfactionName && user.id===info.createdUserId)"
2状态=未完成 有操作id -->
<div v-if="(info.status==='processing'&&info.operationId)||(info.status==='closed_case'&&(info.satisfactionName||(!info.satisfactionName && user.id!=info.createdUserId)))"
class="div-btn ">
<el-button size="small"
@click="handleCloseEvent">关闭</el-button>

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

@ -110,8 +110,8 @@
</div>
<div class="detail"
v-if="item.processName == '处理响应' && item.assistanceUnitName">
<div class="detail-field"> </div>
v-if="item.assistanceUnitName">
<div class="detail-field">协办单位</div>
<div class="detail-value">
<fold-text :row="3">{{ item.assistanceUnitName }}</fold-text>
</div>

10
src/views/modules/shequzhili/event/cpts/process-form-demand.vue

@ -52,7 +52,7 @@
</el-date-picker>
</el-form-item>
<el-form-item label="服务人"
<el-form-item label="需求人"
label-width="150px"
prop="demandUserName">
<el-input v-model="formData.demandUserName"
@ -187,9 +187,9 @@ function iniFmData () {
reportUserName: '',//
reportUserMobile: '',//
reportTime: '',//
demandUserId: '',// user.idic_resi_user.id
demandUserName: '',//
demandUserMobile: '',//
demandUserId: '',// user.idic_resi_user.id
demandUserName: '',//
demandUserMobile: '',//
wantServiceTime: '',//
serviceType: '',
serverId: '',
@ -249,7 +249,7 @@ export default {
{ required: true, message: "服务时间不能为空", trigger: "blur" },
],
demandUserName: [
{ required: true, message: "服务人不能为空", trigger: "blur" },
{ required: true, message: "需求人不能为空", trigger: "blur" },
],
demandUserMobile: [
{ required: true, message: "联系电话不能为空", trigger: "blur" },

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

@ -237,7 +237,7 @@
<template slot-scope="scope">
<span v-if="scope.row.status==='processing'">处理中</span>
<span v-else-if="scope.row.status==='closed_case'">办结</span>
<span v-else-if="scope.row.status==='closed_case'">完成</span>
<span v-else>--</span>
</template>
</el-table-column>
@ -609,7 +609,7 @@ export default {
this.tableData.forEach(item => {
if (item.operationType === '2') {
item.operationTypeShow = '已转需求'
item.operationTypeShow = '已转服务'
}
if (item.operationType === '1') {
item.operationTypeShow = '已立项'

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

@ -157,7 +157,7 @@ import People from "./people";
import cptCard from "@/views/modules/visual/cpts/card";
import ScreenLoading from "@/views/modules/visual/cpts/loading";
var centerPointGlobal = [120.38945519, 36.0722275]
var centerPointGlobal = [120.664619, 36.504963]
let loading;//
@ -172,8 +172,8 @@ let iconSource; // icon
let polygonSource;//
let select;//
let xoffset = 0.0051
let yoffset = 0.0002
let xoffset = 0
let yoffset = 0
//url
@ -634,10 +634,10 @@ const vueGis = {
coorArray.forEach((item, index) => {
if (index % 2 == 0) {//
item = (parseFloat(item) + xoffset) + ''
item = (parseFloat(item) + parseFloat(xoffset)) + ''
itemArray.push(item)
} else {//
item = (parseFloat(item) + yoffset) + ''
item = (parseFloat(item) + parseFloat(yoffset)) + ''
itemArray.push(item)
polygonArray.push(itemArray)
@ -703,12 +703,12 @@ const vueGis = {
coorArray.forEach((item, index) => {
// itemArray.push(item)
if (index % 2 == 0) {//
item = (parseFloat(item) + xoffset) + ''
item = (parseFloat(item) + parseFloat(xoffset)) + ''
itemArray.push(item)
} else {//
item = (parseFloat(item) + yoffset) + ''
item = (parseFloat(item) + parseFloat(yoffset)) + ''
itemArray.push(item)
polygonArray.push(itemArray)
itemArray = []

357
src/views/modules/workSys/mapConfig.vue

@ -1,49 +1,154 @@
<template>
<div style="position: relative">
<div class="div_search">
<el-select v-model="selAgencyId"
placeholder="请选择或点击区域选择">
<el-option @click.native="orgChange(index)"
v-for="(item,index) in subAgencyArray"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
<div v-if="selAgencyId && subAgencyArray.length>0">
<el-button v-if="showBtn&&!hasPolygon"
style="margin-left:10px"
type="primary"
icon="el-icon-plus"
@click="handleAddPolygon">{{method==='mAddPolygon'?'取消绘制':'绘制区域'}}</el-button>
<el-button v-if="showBtn&&hasPolygon"
<div>
<div style="position: relative">
<div class="div_search">
<el-select v-model="selAgencyId"
size="small"
placeholder="请选择或点击区域选择">
<el-option @click.native="orgChange(index)"
v-for="(item,index) in subAgencyArray"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
<div v-if="selAgencyId && subAgencyArray.length>0">
<el-button v-if="showBtn&&!hasPolygon"
size="small"
style="margin-left:10px"
type="primary"
icon="el-icon-plus"
@click="handleAddPolygon">{{method==='mAddPolygon'?'取消绘制':'绘制区域'}}</el-button>
<el-button v-if="showBtn&&hasPolygon"
size="small"
style="margin-left:10px"
type="primary"
icon="el-icon-edit"
@click="handleEditPolygon">{{method==='mEditPolygon'?'取消绘制':'重新绘制'}}</el-button>
<!-- <el-button v-if="showBtn&&hasPolygon"
size="small"
style="margin-left:10px"
type="primary"
icon="el-icon-delete"
@click="handleDelPolygon">删除区域</el-button> -->
<el-button v-if="showBtn"
size="small"
style="margin-left:10px"
type="primary"
icon="el-icon-upload2"
@click="handleManually">手动录入</el-button>
<!-- <el-button v-if="showBtn"
style="margin-left:10px"
type="primary"
icon="el-icon-delete"
@click="handleSetOffset">设置偏差</el-button> -->
<span v-if="showBtn&&hasPolygon"> 经度偏差</span>
<el-input-number v-if="showBtn&&hasPolygon"
resize="none"
size="small"
style="width:200px"
:precision="5"
:step="0.0001"
placeholder='请输入经度偏差'
v-model="xOffset">
</el-input-number>
<span v-if="showBtn&&hasPolygon"> 纬度偏差</span>
<el-input-number v-if="showBtn&&hasPolygon"
resize="none"
size="small"
:precision="5"
:step="0.0001"
style="width:200px"
placeholder='请输入维度偏差'
v-model="yOffset">
</el-input-number>
<el-button v-if="showBtn&&hasPolygon"
style="margin-left:10px"
type="primary"
size="small"
icon="el-icon-folder-add"
@click="handleOffsetOk">保存</el-button>
<!-- <el-button v-if="showBtn"
style="margin-left:10px"
type="primary"
size="mini"
icon="el-icon-delete"
@click="handleOffsetCancel">预览</el-button> -->
</div>
</div>
<div class="div_back">
<el-button v-if="runNum>0"
style="margin-left:10px"
type="primary"
icon="el-icon-edit"
@click="handleEditPolygon">{{method==='mEditPolygon'?'取消绘制':'重新绘制'}}</el-button>
<!-- <el-button v-if="showBtn&&hasPolygon"
style="margin-left:10px"
type="primary"
icon="el-icon-delete"
@click="handleDelPolygon">删除区域</el-button> -->
icon="el-icon-back"
@click="handleBack">返回上一级</el-button>
</div>
<div class="div_tip">
<span>按住alt键单击标注可以进入下一级地图</span>
</div>
<div id="map"
class="div_map"
:style="{height:mapHeight+'px'}"></div>
</div>
<div class="div_back">
<el-button v-if="runNum>0"
style="margin-left:10px"
type="primary"
icon="el-icon-back"
@click="handleBack">返回上一级</el-button>
</div>
<div class="div_tip">
<span>按住alt键单击标注可以进入下一级地图</span>
</div>
<div id="map"
class="div_map"
:style="{height:mapHeight+'px'}"></div>
<el-dialog title="手动录入"
:visible.sync="dialogVisible"
width="50%"
:before-close="handleClose">
<div class="div_textarea">
<div style="margin-top:10px">
<span> 中心点经度</span>
<el-input-number size="small"
style="width:250px"
v-model="longitude">
</el-input-number>
<span style="margin-left:15px"> 中心点纬度</span>
<el-input-number size="small"
style="width:250px"
v-model="latitude">
</el-input-number>
</div>
<div style="margin-top:20px">
<el-input type="textarea"
:rows="15"
style="width:600px;max-height:500px"
placeholder='请复制坐标数据'
v-model="polygonManullyString">
</el-input>
</div>
<div style="margin-top:20px">
<span> 经度偏差</span>
<el-input-number resize="none"
size="small"
style="width:200px"
:precision="5"
:step="0.0001"
placeholder='请输入经度偏差'
v-model="xOffset_customize">
</el-input-number>
<span style="margin-left:15px"> 纬度偏差</span>
<el-input-number resize="none"
size="small"
:precision="5"
:step="0.0001"
style="width:200px"
placeholder='请输入维度偏差'
v-model="yOffset_customize">
</el-input-number>
</div>
</div>
<span slot="footer"
class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary"
@click="handleManuallyOk"> </el-button>
</span>
</el-dialog>
</div>
</template>
@ -67,7 +172,7 @@ import { Loading } from 'element-ui'; //引入Loading服务
import { requestPost } from "@/js/dai/request";
import { altKeyOnly, click, pointerMove } from 'ol/events/condition';
var centerPointGlobal = [120.38945519, 36.0722275]
var centerPointGlobal = [120.664619, 36.504963]
let loading;//
let x = 1500
@ -85,15 +190,15 @@ let mapView;
let gaodeMapLayer;//
let parentLayer;//
let parentSource;//
let polygonLayer;//
let polygonSource;//
let polygonLayer;//
let polygonSource;//
let draw;//handle
let select;//
let selectAltClick;
let selectedFeatures;
//
//
var createTextStyle = function (feature) {
return new Text({
textAlign: undefined,
@ -101,7 +206,7 @@ var createTextStyle = function (feature) {
//fontFamily: "Courier New, monospace",
fontWeight: "bold",
text: feature.values_.name,
//text: "",
//text: "",
fill: new Fill({ color: "#007ab9" }),
stroke: new Stroke({ color: "#ffffff", width: 3 }),
offsetY: 0,
@ -172,6 +277,21 @@ const vueGis = {
zoom: null,
parentPolygon: [],
//
dialogVisible: false,
showOffset: false,
// polygonManullyString: "POLYGON (( 120.33902844 36.10290786, 120.33928218 36.10292997, 120.33956336 36.10316381, 120.34016675 36.10367715, 120.34044913 36.10391476, 120.34045707 36.10392145, 120.34068696 36.10411489, 120.34103181 36.10436285, 120.34117309 36.10441824, 120.34134613 36.10447927, 120.34164715 36.10465122, 120.34124679 36.10507284, 120.34088128 36.10538902, 120.34076198 36.10549222, 120.34053890 36.10520966, 120.34044967 36.10507284, 120.34030632 36.10494761, 120.34019091 36.10484679, 120.33976558 36.10448095, 120.33966658 36.10439980, 120.33947147 36.10425822, 120.33932037 36.10417613, 120.33913002 36.10411307, 120.33895751 36.10406073, 120.33879451 36.10403693, 120.33864104 36.10403158, 120.33864031 36.10395235, 120.33863211 36.10305897, 120.33902175 36.10290728, 120.33902844 36.10290786))",
polygonManullyString: "",
xOffset: 0,
yOffset: 0,
xOffset_customize: 0,
yOffset_customize: 0,
// xOffset_customize: 0.0051,//
// yOffset_customize: 0.0002,//
longitude: undefined,
latitude: undefined,
}
},
async mounted () {
@ -292,7 +412,7 @@ const vueGis = {
//
loadParentPolygon () {
parentSource.clear()//
parentSource.clear()//
let featureData = []//
if (this.parentPolygon && this.parentPolygon.length > 0) {//
@ -348,7 +468,7 @@ const vueGis = {
},
//
loadPolygon (subAgencyArray) {
polygonSource.clear()//
polygonSource.clear()//
let featureData = []//
if (subAgencyArray && subAgencyArray.length > 0) {//
@ -464,9 +584,15 @@ const vueGis = {
if (element.id_ === this.selAgencyId) {
selectedFeatures.push(element)
let polygon = element.getGeometry();
map.getView().fit(polygon, map.getSize());
this.zoom = map.getView().getZoom() - 2
mapView.setZoom(this.zoom);
}
});
},
//
setMapLocation () {
@ -548,7 +674,7 @@ const vueGis = {
},
//
//
addParentLayer () {
parentSource = new VectorSource({
//features: (new GeoJSON()).readFeatures(geojsonObject)
@ -565,7 +691,7 @@ const vueGis = {
},
//
//
addPolygonLayer () {
polygonSource = new VectorSource({
//features: (new GeoJSON()).readFeatures(geojsonObject)
@ -628,6 +754,114 @@ const vueGis = {
});
},
//
handleManually () {
this.dialogVisible = true
this.polygonManullyString = ''
this.longitude = undefined
this.latitude = undefined
if (this.selAgency) {
if (this.selAgency.longitude) {
this.longitude = this.selAgency.longitude
}
if (this.selAgency.latitude) {
this.latitude = this.selAgency.latitude
}
}
},
//
handleClose () {
this.dialogVisible = false
},
handleManuallyOk () {
if (this.longitude || this.latitude) {
if (!(this.longitude && this.latitude)) {
this.$message({
type: "warning",
message: "请同时填写中心点经纬度,或不填写"
});
return false
}
}
//
//120.54033616308595,36.53603370922851,120.69620469335939,36.5408402277832,120.63166001562502,36.46771248120117,120.52728989843752,36.458786089599606,120.54033616308595,36.53603370922851
//
// 73°33E135°05E
// 3°51N53°33N
const arrayString = this.polygonManullyString
let array = arrayString.split(/[, ()]/)
console.log(array)
let polygonStringResult = ''
array.forEach(element => {
let num = Number(element)
if (num) {
polygonStringResult = polygonStringResult + element + ','
}
});
polygonStringResult = polygonStringResult.substring(0, polygonStringResult.length - 1)
if (this.xOffset_customize !== 0 || this.yOffset_customize !== 0) {
this.saveOffset(this.xOffset_customize, this.yOffset_customize, polygonStringResult)
} else {
this.addPolygon(polygonStringResult)
}
},
handleSetOffset () {
this.showOffset = true
},
handleOffsetOk () {
let selPolygonString = ""
this.subAgencyArray.forEach(element => {
if (element.id === this.selAgencyId && element.coordinates && element.coordinates.length > 0) {
selPolygonString = element.coordinates
}
});
if (selPolygonString) {
this.saveOffset(tyhis.xOffset, this.yOffset, selPolygonString)
}
},
saveOffset (xOffset, yOffset, selPolygonString) {
let offsetPolygonString = ''//
let tempArray = selPolygonString.split(',')
tempArray.forEach((element, index) => {
let aaa = 0
if (index % 2 === 0) {//
aaa = parseFloat(element) + parseFloat(xOffset)
} else {
aaa = parseFloat(element) + parseFloat(yOffset)
}
if (index % 2 !== 0) {//
}
offsetPolygonString = offsetPolygonString + aaa + ','
});
offsetPolygonString = offsetPolygonString.substring(0, offsetPolygonString.length - 1)
this.addPolygon(offsetPolygonString)
},
handleSetOffset () {
this.handleOffsetCancel = false
},
//
handleAddPolygon () {
@ -732,6 +966,7 @@ const vueGis = {
})
.then(() => {
this.addPolygon(coorString)
})
.catch(err => {
this.loadPolygon(this.subAgencyArray)
@ -751,12 +986,15 @@ const vueGis = {
//
async addPolygon (coorString) {
console.log(coorString)
const url = "/gov/org/agency/mapaddarea"
let params = {
orgId: this.selAgency.id,
level: this.selAgency.level,
coordinates: coorString
coordinates: coorString,
longitude: this.longitude,
latitude: this.latitude
}
const { data, code, msg } = await requestPost(url, params)
@ -766,7 +1004,10 @@ const vueGis = {
type: "success",
message: "绘制成功"
});
if (this.dialogVisible) {
this.polygonManullyString = ''
this.dialogVisible = false
}
this.refreshMap(false)
} else {
this.$message({
@ -846,7 +1087,7 @@ const vueGis = {
},
mapHeight () {
return this.clientHeight - 120;
return this.clientHeight - 170;
},
// zoom: {
@ -872,16 +1113,14 @@ export default vueGis;
<style scoped>
.div_search {
z-index: 10;
position: absolute;
top: 20px;
left: 20px;
display: flex;
}
.div_back {
z-index: 10;
right: 10px;
top: 1px;
position: absolute;
top: 20px;
right: 20px;
display: flex;
}
.div_tip {
@ -894,8 +1133,12 @@ export default vueGis;
font-size: 15px;
}
.div_map {
margin-top: 15px;
width: 100%;
}
.div_textarea {
text-align: center;
}
</style>
<style>
.ol-overlaycontainer-stopevent {

Loading…
Cancel
Save