优化界面和组件
This commit is contained in:
@@ -4,11 +4,11 @@
|
||||
<div slot="btn" @tap="handleInit">
|
||||
<slot v-if="$slots.default"/>
|
||||
<div v-else-if="isForm">
|
||||
<u-icon name="arrow-right" :label="currentArea.name||'请选择'" label-pos="left" color="#ddd"/>
|
||||
<u-icon name="arrow-right" :label="areaName||'请选择'" label-pos="left" color="#ddd"/>
|
||||
</div>
|
||||
<div v-else class="areaSelector">
|
||||
<image :src="locationIcon" class="location"/>
|
||||
<div v-text="currentArea.name"/>
|
||||
<div v-text="areaName"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="areaSelector" id="areaSelector">
|
||||
@@ -89,6 +89,7 @@ export default {
|
||||
return {
|
||||
fullArea: [],
|
||||
index: '',
|
||||
areaName: '',
|
||||
list: [],
|
||||
height: '500px',
|
||||
levelLabels: ["省", "市", "县/区", "镇/街道", "村/社区"],
|
||||
@@ -99,6 +100,11 @@ export default {
|
||||
areaId(v) {
|
||||
v && this.getFullArea()
|
||||
},
|
||||
value(v) {
|
||||
if (this.list.length && v) {
|
||||
this.areaName = this.list.find((e) => e.id == this.value).name
|
||||
}
|
||||
},
|
||||
fullArea: {
|
||||
handler(v) {
|
||||
this.$nextTick(() => {
|
||||
@@ -150,17 +156,18 @@ export default {
|
||||
if (res.data.length) {
|
||||
this.list = res.data
|
||||
let self = this.fullArea.find((e) => e.id == this.areaId)
|
||||
if (this.value && !this.areaName && this.value !== this.areaId) {
|
||||
this.areaName = this.list.find((e) => e.id == this.value).name
|
||||
}
|
||||
if (!this.areaName && this.value === this.areaId) {
|
||||
this.areaName = self.name
|
||||
}
|
||||
if (!!self?.id && !this.isHideTown) {
|
||||
this.list.unshift(self)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
isVillage(areaId) {
|
||||
return areaId.substr(areaId.length - 3, 3) != '000'
|
||||
},
|
||||
|
||||
getProvinces() {
|
||||
this.$instance.post('/admin/area/queryProvinceList', null, {withoutToken: true}).then((res) => {
|
||||
if (res?.data) {
|
||||
@@ -178,6 +185,7 @@ export default {
|
||||
if (this.selected.type == 5) {
|
||||
fullName = fullName + this.selected.name
|
||||
}
|
||||
this.areaName = this.selected.name || this.areaName
|
||||
this.$emit('update:fullName', fullName)
|
||||
this.$emit('update:name', this.selected.name)
|
||||
this.closePopup()
|
||||
|
||||
Reference in New Issue
Block a user