mirror of
https://github.com/ialley-workshop-open/uni-halo.git
synced 2026-06-12 21:29:31 +08:00
v1.0.0-beta 源码正式开源
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
<template>
|
||||
<view class="tm-pickersCityView">
|
||||
<tm-pickersView :bg-color="bgColor" :black="black_tmeme" :disabled="disabled" ref="cityApp" :default-value="defaultValue" :list="list" ></tm-pickersView>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import provinceData from '@/tm-vuetify/tool/util/province.js';
|
||||
import cityData from '@/tm-vuetify/tool/util/city.js';
|
||||
import areaData from '@/tm-vuetify/tool/util/area.js';
|
||||
/**
|
||||
* 地区选择器(内嵌式)
|
||||
* @description 地区选择器(内嵌式),使用$refs 方式调用getSelectedValue取得选中的数据。
|
||||
* @property {String} level = [province|city|area] ,默认area,显示的级别province:仅显示省,city仅显示省市,area:显示省市区。
|
||||
* @property {Array} default-value = [] 同tm-pckerView格式,可以是数组内:序列,对象,字符串赋值。
|
||||
* @property {String|Boolean} black = [true|false] 是否开启暗黑模式。
|
||||
* @property {String|Boolean} disabled = [true|false] 是否禁用
|
||||
* @property {String} bg-color = [white|blue] 默认:white,白色背景;请填写背景的主题色名称。
|
||||
* @example <tm-pickersCityView ref="city" :defaultValue='["上海市", "市辖区", "徐汇区"]'></tm-pickersCityView>
|
||||
*
|
||||
*/
|
||||
import tmPickersView from "@/tm-vuetify/components/tm-pickersView/tm-pickersView.vue"
|
||||
export default {
|
||||
components:{tmPickersView},
|
||||
name:'tm-pickersCityView',
|
||||
props:{
|
||||
defaultValue:{
|
||||
type:Array,
|
||||
default:()=>{return []}
|
||||
},
|
||||
// 显示的级别。province,city,area。
|
||||
level:{
|
||||
type:String,
|
||||
default:'area'
|
||||
},
|
||||
black:{
|
||||
type:String|Boolean,
|
||||
default:null
|
||||
},
|
||||
// 是否禁用
|
||||
disabled:{
|
||||
type:String|Boolean,
|
||||
default:false
|
||||
},
|
||||
// 背景颜色,主题色名称。
|
||||
bgColor:{
|
||||
type:String,
|
||||
default:'white'
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
list:[],
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
black_tmeme: function() {
|
||||
if (this.black !== null) return this.black;
|
||||
return this.$tm.vx.state().tmVuetify.black;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(function(){
|
||||
this.chili_level();
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
// 获取选中的资料。
|
||||
getSelectedValue(){
|
||||
let d = this.$refs.cityApp.getSelectedValue();
|
||||
|
||||
let p = [];
|
||||
if(this.level=='province'){
|
||||
p = [d[0].data.text]
|
||||
}else if(this.level=='city'){
|
||||
p = [d[0].data.text,d[1].data.text]
|
||||
}else{
|
||||
p = [d[0].data.text,d[1].data.text,d[2].data.text]
|
||||
}
|
||||
return p;
|
||||
},
|
||||
chili_level(){
|
||||
if(this.level=='province'){
|
||||
this.chiliFormatCity_pro();
|
||||
}else if(this.level=='city'){
|
||||
this.chiliFormatCity_city();
|
||||
}else{
|
||||
this.chiliFormatCity_area();
|
||||
}
|
||||
},
|
||||
chiliFormatCity_area() {
|
||||
let list = [];
|
||||
provinceData.forEach((item,index)=>{
|
||||
list.push({
|
||||
id:item.value,
|
||||
text:item.label,
|
||||
children:[]
|
||||
})
|
||||
})
|
||||
cityData.forEach((item,index)=>{
|
||||
item.forEach((citem,cindex)=>{
|
||||
list[index].children.push({
|
||||
id:citem.value,
|
||||
text:citem.label,
|
||||
children:[]
|
||||
})
|
||||
})
|
||||
})
|
||||
list.forEach((item,index)=>{
|
||||
item.children.forEach((citem,cindex)=>{
|
||||
areaData[index][cindex].forEach(jitem=>{
|
||||
list[index].children[cindex].children.push({
|
||||
id:jitem.value,
|
||||
text:jitem.label
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
this.list = list;
|
||||
},
|
||||
chiliFormatCity_pro() {
|
||||
let list = [];
|
||||
provinceData.forEach((item,index)=>{
|
||||
list.push({
|
||||
id:item.value,
|
||||
text:item.label
|
||||
})
|
||||
})
|
||||
|
||||
this.list = list;
|
||||
},
|
||||
chiliFormatCity_city() {
|
||||
let list = [];
|
||||
provinceData.forEach((item,index)=>{
|
||||
list.push({
|
||||
id:item.value,
|
||||
text:item.label,
|
||||
children:[]
|
||||
})
|
||||
})
|
||||
cityData.forEach((item,index)=>{
|
||||
item.forEach((citem,cindex)=>{
|
||||
list[index].children.push({
|
||||
id:citem.value,
|
||||
text:citem.label
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
this.list = list;
|
||||
}
|
||||
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user