|
@@ -1,13 +1,13 @@
|
|
|
<template>
|
|
|
- <el-select v-model="selectVal" multiple filterable remote reserve-keyword remote-show-suffix :placeholder="placeholder" :keyname="keyname" :remote-method="formRemoteMethod" @change="formRemoteChange">
|
|
|
- <el-option v-for="item in selectDatas" :key="item.value" :label="item.label" :value="item.value"/>
|
|
|
+ <el-select v-model="selectVal" filterable remote reserve-keyword remote-show-suffix :placeholder="placeholder" :keyname="keyname" :remote-method="formRemoteMethod" @change="formRemoteChange">
|
|
|
+ <el-option v-for="item in selectDatas" :label="item.label" :value="item.value"/>
|
|
|
</el-select>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import {ref, watch} from 'vue'
|
|
|
+import {ref} from 'vue'
|
|
|
import {getDapSiteData} from "~api/other"
|
|
|
-import {getObjNullValue} from "vue-utils-plus"
|
|
|
+import {getObjNullValue, getIndex, getObjValue} from "vue-utils-plus"
|
|
|
|
|
|
const props = defineProps({
|
|
|
val: {
|
|
@@ -39,11 +39,7 @@ const props = defineProps({
|
|
|
//变量
|
|
|
const selectVal = ref(props.val)
|
|
|
|
|
|
-//事件
|
|
|
-const emit = defineEmits(['change'])
|
|
|
-
|
|
|
//远程搜索
|
|
|
-const selectDatas = ref([])
|
|
|
const formRemoteMethod = (query) => {
|
|
|
const key = props.keyname, type = props.type;
|
|
|
if (query && key && type) {
|
|
@@ -56,18 +52,12 @@ const setTableFormRemoteMethod = async (query, key, type) => {
|
|
|
if (type === 'dap_site_data') {
|
|
|
await getDapSiteDataApi(query, key)
|
|
|
}
|
|
|
-
|
|
|
- /*emit('success', {
|
|
|
- res,
|
|
|
- src: link,
|
|
|
- key: isKeyName.value,
|
|
|
- })*/
|
|
|
}
|
|
|
|
|
|
//获取数据源
|
|
|
-const dapSiteData = ref([])
|
|
|
+const selectDatas = ref([])
|
|
|
const getDapSiteDataApi = async (query, key) => {
|
|
|
- const datas = dapSiteData.value
|
|
|
+ const datas = selectDatas.value
|
|
|
if (datas.length > 0) {
|
|
|
return datas
|
|
|
} else {
|
|
@@ -77,29 +67,50 @@ const getDapSiteDataApi = async (query, key) => {
|
|
|
key: key
|
|
|
}, false)
|
|
|
//处理数据
|
|
|
- //const resData = getObjNullValue(data)
|
|
|
- /*if (!error && code === 200 && resData) {
|
|
|
-
|
|
|
+ const resData = getObjNullValue(data)
|
|
|
+ if (!error && code === 200 && resData) {
|
|
|
+ selectDatas.value = await objToArr(resData, key)
|
|
|
} else {
|
|
|
-
|
|
|
- }*/
|
|
|
- const resData = {
|
|
|
+ selectDatas.value = []
|
|
|
+ }
|
|
|
+ /*const resData = {
|
|
|
JGX1: {
|
|
|
- key_16__10_0: '123456',
|
|
|
- key_16__10_1: 'abc123465',
|
|
|
+ key_20__10_1: '123456',
|
|
|
+ key_21__10_2: 'abc123465',
|
|
|
},
|
|
|
JGX2: {
|
|
|
- key_16__10_0: '123abc',
|
|
|
- key_16__10_1: '123abc465',
|
|
|
+ key_20__10_1: '123abc',
|
|
|
+ key_21__10_2: '123abc465',
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
+ }*/
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-//上传失败
|
|
|
+//对象转数组
|
|
|
+const objToArr = async (obj) => {
|
|
|
+ let newArr = [];
|
|
|
+ Object.keys(obj).forEach(key => {
|
|
|
+ newArr.push({
|
|
|
+ label: key,
|
|
|
+ value: key,
|
|
|
+ data: {
|
|
|
+ ...obj[key]
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ return newArr
|
|
|
+}
|
|
|
+
|
|
|
+//事件
|
|
|
+const emit = defineEmits(['change'])
|
|
|
+
|
|
|
+//当前被选中的事件
|
|
|
const formRemoteChange = (val) => {
|
|
|
- console.log(val)
|
|
|
+ const datas = selectDatas.value
|
|
|
+ const index = getIndex(datas, 'value', val)
|
|
|
+ if (index >= 0) {
|
|
|
+ emit('change', getObjValue(datas[index].data))
|
|
|
+ }
|
|
|
}
|
|
|
</script>
|
|
|
|