jiangchengfeiyi-xiaochengxu/pages/order/component/addSelected.vue

61 lines
1.4 KiB
Vue
Raw Normal View History

2025-01-02 02:12:11 +00:00
<template>
<view>
<uni-data-picker v-slot:default="{data, error, options}" :localdata="items" popup-title="选择省//" @change="onchange" @nodeclick="onnodeclick">
<view class="picker" :style="pik">{{ tempSelected }}</view>
</uni-data-picker>
</view>
</template>
<script setup>
import {ref, onMounted} from 'vue'
import data from './area.json'
import emitter from '../../../utils/emitter';
const items = ref(data)
const selected = ref('选择省/市/区')
const selectedItem = ref([])
const pik = ref({color: '#CFCFCF'})
const tempSelected = ref('选择省/市/区')
onMounted(() => {
emitter.on('addRegion', (val) => {
selected.value = val
pik.value.color = "#000"
if(selected.value.length > 11) tempSelected.value = selected.value.slice(0, 11) + '...'
else tempSelected.value = selected.value
})
})
const onchange = (e) => {
selectedItem.value = e.detail.value
selected.value = ""
selectedItem.value.map((it, index) => {
selected.value += it.text
if(index != 2)
selected.value += "/"
})
if(selected.value.length > 11) tempSelected.value = selected.value.slice(0, 11) + '...'
else tempSelected.value = selected.value
pik.value.color = "#000"
emitter.emit('region', selected.value)
}
const close = () => {
emitter.emit('close')
}
const onnodeclick = (node) => {
console.log(node)
}
</script>
<style lang="scss" scoped>
.picker{
font-size: 35rpx;
line-height: 100rpx;
}
</style>