Files
dvcp_v2_wxcp_app/library/apps/AppGridManagement/AddGird.vue
2024-10-31 14:34:57 +08:00

166 lines
4.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="AddGird">
<AiGroup>
<AiItem label="网格名称" required>
<u-input type="text" placeholder="请输入" input-align="right" placeholder-style="color:#999;font-size:16px;" height="48" v-model="form.girdName"
maxlength="50"/>
</AiItem>
</AiGroup>
<AiGroup>
<AiItem label="网格长" topLabel>
<AiPagePicker type="sysUser" :selected.sync="form.girdMemberManageList" action="/app/wxcp/wxuser/list?status=1" nodeKey="id">
<AiMore :value="getArrayLabel(form.girdMemberManageList)"/>
</AiPagePicker>
</AiItem>
</AiGroup>
<AiGroup>
<AiItem label="网格员" topLabel>
<AiPagePicker type="sysUser" :selected.sync="form.girdMemberList" action="/app/wxcp/wxuser/list?status=1" nodeKey="id">
<AiMore :value="getArrayLabel(form.girdMemberList)"/>
</AiPagePicker>
</AiItem>
</AiGroup>
<div class="footer" @click="$u.debounce(confirm)">{{ fromType == 'add' ? '确认添加' : '确认修改' }}</div>
</div>
</template>
<script>
export default {
data() {
return {
id: '',
form: {
girdMemberManageList: [],
girdMemberList: []
},
fromType: 'add', //add新增 edit编辑,
}
},
onLoad(option) {
this.id = option.id
this.fromType = option.fromType
this.getDetail()
},
onShow() {
if (this.fromType == 'add') {
document.title = '添加网格'
} else {
document.title = '编辑网格'
}
},
methods: {
getDetail() {
this.$http.post(`/app/appgirdinfo/queryDetailById?id=${this.id}`).then((res) => {
if (res?.data) {
if (this.fromType == 'edit') {
this.form = res.data
this.form.girdMemberList?.map(e => e.id = e.wxUserId)
this.form.girdMemberManageList?.map(e => e.id = e.wxUserId)
}
if (this.fromType == 'add') {
this.form.parentGirdId = res.data.id
this.form.parentGirdName = res.data.girdName
this.$forceUpdate()
}
}
})
},
confirm() {
if (!this.form.girdName) {
return this.$u.toast('请输入网格名称')
}
let girdMemberManageList = this.form.girdMemberManageList?.map((item) => {
return {
wxUserId: item.id,
phone: item.mobile,
photo: item.avatar,
name: item.name
}
})
let girdMemberList = this.form.girdMemberList?.map((item) => {
return {
wxUserId: item.id,
phone: item.mobile,
photo: item.avatar,
name: item.name
}
})
this.$http.post(`/app/appgirdinfo/addOrUpdateByEw`, {...this.form, girdMemberManageList, girdMemberList}).then((res) => {
if (res?.code == 0) {
this.$u.toast('提交成功')
uni.$emit('update')
setTimeout(() => {
uni.navigateBack({})
}, 600)
}
}).catch((err) => {
this.$u.toast(err)
})
},
getArrayLabel(arr, key = 'name', separation = '') {
return arr?.map(e => e[key])?.join(separation)
}
}
}
</script>
<style lang="scss" scoped>
.AddGird {
.item-flex {
display: flex;
padding: 34px 32px;
background-color: #fff;
font-size: 32px;
font-family: PingFangSC-Regular, PingFang SC;
margin-bottom: 16px;
.label {
font-weight: 400;
color: #333333;
line-height: 22px;
width: 150px;
.tips {
display: inline-block;
width: 16px;
color: #F46;
line-height: 44px;
}
}
.value {
width: calc(100% - 150px);
line-height: 44px;
text-align: right;
color: #666;
img {
width: 44px;
height: 44px;
vertical-align: middle;
}
}
.color-999 {
color: #999;
}
}
.footer {
width: 100%;
height: 112px;
line-height: 112px;
background: #1365DD;
position: fixed;
bottom: 0;
left: 0;
text-align: center;
font-size: 36px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #FFF;
}
}
</style>