地区选择器

This commit is contained in:
yanran200730
2022-01-13 16:47:34 +08:00
parent c1378fca9e
commit 1847db5fdc
7 changed files with 131 additions and 85 deletions

View File

@@ -8,19 +8,24 @@
<i v-else>{{ placeholder }}</i>
<u-icon name="arrow-right" color="#ddd"/>
</div>
<u-select v-model="show" :list="options" @confirm="handleConfirm"/>
<u-select v-model="show" :list="options" :mode="mode" @confirm="handleConfirm"/>
</section>
</template>
<script>
export default {
name: "AiSelect",
model: {
event: "input",
prop: "value"
},
props: {
value: String,
placeholder: {default: "请选择"},
list: {default: () => []},
mode: {default: "single-column"},
dict: {default: ""},
disabled: Boolean,
disabled: Boolean
},
computed: {
selectedLabel() {
@@ -28,7 +33,7 @@ export default {
return this.selected?.map(e => e.label)?.join(",") || label
},
options() {
return this.dict ? this.$dict.getDict(this.dict).map(e => ({
return this.dictKey ? this.$dict.getDict(this.dict).map(e => ({
value: e.dictValue,
label: e.dictName
})) : this.list
@@ -37,13 +42,21 @@ export default {
data() {
return {
show: false,
dictKey: '',
selected: []
}
},
mounted () {
this.$dict.load(this.dict).then(() => {
this.dictKey = this.dict
})
},
methods: {
handleConfirm(v) {
this.selected = v
this.$emit("data", this.selected)
this.$emit("input", v[0].value)
this.$forceUpdate()
},
handleShowOptions() {
@@ -70,12 +83,15 @@ export default {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
font-size: 30px;
color: #333;
white-space: nowrap;
}
}
i {
font-style: normal;
font-size: 30px;
color: $uni-text-color-grey;
}
}