This commit is contained in:
yanran200730
2023-05-05 14:37:49 +08:00
parent 0507cd9a89
commit c5784e268e
6 changed files with 209 additions and 96 deletions

View File

@@ -24,7 +24,7 @@
</div> </div>
<div class="left-item__bottom"> <div class="left-item__bottom">
<span>居民数量{{ item.customerCount + item.groupMemberCount }}</span> <span>居民数量{{ item.customerCount + item.groupMemberCount }}</span>
<span>成员{{ item.allGridMemberCount }}</span> <span>成员{{ item.allWXMemberCount }}</span>
</div> </div>
</div> </div>
</div> </div>
@@ -171,7 +171,7 @@
</div> </div>
</div> </div>
<div class="wrapper" style="position: relative;"> <div class="wrapper" style="position: relative;">
<DvMap :instance="instance" style="width: 100%; height: 376px;"></DvMap> <DvMap :instance="instance" style="width: 100%; height: 376px;" type="0"></DvMap>
<div class="total-info"> <div class="total-info">
<div class="total-info__item"> <div class="total-info__item">
<img src="https://cdn.cunwuyun.cn/dvcp/dv/qxn/icon3.png"> <img src="https://cdn.cunwuyun.cn/dvcp/dv/qxn/icon3.png">

View File

