277 lines
6.9 KiB
Vue
277 lines
6.9 KiB
Vue
<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="姓名/联系方式/身份证后6位" :show-action="false" bg-color="#F5F5F5" search-icon-color="#999" color="#999" height="58" @search="handerSearch" @clear="handerClear"></u-search>
|
||
</div>
|
||
</AiTopFixed>
|
||
<div v-if="datas && datas.length > 0" class="list-content">
|
||
<div class="card" v-for="(item, i) in datas" :key="i" @click="toDetailPeople(item)">
|
||
<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>非户主</span>
|
||
<span class="audit-status" :class="'status'+item.auditStatus">{{ $dict.getLabel('auditStatus', item.auditStatus) }}</span>
|
||
</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: '',
|
||
datas: [],
|
||
resident: {},
|
||
areaId: '',
|
||
areaName: '',
|
||
tabList: [
|
||
{
|
||
name: '待处理',
|
||
},
|
||
{
|
||
name: '已处理',
|
||
},
|
||
],
|
||
currentTabs: 0,
|
||
keyword: ''
|
||
}
|
||
},
|
||
computed: {
|
||
...mapState(['user']),
|
||
},
|
||
onLoad() {
|
||
this.areaId = this.user.areaId
|
||
this.areaName = this.user.areaName
|
||
this.$dict.load('householdRelation', 'auditStatus').then(() => {
|
||
this.getList()
|
||
})
|
||
uni.$on('updatePeople', () => {
|
||
this.getListInit()
|
||
})
|
||
},
|
||
onShow() {
|
||
document.title = '居民档案审核'
|
||
},
|
||
methods: {
|
||
getListInit() {
|
||
this.current = 1
|
||
this.datas = []
|
||
this.getList()
|
||
},
|
||
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,
|
||
source: 1
|
||
},
|
||
})
|
||
.then((res) => {
|
||
if (res.code == 0) {
|
||
this.datas = this.current > 1 ? [...this.datas, ...res.data.records] : res.data.records
|
||
|
||
this.pages = res.data.pages
|
||
}
|
||
})
|
||
},
|
||
|
||
change(index) {
|
||
this.currentTabs = index
|
||
this.getListInit()
|
||
},
|
||
|
||
toDetailPeople(item) {
|
||
uni.navigateTo({ url: `./DetailPeople?id=${item.id}&type=1` })
|
||
},
|
||
|
||
areaSelect(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()
|
||
},
|
||
}
|
||
</script>
|
||
|
||
<style scoped lang="scss">
|
||
.ExamineList {
|
||
height: 100%;
|
||
.list-content{
|
||
padding: 0 60px;
|
||
background-color: #fff;
|
||
}
|
||
.card {
|
||
display: flex;
|
||
box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.08);
|
||
border-radius: 16px;
|
||
padding: 48px 32px;
|
||
margin-bottom: 32px;
|
||
background: url(http://respub.sinoecare.net/20211222/装饰2-20211222162934.png) no-repeat;
|
||
background-size: 100% 100%;
|
||
.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 {
|
||
width: calc(100% - 100px);
|
||
.names {
|
||
font-size: 32px;
|
||
font-weight: 600;
|
||
word-break: break-all;
|
||
}
|
||
.householdNames {
|
||
margin-left: 30px;
|
||
font-size: 26px;
|
||
font-weight: 500;
|
||
color: #5aad6a;
|
||
display: inline-block;
|
||
width: 100px;
|
||
}
|
||
.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 {
|
||
width: 100px;
|
||
::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: 220px;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
img {
|
||
width: 48px;
|
||
height: 48px;
|
||
}
|
||
}
|
||
.u-search {
|
||
margin-bottom: 0 !important;
|
||
}
|
||
}
|
||
|
||
::v-deep .content{
|
||
padding: 0;
|
||
}
|
||
|
||
.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;
|
||
}
|
||
|
||
}
|
||
</style>
|