Pārlūkot izejas kodu

设备台账列表展示类型修改

haojianlong 4 gadi atpakaļ
vecāks
revīzija
6582ddf5c3
2 mainītis faili ar 182 papildinājumiem un 156 dzēšanām
  1. 16 0
      src/utils/handsontable/dataTypeMap.js
  2. 166 156
      src/utils/handsontable/notShow.js

+ 16 - 0
src/utils/handsontable/dataTypeMap.js

@@ -0,0 +1,16 @@
+/**
+ * 枚举数据字典返回的数字类型(dataType)
+ * 
+ * @author haojianlong <haojianlong@sagacloud.cn>
+*/
+const dataTypeMap = {
+  STRING: 'STRING', // 字符串
+  ATTACHMENT: 'ATTACHMENT', // 文件
+  DOUBLE: 'DOUBLE', // 数字 浮点
+  DATETIME: 'DATETIME', //时间
+  ENUM: 'ENUM', // 单选枚举
+  BOOLEAN: 'BOOLEAN', // 布尔
+  MENUM: 'MENUM', // 多选枚举
+  INTEGER: 'INTEGER', // 整数
+}
+export default dataTypeMap

+ 166 - 156
src/utils/handsontable/notShow.js

@@ -2,6 +2,7 @@
 import text from "@/utils/handsontable/mainText"
 import tools from "@/utils/scan/tools"
 import fieldData from "@/utils/handsontable/fillterField"
+import dataTypeMap from "./dataTypeMap"
 
 let inputModeArr = ["A1", "A2", "B1", "C5", "D1", "D2", "E1", "L", "L1", "L2", "F1", "F2", "M", "Own"]
 //在编辑模式下并且勾选隐藏自动填充的信息点不显示的字段
@@ -141,6 +142,7 @@ let partsAddNoShow = [
 ]
 const showTools = {
   inputModeArr: ["A1", "A2", "B1", "B2", "C5", "D1", "D1L", "D2", "E1", "E2", "L", "L1", "L2", "F1", "F2", "M"],
+             // ["A1", "A2", "B1",       "C5", "D1",        "D2", "E1",       "L", "L1", "L2", "F1", "F2", "M", "Own"]
   addArr: () => {
     return cutArr
   },
@@ -181,7 +183,14 @@ const showTools = {
     })
     return falg
   },