@@ -24,7 +24,7 @@
</div> </div>
<div class="left-item__bottom"> <div class="left-item__bottom">
<span>居民数量{{ item.customerCount + item.groupMemberCount }}</span> <span>居民数量{{ item.customerCount + item.groupMemberCount }}</span>
<span>成员{{ item.allGridMemberCount }}</span> <span>成员{{ item.allWXMemberCount }}</span>
</div> </div>
</div> </div>
</div> </div>
@@ -144,16 +144,44 @@
<div class="right-middle"> <div class="right-middle">
<AiDvPanel style="width: 100%" border="border6" title="综合概况图"> <AiDvPanel style="width: 100%" border="border6" title="综合概况图">
<div class="right-left__total AppQxnDv-total"> <div class="right-left__total AppQxnDv-total">
<div class="item" v-for="(item, index) in 5" :key="index"> <div class="item">
<h2>分局数量</h2> <h2>警格上报事件</h2>
<div class="item-bottom"> <div class="item-bottom">
<span>726,079</span> <span>{{ middleTotalInfo['警格累计上报'] }}</span>
<i></i> <i></i>
</div>
</div>
<div class="item">
<h2>居民上报事件</h2>
<div class="item-bottom">
<span>{{ middleTotalInfo['居民累计上报'] }}</span>
<i></i>
</div>
</div>
<div class="item">
<h2>今日待处理</h2>
<div class="item-bottom">
<span>{{ middleTotalInfo['今日上报'] - middleTotalInfo['今日办结'] }}</span>
<i></i>
</div>
</div>
<div class="item">
<h2>今日办理中</h2>
<div class="item-bottom">
<span>{{ middleTotalInfo['今日上报'] - middleTotalInfo['今日办结'] }}</span>
<i></i>
</div>
</div>
<div class="item">
<h2>今日已办结</h2>
<div class="item-bottom">
<span>{{ middleTotalInfo['今日办结'] }}</span>
<i></i>
</div> </div>
</div> </div>
</div> </div>
<div class="wrapper"> <div class="wrapper">
<DvMap :instance="instance" style="width: 100%; height: 356px;"></DvMap> <DvMap :instance="instance" style="width: 100%; height: 356px;" type="1"></DvMap>
</div> </div>
<div class="right-middle__bottom"> <div class="right-middle__bottom">
<div class="AppQxnDv-title"> <div class="AppQxnDv-title">
@@ -225,59 +253,45 @@
<h2>事件详情</h2> <h2>事件详情</h2>
</div> </div>
<img src="https://cdn.cunwuyun.cn/dvcp/dv/qxn/close.png" @click="isShow = false" /> <img src="https://cdn.cunwuyun.cn/dvcp/dv/qxn/close.png" @click="isShow = false" />
<h3>咨询如何报考摩托车驾驶</h3> <h3 :title="eventInfo.desc">{{ eventInfo.desc }}</h3>
<div class="info-wrapper"> <div class="info-wrapper">
<div class="info-wrapper__item"> <div class="info-wrapper__item">
<label>办理状态</label> <label>办理状态</label>
<span>{{ info['派出所数量'] }}个派出所</span> <span :style="{color: mapStatus(eventInfo.status, 'color')}">{{ mapStatus(eventInfo.status, 'name') }}</span>
</div> </div>
<div class="info-wrapper__item"> <div class="info-wrapper__item">
<label>上报来源</label> <label>上报来源</label>
<span>{{ info['群数量'] }}</span> <span>{{ eventInfo.typeName }}</span>
</div> </div>
<div class="info-wrapper__item"> <div class="info-wrapper__item">
<label>发生地点</label> <label>发生地点</label>
<span>{{ info['成员总数'] }}</span> <span>{{ eventInfo.location.address }}</span>
</div> </div>
<div class="info-wrapper__item"> <div class="info-wrapper__item">
<label>事件类别</label> <label>事件类别</label>
<span>{{ info['群成员数量'] }}</span> <span>{{ eventInfo.case_name }}</span>
</div> </div>
</div> </div>
<div class="info-bottom"> <div class="info-bottom">
<h3>办理流程</h3> <h3>办理流程</h3>
<div class="progress"> <div class="info-bottom__wrapper">
<div class="progress-item active"> <div class="info-bottom__item" v-for="(item, index) in eventInfo.process_list" :key="index">
<h4>已办结</h4> <h4>{{ item.solve_username }}</h4>
<div class="progress-item__middle"> <div class="middle">
<i></i> <p :title="item.process_desc">{{ item.process_desc }}</p>
<span>{{ $moment(item.solved_time * 1000).format('YYYY-MM-DD HH:mm:ss') }}</span>
</div> </div>
<p>王海涛</p> <i>{{ mapProcessType(item.process_type) }}</i>
<span>2023-04-08 09:46:47</span>
</div> </div>
<div class="progress-item active"> </div>
<h4>已办结</h4> <div class="progress" v-if="false">
<div class="progress-item active" v-for="(item, index) in eventInfo.process_list" :key="index">
<h4>{{ mapStatus(item.status, 'name') }}</h4>
<div class="progress-item__middle"> <div class="progress-item__middle">
<i></i> <i></i>
</div> </div>
<p>王海涛</p> <p>{{ item.solve_username }}</p>
<span>2023-04-08 09:46:47</span> <span>{{ $moment(item.solved_time * 1000).format('YYYY-MM-DD HH:mm:ss') }}</span>
</div>
<div class="progress-item active">
<h4>已办结</h4>
<div class="progress-item__middle">
<i></i>
</div>
<p>王海涛</p>
<span>2023-04-08 09:46:47</span>
</div>
<div class="progress-item active">
<h4>已办结</h4>
<div class="progress-item__middle">
<i></i>
</div>
<p>王海涛</p>
<span>2023-04-08 09:46:47</span>
</div> </div>
</div> </div>
</div> </div>
@@ -309,8 +323,8 @@
currIndex: 0, currIndex: 0,
areaList: [], areaList: [],
type: '0', type: '0',
info: {},
isShow: false, isShow: false,
middleTotalInfo: {},
gridId: '', gridId: '',
gridParentId: 'gr3AePMwAAFWlqlNvfJboAWkRNbnA14A', gridParentId: 'gr3AePMwAAFWlqlNvfJboAWkRNbnA14A',
chartConfig1: { chartConfig1: {
@@ -538,6 +552,7 @@
{ prop: 'reporterName', label: '姓名', align: 'center' }, { prop: 'reporterName', label: '姓名', align: 'center' },
{ prop: 'caseName', label: '事件名称', align: 'left', width: 130 } { prop: 'caseName', label: '事件名称', align: 'left', width: 130 }
], ],
eventInfo: {},
reportHandleList: [], reportHandleList: [],
colConfigs2: [ colConfigs2: [
{ slot: 'index' }, { slot: 'index' },
@@ -611,9 +626,8 @@
cursor: 'pointer' cursor: 'pointer'
}, },
on: { on: {
click: e => { click: () => {
this.isShow = true this.getEventInfo(params.row.orderId, params.row)
console.log(params)
} }
}, },
}, '查看>>' }, '查看>>'
@@ -709,6 +723,18 @@
}, },
methods: { methods: {
mapProcessType (status) {
return {
'1': '创建',
'2': '受理',
'3': '分配',
'4': '转交',
'5': '办结',
'6': '拒绝',
'7': '办理中'
}[status]
},
mapStatus (status, type) { mapStatus (status, type) {
const index = Number(status) const index = Number(status)
return [{ return [{
@@ -765,6 +791,25 @@
}) })
}, },
getEventInfo (orderId, info) {
this.instance.post(`/api/wxgridinfo/reportInfo`, null, {
params: {
orderId,
corpId: 'wpytYEDgAA5zwi8Ak2mwFh3PwBKwwlWA'
}
}).then(res => {
if (res.code === 0) {
this.eventInfo = {
...res.data,
typeName: info.type === '1' ? '居民上报' : '巡查上报',
status: info.status
}
this.isShow = true
}
})
},
onTypeChange (index) { onTypeChange (index) {
this.currIndex = index this.currIndex = index
this.getWxGridReportCata() this.getWxGridReportCata()
@@ -914,6 +959,49 @@
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
.info-bottom__wrapper {
height: 120px;
margin-top: 20px;
overflow-y: auto;
}
.info-bottom__item {
display: flex;
align-items: center;
justify-content: space-between;
line-height: 1;
margin-bottom: 12px;
color: #fff;
div {
flex: 1;
margin: 0 18px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 12px;
color: #d0e1e8;
p {
margin-bottom: 8px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
i {
font-style: normal;
font-size: 14px;
}
h4 {
font-size: 14px;
font-weight: normal;
color: #9BB7D4;
}
}
.info-mask { .info-mask {
position: absolute; position: absolute;
left: 0; left: 0;
@@ -924,13 +1012,6 @@
background: rgba($color: #000000, $alpha: 0.1); background: rgba($color: #000000, $alpha: 0.1);
} }
h3 {
margin-top: 28px;
font-weight: 600;
font-size: 16px;
color: #02FEFF;
}
.info-content { .info-content {
position: absolute; position: absolute;
top: 50%; top: 50%;
@@ -943,12 +1024,25 @@
background-size: 100% 100%; background-size: 100% 100%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
& > h3 {
margin-top: 28px;
font-weight: 600;
font-size: 16px;
color: #02FEFF;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
-webkit-line-clamp: 1;
}
.info-bottom { .info-bottom {
margin-top: 20px; margin-top: 20px;
padding-top: 14px; padding-top: 14px;
h3 { & > h3 {
margin-top: 0; font-weight: 600;
font-size: 16px;
color: #02FEFF;
} }
} }
@@ -999,7 +1093,7 @@
transform: translateY(-50%); transform: translateY(-50%);
} }
&:last-child::before { &:nth-of-type(4n)::before {
position: absolute; position: absolute;
top: 38px; top: 38px;
right: -28px; right: -28px;
@@ -1021,7 +1115,7 @@
background: rgba(7, 183, 89, 1); background: rgba(7, 183, 89, 1);
} }
&:last-child::before { &:nth-of-type(4n)::before {
background: rgba(7, 183, 89, 1); background: rgba(7, 183, 89, 1);
} }

View File

@@ -9,7 +9,7 @@
<h2>{{ title }}</h2> <h2>{{ title }}</h2>
</div> </div>
<img src="https://cdn.cunwuyun.cn/dvcp/dv/qxn/close.png" @click="isShowInfo = false" /> <img src="https://cdn.cunwuyun.cn/dvcp/dv/qxn/close.png" @click="isShowInfo = false" />
<div class="info-wrapper"> <div class="info-wrapper" v-if="type === '0'">
<div class="info-wrapper__item"> <div class="info-wrapper__item">
<label>下属单位</label> <label>下属单位</label>
<span>{{ info['派出所数量'] }}个派出所</span> <span>{{ info['派出所数量'] }}个派出所</span>
@@ -39,6 +39,40 @@
<span>{{ info['群主人数'] }}</span> <span>{{ info['群主人数'] }}</span>
</div> </div>
</div> </div>
<div class="info-wrapper" v-else>
<div class="info-wrapper__item">
<label>负责人</label>
<span>{{ info['负责人'] }}</span>
</div>
<div class="info-wrapper__item">
<label>下属警格数</label>
<span>{{ info['下属警格数量'] }}</span>
</div>
<div class="info-wrapper__item">
<label>警格人数</label>
<span>{{ info['外部联系人数量'] }}</span>
</div>
<div class="info-wrapper__item">
<label>事件处理率</label>
<span>{{ rate }}</span>
</div>
<div class="info-wrapper__item">
<label>待处理</label>
<span>{{ info['待受理'] }}</span>
</div>
<div class="info-wrapper__item">
<label>处理中</label>
<span>{{ info['办理中'] }}</span>
</div>
<div class="info-wrapper__item">
<label>已办理</label>
<span>{{ info['已办结'] }}</span>
</div>
<div class="info-wrapper__item">
<label>事件总数</label>
<span>{{ info['事件总数'] }}</span>
</div>
</div>
</div> </div>
</div> </div>
</transition> </transition>
@@ -52,7 +86,8 @@
name: 'AiDvMap', name: 'AiDvMap',
props: { props: {
instance: Function instance: Function,
type: String
}, },
data() { data() {
@@ -69,11 +104,11 @@
computed: { computed: {
rate () { rate () {
if (!this.info['已激活']) { if (!this.info['事件总数']) {
return '0%' return '0%'
} }
return (this.info['已激活'] / this.info['成员总数']).toFixed(2) * 100 + '%' return ((this.info['事件总数'] - this.info['已拒绝']) / this.info['事件总数']).toFixed(2) * 100 + '%'
} }
}, },
@@ -224,33 +259,6 @@
areaColor: null areaColor: null
} }
}, },
// label: {
// show: true,
// formatter: e => {
// const name = e.data[3]
// const value = e.data[2]
// return `{a|${name}}\n{b|${value}}`
// },
// fontSize: 16,
// rich: {
// a: {
// width: '100%',
// color: '#fff',
// lineHeight: 20,
// fontSize: 16
// },
// b: {
// backgroundColor: {
// // image: require('@/assets/images/point.png')
// },
// color: '#fff',
// height: 56,
// align: 'center',
// width: 50,
// fontSize: 16
// }
// }
// },
data: [] data: []
} }
] ]
@@ -311,9 +319,9 @@
top: 50%; top: 50%;
left: 50%; left: 50%;
z-index: 11; z-index: 11;
width: 378px; width: 390px;
height: 254px; height: 262px;
padding: 15px 22px 0; padding: 15px 18px 0;
background: url(https://cdn.cunwuyun.cn/dvcp/dv/qxn/info-bg.png); background: url(https://cdn.cunwuyun.cn/dvcp/dv/qxn/info-bg.png);
background-size: 100% 100%; background-size: 100% 100%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
@@ -332,8 +340,8 @@
margin-bottom: 20px; margin-bottom: 20px;
label { label {
width: 70px; width: 90px;
margin-right: 20px; margin-right: 10px;
color: #fff; color: #fff;
text-align: right; text-align: right;
font-size: 14px; font-size: 14px;

View File

@@ -1,5 +1,5 @@
<template> <template>
<ai-detail> <ai-detail v-loading="isLoading">
<template slot="title"> <template slot="title">
<ai-title title="考试详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)"> <ai-title title="考试详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)">
</ai-title> </ai-title>
@@ -75,6 +75,7 @@
size: 10, size: 10,
title: '' title: ''
}, },
isLoading: false,
total: 0, total: 0,
tableData: [], tableData: [],
colConfigs: [ colConfigs: [
@@ -110,11 +111,15 @@
closeOnClickModal: false, closeOnClickModal: false,
cancelButtonText: '取消' cancelButtonText: '取消'
}).then(() => { }).then(() => {
this.isLoading = true
this.instance.post(`/app/appcertificateinfo/auditCertificate?certificateId=${this.info.certificateId}&openId=${this.params.openId}`).then(res => { this.instance.post(`/app/appcertificateinfo/auditCertificate?certificateId=${this.info.certificateId}&openId=${this.params.openId}`).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.getInfo() this.getInfo()
this.isLoading = false
this.$message.success('审核通过') this.$message.success('审核通过')
} }
}).catch(() => {
this.isLoading = false
}) })
}).catch((e) => { }).catch((e) => {
}) })

