|
@@ -9,12 +9,12 @@
|
|
<v-list v-else>
|
|
<v-list v-else>
|
|
<v-list-item
|
|
<v-list-item
|
|
v-for="item in items" :key="item.id" :value="item[itemKey]"
|
|
v-for="item in items" :key="item.id" :value="item[itemKey]"
|
|
- :active="selectIdArr.includes(item[itemKey])"
|
|
|
|
|
|
+ :active="selectIdArr.includes(Number(item[itemKey]))"
|
|
color="primary"
|
|
color="primary"
|
|
@click="handle(item, item[itemKey])"
|
|
@click="handle(item, item[itemKey])"
|
|
>
|
|
>
|
|
- <template v-if="selectIdArr.includes(item[itemKey])" v-slot:append>
|
|
|
|
- <v-icon icon="mdi-check"></v-icon>
|
|
|
|
|
|
+ <template v-if="selectIdArr.includes(Number(item[itemKey]))" v-slot:append>
|
|
|
|
+ <v-icon color="primary" icon="mdi-check"></v-icon>
|
|
</template>
|
|
</template>
|
|
<v-list-item-title>{{ item[itemText] }}</v-list-item-title>
|
|
<v-list-item-title>{{ item[itemText] }}</v-list-item-title>
|
|
</v-list-item>
|
|
</v-list-item>
|
|
@@ -72,6 +72,10 @@ const props = defineProps({
|
|
type: String,
|
|
type: String,
|
|
default: '类型名称'
|
|
default: '类型名称'
|
|
},
|
|
},
|
|
|
|
+ dictData: {
|
|
|
|
+ type: Array,
|
|
|
|
+ default: () => []
|
|
|
|
+ }
|
|
})
|
|
})
|
|
|
|
|
|
const btnTitle = computed(() => {
|
|
const btnTitle = computed(() => {
|
|
@@ -83,17 +87,19 @@ let items = ref()
|
|
const selectIdArr = ref([])
|
|
const selectIdArr = ref([])
|
|
|
|
|
|
const handle = (item, value) => {
|
|
const handle = (item, value) => {
|
|
- // const value = item[props.itemKey]
|
|
|
|
if (props.isSlot) {
|
|
if (props.isSlot) {
|
|
selectIdArr.value = value
|
|
selectIdArr.value = value
|
|
} else {
|
|
} else {
|
|
if (selectIdArr.value.includes(value)) {
|
|
if (selectIdArr.value.includes(value)) {
|
|
selectIdArr.value = selectIdArr.value.filter(i => i !== value)
|
|
selectIdArr.value = selectIdArr.value.filter(i => i !== value)
|
|
} else {
|
|
} else {
|
|
- // if (props.idName === 'expType') selectIdArr.value = value === '2' ? [value] : (selectIdArr.value.push(value) && selectIdArr.value.filter(i => i !== '2')) // 选中经验不限时清空其它选中项,选中其他的咬去掉经验不限
|
|
|
|
- //
|
|
|
|
- if (props.isSingle) selectIdArr.value = [value] // 单选
|
|
|
|
- else selectIdArr.value.push(value)
|
|
|
|
|
|
+ // 选中经验不限时清空其它选中项,选中其他的咬去掉经验不限
|
|
|
|
+ if (!props.isSingle && ['expType', 'eduType'].includes(props.idName)) {
|
|
|
|
+ selectIdArr.value = value === '9999' ? [value] : (selectIdArr.value.push(value) && selectIdArr.value.filter(i => i.toString() !== '9999'))
|
|
|
|
+ } else {
|
|
|
|
+ if (props.isSingle) selectIdArr.value = [value] // 单选
|
|
|
|
+ else selectIdArr.value.push(value)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
emits('inputChange', {
|
|
emits('inputChange', {
|
|
@@ -112,13 +118,16 @@ else if (props.provideData?.length) { // 自定义下拉数据
|
|
items.value = props.provideData
|
|
items.value = props.provideData
|
|
show.value = true
|
|
show.value = true
|
|
}
|
|
}
|
|
-else if (props.displayDictName) {
|
|
|
|
|
|
+else if ((!props.dictData || !props.dictData.length) && props.displayDictName) {
|
|
getDict(props.displayDictName, props.displayParams, props.displayApiType || 'dict').then(({ data }) => {
|
|
getDict(props.displayDictName, props.displayParams, props.displayApiType || 'dict').then(({ data }) => {
|
|
data = data?.length && data || []
|
|
data = data?.length && data || []
|
|
- items.value = data
|
|
|
|
|
|
+ items.value = ['expType', 'eduType'].includes(props.idName) ? [{ label: '不限', value: '9999', id: 9999 }, ...data] : data
|
|
show.value = true
|
|
show.value = true
|
|
})
|
|
})
|
|
-} else console.log('error->字典参数未传递!!')
|
|
|
|
|
|
+} else {
|
|
|
|
+ items.value = props.dictData || []
|
|
|
|
+ show.value = true
|
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
watch(
|
|
watch(
|