Browse Source

Merge branch 'dev_shequzhili' into dev

test
jiangyy 3 years ago
parent
commit
a27d71b7e0
  1. BIN
      src/assets/img/shuju/measure/zhuhu_orange.png
  2. BIN
      src/assets/img/shuju/measure/zhuhu_red.png
  3. BIN
      src/assets/img/shuju/measure/zhuhu_yellow.png
  4. 2
      src/assets/scss/modules/shequzhili/event-info.scss
  5. 1
      src/views/modules/communityService/sqzzz/cpts/edit.vue
  6. 489
      src/views/modules/shequzhili/event/cpts/event-info copy.vue
  7. 22
      src/views/modules/shequzhili/event/cpts/event-info.vue
  8. 152
      src/views/modules/shequzhili/event/cpts/event-info1.vue
  9. 101
      src/views/modules/shequzhili/event/cpts/process-form-demand.vue
  10. 81
      src/views/modules/shequzhili/event/cpts/process-form-project.vue
  11. 91
      src/views/modules/shequzhili/event/cpts/process-form-replay.vue
  12. 116
      src/views/modules/shequzhili/event/cpts/process-form.vue
  13. 4
      src/views/modules/shequzhili/event/eventList.vue
  14. 86
      src/views/modules/visual/communityGovern/duoyuanfuwu/duoyuanfuwufenxi.vue
  15. 1
      src/views/modules/visual/communityGovern/shijianchuli/event-info.vue
  16. 63
      src/views/modules/visual/communityGovern/shijianfenlei/shijianfenleifenxi.vue
  17. 51
      src/views/modules/visual/cpts/analyse.vue

BIN
src/assets/img/shuju/measure/zhuhu_orange.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

BIN
src/assets/img/shuju/measure/zhuhu_red.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

BIN
src/assets/img/shuju/measure/zhuhu_yellow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

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

@ -336,7 +336,7 @@
display: flex; display: flex;
.detail-field { .detail-field {
width: 80px; width: 100px;
text-align: justify; text-align: justify;
text-align-last: justify; text-align-last: justify;
} }

1
src/views/modules/communityService/sqzzz/cpts/edit.vue

