12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <script setup>
- import {ref, watch} from 'vue'
- import apiDataEDB from '@/api/dataEDB'
- const props=defineProps({
- show:{
- type:Boolean,
- default:false
- },
- defaultId:{//初始选中的分类
- type:Number,
- default:0
- }
- })
- const emits=defineEmits(['update:show','select'])
- function handleClose(){
- emits('update:show',false)
- }
- watch(
- ()=>props.defaultId,
- (n)=>{
- if(n){
- classify.value=n
- }
- }
- )
- // 获取指标库分类
- const classify=ref('')
- const edbClassifyList=ref([])
- function getEdbClassifyList(){
- apiDataEDB.edbClassifyList().then(res=>{
- if(res.Ret===200){
- edbClassifyList.value=res.Data.AllNodes||[]
- }
- })
- }
- getEdbClassifyList()
- function handleFinish({value,selectedOptions,tabIndex}){
- emits('select',{value,selectedOptions})
- handleClose()
- }
- // 通过classifyid 获取当前目录
- function getSelectClassifyOpt(id){
- let arr=[]
- edbClassifyList.value.forEach(e1=>{
- e1.Children?.forEach(e2=>{
- e2.Children?.forEach(e3=>{
- if(e3.ClassifyId===id){
- arr=[e1,e1,e3]
- }
- })
- })
- })
- emits('select',{value:id,selectedOptions:arr})
- return arr
- }
- defineExpose({getSelectClassifyOpt})
- </script>
- <template>
- <van-popup
- :show="props.show"
- round
- position="bottom"
- >
- <van-cascader
- v-model="classify"
- title="选择目录"
- :options="edbClassifyList"
- :field-names="{text:'ClassifyName',value:'ClassifyId',children:'Children'}"
- @close="handleClose"
- @finish="handleFinish"
- />
- </van-popup>
- </template>
|