Browse Source

对接督办修改事项详情组件区分12345和普通事件

v1.1
战立标 2 years ago
parent
commit
d4128dad1d
  1. 3
      src/views/dataBoard/overview/components/Bmysxxq.vue
  2. 23
      src/views/dataBoard/overview/components/EventDetail.vue
  3. 15
      src/views/dataBoard/overview/components/MapDialog/DifficultyCharts.vue
  4. 1
      src/views/dataBoard/overview/components/MapDialog/Njjwtqk.vue
  5. 256
      src/views/dataBoard/overview/components/ResourceInfo.vue
  6. 11
      src/views/dataBoard/overview/components/ResourceScheduling.vue
  7. 2
      src/views/dataBoard/overview/components/ServiceDetails.vue
  8. 40
      src/views/dataBoard/overview/components/Supervision.vue
  9. 2
      src/views/dataBoard/overview/components/map-top.vue
  10. 2
      src/views/dataBoard/overview/components/wtqd.vue

3
src/views/dataBoard/overview/components/Bmysxxq.vue

@ -206,9 +206,6 @@ export default {
handleDispatch() {
this.$refs.ResourceScheduling.open()
},
handleSupervision() {
this.$refs.supervision.open()
},
async getDictOptions() {
this.$http
.post("/sys/dict/data/dictlist", {

23
src/views/dataBoard/overview/components/EventDetail.vue

@ -233,6 +233,10 @@ export default {
type: Boolean,
default: false,
},
is12345: {
type: Boolean,
default: true
}
},
data() {
@ -276,7 +280,7 @@ export default {
this.$refs.ResourceScheduling.open()
},
handleSupervision() {
this.$refs.supervision.open()
this.$refs.supervision.open(this.item,this.id, 'event')
},
openImg(src) {
window.open(src);
@ -288,8 +292,15 @@ export default {
getDetailsData(id) {
this.loading = true;
console.log(this.is12345)
let url
if(this.is12345) {
url = "/governance/icEvent/detail"
} else {
url = "/governance/icEventOld/detail"
}
this.$http
.post("/governance/icEventOld/detail", {icEventId: id})
.post(url, {icEventId: id})
.then((res) => {
const {code, data, msg} = res.data;
if (code === 0) {
@ -303,8 +314,14 @@ export default {
},
getProcessData(id) {
let url
if(this.is12345) {
url = "/governance/icEvent/process"
} else {
url = "/governance/icEventOld/process"
}
this.$http
.post("/governance/icEventOld/process", {icEventId: id})
.post(url, {icEventId: id})
.then((res) => {
const {code, data, msg} = res.data;
if (code === 0) {

15
src/views/dataBoard/overview/components/MapDialog/DifficultyCharts.vue

@ -24,7 +24,10 @@ export default {
return {}
},
mounted() {
this.$http.get('/governance/icEventOld/statisticsByCategory?agencyId=' + this.currentLevelData.orgId+'&type=2').then(({data: {data}}) => {
this.$http.post('/governance/icEventOld/statisticsByCategory?agencyId=' + this.currentLevelData.orgId+'&type=2',{
agencyId:this.currentLevelData.orgId,
type: 2
}).then(({data: {data}}) => {
this.initCharts(data ? data : [])
})
},
@ -34,12 +37,12 @@ export default {
this.myChart = echarts.init(div);
let chartData = data.map((item) => {
return {
name: item.name,
count: item.value,
categoryName: item.categoryName,
total: item.total,
};
})
let xData = chartData.map(item => item.name);
let yData = chartData.map(item => item.value)
let xData = chartData.map(item => item.categoryName);
let yData = chartData.map(item => item.total)
let color = [[
{
offset: 0,
@ -82,7 +85,7 @@ export default {
{
"type": "slider",
"start": 0,
"end": parseInt((5 / xData.length) * 10) / 10 * 100,
"end": parseInt((10 / xData.length) * 10) / 10 * 100,
"height": 10,
"bottom": 0,
"showDetail": false,

1
src/views/dataBoard/overview/components/MapDialog/Njjwtqk.vue

@ -33,6 +33,7 @@
:showDialog="showDialog"
@close="showDialog = false"
@ok="getList"
:is12345="false"
/>
<EventDispatchOrder v-if="isEventDispatchOrder" ref="EventDispatchOrder" @close="isEventDispatchOrder = false"
@ok="handleSure"/>

256
src/views/dataBoard/overview/components/ResourceInfo.vue

@ -1,48 +1,123 @@
<template>
<div class="dialog-small">
<el-dialog
:before-close="handleClose"
:modal="true"
:modal-append-to-body="false"
:visible.sync="dialogVisible"
class="dissatisfied-detail"
title=""
width="416px"
>
<template #title>
<Title noBg text="资源信息卡"/>
</template>
<div class="content">
<div class="items">
<div class="label">资源类型</div>
<div class="value">网格员</div>
</div>
<div class="items">
<div class="label">联系电话</div>
<div class="value">133****8989</div>
<CallPhone icon="el-icon-phone"/>
</div>
<div>
<div class="dialog-small">
<div class="items">
<div class="label">联系人</div>
<div class="value">王军</div>
</div>
<el-dialog
:before-close="handleClose"
:modal="true"
:modal-append-to-body="false"
:visible.sync="dialogVisible"
title=""
width="416px"
>
<template #title>
<Title noBg text="资源信息卡"/>
</template>
<div class="content">
<div class="items">
<div class="label">资源类型</div>
<div class="value">{{ typeList[type] }}</div>
</div>
<template v-if="type === 2">
<div class="items">
<div class="label">状态</div>
<div class="value">巡查中</div>
</div>
<div class="items">
<div class="label">单位名称</div>
<div class="value">{{ detail.unitName }}</div>
</div>
<div class="items">
<div class="label">分类</div>
<div class="value">{{ detail.typeName }}</div>
</div>
<div class="items">
<div class="label">服务事项</div>
<div class="value">{{ detail.serviceMatterNameList ? detail.serviceMatterNameList.join('、') : '' }}</div>
</div>
<div class="items">
<div class="label">联系人</div>
<div class="value">{{ detail.contact }}</div>
</div>
<div class="items">
<div class="label">联系电话</div>
<div class="value">{{ detail.contactMobile }}</div>
<CallPhone icon="el-icon-phone"/>
</div>
<div class="items">
<div class="label">地理位置</div>
<div class="value">{{ detail.address }}</div>
</div>
</template>
<template v-if="type === 3">
<div class="items">
<div class="label">所在位置</div>
<div class="value">xxxxxxxxxxxxxxxxxxxxxxxxxxxxx</div>
</div>
<div class="btn-group">
<el-button class="sure" plain round type="warning" @click="handleSure">派单</el-button>
<div class="items">
<div class="label">组织名称</div>
<div class="value">{{ detail.organizationName }}</div>
</div>
<div class="items">
<div class="label">分类</div>
<div class="value">{{ detail.categoryName }}</div>
</div>
<div class="items">
<div class="label">服务事项</div>
<div class="value">{{ detail.serviceItem }}</div>
</div>
<div class="items">
<div class="label">联系人</div>
<div class="value">{{ detail.principalName }}</div>
</div>
<div class="items">
<div class="label">联系电话</div>
<div class="value">{{ detail.principalPhone }}</div>
<CallPhone icon="el-icon-phone"/>
</div>
<div class="items">
<div class="label">地理位置</div>
<div class="value">{{ detail.address }}</div>
</div>
</template>
<template v-if="type === 4 || type === 5 || type === 1">
<div class="items">
<div class="label">姓名</div>
<div class="value">{{ detail.name }}</div>
</div>
<div class="items">
<div class="label">联系电话</div>
<div class="value">{{ detail.mobile }}</div>
<CallPhone icon="el-icon-phone"/>
</div>
<div class="items">
<div class="label">年龄</div>
<div class="value">{{ detail.birthday?getAgeByDateOfBirth(detail.birthday):'未知' }}</div>
</div>
<div class="items">
<div class="label">学历</div>
<div class="value">{{ education?education.cultureLevelName:'' }}</div>
</div>
<!-- <div class="items">
<div class="label">状态</div>
<div class="value">巡查中</div>
</div>-->
<div class="items">
<div class="label">所在位置</div>
<div class="value">{{ detail.houseInfo.homeName }}</div>
</div>
<div class="items">
<div class="label">兴趣爱好</div>
<div class="value">{{ hobby?hobby.hobbyRemark:'' }}</div>
</div>
</template>
<div class="btn-group">
<el-button class="sure" plain round type="warning" @click="handleSure">派单</el-button>
</div>
</div>
</div>
</el-dialog>
</el-dialog>
</div>
</div>
</template>
@ -51,33 +126,117 @@ import Title from "@/views/dataBoard/satisfactionEval/components/Title";
import CallPhone from "@/views/dataBoard/cpts/CallPhone";
export default {
name: "Supervision",
name: "MapResourceInfo",
components: {Title, CallPhone},
props: {
currentLevelData: {
type: Object,
default: () => {}
}
},
data() {
return {
dialogVisible: false,
explain: ""
explain: "",
id: '',
detail: '',
type: '',
typeList: {
1: '志愿者',
2: '联建单位',
3: '社区自组织',
4: '网格员',
5: '公益岗'
},
education: '',
hobby: '',
rowData: {}
}
},
mounted() {
},
methods: {
getAgeByDateOfBirth(dateOfBirth) {
let birthDate = this.$moment(dateOfBirth);
let age = this.$moment().diff(birthDate, 'years');
return age;
},
handleClose(done) {
this.dialogVisible = false;
},
open(id) {
open(id, type,rowData) {
console.log(id, type)
//type 12345
this.dialogVisible = true;
this.id = id
this.type = type
this.getData(type)
this.rowData = rowData
},
handleSure() {
this.$emit('ok',this.rowData)
},
getData(type) {
if (type === 1) {
this.getVolunteer()
}
if (type === 2) {
this.getCompany()
}
if (type === 3) {
this.getCommunity()
}
if (type === 4) {
this.getGridOperator()
}
if (type === 5) {
this.getVolunteer()
}
},
// 使/actual/base/icpartyunit/detail
}
// 使/actual/base/iccommunityselforganization/community-self-org-detail/{id}
// /actual/base/residentBaseInfo/detail/{resi-id} +
// /actual/base/residentEduInfo/detail/{resi-id} +
// /actual/base/residentHobbyInfo/detail/{resi-id}
// /data/aggregator/org/staffdetailv2 apifox
//
getVolunteer() {
this.$http.post('/actual/base/residentBaseInfo/detail/' + this.id).then(({data: {data}}) => {
this.detail = data || {};
})
this.$http.get('/actual/base/residentEduInfo/detail/' + this.id).then(({data: {data}}) => {
this.education = data || {};
})
this.$http.get('/actual/base/residentHobbyInfo/detail/' + this.id).then(({data: {data}}) => {
this.hobby = data || {};
})
},
getCompany() {
this.$http.post('/actual/base/icpartyunit/detail?id=' + this.id, {id: this.id}).then(({data: {data}}) => {
this.detail = data || {};
})
},
getCommunity() {
this.$http.post('/actual/base/iccommunityselforganization/community-self-org-detail/' + this.id).then(({data: {data}}) => {
this.detail = data || {};
})
},
getGridOperator() {
this.$http.post('/data/aggregator/org/staffdetailv2?staffId=' + this.id,{staffId: this.id}).then(({data: {data}}) => {
this.detail = data || {};
})
},
}
}
</script>
<style lang="scss" scoped src="@/assets/scss/dataBoard/dialog-small.scss"></style>
<style lang="scss" scoped>
@import "~@/assets/scss/dataBoard/dialog-small.scss";
.content {
padding: 0 25px;
@ -91,6 +250,7 @@ export default {
.label {
color: #9CB4D3;
white-space: nowrap;
}
.value {
@ -99,12 +259,6 @@ export default {
}
}
/deep/ .el-textarea__inner {
color: #fff;
border: 1px solid #0E3978;
border-radius: 2px;
background: rgba(0, 23, 66, 0.72);
}
.btn-group {
display: flex;

11
src/views/dataBoard/overview/components/ResourceScheduling.vue

@ -83,21 +83,18 @@
</div>
</div>
</el-dialog>
<MapResourceInfo ref="MapResourceInfo" :currentLevelData="currentLevelData"/>
<ResourceInfo ref="ResourceInfo" @ok="handleHandle" :currentLevelData="currentLevelData"/>
</div>
</template>
<script>
import Title from "@/views/dataBoard/satisfactionEval/components/Title";
import CallPhone from "@/views/dataBoard/cpts/CallPhone";
import ResourceInfo from "@/views/dataBoard/overview/components/ResourceInfo";
import MapResourceInfo from "@/views/dataBoard/overview/components/MapResourceInfo.vue";
import ResourceInfo from "@/views/dataBoard/overview/components/ResourceInfo.vue";
export default {
name: "ResourceScheduling",
components: {Title, CallPhone, ResourceInfo, MapResourceInfo},
components: {Title, CallPhone, ResourceInfo},
props: {
currentLevelData: {
type: Object,
@ -200,7 +197,7 @@ export default {
this.peopleType === '4' ? 3 :
this.peopleType === 'staffGrid' ? 4 :
this.peopleType === 'publicWelfareNum' ? 5 : ''
this.$refs.MapResourceInfo.open(type === 3 ? data.agencyId : data.id, type)
this.$refs.ResourceInfo.open(type === 3 ? data.agencyId : data.id, type,data)
},
/* handleViews() {
this.$refs.ResourceInfo.open()

2
src/views/dataBoard/overview/components/ServiceDetails.vue

@ -208,7 +208,7 @@ export default {
this.$refs.ResourceScheduling.open()
},
handleSupervision() {
this.$refs.supervision.open()
this.$refs.supervision.open(this.detail, this.demandRecId,'services')
},
handleCancel() {
this.isSelect = false;

40
src/views/dataBoard/overview/components/Supervision.vue

@ -16,28 +16,28 @@
<div class="content">
<div class="items">
<div class="label">当前办理部门</div>
<div class="value">XXX社区</div>
<div class="value">{{ detail.gridName || detail.gridName || '' }}</div>
</div>
<div class="items">
<div class="label">转入该部门时间</div>
<div class="value">2023-09-10 15:30</div>
<div class="value">{{detail.happenTime || detail.serviceStartTime || ''}}</div>
</div>
<div class="items">
<div class="label">联系人</div>
<div class="value">王军</div>
<div class="value">{{detail.name || detail.demandUserName || ''}}</div>
</div>
<div class="items">
<div class="label">联系电话</div>
<div class="value">133****8989</div>
<div class="value">{{detail.mobile || detail.demandUserMobile || ''}}</div>
<CallPhone icon="el-icon-phone"/>
</div>
<div class="items">
<div class="label">时间状态</div>
<div class="value">办理中</div>
<div class="label">状态</div>
<div class="value">{{ detail.statusName}}</div>
</div>
<div class="items">
@ -45,7 +45,7 @@
</div>
<div class="items">
<el-input
v-model="explain"
v-model="content"
:autosize="{ minRows: 5, maxRows: 10}"
class="input"
maxlength="500"
@ -66,13 +66,16 @@
import Title from "@/views/dataBoard/satisfactionEval/components/Title";
import CallPhone from "@/views/dataBoard/cpts/CallPhone";
export default {
name: "Supervision",
components: {Title, CallPhone},
data() {
return {
dialogVisible: false,
explain: ""
content: "",
detail: {},
type: ''
}
},
mounted() {
@ -82,11 +85,28 @@ export default {
handleClose(done) {
this.dialogVisible = false;
},
open(id) {
open(data,id,type) {
this.dialogVisible = true;
console.log(data,'data')
this.detail = data || {}
this.id = id
this.type = type;
},
handleSure() {
this.$http.post('/governance/userdemand/urgent_supervision',{
type: this.type,
eventid: this.id,
serviceId: this.id,
content: this.content
}).then(({data: {data,code,msg}}) => {
if (code == 0) {
this.$message.success('提交成功')
this.handleClose()
} else {
this.$message.error(msg)
}
})
}
}
}

2
src/views/dataBoard/overview/components/map-top.vue

@ -18,7 +18,7 @@
<el-button slot="append" type="primary" @click="search">搜索</el-button>
</el-autocomplete>
<ServiceDetails ref="ServiceDetails"/>
<EventDetails :id="rowId" :showDialog="showDialog" @close="showDialog = false"/>
<EventDetails :id="rowId" :is12345="false" :showDialog="showDialog" @close="showDialog = false"/>
<MapResourceInfo ref="MapResourceInfo" :currentLevelData="currentLevelData"/>
<DissatisfiedDetails ref="DissatisfiedDetails" :id="rowId" :currentLevelData="currentLevelData" />

2
src/views/dataBoard/overview/components/wtqd.vue

@ -132,7 +132,7 @@
<div class="f-darkGray"><b class="f-font34 f-skyBlue">{{ selfInspectNum || 0 }}</b></div>
</div>
</div>
<EventDetails :id="this.rowId" :showDialog="showDialog" @close="close"/>
<EventDetails :id="this.rowId" :is12345="false" :showDialog="showDialog" @close="close"/>
</div>
</template>

Loading…
Cancel
Save