iZaiZaiA пре 3 година
родитељ
комит
959a3f71ac

+ 9 - 0
src/api/modules/other.js

@@ -46,3 +46,12 @@ export const getDictionary = (form, msg = true) => httpApi({
     method: 'get',
     params: form
 }, msg);
+
+
+//获取表单的下拉框测站点数据
+export const getDapSiteData = (form, msg = true) => httpApi({
+    url: '/api/blade-business/dap/site',
+    method: 'get',
+    params: form
+}, msg);
+

+ 15 - 2
src/plugins/HTableForm.js

@@ -14,15 +14,15 @@ const components = {
     ElInputNumber, ElTimePicker, ElSelect, ElOption, ElRadioGroup,
     ElRadio, ElCheckbox, ElCheckboxGroup, HcTableFormUpload
 }
-// <HcTableFormUpload :src='formData.key_1__9_0' keyName='key_1__9_0' placeholder="相片" @success='formUploadSuccess' @del='delTableFormFile'/>
 
 //表单渲染
 export default class HTableForm {
-    static createForm({template, tableForm, appId, onRight, onBlur}) {
+    static createForm({template, tableForm, appId, onRight, onBlur, onRemote}) {
         const app = createApp({
             data() {
                 return {
                     getTokenHeader: getTokenHeader(),
+                    dap_site_data: {},
                     formData: tableForm,
                 }
             },
@@ -69,6 +69,19 @@ export default class HTableForm {
                     if (onBlur) {
                         onBlur(event, KeyName, reg, this.formData[KeyName], msg)
                     }
+                },
+                //远程搜索
+                async formRemoteMethod(query, key, type) {
+                    if (query && key && type) {
+                        if (onRemote) {
+                            this[type][key] = await onRemote(query, key, type)
+                        } else {
+                            this[type][key] = []
+                        }
+                    }
+                },
+                formRemoteChange(query, key, type) {
+                    console.log(query, key, type)
                 }
             }
         })

+ 43 - 2
src/views/data-fill/components/ListItem.vue

@@ -128,6 +128,7 @@ import {ref,watch,nextTick} from "vue";
 import notableform from '~src/assets/view/notableform.svg';
 import HTableForm from "~src/plugins/HTableForm"
 import wbsApi from "~api/data-fill/wbs"
+import {getDapSiteData} from "~api/other"
 import HcUpload from "./HcUpload.vue"
 import {utilsText, isType, formValidate,deepClone} from "vue-utils-plus"
 
@@ -149,6 +150,10 @@ const props = defineProps({
         type: [String,Number],
         default: ''
     },
+    contractId: {
+        type: [String,Number],
+        default: ''
+    },
 })
 const {isString, getObjNullValue, getArrValue} = isType()
 const {setPosInsert, setPosRange} = utilsText()
@@ -156,16 +161,19 @@ const listDatas = ref(props.datas)
 const classify = ref(props.classify)
 const isStatus = ref(props.status)
 const isPrimaryKeyId = ref(props.primaryKeyId)
+const contractId = ref(props.contractId)
 
 //监听
 watch(() => [
     props.datas,
     props.classify,
     props.primaryKeyId,
-], ([datas, classifyVal, primaryKeyId]) => {
+    props.contractId,
+], ([datas, classifyVal, primaryKeyId, cid]) => {
     listDatas.value = datas
     classify.value = classifyVal
     isPrimaryKeyId.value = primaryKeyId
+    contractId.value = cid
     setFormDataNum(datas)
 })
 
@@ -250,7 +258,10 @@ const getExcelHtml = async (item,index) => {
                 //表单正则效验
                 onBlur: (event, key, reg, val, msg) => {
                     setTableFormBlurReg(pkeyIds, event, key, reg, val, msg, item, index)
-                }
+                },
+                onRemote: async (query, key, type) => {
+                    return await setTableFormRemoteMethod(pkeyIds, query, key, type)
+                },
             })
             item.isTableFormRender = true
             item.isRenderTableForm = true
@@ -286,6 +297,36 @@ const setTableFormBlurReg = (pkeyId, event, key, reg, val, msg, item, index) =>
     }
 }
 
+//获取下拉框测站点筛选数据
+const setTableFormRemoteMethod = async (pkeyId, query, key, type) => {
+    if (type === 'dap_site_data') {
+        return await setFormRemoteDapSiteData(pkeyId, query, key, type)
+    }
+}
+
+//处理数据
+const dap_site_data = ref([]);
+const setFormRemoteDapSiteData = async (pkeyId, query, key, type) => {
+    const datas = await getDapSiteDataApi(pkeyId, query, key, type)
+    console.log(datas)
+}
+
+//获取数据源
+const getDapSiteDataApi = async (pkeyId, query, key, type) => {
+    const datas = dap_site_data.value
+    if (datas.length > 0) {
+        return datas
+    } else {
+        const {error, code, data} = await getDapSiteData({
+            contractId: contractId.value,
+            pkId: pkeyId,
+            key: key
+        }, false)
+
+        console.log(data)
+        return []
+    }
+}
 
 //获取已填写的数据
 const getBussDataInfo = async (item,pkeyId, index) => {

+ 2 - 2
src/views/data-fill/wbs.vue

@@ -39,7 +39,7 @@
             <HcDrawer :show="isDrawer" actionUi="text-center" to-id="wbs-node-tree-card-target" @close="drawerClose">
                 <!--清表列表-->
                 <el-scrollbar ref="ListItemScrollRef" v-if="ListItemDatas.length > 0">
-                    <ListItem ref="ListItemsRef" :datas="ListItemDatas" :status="NodeStatus" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" :primaryKeyId="primaryKeyId" @renew="getTableDataAll"/>
+                    <ListItem ref="ListItemsRef" :datas="ListItemDatas" :status="NodeStatus" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" :primaryKeyId="primaryKeyId" :contractId="contractId" @renew="getTableDataAll"/>
                 </el-scrollbar>
                 <HcStatus text="暂无表单" v-else/>
                 <!--底部按钮区域-->
@@ -140,7 +140,7 @@
                     </template>
                     <!--清表列表-->
                     <el-scrollbar ref="ListItemScrollRef" v-loading="ListItemLoading" v-if="ListItemDatas.length > 0">
-                        <ListItem ref="ListItemRef" :datas="ListItemDatas" :status="NodeStatus" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" :primaryKeyId="primaryKeyId" @renew="getTableDataAll"/>
+                        <ListItem ref="ListItemRef" :datas="ListItemDatas" :status="NodeStatus" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" :primaryKeyId="primaryKeyId" :contractId="contractId" @renew="getTableDataAll"/>
                     </el-scrollbar>
 
                     <HcStatus text="暂无表单" v-else/>