调整走访对象跨应用跳转特殊人群

This commit is contained in:
aixianling
2022-03-10 14:18:17 +08:00
parent 5d3c2c30e1
commit f61a5d5e12
4 changed files with 84 additions and 35 deletions

View File

@@ -10,23 +10,18 @@
</template> </template>
<script> <script>
import Detail from './detail' import Detail from './components/detail'
import Add from './add'
export default { export default {
name: 'AppSpecialPeople', name: 'AppSpecialPeople',
appName: '特殊人群', appName: '特殊人群',
data() { data() {
return { return {
component: 'Detail', component: Detail,
params: {}, params: {},
refresh: true refresh: true
} }
}, },
components: {Detail, Add},
methods: { methods: {
onChange(e) { onChange(e) {
this.params = e.params this.params = e.params

View File

@@ -208,7 +208,6 @@ export default {
computed: {...mapState(['user'])}, computed: {...mapState(['user'])},
created() { created() {
this.getType() this.getType()
this.typeConfirm([{value: "1adc7c0963e14b06bce444ab6ed49fc5", label: "测试居民档案选择器"}])
}, },
onShow() { onShow() {
document.title = '新增人员' document.title = '新增人员'
@@ -445,7 +444,7 @@ export default {
this.$u.toast('提交成功') this.$u.toast('提交成功')
uni.$emit('specialPeopleList') uni.$emit('specialPeopleList')
setTimeout(() => { setTimeout(() => {
uni.navigateBack() uni.navigateBack({})
}, 600) }, 600)
} }
}) })

View File

@@ -1,22 +1,24 @@
<template> <template>
<div class="detail"> <div class="detail">
<div class="tab-select"> <div class="tab-select">
<div class="item" :class="tabIndex == index ? 'active' : ''" v-for="(item, index) in tabs" :key="index" @click="tabClick(index)">{{ item }}<span></span></div> <div class="item" :class="tabIndex == index ? 'active' : ''" v-for="(item, index) in tabs" :key="index"
@click="tabClick(index)">{{ item }}<span></span></div>
</div> </div>
<div class="area-select"> <div class="area-select">
<div class="select-content"> <div class="select-content">
<div class="area-content"> <div class="area-content">
<AiAreaPicker :areaId="user.areaId" v-model="areaId" @select="areaSelect" :name.sync="areaName"> <AiAreaPicker :areaId="user.areaId" v-model="areaId" @select="areaSelect" :name.sync="areaName">
<img src="./img/local-icon.png" alt="" /> <img src="../img/local-icon.png" alt=""/>
<span class="label" v-if="areaName">{{ areaName }}</span> <span class="label" v-if="areaName">{{ areaName }}</span>
<span v-else>请选择</span> <span v-else>请选择</span>
<u-icon name="arrow-down" color="#666" size="24"/> <u-icon name="arrow-down" color="#666" size="24"/>
</AiAreaPicker> </AiAreaPicker>
</div> </div>
<div class="search-input" v-if="tabIndex"> <div class="search-input" v-if="tabIndex">
<img src="./img/search-icon.png" alt="" /> <img src="../img/search-icon.png" alt=""/>
<u-input type="text" placeholder="请输入姓名" placeholder-style="color:#999;font-size:13px;" height="18" v-model="name" @confirm="getUserList" :clearable="false" maxlength="6" /> <u-input type="text" placeholder="请输入姓名" placeholder-style="color:#999;font-size:13px;" height="18"
v-model="name" @confirm="getUserList" :clearable="false" maxlength="6"/>
</div> </div>
</div> </div>
</div> </div>
@@ -47,12 +49,12 @@
<div class="item-content" v-for="(item, index) in userList" :key="index"> <div class="item-content" v-for="(item, index) in userList" :key="index">
<div class="title" @click="showUserType(index)"> <div class="title" @click="showUserType(index)">
<h2>{{ item.label }}</h2> <h2>{{ item.label }}</h2>
<img src="./img/down-icon.png" alt="" :class="item.check ? 'img-active' : ''" /> <img src="../img/down-icon.png" alt="" :class="item.check ? 'img-active' : ''"/>
</div> </div>
<div class="user-list" v-if="item.check"> <div class="user-list" v-if="item.check">
<div class="user-item" v-for="(e, indexs) in item.value" :key="indexs" v-if="item.value && item.value.length"> <div class="user-item" v-for="(e, indexs) in item.value" :key="indexs" v-if="item.value && item.value.length">
<div class="user-img"> <div class="user-img">
<img src="./img/user-img.png" alt="" /> <img src="../img/user-img.png" alt=""/>
</div> </div>
<div class="user-info"> <div class="user-info">
<p class="name">{{ e.name }}</p> <p class="name">{{ e.name }}</p>
@@ -74,6 +76,7 @@
<script> <script>
import {mapState} from 'vuex' import {mapState} from 'vuex'
export default { export default {
data() { data() {
return { return {
@@ -200,6 +203,7 @@ export default {
line-height: 96px; line-height: 96px;
background: #3975c6; background: #3975c6;
display: flex; display: flex;
.item { .item {
flex: 1; flex: 1;
text-align: center; text-align: center;
@@ -207,11 +211,13 @@ export default {
font-family: PingFangSC-Regular, PingFang SC; font-family: PingFangSC-Regular, PingFang SC;
color: #cddcf0; color: #cddcf0;
} }
.active { .active {
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500; font-weight: 500;
position: relative; position: relative;
color: #fff; color: #fff;
span { span {
width: 48px; width: 48px;
height: 4px; height: 4px;
@@ -223,11 +229,13 @@ export default {
} }
} }
} }
.area-select { .area-select {
width: 100%; width: 100%;
background: #fff; background: #fff;
padding-left: 32px; padding-left: 32px;
box-sizing: border-box; box-sizing: border-box;
.select-content { .select-content {
width: 100%; width: 100%;
padding: 24px 32px 24px 0; padding: 24px 32px 24px 0;
@@ -238,19 +246,22 @@ export default {
color: #333; color: #333;
line-height: 44px; line-height: 44px;
box-sizing: border-box; box-sizing: border-box;
display: flex;
.area-content { .area-content {
width: calc(100% - 402px); width: calc(100% - 402px);
line-height: 64px; line-height: 64px;
img { img {
width: 42px; width: 42px;
vertical-align: middle; vertical-align: middle;
margin-right: 16px; margin-right: 16px;
} }
.u-icon { .u-icon {
margin-left: 6px; margin-left: 6px;
} }
} }
.search-input { .search-input {
width: 402px; width: 402px;
height: 64px; height: 64px;
@@ -259,6 +270,7 @@ export default {
padding: 14px 32px 14px 64px; padding: 14px 32px 14px 64px;
box-sizing: border-box; box-sizing: border-box;
position: relative; position: relative;
img { img {
width: 32px; width: 32px;
height: 32px; height: 32px;
@@ -267,6 +279,7 @@ export default {
top: 18px; top: 18px;
left: 24px; left: 24px;
} }
::v-deep .u-input { ::v-deep .u-input {
display: inline-block; display: inline-block;
width: 240px; width: 240px;
@@ -275,11 +288,13 @@ export default {
} }
} }
} }
.info-content { .info-content {
width: calc(100% - 64px); width: calc(100% - 64px);
background: #fff; background: #fff;
border-radius: 8px; border-radius: 8px;
margin: 24px 32px 0; margin: 24px 32px 0;
.title { .title {
padding-left: 32px; padding-left: 32px;
line-height: 94px; line-height: 94px;
@@ -289,13 +304,16 @@ export default {
font-weight: 500; font-weight: 500;
color: #333; color: #333;
} }
.num-content { .num-content {
overflow: hidden; overflow: hidden;
.num-item { .num-item {
float: left; float: left;
width: 33%; width: 33%;
padding: 40px 0; padding: 40px 0;
text-align: center; text-align: center;
h3 { h3 {
font-size: 64px; font-size: 64px;
font-family: DINAlternate-Bold, DINAlternate; font-family: DINAlternate-Bold, DINAlternate;
@@ -304,6 +322,7 @@ export default {
line-height: 74px; line-height: 74px;
margin-bottom: 10px; margin-bottom: 10px;
} }
p { p {
font-size: 28px; font-size: 28px;
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
@@ -313,6 +332,7 @@ export default {
} }
} }
} }
.color-org { .color-org {
.num-item { .num-item {
h3 { h3 {
@@ -321,8 +341,10 @@ export default {
} }
} }
} }
.item-content { .item-content {
margin-bottom: 4px; margin-bottom: 4px;
.title { .title {
width: 100%; width: 100%;
height: 108px; height: 108px;
@@ -332,36 +354,45 @@ export default {
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
h2 { h2 {
font-size: 32px; font-size: 32px;
font-family: PingFangSC-Semibold, PingFang SC; font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600; font-weight: 600;
color: #333; color: #333;
} }
img { img {
width: 34px; width: 34px;
height: 34px; height: 34px;
margin-top: 38px; margin-top: 38px;
transition: all 0.3s ease-in-out; transition: all 0.3s ease-in-out;
} }
.img-active { .img-active {
transform: rotate(180deg); transform: rotate(180deg);
} }
} }
.user-list { .user-list {
background-color: #fff; background-color: #fff;
.user-item { .user-item {
padding: 24px 32px; padding: 24px 32px;
display: flex; display: flex;
.user-img { .user-img {
width: 112px; width: 112px;
img { img {
width: 80px; width: 80px;
height: 80px; height: 80px;
} }
} }
.user-info { .user-info {
width: 100%; width: 100%;
.name { .name {
font-size: 32px; font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC; font-family: PingFangSC-Medium, PingFang SC;
@@ -370,6 +401,7 @@ export default {
line-height: 44px; line-height: 44px;
margin-bottom: 8px; margin-bottom: 8px;
} }
.phone { .phone {
width: 100%; width: 100%;
font-size: 26px; font-size: 26px;
@@ -383,6 +415,7 @@ export default {
} }
} }
} }
.text { .text {
height: 96px; height: 96px;
line-height: 96px; line-height: 96px;
@@ -390,12 +423,14 @@ export default {
font-size: 28px; font-size: 28px;
text-align: center; text-align: center;
} }
.footer { .footer {
width: 100%; width: 100%;
position: fixed; position: fixed;
bottom: 0; bottom: 0;
left: 0; left: 0;
} }
.btn { .btn {
width: 100%; width: 100%;
height: 112px; height: 112px;

View File

@@ -1,7 +1,9 @@
<template> <template>
<div class="selectType"> <div class="selectType">
<div class="header-top" v-if="!showType"> <div class="header-top" v-if="!showType">
<u-search v-model="keyword" placeholder="请输入姓名" :show-action="false" bg-color="#F5F5F5" search-icon-color="#CCCCCC" placeholder-color="#999999" @search="handerSearch" @clear="handerClear"></u-search> <u-search v-model="keyword" placeholder="请输入姓名" :show-action="false" bg-color="#F5F5F5"
search-icon-color="#CCCCCC" placeholder-color="#999999" @search="handerSearch"
@clear="handerClear"></u-search>
</div> </div>
<div class="header-middle"> <div class="header-middle">
@@ -49,8 +51,9 @@
</div> </div>
</div> </div>
<div class="subBtn" @click="submit"> <div class="subBtn" flex>
<div>确定选择</div> <div @click="gotoSpecialPersion">新增</div>
<div @click="submit">确定选择</div>
</div> </div>
<!-- <AiBck /> --> <!-- <AiBck /> -->
@@ -79,7 +82,8 @@ export default {
onLoad() { onLoad() {
this.getTypeList() this.getTypeList()
}, },
onShow() {}, onShow() {
},
methods: { methods: {
userClick(row, index) { userClick(row, index) {
if (this.userList[index].isChecked) { if (this.userList[index].isChecked) {
@@ -126,7 +130,11 @@ export default {
submit() { submit() {
if (this.selectUser.id != null) { if (this.selectUser.id != null) {
uni.$emit('goBack', { selectUser: this.selectUser, applicationName: this.applicationName, applicationId: this.applicationId }) uni.$emit('goBack', {
selectUser: this.selectUser,
applicationName: this.applicationName,
applicationId: this.applicationId
})
uni.navigateBack() uni.navigateBack()
} else { } else {
return this.$u.toast('请选择人员') return this.$u.toast('请选择人员')
@@ -165,6 +173,9 @@ export default {
this.current = 1 this.current = 1
this.getUsers() this.getUsers()
}, },
gotoSpecialPersion() {
uni.navigateTo({url: '/apps/AppSpecialPeople/add'})
}
}, },
} }
</script> </script>
@@ -173,6 +184,7 @@ export default {
.selectType { .selectType {
height: 100%; height: 100%;
background: #fff; background: #fff;
.header-top { .header-top {
background: #fff; background: #fff;
padding: 20px 32px; padding: 20px 32px;
@@ -180,11 +192,12 @@ export default {
.header-middle { .header-middle {
padding-bottom: 140px; padding-bottom: 140px;
.hint { .hint {
padding: 0 20px 0 32px; padding: 0 20px 0 32px;
height: 112px; height: 112px;
line-height: 112px; line-height: 112px;
box-shadow: 0px 1px 0px 0px #e4e5e6; box-shadow: 0 1px 0 0 #e4e5e6;
font-size: 30px; font-size: 30px;
font-weight: 500; font-weight: 500;
} }
@@ -208,6 +221,7 @@ export default {
height: 74px; height: 74px;
border-radius: 8px; border-radius: 8px;
} }
.rightes { .rightes {
width: 100%; width: 100%;
display: flex; display: flex;
@@ -215,11 +229,13 @@ export default {
align-items: center; align-items: center;
margin-left: 32px; margin-left: 32px;
border-bottom: 1px solid #e4e5e6; border-bottom: 1px solid #e4e5e6;
.applicationNames { .applicationNames {
font-size: 36px; font-size: 36px;
font-weight: 500; font-weight: 500;
color: #333333; color: #333333;
} }
.imgs { .imgs {
width: 40px; width: 40px;
height: 40px; height: 40px;
@@ -242,6 +258,7 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
width: 200px; width: 200px;
.imgselect { .imgselect {
width: 48px; width: 48px;
height: 48px; height: 48px;
@@ -263,11 +280,13 @@ export default {
margin-left: 32px; margin-left: 32px;
border-bottom: 1px solid #e4e5e6; border-bottom: 1px solid #e4e5e6;
padding-right: 40px; padding-right: 40px;
.applicationNames { .applicationNames {
font-size: 36px; font-size: 36px;
font-weight: 500; font-weight: 500;
color: #333333; color: #333333;
} }
.idNumbers { .idNumbers {
color: #666; color: #666;
} }
@@ -280,9 +299,11 @@ export default {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
left: 0; left: 0;
width: 100%; width: 100vw;
height: 118px; height: 118px;
background: #f4f8fb; background: #f4f8fb;
justify-content: flex-end;
div { div {
width: 192px; width: 192px;
height: 80px; height: 80px;
@@ -293,7 +314,6 @@ export default {
font-size: 32px; font-size: 32px;
color: #fff; color: #fff;
margin: 20px 34px 0 0; margin: 20px 34px 0 0;
float: right;
} }
} }
} }