Files
dvcp_v2_wxcp_app/src/apps/AppPeopleList.vue/ExamineList.vue

270 lines
6.7 KiB
Vue
Raw Normal View History

2022-02-14 15:06:54 +08:00
<template>
<div class="ExamineList">
<AiTopFixed>
<u-tabs :list="tabList" :is-scroll="false" :current="currentTabs" height="96" bg-color="#3975C6" inactive-color="#CDDCF0" bar-width="48" active-color="#fff " @change="change"></u-tabs>
<div class="middle">
<div class="left">
<AiAreaPicker v-model="areaId" :areaId="user.areaId" @select="areaSelect" :name.sync="areaName" style="color: #666">
<u-icon name="map-fill" color="#3192F4" size="20px" style="vertical-align: text-bottom"></u-icon>
<span style="margin-left: 4px" v-if="areaName">{{ areaName }}</span>
<span v-else>请选择</span>
<u-icon name="arrow-down" color="#666" size="28" style="margin-left: 4px" />
</AiAreaPicker>
</div>
<u-search v-model="keyword" :clearabled="true" placeholder="请输入姓名" :show-action="false" bg-color="#F5F5F5" search-icon-color="#999" color="#999" height="58" @search="handerSearch" @clear="handerClear"></u-search>
</div>
</AiTopFixed>
2022-02-16 14:23:54 +08:00
<div v-if="datas && datas.length > 0" class="list-content">
<div class="card" v-for="(item, i) in datas" :key="i" @click="toDetailPeople(item)">
2022-02-14 15:06:54 +08:00
<div class="photos">
<img :src="item.photo" alt="" v-if="item.photo" />
<img src="./components/img/44.png" alt="" v-else />
</div>
<div class="right">
<div class="rightTop">
<div class="rightTop-lefts">
<span class="names">{{ item.name }}</span>
<span class="fileStatuss" v-if="item.fileStatus == 1"> {{ $dict.getLabel('fileStatus', item.fileStatus) }}</span>
<span class="householdNames" v-if="item.householdName == 1">户主</span>
<span class="householdNames" v-else>
{{ $dict.getLabel('householdRelation', item.householdRelation) }}
</span>
2022-02-16 14:23:54 +08:00
<span class="audit-status" :class="'status'+item.auditStatus">{{ $dict.getLabel('auditStatus', item.auditStatus) }}</span>
2022-02-14 15:06:54 +08:00
</div>
<div class="rightTop-rights">
<u-section :show-line="false" sub-title="详情"></u-section>
</div>
</div>
<div class="rightBottom">
<span>身份证号</span>
<span>{{ item.idNumber.replace(/^(\w{6})\w{8}(.*)$/, '$1******$2') }}</span>
</div>
</div>
</div>
</div>
<AiEmpty v-else></AiEmpty>
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
name: 'ExamineList',
components: {},
props: {},
data() {
return {
id: '',
2022-02-16 14:23:54 +08:00
datas: [],
2022-02-14 15:06:54 +08:00
resident: {},
areaId: '',
areaName: '',
tabList: [
{
name: '待处理',
},
{
name: '已处理',
},
],
currentTabs: 0,
2022-02-16 14:23:54 +08:00
keyword: ''
2022-02-14 15:06:54 +08:00
}
},
computed: {
...mapState(['user']),
},
2022-02-16 14:23:54 +08:00
onLoad() {
this.$dict.load('householdRelation', 'auditStatus').then(() => {
this.getList()
})
},
2022-02-14 15:06:54 +08:00
onShow() {
document.title = '居民档案审核'
},
methods: {
2022-02-16 14:23:54 +08:00
getListInit() {
this.current = 1
this.datas = []
this.getList()
2022-02-14 15:06:54 +08:00
},
2022-02-16 14:23:54 +08:00
getList() {
var auditType = 0 // 0待处理; 2已处理
if(this.currentTabs == 1) {
auditType = 2
}
this.$http.post('/app/appresident/list', null, {
params: {
size: 10,
current: this.current,
con: this.keyword,
areaId: this.areaId,
auditType
},
})
.then((res) => {
2022-02-14 15:06:54 +08:00
if (res.code == 0) {
2022-02-16 14:23:54 +08:00
this.datas = this.current > 1 ? [...this.datas, ...res.data.records] : res.data.records
this.pages = res.data.pages
2022-02-14 15:06:54 +08:00
}
})
},
2022-02-16 14:23:54 +08:00
change(index) {
this.currentTabs = index
this.getListInit()
},
2022-02-14 15:06:54 +08:00
toDetailPeople(item) {
uni.navigateTo({ url: `./DetailPeople?id=${item.id}` })
},
2022-02-16 14:23:54 +08:00
seachObj(e) {
this.areaId = e
this.getListInit()
},
handerSearch(e) {
this.keyword = e
this.getListInit()
},
handerClear() {
this.keyword = ''
this.getListInit()
},
},
onReachBottom() {
this.current = this.current + 1
this.getList()
2022-02-14 15:06:54 +08:00
},
}
</script>
<style scoped lang="scss">
.ExamineList {
height: 100%;
2022-02-16 14:23:54 +08:00
.list-content{
padding: 0 60px;
background-color: #fff;
}
2022-02-14 15:06:54 +08:00
.card {
display: flex;
box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.08);
border-radius: 16px;
padding: 48px 32px;
margin-bottom: 32px;
2022-02-16 14:23:54 +08:00
background: url(http://respub.sinoecare.net/20211222/装饰2-20211222162934.png) no-repeat;
background-size: 100% 100%;
2022-02-14 15:06:54 +08:00
.photos {
img {
width: 96px;
height: 96px;
border-radius: 50%;
}
}
.right {
display: flex;
flex-direction: column;
margin-left: 40px;
width: 100%;
.rightTop {
display: flex;
justify-content: space-between;
.rightTop-lefts {
.names {
font-size: 32px;
font-weight: 600;
}
.householdNames {
margin-left: 30px;
font-size: 26px;
font-weight: 500;
color: #5aad6a;
2022-02-16 14:23:54 +08:00
display: inline-block;
width: 100px;
2022-02-14 15:06:54 +08:00
}
.fileStatuss {
display: inline-block;
margin-left: 30px;
color: #ff4466;
background: #ffecef;
border-radius: 8px;
width: 88px;
height: 40px;
line-height: 40px;
text-align: center;
}
}
.rightTop-rights {
::v-deep .u-section {
.u-section__right-info {
color: #3975c6 !important;
.u-section__right-info__icon-arrow {
.u-icon {
.u-icon__icon {
color: #3975c6 !important;
}
}
}
}
}
}
}
.rightBottom {
margin-top: 20px;
}
}
}
.middle {
display: flex;
padding: 24px 32px;
.left {
width: 40%;
display: flex;
align-items: center;
img {
width: 48px;
height: 48px;
}
}
.u-search {
margin-bottom: 0 !important;
}
}
::v-deep .content{
padding: 0;
}
2022-02-16 14:23:54 +08:00
.audit-status{
display: inline-block;
padding: 0 8px;
line-height: 40px;
background: #EAF0FE;
border-radius: 8px;
font-size: 24px;
font-family: PingFangSC-Regular, PingFang SC;
}
.status1{
color: #3E95FF;
background-color: #EAF0FE;
}
.status0{
color: #5AAD6A;
background-color: #E9FFED;
}
.status2{
color: #f46;
background-color: #FFECEF;
}
2022-02-14 15:06:54 +08:00
}
</style>