@ -492,6 +492,7 @@ export default {
organizationName: "", organizationName: "",
serviceItem: "", serviceItem: "",
organizationPersonCount: "", organizationPersonCount: "",
categoryCode: "",
principalName: "", principalName: "",
principalPhone: "", principalPhone: "",
organizationCreatedTime: "", organizationCreatedTime: "",

489
src/views/modules/shequzhili/event/cpts/event-info copy.vue

@ -1,489 +0,0 @@
<template>
<div class="">
<div v-if="pageType == 'add'">
<el-card>
<h3>新增事件</h3>
<event-add ref="ref_add"
@changeName="changeName"
@changeMobile="changeMobile"
@changeUserId="changeUserId"></event-add>
</el-card>
<div class="process-form">
<el-card>
<h3>处理</h3>
<process-form ref="ref_processinfo_add"
:demandUserId="demandUserId"
:demandUserName="demandUserName"
:demandUserMobile="demandUserMobile"></process-form>
<div class="div-btn ">
<el-button size="small"
@click="handleClose">关闭</el-button>
<el-button style="margin-left:20px"
type="primary"
size="small"
@click="handleComfirm">确定</el-button>
</div>
</el-card>
</div>
</div>
<div v-if="pageType == 'dispose'||pageType == 'info'"
class="g-page">
<div class="g-left">
<event-detail ref="ref_detail"
:eventId="eventId"
:eventDetailData="eventDetailData"
@handleClose="handleClose"></event-detail>
<div v-if="!eventDetailData.operationId"
class="process-form">
<el-card>
<h3>处理</h3>
<process-form ref="ref_processinfo_dispose"
:eventId="eventId"
:eventDetailData="eventDetailData"></process-form>
<div class="div-btn ">
<el-button size="small"
@click="handleClose">关闭</el-button>
<el-button style="margin-left:20px"
type="primary"
size="small"
@click="handleComfirm">确定</el-button>
</div>
</el-card>
</div>
</div>
<div 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="list">
<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">
{{ item.processTime }}
</div>
</div>
<div v-if="item.type==='event'">
<div class="detail">
<div class="detail-field">回复人</div>
<div class="detail-value">{{ item.publicReply }}</div>
</div>
<div class="detail">
<div class="detail-field">回复内容</div>
<div class="detail-value">{{ item.departmentName }}</div>
</div>
</div>
<div v-if="item.type==='project'">
<div v-if="item.processName==='回复'">
<div class="detail">
<div class="detail-field">回复人</div>
<div class="detail-value">{{ item.publicReply }}</div>
</div>
<div class="detail">
<div class="detail-field">回复内容</div>
<div class="detail-value">{{ item.departmentName }}</div>
</div>
</div>
<div v-else>
<div class="detail">
<div class="detail-field">处理部门</div>
<div class="detail-value">{{ item.departmentName }}</div>
</div>
<div class="detail"
v-if="item.processName == '处理响应' && item.assistanceUnitName">
<div class="detail-field"> </div>
<div class="detail-value">
<fold-text :row="3">{{ item.assistanceUnitName }}</fold-text>
</div>
</div>
<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-field">内部备注</div>
<div class="detail-value">
<fold-text :row="3">{{ item.internalRemark }}</fold-text>
</div>
</div>
<div v-if="item.internalFile&&item.internalFile.length>0"
class="detail">
<div class="attachement-list">
<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>
</div>
</div>
</div>
</div>
<div v-if="item.type==='demand'">
<div v-if="item.processName==='回复'">
<div class="detail">
<div class="detail-field">回复人</div>
<div class="detail-value">{{ item.publicReply }}</div>
</div>
<div class="detail">
<div class="detail-field">回复内容</div>
<div class="detail-value">{{ item.departmentName }}</div>
</div>
</div>
<div v-if="item.processName==='需求完成'">
<div class="detail">
<div class="detail-field">服务方</div>
<div class="detail-value">{{ item.serviceParty }}</div>
</div>
<div class="detail">
<div class="detail-field">实际服务时间</div>
<div class="detail-value">{{ item.actualServiceTime }}</div>
</div>
</div>
<div v-if="item.processName==='转服务'">
<div class="detail">
<div class="detail-field">服务时间</div>
<div class="detail-value">{{ item.serviceTime }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div v-else>暂无处理进展</div>
</el-card>
</div>
</div>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import foldText from "@/views/components/foldText";
import eventInfo from "./event-info1";
import dateFormat from "dai-js/tools/dateFormat";
import eventAdd from "./add";
import eventDetail from "./event-detail";
import processForm from "./process-form";
function iniData () {
return {
formData: {
operationType: '',
},
eventInfoData: {},
replayInfo: {},
demand: {},
project: {},
//
demandUserId: '',
demandUserName: '',
demandUserMobile: '',
eventDetailCopy: {},
projectProcess: [],
};
}
export default {
name: "projectInfo",
props: {
eventId: {
type: String,
default: "",
},
pageType: {
type: String,
default: "",
},
eventDetailData: {
type: Object,
default () {
return {}
}
},
},
components: {
foldText,
eventInfo,
eventAdd,
eventDetail,
processForm,
},
data: iniData,
computed: {},
watch: {
eventId () {
let data = iniData();
Object.keys(data).forEach((k) => {
this[k] = data[k];
});
this.getApiData();
},
},
mounted () {
if (this.pageType === 'dispose') {
this.getProjectProcess()
}
if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
}
},
methods: {
changeName (val) {
this.demandUserName = val
},
changeMobile (val) {
this.demandUserMobile = val
},
changeUserId (val) {
this.demandUserId = val
},
//
async getProjectProcess () {
const url = "/gov/project/icEvent/process";
// const url = "http://yapi.elinkservice.cn/mock/245/gov/project/icEvent/process";
const { data, code, msg } = await requestPost(url, {
icEventId: this.eventId,
});
if (code === 0) {
this.projectProcess = data.map((item) => {
item.processTime = dateFormat(
new Date(item.processTime * 1000),
"yyyy-MM-dd hh:mm"
);
return item;
});
} else {
this.$message.error(msg);
}
},
getEventInfo () {
this.$refs.ref_add.getEventInfo()
if (this.$refs.ref_add.okflag) {
this.eventInfoData = this.$refs.ref_add.formData
} else {
return false
}
console.log('eventInfo', this.eventInfoData)
},
handleComfirm () {
if (this.pageType === 'add') {
this.handelAdd()
}
if (this.pageType === 'dispose') {
this.handelDispose()
}
},
handelAdd () {
if (this.pageType === 'add') {
this.$refs.ref_add.getEventInfo()
if (this.$refs.ref_add.okflag) {
this.eventInfoData = this.$refs.ref_add.formData
} else {
return false
}
console.log('eventInfo', this.eventInfoData)
}
this.$refs.ref_processinfo_add.getProcessInfo()
if (this.$refs.ref_processinfo_add.okflag) {
this.formData.operationType = this.$refs.ref_processinfo_add.operationType
this.eventInfoData.operationType = this.$refs.ref_processinfo_add.operationType
this.eventInfoData.categoryList = this.$refs.ref_processinfo_add.categoryList
if (this.formData.operationType === '0') {
this.project = {}
this.demand = {}
this.replayInfo = this.$refs.ref_processinfo_add.replayInfo
console.log('replayInfo', this.replayInfo)
//
this.eventInfoData.content = this.replayInfo.content
this.eventInfoData.status = this.replayInfo.status
} else if (this.formData.operationType === '1') {
this.replayInfo = {}
this.demand = {}
this.project = this.$refs.ref_processinfo_add.project
//
this.project.gridId = this.eventInfoData.gridId
console.log('projectInfo', this.project)
} else if (this.formData.operationType === '2') {
this.replayInfo = {}
this.project = {}
this.demand = this.$refs.ref_processinfo_add.demand
//
this.demand.gridId = this.eventInfoData.gridId
this.demand.reportUserName = this.eventInfoData.name//
this.demand.reportUserMobile = this.eventInfoData.mobile//
this.demand.reportTime = this.eventInfoData.happenTime//
console.log('demond', this.demand)
}
} else {
return false
}
this.formData = {
...this.eventInfoData,
// replayInfo: this.replayInfo,
project: this.project,
demand: this.demand
}
console.log('this.formData', this.formData)
this.submit()
},
async submit () {
const url = "/gov/project/icEvent/add";
const { formData } = this;
const { data, code, msg } = await requestPost(url, {
...formData,
});
if (code === 0) {
this.$message.success("操作成功!");
if (this.pageType === 'add') {
this.eventInfo = this.$refs.ref_add.resetData()
}
this.$emit("handleOk");
} else {
}
},
handelDispose () {
this.$refs.ref_processinfo_dispose.getProcessInfo()
if (this.$refs.ref_processinfo_dispose.okflag) {
this.formData.operationType = this.$refs.ref_processinfo_dispose.operationType
if (this.formData.operationType === '0') {
this.project = {}
this.demand = {}
this.replayInfo = this.$refs.ref_processinfo_dispose.replayInfo
this.replayInfo.icEventId = this.eventId
console.log('replayInfo', this.replayInfo)
//
let url = '/gov/project/icEvent/reply'
this.submitDispose(url, this.replayInfo)
} else if (this.formData.operationType === '1') {
this.replayInfo = {}
this.demand = {}
this.project = this.$refs.ref_processinfo_dispose.project
//
this.project.icEventId = this.eventId
console.log('projectInfo', this.project)
let url = '/gov/project/icEvent/icEventToProject'
this.submitDispose(url, this.project)
} else if (this.formData.operationType === '2') {
this.replayInfo = {}
this.project = {}
this.demand = this.$refs.ref_processinfo_dispose.demand
//
this.demand.icEventId = this.eventId
console.log('demond', this.demand)
let url = '/gov/project/icEvent/icEventToDemand'
this.submitDispose(url, this.demand)
}
} else {
return false
}
},
async submitDispose (url, params) {
const { data, code, msg } = await requestPost(url, {
...params,
});
if (code === 0) {
this.$message.success("操作成功!");
this.$emit("handleOk");
} else {
}
},
handleClose () {
if (this.pageType === 'add') {
this.eventInfo = this.$refs.ref_add.resetData()
}
this.$emit("handleClose");
}
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/shequzhili/event-info.scss"
scoped
></style>

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

@ -354,25 +354,23 @@ export default {
}, },
async handelAdd () { async handelAdd () {
if (this.pageTypeCopy === 'add') {
this.$refs.ref_add.getEventInfo()
if (this.$refs.ref_add.okflag) {
this.eventInfoData = this.$refs.ref_add.formData this.$refs.ref_add.getEventInfo()
} else { if (this.$refs.ref_add.okflag) {
return false
}
console.log('eventInfo', this.eventInfoData) this.eventInfoData = this.$refs.ref_add.formData
} else {
return false
} }
console.log('eventInfo', this.eventInfoData)
this.$refs.ref_processinfo_add.getProcessInfo() this.$refs.ref_processinfo_add.getProcessInfo()
if (this.$refs.ref_processinfo_add.okflag) { if (this.$refs.ref_processinfo_add.okflag) {
this.formData.operationType = this.$refs.ref_processinfo_add.operationType this.formData.operationType = this.$refs.ref_processinfo_add.operationType
this.eventInfoData.operationType = this.$refs.ref_processinfo_add.operationType this.eventInfoData.operationType = this.$refs.ref_processinfo_add.operationType
// this.eventInfoData.categoryList = this.$refs.ref_processinfo_add.categoryList
this.eventInfoData.categoryList = this.$refs.ref_processinfo_add.categoryList
if (this.formData.operationType === '0') { if (this.formData.operationType === '0') {
this.project = {} this.project = {}
@ -403,8 +401,6 @@ export default {
console.log('demond', this.demand) console.log('demond', this.demand)
} }
} else {
return false
} }
this.formData = { this.formData = {
@ -475,6 +471,8 @@ export default {
console.log('demond', this.demand) console.log('demond', this.demand)
let url = '/gov/project/icEvent/icEventToDemand' let url = '/gov/project/icEvent/icEventToDemand'
await this.submitDispose(url, this.demand) await this.submitDispose(url, this.demand)
} else {
this.$message.info("请选择一种处理方式");
} }
} else { } else {

152
src/views/modules/shequzhili/event/cpts/event-info1.vue

@ -1,152 +0,0 @@
<template>
<div class="">
<div class="g-page" v-show="pageType == 'info'">
<div class="g-left">
<el-card>
<h3>事件详情</h3>
<div class="m-row">
<div class="m-info">
<div class="info-title">事件内容</div>
<div class="info-content">{{ info.eventContent }}</div>
<div class="info-pics">
<img
:src="src"
:key="src"
v-for="src in info.eventImgs"
@click="watchImg(src)"
/>
</div>
<div class="info-prop">
<span class="info-title-2">提交时间</span>
<span>{{ info.eventTime }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">报事人</span>
<span>{{ info.eventPeopleName }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">所属网格</span>
<span>{{ info.gridName }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">提报给</span>
<div>
<div>{{ info.eventPersonShow }}</div>
<div>{{ info.eventOrgShow }}</div>
</div>
<!-- <span>{{ info.eventPerson.join("、") || "--" }}</span> -->
</div>
</div>
</div>
<div class="m-btns" v-if="type == 'info'">
<el-button size="" @click="handleClose">关闭</el-button>
</div>
</el-card>
</div>
<div class="g-right"></div>
</div>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import foldText from "@/views/components/foldText";
import dateFormat from "dai-js/tools/dateFormat";
function iniData() {
return {
pageType: "info",
eventInfo: {
eventTime: "",
eventContent: "",
eventAddress: "",
gridName: "",
isClosed: true,
isResolve: true,
isRollback: true,
eventImgs: [],
eventPerson: [],
eventOrg: [],
eventPeopleName: "",
projectInfo: {
projectId: "",
operationName: "",
operationTime: "",
projectDeclare: "",
},
},
};
}
export default {
name: "issueInfo",
props: {
eventId: {
type: String,
default: "64502a8f1048a7240295527a9b32e513",
},
type: {
type: String,
default: "info",
},
},
components: {
foldText,
},
data: iniData,
computed: {},
watch: {},
mounted() {
this.getApiData();
},
methods: {
watchImg(src) {
window.open(src);
},
handleClose() {
this.$emit("close");
},
async getApiData() {
this.getEventInfo();
},
//
async getEventInfo() {
const url = "/gov/project/resievent/eventdetail-icdata";
const { data, code, msg } = await requestPost(url, {
resiEventId: this.projectInfo.originId,
});
if (code === 0) {
if (data.eventOrg && data.eventOrg.length > 0) {
data.eventOrgShow = data.eventOrg.join("、");
}
if (data.eventPerson && data.eventPerson.length > 0) {
data.eventPersonShow = data.eventPerson.join("、");
}
this.info = { ...data };
} else {
this.$message.error(msg);
}
},
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/shequzhili/project-info.scss"
scoped
></style>

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

@ -5,7 +5,19 @@
:model="formData" :model="formData"
:rules="dataRule" :rules="dataRule"
label-width="100px"> label-width="100px">
<el-form-item label="需求内容" <el-form-item label="事件分类"
label-width="150px"
prop="categoryId">
<el-cascader class="cell-width-2"
ref="myCascader"
v-model="selCategoryArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeCate"></el-cascader>
</el-form-item>
<el-form-item label="服务内容"
label-width="150px" label-width="150px"
prop="content"> prop="content">
<el-input v-model="formData.content" <el-input v-model="formData.content"
@ -16,7 +28,7 @@
placeholder="请输入内容"></el-input> placeholder="请输入内容"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="需求类型" <el-form-item label="服务类型"
label-width="150px" label-width="150px"
prop="categoryCode"> prop="categoryCode">
@ -40,7 +52,7 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="需求人" <el-form-item label="服务人"
label-width="150px" label-width="150px"
prop="demandUserName"> prop="demandUserName">
<el-input v-model="formData.demandUserName" <el-input v-model="formData.demandUserName"
@ -165,19 +177,19 @@ var geocoder // 新建一个正逆地址解析类
function iniFmData () { function iniFmData () {
return { return {
operationType: '2',//[0: 1: 2:] operationType: '2',//[0: 1: 2:]
icEventId: '',//Id icEventId: '',//Id
gridId: '',// gridId: '',//
categoryCode: '',// categoryCode: '',//
parentCode: '',// parentCode: '',//
content: '',// 1000 content: '',// 1000
reportType: 'self_help',// communitybuilding_caption;party;self_help reportType: 'self_help',// communitybuilding_caption;party;self_help
reportUserName: '',// reportUserName: '',//
reportUserMobile: '',// reportUserMobile: '',//
reportTime: '',// reportTime: '',//
demandUserId: '',// user.idic_resi_user.id demandUserId: '',// user.idic_resi_user.id
demandUserName: '',// demandUserName: '',//
demandUserMobile: '',// demandUserMobile: '',//
wantServiceTime: '',// wantServiceTime: '',//
serviceType: '', serviceType: '',
serverId: '', serverId: '',
@ -185,6 +197,7 @@ function iniFmData () {
serviceLocation: '',// serviceLocation: '',//
latitude: '',// latitude: '',//
longitude: '',// longitude: '',//
categoryId: ''
}; };
} }
export default { export default {
@ -213,6 +226,17 @@ export default {
], ],
serviceOptiondList: [], serviceOptiondList: [],
casOptions: [],
iscascaderShow: 0,
selCategoryArray: [],
selCateObj: {},
optionProps: {
multiple: false,
value: 'id',
label: 'name',
children: 'subCategory',
},
formData: iniFmData(), formData: iniFmData(),
formDataTemp: { formDataTemp: {
icEventId: "", icEventId: "",
@ -251,17 +275,20 @@ export default {
dataRule () { dataRule () {
return { return {
categoryId: [
{ required: true, message: "请填写事件分类", trigger: "blur" },
],
content: [ content: [
{ required: true, message: "需求内容不能为空", trigger: "blur" }, { required: true, message: "服务内容不能为空", trigger: "blur" },
], ],
categoryCode: [ categoryCode: [
{ required: true, message: "需求类型不能为空", trigger: "blur" }, { required: true, message: "服务类型不能为空", trigger: "blur" },
], ],
wantServiceTime: [ wantServiceTime: [
{ required: true, message: "服务时间不能为空", trigger: "blur" }, { required: true, message: "服务时间不能为空", trigger: "blur" },
], ],
demandUserName: [ demandUserName: [
{ required: true, message: "需求人不能为空", trigger: "blur" }, { required: true, message: "服务人不能为空", trigger: "blur" },
], ],
demandUserMobile: [ demandUserMobile: [
{ required: true, message: "联系电话不能为空", trigger: "blur" }, { required: true, message: "联系电话不能为空", trigger: "blur" },
@ -325,6 +352,7 @@ export default {
async mounted () { async mounted () {
const { user } = this.$store.state const { user } = this.$store.state
this.agencyId = user.agencyId this.agencyId = user.agencyId
this.getCategoryList();
this.getDemandOptions(); this.getDemandOptions();
// this.formData = { ...this.formDataTemp } // this.formData = { ...this.formDataTemp }
this.initMap() this.initMap()
@ -343,11 +371,55 @@ export default {
this.formData.demandUserId = this.demandUserId this.formData.demandUserId = this.demandUserId
} }
}, },
methods: { methods: {
async getCategoryList () {
const url = "/gov/issue/issueprojectcategorydict/list"
let params = {}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
let treeDataNew = this.filterTree(data)
//
++this.iscascaderShow
this.casOptions = []
this.casOptions = treeDataNew
} else {
this.$message.error(msg)
}
},
handleChangeCate () {
console.log(this.$refs["myCascader"].getCheckedNodes()[0].data)
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
this.formData.categoryId = this.selCateObj.id
},
//
filterTree (arr) {
let childs = arr
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
if (childs[i].subCategory.length) {
this.filterTree(childs[i].subCategory)
} else {
delete childs[i].subCategory
}
}
}
return arr
},
async getDemandOptions () { async getDemandOptions () {
const url = "/heart/icresidemanddict/demandoption" const url = "/heart/icresidemanddict/demandoption"
let params = {} let params = {}
@ -404,6 +476,7 @@ export default {
this.formData.categoryCode = val[1]; this.formData.categoryCode = val[1];
} }
}, },
handleServiceChange (type, val) { handleServiceChange (type, val) {
if (val === "social_org") { if (val === "social_org") {
if (type === "add") this.getServiceuserList(val, "add_demand"); if (type === "add") this.getServiceuserList(val, "add_demand");

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

@ -5,6 +5,18 @@
:model="formData" :model="formData"
:rules="dataRule" :rules="dataRule"
label-width="100px"> label-width="100px">
<el-form-item label="事件分类"
label-width="150px"
prop="categoryList">
<el-cascader class="cell-width-2"
ref="myCascader"
v-model="selCategoryArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeCate"></el-cascader>
</el-form-item>
<el-form-item label="项目标题" <el-form-item label="项目标题"
prop="title" prop="title"
label-width="150px" label-width="150px"
@ -175,7 +187,7 @@ import { isCard } from "@/utils/validate";
let loading; // let loading; //
function iniFmData () { function iniFmData () {
return { return {
operationType: '1',//[0: 1: 1:] operationType: '1',//[0: 1: 2:]
publicReply: '',// 1000 publicReply: '',// 1000
internalRemark: '',// 1000 internalRemark: '',// 1000
gridId: '',// gridId: '',//
@ -184,7 +196,9 @@ function iniFmData () {
assistanceUnitType: '',// 12 assistanceUnitType: '',// 12
staffList: [],// staffList: [],//
categoryList: [],// categoryList: [],//
tagList: [],// tagList: [],//
internalFile: [],// internalFile: [],//
title: '',// title: '',//
@ -211,6 +225,16 @@ export default {
visibleTagPanel: false, visibleTagPanel: false,
selectedTagData: [], selectedTagData: [],
casOptions: [],
iscascaderShow: 0,
selCategoryArray: [],
selCateObj: {},
optionProps: {
multiple: false,
value: 'id',
label: 'name',
children: 'subCategory',
},
formData: iniFmData(), formData: iniFmData(),
formDataTemp: { formDataTemp: {
@ -254,6 +278,9 @@ export default {
dataRule () { dataRule () {
return { return {
categoryList: [
{ required: true, message: "请填写事件分类", trigger: "blur" },
],
title: [ title: [
{ required: true, message: "标题不能为空", trigger: "blur" }, { required: true, message: "标题不能为空", trigger: "blur" },
], ],
@ -329,6 +356,7 @@ export default {
async mounted () { async mounted () {
const { user } = this.$store.state const { user } = this.$store.state
this.agencyId = user.agencyId this.agencyId = user.agencyId
this.getCategoryList();
this.loadGrid(); this.loadGrid();
this.getMyDepartmentList(); this.getMyDepartmentList();
this.getAssistanceUnitList(); this.getAssistanceUnitList();
@ -342,6 +370,52 @@ export default {
}, },
methods: { methods: {
async getCategoryList () {
const url = "/gov/issue/issueprojectcategorydict/list"
let params = {}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
let treeDataNew = this.filterTree(data)
//
++this.iscascaderShow
this.casOptions = []
this.casOptions = treeDataNew
} else {
this.$message.error(msg)
}
},
handleChangeCate () {
console.log(this.$refs["myCascader"].getCheckedNodes()[0].data)
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
this.formData.categoryList = []
this.formData.categoryList.push(this.selCateObj)
},
//
filterTree (arr) {
let childs = arr
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
if (childs[i].subCategory.length) {
this.filterTree(childs[i].subCategory)
} else {
delete childs[i].subCategory
}
}
}
return arr
},
async loadGrid () { async loadGrid () {
const url = "/gov/org/customergrid/gridoption" const url = "/gov/org/customergrid/gridoption"
@ -396,7 +470,7 @@ export default {
const url = "/gov/issue/issueprojecttagdict/list"; const url = "/gov/issue/issueprojecttagdict/list";
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
// categoryList: this.projectCate,
}); });
if (code === 0) { if (code === 0) {
@ -409,7 +483,6 @@ export default {
} }
}, },
handleTagChange (val) { handleTagChange (val) {
console.log(val); console.log(val);
}, },

91
src/views/modules/shequzhili/event/cpts/process-form-replay.vue

@ -6,6 +6,18 @@
:model="formData" :model="formData"
:rules="dataRule" :rules="dataRule"
class="form"> class="form">
<el-form-item label="事件分类"
label-width="150px"
prop="categoryList">
<el-cascader class="cell-width-2"
ref="myCascader"
v-model="selCategoryArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeCate"></el-cascader>
</el-form-item>
<el-form-item label="回复内容" <el-form-item label="回复内容"
prop="content" prop="content"
label-width="150px" label-width="150px"
@ -46,7 +58,7 @@ export default {
return { return {
btnDisable: false, btnDisable: false,
formData: { formData: {
operationType: '0',//[0: 1: 1:] operationType: '0',//[0: 1: 2:]
content: '', content: '',
status: '' status: ''
}, },
@ -54,7 +66,18 @@ export default {
status: false, status: false,
okflag: false, okflag: false,
eventDetailCopy: {} eventDetailCopy: {},
casOptions: [],
iscascaderShow: 0,
selCategoryArray: [],
selCateObj: {},
optionProps: {
multiple: false,
value: 'id',
label: 'name',
children: 'subCategory',
},
}; };
}, },
@ -84,13 +107,68 @@ export default {
watch: {}, watch: {},
async mounted () { async mounted () {
this.getCategoryList()
if (this.eventId) { if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData)); this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.selCategoryArray = []
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId)
this.selCategoryArray.push(this.eventDetailCopy.categoryId)
this.selCateObj = {
name: this.eventDetailCopy.categoryName,
id: this.eventDetailCopy.categoryId
}
}
} }
}, },
methods: { methods: {
async getCategoryList () {
const url = "/gov/issue/issueprojectcategorydict/list"
let params = {}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
let treeDataNew = this.filterTree(data)
//
++this.iscascaderShow
this.casOptions = []
this.casOptions = treeDataNew
} else {
this.$message.error(msg)
}
},
handleChangeCate () {
console.log(this.$refs["myCascader"].getCheckedNodes()[0].data)
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
},
//
filterTree (arr) {
let childs = arr
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
if (childs[i].subCategory.length) {
this.filterTree(childs[i].subCategory)
} else {
delete childs[i].subCategory
}
}
}
return arr
},
async getReplayInfo () { async getReplayInfo () {
this.okflag = false this.okflag = false
this.$refs["ref_form1"].validate((valid, messageObj) => { this.$refs["ref_form1"].validate((valid, messageObj) => {
@ -98,11 +176,20 @@ export default {
app.util.validateRule(messageObj); app.util.validateRule(messageObj);
} else { } else {
if (this.status) { if (this.status) {
if (!this.selCateObj || !this.selCateObj.id) {
this.$message.info("请填写事件分类");
return false
}
this.formData.status = 'closed_case' this.formData.status = 'closed_case'
} else { } else {
this.formData.status = 'processing' this.formData.status = 'processing'
} }
this.formData.categoryId = this.selCateObj.id
this.formData.categoryList = []
this.formData.categoryList.push(this.selCateObj)
this.okflag = true this.okflag = true
} }

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

@ -6,26 +6,14 @@
:inline="false" :inline="false"
:rules="dataRule" :rules="dataRule"
class="form"> class="form">
<el-form-item label="分类"
label-width="150px"
prop="categoryList">
<el-cascader class="cell-width-2"
ref="myCascader"
:disabled="operationType==='2'"
v-model="selCategoryArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeCate"></el-cascader>
</el-form-item>
<el-form-item label="处理方式" <el-form-item label="处理方式"
label-width="150px" label-width="150px"
prop="operationType"> prop="operationType">
<el-radio-group v-model="operationType"> <el-radio-group v-model="operationType">
<el-radio label="0">回复</el-radio> <el-radio label="0">回复</el-radio>
<el-radio label="1">立项</el-radio> <el-radio label="1">立项</el-radio>
<el-radio label="2">需求</el-radio> <el-radio label="2">转服务</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
@ -70,24 +58,20 @@ export default {
data () { data () {
return { return {
casOptions: [], casOptions: [],
iscascaderShow: 0, iscascaderShow: 0,
selCategoryArray: [ selCategoryArray: [],
],
selCateObj: {}, selCateObj: {},
optionProps: { optionProps: {
multiple: false, multiple: false,
value: 'id', value: 'id',
label: 'name', label: 'name',
children: 'subCategory', children: 'subCategory',
}, },
operationType: '0', operationType: '',
categoryList: [],
replayInfo: {}, replayInfo: {},
demand: {}, demand: {},
project: {}, project: {},
@ -105,9 +89,7 @@ export default {
computed: { computed: {
dataRule () { dataRule () {
return { return {
categoryList: [
{ required: true, message: "分类不能为空", trigger: "blur" },
],
operationType: [ operationType: [
{ required: true, message: "处理方式不能为空", trigger: "blur" }, { required: true, message: "处理方式不能为空", trigger: "blur" },
], ],
@ -149,117 +131,39 @@ export default {
async mounted () { async mounted () {
const { user } = this.$store.state const { user } = this.$store.state
this.agencyId = user.agencyId this.agencyId = user.agencyId
await this.getCategoryList()
if (this.eventId) { if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData)); this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.selCategoryArray = []
this.selCategoryArray.push(this.eventDetailCopy.parentCategoryId)
this.selCategoryArray.push(this.eventDetailCopy.categoryId)
this.selCateObj = {
name: this.eventDetailCopy.categoryName,
id: this.eventDetailCopy.categoryId
}
}
}
}
}, },
methods: { methods: {
async getCategoryList () {
const url = "/gov/issue/issueprojectcategorydict/list"
let params = {}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
let treeDataNew = this.filterTree(data)
//
++this.iscascaderShow
this.casOptions = []
this.casOptions = treeDataNew
} else {
this.$message.error(msg)
}
},
handleChangeCate () {
console.log(this.$refs["myCascader"].getCheckedNodes()[0].data)
this.selCateObj = this.$refs["myCascader"].getCheckedNodes()[0].data
},
//
filterTree (arr) {
let childs = arr
for (let i = childs.length; i--; i > 0) {
if (childs[i].subCategory) {
if (childs[i].subCategory.length) {
this.filterTree(childs[i].subCategory)
} else {
delete childs[i].subCategory
}
}
}
return arr
},
async getProcessInfo () { async getProcessInfo () {
this.okflag = false this.okflag = false
if (this.selCategoryArray.length === 0) { // this.categoryList = []
this.$message({
type: "error",
message: "请选择分类",
});
this.okflag = false
return false
}
this.categoryList = []
this.categoryList.push(this.selCategoryArray[1])
// this.categoryList.push(this.selCategoryArray[1])
if (this.operationType === '0') { if (this.operationType === '0') {
this.$refs.ref_process_form_replay.getReplayInfo() this.$refs.ref_process_form_replay.getReplayInfo()
if (this.$refs.ref_process_form_replay.okflag) { if (this.$refs.ref_process_form_replay.okflag) {
this.replayInfo = this.$refs.ref_process_form_replay.formData this.replayInfo = this.$refs.ref_process_form_replay.formData
this.replayInfo.categoryId = this.categoryList[0]
this.replayInfo.categoryList = this.categoryList
this.okflag = true this.okflag = true
} else { } else {
return false return false
} }
} else if (this.operationType === '1') { } else if (this.operationType === '1') {
this.$refs.ref_process_form_project.getProjectInfo() this.$refs.ref_process_form_project.getProjectInfo()
if (this.$refs.ref_process_form_project.okflag) { if (this.$refs.ref_process_form_project.okflag) {
this.project = this.$refs.ref_process_form_project.formData this.project = this.$refs.ref_process_form_project.formData
this.project.categoryList = []
this.project.categoryList.push(this.selCateObj)
// //
this.okflag = true this.okflag = true

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

@ -436,8 +436,8 @@ export default {
computed: { computed: {
maxTableHeight () { maxTableHeight () {
return this.$store.state.inIframe return this.$store.state.inIframe
? this.clientHeight - 400 + this.iframeHeigh ? this.clientHeight - 410 + this.iframeHeigh
: this.clientHeight - 400; : this.clientHeight - 410;
}, },
...mapGetters(["clientHeight", "iframeHeight"]), ...mapGetters(["clientHeight", "iframeHeight"]),
}, },

86
src/views/modules/visual/communityGovern/duoyuanfuwu/duoyuanfuwufenxi.vue

@ -105,6 +105,15 @@ import nextTick from 'dai-js/tools/nextTick'
const transparent = 'rgba(2, 2, 2, 0)' const transparent = 'rgba(2, 2, 2, 0)'
const polygonColorArray = [ '#f59701', '#0067b6', '#e70014', '#8fc41e', '#00a1be' ] const polygonColorArray = [ '#f59701', '#0067b6', '#e70014', '#8fc41e', '#00a1be' ]
const colorArray = [ '#1B51FF', '#00E5ED', '#7800FF', '#16D783', '#FF7800', '#FFBA00', '#FFD685', '#2A00FF', '#C600FF', '#FF2A00'] const colorArray = [ '#1B51FF', '#00E5ED', '#7800FF', '#16D783', '#FF7800', '#FFBA00', '#FFD685', '#2A00FF', '#C600FF', '#FF2A00']
const legendList = [
{ name: '#e70014', icon: require('../../../../../assets/img/shuju/volunteer4.png') },
{ name: '#f59701', icon: require('../../../../../assets/img/shuju/volunteer5.png') },
{ name: '#8fc41e', icon: require('../../../../../assets/img/shuju/volunteer7.png') },
{ name: '#00a1be', icon: require('../../../../../assets/img/shuju/volunteer8.png') },
{ name: '#0067b6', icon: require('../../../../../assets/img/shuju/volunteer9.png') },
{ name: '', icon: require('../../../../../assets/img/shuju/volunteer1.png') }
]
const defaultLegendIcon = require('../../../../../assets/img/shuju/volunteer1.png')
export default { export default {
name: "duoyuanfuwufenxi", name: "duoyuanfuwufenxi",
data () { data () {
@ -142,7 +151,8 @@ export default {
list: [], list: [],
pageSize: 10, pageSize: 10,
pageNo: 1, pageNo: 1,
total: 0 total: 0,
categoryCode: ''
}, },
// //
isfirstInit: true, // isfirstInit: true, //
@ -150,11 +160,11 @@ export default {
distributionsList: [], distributionsList: [],
legendArray: [], legendArray: [],
iconUrlArray: [ iconUrlArray: [
require('../../../../../assets/img/shuju/volunteer9.png'), //
require('../../../../../assets/img/shuju/volunteer4.png'), // require('../../../../../assets/img/shuju/volunteer4.png'), //
require('../../../../../assets/img/shuju/volunteer5.png'), //
require('../../../../../assets/img/shuju/volunteer7.png'), // require('../../../../../assets/img/shuju/volunteer7.png'), //
require('../../../../../assets/img/shuju/volunteer8.png'), // require('../../../../../assets/img/shuju/volunteer8.png'), //
require('../../../../../assets/img/shuju/volunteer5.png'), // require('../../../../../assets/img/shuju/volunteer9.png'), //
require('../../../../../assets/img/shuju/volunteer1.png'), // require('../../../../../assets/img/shuju/volunteer1.png'), //
require('../../../../../assets/img/shuju/volunteer2.png'), // require('../../../../../assets/img/shuju/volunteer2.png'), //
require('../../../../../assets/img/shuju/volunteer3.png'), // require('../../../../../assets/img/shuju/volunteer3.png'), //
@ -217,10 +227,10 @@ export default {
}, },
// //
async getTable (categoryCode = '') { async getTable () {
const url = "/heart/iccommunityselforganization/category-list" const url = "/heart/iccommunityselforganization/category-list"
const params = { const params = {
categoryCode: categoryCode, categoryCode: this.categoryCode,
pageNo: this.demand.pageNo, pageNo: this.demand.pageNo,
pageSize: this.demand.pageSize pageSize: this.demand.pageSize
} }
@ -278,18 +288,18 @@ export default {
this.pieData.forEach((item, index) => { this.pieData.forEach((item, index) => {
this.pieTotal = this.pieTotal + item.value this.pieTotal = this.pieTotal + item.value
if (item.value > maxValue) { // if (item.value > maxValue) {
maxValue = item.value // maxValue = item.value
maxIndex = index // maxIndex = index
item.selected = true // item.selected = true
} else if (index !== 0) { // } else if (index !== 0) {
item.selected = false // item.selected = false
} // }
}) })
this.pieOption.title.text = this.pieTotal this.pieOption.title.text = this.pieTotal
this.clickPie(maxIndex) this.clickPie() // this.clickPie(maxIndex)
let fun = function (params) { let fun = function (params) {
_that.clickPie(params.dataIndex) _that.clickPie(params.dataIndex)
@ -309,7 +319,10 @@ export default {
opacity: 1, opacity: 1,
} }
} }
this.getTable(element.code) this.categoryCode = element.code
this.demand.pageNo = 1
this.getTable()
this.getMapData()
} else { } else {
element.label = { element.label = {
show: false, show: false,
@ -367,27 +380,58 @@ export default {
this.$message.error(msg) this.$message.error(msg)
} }
}, },
getLegendIcon (color) {
let icon = ''
legendList.forEach(item => {
if (item.name == color) {
icon = item.icon
}
})
if (!icon) {
icon = defaultLegendIcon
}
return icon
},
getLegendIconIndex (color) {
let iconIndex = 0
this.iconUrlList.forEach((item, index) => {
if (color == item.color) {
iconIndex = index
}
})
return iconIndex
},
async getMapData () { async getMapData () {
this.legendArray = []
this.pieData.forEach((item, index) => { this.pieData.forEach((item, index) => {
let ob = { let ob = {
optionValue: item.code, optionValue: item.code,
optionLabel: item.name, optionLabel: item.name,
url: index < this.iconUrlArray.length ? this.iconUrlArray[index] : this.iconUrlArray[0] url: this.getLegendIcon(item.color)
} }
this.legendArray.push(ob) this.legendArray.push(ob)
}) })
const url = '/heart/iccommunityselforganization/coordinate-list' const url = '/heart/iccommunityselforganization/coordinate-list'
const params = { const params = {
categoryCode: '' categoryCode: this.categoryCode
} }
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
if (code === 0) { if (code === 0) {
if (this.isfirstInit) {
this.iconUrlArray = []
this.iconUrlList = []
data.list.forEach(item => {
this.iconUrlArray.push(this.getLegendIcon(item.color))
this.iconUrlList.push(item)
})
}
this.distributionsList = []
data.list.forEach((item, index) => { data.list.forEach((item, index) => {
item.urlIndex = index < this.iconUrlArray.length ? index : 0 item.urlIndex = this.getLegendIconIndex(item.color)
if (index === 0) { // if (index === 0) {
item.latitude = "36.07394505338441" // item.latitude = "36.07394505338441"
item.longitude = "120.3868167667315" // item.longitude = "120.3868167667315"
} // }
this.distributionsList.push(item) this.distributionsList.push(item)
}) })
// this.distributionsList = data.list // this.distributionsList = data.list

1
src/views/modules/visual/communityGovern/shijianchuli/event-info.vue

@ -146,6 +146,7 @@
:userTag="'(报事人)'" :userTag="'(报事人)'"
:singleList="yanPan.singleList" :singleList="yanPan.singleList"
:hasEvent="yanPan.hasEvent" :hasEvent="yanPan.hasEvent"
:bcLimit="yanPan.resiReportEventCount"
@user="toUserInfo" /> @user="toUserInfo" />
<div v-else <div v-else
class="m-hint"> class="m-hint">

63
src/views/modules/visual/communityGovern/shijianfenlei/shijianfenleifenxi.vue

@ -240,9 +240,7 @@ export default {
categoryCode: '', categoryCode: '',
tableOrgId: '', tableOrgId: '',
eventId: '', eventId: '',
processStatus: '', processStatus: ''
isFirstLoadPie: true, //
isFirstLoadTable: true, //
} }
}, },
// mixins: [animate] // mixins: [animate]
@ -261,12 +259,6 @@ export default {
// //
await this.handleChangeDate(this.dataType) await this.handleChangeDate(this.dataType)
if (this.isFirstLoadPie) {
await this.getGridPieData()
}
if (this.isFirstLoadTable) {
await this.getTable()
}
this.dataLoading = false this.dataLoading = false
}, },
@ -364,7 +356,6 @@ export default {
this.$refs.pieChart.hideLoading() this.$refs.pieChart.hideLoading()
} }
if (code === 0) { if (code === 0) {
this.categoryCode = data[0].categoryCode
this.pieData = [] this.pieData = []
data.forEach((item, index) => { data.forEach((item, index) => {
let ob = { let ob = {
@ -395,7 +386,7 @@ export default {
orgType: this.orgType, orgType: this.orgType,
queryStartTime: this.queryStartTime, queryStartTime: this.queryStartTime,
queryEndTime: this.queryEndTime, queryEndTime: this.queryEndTime,
categoryCode: this.isFirstLoadPie ? '' : this.categoryCode categoryCode: this.categoryCode
} }
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
if (this.$refs.gridPieChart) { if (this.$refs.gridPieChart) {
@ -429,7 +420,7 @@ export default {
queryStartTime: this.queryStartTime, queryStartTime: this.queryStartTime,
queryEndTime: this.queryEndTime, queryEndTime: this.queryEndTime,
processStatus: this.processStatus, // processing,closed_case processStatus: this.processStatus, // processing,closed_case
categoryCode: this.isFirstLoadTable ? '' : this.categoryCode, categoryCode: this.categoryCode,
pageNo: this.demand.pageNo, pageNo: this.demand.pageNo,
pageSize: this.demand.pageSize, pageSize: this.demand.pageSize,
} }
@ -496,18 +487,18 @@ export default {
this.pieData.forEach((item, index) => { this.pieData.forEach((item, index) => {
this.pieTotal = this.pieTotal + item.value this.pieTotal = this.pieTotal + item.value
if (item.value > maxValue) { // if (item.value > maxValue) {
maxValue = item.value // maxValue = item.value
maxIndex = index // maxIndex = index
item.selected = true // item.selected = true
} else if (index !== 0) { // } else if (index !== 0) {
item.selected = false // item.selected = false
} // }
}) })
this.pieOption.title.text = this.pieTotal this.pieOption.title.text = this.pieTotal
this.clickPie(maxIndex) this.clickPie() // this.clickPie(maxIndex)
let fun = function (params) { let fun = function (params) {
_that.clickPie(params.dataIndex) _that.clickPie(params.dataIndex)
@ -545,11 +536,9 @@ export default {
this.pieOption.series[1].data = this.pieData this.pieOption.series[1].data = this.pieData
// this.$refs.pieChart.hideLoading() // this.$refs.pieChart.hideLoading()
this.$refs.pieChart.setOption(this.pieOption) this.$refs.pieChart.setOption(this.pieOption)
if (!this.isFirstLoadPie) { this.tableOrgId = ''
this.tableOrgId = '' this.demand.pageNo = 1
this.demand.pageNo = 1 this.getGridPieData()
this.getGridPieData()
}
}, },
@ -579,19 +568,19 @@ export default {
this.gridPieData.forEach((item, index) => { this.gridPieData.forEach((item, index) => {
this.gridPieTotal = this.gridPieTotal + item.value this.gridPieTotal = this.gridPieTotal + item.value
if (item.value > maxValue) { // if (item.value > maxValue) {
maxValue = item.value // maxValue = item.value
maxIndex = index // maxIndex = index
item.selected = true // item.selected = true
} else if (index !== 0) { // } else if (index !== 0) {
item.selected = false // item.selected = false
} // }
}) })
this.gridPieOption.title.text = this.gridPieTotal this.gridPieOption.title.text = this.gridPieTotal
// this.gridPieOption.legend.bottom = 50 // this.gridPieOption.legend.bottom = 50
this.clickGridPie(maxIndex) this.clickGridPie() // this.clickGridPie(maxIndex)
let fun = function (params) { let fun = function (params) {
_that.clickGridPie(params.dataIndex) _that.clickGridPie(params.dataIndex)
@ -629,12 +618,8 @@ export default {
this.gridPieOption.series[1].data = this.gridPieData this.gridPieOption.series[1].data = this.gridPieData
// this.$refs.pieChart.hideLoading() // this.$refs.pieChart.hideLoading()
this.$refs.gridPieChart.setOption(this.gridPieOption) this.$refs.gridPieChart.setOption(this.gridPieOption)
if (!this.isFirstLoadTable) { this.demand.pageNo = 1
this.demand.pageNo = 1 this.getTable()
this.getTable()
}
this.isFirstLoadPie = false
this.isFirstLoadTable = false
}, },
handleChangeAgency (value) { handleChangeAgency (value) {

51
src/views/modules/visual/cpts/analyse.vue

@ -19,8 +19,28 @@
</div> </div>
<div class="analys-col"> <div class="analys-col">
<div class="analys-person"> <div v-if="bcLimit>31||bcLimit==31"
<div class="personal-name">{{userName}}</div> class="analys-person_red">
<div class="personal-name"
@click="handleMidderUser()">{{userName}}</div>
<div class="personal-tips">{{userTag}}</div>
</div>
<div v-else-if="bcLimit<31&&(bcLimit>21||bcLimit==21)"
class="analys-person_orange">
<div class="personal-name"
@click="handleMidderUser()">{{userName}}</div>
<div class="personal-tips">{{userTag}}</div>
</div>
<div v-else-if="bcLimit<21&&(bcLimit>11||bcLimit==11)"
class="analys-person_yellow">
<div class="personal-name"
@click="handleMidderUser()">{{userName}}</div>
<div class="personal-tips">{{userTag}}</div>
</div>
<div v-else
class="analys-person">
<div class="personal-name"
@click="handleMidderUser()">{{userName}}</div>
<div class="personal-tips">{{userTag}}</div> <div class="personal-tips">{{userTag}}</div>
</div> </div>
</div> </div>
@ -265,6 +285,14 @@ export default {
type: String, type: String,
default: '案件居民' default: '案件居民'
}, },
isUserClick: { //
type: Boolean,
default: false
},
bcLimit: { //
type: Number,
default: 1
},
singleList: Array, // singleList: Array, //
}, },
@ -306,6 +334,12 @@ export default {
handleUser (item) { handleUser (item) {
this.$emit('user', item) this.$emit('user', item)
}, },
handleMidderUser (id) {
if (this.isUserClick) {
this.$emit('toMiddleUserInfo', id)
}
},
handleShow (item) { handleShow (item) {
item.showItem = !item.showItem item.showItem = !item.showItem
} }
@ -385,6 +419,19 @@ export default {
} }
} }
.analys-person-orange {
background: url("../../../../assets/img/shuju/measure/zhuhu_orange.png")
no-repeat center;
}
.analys-person-yellow {
background: url("../../../../assets/img/shuju/measure/zhuhu_yellow.png")
no-repeat center;
}
.analys-person-red {
background: url("../../../../assets/img/shuju/measure/zhuhu_red.png")
no-repeat center;
}
.analys-cate { .analys-cate {
display: flex; display: flex;
flex-direction: column; flex-direction: column;

Loading…
Cancel
Save