迁移居民列表
This commit is contained in:
153
src/apps/AppResidentFile/resident.vue
Normal file
153
src/apps/AppResidentFile/resident.vue
Normal file
@@ -0,0 +1,153 @@
|
||||
<template>
|
||||
<section class="resident">
|
||||
<AiLoading v-if="!custom && !error" tips="获取居民信息中..." />
|
||||
<AiResult v-else-if="error" status="error" :tips="error" />
|
||||
<template v-else>
|
||||
<tag-manage v-if="showTagManage" />
|
||||
<template v-else>
|
||||
<AiTopFixed>
|
||||
<u-tabs :list="tabs" :is-scroll="false" :current="currentType" font-size="32" bar-width="192" height="96" @change="handleTabClick" />
|
||||
</AiTopFixed>
|
||||
<component :is="currentTab.comp" />
|
||||
</template>
|
||||
</template>
|
||||
<AiBack v-if="isNormal && !showTagManage" />
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapActions } from 'vuex'
|
||||
import Info from './components/info'
|
||||
import Document from './components/document'
|
||||
import TagManage from './tagManage.vue'
|
||||
|
||||
export default {
|
||||
name: 'resident',
|
||||
components: { TagManage, Document, Info },
|
||||
provide() {
|
||||
return {
|
||||
top: this,
|
||||
id: '',
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
tabs() {
|
||||
return [
|
||||
{ name: '居民信息', value: 0, comp: Info },
|
||||
{ name: '居民档案', value: 1, comp: Document, hide: !this.detail.residentInfo },
|
||||
].filter((e) => !e.hide)
|
||||
},
|
||||
currentTab() {
|
||||
return this.tabs.find((e) => e.value == this.currentType)
|
||||
},
|
||||
isNormal() {
|
||||
return !!this.id
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
currentType: 0,
|
||||
detail: {},
|
||||
showTagManage: false,
|
||||
custom: '',
|
||||
error: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['injectJWeixin', 'wxInvoke']),
|
||||
handleTabClick(i) {
|
||||
this.currentType = i
|
||||
},
|
||||
getContact() {
|
||||
if (this.isNormal) {
|
||||
this.getCustom(this.id)
|
||||
} else {
|
||||
this.injectJWeixin('getCurExternalContact')
|
||||
.then(() => {
|
||||
this.wxInvoke([
|
||||
'getCurExternalContact',
|
||||
{},
|
||||
(res) => {
|
||||
if (res?.err_msg == 'getCurExternalContact:ok') {
|
||||
this.getCustom(res.userId)
|
||||
}
|
||||
},
|
||||
])
|
||||
})
|
||||
.catch(({ errMsg }) => {
|
||||
this.error = errMsg
|
||||
})
|
||||
}
|
||||
},
|
||||
getCustom(id) {
|
||||
this.$http
|
||||
.post('/app/wxcp/wxcustomer/queryCustomerById', null, {
|
||||
params: { id },
|
||||
})
|
||||
.then((ret) => {
|
||||
if (ret?.data) {
|
||||
this.custom = id
|
||||
this.detail = ret.data
|
||||
if (this.detail.type == 2) {
|
||||
this.error = '只能查看个人微信绑定的居民信息'
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
onLoad(o) {
|
||||
this.id = o.id
|
||||
this.getContact()
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.resident {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
background: #f5f5f5;
|
||||
|
||||
.error {
|
||||
font-size: 32px;
|
||||
color: #666;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
::v-deep .u-scroll-box {
|
||||
border-bottom: 1px solid #d4d4d4;
|
||||
|
||||
.u-tab-bar {
|
||||
position: absolute;
|
||||
bottom: -6px;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .card {
|
||||
background: #fff;
|
||||
margin-bottom: 16px;
|
||||
padding: 16px 32px;
|
||||
}
|
||||
|
||||
.half {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
::v-deep .tag {
|
||||
height: 56px;
|
||||
line-height: 56px;
|
||||
background: #f3f4f7;
|
||||
border-radius: 6px;
|
||||
padding: 8px 16px;
|
||||
margin-right: 16px;
|
||||
margin-bottom: 16px;
|
||||
overflow: hidden;
|
||||
cursor: default;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user