Browse Source

Merge branch 'dev_shequzhili' into test

test
jiangyy 4 years ago
parent
commit
424d7512fc
  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. 1
      src/views/modules/shequzhili/event/cpts/process-form-project.vue
  5. 3
      src/views/modules/shequzhili/event/eventList.vue
  6. 625
      src/views/modules/shequzhili/xiangmu/cpts/project-info.vue
  7. 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>

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

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

@ -470,7 +470,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)

625
src/views/modules/shequzhili/xiangmu/cpts/project-info.vue

@ -1,7 +1,6 @@
<template>
<div class="">
<div class="g-page"
v-show="pageType == 'info'">
<div class="g-page" v-show="pageType == 'info'">
<div class="g-left">
<el-card style="overflow: auto">
<h3>项目详情</h3>
@ -24,295 +23,372 @@
<span>{{ projectInfo.internalRemark || "--" }}</span>
</div>
<div class="info-prop"
v-if="projectInfo.departmentNameList.length > 0">
<div
class="info-prop"
v-if="projectInfo.departmentNameList.length > 0"
>
<span class="info-title-2">当前处理部门</span>
<span>{{ projectInfo.departmentNameList.join("、") }}</span>
</div>
<div class="info-prop"
v-if="
<div
class="info-prop"
v-if="
projectInfo.origin == 'issue' ||
projectInfo.origin == 'resi_event'
">
"
>
<span class="info-title-2">项目来源</span>
<a style="cursor: pointer"
@click="handleWatchOrigin">查看项目来源</a>
<a style="cursor: pointer" @click="handleWatchOrigin"
>查看项目来源</a
>
</div>
<div class="info-prop">
<span class="info-title-2">项目评价</span>
<a style="cursor: pointer"
@click="showedEvaluation = true">查看项目评价</a>
<a style="cursor: pointer" @click="showedEvaluation = true"
>查看项目评价</a
>
</div>
<div class="info-prop">
<span class="info-title-2">分类</span>
<fold-text v-if="projectCate.length > 0"
style="width: 250px"
:row="3">
<div :key="item.name"
v-for="item in projectCate">
<fold-text
v-if="projectCate.length > 0"
style="width: 250px"
:row="3"
>
<div :key="item.name" v-for="item in projectCate">
{{ item.name }}
</div>
</fold-text>
<span style="width: 250px"
v-else>--</span>
<el-popover v-if="projectInfo.projectStatus == 'pending'"
placement="bottom"
width="400"
height="400"
v-model="visibleCatePanel">
<div class="f"
style="min-height: 120px">
<span style="width: 250px" v-else>--</span>
<el-popover
v-if="projectInfo.projectStatus == 'pending'"
placement="bottom"
width="400"
height="400"
v-model="visibleCatePanel"
>
<div class="f" style="min-height: 120px">
<h2>更改分类</h2>
<el-cascader v-model="selectedCateData"
:options="cateOptions"
:props="{
<el-cascader
v-model="selectedCateData"
:options="cateOptions"
:props="{
multiple: true,
label: 'name',
value: 'id',
children: 'subCategory',
}"
clearable></el-cascader>
<el-button style="margin-left: 10px"
size="small"
type="danger"
@click="updateProjectCate">确定</el-button>
clearable
></el-cascader>
<el-button
style="margin-left: 10px"
size="small"
type="danger"
@click="updateProjectCate"
>确定</el-button
>
</div>
<div slot="reference">
<el-button size="small"
type="">更改</el-button>
<el-button size="small" type="">更改</el-button>
</div>
</el-popover>
</div>
<div class="info-prop">
<span class="info-title-2">标签</span>
<fold-text v-if="projectTag.length > 0"
style="width: 250px"
:row="3">
<div :key="item.name"
v-for="item in projectTag">
<fold-text
v-if="projectTag.length > 0"
style="width: 250px"
:row="3"
>
<div :key="item.name" v-for="item in projectTag">
{{ item.name }}
</div>
</fold-text>
<span style="width: 250px"
v-else>--</span>
<el-popover v-if="projectInfo.projectStatus == 'pending'"
placement="bottom"
width="400"
height="400"
v-model="visibleTagPanel">
<div class="f"
style="min-height: 120px">
<span style="width: 250px" v-else>--</span>
<el-popover
v-if="projectInfo.projectStatus == 'pending'"
placement="bottom"
width="400"
height="400"
v-model="visibleTagPanel"
>
<div class="f" style="min-height: 120px">
<h2>更改标签</h2>
<el-select v-model="selectedTagData"
multiple
allow-create
filterable
placeholder="请选择"
@change="handleTagChange">
<el-select
v-model="selectedTagData"
multiple
allow-create
filterable
placeholder="请选择"
@change="handleTagChange"
>
<el-option-group label="自定义标签">
<el-option v-for="item in tagOptions.customized"
:key="item.id"
:label="item.name"
:value="item.id">
<el-option
v-for="item in tagOptions.customized"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-option-group>
<el-option-group label="常用标签">
<el-option v-for="item in tagOptions.defaulted"
:key="item.id"
:label="item.name"
:value="item.id">
<el-option
v-for="item in tagOptions.defaulted"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-option-group>
</el-select>
<el-button style="margin-left: 10px"
size="small"
type="danger"
@click="updateProjectTag">确定</el-button>
<el-button
style="margin-left: 10px"
size="small"
type="danger"
@click="updateProjectTag"
>确定</el-button
>
</div>
<div slot="reference">
<el-button size="small"
type="">更改</el-button>
<el-button size="small" type="">更改</el-button>
</div>
</el-popover>
</div>
</div>
<div class="m-btns"
v-if="!projectInfo.processable || projectInfo.projectStatus != 'pending'">
<el-button size=""
@click="handleClose">关闭</el-button>
<div
class="m-btns"
v-if="
!projectInfo.processable || projectInfo.projectStatus != 'pending'
"
>
<el-button size="" @click="handleClose">关闭</el-button>
</div>
</el-card>
<el-card style="overflow: auto"
v-if="projectInfo.processable && projectInfo.projectStatus == 'pending'">
<el-card
style="overflow: auto"
v-if="
projectInfo.processable && projectInfo.projectStatus == 'pending'
"
>
<h3>处理</h3>
<div class="m-fm">
<el-form ref="fm"
:inline="false"
:model="fmData"
:rules="dataRule"
label-position="left"
label-width="100px">
<el-form-item label="处理方式:"
prop="operateType">
<el-form
ref="fm"
:inline="false"
:model="fmData"
:rules="dataRule"
label-position="left"
label-width="100px"
>
<el-form-item label="处理方式:" prop="operateType">
<el-radio-group v-model="fmData.operateType">
<el-radio label="dispose">处理/响应</el-radio>
<el-radio label="close">结案</el-radio>
<el-radio label="turn">转其他机关/科室</el-radio>
<el-radio label="back"
v-if="projectInfo.returnable">退回</el-radio>
<el-radio label="back" v-if="projectInfo.returnable"
>退回</el-radio
>
</el-radio-group>
</el-form-item>
<el-form-item label="您的身份:"
prop="projectStaffId">
<el-select v-model.trim="fmData.projectStaffId"
placeholder="请选择"
class="resi-cell-select">
<el-option v-for="item in myDepartmentList"
:key="item.projectStaffId"
:label="item.departmentName"
:value="item.projectStaffId">
<el-form-item label="您的身份:" prop="projectStaffId">
<el-select
v-model.trim="fmData.projectStaffId"
placeholder="请选择"
class="resi-cell-select"
>
<el-option
v-for="item in myDepartmentList"
:key="item.projectStaffId"
:label="item.departmentName"
:value="item.projectStaffId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item v-if="fmData.operateType == 'turn'"
label="处理部门:"
prop="publicReply">
<el-popover placement="bottom"
width="400"
height="400"
v-model="visibleStaffPanel">
<el-form-item
v-if="fmData.operateType == 'turn'"
label="处理部门:"
prop="publicReply"
>
<el-popover
placement="bottom"
width="400"
height="400"
v-model="visibleStaffPanel"
>
<div class="f">
<select-staff @confirm="(ret) => (fmData.staffList = ret)"
@close="visibleStaffPanel = false" />
<select-staff
@confirm="(ret) => (fmData.staffList = ret)"
@close="visibleStaffPanel = false"
/>
</div>
<div slot="reference">
<a v-if="fmData.staffList.length == 0"
style="cursor: pointer">点击选择</a>
<a v-else
style="cursor: pointer">已选 {{ fmData.staffList.length }} </a>
<a
v-if="fmData.staffList.length == 0"
style="cursor: pointer"
>点击选择</a
>
<a v-else style="cursor: pointer"
>已选 {{ fmData.staffList.length }} </a
>
</div>
</el-popover>
</el-form-item>
<el-form-item v-if="fmData.operateType != 'back'"
label="协办单位:"
prop="assistanceUnitIndex">
<el-select v-model.trim="fmData.assistanceUnitIndex"
placeholder="请选择"
class="resi-cell-select">
<el-option v-for="(item, index) in assistanceUnitList"
:key="item.assistanceUnitId"
:label="item.assistanceUnitName"
:value="index">
<el-form-item
v-if="fmData.operateType != 'back'"
label="协办单位:"
prop="assistanceUnitIndex"
>
<el-select
v-model.trim="fmData.assistanceUnitIndex"
placeholder="请选择"
class="resi-cell-select"
>
<el-option
v-for="(item, index) in assistanceUnitList"
:key="item.assistanceUnitId"
:label="item.assistanceUnitName"
:value="index"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item v-if="fmData.operateType == 'back'"
label="退回到:"
prop="projectProcessId">
<el-select v-model.trim="fmData.projectProcessId"
placeholder="请选择"
class="resi-cell-select">
<el-option v-for="item in returnableList"
:key="item.projectProcessId"
:label="item.processor"
:value="item.projectProcessId">
<el-form-item
v-if="fmData.operateType == 'back'"
label="退回到:"
prop="projectProcessId"
>
<el-select
v-model.trim="fmData.projectProcessId"
placeholder="请选择"
class="resi-cell-select"
>
<el-option
v-for="item in returnableList"
:key="item.projectProcessId"
:label="item.processor"
:value="item.projectProcessId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item v-if="fmData.operateType == 'close'"
label="结案状态:"
prop="closedStatus">
<el-select v-model.trim="fmData.closedStatus"
placeholder="请选择"
class="resi-cell-select">
<el-option v-for="item in resolveTypeList"
:key="item.closedStatus"
:label="item.name"
:value="item.value">
<el-form-item
v-if="fmData.operateType == 'close'"
label="结案状态:"
prop="closedStatus"
>
<el-select
v-model.trim="fmData.closedStatus"
placeholder="请选择"
class="resi-cell-select"
>
<el-option
v-for="item in resolveTypeList"
:key="item.closedStatus"
:label="item.name"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item v-if="fmData.operateType == 'close'"
label="结案说明:"
prop="publicReply">
<el-input type="textarea"
:rows="2"
placeholder="您输入的结案说明会向居民公开展示"
v-model="fmData.publicReply">
<el-form-item
v-if="fmData.operateType == 'close'"
label="结案说明:"
prop="publicReply"
>
<el-input
type="textarea"
:rows="2"
placeholder="您输入的结案说明会向居民公开展示"
v-model="fmData.publicReply"
>
</el-input>
</el-form-item>
<el-form-item label="内部备注:"
prop="internalRemark">
<el-input type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="fmData.internalRemark">
<el-form-item label="内部备注:" prop="internalRemark">
<el-input
type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="fmData.internalRemark"
>
</el-input>
</el-form-item>
<el-form-item v-if="fmData.operateType != 'close'"
label="图片/附件:"
prop="internalFile">
<el-upload class="avatar-uploader"
:action="uploadUlr"
:data="{ customerId: customerId }"
:show-file-list="true"
:on-success="handleImgSuccess"
:on-remove="handleImgRemove"
:before-upload="beforeImgUpload">
<el-form-item
v-if="fmData.operateType != 'close'"
label="图片/附件:"
prop="internalFile"
>
<el-upload
class="avatar-uploader"
:action="uploadUlr"
:data="{ customerId: customerId }"
:show-file-list="true"
:on-success="handleImgSuccess"
:on-remove="handleImgRemove"
:before-upload="beforeImgUpload"
>
<i class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
<el-form-item v-if="fmData.operateType != 'close'"
label="公开回复:"
prop="publicReply">
<el-input type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="fmData.publicReply">
<el-form-item
v-if="fmData.operateType != 'close'"
label="公开回复:"
prop="publicReply"
>
<el-input
type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="fmData.publicReply"
>
</el-input>
</el-form-item>
</el-form>
</div>
<div class="m-btns">
<el-button size=""
style="margin-right: 50px"
@click="handleClose">关闭</el-button>
<el-button size=""
type="danger"
@click="handleSubmit">确定</el-button>
<el-button size="" style="margin-right: 50px" @click="handleClose"
>关闭</el-button
>
<el-button size="" type="danger" @click="handleSubmit"
>确定</el-button
>
</div>
</el-card>
</div>
<div class="g-right">
<el-card class="m-card"
:style="styleFullHeight"
style="overflow: auto"
v-if="projectProcess.length > 0">
<el-card
class="m-card"
:style="styleFullHeight"
style="overflow: auto"
v-if="projectProcess.length > 0"
>
<h3>处理进展</h3>
<div class="m-process">
<div class="list">
<div class="item"
:class="index === 0 ? 'z-on' : ''"
:key="item.processId"
v-for="(item, index) in projectProcess">
<div
class="item"
:class="index === 0 ? 'z-on' : ''"
:key="item.processId"
v-for="(item, index) in projectProcess"
>
<div class="item-row">
<div class="name">{{ item.processName }}</div>
<div class="date">
@ -325,22 +401,25 @@
<div class="detail-value">{{ item.departmentName }}</div>
</div>
<div class="detail"
v-if="item.assistanceUnitName">
<div class="detail" v-if="item.assistanceUnitName">
<div class="detail-field">协办单位</div>
<div class="detail-value">{{ item.assistanceUnitName }}</div>
</div>
<div class="detail"
v-if="item.processName != '转项目' && item.publicReply">
<div
class="detail"
v-if="item.processName != '转项目' && item.publicReply"
>
<div class="detail-field"> </div>
<div class="detail-value">
<fold-text :row="3">{{ item.publicReply }}</fold-text>
</div>
</div>
<div class="detail"
v-if="item.processName != '转项目' && item.internalRemark">
<div
class="detail"
v-if="item.processName != '转项目' && item.internalRemark"
>
<div class="detail-field">内部备注</div>
<div class="detail-value">
<fold-text :row="3">{{ item.internalRemark }}</fold-text>
@ -348,10 +427,12 @@
</div>
<div class="detail">
<div class="attachement-list">
<a :href="att.url"
target="_blank"
:key="att.url"
v-for="att in item.internalFile">
<a
:href="att.url"
target="_blank"
:key="att.url"
v-for="att in item.internalFile"
>
<i class="el-icon-folder-opened"></i>
{{ att.name }}
</a>
@ -365,24 +446,30 @@
</div>
<div v-if="pageType == 'origin-info'">
<issue-info v-if="projectInfo.origin == 'issue'"
@close="handleBackInfo"
:issue-id="projectInfo.originId" />
<event-info v-if="projectInfo.origin == 'resi_event'"
@close="handleBackInfo"
:event-id="projectInfo.originId" />
<issue-info
v-if="projectInfo.origin == 'issue'"
@close="handleBackInfo"
:issue-id="projectInfo.originId"
/>
<event-info
v-if="projectInfo.origin == 'resi_event'"
@close="handleBackInfo"
:event-id="projectInfo.originId"
/>
</div>
<!-- 修改弹出框 -->
<el-dialog v-if="showedEvaluation"
:visible.sync="showedEvaluation"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="showedEvaluation = false">
<el-dialog
v-if="showedEvaluation"
:visible.sync="showedEvaluation"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
width="850px"
top="5vh"
class="dialog-h"
@closed="showedEvaluation = false"
>
<project-evaluation :projectId="projectIdCopy"></project-evaluation>
</el-dialog>
</div>
@ -397,7 +484,7 @@ import eventInfo from "./event-info";
import projectEvaluation from "./project-evaluation";
import dateFormat from "dai-js/tools/dateFormat";
function iniData () {
function iniData() {
return {
pageType: "info",
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2",
@ -540,7 +627,7 @@ export default {
data: iniData,
computed: {
dataRule () {
dataRule() {
const {
fmData: { operateType },
} = this;
@ -583,13 +670,13 @@ export default {
return obj;
},
styleFullHeight () {
styleFullHeight() {
return {
maxHeight: "calc(100vh - 120px)",
};
},
styleHalfHeight () {
styleHalfHeight() {
return {
maxHeight: "calc((100vh - 140px) / 2)",
};
@ -597,7 +684,7 @@ export default {
},
watch: {
projectId () {
projectId() {
let data = iniData();
Object.keys(data).forEach((k) => {
this[k] = data[k];
@ -624,7 +711,7 @@ export default {
)["departmentName"];
}
},
selectedCateData (val) {
selectedCateData(val) {
const { cateOptions } = this;
this.projectCate = val
.filter((arr) => arr.length > 0)
@ -637,7 +724,7 @@ export default {
};
});
},
async selectedTagData (val) {
async selectedTagData(val) {
const { tagOptions } = this;
this.projectTag = await Promise.all(
val.map(async (id) => {
@ -666,31 +753,51 @@ export default {
},
},
mounted () {
mounted() {
console.log(this.projectIdCopy);
this.getApiData();
},
methods: {
beforeImgUpload (file) {
beforeImgUpload(file) {
console.log(file);
const isLt1M = file.size / 1024 / 1024 < 10;
const srcType = file.type;
const format = file.name.split(".").pop();
if (!isLt1M) {
this.$message.error("上传文件大小不能超过 10MB!");
return false;
}
if (
srcType.indexOf("image") == -1 &&
srcType.indexOf("video") == -1 &&
["doc", "docx", "xls", "xlsx", "ppt", "pptx", "pdf"].indexOf(format) ==
-1
) {
this.$message.error("文档仅限pdf和office文件!");
return false;
}
return isLt1M;
return true;
},
handleImgSuccess (res, file, fileList) {
console.log("res.data.url", file);
handleImgSuccess(res, file, fileList) {
console.log("handleImgSuccess", file);
if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url);
let format = file.name.split(".").pop();
let srcType = file.raw.type;
let type = "file";
console.log("==============================srcType: ", srcType);
if (srcType.indexOf("image") != -1) {
type = "image";
} else if (srcType.indexOf("video") != -1) {
type = "video";
}
this.fmData.internalFile.push({
format: file.name.split(".").pop(),
format,
name: file.name,
size: file.size,
type: file.raw.type,
type,
url: res.data.url,
});
console.log(this.fmData.internalFile);
@ -699,23 +806,25 @@ export default {
}
},
handleImgRemove (file) {
let index = this.fmData.internalFile.findIndex(
(item) => item.url == file.response.data.url
);
this.fmData.internalFile.splice(index, 1);
console.log(this.fmData.internalFile);
handleImgRemove(file) {
console.log("handleImgRemove", file);
if (file.response) {
let index = this.fmData.internalFile.findIndex(
(item) => item.url == file.response.data.url
);
this.fmData.internalFile.splice(index, 1);
}
},
watchImg (src) {
watchImg(src) {
window.open(src);
},
handleClose () {
handleClose() {
this.$emit("close");
},
handleSubmit () {
handleSubmit() {
this.$refs["fm"].validate((valid, messageObj) => {
if (valid) {
this.beforeSubmit();
@ -724,7 +833,7 @@ export default {
});
},
beforeSubmit () {
beforeSubmit() {
const {
fmData: { operateType },
} = this;
@ -741,15 +850,15 @@ export default {
}
},
handleWatchOrigin () {
handleWatchOrigin() {
this.pageType = "origin-info";
},
handleBackInfo () {
handleBackInfo() {
this.pageType = "info";
},
//
async submitBack () {
async submitBack() {
const url = "/gov/project/trace/return-v2";
const { fmData } = this;
@ -780,7 +889,7 @@ export default {
},
//
async submitClose () {
async submitClose() {
const url = "/gov/project/trace/closeproject-v2";
const { fmData } = this;
@ -811,7 +920,7 @@ export default {
},
//
async submitTurn () {
async submitTurn() {
const url = "/gov/project/trace/transfer-v2";
const { fmData } = this;
@ -843,7 +952,7 @@ export default {
},
//
async submitDispose () {
async submitDispose() {
const url = "/gov/project/trace/response-v2";
const { fmData } = this;
@ -874,14 +983,14 @@ export default {
}
},
async getApiData () {
async getApiData() {
await this.getProjectInfo();
this.getProjectCate();
this.getProjectProcess();
},
//
async getProjectInfo () {
async getProjectInfo() {
const url = "/gov/project/trace/projectdetail";
const { data, code, msg } = await requestPost(url, {
@ -903,7 +1012,7 @@ export default {
},
//
async getReturnableList () {
async getReturnableList() {
const url = "/gov/project/trace/returnablelist";
const { data, code, msg } = await requestPost(url, {
@ -918,7 +1027,7 @@ export default {
},
//
async getMyDepartmentList () {
async getMyDepartmentList() {
const url = "/gov/project/trace/mydepartmentlist";
const { data, code, msg } = await requestPost(url, {
@ -933,7 +1042,7 @@ export default {
},
//
async getAssistanceUnitList () {
async getAssistanceUnitList() {
const url = "/heart/icpartyunit/assistanceUnitList";
const { data, code, msg } = await requestPost(url, {
@ -948,7 +1057,7 @@ export default {
},
//
async getIssueInfo () {
async getIssueInfo() {
const url = "/resi/hall/issue/detail";
const { data, code, msg } = await requestPost(url, {
@ -963,7 +1072,7 @@ export default {
},
//
async getIssueTrend () {
async getIssueTrend() {
const url = "/resi/hall/issue/votingtrend";
const { data, code, msg } = await requestPost(url, {
@ -996,7 +1105,7 @@ export default {
},
//
async getEventInfo () {
async getEventInfo() {
const url = "/gov/project/resievent/eventdetail-icdata";
const { data, code, msg } = await requestPost(url, {
@ -1017,7 +1126,7 @@ export default {
},
//
async getProjectProcess () {
async getProjectProcess() {
const url = "/gov/project/trace/processlist-v2";
const { data, code, msg } = await requestPost(url, {
@ -1037,7 +1146,7 @@ export default {
}
},
async getProjectCate () {
async getProjectCate() {
const url = "/gov/project/projectcategory/categorytaglist";
const { data, code, msg } = await requestPost(url, {
@ -1056,7 +1165,7 @@ export default {
}
},
async getCateOptions () {
async getCateOptions() {
const url = "/gov/issue/issueprojectcategorydict/list";
const { data, code, msg } = await requestPost(url, {});
@ -1073,7 +1182,7 @@ export default {
}
},
async updateProjectCate () {
async updateProjectCate() {
const url = "/gov/project/projectcategory/save";
const { projectCate } = this;
if (projectCate.length == 0) {
@ -1094,11 +1203,11 @@ export default {
}
},
handleTagChange (val) {
handleTagChange(val) {
console.log(val);
},
async createTag (tagName) {
async createTag(tagName) {
const url = "/gov/issue/issuetags/add";
const { data, code, msg } = await requestPost(url, {
@ -1115,7 +1224,7 @@ export default {
}
},
async getTagOptions () {
async getTagOptions() {
const url = "/gov/issue/issueprojecttagdict/list";
const { data, code, msg } = await requestPost(url, {
@ -1133,7 +1242,7 @@ export default {
}
},
async updateProjectTag () {
async updateProjectTag() {
const url = "/gov/project/projecttags/save";
const { projectTag } = this;
@ -1150,13 +1259,13 @@ export default {
}
},
toUserInfo (item) {
toUserInfo(item) {
this.$router.push({
path: `/main-shuju/visual-basicinfo-people/${item.icResiUserId}`,
});
},
toProjectInfo (item) {
toProjectInfo(item) {
console.log(item);
this.projectIdCopy = item.projectId;
// let data = iniData();

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