居民档案
This commit is contained in:
112
src/project/weiyang/AppPeopleList/AddTag.vue
Normal file
112
src/project/weiyang/AppPeopleList/AddTag.vue
Normal file
@@ -0,0 +1,112 @@
|
||||
<template>
|
||||
<div class="AddTag">
|
||||
<u-navbar back-icon-color="#000" title="居民标签管理" title-color="#000" title-width="300" title-size="32"
|
||||
:title-bold="true" :background="backgroundNavbar" :is-fixed="true" height="44" z-index="999"></u-navbar>
|
||||
<div class="header-content-bg">
|
||||
<img src="https://cdn.sinoecare.com/i/2024/07/12/6690a1303d423.png" alt="">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- <AiEmpty class="emptyWrap" v-else></AiEmpty> -->
|
||||
<div class="footer">
|
||||
<div class="btn">保存</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapState} from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'AddTag',
|
||||
appName: '居民标签管理',
|
||||
customNavigation: true,
|
||||
data() {
|
||||
return {
|
||||
backgroundNavbar: {
|
||||
background: 'url(https://cdn.sinoecare.com/i/2024/07/12/6690a1309c7d3.png) no-repeat',
|
||||
backgroundSize: 'cover',
|
||||
},
|
||||
current: 1,
|
||||
pages: 2
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState(['user']),
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
onShow() {
|
||||
uni.setNavigationBarColor({
|
||||
frontColor: 'black',
|
||||
backgroundColor: '#ffffff'
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
if(this.current > this.pages) return
|
||||
this.$instance.post('/app/appresident/list', null, {
|
||||
params: {
|
||||
size: 20,
|
||||
current: this.current,
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
res.data.records.map((item) => {
|
||||
item.isCheck = false
|
||||
})
|
||||
this.list = this.current > 1 ? [...this.list, ...res.data.records] : res.data.records
|
||||
|
||||
this.pages = res.data.pages
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
onReachBottom() {
|
||||
// this.current = this.current + 1
|
||||
// this.getList()
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.AddTag {
|
||||
height: 100%;
|
||||
.header-content-bg {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
img {
|
||||
width: 100%;
|
||||
height: 592px;
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
.footer {
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: #F4F5FA;
|
||||
padding: 64px 64px 68px 64px;
|
||||
z-index: 9;
|
||||
.btn {
|
||||
width: calc(100% - 128px);
|
||||
line-height: 88px;
|
||||
background: #026AF2;
|
||||
border-radius: 44px;
|
||||
font-family: PingFangSC-Medium;
|
||||
font-weight: 500;
|
||||
font-size: 34px;
|
||||
color: #FFF;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -21,13 +21,13 @@ export default {
|
||||
return {
|
||||
bannerList: [
|
||||
{
|
||||
img: require('./components/img/blue-bg.png'),
|
||||
img: 'https://cdn.sinoecare.com/i/2024/07/16/66960741d6338.png',
|
||||
title: '查看居民档案',
|
||||
linkUrl: './PeopleList'
|
||||
},
|
||||
{
|
||||
img: require('./components/img/green-bg.png'),
|
||||
title: '居民档案审核',
|
||||
img: 'https://cdn.sinoecare.com/i/2024/07/16/66960746d79c9.png',
|
||||
title: '居民标签管理',
|
||||
linkUrl: './ExamineList'
|
||||
}
|
||||
],
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="PeopleList">
|
||||
<u-navbar back-icon-color="#000" title="居民管理" title-color="#000" title-width="300" title-size="32"
|
||||
:title-bold="true" :background="backgroundNavbar" :is-fixed="true" height="44"></u-navbar>
|
||||
:title-bold="true" :background="backgroundNavbar" :is-fixed="true" height="44" z-index="999"></u-navbar>
|
||||
<div class="header-content-bg">
|
||||
<img src="https://cdn.sinoecare.com/i/2024/07/12/6690a1303d423.png" alt="">
|
||||
</div>
|
||||
@@ -25,7 +25,7 @@
|
||||
</div>
|
||||
</AiTopFixed> -->
|
||||
|
||||
<div class="top-tabs">
|
||||
<div class="top-tabs" :style="{'top': `${statusBarHeight+50}px`}">
|
||||
<u-tabs :list="tabList" :is-scroll="false" :current="currentTabs" height="96" bg-color="#fff" inactive-color="#222"
|
||||
active-color="#1D2229" :bar-style="barStyle" font-size="34" @change="change"></u-tabs>
|
||||
<div class="select-content">
|
||||
@@ -50,11 +50,13 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="dataes" v-if="datas.length > 0">
|
||||
<div class="datass" v-for="(item, iindex) in datas" :key="iindex" @click="toDetailCard(item)">
|
||||
<div class="dataes">
|
||||
<div class="datass" v-for="(item, index) in datas" :key="index" @click="toDetailCard(item)">
|
||||
<div class="left">
|
||||
<img :src="item.photo" alt="" v-if="item.photo"/>
|
||||
<img src="./components/img/4.png" alt="" v-else/>
|
||||
<div class="select-img" @click.stop="clickCheck(index)">
|
||||
<img :src="item.isCheck ? checkImg : circleImg" alt="" >
|
||||
</div>
|
||||
<img :src="item.photo ? item.photo : userImg " alt="" class="user-img"/>
|
||||
</div>
|
||||
|
||||
<div class="right">
|
||||
@@ -67,21 +69,41 @@
|
||||
</div>
|
||||
<div class="rightBottom">
|
||||
<span>{{ item.idNumber.replace(/^(\w{6})\w{8}(.*)$/, '$1********$2') }}</span>
|
||||
|
||||
<span>{{ item.phone }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="empty" v-if="!datas.length">
|
||||
<img src="https://cdn.cunwuyun.cn/dvcp/h5/no-data.png" alt="">
|
||||
<p>暂无居民信息<br/>点击<span @click="edit('')">新增按钮</span>新增居民信息,也可在管理系统批量导入</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="empty" v-else>
|
||||
<img src="https://cdn.cunwuyun.cn/dvcp/h5/no-data.png" alt="">
|
||||
<p>暂无居民信息<br/>点击<span @click="edit('')">新增按钮</span>新增居民信息,也可在管理系统批量导入</p>
|
||||
</div>
|
||||
|
||||
<!-- <AiEmpty class="emptyWrap" v-else></AiEmpty> -->
|
||||
<div style="height: 60px"></div>
|
||||
<div class="footer" @click="edit('')">
|
||||
<div class="btn">新增居民</div>
|
||||
<div class="footer" v-if="showBtn" @click="showTag=true">
|
||||
<div class="btn">打标签</div>
|
||||
</div>
|
||||
<u-popup v-model="showTag" mode="bottom">
|
||||
<div class="popup-content">
|
||||
<div class="title">111</div>
|
||||
<div class="tag-list">
|
||||
<div class="item active">2222</div>
|
||||
<div class="item active">2222</div>
|
||||
<div class="item">2222</div>
|
||||
</div>
|
||||
<div class="title">111</div>
|
||||
<div class="tag-list">
|
||||
<div class="item">333</div>
|
||||
<div class="item">333</div>
|
||||
</div>
|
||||
<div class="poup-btn">
|
||||
<div>取消</div>
|
||||
<div class="confirm">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</u-popup>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -123,10 +145,24 @@ export default {
|
||||
'bottom': '-4px',
|
||||
'background': '#026AF2'
|
||||
},
|
||||
statusBarHeight: uni.getSystemInfoSync().statusBarHeight,
|
||||
checkImg: 'https://cdn.sinoecare.com/i/2024/07/16/6695ddf91113c.png',
|
||||
circleImg: 'https://cdn.sinoecare.com/i/2024/07/16/6695ddf890b1e.png',
|
||||
userImg: 'https://cdn.sinoecare.com/i/2024/07/16/6695e2a0d95c9.png',
|
||||
showTag: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState(['user']),
|
||||
showBtn() {
|
||||
var btn = false
|
||||
this.datas.map((item) => {
|
||||
if(item.isCheck) {
|
||||
btn = true
|
||||
}
|
||||
})
|
||||
return btn
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
onLoad() {
|
||||
@@ -160,6 +196,9 @@ export default {
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
res.data.records.map((item) => {
|
||||
item.isCheck = false
|
||||
})
|
||||
this.datas = this.current > 1 ? [...this.datas, ...res.data.records] : res.data.records
|
||||
|
||||
this.pages = res.data.pages
|
||||
@@ -212,6 +251,9 @@ export default {
|
||||
})
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
clickCheck(index) {
|
||||
this.datas[index].isCheck = !this.datas[index].isCheck
|
||||
}
|
||||
},
|
||||
onReachBottom() {
|
||||
@@ -224,6 +266,7 @@ export default {
|
||||
<style scoped lang="scss">
|
||||
.PeopleList {
|
||||
height: 100%;
|
||||
|
||||
.header-content-bg {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
@@ -234,17 +277,14 @@ export default {
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
|
||||
.top-tabs {
|
||||
width: 100%;
|
||||
padding: 0 32px;
|
||||
width: calc(100% - 64px);
|
||||
box-sizing: border-box;
|
||||
position: fixed;
|
||||
left: 32px;
|
||||
z-index: 9;
|
||||
::v-deep .u-tabs {
|
||||
border-top-left-radius: 16px;
|
||||
border-top-right-radius: 16px;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.select-content {
|
||||
width: 100%;
|
||||
padding: 0 32px;
|
||||
@@ -274,6 +314,56 @@ export default {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .u-tabs {
|
||||
border-bottom: 1px solid #eee;
|
||||
border-top-left-radius: 16px;
|
||||
border-top-right-radius: 16px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// .top-tabs {
|
||||
// width: 100%;
|
||||
// padding: 0 32px;
|
||||
// box-sizing: border-box;
|
||||
// position: fixed;
|
||||
// z-index: 9;
|
||||
// ::v-deep .u-tabs {
|
||||
// border-top-left-radius: 16px;
|
||||
// border-top-right-radius: 16px;
|
||||
// border-bottom: 1px solid #eee;
|
||||
// }
|
||||
// .select-content {
|
||||
// width: 100%;
|
||||
// padding: 0 32px;
|
||||
// box-sizing: border-box;
|
||||
// background-color: #fff;
|
||||
// .search-input {
|
||||
// width: 100%;
|
||||
// padding: 28px 0;
|
||||
// }
|
||||
// .area-content {
|
||||
// width: 100%;
|
||||
// padding: 26px 32px;
|
||||
// box-sizing: border-box;
|
||||
// font-family: PingFangSC-Regular;
|
||||
// font-size: 32px;
|
||||
// color: #222;
|
||||
// ::v-deep u-icon,
|
||||
// ::v-deep .u-icon {
|
||||
// width: 100%;
|
||||
// }
|
||||
// ::v-deep .u-icon__label {
|
||||
// display: inline-block;
|
||||
// width: calc(100% - 32px);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// }
|
||||
// }
|
||||
|
||||
.areatop {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
@@ -326,34 +416,49 @@ export default {
|
||||
}
|
||||
|
||||
.dataes {
|
||||
background: #fff;
|
||||
width: calc(100% - 64px);
|
||||
margin-left: 32px;
|
||||
padding-top: 320px;
|
||||
margin: 320px 0 0 32px;
|
||||
border-bottom-left-radius: 16px;
|
||||
border-bottom-right-radius: 16px;
|
||||
.datass {
|
||||
display: flex;
|
||||
padding: 24px 32px;
|
||||
|
||||
padding: 24px 0;
|
||||
width: 100%;
|
||||
background: #fff;
|
||||
.left {
|
||||
img {
|
||||
width: 208px;
|
||||
.user-img {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.select-img {
|
||||
display: inline-block;
|
||||
padding: 0 32px;
|
||||
img {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
vertical-align: super;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-left: 32px;
|
||||
width: 100%;
|
||||
width: calc(100% - 208px);
|
||||
padding: 0 32px 20px 0;
|
||||
box-sizing: border-box;
|
||||
border-bottom: 1px solid #eee;
|
||||
|
||||
.rightTop {
|
||||
font-size: 32px;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-family: PingFangSC-Medium;
|
||||
font-weight: 500;
|
||||
font-size: 32px;
|
||||
color: #333;
|
||||
line-height: 44px;
|
||||
|
||||
.btn {
|
||||
img {
|
||||
@@ -368,17 +473,19 @@ export default {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 8px;
|
||||
font-size: 28px;
|
||||
font-family: PingFangSC-Regular;
|
||||
color: #999;
|
||||
span:nth-of-type(1) {
|
||||
display: inline-block;
|
||||
margin-right: 16px;
|
||||
font-size: 26px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.emptyWrap {
|
||||
background: #f5f5f5;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
.footer {
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
@@ -401,8 +508,7 @@ export default {
|
||||
}
|
||||
|
||||
.empty {
|
||||
height: 100%;
|
||||
|
||||
padding-bottom: 64px;
|
||||
img {
|
||||
width: 282px;
|
||||
height: 306px;
|
||||
@@ -421,5 +527,65 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.popup-content {
|
||||
height: 800px;
|
||||
width: 100%;
|
||||
padding: 16px 32px 170px;
|
||||
box-sizing: border-box;
|
||||
overflow-y: scroll;
|
||||
position: relative;
|
||||
.title {
|
||||
font-family: PingFangSC-Medium;
|
||||
font-weight: 500;
|
||||
font-size: 32px;
|
||||
color: #333;
|
||||
line-height: 44px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.tag-list {
|
||||
.item {
|
||||
display: inline-block;
|
||||
padding: 0 8px;
|
||||
line-height: 44px;
|
||||
border-radius: 8px;
|
||||
margin: 0 16px 16px 0;
|
||||
background: #F0F2F5;
|
||||
color: #8891A1;
|
||||
font-size: 24px;
|
||||
}
|
||||
.active {
|
||||
background-color: #467DFE;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
.poup-btn {
|
||||
padding: 0 32px 68px;
|
||||
box-sizing: border-box;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
div {
|
||||
display: inline-block;
|
||||
width: calc(50% - 64px);
|
||||
height: 88px;
|
||||
line-height: 88px;
|
||||
text-align: center;
|
||||
border-radius: 44px;
|
||||
font-family: PingFangSC-Medium;
|
||||
font-weight: 500;
|
||||
font-size: 34px;
|
||||
color: #222;
|
||||
border: 1px solid #eee;
|
||||
}
|
||||
.confirm {
|
||||
margin-left: 64px;
|
||||
color: #fff;
|
||||
background-color: #026AF2;
|
||||
border-color: #026AF2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
112
src/project/weiyang/AppPeopleList/TagList.vue
Normal file
112
src/project/weiyang/AppPeopleList/TagList.vue
Normal file
@@ -0,0 +1,112 @@
|
||||
<template>
|
||||
<div class="TagList">
|
||||
<u-navbar back-icon-color="#000" title="居民标签管理" title-color="#000" title-width="300" title-size="32"
|
||||
:title-bold="true" :background="backgroundNavbar" :is-fixed="true" height="44" z-index="999"></u-navbar>
|
||||
<div class="header-content-bg">
|
||||
<img src="https://cdn.sinoecare.com/i/2024/07/12/6690a1303d423.png" alt="">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- <AiEmpty class="emptyWrap" v-else></AiEmpty> -->
|
||||
<div class="footer">
|
||||
<div class="btn">新增标签组</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapState} from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'TagList',
|
||||
appName: '居民标签管理',
|
||||
customNavigation: true,
|
||||
data() {
|
||||
return {
|
||||
backgroundNavbar: {
|
||||
background: 'url(https://cdn.sinoecare.com/i/2024/07/12/6690a1309c7d3.png) no-repeat',
|
||||
backgroundSize: 'cover',
|
||||
},
|
||||
current: 1,
|
||||
pages: 2
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState(['user']),
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
onShow() {
|
||||
uni.setNavigationBarColor({
|
||||
frontColor: 'black',
|
||||
backgroundColor: '#ffffff'
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
if(this.current > this.pages) return
|
||||
this.$instance.post('/app/appresident/list', null, {
|
||||
params: {
|
||||
size: 20,
|
||||
current: this.current,
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
res.data.records.map((item) => {
|
||||
item.isCheck = false
|
||||
})
|
||||
this.list = this.current > 1 ? [...this.list, ...res.data.records] : res.data.records
|
||||
|
||||
this.pages = res.data.pages
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
onReachBottom() {
|
||||
// this.current = this.current + 1
|
||||
// this.getList()
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.TagList {
|
||||
height: 100%;
|
||||
.header-content-bg {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
img {
|
||||
width: 100%;
|
||||
height: 592px;
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
.footer {
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: #F4F5FA;
|
||||
padding: 64px 64px 68px 64px;
|
||||
z-index: 9;
|
||||
.btn {
|
||||
width: calc(100% - 128px);
|
||||
line-height: 88px;
|
||||
background: #026AF2;
|
||||
border-radius: 44px;
|
||||
font-family: PingFangSC-Medium;
|
||||
font-weight: 500;
|
||||
font-size: 34px;
|
||||
color: #FFF;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user