Bladeren bron

优化按键切换功能

ZaiZai 2 jaren geleden
bovenliggende
commit
11f270e0d1
2 gewijzigde bestanden met toevoegingen van 23 en 29 verwijderingen
  1. 5 23
      src/plugins/HTableForm.js
  2. 18 6
      src/views/data-fill/components/ListItem.vue

+ 5 - 23
src/plugins/HTableForm.js

@@ -20,7 +20,7 @@ const components = {
 
 //表单渲染
 export default class HTableForm {
-    static createForm({template, tableForm, appId, onRight, onBlur}) {
+    static createForm({template, tableForm, keys, appId, onRight, onBlur}) {
         const _this = this;
         const app = createApp({
             data() {
@@ -90,19 +90,19 @@ export default class HTableForm {
                 },
                 //键盘事件 上键
                 keyupShiftUp(event) {
-                    _this.setKeyupData(event, 'up', this.formData.keys)
+                    _this.setKeyupData(event, 'up', keys)
                 },
                 //键盘事件 下键
                 keyupShiftDown(event) {
-                    _this.setKeyupData(event, 'down', this.formData.keys)
+                    _this.setKeyupData(event, 'down', keys)
                 },
                 //键盘事件 左键
                 keyupShiftLeft(event) {
-                    _this.setKeyupData(event, 'left', this.formData.keys)
+                    _this.setKeyupData(event, 'left', keys)
                 },
                 //键盘事件 右键
                 keyupShiftRight(event) {
-                    _this.setKeyupData(event, 'right', this.formData.keys)
+                    _this.setKeyupData(event, 'right', keys)
                 },
             }
         })
@@ -163,24 +163,6 @@ export default class HTableForm {
     //计算上下左右快捷键的
     static setKeyupData({target}, type, keys) {
         const key = target.id
-        /*const keys = [
-            ['key_15__3_1', 'key_16__3_3'],
-            ['key_10__4_1', 'key_11__4_3'],
-            ['key_13__5_1'],
-            ['key_8__6_1'],
-            ['key_3__7_1'],
-            ['key_9__8_1'],
-            ['key_6__9_1'],
-            ['key_2__10_1', 'key_2__10_2'],
-            ['key_1__11_1', 'key_1__11_2'],
-            ['key_18__13_0'],
-            ['key_7__15_0'],
-            ['key_5__16_1', 'key__16_2'],
-            ['key_12__18_0'],
-            ['key_4__19_1', 'key_12__19_2'],
-            ['key_21__21_0'],
-            ['key_17__22_1', 'key_17__22_2'],
-        ]*/
         //处理快捷键数据和事件
         if (key && type && isArray(keys)) {
             //计算当前的位置

+ 18 - 6
src/views/data-fill/components/ListItem.vue

@@ -517,7 +517,6 @@ const ActiveKey = ref([])
 const formKeyIds = ref('')
 const formparentId=ref('')
 const CollapseChange = async (name) => {
-
     ActiveKey.value = name
     let names=[]
     if(name.length>0){
@@ -527,16 +526,15 @@ const CollapseChange = async (name) => {
         getOffsetTop(name);
         const index = names[1]
         const item = listDatas.value[index]
-
         formKeyIds.value = item.pkeyId ? item.pkeyId + '' : ''
         formparentId.value= item.parentId ? item.parentId + '' : ''
         if (!item.isTableFormRender) {
             //获取已填写的数据
             await getBussDataInfo(item,item.pkeyId, index)
             //按键key列表
-            await getHtmlBussColsApi(item.pkeyId)
+            const keys = await getHtmlBussColsApi(item.pkeyId)
             //渲染表单
-            await getExcelHtml(item,index)
+            await getExcelHtml(item,index,keys)
         }
     } else {
         getOffsetTop()
@@ -549,13 +547,23 @@ const getHtmlBussColsApi = async (pkeyId) => {
     const pkeyIds = pkeyId ? pkeyId + '' : ''
     if (pkeyIds) {
         const {error, code, data} = await wbsApi.getHtmlBussCols({pkeyId: pkeyIds}, false)
-        console.log(data)
+        if (!error && code === 200) {
+            let keys = getArrValue(data);
+            for (let i = 0; i < keys.length; i++) {
+                if (keys[i].length <= 0) {
+                    keys.splice(i, 1)
+                }
+            }
+            return keys;
+        } else {
+            return [];
+        }
     }
 }
 
 //获取模板标签数据
 const formRegExpJson = ref({})
-const getExcelHtml = async (item,index) => {
+const getExcelHtml = async (item,index, keys) => {
     const pkeyIds = item.pkeyId ? item.pkeyId + '' : ''
     if (pkeyIds) {
         const {error, code, data} = await wbsApi.getExcelHtml({pkeyId: pkeyIds}, false)
@@ -566,6 +574,7 @@ const getExcelHtml = async (item,index) => {
             HTableForm.createForm({
                 template: resData,
                 tableForm: formData.value[index],
+                keys: keys,
                 appId: `#table-form-${pkeyIds}`,
                 onRight: (event, KeyName) => {
                     onRightClick(event, KeyName, index)
@@ -577,6 +586,9 @@ const getExcelHtml = async (item,index) => {
             })
             item.isTableFormRender = true
             item.isRenderTableForm = true
+            await nextTick(() => {
+                HTableForm.setByClassKeyup(keys)
+            })
         } else {
             item.isTableForm = false
             item.isRenderTableForm = true