View File

@@ -1,5 +1,5 @@
<template> <template>
<ai-list class="notice"> <ai-list class="notice" v-loading="isLoading">
<template slot="title"> <template slot="title">
<ai-title <ai-title
title="考试台账" title="考试台账"
@@ -93,7 +93,8 @@
haveCertificate: '', haveCertificate: '',
examinationType: '' examinationType: ''
}, },
total: 10, isLoading: false,
total: 0,
colConfigs: [ colConfigs: [
{ prop: 'realName', label: '姓名' }, { prop: 'realName', label: '姓名' },
{ prop: 'idNumber', label: '身份证号', align: 'center' }, { prop: 'idNumber', label: '身份证号', align: 'center' },
@@ -149,13 +150,18 @@
closeOnClickModal: false, closeOnClickModal: false,
cancelButtonText: '取消' cancelButtonText: '取消'
}).then(() => { }).then(() => {
this.isLoading = true
this.instance.post(`/app/appcertificateinfo/auditCertificate?certificateId=${item.certificateId}&openId=${item.openId}`).then(res => { this.instance.post(`/app/appcertificateinfo/auditCertificate?certificateId=${item.certificateId}&openId=${item.openId}`).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.getList() this.getList()
this.$message.success('审核通过') this.$message.success('审核通过')
} }
this.isLoading = false
}).catch(() => {
this.isLoading = false
}) })
}).catch((e) => { }).catch(() => {
}) })
}, },

View File

@@ -38,7 +38,7 @@ module.exports = {
proxy: { proxy: {
//设置代理,可解决跨5 //设置代理,可解决跨5
'/lan': { '/lan': {
target: 'http://192.168.1.87:12000', target: 'http://192.168.1.87:12001',
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
//地址重写 //地址重写