BUG 29777

This commit is contained in:
aixianling
2022-05-30 15:07:25 +08:00
parent 69509c43f1
commit c17018ae9d

View File

@@ -50,78 +50,33 @@
</ai-table> </ai-table>
<ai-dialog <ai-dialog
:visible.sync="isShow" :visible.sync="isShow"
width="890px" width="1100px"
@close="closeDialog" @close="closeDialog"
title="添加户主" title="添加户主"
@onConfirm="onConfirm"> @onConfirm="onConfirm">
<ai-area-select clearable always-show :instance="instance" v-model="areaId" @change="search.current = 1, getUserList()"></ai-area-select> <el-form ref="DialogForm" size="small" label-width="0">
<span style="margin-top:16px;"><span style="color:#f46;margin-right:4px;">*</span>网格</span> <el-form-item>
<el-select size="small" style="width: 280px;margin-top:16px;" v-model="girdId" placeholder="请选择网格" clearable> <ai-area-select clearable always-show :instance="instance" v-model="areaId" :disabled-level="disabledLevel"/>
<el-option </el-form-item>
v-for="(item,i) in girdList" <el-form-item label="网格:" required label-width="80px">
:key="i" <el-select size="small" v-model="girdId" placeholder="请选择网格" clearable>
:label="item.girdName" <el-option v-for="(item,i) in girdList" :key="i" :label="item.girdName" :value="item.id"/>
:value="item.id"
>
</el-option>
</el-select> </el-select>
<div class="AiWechatSelecter-container"> </el-form-item>
<div class="AiWechatSelecter-container__left" v-loading="isLoading"> <el-form-item>
<div class="AiWechatSelecter-header"> <ai-table-select :instance="instance" :action="`/app/appresident/list?householdName=1&areaId=${areaId}`"
<div class="AiWechatSelecter-header__left"> @select="v=>chooseUser=v" multiple/>
<h2>户主信息列表</h2> </el-form-item>
</div> </el-form>
<el-input
class="search-input"
size="mini"
placeholder="请输入姓名/身份证号"
v-model="name"
clearable
@keyup.enter.native="getUserList()"
@clear="name = '', getUserList()"
suffix-icon="iconfont iconSearch">
</el-input>
</div>
<el-scrollbar class="AiWechatSelecter-list">
<el-checkbox-group v-model="chooseUser">
<el-checkbox
:label="`${item.name}~${item.id}`"
v-for="(item, index) in userList"
:key="index">
{{ item.name }}-{{ item.idNumber }}
</el-checkbox>
</el-checkbox-group>
<AiEmpty v-if="!this.userList.length"></AiEmpty>
</el-scrollbar>
</div>
<div class="AiWechatSelecter-container__right">
<div class="AiWechatSelecter-header AiWechatSelecter-header__right">
<h2>已选择</h2>
<el-button size="mini" icon="el-icon-delete" @click="clearAll">清空</el-button>
</div>
<el-scrollbar class="AiWechatSelecter-list">
<div class="tags-wrapper">
<el-tag
v-for="(item, index) in chooseUser"
:key="index"
closable
@close="del(item)"
size="small"
type="info">
{{ item.split('~')[0] }}
</el-tag>
</div>
</el-scrollbar>
</div>
</div>
</ai-dialog> </ai-dialog>
</template> </template>
</ai-list> </ai-list>
</template> </template>
<script> <script>
import { mapState } from 'vuex' import {mapState} from 'vuex'
export default {
export default {
name: 'Family', name: 'Family',
props: { props: {
@@ -139,22 +94,20 @@
girdId: '' girdId: ''
}, },
isLoading: false, isLoading: false,
form: { form: {},
},
userList: [], userList: [],
name: '', name: '',
chooseUser: [], chooseUser: [],
isShow: false, isShow: false,
total: 10, total: 10,
colConfigs: [ colConfigs: [
{ type: 'selection', label: '' }, {type: 'selection', label: ''},
{ prop: 'name', label: '户主姓名', align: 'left', width: '200px' }, {prop: 'name', label: '户主姓名', align: 'left', width: '200px'},
{ prop: 'idNumber', label: '身份证号', align: 'center' }, {prop: 'idNumber', label: '身份证号', align: 'center'},
{ prop: 'phone', label: '联系方式', align: 'center' }, {prop: 'phone', label: '联系方式', align: 'center'},
{ prop: 'girdName', label: '所属网格', align: 'center' }, {prop: 'girdName', label: '所属网格', align: 'center'},
{ prop: 'createTime', label: '添加时间', align: 'center' }, {prop: 'createTime', label: '添加时间', align: 'center'},
{ slot: 'options', label: '操作', align: 'center' } {slot: 'options', label: '操作', align: 'center'}
], ],
tableData: [], tableData: [],
areaId: '', areaId: '',
@@ -189,7 +142,7 @@
this.search.current = 1 this.search.current = 1
this.getList() this.getList()
}, },
getList () { getList() {
this.instance.post(`/app/appgirdmemberresident/listByGirdMember`, null, { this.instance.post(`/app/appgirdmemberresident/listByGirdMember`, null, {
params: { params: {
...this.search, ...this.search,
@@ -214,12 +167,12 @@
this.ids = e.map(v => v.gmrId) this.ids = e.map(v => v.gmrId)
}, },
clearAll () { clearAll() {
this.chooseUser = [] this.chooseUser = []
}, },
onConfirm () { onConfirm() {
if(!this.girdId) { if (!this.girdId) {
return this.$message.error('请选择网格') return this.$message.error('请选择网格')
} }
@@ -230,8 +183,8 @@
const residentList = this.chooseUser.map(v => { const residentList = this.chooseUser.map(v => {
return { return {
girdMemberId: this.params.id, girdMemberId: this.params.id,
name: v.split('~')[0], name: v.name,
residentId: v.split('~')[1], residentId: v.id,
girdId: this.girdId girdId: this.girdId
} }
}) })
@@ -255,11 +208,11 @@
this.getUserList() this.getUserList()
}, },
del (e) { del(e) {
this.chooseUser.splice(this.chooseUser.indexOf(e), 1) this.chooseUser.splice(this.chooseUser.indexOf(e), 1)
}, },
getUserList () { getUserList() {
this.isLoading = true this.isLoading = true
this.instance.post(`/app/appresident/list`, null, { this.instance.post(`/app/appresident/list`, null, {
params: { params: {
@@ -278,7 +231,7 @@
}) })
}, },
onBack () { onBack() {
this.$emit('change', { this.$emit('change', {
type: 'list' type: 'list'
}) })
@@ -295,203 +248,10 @@
}) })
} }
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.Family { .Family {
.AiWechatSelecter-container { }
display: flex;
height: 380px;
margin-top: 20px;
::v-deep {
.el-icon-circle-close {
display: inline-block!important;
}
}
.tree-container {
& > span {
display: block;
margin-bottom: 4px;
}
.tree-user__item {
display: flex;
align-items: center;
margin-bottom: 10px;
&:last-child {
margin-bottom: 0;
}
}
img {
width: 27px;
height: 27px;
margin-right: 10px;
}
}
::v-deep .el-tree {
background: transparent;
.el-tree-node {
margin-bottom: 8px;
&:last-child {
margin-bottom: 0;
}
}
.el-tree-node__content {
height: auto;
margin-top: 2px;
// align-items: inherit;
}
.el-tree-node__expand-icon {
height: 24px;
}
}
.mask-btn__wrapper {
position: relative;
}
.mask-btn {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.userlist-item {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 8px;
padding: 0 17px;
cursor: pointer;
user-select: none;
::v-deep .el-checkbox__label {
display: none;
}
.userlist-item__left {
display: flex;
align-items: center;
span {
color: #222222;
font-size: 14px;
}
img {
width: 40px;
height: 40px;
margin-right: 8px;
}
}
}
& > div {
width: 280px;
background: #FCFCFC;
border: 1px solid #D0D4DC;
}
.AiWechatSelecter-list {
height: calc(100% - 40px);
padding: 8px 0;
::v-deep .el-scrollbar__wrap {
margin-bottom: 0!important;
overflow-x: hidden;
}
::v-deep .el-checkbox-group {
padding: 0 8px;
.el-checkbox {
display: block;
margin-right: 0;
}
}
}
.AiWechatSelecter-container__left {
flex: 1;
}
.AiWechatSelecter-container__right {
flex: 1;
margin-left: 20px;
.AiWechatSelecter-list {
.tags-wrapper {
padding: 0 8px;
}
.el-tag {
margin: 0 8px 8px 0px;
color: #222222;
font-size: 14px;
}
}
}
.AiWechatSelecter-header {
display: flex;
align-items: center;
justify-content: space-between;
height: 40px;
padding: 0 8px 0 0;
border-bottom: 1px solid #D0D4DC;
background: #F5F7FA;
.AiWechatSelecter-header__left {
display: flex;
align-items: center;
padding: 0 8px;
h2 {
height: 100%;
line-height: 40px;
color: #222222;
font-size: 14px;
text-align: center;
cursor: pointer;
border-bottom: 2px solid transparent;
&.active {
color: #2266FF;
border-color: #2266FF;
}
}
}
.el-button {
height: 28px;
padding: 7px 5px;
}
.el-input {
width: 160px;
}
}
.AiWechatSelecter-header__right {
padding: 0 8px;
h2 {
color: #222222;
font-size: 14px;
text-align: center;
}
}
}
}
</style> </style>