-
+  // 将映射表枚举值转为数组
+  mapToArr: () => {
+    const arr = []
+    for(let key in dataTypeMap) {
+      arr.push(dataTypeMap[key])
+    }
+    return arr;
+  },
   //插入需要的关系
   insertionRea: (data) => {
     cutArr.map(item => {
@@ -334,117 +343,118 @@ const showTools = {
     })
     return arr
   },
-  changeTypes(arr, onlyRead, isWatch, allMess, falg = false, taizhang = false) {
-    let data = arr.map(item => {
-      if (falg) {
-        if (item.firstTag == "控制参数" ||
-          item.firstTag == "设定参数" ||
-          item.firstTag == "运行参数") {
-          return undefined
-        }
-      }
-      if (item.code == "BIMLocation") {
-        return undefined
-      }
-      if (onlyRead || inputModeArr.indexOf(item.inputMode) > -1) {
-        if (item.Visible || !allMess) {
-          //固定不显示的code
-          if (!showTools.cantShow(item.code) && !onlyRead && !taizhang) {
-            return undefined
-          }
+  // 弃用
+  // changeTypes(arr, onlyRead, isWatch, allMess, falg = false, taizhang = false) {
+  //   let data = arr.map(item => {
+  //     if (falg) {
+  //       if (item.firstTag == "控制参数" ||
+  //         item.firstTag == "设定参数" ||
+  //         item.firstTag == "运行参数") {
+  //         return undefined
+  //       }
+  //     }
+  //     if (item.code == "BIMLocation") {
+  //       return undefined
+  //     }
+  //     if (onlyRead || inputModeArr.indexOf(item.inputMode) > -1) {
+  //       if (item.Visible || !allMess) {
+  //         //固定不显示的code
+  //         if (!showTools.cantShow(item.code) && !onlyRead && !taizhang) {
+  //           return undefined
+  //         }
 
-          if (!showTools.isShow(item.code) && !taizhang && !taizhang) {
-            if (isWatch && !onlyRead) {
-              return undefined
-            }
-          }
+  //         if (!showTools.isShow(item.code) && !taizhang && !taizhang) {
+  //           if (isWatch && !onlyRead) {
+  //             return undefined
+  //           }
+  //         }
 
-          if (item.code == "EquipQRCode") {
-            return {
-              data: "Infos." + item.code,
-              renderer: text.lookQRCode,
-              readOnly: true
-            }
-          }
+  //         if (item.code == "EquipQRCode") {
+  //           return {
+  //             data: "Infos." + item.code,
+  //             renderer: text.lookQRCode,
+  //             readOnly: true
+  //           }
+  //         }
 
-          if (item.inputMode == "D1") {
-            return {
-              data: "Infos." + item.code,
-              renderer: tools.customDropdownRenderer,
-              editor: "chosen",
-              chosenOptions: {
-                // multiple: true,//多选
-                data: item.dataSource || ""
-              }
-            };
-          } else if (item.inputMode == "A1" || item.inputMode == "A2") {
-            return {
-              data: "Infos." + item.code,
-              type: "numeric",
-              numericFormat: {
-                pattern: "0,0.00"
-                // culture: 'de-DE' // use this for EUR (German),
-                // more cultures available on http://numbrojs.com/languages.html
-              }
-            };
-          } else if (item.inputMode == "C5") {
-            return {
-              data: "Infos." + item.code,
-              type: "date",
-              dateFormat: "YYYY-MM-DD",
-              correctFormat: true
-            };
-          } else if (
-            item.inputMode == "B1" ||
-            item.inputMode == "L" ||
-            item.inputMode == "L1" ||
-            item.inputMode == "L2" ||
-            item.inputMode == "M"
-          ) {
-            return {
-              data: "Infos." + item.code
-            };
-          } else if (
-            item.inputMode == "X"
-            // item.inputMode == "L1" ||
-            // item.inputMode == "L2"
-          ) {
-            //   return undefined
-            return {
-              data: "Infos." + item.code,
-              readOnly: true
-            };
-          } else if (item.inputMode == "D2") {
-            return {
-              data: "Infos." + item.code,
-              renderer: tools.customDropdownRenderer,
-              editor: "chosen",
-              chosenOptions: {
-                multiple: true, //多选
-                data: item.dataSource || ""
-              }
-            };
-          } else if (item.inputMode == "Own" && !onlyRead) {
-            return {
-              data: "Infos." + item.code,
-              renderer: text.idType,
-            }
-          } else {
-            return {
-              data: "infos." + item.code
-            }
-          }
-        } else {
-          return undefined
-        }
-      } else {
-        return false
-      }
+  //         if (item.inputMode == "D1") {
+  //           return {
+  //             data: "Infos." + item.code,
+  //             renderer: tools.customDropdownRenderer,
+  //             editor: "chosen",
+  //             chosenOptions: {
+  //               // multiple: true,//多选
+  //               data: item.dataSource || ""
+  //             }
+  //           };
+  //         } else if (item.inputMode == "A1" || item.inputMode == "A2") {
+  //           return {
+  //             data: "Infos." + item.code,
+  //             type: "numeric",
+  //             numericFormat: {
+  //               pattern: "0,0.00"
+  //               // culture: 'de-DE' // use this for EUR (German),
+  //               // more cultures available on http://numbrojs.com/languages.html
+  //             }
+  //           };
+  //         } else if (item.inputMode == "C5") {
+  //           return {
+  //             data: "Infos." + item.code,
+  //             type: "date",
+  //             dateFormat: "YYYY-MM-DD",
+  //             correctFormat: true
+  //           };
+  //         } else if (
+  //           item.inputMode == "B1" ||
+  //           item.inputMode == "L" ||
+  //           item.inputMode == "L1" ||
+  //           item.inputMode == "L2" ||
+  //           item.inputMode == "M"
+  //         ) {
+  //           return {
+  //             data: "Infos." + item.code
+  //           };
+  //         } else if (
+  //           item.inputMode == "X"
+  //           // item.inputMode == "L1" ||
+  //           // item.inputMode == "L2"
+  //         ) {
+  //           //   return undefined
+  //           return {
+  //             data: "Infos." + item.code,
+  //             readOnly: true
+  //           };
+  //         } else if (item.inputMode == "D2") {
+  //           return {
+  //             data: "Infos." + item.code,
+  //             renderer: tools.customDropdownRenderer,
+  //             editor: "chosen",
+  //             chosenOptions: {
+  //               multiple: true, //多选
+  //               data: item.dataSource || ""
+  //             }
+  //           };
+  //         } else if (item.inputMode == "Own" && !onlyRead) {
+  //           return {
+  //             data: "Infos." + item.code,
+  //             renderer: text.idType,
+  //           }
+  //         } else {
+  //           return {
+  //             data: "infos." + item.code
+  //           }
+  //         }
+  //       } else {
+  //         return undefined
+  //       }
+  //     } else {
+  //       return false
+  //     }
 
 
-    }).filter(item => item);
-    return data
-  },
+  //   }).filter(item => item);
+  //   return data
+  // },
 
   showTypes(arr, onlyRead, isWatch, allMess, falg = false, typeArr = false) {
     let data = arr.map(item => {
@@ -1197,58 +1207,58 @@ const showTools = {
     if (!item.inputMode) {
       console.log('新版字典无输入类型', item)
     }
-
-    if (item.inputMode == "D1" || item.inputMode == "E1" || item.inputMode == "D1L") { //单选输入
-      return {
-        data: item.path,
-        renderer: tools.customDropdownRenderer,
-        editor: "chosen",
-        readOnly: !item.editable,
-        chosenOptions: {
-          data: item.dataSource ? tools.formatDataSource(item.dataSource) : ""
-        }
-      };
-    } else if (item.inputMode == "D2" || item.inputMode == "E2") { //多选输入
-      return {
-        data: item.path,
-        renderer: tools.customDropdownRenderer,
-        editor: "chosen",
-        readOnly: !item.editable,
-        chosenOptions: {
-          multiple: true, //多选
-          data: item.dataSource ? tools.formatDataSource(item.dataSource) : ""
+    if (item.category == 'STATIC') {
+      if (item.dataType == dataTypeMap.ENUM || item.dataType == dataTypeMap.BOOLEAN) { //单选输入
+        return {
+          data: item.path,
+          renderer: tools.customDropdownRenderer,
+          editor: "chosen",
+          readOnly: !item.editable,
+          chosenOptions: {
+            data: item.dataSource ? tools.formatDataSource(item.dataSource) : ""
+          }
+        };
+      } else if (item.dataType == dataTypeMap.MENUM) { //多选输入
+        return {
+          data: item.path,
+          renderer: tools.customDropdownRenderer,
+          editor: "chosen",
+          readOnly: !item.editable,
+          chosenOptions: {
+            multiple: true, //多选
+            data: item.dataSource ? tools.formatDataSource(item.dataSource) : ""
+          }
+        };
+      } else if (item.dataType == dataTypeMap.DOUBLE || item.dataType == dataTypeMap.INTEGER) { // 数字输入
+        return {
+          data: item.path,
+          type: "numeric",
+          readOnly: !item.editable,
+          numericFormat: {
+            pattern: "0,0.00"
+          }
+        };
+      } else if (item.dataType == dataTypeMap.DATETIME) { // 日期输入
+        return {
+          data: item.path,
+          type: "date",
+          dateFormat: item.formater || "YYYYMMDDHHmmss",
+          readOnly: !item.editable,
+          correctFormat: true
+        };
+      } else if (item.dataType == dataTypeMap.STRING) { // 文本输入
+        return {
+          data: item.path,
+          readOnly: !item.editable
         }
-      };
-    } else if (item.inputMode == "A1" || item.inputMode == "A2") { //数字输入
-      return {
-        data: item.path,
-        type: "numeric",
-        readOnly: !item.editable,
-        numericFormat: {
-          pattern: "0,0.00"
+      } else { // (未支持的输入方式)暂不支持编辑
+        return {
+          data: item.path,
+          readOnly: !item.editable
         }
-      };
-    } else if (item.inputMode == "C5") { //日期输入
-      return {
-        data: item.path,
-        type: "date",
-        dateFormat: "YYYYMMDDHHmmss",
-        readOnly: !item.editable,
-        correctFormat: true
-      };
-    } else if (item.inputMode == "B1" ||
-      item.inputMode == "B2" ||
-      item.inputMode == "F1" ||
-      item.inputMode == "F2" ||
-      item.inputMode == "L1" ||
-      item.inputMode == "L2" ||
-      item.inputMode == "L" ||
-      item.inputMode == "M") { //文本输入
-      return {
-        data: item.path,
-        readOnly: !item.editable
       }
-    } else { //(未支持的输入方式)暂不支持编辑
+    } else { // 动态信息点
+      console.log(`%c${item.category}-${item.dataType}`,`color:#c215e1;font-size: 20px;background:#434101`);
       return {
         data: item.path,
         readOnly: !item.editable