Browse Source

研判分析

shibei_master
jiangyy 4 years ago
parent
commit
af129d5b82
  1. 7
      src/views/modules/visual/communityGovern/cpt/project-info.vue
  2. 149
      src/views/modules/visual/cpts/analyse.vue

7
src/views/modules/visual/communityGovern/cpt/project-info.vue

@ -586,8 +586,8 @@ export default {
data.categoryList = array.map((item) => { data.categoryList = array.map((item) => {
return { return {
categoryCode: item.firstCategoryCode, categoryCode: item.categoryCode,
categoryName: item.firstCategoryName, categoryName: item.categoryName,
showItem: true, showItem: true,
projectList: item.projectList.map((subItem) => { projectList: item.projectList.map((subItem) => {
return { return {
@ -596,12 +596,13 @@ export default {
statusName: statusName:
subItem.projectStatus == "pending" ? "待处理" : "结案", subItem.projectStatus == "pending" ? "待处理" : "结案",
projectId: subItem.projectId, projectId: subItem.projectId,
projectId: subItem.projectId,
}; };
}), }),
}; };
}); });
this.yanPan = { ...this.yanPan, ...data }; this.yanPan = { ...this.yanPan, ...data };
this.yanPan.loading = false; this.yanPan.loading = false;
} else { } else {
this.$message.error(msg); this.$message.error(msg);

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

@ -5,7 +5,10 @@
<div class="analys-col"> <div class="analys-col">
<div class="analys-family"> <div class="analys-family">
<div class="family-title">(家属)</div> <div class="family-title">(家属)</div>
<div v-for="(item, index) in userList" :key="index" class="family-item" @click="handleUser(item)">{{item.icUserName}}</div> <div v-for="(item, index) in userList"
:key="index"
class="family-item"
@click="handleUser(item)">{{item.icUserName}}</div>
<!-- <div class="family-item">王亚男哈</div> <!-- <div class="family-item">王亚男哈</div>
<div class="family-item">王亚男</div> <div class="family-item">王亚男</div>
<div class="family-item">王亚男哈</div> <div class="family-item">王亚男哈</div>
@ -14,7 +17,8 @@
</div> </div>
<div class="analys-col"> <div class="analys-col">
<img class="analys-arrow" src="../../../../assets/img/shuju/measure/zuo@2x.png" /> <img class="analys-arrow"
src="../../../../assets/img/shuju/measure/zuo@2x.png" />
</div> </div>
<div class="analys-col"> <div class="analys-col">
@ -24,18 +28,20 @@
</div> </div>
</div> </div>
<template v-if="hasEvent"> <template v-if="hasEvent">
<div class="analys-col analys-col-posi"> <div class="analys-col analys-col-posi">
<img class="analys-up" src="../../../../assets/img/shuju/measure/up-right.png" /> <img class="analys-up"
<img class="analys-up analys-down" src="../../../../assets/img/shuju/measure/down-right.png" /> src="../../../../assets/img/shuju/measure/up-right.png" />
<img class="analys-up analys-down"
src="../../../../assets/img/shuju/measure/down-right.png" />
</div> </div>
<div class="analys-col"> <div class="analys-col">
<div class="cate-list cate-list-more"> <div class="cate-list cate-list-more">
<div class="cate-row"> <div class="cate-row">
<div class="analys-col"> <div class="analys-col">
<div class="analys-cate" @click="handleTabs('group')"> <div class="analys-cate"
@click="handleTabs('group')">
<div class="label">{{ singleTitle }}</div> <div class="label">{{ singleTitle }}</div>
<div class="tips">(反应渠道)</div> <div class="tips">(反应渠道)</div>
<div class="icon"> <div class="icon">
@ -44,8 +50,10 @@
</div> </div>
</div> </div>
<div v-if="sourceTab === 'group'" class="analys-col"> <div v-if="sourceTab === 'group'"
<img class="analys-arrow" src="../../../../assets/img/shuju/measure/you@2x.png" /> class="analys-col">
<img class="analys-arrow"
src="../../../../assets/img/shuju/measure/you@2x.png" />
</div> </div>
</div> </div>
@ -53,7 +61,8 @@
<div class="cate-row"> <div class="cate-row">
<div class="analys-col"> <div class="analys-col">
<div class="analys-cate" @click="handleTabs('event')"> <div class="analys-cate"
@click="handleTabs('event')">
<div class="label">{{ moreTitle }}</div> <div class="label">{{ moreTitle }}</div>
<div class="tips">(反应渠道)</div> <div class="tips">(反应渠道)</div>
<div class="icon"> <div class="icon">
@ -62,38 +71,50 @@
</div> </div>
</div> </div>
<div v-if="sourceTab === 'event'" class="analys-col"> <div v-if="sourceTab === 'event'"
<img class="analys-arrow" src="../../../../assets/img/shuju/measure/you@2x.png" /> class="analys-col">
<img class="analys-arrow"
src="../../../../assets/img/shuju/measure/you@2x.png" />
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="analys-col analys-col-wr analys-col-more list-wr"
<div class="analys-col analys-col-wr analys-col-more list-wr" id="scroll-wr"> id="scroll-wr">
<div class="cate-list cate-list-child"> <div class="cate-list cate-list-child">
<div v-for="(item, index) in tempList" :key="index" class="cate-row"> <div v-for="(item, index) in tempList"
:key="index"
class="cate-row">
<div class="cate-col"> <div class="cate-col">
<div class="analys-cate"> <div class="analys-cate">
<div class="label">{{item.categoryName}}</div> <div class="label">{{item.categoryName}}</div>
<div class="tips">(同类案件)</div> <div class="tips">(同类案件)</div>
<div class="icon" @click="handleShow(item)"> <div class="icon"
@click="handleShow(item)">
<img src="../../../../assets/img/shuju/measure/gantanhao.png" /> <img src="../../../../assets/img/shuju/measure/gantanhao.png" />
</div> </div>
</div> </div>
</div> </div>
<div class="cate-col cate-col-arrow"> <div class="cate-col cate-col-arrow">
<img v-show="item.showItem" class="analys-arrow" src="../../../../assets/img/shuju/measure/you@2x.png" /> <img v-show="item.showItem"
class="analys-arrow"
src="../../../../assets/img/shuju/measure/you@2x.png" />
</div> </div>
<div class="cate-col cate-col-w100"> <div class="cate-col cate-col-w100">
<div class="cate-list-w0" :class="item.showItem && 'cate-list-w100'"> <div class="cate-list-w0"
:class="item.showItem && 'cate-list-w100'">
<div class="list list-wr"> <div class="list list-wr">
<div v-for="(n, i) in item.projectList" :key="i" class="item" @click="handleProject(n)"> <div v-for="(n, i) in item.projectList"
<div class="item-status" :class="'item-status-'+n.status">{{filterStatus(n.status)}}</div> :key="i"
class="item"
@click="handleProject(n)">
<div class="item-status"
:class="'item-status-'+n.status">{{filterStatus(n.status)}}</div>
<div class="item-content">{{n.title}}</div> <div class="item-content">{{n.title}}</div>
</div> </div>
<!-- <div class="item"> <!-- <div class="item">
@ -112,11 +133,10 @@
</template> </template>
<template v-else> <template v-else>
<div class="analys-col"> <div class="analys-col">
<img class="analys-arrow" src="../../../../assets/img/shuju/measure/you@2x.png" /> <img class="analys-arrow"
src="../../../../assets/img/shuju/measure/you@2x.png" />
</div> </div>
<div class="analys-col"> <div class="analys-col">
<div class="analys-cate"> <div class="analys-cate">
<div class="label">{{ singleTitle }}</div> <div class="label">{{ singleTitle }}</div>
@ -128,35 +148,51 @@
</div> </div>
<div class="analys-col"> <div class="analys-col">
<img v-if="tempList.length > 1" class="analys-up" src="../../../../assets/img/shuju/measure/up-right.png" />
<img v-if="tempList.length != 2" class="analys-arrow" src="../../../../assets/img/shuju/measure/you@2x.png" />
<img v-if="tempList.length > 1" <img v-if="tempList.length > 1"
class="analys-up analys-down" src="../../../../assets/img/shuju/measure/down-right.png" /> class="analys-up"
src="../../../../assets/img/shuju/measure/up-right.png" />
<img v-if="tempList.length != 2"
class="analys-arrow"
src="../../../../assets/img/shuju/measure/you@2x.png" />
<img v-if="tempList.length > 1"
class="analys-up analys-down"
src="../../../../assets/img/shuju/measure/down-right.png" />
</div> </div>
<div class="analys-col list-wr" :class="tempList.length > 2 && 'analys-col-wr' || 'analys-single'" <div class="analys-col list-wr"
:class="tempList.length > 2 && 'analys-col-wr' || 'analys-single'"
:style="'padding-top:' + (tempList.length - 3) * 190 + 'px;'"> :style="'padding-top:' + (tempList.length - 3) * 190 + 'px;'">
<div class="cate-list"> <div class="cate-list">
<div v-for="(item, index) in tempList" :key="index" class="cate-row"> <div v-for="(item, index) in tempList"
:key="index"
class="cate-row">
<div class="cate-col"> <div class="cate-col">
<div class="analys-cate"> <div class="analys-cate">
<div class="label">{{item.categoryName}}</div> <div class="label">{{item.categoryName}}</div>
<div class="tips">(同类案件)</div> <div class="tips">(同类案件)</div>
<div class="icon" @click="handleShow(item)"> <div class="icon"
@click="handleShow(item)">
<img src="../../../../assets/img/shuju/measure/gantanhao.png" /> <img src="../../../../assets/img/shuju/measure/gantanhao.png" />
</div> </div>
</div> </div>
</div> </div>
<div class="cate-col cate-col-arrow"> <div class="cate-col cate-col-arrow">
<img v-show="item.showItem" class="analys-arrow" src="../../../../assets/img/shuju/measure/you@2x.png" /> <img v-show="item.showItem"
class="analys-arrow"
src="../../../../assets/img/shuju/measure/you@2x.png" />
</div> </div>
<div class="cate-col cate-col-w100"> <div class="cate-col cate-col-w100">
<div class="cate-list-w0" :class="item.showItem && 'cate-list-w100'"> <div class="cate-list-w0"
:class="item.showItem && 'cate-list-w100'">
<div class="list list-wr"> <div class="list list-wr">
<div v-for="(n, i) in item.projectList" :key="i" class="item" @click="handleProject(n)"> <div v-for="(n, i) in item.projectList"
<div class="item-status" :class="'item-status-'+n.status"> :key="i"
class="item"
@click="handleProject(n)">
<div class="item-status"
:class="'item-status-'+n.status">
{{ n.statusName || filterStatus(n.status)}} {{ n.statusName || filterStatus(n.status)}}
</div> </div>
<div class="item-content">{{n.title}}</div> <div class="item-content">{{n.title}}</div>
@ -221,31 +257,32 @@ export default {
tempList: [] tempList: []
} }
}, },
created() { created () {
this.tempList = [...this.singleList] this.tempList = [...this.singleList]
}, },
methods: { methods: {
filterStatus(status) { filterStatus (status) {
const statusObj = { const statusObj = {
pending: '待处理', pending: '待处理',
closed: '已结案' closed: '已结案'
} }
return statusObj[status] return statusObj[status]
}, },
handleTabs(type) { handleTabs (type) {
if (type === 'group') this.tempList = [ ...this.singleList ] if (type === 'group') this.tempList = [...this.singleList]
else if (type === 'event') this.tempList = [ ...this.moreList ] else if (type === 'event') this.tempList = [...this.moreList]
this.sourceTab = type this.sourceTab = type
const _dom = document.getElementById('scroll-wr') const _dom = document.getElementById('scroll-wr')
_dom.scrollTop = 0 _dom.scrollTop = 0
}, },
handleProject(item) { handleProject (item) {
this.$emit('project', item) this.$emit('project', item)
}, },
handleUser(item) { handleUser (item) {
this.$emit('user', item) this.$emit('user', item)
}, },
handleShow(item) { handleShow (item) {
item.showItem = !item.showItem item.showItem = !item.showItem
} }
} }
@ -279,7 +316,7 @@ export default {
color: #fff; color: #fff;
text-align: center; text-align: center;
background: rgba(255, 255, 255, 0); background: rgba(255, 255, 255, 0);
border: 1px solid #1257C9; border: 1px solid #1257c9;
border-radius: 2px; border-radius: 2px;
box-shadow: 0 0 5px 2px rgba(18, 87, 201, 1) inset; box-shadow: 0 0 5px 2px rgba(18, 87, 201, 1) inset;
} }
@ -310,7 +347,8 @@ export default {
padding-top: 60px; padding-top: 60px;
color: #fff; color: #fff;
text-align: center; text-align: center;
background: url('../../../../assets/img/shuju/measure/zhuhu@2x.png') no-repeat center; background: url("../../../../assets/img/shuju/measure/zhuhu@2x.png")
no-repeat center;
background-size: cover; background-size: cover;
.personal-name { .personal-name {
font-size: 18px; font-size: 18px;
@ -336,7 +374,7 @@ export default {
color: #fff; color: #fff;
cursor: pointer; cursor: pointer;
background: rgba(255, 255, 255, 0); background: rgba(255, 255, 255, 0);
border: 1px solid #1257C9; border: 1px solid #1257c9;
border-radius: 4px; border-radius: 4px;
box-shadow: 1px 1px 10px 5px rgba(18, 87, 201, 1) inset; box-shadow: 1px 1px 10px 5px rgba(18, 87, 201, 1) inset;
.label { .label {
@ -388,7 +426,7 @@ export default {
width: 230px; width: 230px;
.cate-list-w0 { .cate-list-w0 {
width: 0; width: 0;
transition: width .2s; transition: width 0.2s;
overflow: hidden; overflow: hidden;
// border: 0; // border: 0;
// padding: 0; // padding: 0;
@ -399,7 +437,7 @@ export default {
// // background: rgba(255, 255, 255, 0); // // background: rgba(255, 255, 255, 0);
// border: 1px solid #1257C9; // border: 1px solid #1257C9;
// overflow: auto; // overflow: auto;
transition: width .2s; transition: width 0.2s;
} }
} }
} }
@ -424,7 +462,7 @@ export default {
box-sizing: border-box; box-sizing: border-box;
padding: 4px 14px 10px; padding: 4px 14px 10px;
background: rgba(255, 255, 255, 0); background: rgba(255, 255, 255, 0);
border: 1px solid #1257C9; border: 1px solid #1257c9;
overflow: auto; overflow: auto;
border-radius: 4px; border-radius: 4px;
box-shadow: 1px 1px 10px 5px rgba(18, 87, 201, 1) inset; box-shadow: 1px 1px 10px 5px rgba(18, 87, 201, 1) inset;
@ -445,15 +483,16 @@ export default {
font-size: 10px; font-size: 10px;
text-align: center; text-align: center;
// line-height: 15px; // line-height: 15px;
background: #0C5CFE; background: #0c5cfe;
border-radius: 2px; border-radius: 2px;
&-pending, &-canceled { &-pending,
&-canceled {
background: rgba(224, 84, 0, 1); background: rgba(224, 84, 0, 1);
} }
&-assigned, &-have_order { &-assigned,
&-have_order {
background: rgba(9, 163, 125, 1); background: rgba(9, 163, 125, 1);
} }
} }
.item-content { .item-content {
font-size: 14px; font-size: 14px;
@ -463,8 +502,6 @@ export default {
} }
} }
} }
} }
.analys-col-wr { .analys-col-wr {
height: 100%; height: 100%;
@ -502,7 +539,6 @@ export default {
// left: -30px; // left: -30px;
} }
} }
} }
} }
.pad10 { .pad10 {
@ -516,7 +552,8 @@ export default {
.list-wr::-webkit-scrollbar-corner, .list-wr::-webkit-scrollbar-corner,
/* 滚动条角落 */ /* 滚动条角落 */
.list-wr::-webkit-scrollbar-thumb, .list-wr::-webkit-scrollbar-thumb,
.list-wr::-webkit-scrollbar-track { /*滚动条的轨道*/ .list-wr::-webkit-scrollbar-track {
/*滚动条的轨道*/
border-radius: 4px; border-radius: 4px;
} }
@ -524,12 +561,12 @@ export default {
.list-wr::-webkit-scrollbar-track { .list-wr::-webkit-scrollbar-track {
/* 滚动条轨道 */ /* 滚动条轨道 */
background: rgba(12, 129, 254, .24); background: rgba(12, 129, 254, 0.24);
// box-shadow: inset 0 0 1px rgba(180, 160, 120, 0.5); // box-shadow: inset 0 0 1px rgba(180, 160, 120, 0.5);
} }
.list-wr::-webkit-scrollbar-thumb { .list-wr::-webkit-scrollbar-thumb {
/* 滚动条手柄 */ /* 滚动条手柄 */
background: linear-gradient(270deg, #0063FE, #0095FF); background: linear-gradient(270deg, #0063fe, #0095ff);
} }
</style> </style>

Loading…
Cancel
Save