Browse Source

bug修复

iZaiZaiA 2 years ago
parent
commit
832be65b53

+ 41 - 30
src/components/plugins/table-form/hc-form-select-search.vue

@@ -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>
 

+ 6 - 2
src/plugins/HTableForm.js

@@ -71,8 +71,12 @@ export default class HTableForm {
                     }
                 },
                 //远程搜索处理
-                formRemoteChange(query, key, type) {
-                    console.log(query, key, type)
+                formRemoteChange(data) {
+                    console.log(data)
+                    Object.keys(data).forEach(key => {
+                        this.formData[key] = data[key]
+                    })
+                    console.log(this.formData)
                 }
             }
         })