Procházet zdrojové kódy

新增代码规范

ZaiZai před 2 roky
rodič
revize
8909fee502
73 změnil soubory, kde provedl 2137 přidání a 1251 odebrání
  1. 9 0
      .eslintignore
  2. 193 0
      .eslintrc.cjs
  3. 5 1
      package.json
  4. 1 1
      postcss.config.js
  5. 1 1
      public/version.json
  6. 1 1
      src/api/index.js
  7. 4 4
      src/api/modules/api.js
  8. 23 22
      src/api/modules/data-fill/division.js
  9. 19 18
      src/api/modules/data-fill/query.js
  10. 75 74
      src/api/modules/data-fill/wbs.js
  11. 15 14
      src/api/modules/gauge/bezier.js
  12. 8 7
      src/api/modules/gauge/station.js
  13. 4 3
      src/api/modules/ledger/construction.js
  14. 4 3
      src/api/modules/ledger/index.js
  15. 5 4
      src/api/modules/ledger/internal.js
  16. 33 32
      src/api/modules/ledger/query.js
  17. 3 3
      src/api/modules/ledger/weather.js
  18. 12 12
      src/api/modules/menu.js
  19. 7 7
      src/api/modules/oss.js
  20. 27 27
      src/api/modules/other-file/imageData.js
  21. 14 14
      src/api/modules/other-file/projectScanning.js
  22. 38 38
      src/api/modules/other.js
  23. 12 12
      src/api/modules/other/first-item.js
  24. 13 13
      src/api/modules/other/orderServe.js
  25. 11 11
      src/api/modules/schedule/data.js
  26. 21 21
      src/api/modules/tasks/data.js
  27. 12 12
      src/api/modules/tasks/flow.js
  28. 5 5
      src/api/modules/tasks/message.js
  29. 7 7
      src/api/modules/tentative/detect/index.js
  30. 63 63
      src/api/modules/tentative/detect/test.js
  31. 9 9
      src/api/modules/tentative/detect/third.js
  32. 15 15
      src/api/modules/tentative/device/approach.js
  33. 11 11
      src/api/modules/tentative/device/employ.js
  34. 11 11
      src/api/modules/tentative/device/overhaul.js
  35. 13 13
      src/api/modules/tentative/index.js
  36. 4 4
      src/api/modules/tentative/laboratory/print.js
  37. 7 7
      src/api/modules/tentative/laboratory/user.js
  38. 19 19
      src/api/modules/tentative/material/approach.js
  39. 21 21
      src/api/modules/tentative/material/sampling.js
  40. 7 7
      src/api/modules/tentative/parameter/compactness.js
  41. 21 21
      src/api/modules/tentative/parameter/container.js
  42. 7 7
      src/api/modules/tentative/parameter/density.js
  43. 14 14
      src/api/modules/tentative/parameter/sieve.js
  44. 33 33
      src/api/modules/user.js
  45. 23 23
      src/api/modules/userInfo/index.js
  46. 8 8
      src/api/request/header.js
  47. 12 12
      src/api/request/httpApi.js
  48. 26 26
      src/api/request/index.js
  49. 1 1
      src/api/util/auth.js
  50. 76 37
      src/components/home/SearchInput.vue
  51. 7 7
      src/components/plugins/element/HcImage.vue
  52. 14 13
      src/components/plugins/table-form/echart.vue
  53. 42 40
      src/components/plugins/table-form/hc-date-picker-1.vue
  54. 33 28
      src/components/plugins/table-form/hc-form-checkbox-group.vue
  55. 29 26
      src/components/plugins/table-form/hc-form-radio-group.vue
  56. 24 22
      src/components/plugins/table-form/hc-form-select-search.vue
  57. 24 19
      src/components/plugins/table-form/hc-form-upload.vue
  58. 34 32
      src/components/plugins/table-form/hc-time-picker.vue
  59. 2 2
      src/config/app.js
  60. 9 9
      src/config/index.js
  61. 1 1
      src/config/index.json
  62. 16 16
      src/config/theme.js
  63. 68 63
      src/global/components/hc-report-modal/index.vue
  64. 41 40
      src/global/components/hc-sms-auth/index.vue
  65. 100 66
      src/global/components/hc-tasks-user/index.vue
  66. 15 11
      src/global/components/hc-tooltip/index.vue
  67. 9 8
      src/global/components/hc-tooltip/item.vue
  68. 45 42
      src/global/components/hc-uploads/index.vue
  69. 42 39
      src/global/components/table-form/index.vue
  70. 14 12
      src/views/tentative/device/approach.vue
  71. 7 7
      tailwind.config.js
  72. 14 14
      vite.config.js
  73. 564 5
      yarn.lock

+ 9 - 0
.eslintignore

@@ -0,0 +1,9 @@
+node_modules
+dist
+public
+scripts
+zip
+assets
+README.md
+yarn.lock
+!.*

+ 193 - 0
.eslintrc.cjs

@@ -0,0 +1,193 @@
+/* eslint-env node */
+module.exports = {
+    root: true,
+    env: {
+        browser: true,
+        es2021: true,
+        node: true,
+    },
+    parser: "vue-eslint-parser",
+    extends: [
+        "plugin:vue/vue3-recommended",
+        'eslint:recommended'
+    ],
+    parserOptions: {
+        ecmaVersion: "latest",
+        sourceType: "module",
+    },
+    globals: {},
+    plugins: ['vue'],
+    rules: {
+        // Common
+        'semi': ['error', 'never'],
+        'curly': 'off',
+        'quotes': ['error', 'single'],
+        'quote-props': ['error', 'consistent-as-needed'],
+        'no-console': 'off',
+
+        // best-practice
+        'array-callback-return': 'error',
+        'block-scoped-var': 'error',
+        'consistent-return': 'off',
+        'complexity': 'off',
+        'eqeqeq': ['error', 'smart'],
+        'no-alert': 'warn',
+        'no-case-declarations': 'error',
+        'no-multi-spaces': 'error',
+        'no-multi-str': 'error',
+        'no-with': 'error',
+        'no-void': 'error',
+        'no-useless-escape': 'off',
+        'vars-on-top': 'error',
+        'require-await': 'off',
+        'no-return-assign': 'off',
+        'operator-linebreak': ['error', 'before'],
+        'max-statements-per-line': ['error', {
+            max: 1
+        }],
+
+        'sort-imports': [
+            'error',
+            {
+                ignoreCase: false,
+                ignoreDeclarationSort: true,
+                ignoreMemberSort: false,
+                memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],
+                allowSeparatedGroups: false,
+            },
+        ],
+
+        // typescript
+        'import/named': 'off',
+
+        // Override JS
+        'no-useless-constructor': 'off',
+        'indent': 'off',
+        'no-invalid-this': 'off',
+        'no-redeclare': 'off',
+        "no-use-before-define": 'off',
+        'brace-style': 'error',
+        'comma-dangle': ['error', 'always-multiline'],
+        'object-curly-spacing': ['error', 'always'],
+        'space-before-blocks': ['error', 'always'],
+        'space-before-function-paren': [
+            'error',
+            {
+                anonymous: 'always',
+                named: 'never',
+                asyncArrow: 'always',
+            },
+        ],
+        'space-infix-ops': 'error',
+        'keyword-spacing': ['error', {
+            before: true,
+            after: true
+        }],
+        'comma-spacing': ['error', {
+            before: false,
+            after: true
+        }],
+        'no-extra-parens': ['error', 'functions'],
+        'no-dupe-class-members': 'error',
+        'no-loss-of-precision': 'error',
+        'lines-between-class-members': ['error', 'always', {
+            exceptAfterSingleLine: true
+        }],
+
+        // vue
+        "vue/html-indent": ["error", 4],
+        'vue/max-attributes-per-line': 'off',
+        'vue/no-v-html': 'off',
+        'vue/require-prop-types': 'off',
+        'vue/require-default-prop': 'off',
+        'vue/multi-word-component-names': 'off',
+        'vue/prefer-import-from-vue': 'off',
+        'vue/no-v-text-v-html-on-component': 'off',
+        'vue/no-dupe-keys': 'off',
+
+        // reactivity transform
+        'vue/no-setup-props-destructure': 'off',
+
+        'vue/component-tags-order': ['error', {
+            order: ['template', 'script', 'style'],
+        }],
+        'vue/block-tag-newline': ['error', {
+            singleline: 'always',
+            multiline: 'always',
+        }],
+        'vue/component-name-in-template-casing': ['error', 'PascalCase' || 'kebab-case'],
+        'vue/component-options-name-casing': ['error', 'PascalCase'],
+        'vue/custom-event-name-casing': ['error', 'camelCase'],
+        'vue/define-macros-order': ['error', {
+            order: ['defineProps', 'defineEmits'],
+        }],
+        'vue/html-comment-content-spacing': ['error', 'always', {
+            exceptions: ['-'],
+        }],
+        'vue/no-restricted-v-bind': ['error', '/^v-/'],
+        'vue/no-useless-v-bind': 'error',
+        'vue/no-unused-refs': 'error',
+        'vue/padding-line-between-blocks': ['error', 'always'],
+        'vue/prefer-separate-static-class': 'error',
+
+        // extensions
+        'vue/array-bracket-spacing': ['error', 'never'],
+        'vue/arrow-spacing': ['error', {
+            before: true,
+            after: true
+        }],
+        'vue/block-spacing': ['error', 'always'],
+        'vue/brace-style': ['error', 'stroustrup', {
+            allowSingleLine: true
+        }],
+        'vue/comma-dangle': ['error', 'always-multiline'],
+        'vue/comma-spacing': ['error', {
+            before: false,
+            after: true
+        }],
+        'vue/comma-style': ['error', 'last'],
+        'vue/dot-location': ['error', 'property'],
+        'vue/dot-notation': ['error', {
+            allowKeywords: true
+        }],
+        'vue/eqeqeq': ['error', 'smart'],
+        // 'vue/func-call-spacing': ['off', 'never'],
+        'vue/key-spacing': ['error', {
+            beforeColon: false,
+            afterColon: true
+        }],
+        'vue/keyword-spacing': ['error', {
+            before: true,
+            after: true
+        }],
+        'vue/no-constant-condition': 'warn',
+        'vue/no-empty-pattern': 'error',
+        'vue/no-extra-parens': ['error', 'functions'],
+        'vue/no-irregular-whitespace': 'error',
+        'vue/no-loss-of-precision': 'error',
+        'vue/no-restricted-syntax': ['error', 'DebuggerStatement', 'LabeledStatement', 'WithStatement'],
+        'vue/no-sparse-arrays': 'error',
+        'vue/object-curly-newline': ['error', {
+            multiline: true,
+            consistent: true
+        }],
+        'vue/object-curly-spacing': ['error', 'always'],
+        'vue/object-property-newline': ['error', {
+            allowMultiplePropertiesPerLine: true
+        }],
+        'vue/object-shorthand': ['error', 'always', {
+            ignoreConstructors: false,
+            avoidQuotes: true,
+        }],
+        'vue/operator-linebreak': ['error', 'before'],
+        'vue/prefer-template': 'error',
+        'vue/quote-props': ['error', 'consistent-as-needed'],
+        'vue/space-in-parens': ['error', 'never'],
+        'vue/space-infix-ops': 'error',
+        'vue/space-unary-ops': ['error', {
+            words: true,
+            nonwords: false
+        }],
+        'vue/template-curly-spacing': 'error',
+    },
+};

+ 5 - 1
package.json

@@ -8,7 +8,9 @@
         "build:zip": "sh ./scripts/build.sh all",
         "build:zip:wgt": "sh ./scripts/build.sh wgt",
         "build:test": "sh ./scripts/build.sh all test",
-        "build:test:wgt": "sh ./scripts/build.sh wgt test"
+        "build:test:wgt": "sh ./scripts/build.sh wgt test",
+        "lint": "eslint --ext .js,.vue src",
+        "lint:fix": "eslint . --fix"
     },
     "dependencies": {
         "axios": "^1.4.0",
@@ -35,6 +37,8 @@
         "archiver": "^5.3.1",
         "autoprefixer": "^10.4.14",
         "cssnano": "^6.0.1",
+        "eslint": "^8.44.0",
+        "eslint-plugin-vue": "^9.15.1",
         "postcss": "^8.4.24",
         "sass": "^1.63.6",
         "tailwindcss": "3.3.2",

+ 1 - 1
postcss.config.js

@@ -2,6 +2,6 @@ module.exports = {
     plugins: {
         tailwindcss: {},
         autoprefixer: {},
-        ...(process.env.NODE_ENV === 'production' ? {cssnano: {}} : {})
+        ...(process.env.NODE_ENV === 'production' ? { cssnano: {} } : {}),
     },
 }

+ 1 - 1
public/version.json

@@ -1,3 +1,3 @@
 {
-  "value": "20230706172940"
+  "value": "20230707170506"
 }

+ 1 - 1
src/api/index.js

@@ -1,6 +1,6 @@
 //请求配置
 export default {
-    putFile: '/api/blade-resource/oss/endpoint/put-file',       //上传文件
+    putFile: '/api/blade-resource/oss/endpoint/put-file', //上传文件
     removeFile: '/api/blade-resource/oss/endpoint/remove-file', //移除文件
     uploadFile: '/api/blade-resource/oss/endpoint/upload-file', //上传文件,转PDF
 }

+ 4 - 4
src/api/modules/api.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../request/httpApi";
+import { httpApi } from '../request/httpApi'
 
 export default {
     async hcPostApi(form, msg = true) {
@@ -6,14 +6,14 @@ export default {
             url: '/api/' + form.url,
             method: 'post',
             params: form.params,
-            data: form.data
-        },msg);
+            data: form.data,
+        }, msg)
     },
     async hcGetApi(form, msg = true) {
         return httpApi({
             url: '/api/' + form.url,
             params: form.params,
             method: 'get',
-        },msg);
+        }, msg)
     },
 }

+ 23 - 22
src/api/modules/data-fill/division.js

@@ -1,67 +1,68 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
+
     //获取关联的合同段树
     async getContractInfoTree(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/contractInfo/tree2',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
-     //获取关联的工程用途部位树
-     async getengineerInfoTree(form, msg = true) {
+    //获取关联的工程用途部位树
+    async getengineerInfoTree(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/contractInfo/tree',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
-      async getengineerInfoTree1(form, msg = true) {
+    async getengineerInfoTree1(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/contractInfo/trial/relation/tree',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //未识别合同段划分节点 手动关联
     async setImportRelation(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/wbsTreeContract/import-relation',
             method: 'post',
-            data: form
-        },msg);
+            data: form,
+        }, msg)
     },
     //标记/取消隐蔽工程节点
     async concealedWorksNnode(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/wbsTreeContract/concealed-works-node',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //项目级懒加载节点树形结构-表单类型划分树
     async tabTypeLazyTree(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/wbsPrivate/tab-Type-lazy-tree',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //添加合同段节点树
     async addWbsContractInfo(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/wbsPrivate/add-wbs-contract-info',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
-      //删除合同段节点
-      async removeWbsTreeContract(form, msg = true) {
+    //删除合同段节点
+    async removeWbsTreeContract(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/wbsTreeContract/remove',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
 }

+ 19 - 18
src/api/modules/data-fill/query.js

@@ -1,20 +1,21 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
+
     //获取当前合同段的划分树
     async queryWbsTreeData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/queryContractWbsTreeByContractIdAndType',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //根据合同段ID获取所有填报人
     async getFileUser(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/getFileUserByContractId',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //搜索获取树
@@ -22,8 +23,8 @@ export default {
         return httpApi({
             url: '/api/blade-manager/contractInfo/getTreeNodeByQueryValueAndContractId',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取当前合同段下所有的上报批次
     // async getReportNumber(form, msg = true) {
@@ -37,7 +38,7 @@ export default {
         return httpApi({
             url: 'api/blade-business/task/query-batch-list-two',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //获取流程状态分类和文件类型分类
@@ -45,7 +46,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/getDictBizClassifyByCode',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //分页数据
@@ -53,7 +54,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/page',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //批量废除
@@ -61,7 +62,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/batchAbolish',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
     //批量下载
@@ -70,7 +71,7 @@ export default {
             url: '/api/blade-business/informationWriteQuery/batchDownloadFileToZip',
             method: 'post',
             params: form,
-            responseType: 'blob'
+            responseType: 'blob',
         }, msg)
     },
     //批量打印
@@ -78,7 +79,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/batchPrint',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
     //本地验签
@@ -86,7 +87,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/localVerify',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
     //在线验签
@@ -94,7 +95,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/onlineVerify',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
     //输入框查询合同段树
@@ -102,7 +103,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/searchContractTree',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //获取合同段树所有数据
@@ -110,7 +111,7 @@ export default {
         return httpApi({
             url: '/api/blade-manager/contractInfo/tree-all',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //获取监理合同段树所有数据
@@ -118,7 +119,7 @@ export default {
         return httpApi({
             url: '/api/blade-manager/contractInfo/tree-all-jl',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //获取流程状态
@@ -126,7 +127,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/task/query-task-type-status?typeOrStatus=first_task_status',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
 }

+ 75 - 74
src/api/modules/data-fill/wbs.js

@@ -1,164 +1,165 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
+
     //新增或删除 合同段划分树首件关联
     async wbsTreeFirstSave(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/treeContractFirst/saveOrDelete',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //修改树节点
     async wbsTreeUpdateNode(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/updateContractNodeParameter',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //导图结构树节点查询
     async queryMappingStructureTree(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/queryMappingStructureTree',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //保存或修改节点上传的图纸记录
     async saveContractTreeDrawings(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/contractTreeDrawings/saveContractTreeDrawings',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //删除节点
     async removeContractTreeNode(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/removeContractTreeNode',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //查询当前节点下所有元素表信息
     async searchNodeAllTable(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/wbsTreeContract/search-node-tables',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //清表生成html
     async getExcelHtml(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/get-excel-html_buss',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //获取按键切换输入框的key列表
     async getHtmlBussCols(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/get-html-buss-cols',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //填报页面数据保存
     async saveExcelBussData(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/save_buss_data',
             method: 'post',
-            data: form
-        },msg);
+            data: form,
+        }, msg)
     },
     //懒加载项目级工程划分树
     async queryWbsTreePrivateByProjectIdAndId(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/queryWbsTreePrivateByProjectIdAndId',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     async queryWbsTreeContractByContractIdAndId(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/contractInfo/add-node-tree',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //新增节点及其子节点
     async saveContractTreeNode(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/saveContractTreeNode',
             method: 'post',
-            data: form
-        },msg);
+            data: form,
+        }, msg)
     },
     //复制节点
     async copyContractTreeNode(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/copyContractTreeNode',
             method: 'post',
-            data: form
-        },msg);
+            data: form,
+        }, msg)
     },
     //自定义排序
     async diySortTreeNode(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/diySort',
             method: 'post',
-            data: form
-        },msg);
+            data: form,
+        }, msg)
     },
     //获取表单数据
     async getBussDataInfo(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/get-buss-dataInfo',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //查询节点状态
     async queryNodeStatus(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/queryNodeStatus',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //查询监理节点状态
     async queryNodeStatusJl(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/queryNodeStatus-jl',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //查询首件节点状态
     async queryNodeStatusSj(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/queryNodeStatus-sj',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //查询试验上报按钮状态
     async queryNodeStatusTrial(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/queryNodeStatus-trial',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //单个废除
     async abolishOne(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/abolishOne',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
 
     //单个废除-首件
@@ -166,8 +167,8 @@ export default {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/abolishOne-sj',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
 
     //隐藏表单
@@ -175,111 +176,111 @@ export default {
         return httpApi({
             url: '/api/blade-manager/exceltab/show-buss-tab',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //单表pdf预览
     async getBussPdfInfo(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/get-buss-pdfInfo',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //表单复制
     async copeBussTab(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/cope-buss-tab',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //多表预览
     async getBussPdfs(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/get-buss-pdfs',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //获取附件列表
     async getBussFileList(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/tablefile/get-buss-fileList',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     async getBussFileList1(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/file-list',
             method: 'get',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //逻辑删除
     async removeBussFile(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/tablefile/remove',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //删除试验文件
     async removeBussFile1(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/tablefile/remove-trial',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //用户端删除复制信息表
     async removeBussTabInfo(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/remove-buss-tabInfo',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
     //复制节点填报数据
     async copyContractNodeSubmitBusinessData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/copyContractNodeSubmitBusinessData',
             method: 'post',
-            data: form
-        },msg);
+            data: form,
+        }, msg)
     },
     //输入框查询合同段树
     async searchContractTree(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/searchContractTree',
             method: 'get',
-            params: form
-        },msg)
+            params: form,
+        }, msg)
     },
     //设计值计算
     async queryFormulaRange(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/formula/range',
             method: 'get',
-            params: form
-        },msg)
+            params: form,
+        }, msg)
     },
     //获取文件题名
     async queryDocumentTitle(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/queryDocumentTitle',
             method: 'get',
-            params: form
-        },msg)
+            params: form,
+        }, msg)
     },
     //查询公式参数面板
     async queryPanel(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/formula/panel',
             method: 'get',
-            params: form
-        },msg)
+            params: form,
+        }, msg)
     },
     //保存公式参数
 
@@ -287,7 +288,7 @@ export default {
         return httpApi({
             url: '/api/blade-manager/formula/panel-save',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //同步质检资料
@@ -295,7 +296,7 @@ export default {
         return httpApi({
             url: '/api/blade-manager/wbsTreeContract/sync-tab-data',
             method: 'post',
-            params: form
-        },msg);
+            params: form,
+        }, msg)
     },
 }

+ 15 - 14
src/api/modules/gauge/bezier.js

@@ -1,20 +1,21 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
+
     //获取平曲线数据
     async queryListData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/mileage/list',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取片段列表
     async queryPartList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/mileage/part/list',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //新增片段
@@ -22,7 +23,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/mileage/part/add',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //编辑片段
@@ -30,7 +31,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/mileage/part/update',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //删除片段
@@ -38,7 +39,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/mileage/part/del',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
     //获取新增线元信息的初始数据
@@ -46,7 +47,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/mileage/getNextMileagexy',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //里程转换坐标
@@ -54,7 +55,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/mileage/pschange',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //新增保存线元
@@ -62,7 +63,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/mileage/add',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //编辑保存线元
@@ -70,7 +71,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/mileage/update',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //删除线元
@@ -78,7 +79,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/mileage/del',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
     //生成坐标
@@ -86,7 +87,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/mileage/getZzList',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //导出数据
@@ -95,7 +96,7 @@ export default {
             url: '/api/blade-business/mileage/exportExcel',
             method: 'get',
             params: form,
-            responseType: 'blob'
+            responseType: 'blob',
         }, msg)
     },
 }

+ 8 - 7
src/api/modules/gauge/station.js

@@ -1,20 +1,21 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
+
     //获取数据
     async queryListData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/dap/list',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //新增
     async addSave(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/dap/add',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //编辑
@@ -22,7 +23,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/dap/update',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //删除
@@ -30,7 +31,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/dap/del',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
     //导出数据
@@ -39,7 +40,7 @@ export default {
             url: '/api/blade-business/dap/exportExcel',
             method: 'get',
             params: form,
-            responseType: 'blob'
+            responseType: 'blob',
         }, msg)
     },
 }

+ 4 - 3
src/api/modules/ledger/construction.js

@@ -1,18 +1,19 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
+
     async queryConstructionPage(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/constructionLedger/list',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     async updateConstructionPage(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/constructionLedger/update',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
 }

+ 4 - 3
src/api/modules/ledger/index.js

@@ -1,7 +1,8 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
+
 
 export const queryTreeList = (form, msg = true) => httpApi({
     url: '/api/blade-business/informationWriteQuery/queryContractWbsTreeByContractIdAndType',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)

+ 5 - 4
src/api/modules/ledger/internal.js

@@ -1,11 +1,12 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
+
 
 export default {
     async queryInternalPage(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/neiYeController/queryCurrentNodeNeiYeLedger',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //获取当前合同段的上报批次
@@ -13,7 +14,7 @@ export default {
         return httpApi({
             url: 'api/blade-business/task/query-batch-list-two',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
 }

+ 33 - 32
src/api/modules/ledger/query.js

@@ -1,4 +1,5 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
+
 
 export default {
     //获取当前合同段下的日志类型
@@ -6,7 +7,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/contractLog/queryCurrentContractLogList',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //获取当前日志类型的填报人
@@ -14,7 +15,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/contractLog/queryFillUser',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //施工日志分页
@@ -22,7 +23,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/contractLog/constructionLogPage',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //批量废除
@@ -30,7 +31,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/contractLog/batchAbolish',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
     //获取合同段当前日志节点下的填报日期记录
@@ -38,7 +39,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/contractLog/getSubmitLogDateList',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
     //清表生成html
@@ -53,103 +54,103 @@ export default {
         return httpApi({
             url: '/api/blade-manager/exceltab/get-excel-html-two',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取表单数据
     async getBussDataInfo(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/get-the-log-business-data',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取表单数据
     async getTheLogBusinessData(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/get-the-log-business-data',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //填报页面数据保存
     async saveExcelBussData(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/save_log_first_buss_data',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //单表pdf预览
     async getBussPdfInfo(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/get-the-log-pdfInfo',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取当前日志资料关联的工序节点信息
     async queryCurrentLogSelectProcessList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/contractLog/queryCurrentLogSelectProcessList',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取当前资料的任务状态
     async checkTheLogTaskStatus(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/contractLog/checkTheLogTaskStatus',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //预览、打印
     async theLogPreviewAndPrint(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/contractLog/theLogPreviewAndPrint',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //废除
     async theLogOneAbolish(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/contractLog/oneAbolish',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //删除
     async theLogRemoveByIds(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/contractLog/removeByIds',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //获取当前合同段下本日志节点的填报资料日期树
     async queryReportLogTimeTree(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/contractLog/queryReportLogTimeTree',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取填报记录
     async queryLogTimeTreeList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/contractLog/queryLogList',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //复制任意时间
     async copyTheLogBusinessData(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/copy-the-log-business-data',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
 }

+ 3 - 3
src/api/modules/ledger/weather.js

@@ -1,18 +1,18 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
     async queryWeatherPage(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/weather/queryWeatherPage',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     async updateWeatherById(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/weather/updateWeatherById',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
 }

+ 12 - 12
src/api/modules/menu.js

@@ -1,21 +1,21 @@
-import {httpApi} from "../request/httpApi";
-import website from "~src/config/index";
+import { httpApi } from '../request/httpApi'
+import website from '~src/config/index'
 
 export const getRoutes = (msg = true) => httpApi({
-  url: '/api/blade-system/menu/routes',
-  method: 'get',
-  params: {
-      sysType: website.clientId
-  }
-}, msg);
+    url: '/api/blade-system/menu/routes',
+    method: 'get',
+    params: {
+        sysType: website.clientId,
+    },
+}, msg)
 
 export const getButtons = (msg = true) => httpApi({
     url: '/api/blade-system/menu/buttons',
-    method: 'get'
-}, msg);
+    method: 'get',
+}, msg)
 
 export const getAazyList = (form, msg = true) => httpApi({
     url: '/api/blade-system/menu/lazy-list',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)

+ 7 - 7
src/api/modules/oss.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../request/httpApi";
+import { httpApi } from '../request/httpApi'
 
 export default {
     //上传文件
@@ -6,23 +6,23 @@ export default {
         return httpApi({
             url: '/api/blade-resource/oss/endpoint/put-file',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //移除文件
     async removeFile(form, msg = true) {
         return httpApi({
             url: '/api/blade-resource/oss/endpoint/remove-file',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //上传文件
     async uploadFile(form, msg = true) {
         return httpApi({
             url: '/api/blade-resource/oss/endpoint/upload-file',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
 }

+ 27 - 27
src/api/modules/other-file/imageData.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
     //获取类型列表(类型主页)
@@ -6,23 +6,23 @@ export default {
         return httpApi({
             url: '/api/blade-business/imageClassificationFile/getClassIfyList',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取当前项目类型的显隐配置列表
     async getClassifyShowConfigList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/imageClassificationFile/getClassifyShowConfigList',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //保存客户端分类显隐记录
     async saveClassifyShowConfig(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/imageClassificationFile/saveClassifyShowConfig',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //获取时间结构
@@ -30,64 +30,64 @@ export default {
         return httpApi({
             url: '/api/blade-business/imageClassificationFile/getYearDateTree',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取当前合同段的工程划分
     async getWbsTreeList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/imageClassificationFile/queryContractWbsTreeByContractIdAndType',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取分页数据
     async getPageList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/imageClassificationFile/page',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //新增影音资料信息
     async addImageclassifyFile(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/imageClassificationFile/save',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //修改影音资料信息
     async updateImageclassifyFile(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/imageClassificationFile/update',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //详情
     async queryById(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/imageClassificationFile/queryById',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //影音资料信息逻辑删除
     async removeImageclassifyFile(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/imageClassificationFile/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //影音资料览(图片)
-    async imageClassificationFile(form, msg= true) {
+    async imageClassificationFile(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/imageClassificationFile/preview',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //下载
     async batchDownloadFileToZip(form, msg = true) {
@@ -95,15 +95,15 @@ export default {
             url: '/api/blade-business/imageClassificationFile/batchDownloadFileToZip',
             method: 'post',
             params: form,
-            responseType: 'blob'
-        }, msg);
+            responseType: 'blob',
+        }, msg)
     },
     //接口获取题名
     async getFileTitleName(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/imageClassificationFile/getFileTitleName',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
 }

+ 14 - 14
src/api/modules/other-file/projectScanning.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
     //获取归档划分树
@@ -6,23 +6,23 @@ export default {
         return httpApi({
             url: '/api/blade-business/archiveFile/tree',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //分页
     async getarchiveFilePage(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/archiveFile/page',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //批量新增
     async batchUploadSave(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/archiveFile/batchSave',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //逻辑删除
@@ -30,24 +30,24 @@ export default {
         return httpApi({
             url: '/api/blade-business/archiveFile/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //批量编辑
     async batchEditSave(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/archiveFile/batchEdit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //批量废除
     async batchAbolishSave(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/archiveFile/batchAbolish',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //批量下载
     async batchDownloadFileToZip(form, msg = true) {
@@ -55,7 +55,7 @@ export default {
             url: '/api/blade-business/archiveFile/batchDownloadFileToZip',
             method: 'post',
             params: form,
-            responseType: 'blob'
+            responseType: 'blob',
         }, msg)
     },
     //批量认证
@@ -63,7 +63,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/archiveFile/batchCertification',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
 }

+ 38 - 38
src/api/modules/other.js

@@ -1,44 +1,44 @@
-import {httpApi} from "../request/httpApi";
+import { httpApi } from '../request/httpApi'
 
-export const ApprovalApi = (url,form, msg = true) => httpApi({
+export const ApprovalApi = (url, form, msg = true) => httpApi({
     url: '/api/blade-business/' + url,
     method: 'post',
-    data: form
-}, msg);
+    data: form,
+}, msg)
 
 export const batchApproval = (form, msg = true) => httpApi({
     url: '/api/blade-business/archiveFile/batchApproval',
     method: 'post',
-    data: form
-}, msg);
+    data: form,
+}, msg)
 
 //短信验证
 export const sendNotice = (form, msg = true) => httpApi({
     url: '/api/blade-business/task/send-notice',
     method: 'post',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 
 //短信过期时间
 export const saveSmsTimeout = (form, msg = true) => httpApi({
     url: '/api/blade-business/task/save-sms-timeout',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 
 //用户配置保存
 export const userConfigSave = (form, msg = true) => httpApi({
     url: '/api/blade-business/defaultConfig/saveOrUpdate',
     method: 'post',
-    data: form
-}, msg);
+    data: form,
+}, msg)
 
 //用户配置详情
 export const userConfigInfo = (form, msg = true) => httpApi({
     url: '/api/blade-business/defaultConfig/detail',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 
 //获取上报批次
 // export const getReportNumber = (form, msg = true) => httpApi({
@@ -49,33 +49,33 @@ export const userConfigInfo = (form, msg = true) => httpApi({
 export const getReportNumber = (form, msg = true) => httpApi({
     url: 'api/blade-business/task/query-batch-list-two',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 //获取类型
 export const getDictionary = (form, msg = true) => httpApi({
     url: '/api/blade-system/dict/dictionary',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 
 
 //获取表单的下拉框测站点数据
 export const getDapSiteData = (form, msg = true) => httpApi({
     url: '/api/blade-business/dap/site',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 
 
 //检查当前合同段是否开启电签
 export const eVisaTaskCheck = (form, msg = true) => httpApi({
     url: '/api/blade-business/eVisaTaskCheck/checkContractIsOpenEVisa',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 
 export const eVisaTaskCheckApi = async (form) => {
-    const {error, code, msg, data} = await eVisaTaskCheck(form)
+    const { error, code, msg, data } = await eVisaTaskCheck(form)
     //判断数据
     if (!error && code === 200 && data === true) {
         return true
@@ -90,48 +90,48 @@ export const eVisaTaskCheckApi = async (form) => {
 export const checkFlowUserIsExistPfxFile = (form, msg = true) => httpApi({
     url: '/api/blade-business/eVisaTaskCheck/checkFlowUserIsExistPfxFile',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 
 
 //获取符合条件的预设流程(三大填报页、日志列表的批量上报、首件列表的批量上报)
 export const queryFixedFlow = (form, msg = true) => httpApi({
     url: '/api/blade-business/eVisaTaskCheck/queryFixedFlow',
     method: 'post',
-    data: form
-}, msg);
+    data: form,
+}, msg)
 
 //检查所选的流程环节处理人是否具有审批权限(三大填报页、日志列表的批量上报、首件列表的批量上报)
 export const checkCustomFlowUserIsEVisaPermissions = (form, msg = true) => httpApi({
     url: '/api/blade-business/eVisaTaskCheck/checkCustomFlowUserIsEVisaPermissions',
     method: 'post',
-    data: form
-}, msg);
+    data: form,
+}, msg)
 //资料查询页面
 export const checkCustomFlowUserIsEVisaPermissionsquery = (form, msg = true) => httpApi({
     url: '/api/blade-business/eVisaTaskCheck/batchCheckCustomFlowUserIsEVisaPermissions2',
     method: 'post',
-    data: form
-}, msg);
+    data: form,
+}, msg)
 //获取用户列表
 export const getContractUserList = (form, msg = true) => httpApi({
     url: '/api/blade-manager/contractInfo/get-contract-userList',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 
 //获取租户详情
 export const getTenantDetail = (id) => httpApi({
     url: '/api/blade-system/tenant/detail',
     method: 'get',
     params: {
-        tenantId: id
-    }
-}, true);
+        tenantId: id,
+    },
+}, true)
 
 
 //获取更新信息
 export const getVersionJson = () => httpApi({
     url: 'version.json?time=' + new Date().getTime(),
-    method: 'get'
-}, false);
+    method: 'get',
+}, false)

+ 12 - 12
src/api/modules/other/first-item.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
     //获取合同段划分树中被标记为首件的节点
@@ -6,15 +6,15 @@ export default {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/queryContractWbsTreeByFirstInfo',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //分页数据
     async getQueryPageData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/page',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //首件表单获取html页面
@@ -22,7 +22,7 @@ export default {
         return httpApi({
             url: '/api/blade-manager/first/get-first-excel-html',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //首件-pdf预览
@@ -30,7 +30,7 @@ export default {
         return httpApi({
             url: '/api/blade-manager/first/get-first-buss-pdfInfo',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //获取首件用户保存数据
@@ -38,7 +38,7 @@ export default {
         return httpApi({
             url: '/api/blade-manager/first/get-first-buss-dataInfo',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //填报页面数据保存
@@ -46,22 +46,22 @@ export default {
         return httpApi({
             url: '/api/blade-manager/exceltab/save_log_first_buss_data',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     async queryFirstDocumentTitle(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/queryFirstDocumentTitle',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //批量打印
     async batchPrint(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/informationWriteQuery/batchPrint',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
 }

+ 13 - 13
src/api/modules/other/orderServe.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
     //获取工单服务列表
@@ -6,15 +6,15 @@ export default {
         return httpApi({
             url: '/api/blade-business/userOpinion/queryUserOpinionPage',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取当前用户提交的工单服务
     async queryCurrentUserOpinionList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/userOpinion/queryCurrentUserOpinionList',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //新增工单服务信息
@@ -22,7 +22,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/userOpinion/saveUserOpinion',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //获取当前工单的最新流程
@@ -30,7 +30,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/userOpinionFlow/queryCurrentUserOpinionFlowByUserOpinionId',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //统合处理意见接口
@@ -38,22 +38,22 @@ export default {
         return httpApi({
             url: '/api/blade-business/userOpinionFlow/disposeUserOpinionFeedback',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
     //获取字典信息
     async queryDictBizList(msg = true) {
         return httpApi({
             url: '/api/blade-business/userOpinion/queryDictBizList',
-            method: 'get'
-        },msg)
+            method: 'get',
+        }, msg)
     },
     //获取当前工单下的所有评论
     async queryCommentsList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/userOpinionComments/queryUserOpinionCommentsByUserOpinionId',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //新增评论
@@ -61,7 +61,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/userOpinionComments/saveUserOpinionComments',
             method: 'post',
-            data: form
+            data: form,
         }, msg)
     },
     //点赞
@@ -69,7 +69,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/userOpinion/addGoodNumber',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
     //取消点赞
@@ -77,7 +77,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/userOpinion/cancelGood',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
 }

+ 11 - 11
src/api/modules/schedule/data.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
     //查询内业资料进度
@@ -6,39 +6,39 @@ export default {
         return httpApi({
             url: '/api/blade-business/materialProgress/queryMaterialProgress',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //报表资料审批统计
     async queryMaterialProgressStatus(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/materialProgress/queryMaterialProgressStatus',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //声像媒体资料统计
     async queryImageClassification(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/materialProgress/queryImageClassification',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //资料进度
     async queryContractTreeMaterialProgress(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/materialProgress/queryContractTreeMaterialProgress',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     // 内外业进度
     async queryNeiWaiYeProgress(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/neiWaiYeProgressController/neiWaiYeProgress',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
 }

+ 21 - 21
src/api/modules/tasks/data.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
     //获取任务类型或任务状态
@@ -6,79 +6,79 @@ export default {
         return httpApi({
             url: '/api/blade-business/task/query-task-type-status',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取当前合同段的上报批次
     async queryBatchList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/task/query-batch-list',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取当前用户待办流程
     async queryUserToDoTaskList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/task/user-to-do-task-list',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //审批页详情
     async queryApprovalParameter(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/task/query-approval-parameter',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //完成任务
     async saveCompleteApprovalTask(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/task/complete-approval-task',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //已办任务
     async queryUserDoneTaskList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/task/query-user-done-task-list',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //批量审批
     async batchCompleteApprovalTask(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/task/batch-complete-approval-task',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //获取发起
     async queryUserStartFlow(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/task/query-user-start-flow',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //批量页详情
     async queryTaskInfo(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/task/batch-approval-parameter',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //校验电签短信验证码
     async checkSmsCode(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/task/check-sms-code',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
 }

+ 12 - 12
src/api/modules/tasks/flow.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
     //分页数据
@@ -6,7 +6,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/fixedFlow/page',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //获取系统所有角色划分
@@ -14,39 +14,39 @@ export default {
         return httpApi({
             url: '/api/blade-business/fixedFlow/queryAllRoleList',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //详情
     async queryFixedFlowDetail(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/fixedFlow/detail',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //新增
     async addFixedFlowData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/fixedFlow/save',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //修改
     async updateFixedFlowData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/fixedFlow/update',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //删除
     async removeFixedFlowData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/fixedFlow/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
 }

+ 5 - 5
src/api/modules/tasks/message.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
     //分页数据
@@ -6,7 +6,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/messageWarning/list',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //删除消息
@@ -14,7 +14,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/messageWarning/remove',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
     //获取当前用户的消息数量
@@ -22,7 +22,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/messageWarning/queryCurrentUserMessageCount',
             method: 'get',
-            params: form
+            params: form,
         }, msg)
     },
     //标记已读
@@ -30,7 +30,7 @@ export default {
         return httpApi({
             url: '/api/blade-business/messageWarning/setMessageWarningRead',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
 }

+ 7 - 7
src/api/modules/tentative/detect/index.js

@@ -1,22 +1,22 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 //实验树
 export const getTreeAll = (form, msg = true) => httpApi({
     url: '/api/blade-manager/trial/tree-all',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 
 //新增或修改
 export const submitTree = (form, msg = true) => httpApi({
     url: '/api/blade-manager/trial/submit',
     method: 'post',
-    data: form
-}, msg);
+    data: form,
+}, msg)
 
 //删除节点
 export const removeTree = (form, msg = true) => httpApi({
     url: '/api/blade-manager/trial/remove',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)

+ 63 - 63
src/api/modules/tentative/detect/test.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 export default {
     //自检记录分页查询
@@ -6,24 +6,24 @@ export default {
         return httpApi({
             url: '/api/blade-business/detection/self/page',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //自检记录附件列表
     async ancillaryDocumentsList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/ancillary-documents-list',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //试验自检记录附件删除接口:
     async removedocuments(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/remove-ancillary-documents',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
 
     //自检记录批量复制
@@ -31,207 +31,207 @@ export default {
         return httpApi({
             url: '/api/blade-business/detection/self/copy',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //自检记录批量删除
     async removeData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //自检记录pdf批量打印
     async printPdf(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/print-pdf',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //自检记录pdf批量废除
     async batchAbolish(form, msg = true) {
-            return httpApi({
-                url: '/api/blade-business/informationWriteQuery/batchAbolish',
-                method: 'post',
-                params: form
-            }, msg);
+        return httpApi({
+            url: '/api/blade-business/informationWriteQuery/batchAbolish',
+            method: 'post',
+            params: form,
+        }, msg)
     },
     //自检记录pdf批量打印空表
     async printNullPdf(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/print-null-pdf',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //自检记录样品信息列表
     async getSampleList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/sample-list',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //根据所属方查询节点下表单
     async searchNodeTables(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/wbsPrivate/search-node-tables',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取试验表的HTML
     async getExcelHtml(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/wbsPrivate/get-excel-html',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取试验用户保存数据
     async getBussDataInfo(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/get-buss-dataInfo-trial',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //自检表单复制
     async copyBussTab(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/copy-buss-tab',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //自检单表PDF预览
     async getBussPdf(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/get-buss-pdf',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //自检多表PDF预览
     async getBussPdfs(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/get-buss-pdfs',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //自检隐藏表单
     async showBussTab(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/show-buss-tab',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //自检删除复制的表
     async removeBussTabInfo(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/remove-buss-tab',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //保存表单
     async saveExcelBussData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //查询关联样品信息列表
     async sampleListInfo(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/sample/list-info',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //查询关联原材料检测报告列表
     async rawMaterialList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/raw-material/list',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取试验表中的data数据接口:
     async getBussddataInfotrial(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/get-buss-dataInfo-trial',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取试验表中的data数据接口:
     async getBussddataInfotrialList(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/exceltab/get-buss-dataInfo-list-trial',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
- //自检记录附件修改接口:
+    //自检记录附件修改接口:
     async updateAncillaryDocument(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/update-ancillary-documents',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //关联原材报告保存
     async rawMaterialSubmit(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/raw-material/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //关联工程用途即部位
     async projectpositionSubmit(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/project-position/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //关联取样
     async recordsampleSubmit(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/record-sample/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //获取当前样品信息对应到表字段关系接口
     async recordsamplegetData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/record-sample/getData',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //关联工程部位信息获取数据接口
     async recordprojectPositiongetData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/self/record-projectPosition/getData',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取图表配置数据
     async getChartInit(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/formula/chart-init',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
 }

+ 9 - 9
src/api/modules/tentative/detect/third.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 export default {
     //外委或三方数据分页条件查询
@@ -6,31 +6,31 @@ export default {
         return httpApi({
             url: '/api/blade-business/detection/data/page',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //外委或三方数据新增或者修改
     async submitForm(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/data/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //外委或三方数据批量删除
     async removeData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/data/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //外委或三方数据复制
     async copyData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/detection/data/copy',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
 }

+ 15 - 15
src/api/modules/tentative/device/approach.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 export default {
     //分类新增或修改
@@ -6,55 +6,55 @@ export default {
         return httpApi({
             url: '/api/blade-business/device/class-submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //分类删除
     async setClassRemove(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/class-remove',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //分页条件查询
     async queryPage(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/mobilization/page',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //新增或修改
     async submitForm(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/mobilization/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //批量删除
     async removeData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/mobilization/remove',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //批量打印Pdf
     async exportPdf(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/mobilization/print-pdf',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //导入数据保存
     async samplingRecord(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/mobilization/import-batch',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
 }

+ 11 - 11
src/api/modules/tentative/device/employ.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 export default {
     //分页条件查询
@@ -6,39 +6,39 @@ export default {
         return httpApi({
             url: '/api/blade-business/device/use/page',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //新增或修改
     async submitForm(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/use/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //批量删除
     async removeData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/use/remove',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //批量打印Pdf
     async exportPdf(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/use/print-pdf',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //导入数据保存
     async samplingRecord(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/use/import-batch',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
 }

+ 11 - 11
src/api/modules/tentative/device/overhaul.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 export default {
     //分页条件查询
@@ -6,39 +6,39 @@ export default {
         return httpApi({
             url: '/api/blade-business/device/overhaul/page',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //新增或修改
     async submitForm(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/overhaul/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //批量删除
     async removeData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/overhaul/remove',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //批量打印Pdf
     async exportPdf(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/overhaul/print-pdf',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //导入数据保存
     async samplingRecord(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/device/overhaul/import-batch',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
 }

+ 13 - 13
src/api/modules/tentative/index.js

@@ -1,41 +1,41 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 //分类列表
 export const getClassList = (form, msg = true) => httpApi({
     url: '/api/blade-business/device/class-list',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 //初始化设备分类接口 api/blade-business/device/class-init
 export const deviceClassListInit = (form, msg = true) => httpApi({
     url: '/api/blade-business/device/class-init',
     method: 'post',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 //项目树全加载
 export const getProjectTree = (form, msg = true) => httpApi({
     url: '/api/blade-manager/projectInfo/tree',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 
 //使用-检修-根据设备分类id查询设备编号名称
 export const queryDeviceList = (form, msg = true) => httpApi({
     url: '/api/blade-business/device/use/device-list',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 
 //使用-根据节点id查询样品编号名称
 export const querySampleList = (form, msg = true) => httpApi({
     url: '/api/blade-business/device/use/sample-list',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 
 //获取节点关联样品信息接口:Get:/api/blade-business/device/use/submit/getSampleInfo
 export const getSampleInfo = (form, msg = true) => httpApi({
     url: '/api/blade-business/device/use/submit/getSampleInfo',
     method: 'get',
-    params: form
-}, msg);
+    params: form,
+}, msg)

+ 4 - 4
src/api/modules/tentative/laboratory/print.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 export default {
     //打印空表查询
@@ -6,15 +6,15 @@ export default {
         return httpApi({
             url: '/api/blade-manager/wbsPrivate/get-node-tables',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //批量打印
     async batchPrint(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/laboratory/print/null-pdf',
             method: 'post',
-            params: form
+            params: form,
         }, msg)
     },
 }

+ 7 - 7
src/api/modules/tentative/laboratory/user.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 export default {
     //人员档案条件分页查询
@@ -6,23 +6,23 @@ export default {
         return httpApi({
             url: '/api/blade-business/laboratory/user/archives/page',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //人员档案新增或修改
     async submitForm(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/laboratory/user/archives/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //人员档案批量删除
     async removeData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/laboratory/user/archives/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
 }

+ 19 - 19
src/api/modules/tentative/material/approach.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 export default {
     //进场材料分页条件查询
@@ -6,63 +6,63 @@ export default {
         return httpApi({
             url: '/api/blade-business/material/mobilization/page',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //进场材料新增或修改
     async submitForm(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/material/mobilization/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //进场材料批量删除
     async removeData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/material/mobilization/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //校验材料编号是否唯一
     async verification(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/material/mobilization/verification',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //进场材料批量复制
     async copyData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/material/mobilization/copy',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //批量打印进场材料Pdf
     async exportPdf(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/material/mobilization/export-pdf',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //材料取样记录
     async samplingRecord(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/material/mobilization/sampling-record',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
-     //材料进场附件附件修改接口:
-     async updateMobilizationFile(form, msg = true) {
+    //材料进场附件附件修改接口:
+    async updateMobilizationFile(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/material/mobilization/upload-file',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
 }

+ 21 - 21
src/api/modules/tentative/material/sampling.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 export default {
     //树数据
@@ -6,8 +6,8 @@ export default {
         return httpApi({
             url: '/api/blade-manager/wbsPrivate/lazy-tree',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
 
     // 获取试验树节点下的记录信息接口:
@@ -15,8 +15,8 @@ export default {
         return httpApi({
             url: '/api/blade-manager/wbsPrivate/self/trial/getMixRatioTestTree',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     // 获取试验树节点下的记录信息接口:
     async gettrialPage(form, msg = true) {
@@ -24,63 +24,63 @@ export default {
             // url: '/api/blade-business/trial/data/page',
             url: '/api/blade-business/trial/data/relation/page',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //分页条件查询
     async queryPage(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/material/sample/page',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //进场材料新增或修改
     async submitForm(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/material/sample/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //进场材料批量删除
     async removeData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/material/sample/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //校验样品编号是否唯一
     async verification(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/material/sample/verification',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //进场材料批量复制
     async copyData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/material/sample/copy',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //批量打印进场材料Pdf
     async exportPdf(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/material/sample/export-pdf',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //关联试验文件信息提交保存接口
     async submitRelationFile(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/trial/file/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
 }

+ 7 - 7
src/api/modules/tentative/parameter/compactness.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 export default {
     //压实度分页查询
@@ -6,23 +6,23 @@ export default {
         return httpApi({
             url: '/api/blade-manager/trial/param/compaction/page',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //压实度新增或修改
     async submitForm(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/trial/param/compaction/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //压实度批量删除
     async removeData(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/trial/param/compaction/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
 }

+ 21 - 21
src/api/modules/tentative/parameter/container.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 export default {
     //查询容器分类集合
@@ -6,64 +6,64 @@ export default {
         return httpApi({
             url: '/api/blade-business/container/classification/list',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //试验容器新增或修改
     async submitClassification(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/container/classification/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //删除容器中的字段
     async removeField(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/container/data/field/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //删除容器
     async removeClassification(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/container/classification/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //根据容器类型条件分页查询
     async queryPage(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/container/data/page',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //容器数据新增或修改
     async submitForm(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/container/data/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //容器数据删除
     async removeData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/container/data/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //校验容器数据编号是否唯一
     async verification(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/container/data/verification-no',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //下载导入模板
     async downloadTemplate(form, msg = true) {
@@ -71,15 +71,15 @@ export default {
             url: '/api/blade-business/container/data/download-template',
             method: 'post',
             responseType: 'blob',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //导入/api/blade-business/container/data/import-excel
     async importExcel(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/container/data/import-excel',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
 }

+ 7 - 7
src/api/modules/tentative/parameter/density.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 export default {
     //温度及密度分页查询
@@ -6,23 +6,23 @@ export default {
         return httpApi({
             url: '/api/blade-manager/trial/param/temperature-density/page',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //温度及密度新增或修改
     async submitForm(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/trial/param/temperature-density/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //温度及密度批量删除
     async removeData(form, msg = true) {
         return httpApi({
             url: '/api/blade-manager/trial/param/temperature-density/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
 }

+ 14 - 14
src/api/modules/tentative/parameter/sieve.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../../request/httpApi";
+import { httpApi } from '../../../request/httpApi'
 
 export default {
     //筛孔分类列表查询
@@ -6,47 +6,47 @@ export default {
         return httpApi({
             url: '/api/blade-business/sieve/pore/classification/list',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //筛孔分类新增或修改
     async submitClassification(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/sieve/pore/classification/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //筛孔分类删除
     async removeField(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/sieve/pore/classification/remove',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //筛孔尺寸数据分页查询
     async queryPage(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/sieve/pore/data/page',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //筛孔尺寸数据新增或修改
     async submitForm(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/sieve/pore/data/submit',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //筛孔尺寸数据删除
     async removeData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/sieve/pore/data/remove',
             method: 'post',
-            params: form
-        }, msg);
-    }
+            params: form,
+        }, msg)
+    },
 }

+ 33 - 33
src/api/modules/user.js

@@ -1,8 +1,8 @@
-import {httpApi} from "../request/httpApi";
-import website from "~src/config/index";
+import { httpApi } from '../request/httpApi'
+import website from '~src/config/index'
 import md5 from 'js-md5'
 
-export const userLogin = ({tenantId, deptId, roleId, username, password, type, key, code}, msg = true) => httpApi({
+export const userLogin = ({ tenantId, deptId, roleId, username, password, type, key, code }, msg = true) => httpApi({
     url: '/api/blade-auth/oauth/token',
     method: 'post',
     headers: {
@@ -16,11 +16,11 @@ export const userLogin = ({tenantId, deptId, roleId, username, password, type, k
         tenantId,
         username,
         password: md5(password),
-        grant_type: (website.captchaMode ? "captcha" : "password"),
-        scope: "all",
-        type
-    }
-}, msg);
+        grant_type: (website.captchaMode ? 'captcha' : 'password'),
+        scope: 'all',
+        type,
+    },
+}, msg)
 
 export const refreshToken = (refresh_token, tenantId, deptId, roleId, msg = true) => httpApi({
     url: '/api/blade-auth/oauth/token',
@@ -28,20 +28,20 @@ export const refreshToken = (refresh_token, tenantId, deptId, roleId, msg = true
     headers: {
         'Tenant-Id': tenantId,
         'Dept-Id': (website.switchMode ? deptId : ''),
-        'Role-Id': (website.switchMode ? roleId : '')
+        'Role-Id': (website.switchMode ? roleId : ''),
     },
     params: {
         tenantId,
         refresh_token,
-        grant_type: "refresh_token",
-        scope: "all",
-    }
-}, msg);
+        grant_type: 'refresh_token',
+        scope: 'all',
+    },
+}, msg)
 
 export const logout = (msg = true) => httpApi({
     url: '/api/blade-auth/oauth/logout',
-    method: 'get'
-}, msg);
+    method: 'get',
+}, msg)
 
 export const registerGuest = (form, oauthId, msg = true) => httpApi({
     url: '/api/blade-user/register-guest',
@@ -51,47 +51,47 @@ export const registerGuest = (form, oauthId, msg = true) => httpApi({
         name: form.name,
         account: form.account,
         password: form.password,
-        oauthId
-    }
-}, msg);
+        oauthId,
+    },
+}, msg)
 
 export const getProjectAndContract = (msg = true) => httpApi({
     url: '/api/blade-business/userViewProjectContract/queryUserViewProjectAndContract',
-    method: 'get'
-}, msg);
+    method: 'get',
+}, msg)
 
 export const getCaptcha = (msg = true) => httpApi({
     url: '/api/blade-auth/oauth/captcha',
-    method: 'get'
-}, msg);
+    method: 'get',
+}, msg)
 
 export const getUserInfo = (msg = true) => httpApi({
     url: '/api/blade-auth/oauth/user-info',
-    method: 'get'
-}, msg);
+    method: 'get',
+}, msg)
 
 export const sendLogs = (list, msg = true) => httpApi({
     url: '/api/blade-auth/oauth/logout',
     method: 'post',
-    data: list
-}, msg);
+    data: list,
+}, msg)
 
 export const clearCache = (msg = true) => httpApi({
     url: '/api/blade-auth/oauth/clear-cache',
-    method: 'get'
-}, msg);
+    method: 'get',
+}, msg)
 
 export const loginByToken = (form, msg = true) => httpApi({
     url: '/api/blade-user/loginByToken',
     method: 'post',
-    params: form
-}, msg);
+    params: form,
+}, msg)
 
 //获取租户ID
 export const getTenantID = (domain, msg = true) => httpApi({
     url: '/api/blade-system/tenant/info',
     method: 'get',
     params: {
-        domain
-    }
-}, msg);
+        domain,
+    },
+}, msg)

+ 23 - 23
src/api/modules/userInfo/index.js

@@ -1,4 +1,4 @@
-import {httpApi} from "../../request/httpApi";
+import { httpApi } from '../../request/httpApi'
 
 export default {
     //修改密码
@@ -6,87 +6,87 @@ export default {
         return httpApi({
             url: '/api/blade-user/update-password',
             method: 'post',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //设置默认项目
     async setDefaultProject(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/defaultProject/save',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //获取默认项目
     async getDefaultProject(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/defaultProject/queryUserDefault',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //更新用户信息
     async updateUserInfo(form, msg = true) {
         return httpApi({
             url: '/api/blade-user/update-info',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //获取操作日志
     async getOperationLog(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/operationLog/list',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取业务模块
     async queryBusinessModule(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/operationLog/queryBusinessModule',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取操作页面
     async queryOperationView(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/operationLog/queryOperationView',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取操作类型
     async queryOperationTypeList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/operationLog/queryOperationTypeList',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //获取用户信息
     async queryCurrentUserData(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/userViewProjectContract/queryCurrentUserData',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
     //回收站分页
     async queryRecycleBinList(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/recycleBin/list',
             method: 'get',
-            params: form
-        }, msg);
+            params: form,
+        }, msg)
     },
     //回收站恢复
     async recycleBinRegain(form, msg = true) {
         return httpApi({
             url: '/api/blade-business/recycleBin/regain',
             method: 'post',
-            data: form
-        }, msg);
+            data: form,
+        }, msg)
     },
 }

+ 8 - 8
src/api/request/header.js

@@ -1,16 +1,16 @@
-import {Base64} from 'js-base64';
-import website from '~src/config';
-import {getToken} from '~src/api/util/auth';
+import { Base64 } from 'js-base64'
+import website from '~src/config'
+import { getToken } from '~src/api/util/auth'
 
-export function getTokenHeader(text= false) {
-    let headers = {};
-    headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`;
+export function getTokenHeader(text = false) {
+    let headers = {}
+    headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`
     //让每个请求携带token
     const token = getToken()
     if (token) headers[website.tokenHeader] = 'bearer ' + token
     //headers中配置text请求
     if (text === true) {
-        headers["Content-Type"] = "text/plain";
+        headers['Content-Type'] = 'text/plain'
     }
-    return headers;
+    return headers
 }

+ 12 - 12
src/api/request/httpApi.js

@@ -1,33 +1,33 @@
-import request from "./index";
-import {getObjValue} from "js-fast-way"
+import request from './index'
+import { getObjValue } from 'js-fast-way'
 
 //封装的请求
 export const httpApi = async (obj, message = true) => {
     return new Promise((resolve) => {
         //发起请求
         request(obj).then(async (response) => {
-            resolve(await getResData(response, false));
+            resolve(await getResData(response, false))
         }).catch(async (response) => {
-            if (message) window.$message?.error(getMsgVal(response));
-            resolve(await getResData(response, true));
+            if (message) window.$message?.error(getMsgVal(response))
+            resolve(await getResData(response, true))
         })
-    });
+    })
 }
 
 //处理数据
 const getResData = async (response, error = false) => {
     return new Promise((resolve) => {
-        const {headers, data, config} = response
+        const { headers, data, config } = response
         const resData = getObjValue(data)
         const httpData = {
             response, res: data, data: resData?.data,
             code: resData?.code, msg: resData?.msg, status: response?.status,
             disposition: headers['content-disposition'],
-            message: getMsgVal(response), error: error
+            message: getMsgVal(response), error: error,
         }
         //处理延迟响应
         if (!error) {
-            const {startTime, endTime} = config.metadata
+            const { startTime, endTime } = config.metadata
             if (config.isDelay) {
                 const duration = endTime - startTime
                 if (duration < 500) {
@@ -48,10 +48,10 @@ const getResData = async (response, error = false) => {
 
 //获取msg消息内容
 const getMsgVal = (response) => {
-    const {code, msg, error_description} = getObjValue(response.data)
+    const { code, msg, error_description } = getObjValue(response.data)
     if (code === 404) {
-        return '服务器异常,请联系管理员!';
+        return '服务器异常,请联系管理员!'
     } else {
-        return msg || error_description || '未知错误';
+        return msg || error_description || '未知错误'
     }
 }

+ 26 - 26
src/api/request/index.js

@@ -1,24 +1,24 @@
-import axios from 'axios';
-import {Base64} from 'js-base64';
-import website from '~src/config';
-import router from '~src/router/index';
-import {getToken} from '~src/api/util/auth';
-import {getObjValue, toSerialize} from "js-fast-way"
+import axios from 'axios'
+import { Base64 } from 'js-base64'
+import website from '~src/config'
+import router from '~src/router/index'
+import { getToken } from '~src/api/util/auth'
+import { getObjValue, toSerialize } from 'js-fast-way'
 
 //默认超时时间
-axios.defaults.timeout = 0;
+axios.defaults.timeout = 0
 //返回其他状态码
 axios.defaults.validateStatus = function (status) {
-    return status >= 200 && status <= 500;
-};
+    return status >= 200 && status <= 500
+}
 //跨域请求,允许保存cookie
-axios.defaults.withCredentials = true;
+axios.defaults.withCredentials = true
 
 //http request拦截
 axios.interceptors.request.use(config => {
-    const meta = (config['meta'] || {});
-    const isToken = meta['isToken'] === false;
-    config.headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`;
+    const meta = (config['meta'] || {})
+    const isToken = meta['isToken'] === false
+    config.headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}`
     //让每个请求携带token
     const token = getToken()
     if (token && !isToken) {
@@ -26,37 +26,37 @@ axios.interceptors.request.use(config => {
     }
     //headers中配置text请求
     if (config['text'] === true) {
-        config.headers["Content-Type"] = "text/plain";
+        config.headers['Content-Type'] = 'text/plain'
     }
     //headers中配置serialize为true开启序列化
     if (config.method === 'post' && meta['isSerialize'] === true) {
-        config.data = toSerialize(config.data);
+        config.data = toSerialize(config.data)
     }
-    config.metadata = {startTime: new Date()}
+    config.metadata = { startTime: new Date() }
     return config
 }, error => {
     return Promise.reject(error)
-});
+})
 
 //http response 拦截
 axios.interceptors.response.use(res => {
     //响应时间
     res.config.metadata.endTime = new Date()
     //获取状态码
-    const status = res?.data?.code || res.status;
+    const status = res?.data?.code || res.status
     //如果是401则跳转到登录页面
     if (status === 401) {
-        window.$message?.error('身份失效,请重新登录!');
-        router.push({path: '/login'})
+        window.$message?.error('身份失效,请重新登录!')
+        router.push({ path: '/login' })
     }
     // 如果请求为非200, 自行catch逻辑处理
     if (status !== 200) {
-        return Promise.reject(res);
+        return Promise.reject(res)
     }
-    return res;
+    return res
 }, error => {
-    window.$message?.error('请求异常!');
-    return Promise.reject(new Error(error));
-});
+    window.$message?.error('请求异常!')
+    return Promise.reject(new Error(error))
+})
 
-export default axios;
+export default axios

+ 1 - 1
src/api/util/auth.js

@@ -1,5 +1,5 @@
 import Cookies from 'js-cookie'
-import config from "~src/config/index";
+import config from '~src/config/index'
 
 export const getToken = () => {
     return Cookies.get(config.tokenKey)

+ 76 - 37
src/components/home/SearchInput.vue

@@ -1,41 +1,81 @@
 <template>
-    <div class="home-input-view" :class="[searchKey?'tip-list':'', isFocus?'input-focus':'']">
+    <div class="home-input-view" :class="[searchKey ? 'tip-list' : '', isFocus ? 'input-focus' : '']">
         <div class="hc-home-search-input-box">
             <div class="cu-input-icon">
-                <HcIcon name="search"/>
+                <HcIcon name="search" />
             </div>
-            <input ref="inputRef" class="hc-home-search-input" :placeholder="placeholder" :value="modelValue" @blur="blur" @change="change" @focus="focus" @input="input" @keyup.enter="enter"/>
-            <div class="cu-input-icon hover" v-if="clearable" @click="clearClick">
-                <HcIcon name="close"/>
+            <input
+                ref="inputRef" class="hc-home-search-input" :placeholder="placeholder" :value="modelValue"
+                @blur="blur" @change="change" @focus="focus" @input="input" @keyup.enter="enter"
+            >
+            <div v-if="clearable" class="cu-input-icon hover" @click="clearClick">
+                <HcIcon name="close" />
+            </div>
+            <div class="cu-input-search">
+                搜索
             </div>
-            <div class="cu-input-search">搜索</div>
         </div>
         <div class="home-input-tip-list-box">
-            <div class="tip-list-item">列表1</div>
-            <div class="tip-list-item">列表2</div>
-            <div class="tip-list-item">列表3</div>
-            <div class="tip-list-item">列表1</div>
-            <div class="tip-list-item">列表2</div>
-            <div class="tip-list-item">列表3</div>
-            <div class="tip-list-item">列表1</div>
-            <div class="tip-list-item">列表2</div>
-            <div class="tip-list-item">列表3</div>
-            <div class="tip-list-item">列表1</div>
-            <div class="tip-list-item">列表2</div>
-            <div class="tip-list-item">列表3</div>
-            <div class="tip-list-item">列表1</div>
-            <div class="tip-list-item">列表2</div>
-            <div class="tip-list-item">列表3</div>
-            <div class="tip-list-item">列表1</div>
-            <div class="tip-list-item">列表2</div>
-            <div class="tip-list-item">列表3</div>
+            <div class="tip-list-item">
+                列表1
+            </div>
+            <div class="tip-list-item">
+                列表2
+            </div>
+            <div class="tip-list-item">
+                列表3
+            </div>
+            <div class="tip-list-item">
+                列表1
+            </div>
+            <div class="tip-list-item">
+                列表2
+            </div>
+            <div class="tip-list-item">
+                列表3
+            </div>
+            <div class="tip-list-item">
+                列表1
+            </div>
+            <div class="tip-list-item">
+                列表2
+            </div>
+            <div class="tip-list-item">
+                列表3
+            </div>
+            <div class="tip-list-item">
+                列表1
+            </div>
+            <div class="tip-list-item">
+                列表2
+            </div>
+            <div class="tip-list-item">
+                列表3
+            </div>
+            <div class="tip-list-item">
+                列表1
+            </div>
+            <div class="tip-list-item">
+                列表2
+            </div>
+            <div class="tip-list-item">
+                列表3
+            </div>
+            <div class="tip-list-item">
+                列表1
+            </div>
+            <div class="tip-list-item">
+                列表2
+            </div>
+            <div class="tip-list-item">
+                列表3
+            </div>
         </div>
     </div>
-
 </template>
 
 <script setup>
-import {onMounted, ref} from "vue"
+import { onMounted, ref } from 'vue'
 //import {getAazyList} from '~api/menu';
 //import {getArrValue} from "vue-utils-plus"
 
@@ -43,17 +83,19 @@ const props = defineProps({
     //输入框占位文本
     placeholder: {
         type: String,
-        default: ''
+        default: '',
     },
     //值
     modelValue: {
         type: String,
-        default: ""
+        default: '',
     },
 })
 
+//事件
+const emit = defineEmits(['update:modelValue', 'input', 'focus', 'blur', 'enter', 'change', 'clear'])
 //变量
-const inputRef = ref();
+const inputRef = ref()
 const isFocus = ref(false)
 const clearable = ref(false)
 const searchKey = ref(props.modelValue)
@@ -80,14 +122,11 @@ const getAazyListApi = async () => {
 }
 
 
-//事件
-const emit = defineEmits(['update:modelValue', 'input', 'focus', 'blur', 'enter', 'change', 'clear'])
-
 //值改变时触发
 const input = (e) => {
     upModelValue(e.target.value)
     emit('input', e.target.value)
-    clearable.value = !!e.target.value;
+    clearable.value = !!e.target.value
 }
 
 //获得焦点时触发
@@ -119,7 +158,7 @@ const clearClick = () => {
     upModelValue('')
     emit('input', '')
     emit('clear', '')
-    clearable.value = false;
+    clearable.value = false
 }
 
 //更新值
@@ -145,7 +184,7 @@ const upModelValue = (value = '') => {
         background: white;
         padding-left: 10px;
         border-radius: 50px;
-        box-shadow: 0 0.5em 1em rgba(0, 0, 0,.15);
+        box-shadow: 0 0.5em 1em rgba(0, 0, 0, .15);
         .hc-home-search-input {
             flex: 1;
             border: 0;
@@ -223,8 +262,8 @@ const upModelValue = (value = '') => {
         pointer-events: none;
         z-index: -1;
         color: black;
-        box-shadow: 0 0.5em 1em rgba(0, 0, 0,.15);
-        transition: .35s cubic-bezier(.24,.22,.015,1.56);
+        box-shadow: 0 0.5em 1em rgba(0, 0, 0, .15);
+        transition: .35s cubic-bezier(.24, .22, .015, 1.56);
         .tip-list-item {
             position: relative;
             padding: 10px 0;

+ 7 - 7
src/components/plugins/element/HcImage.vue

@@ -1,28 +1,28 @@
 <template>
-    <ElImage :class="ui" :src="src" :previewSrcList="srcs" :initial-index="index" :fit="fit" crossOrigin="anonymous"/>
+    <ElImage :class="ui" :src="src" :preview-src-list="srcs" :initial-index="index" :fit="fit" cross-origin="anonymous" />
 </template>
 
 <script setup>
 defineProps({
     ui: {
         type: String,
-        default: ''
+        default: '',
     },
     src: {
         type: String,
-        default: ''
+        default: '',
     },
     srcs: {
         type: Array,
-        default: () => ([])
+        default: () => ([]),
     },
     index: {
-        type: [String,Number],
-        default: -1
+        type: [String, Number],
+        default: -1,
     },
     fit: {
         type: String,
-        default: 'cover'
+        default: 'cover',
     },
 })
 </script>

+ 14 - 13
src/components/plugins/table-form/echart.vue

@@ -1,26 +1,27 @@
 <template>
     <div class="hc-echarts-box">
-        <div :id="isKeyName + '_echart'" ref="echart" class="hc-echarts" :style="`width : ${chart?.clientWidth}px`"/>
+        <div :id="`${isKeyName}_echart`" ref="echart" class="hc-echarts" :style="`width : ${chart?.clientWidth}px`" />
     </div>
 </template>
 
 <script setup>
 import * as echarts from 'echarts'
-import { getObjValue } from "js-fast-way"
+import { getObjValue } from 'js-fast-way'
 import { nextTick, onMounted, onUnmounted, ref, watch } from 'vue'
+
 const props = defineProps({
     option: {
         type: Object,
-        default: () => ({})
+        default: () => ({}),
     },
     keyname: {
         type: [Number, String],
-        default: ''
+        default: '',
     },
 })
 
 //初始变量
-let chart = null;
+let chart = null
 const echart = ref(null)
 const isKeyName = ref(props.keyname)
 const options = ref(getObjValue(props.option))
@@ -34,7 +35,7 @@ watch(() => [
 
 //深度监听
 watch(() => [
-    props.option
+    props.option,
 ], ([option]) => {
     options.value = getObjValue(option)
     setOptions(options.value)
@@ -49,12 +50,12 @@ const initChart = () => {
 
 //监听浏览器窗口变化
 const windowResize = () => {
-    window.addEventListener("resize", resizeEvent);
+    window.addEventListener('resize', resizeEvent)
 }
 
 const resizeEvent = () => {
     window.requestAnimationFrame(() => {
-        chart.resize();
+        chart.resize()
     })
 }
 
@@ -75,28 +76,28 @@ onMounted(() => {
 
 //被卸载
 onUnmounted(() => {
-    window.removeEventListener("resize",resizeEvent);
+    window.removeEventListener('resize', resizeEvent)
     chart.dispose()
     chart = null
 })
 
 const onResize = () => {
     nextTick(() => {
-        chart.resize();
+        chart.resize()
     })
 }
 
 const getImage = () => {
     return chart.getDataURL({
         type: 'png',
-        pixelRatio: 2
-    });
+        pixelRatio: 2,
+    })
 }
 
 // 暴露出去
 defineExpose({
     onResize,
-    getImage
+    getImage,
 })
 </script>
 

+ 42 - 40
src/components/plugins/table-form/hc-date-picker-1.vue

@@ -1,23 +1,25 @@
 <template>
-    <el-date-picker :id="keyname"
-                    v-model="modelValues"
-                    :clearable="clearable"
-                    :disabled="disabled"
-                    :end-placeholder="endPlaceholder"
-                    :format="format"
-                    :keyname="keyname"
-                    :placeholder="placeholder"
-                    :range-separator="rangeSeparator"
-                    :readonly="readonly"
-                    :start-placeholder="startPlaceholder"
-                    :type="type"
-                    :value-format="valueFormat"
-                    style="width: 100%;height: 100%;"
-                    @change="timePickerChange"
-                    @keydown.shift.up="keyupShiftUp"
-                    @keydown.shift.down="keyupShiftDown"
-                    @keydown.shift.left="keyupShiftLeft"
-                    @keydown.shift.right="keyupShiftRight"></el-date-picker>
+    <ElDatePicker
+        :id="keyname"
+        v-model="modelValues"
+        :clearable="clearable"
+        :disabled="disabled"
+        :end-placeholder="endPlaceholder"
+        :format="format"
+        :keyname="keyname"
+        :placeholder="placeholder"
+        :range-separator="rangeSeparator"
+        :readonly="readonly"
+        :start-placeholder="startPlaceholder"
+        :type="type"
+        :value-format="valueFormat"
+        style="width: 100%;height: 100%;"
+        @change="timePickerChange"
+        @keydown.shift.up="keyupShiftUp"
+        @keydown.shift.down="keyupShiftDown"
+        @keydown.shift.left="keyupShiftLeft"
+        @keydown.shift.right="keyupShiftRight"
+    />
 </template>
 
 <script>
@@ -27,60 +29,63 @@ export default {
 </script>
 
 <script setup>
-import {ref, watch} from 'vue'
-import {ElDatePicker} from 'z-element-plus'
+import { ref, watch } from 'vue'
+import { ElDatePicker } from 'z-element-plus'
 import 'dayjs/locale/zh-cn'
 
 const props = defineProps({
     modelValue: {
-        type: [Date, String, Number, Array]
+        type: [Date, String, Number, Array],
     },
     type: {
         type: String,
-        default: 'date'
+        default: 'date',
     },
     rangeSeparator: {
         type: String,
-        default: '-'
+        default: '-',
     },
     startPlaceholder: {
         type: String,
-        default: ''
+        default: '',
     },
     endPlaceholder: {
         type: String,
-        default: ''
+        default: '',
     },
     format: {
         type: String,
-        default: 'YYYY:MM:DD'
+        default: 'YYYY:MM:DD',
     },
     valueFormat: {
         type: String,
-        default: 'YYYY年MM月DD日'
+        default: 'YYYY年MM月DD日',
     },
     keyname: {
         type: String,
-        default: ''
+        default: '',
     },
     readonly: {
         type: Boolean,
-        default: false
+        default: false,
     },
     disabled: {
         type: Boolean,
-        default: false
+        default: false,
     },
     clearable: {
         type: Boolean,
-        default: true
+        default: true,
     },
     placeholder: {
         type: String,
-        default: ''
+        default: '',
     },
 })
 
+//事件
+const emit = defineEmits(['update:modelValue', 'change', 'keydowns'])
+
 //变量
 const modelValues = ref(props.modelValue)
 
@@ -91,9 +96,6 @@ watch(() => [
     modelValues.value = val
 })
 
-//事件
-const emit = defineEmits(['update:modelValue', 'change', 'keydowns'])
-
 const timePickerChange = (val) => {
     emit('update:modelValue', val)
     emit('change', val)
@@ -101,21 +103,21 @@ const timePickerChange = (val) => {
 
 //向上
 const keyupShiftUp = (e) => {
-    emit('keydowns', {type: 'up', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'up', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 //向下
 const keyupShiftDown = (e) => {
-    emit('keydowns', {type: 'down', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'down', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 //向左
 const keyupShiftLeft = (e) => {
-    emit('keydowns', {type: 'left', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'left', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 //向右
 const keyupShiftRight = (e) => {
-    emit('keydowns', {type: 'right', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'right', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 </script>

+ 33 - 28
src/components/plugins/table-form/hc-form-checkbox-group.vue

@@ -1,13 +1,18 @@
 <template>
-    <div :class="isFocus?'is-focus':''" class="hc-form-checkbox-group-box"
-         @keydown.shift.up="keyupShiftUp"
-         @keydown.shift.down="keyupShiftDown"
-         @keydown.shift.left="keyupShiftLeft"
-         @keydown.shift.right="keyupShiftRight">
-        <el-checkbox v-for="item in checkboxDatas" :key="item.key" :checked="item.checked"
-                     @change="onCheckboxChange($event, item)">{{ item.name }}
-        </el-checkbox>
-        <input :id="keyname" class="hc-checkbox-group-input" @blur="handleBlur" @focus="handleFocus"/>
+    <div
+        :class="isFocus ? 'is-focus' : ''" class="hc-form-checkbox-group-box"
+        @keydown.shift.up="keyupShiftUp"
+        @keydown.shift.down="keyupShiftDown"
+        @keydown.shift.left="keyupShiftLeft"
+        @keydown.shift.right="keyupShiftRight"
+    >
+        <ElCheckbox
+            v-for="item in checkboxDatas" :key="item.key" :checked="item.checked"
+            @change="onCheckboxChange($event, item)"
+        >
+            {{ item.name }}
+        </ElCheckbox>
+        <input :id="keyname" class="hc-checkbox-group-input" @blur="handleBlur" @focus="handleFocus">
     </div>
 </template>
 
@@ -18,33 +23,36 @@ export default {
 </script>
 
 <script setup>
-import {ref, nextTick, watch} from 'vue'
-import {ElCheckbox} from 'element-plus'
-import {isNullES, deepClone, arrIndex} from "js-fast-way"
+import { nextTick, ref, watch } from 'vue'
+import { ElCheckbox } from 'element-plus'
+import { arrIndex, deepClone, isNullES } from 'js-fast-way'
 
 const props = defineProps({
     ui: {
         type: String,
-        default: ''
+        default: '',
     },
     datas: {
         type: Array,
-        default: () => ([])
+        default: () => ([]),
     },
     objs: {
         type: Array,
-        default: () => ([])
+        default: () => ([]),
     },
     val: {
         type: [String, Number],
-        default: ''
+        default: '',
     },
     keyname: {
         type: [String, Number],
-        default: ''
+        default: '',
     },
 })
 
+//事件
+const emit = defineEmits(['change', 'keydowns'])
+
 //变量
 const checkboxDatas = ref([])
 
@@ -55,7 +63,7 @@ nextTick(() => {
 
 //监听表头
 watch(() => [
-    props.val
+    props.val,
 ], ([val]) => {
     setModelVal(val)
 })
@@ -63,7 +71,7 @@ watch(() => [
 //处理初始数据
 const setInitDatas = (datas, objs) => {
     for (let i = 0; i < datas.length; i++) {
-        objs.push({key: String(datas[i]), name: datas[i]})
+        objs.push({ key: String(datas[i]), name: datas[i] })
     }
     checkboxDatas.value = objs
     setModelVal(props.val)
@@ -83,9 +91,6 @@ const setModelVal = (val) => {
     checkboxDatas.value = datas
 }
 
-//事件
-const emit = defineEmits(['change', 'keydowns'])
-
 //当绑定值变化时触发的事件
 const onCheckboxChange = (val, item) => {
     item.checked = val
@@ -94,7 +99,7 @@ const onCheckboxChange = (val, item) => {
 
 //取选中的值
 const getCheckedValue = () => {
-    let valString = '';
+    let valString = ''
     const datas = checkboxDatas.value
     for (let i = 0; i < datas.length; i++) {
         if (datas[i].checked) {
@@ -105,28 +110,28 @@ const getCheckedValue = () => {
     //事件返回
     emit('change', {
         key: props.keyname,
-        val: valString
+        val: valString,
     })
 }
 
 //向上
 const keyupShiftUp = (e) => {
-    emit('keydowns', {type: 'up', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'up', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 //向下
 const keyupShiftDown = (e) => {
-    emit('keydowns', {type: 'down', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'down', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 //向左
 const keyupShiftLeft = (e) => {
-    emit('keydowns', {type: 'left', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'left', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 //向右
 const keyupShiftRight = (e) => {
-    emit('keydowns', {type: 'right', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'right', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 

+ 29 - 26
src/components/plugins/table-form/hc-form-radio-group.vue

@@ -1,18 +1,21 @@
 <template>
-    <div :class="isFocus?'is-focus':''" class="hc-form-radio-group-box"
-         @keydown.shift.up="keyupShiftUp"
-         @keydown.shift.down="keyupShiftDown"
-         @keydown.shift.left="keyupShiftLeft"
-         @keydown.shift.right="keyupShiftRight">
-        <el-radio-group v-model="modelValues"
-                        :disabled="disabled"
-                        :keyname="keyname"
-                        :placeholder="placeholder"
-                        @change="radioGroupChange"
+    <div
+        :class="isFocus ? 'is-focus' : ''" class="hc-form-radio-group-box"
+        @keydown.shift.up="keyupShiftUp"
+        @keydown.shift.down="keyupShiftDown"
+        @keydown.shift.left="keyupShiftLeft"
+        @keydown.shift.right="keyupShiftRight"
+    >
+        <ElRadioGroup
+            v-model="modelValues"
+            :disabled="disabled"
+            :keyname="keyname"
+            :placeholder="placeholder"
+            @change="radioGroupChange"
         >
-            <slot></slot>
-        </el-radio-group>
-        <input :id="keyname" class="hc-radio-group-input" @blur="handleBlur" @focus="handleFocus"/>
+            <slot />
+        </ElRadioGroup>
+        <input :id="keyname" class="hc-radio-group-input" @blur="handleBlur" @focus="handleFocus">
     </div>
 </template>
 
@@ -23,27 +26,30 @@ export default {
 </script>
 
 <script setup>
-import {ref, watch} from 'vue'
-import {ElRadioGroup, ElRadio} from 'element-plus'
+import { ref, watch } from 'vue'
+import { ElRadio, ElRadioGroup } from 'element-plus'
 
 const props = defineProps({
     modelValue: {
-        type: [String, Number, Boolean]
+        type: [String, Number, Boolean],
     },
     keyname: {
         type: String,
-        default: ''
+        default: '',
     },
     placeholder: {
         type: String,
-        default: ''
+        default: '',
     },
     disabled: {
         type: Boolean,
-        default: false
+        default: false,
     },
 })
 
+//事件
+const emit = defineEmits(['update:modelValue', 'change', 'keydowns'])
+
 //变量
 const modelValues = ref(props.modelValue)
 
@@ -54,9 +60,6 @@ watch(() => [
     modelValues.value = val
 })
 
-//事件
-const emit = defineEmits(['update:modelValue', 'change', 'keydowns'])
-
 const radioGroupChange = (val) => {
     emit('update:modelValue', val)
     emit('change', val)
@@ -64,22 +67,22 @@ const radioGroupChange = (val) => {
 
 //向上
 const keyupShiftUp = (e) => {
-    emit('keydowns', {type: 'up', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'up', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 //向下
 const keyupShiftDown = (e) => {
-    emit('keydowns', {type: 'down', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'down', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 //向左
 const keyupShiftLeft = (e) => {
-    emit('keydowns', {type: 'left', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'left', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 //向右
 const keyupShiftRight = (e) => {
-    emit('keydowns', {type: 'right', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'right', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 

+ 24 - 22
src/components/plugins/table-form/hc-form-select-search.vue

@@ -1,43 +1,48 @@
 <template>
-    <el-select :id="keyname" v-model="selectVal" :keyname="keyname" :placeholder="placeholder" clearable filterable
-               @change="formRemoteChange">
-        <el-option v-for="item in selectDatas" :label="item.label" :value="item.value"/>
-    </el-select>
+    <ElSelect
+        :id="keyname" v-model="selectVal" :keyname="keyname" :placeholder="placeholder" clearable filterable
+        @change="formRemoteChange"
+    >
+        <ElOption v-for="item in selectDatas" :key="item.value" :label="item.label" :value="item.value" />
+    </ElSelect>
 </template>
 
 <script setup>
-import {nextTick, ref} from 'vue'
-import {getDapSiteData} from "~api/other"
-import {ElSelect, ElOption} from 'z-element-plus'
-import {getObjValue, getObjVal, arrIndex} from "js-fast-way"
+import { nextTick, ref } from 'vue'
+import { getDapSiteData } from '~api/other'
+import { ElOption, ElSelect } from 'z-element-plus'
+import { arrIndex, getObjVal, getObjValue } from 'js-fast-way'
 
 const props = defineProps({
     val: {
         type: [Number, String],
-        default: ''
+        default: '',
     },
     type: {
         type: [Number, String],
-        default: ''
+        default: '',
     },
     keyname: {
         type: [Number, String],
-        default: ''
+        default: '',
     },
     placeholder: {
         type: [Number, String],
-        default: '搜索'
+        default: '搜索',
     },
     contractId: {
         type: [Number, String],
-        default: ''
+        default: '',
     },
     pkeyId: {
         type: [Number, String],
-        default: ''
+        default: '',
     },
 })
 
+//事件
+const emit = defineEmits(['change'])
+
 //变量
 const selectVal = ref(props.val)
 
@@ -62,10 +67,10 @@ const getDapSiteDataApi = async (key) => {
     if (datas.length > 0) {
         return datas
     } else {
-        const {error, code, data} = await getDapSiteData({
+        const { error, code, data } = await getDapSiteData({
             contractId: props.contractId,
             pkId: props.pkeyId,
-            key: key
+            key: key,
         }, false)
         //处理数据
         const resData = getObjVal(data)
@@ -79,22 +84,19 @@ const getDapSiteDataApi = async (key) => {
 
 //对象转数组
 const objToArr = async (obj) => {
-    let newArr = [];
+    let newArr = []
     Object.keys(obj).forEach(key => {
         newArr.push({
             label: key,
             value: key,
             data: {
-                ...obj[key]
-            }
+                ...obj[key],
+            },
         })
     })
     return newArr
 }
 
-//事件
-const emit = defineEmits(['change'])
-
 //当前被选中的事件
 const formRemoteChange = (val) => {
     const datas = selectDatas.value

+ 24 - 19
src/components/plugins/table-form/hc-form-upload.vue

@@ -1,45 +1,53 @@
 <template>
-    <el-upload v-loading="isLoading" :accept="accept" :action="action" :class="isFocus?'is-focus':''"
-               :disabled="isLoading" :headers="getTokenHeader()" :keyname="isKeyName"
-               :on-error="formUploadError"
-               :on-progress="uploadprogress" :placeholder="placeholder" :show-file-list="false"
-               class="hc-upload-table-form"
-               element-loading-text="上传中..." @exceed="formUploadExceed" @success="formUploadSuccess">
+    <el-upload
+        v-loading="isLoading" :accept="accept" :action="action" :class="isFocus ? 'is-focus' : ''"
+        :disabled="isLoading" :headers="getTokenHeader()" :keyname="isKeyName"
+        :on-error="formUploadError"
+        :on-progress="uploadprogress" :placeholder="placeholder" :show-file-list="false"
+        class="hc-upload-table-form"
+        element-loading-text="上传中..." @exceed="formUploadExceed" @success="formUploadSuccess"
+    >
         <img v-if="isSrc" :src="isSrc" alt="" class="hc-table-form-img">
-        <div v-else class="hc-table-form-icon">点此选择文件并上传</div>
+        <div v-else class="hc-table-form-icon">
+            点此选择文件并上传
+        </div>
         <div v-if="isSrc" class="hc-table-form-del">
-            <el-button plain type="danger" @click.stop="delTableFormFile">删除当前文件</el-button>
+            <el-button plain type="danger" @click.stop="delTableFormFile">
+                删除当前文件
+            </el-button>
         </div>
-        <input :id="isKeyName" v-model="isSrc" class="hc-upload-input-src" @blur="handleBlur" @focus="handleFocus"/>
+        <input :id="isKeyName" v-model="isSrc" class="hc-upload-input-src" @blur="handleBlur" @focus="handleFocus">
     </el-upload>
 </template>
 
 <script setup>
-import {ref, watch} from 'vue'
-import {getTokenHeader} from '~src/api/request/header';
+import { ref, watch } from 'vue'
+import { getTokenHeader } from '~src/api/request/header'
 
 const props = defineProps({
     src: {
         type: [Number, String],
-        default: ''
+        default: '',
     },
     keyname: {
         type: [Number, String],
-        default: ''
+        default: '',
     },
     placeholder: {
         type: [Number, String],
-        default: '相片'
+        default: '相片',
     },
 })
 
+//事件
+const emit = defineEmits(['success', 'del'])
 //变量
 const isLoading = ref(false)
 const isSrc = ref(props.src)
 const isKeyName = ref(props.keyname)
 
-const action = '/api/blade-manager/exceltab/add-buss-imginfo';
-const accept = 'image/png,image/jpg,image/jpeg';
+const action = '/api/blade-manager/exceltab/add-buss-imginfo'
+const accept = 'image/png,image/jpg,image/jpeg'
 
 //监听
 watch(() => [
@@ -50,9 +58,6 @@ watch(() => [
     isKeyName.value = keyname
 })
 
-//事件
-const emit = defineEmits(['success', 'del'])
-
 //上传进度
 const uploadprogress = () => {
     isLoading.value = true

+ 34 - 32
src/components/plugins/table-form/hc-time-picker.vue

@@ -1,19 +1,21 @@
 <template>
-    <el-time-picker :id="keyname"
-                    v-model="modelValues"
-                    :clearable="clearable"
-                    :disabled="disabled"
-                    :format="format"
-                    :keyname="keyname"
-                    :placeholder="placeholder"
-                    :readonly="readonly"
-                    :value-format="valueFormat"
-                    style="width: 100%;height: 100%;"
-                    @change="timePickerChange"
-                    @keydown.shift.up="keyupShiftUp"
-                    @keydown.shift.down="keyupShiftDown"
-                    @keydown.shift.left="keyupShiftLeft"
-                    @keydown.shift.right="keyupShiftRight"></el-time-picker>
+    <ElTimePicker
+        :id="keyname"
+        v-model="modelValues"
+        :clearable="clearable"
+        :disabled="disabled"
+        :format="format"
+        :keyname="keyname"
+        :placeholder="placeholder"
+        :readonly="readonly"
+        :value-format="valueFormat"
+        style="width: 100%;height: 100%;"
+        @change="timePickerChange"
+        @keydown.shift.up="keyupShiftUp"
+        @keydown.shift.down="keyupShiftDown"
+        @keydown.shift.left="keyupShiftLeft"
+        @keydown.shift.right="keyupShiftRight"
+    />
 </template>
 
 <script>
@@ -23,44 +25,47 @@ export default {
 </script>
 
 <script setup>
-import {ref, watch} from 'vue'
-import {ElTimePicker} from 'z-element-plus'
+import { ref, watch } from 'vue'
+import { ElTimePicker } from 'z-element-plus'
 import 'dayjs/locale/zh-cn'
 
 const props = defineProps({
     modelValue: {
-        type: [Date, String, Number, Array]
+        type: [Date, String, Number, Array],
     },
     format: {
         type: String,
-        default: 'HH:mm:ss'
+        default: 'HH:mm:ss',
     },
     valueFormat: {
         type: String,
-        default: 'HH:mm:ss'
+        default: 'HH:mm:ss',
     },
     keyname: {
         type: String,
-        default: ''
+        default: '',
     },
     readonly: {
         type: Boolean,
-        default: false
+        default: false,
     },
     disabled: {
         type: Boolean,
-        default: false
+        default: false,
     },
     clearable: {
         type: Boolean,
-        default: true
+        default: true,
     },
     placeholder: {
         type: String,
-        default: ''
+        default: '',
     },
 })
 
+//事件
+const emit = defineEmits(['update:modelValue', 'change', 'keydowns'])
+
 //变量
 const modelValues = ref(props.modelValue)
 
@@ -71,9 +76,6 @@ watch(() => [
     modelValues.value = val
 })
 
-//事件
-const emit = defineEmits(['update:modelValue', 'change', 'keydowns'])
-
 const timePickerChange = (val) => {
     emit('update:modelValue', val)
     emit('change', val)
@@ -81,21 +83,21 @@ const timePickerChange = (val) => {
 
 //向上
 const keyupShiftUp = (e) => {
-    emit('keydowns', {type: 'up', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'up', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 //向下
 const keyupShiftDown = (e) => {
-    emit('keydowns', {type: 'down', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'down', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 //向左
 const keyupShiftLeft = (e) => {
-    emit('keydowns', {type: 'left', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'left', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 
 //向右
 const keyupShiftRight = (e) => {
-    emit('keydowns', {type: 'right', name: {target: {id: props.keyname}}, key: props.keyname, e});
+    emit('keydowns', { type: 'right', name: { target: { id: props.keyname } }, key: props.keyname, e })
 }
 </script>

+ 2 - 2
src/config/app.js

@@ -1,8 +1,8 @@
-import theme from './theme';
+import theme from './theme'
 
 //默认配置
 export default {
     theme: 'light', //用户可选择类型:auto,light, dark
     color: theme.color[1],
-    homeTheme: theme.home[4]
+    homeTheme: theme.home[4],
 }

+ 9 - 9
src/config/index.js

@@ -4,22 +4,22 @@ import config from './index.json'
 export default {
     title: '泓创智诚',
     desc: '泓创智诚数字工程档案平台',
-    key: 'client',          // 配置主键,目前用于存储
-    clientId: 'client',     // 客户端id
+    key: 'client', // 配置主键,目前用于存储
+    clientId: 'client', // 客户端id
     clientSecret: 'client_secret', // 客户端密钥
-    tenantMode: true,       // 是否开启租户模式
-    tenantId: "000000",     // 管理组租户编号
-    captchaMode: false,     // 是否开启验证码模式
-    switchMode: false,      // 是否开启部门切换模式
+    tenantMode: true, // 是否开启租户模式
+    tenantId: '000000', // 管理组租户编号
+    captchaMode: false, // 是否开启验证码模式
+    switchMode: false, // 是否开启部门切换模式
     tokenTime: 1740,
     tokenHeader: 'Blade-Auth',
     tokenKey: 'client-access-token',
     refreshTokenKey: 'client-refresh-token',
-    statusWhiteList: [],    //http的status默认放行列表
-    isLog: 'auto',  //是否打印日志
+    statusWhiteList: [], //http的status默认放行列表
+    isLog: 'auto', //是否打印日志
     ...config,
     ossUrl: 'https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com', //oss地址
-    socket: 'wss://business.hcxxy.com/wss/websocket/',  //测试线上
+    socket: 'wss://business.hcxxy.com/wss/websocket/', //测试线上
 
     //这里不再支持配置请求地址,请在 src/config/index.json 文件中配置。
     //相关参数,可查阅 src/config/index.md 文件说明

+ 1 - 1
src/config/index.json

@@ -1,6 +1,6 @@
 {
     "version": "20230607160059",
-    "target": "http://192.168.0.109:8090",
+    "target": "http://47.110.251.215:8090",
     "smsPhone": "",
     "vite": {
         "port": 5174,

+ 16 - 16
src/config/theme.js

@@ -13,23 +13,23 @@ import bg11 from '~src/assets/home/fd8d568edf61d6824a5a2e3e8e4a0ec4.jpg'
 //主题配置
 export default {
     color: [
-        {name: 'green', color: '#1ECC95', label: '森绿'}, {name: 'blue', color: '#0081ff', label: '海蓝'},
-        {name: 'cyan', color: '#37c0fe', label: '天青'}, {name: 'purple', color: '#8044de', label: '姹紫'},
-        {name: 'mauve', color: '#b745cb', label: '木槿'}, {name: 'pink', color: '#e03997', label: '桃粉'},
-        {name: 'red', color: '#e54d42', label: '嫣红'}, {name: 'orange', color: '#f37b1d', label: '橘橙'},
-        {name: 'yellow', color: '#fbbd08', label: '明黄'}, {name: 'brown', color: '#a5673f', label: '棕褐'}
+        { name: 'green', color: '#1ECC95', label: '森绿' }, { name: 'blue', color: '#0081ff', label: '海蓝' },
+        { name: 'cyan', color: '#37c0fe', label: '天青' }, { name: 'purple', color: '#8044de', label: '姹紫' },
+        { name: 'mauve', color: '#b745cb', label: '木槿' }, { name: 'pink', color: '#e03997', label: '桃粉' },
+        { name: 'red', color: '#e54d42', label: '嫣红' }, { name: 'orange', color: '#f37b1d', label: '橘橙' },
+        { name: 'yellow', color: '#fbbd08', label: '明黄' }, { name: 'brown', color: '#a5673f', label: '棕褐' },
     ],
     home: [
-        {name: 'theme-1', bg: bg1},
-        {name: 'theme-2', bg: bg2},
-        {name: 'theme-3', bg: bg3},
-        {name: 'theme-4', bg: bg4},
-        {name: 'theme-5', bg: bg5},
-        {name: 'theme-6', bg: bg6},
-        {name: 'theme-7', bg: bg7},
-        {name: 'theme-8', bg: bg8},
-        {name: 'theme-9', bg: bg9},
-        {name: 'theme-10', bg: bg10},
-        {name: 'theme-11', bg: bg11},
+        { name: 'theme-1', bg: bg1 },
+        { name: 'theme-2', bg: bg2 },
+        { name: 'theme-3', bg: bg3 },
+        { name: 'theme-4', bg: bg4 },
+        { name: 'theme-5', bg: bg5 },
+        { name: 'theme-6', bg: bg6 },
+        { name: 'theme-7', bg: bg7 },
+        { name: 'theme-8', bg: bg8 },
+        { name: 'theme-9', bg: bg9 },
+        { name: 'theme-10', bg: bg10 },
+        { name: 'theme-11', bg: bg11 },
     ],
 }

+ 68 - 63
src/global/components/hc-report-modal/index.vue

@@ -1,112 +1,129 @@
 <template>
-    <el-dialog v-model="isShow" :title="title" class="hc-modal-border" destroy-on-close draggable width="47rem"
-               @closed="cancelReportClick">
+    <el-dialog
+        v-model="isShow" :title="title" class="hc-modal-border" destroy-on-close draggable width="47rem"
+        @closed="cancelReportClick"
+    >
         <el-form ref="formRef" :model="formModel" :rules="formRules" label-width="auto" size="large">
             <el-form-item label="任务名称" prop="taskName">
-                <el-input v-model="formModel.taskName" disabled/>
+                <el-input v-model="formModel.taskName" disabled />
             </el-form-item>
             <el-form-item v-if="isDatas && reportDatas.length > 0" label="审批内容">
                 <div class="task-tag-data-box">
-                    <template v-for="(item,index) in reportDatas" :key="item.id">
-                        <el-tag closable size="default" type="info" @close="taskTagClose(index)">{{ item.name }}
+                    <template v-for="(item, index) in reportDatas" :key="item.id">
+                        <el-tag closable size="default" type="info" @close="taskTagClose(index)">
+                            {{ item.name }}
                         </el-tag>
                     </template>
                 </div>
             </el-form-item>
             <el-form-item label="任务描述" prop="taskContent">
-                <el-input v-model="formModel.taskContent" :autosize="{ minRows: 3, maxRows: 5 }" placeholder="请输入任务描述"
-                          type="textarea"/>
+                <el-input
+                    v-model="formModel.taskContent" :autosize="{ minRows: 3, maxRows: 5 }"
+                    placeholder="请输入任务描述"
+                    type="textarea"
+                />
             </el-form-item>
             <el-form-item label="任务流程" prop="fixedFlowId">
                 <el-select v-model="formModel.fixedFlowId" block @change="handleProcessValue">
-                    <el-option v-for="item in processData" :disabled="item.disabled" :label="item.fixedFlowName"
-                               :value="item.id"/>
+                    <el-option
+                        v-for="item in processData" :disabled="item.disabled" :label="item.fixedFlowName"
+                        :value="item.id"
+                    />
                 </el-select>
             </el-form-item>
             <el-form-item v-if="diyProcessUser" label="任务人" prop="userTasks">
-                <HcTasksUser :contractId="contractId" :projectId="projectId" :type="type" :typeData="typeData"
-                             ui="w-full" @change="diyProcessUserChange"/>
+                <HcTasksUser
+                    :contract-id="contractId" :project-id="projectId" :type="type" :type-data="typeData"
+                    ui="w-full" @change="diyProcessUserChange"
+                />
             </el-form-item>
             <el-form-item v-else label="任务人">
-                <div class="form-item-div">{{ linkUserJoinString }}</div>
+                <div class="form-item-div">
+                    {{ linkUserJoinString }}
+                </div>
             </el-form-item>
             <el-form-item label="上报批次">
-                <HcCounter v-model="formModel.batch"/>
+                <HcCounter v-model="formModel.batch" />
             </el-form-item>
             <el-form-item label="限定审批时间">
-                <HcCounter v-model="formModel.restrictDay" text="(天)"/>
+                <HcCounter v-model="formModel.restrictDay" text="(天)" />
             </el-form-item>
         </el-form>
         <template #footer>
             <div class="dialog-footer">
-                <el-button size="large" @click="cancelReportClick">取消</el-button>
-                <el-button :loading="formReportLoading" hc-btn type="primary" @click="formReportClick">提交</el-button>
+                <el-button size="large" @click="cancelReportClick">
+                    取消
+                </el-button>
+                <el-button :loading="formReportLoading" hc-btn type="primary" @click="formReportClick">
+                    提交
+                </el-button>
             </div>
         </template>
     </el-dialog>
 </template>
 
 <script setup>
-import {ref, watch, onMounted} from "vue";
-import tasksFlowApi from '~api/tasks/flow';
-import {ApprovalApi, queryFixedFlow} from '~api/other';
-import {getArrValue, formValidate, arrIndex} from "js-fast-way"
+import { onMounted, ref, watch } from 'vue'
+import tasksFlowApi from '~api/tasks/flow'
+import { ApprovalApi, queryFixedFlow } from '~api/other'
+import { arrIndex, formValidate, getArrValue } from 'js-fast-way'
 
 const props = defineProps({
     show: {
         type: Boolean,
-        default: false
+        default: false,
     },
     title: {
         type: String,
-        default: '上报审批'
+        default: '上报审批',
     },
     taskName: {
         type: String,
-        default: ''
+        default: '',
     },
     ids: {
         type: String,
-        default: null
+        default: null,
     },
     projectId: {
         type: [String, Number],
-        default: ''
+        default: '',
     },
     contractId: {
         type: [String, Number],
-        default: ''
+        default: '',
     },
     url: {
         type: [String, Number],
-        default: ''
+        default: '',
     },
     datas: {
         type: Array,
-        default: () => ([])
+        default: () => ([]),
     },
     isDatas: {
         type: Boolean,
-        default: false
+        default: false,
     },
     addition: {
         type: Object,
-        default: () => ({})
+        default: () => ({}),
     },
     type: { //first,log,wbs
         type: [String, Number],
-        default: ''
+        default: '',
     },
     typeData: {
         type: [String, Number, Array, Object],
-        default: ''
+        default: '',
     },
     trialSelfInspectionRecordId: {
         type: [String, Number],
-        default: ''
-    }
+        default: '',
+    },
 })
 
+const emit = defineEmits(['hide', 'finish', 'tagClose'])
 //变量
 const isShow = ref(props.show)
 const projectId = ref(props.projectId)
@@ -130,24 +147,24 @@ const formModel = ref({
     batch: 1,
     restrictDay: 1,
     trialSelfInspectionRecordId: props.trialSelfInspectionRecordId,
-    ...props.addition
+    ...props.addition,
 })
 const formRules = ref({
     taskContent: {
         required: false,
-        trigger: "blur",
-        message: "请输入任务描述"
+        trigger: 'blur',
+        message: '请输入任务描述',
     },
     fixedFlowId: {
         required: true,
-        trigger: "blur",
-        message: "请选择任务流程"
+        trigger: 'blur',
+        message: '请选择任务流程',
     },
     userTasks: {
         required: true,
-        trigger: "blur",
-        message: "请选择任务人"
-    }
+        trigger: 'blur',
+        message: '请选择任务人',
+    },
 })
 
 //监听
@@ -162,7 +179,7 @@ watch(() => [
     props.type,
     props.typeData,
     props.datas,
-    props.trialSelfInspectionRecordId
+    props.trialSelfInspectionRecordId,
 ], ([val, pid, cid, name, ids, url, addition, type, typeData, datas, trialSelfInspectionRecordId]) => {
     isShow.value = val
     projectId.value = pid
@@ -179,7 +196,7 @@ watch(() => [
         batch: 1,
         restrictDay: 1,
         trialSelfInspectionRecordId: trialSelfInspectionRecordId,
-        ...addition
+        ...addition,
     }
     isTypes.value = type
     typeDatas.value = typeData
@@ -194,7 +211,7 @@ onMounted(() => {
     getProcessDatasApi()
 })
 
-const processDefaultData = [{id: 0, fixedFlowName: '自定义流程', disabled: false}]
+const processDefaultData = [{ id: 0, fixedFlowName: '自定义流程', disabled: false }]
 const getProcessDatasApi = () => {
     if (isShow.value) {
         const type = isTypes.value
@@ -210,10 +227,10 @@ const getProcessDatasApi = () => {
 const linkUserJoinString = ref('')
 const getProcessData = async () => {
     linkUserJoinString.value = ''
-    const {error, code, data} = await tasksFlowApi.getPageData({
+    const { error, code, data } = await tasksFlowApi.getPageData({
         projectId: projectId.value,
         contractId: contractId.value,
-        current: 1, size: 100
+        current: 1, size: 100,
     })
     if (!error && code === 200) {
         const arr = getArrValue(data['records'])
@@ -235,10 +252,10 @@ const queryFixedFlowApi = async (type, datas) => {
     }
     //请求数据
     linkUserJoinString.value = ''
-    const {error, code, data} = await queryFixedFlow({
+    const { error, code, data } = await queryFixedFlow({
         projectId: projectId.value,
         contractId: contractId.value,
-        ...flowJson
+        ...flowJson,
     })
     if (!error && code === 200) {
         const arr = getArrValue(data['records'])
@@ -267,18 +284,6 @@ const diyProcessUserChange = (user) => {
     formModel.value.userTasks = user
 }
 
-//上报批次改变
-const batchUpdateValue = (val) => {
-    formModel.value.batch = val
-}
-
-//上报批次改变
-const restrictDayUpdateValue = (val) => {
-    formModel.value.restrictDay = val
-}
-
-const emit = defineEmits(['hide', 'finish', 'tagClose'])
-
 //审批内容的标签移除
 const taskTagClose = (index) => {
     reportDatas.value.splice(index, 1)
@@ -306,10 +311,10 @@ const formReportLoading = ref(false)
 const batchApprovalApi = async () => {
     formReportLoading.value = true
     //发起请求
-    const {error, code, data} = await ApprovalApi(ApiUrl.value, {
+    const { error, code, data } = await ApprovalApi(ApiUrl.value, {
         projectId: projectId.value,
         contractId: contractId.value,
-        ...formModel.value
+        ...formModel.value,
     })
     linkUserJoinString.value = ''
     formReportLoading.value = false

+ 41 - 40
src/global/components/hc-sms-auth/index.vue

@@ -1,25 +1,27 @@
 <template>
-    <el-dialog v-model="showModal" class="hc-modal-border" destroy-on-close draggable title="短信认证" width="26rem"
-               @closed="cancelClick">
+    <el-dialog
+        v-model="showModal" class="hc-modal-border" destroy-on-close draggable title="短信认证" width="26rem"
+        @closed="cancelClick"
+    >
         <el-form ref="reportFormRef" :model="reportModel" :rules="reportRules" label-width="auto" size="large">
             <el-form-item label="手机号码">
-                <el-input v-model="phoneVal" disabled placeholder="手机号码"/>
+                <el-input v-model="phoneVal" disabled placeholder="手机号码" />
             </el-form-item>
             <el-form-item class="hc-input-button-group" label="验证码" prop="code">
-                <el-input v-model="reportModel.code" placeholder="请输入验证码"/>
+                <el-input v-model="reportModel.code" placeholder="请输入验证码" />
                 <el-button :disabled="isDisabled" size="large" type="primary" @click="getCodeClick">
-                    {{ isDisabled ? '倒计时' + currentTime + 's' : '获取验证码' }}
+                    {{ isDisabled ? `倒计时${currentTime}s` : '获取验证码' }}
                 </el-button>
             </el-form-item>
         </el-form>
         <template #footer>
             <div class="dialog-footer">
                 <el-button size="large" @click="cancelClick">
-                    <HcIcon name="close"/>
+                    <HcIcon name="close" />
                     <span>取消</span>
                 </el-button>
                 <el-button :loading="isLoading" hc-btn type="primary" @click="confirmClick">
-                    <HcIcon name="check"/>
+                    <HcIcon name="check" />
                     <span>确认</span>
                 </el-button>
             </div>
@@ -28,26 +30,28 @@
 </template>
 
 <script setup>
-import {ref, watch} from "vue"
-import {useAppStore} from "~src/store";
-import {sendNotice, saveSmsTimeout} from '~api/other';
-import config from '~src/config/index';
-import {formValidate} from "js-fast-way"
+import { ref, watch } from 'vue'
+import { useAppStore } from '~src/store'
+import { saveSmsTimeout, sendNotice } from '~api/other'
+import config from '~src/config/index'
+import { formValidate } from 'js-fast-way'
 //参数
 const props = defineProps({
     show: {
         type: Boolean,
-        default: false
+        default: false,
     },
     loading: {
         type: Boolean,
-        default: false
+        default: false,
     },
 })
 
+//事件
+const emit = defineEmits(['cancel', 'confirm'])
 //变量
 const userStore = useAppStore()
-const userInfo = ref(userStore.getUserInfo);
+const userInfo = ref(userStore.getUserInfo)
 const phoneVal = ref(config.smsPhone + '' || userInfo.value.phone + '')
 const showModal = ref(props.show)
 const isLoading = ref(props.loading)
@@ -56,7 +60,7 @@ const isLoading = ref(props.loading)
 watch(() => [
     props.show,
     props.loading,
-    userStore.getUserInfo
+    userStore.getUserInfo,
 ], ([show, loading, user]) => {
     userInfo.value = user
     showModal.value = show
@@ -67,7 +71,7 @@ watch(() => [
 const resCode = ref('')
 //表单
 const reportFormRef = ref(null)
-const reportModel = ref({code: null})
+const reportModel = ref({ code: null })
 const reportRules = ref({
     code: {
         required: true,
@@ -83,20 +87,20 @@ const reportRules = ref({
                 callback()
             }
         },
-        trigger: "blur",
+        trigger: 'blur',
     },
 })
 
 //短信验证码
-const isDisabled = ref(false)   //是否开启倒计时
-const totalTime = 60                  //总时间,单位秒
-const recordingTime = ref(0)    //记录时间变量
-const currentTime = ref(0)      //显示时间变量
+const isDisabled = ref(false) //是否开启倒计时
+const totalTime = 60 //总时间,单位秒
+const recordingTime = ref(0) //记录时间变量
+const currentTime = ref(0) //显示时间变量
 
 //获取短信验证码
 const getCodeClick = async () => {
-    const {error, code, msg} = await sendNotice({
-        phone: phoneVal.value
+    const { error, code, msg } = await sendNotice({
+        phone: phoneVal.value,
     }, false)
     //处理数据
     if (!error && code === 200 && msg) {
@@ -106,7 +110,7 @@ const getCodeClick = async () => {
         //开始倒计时
         isDisabled.value = true
         //执行倒计时
-        checkingTime();
+        checkingTime()
         window?.$message?.success('发送成功')
     } else {
         resCode.value = ''
@@ -121,30 +125,27 @@ const checkingTime = () => {
         //判断显示时间是否已到0,判断记录时间是否已到总时间
         if (currentTime.value > 0 && recordingTime.value <= totalTime) {
             //记录时间增加 1
-            recordingTime.value++;
+            recordingTime.value++
             //显示时间,用总时间 - 记录时间
-            currentTime.value = totalTime - recordingTime.value;
+            currentTime.value = totalTime - recordingTime.value
             //1秒钟后,再次执行本方法
             setTimeout(() => {
-                checkingTime();
+                checkingTime()
             }, 1000)
         } else {
             //时间已完成,还原相关变量
-            isDisabled.value = false;		//关闭倒计时
-            recordingTime.value = 0;	//记录时间为0
-            currentTime.value = totalTime;	//显示时间为总时间
+            isDisabled.value = false		//关闭倒计时
+            recordingTime.value = 0	//记录时间为0
+            currentTime.value = totalTime	//显示时间为总时间
         }
     } else {
         //倒计时未开启,初始化默认变量
-        isDisabled.value = false;
-        recordingTime.value = 0;
-        currentTime.value = totalTime;
+        isDisabled.value = false
+        recordingTime.value = 0
+        currentTime.value = totalTime
     }
 }
 
-//事件
-const emit = defineEmits(['cancel', 'confirm'])
-
 //取消
 const cancelClick = () => {
     emit('cancel')
@@ -154,7 +155,7 @@ const cancelClick = () => {
 const confirmClick = async () => {
     const validate = await formValidate(reportFormRef.value)
     if (validate) {
-        saveSmsTimeoutApi()
+        saveSmsTimeoutApi().then()
         emit('confirm')
     }
 }
@@ -162,7 +163,7 @@ const confirmClick = async () => {
 //验证码过期时间
 const saveSmsTimeoutApi = async () => {
     await saveSmsTimeout({
-        code: resCode.value
-    });
+        code: resCode.value,
+    })
 }
 </script>

+ 100 - 66
src/global/components/hc-tasks-user/index.vue

@@ -2,28 +2,38 @@
     <div :class="ui" class="hc-tasks-user">
         <div class="tasks-user-box">
             <div class="tag-user-list" @click="showModalClick">
-                <template v-for="(item,index) in UserDataList" :key="index">
+                <template v-for="(item, index) in UserDataList" :key="index">
                     <el-tag>{{ setCheckboxUserName(item) }}</el-tag>
-                    <HcIcon v-if="(UserDataList.length - 1) > index" name="arrow-right" ui="arrow-icon-tag"/>
+                    <HcIcon v-if="(UserDataList.length - 1) > index" name="arrow-right" ui="arrow-icon-tag" />
                 </template>
-                <div v-if="UserDataList.length <= 0" class="tasks-placeholder"> 点击这里选择任务人</div>
+                <div v-if="UserDataList.length <= 0" class="tasks-placeholder">
+                    点击这里选择任务人
+                </div>
             </div>
         </div>
 
-        <!--选择任务人-->
-        <el-dialog v-model="showModal" class="hc-modal-border hc-modal-nop" destroy-on-close draggable title="选择任务人"
-                   width="62rem">
+        <!-- 选择任务人 -->
+        <el-dialog
+            v-model="showModal" class="hc-modal-border hc-modal-nop" destroy-on-close draggable
+            title="选择任务人"
+            width="62rem"
+        >
             <div class="hc-tasks-user-modal-content-box">
                 <div class="tree-box">
                     <el-scrollbar>
-                        <ElTree :data="ElTreeData" :default-expanded-keys="[0]" :props="ElTreeProps" accordion
-                                class="hc-tree-node-box" highlight-current node-key="roleId" @node-click="ElTreeNodeClick"/>
+                        <ElTree
+                            :data="ElTreeData" :default-expanded-keys="[0]" :props="ElTreeProps" accordion
+                            class="hc-tree-node-box" highlight-current node-key="roleId"
+                            @node-click="ElTreeNodeClick"
+                        />
                     </el-scrollbar>
                 </div>
                 <div class="user-box">
                     <div class="y-user-list-box">
                         <div class="title-box">
-                            <div class="title">可选择</div>
+                            <div class="title">
+                                可选择
+                            </div>
                         </div>
                         <div class="user-list">
                             <el-scrollbar>
@@ -31,8 +41,11 @@
                                     <template v-for="item in signUserList">
                                         <div class="user-item checkbox-li">
                                             <el-checkbox
-                                                :label="`${item['certificateUserName']}-${item['certificateUserId']}`">
-                                                <div class="item-user-name">{{ item['certificateUserName'] }}</div>
+                                                :label="`${item.certificateUserName}-${item.certificateUserId}`"
+                                            >
+                                                <div class="item-user-name">
+                                                    {{ item.certificateUserName }}
+                                                </div>
                                             </el-checkbox>
                                         </div>
                                     </template>
@@ -42,13 +55,18 @@
                     </div>
                     <div class="s-user-list-box">
                         <div class="title-box">
-                            <div class="title">已选择({{ checkboxUserList.length }})</div>
-                            <el-button plain size="small" @click="sequenceModal = true">调整顺序</el-button>
+                            <div class="title">
+                                已选择({{ checkboxUserList.length }})
+                            </div>
+                            <el-button plain size="small" @click="sequenceModal = true">
+                                调整顺序
+                            </el-button>
                         </div>
                         <div class="user-list">
                             <el-scrollbar>
-                                <template v-for="(item,index) in checkboxUserList" :key="index">
-                                    <el-tag closable @close="delCheckboxUser(index)">{{ setCheckboxUserName(item) }}
+                                <template v-for="(item, index) in checkboxUserList" :key="index">
+                                    <el-tag closable @close="delCheckboxUser(index)">
+                                        {{ setCheckboxUserName(item) }}
                                     </el-tag>
                                 </template>
                             </el-scrollbar>
@@ -59,40 +77,54 @@
             <template #footer>
                 <div class="dialog-footer">
                     <el-button size="large" @click="showModal = false">
-                        <HcIcon name="close"/>
+                        <HcIcon name="close" />
                         <span>取消</span>
                     </el-button>
                     <el-button :loading="sureSignUserLoading" hc-btn type="primary" @click="sureSignUserClick">
-                        <HcIcon name="check"/>
+                        <HcIcon name="check" />
                         <span>确定</span>
                     </el-button>
                 </div>
             </template>
         </el-dialog>
 
-        <!--调整顺序-->
-        <el-dialog v-model="sequenceModal" class="hc-modal-border" destroy-on-close draggable title="调整顺序"
-                   width="38rem">
-            <el-alert :closable="false" title="可拖动排序,也可在后面点击图标,切换排序" type="warning"/>
+        <!-- 调整顺序 -->
+        <el-dialog
+            v-model="sequenceModal" class="hc-modal-border" destroy-on-close draggable title="调整顺序"
+            width="38rem"
+        >
+            <el-alert :closable="false" title="可拖动排序,也可在后面点击图标,切换排序" type="warning" />
             <div class="sort-node-body-box list-group header">
                 <div class="list-group-item">
-                    <div class="index-box">序号</div>
-                    <div class="title-box">任务人</div>
-                    <div class="icon-box">排序</div>
+                    <div class="index-box">
+                        序号
+                    </div>
+                    <div class="title-box">
+                        任务人
+                    </div>
+                    <div class="icon-box">
+                        排序
+                    </div>
                 </div>
             </div>
-            <Draggable :list="checkboxUserList" class="sort-node-body-box list-group" ghost-class="ghost" item-key="id"
-                       @end="sortNodeDrag = false" @start="sortNodeDrag = true">
-                <template #item="{element, index}">
+            <Draggable
+                :list="checkboxUserList" class="sort-node-body-box list-group" ghost-class="ghost" item-key="id"
+                @end="sortNodeDrag = false" @start="sortNodeDrag = true"
+            >
+                <template #item="{ element, index }">
                     <div class="list-group-item">
-                        <div class="index-box">{{ index + 1 }}</div>
-                        <div class="title-box">{{ setCheckboxUserName(element) }}</div>
+                        <div class="index-box">
+                            {{ index + 1 }}
+                        </div>
+                        <div class="title-box">
+                            {{ setCheckboxUserName(element) }}
+                        </div>
                         <div class="icon-box">
                             <span class="icon" @click="downSortClick(index)">
-                                <HcIcon name="arrow-down" ui="text-lg"/>
+                                <HcIcon name="arrow-down" ui="text-lg" />
                             </span>
                             <span class="icon" @click="upSortClick(index)">
-                                <HcIcon name="arrow-up" ui="text-lg"/>
+                                <HcIcon name="arrow-up" ui="text-lg" />
                             </span>
                         </div>
                     </div>
@@ -100,8 +132,12 @@
             </Draggable>
             <template #footer>
                 <div class="dialog-footer">
-                    <el-button size="large" @click="sequenceModal = false">取消</el-button>
-                    <el-button hc-btn type="primary" @click="sequenceModal = false">确认</el-button>
+                    <el-button size="large" @click="sequenceModal = false">
+                        取消
+                    </el-button>
+                    <el-button hc-btn type="primary" @click="sequenceModal = false">
+                        确认
+                    </el-button>
                 </div>
             </template>
         </el-dialog>
@@ -109,41 +145,43 @@
 </template>
 
 <script setup>
-import {ref, watch, onMounted} from "vue";
-import tasksFlowApi from '~api/tasks/flow';
-import {getArrValue, deepClone} from "js-fast-way"
-import {checkCustomFlowUserIsEVisaPermissions,checkCustomFlowUserIsEVisaPermissionsquery} from '~api/other';
-import Draggable from "vuedraggable";
+import { onMounted, ref, watch } from 'vue'
+import tasksFlowApi from '~api/tasks/flow'
+import { deepClone, getArrValue } from 'js-fast-way'
+import { checkCustomFlowUserIsEVisaPermissions, checkCustomFlowUserIsEVisaPermissionsquery } from '~api/other'
+import Draggable from 'vuedraggable'
 
 //参数
 const props = defineProps({
     ui: {
         type: String,
-        default: ''
+        default: '',
     },
     //选中的用户数组
     users: {
         type: String,
-        default: ''
+        default: '',
     },
     projectId: {
         type: [String, Number],
-        default: ''
+        default: '',
     },
     contractId: {
         type: [String, Number],
-        default: ''
+        default: '',
     },
     type: { //first,log,wbs
         type: [String, Number],
-        default: ''
+        default: '',
     },
     typeData: {
         type: [String, Number, Array, Object],
-        default: ''
+        default: '',
     },
 })
 
+//事件
+const emit = defineEmits(['change'])
 //变量
 const showModal = ref(false)
 const sequenceModal = ref(false)
@@ -155,12 +193,12 @@ const isTypes = ref(props.type)
 const typeDatas = ref(props.typeData)
 
 //树数据
-const ElTreeProps = {children: 'childRoleList', label: 'roleName'}
+const ElTreeProps = { children: 'childRoleList', label: 'roleName' }
 const ElTreeData = ref([{
     roleName: '全部人员',
     roleId: 0,
     childRoleList: [],
-    signPfxFileList: []
+    signPfxFileList: [],
 }])
 
 //监听
@@ -169,7 +207,7 @@ watch(() => [
     props.projectId,
     props.contractId,
     props.type,
-    props.typeData
+    props.typeData,
 ], ([users, pid, cid, type, data]) => {
     projectId.value = pid
     contractId.value = cid
@@ -204,8 +242,8 @@ const showModalClick = () => {
 //获取系统所有角色划分
 const signUserList = ref([])
 const queryAllRoleList = async () => {
-    const {error, code, data} = await tasksFlowApi.queryAllRoleList({
-        contractId: contractId.value
+    const { error, code, data } = await tasksFlowApi.queryAllRoleList({
+        contractId: contractId.value,
     })
     //处理数据
     if (!error && code === 200) {
@@ -246,7 +284,7 @@ const setCheckboxUserName = (item) => {
 
 //删除已选择的用户
 const delCheckboxUser = (index) => {
-    checkboxUserList.value.splice(index, 1);
+    checkboxUserList.value.splice(index, 1)
 }
 
 //排序
@@ -256,8 +294,8 @@ const downSortClick = (index) => {
     const indexs = index + 1
     const data = checkboxUserList.value
     if (indexs !== data.length) {
-        const tmp = data.splice(indexs, 1);
-        checkboxUserList.value.splice(index, 0, tmp[0]);
+        const tmp = data.splice(indexs, 1)
+        checkboxUserList.value.splice(index, 0, tmp[0])
     } else {
         window?.$message?.warning('已经处于置底,无法下移')
     }
@@ -266,20 +304,17 @@ const downSortClick = (index) => {
 const upSortClick = (index) => {
     const data = checkboxUserList.value || []
     if (index !== 0) {
-        const tmp = data.splice(index - 1, 1);
-        checkboxUserList.value.splice(index, 0, tmp[0]);
+        const tmp = data.splice(index - 1, 1)
+        checkboxUserList.value.splice(index, 0, tmp[0])
     } else {
         window?.$message?.warning('已经处于置顶,无法上移')
     }
 }
 
-//事件
-const emit = defineEmits(['change'])
-
 //确认选择
 const sureSignUserLoading = ref(false)
 const sureSignUserClick = () => {
-    let type = isTypes.value, flowJson = {}, newUser = [], newUserId = [], users = '';
+    let type = isTypes.value, flowJson = {}, newUser = [], newUserId = [], users = ''
     const dataList = deepClone(checkboxUserList.value)
     UserDataList.value = dataList
     if (dataList.length > 0) {
@@ -291,7 +326,7 @@ const sureSignUserClick = () => {
             flowJson['theLogPrimaryKeyId'] = typeDatas.value
         } else if (type === 'wbs') {
             flowJson['privatePKeyId'] = typeDatas.value
-        }else if(type === 'query'){
+        } else if (type === 'query') {
             flowJson['privatePKeyId'] = typeDatas.value
         }
         //封装数据
@@ -309,10 +344,9 @@ const sureSignUserClick = () => {
         //效验人员
         if (type === 'first' || type === 'log' || type === 'wbs') {
             getCheckCustomFlowUserIsEVisaPermissions(flowJson, newUser, newUserId, users)
-        }else if(type === 'query') {
+        } else if (type === 'query') {
             getCheckCustomFlowUserIsEVisaPermissionsquery(flowJson, newUser, newUserId, users)
-        }
-        else {
+        } else {
             showModal.value = false
             sureSignUserLoading.value = false
             emit('change', newUser, newUserId, users)
@@ -324,11 +358,11 @@ const sureSignUserClick = () => {
 
 //检查所选的流程环节处理人是否具有审批权限(三大填报页、日志列表的批量上报、首件列表的批量上报)
 const getCheckCustomFlowUserIsEVisaPermissions = async (flowJson, newUser, newUserId, users) => {
-    const {error, code, data} = await checkCustomFlowUserIsEVisaPermissions({
+    const { error, code, data } = await checkCustomFlowUserIsEVisaPermissions({
         projectId: projectId.value,
         contractId: contractId.value,
         customFlowUserList: newUserId,
-        ...flowJson
+        ...flowJson,
     })
     //处理数据
     sureSignUserLoading.value = false
@@ -341,11 +375,11 @@ const getCheckCustomFlowUserIsEVisaPermissions = async (flowJson, newUser, newUs
 }
 //资料查询页面
 const getCheckCustomFlowUserIsEVisaPermissionsquery = async (flowJson, newUser, newUserId, users) => {
-    const {error, code, data} = await checkCustomFlowUserIsEVisaPermissionsquery({
+    const { error, code, data } = await checkCustomFlowUserIsEVisaPermissionsquery({
         projectId: projectId.value,
         contractId: contractId.value,
         customFlowUserList: newUserId,
-        ...flowJson
+        ...flowJson,
     })
     //处理数据
     sureSignUserLoading.value = false

+ 15 - 11
src/global/components/hc-tooltip/index.vue

@@ -1,26 +1,30 @@
 <template>
-    <el-tooltip :content="btn_Info['textInfo']" placement="top" :disabled="!isBubble || !btn_Info['textInfo']" v-if="btn_Info">
-        <slot></slot>
+    <el-tooltip
+        v-if="btn_Info" :content="btn_Info.textInfo" placement="top"
+        :disabled="!isBubble || !btn_Info.textInfo"
+    >
+        <slot />
     </el-tooltip>
 </template>
 
 <script setup>
-import {ref,watch,onMounted} from "vue";
-import {useAppStore} from "~src/store";
-const useAppState = useAppStore()
+import { onMounted, ref, watch } from 'vue'
+import { useAppStore } from '~src/store'
 
 //参数
 const props = defineProps({
     keys: {
         type: String,
-        default: ''
-    }
+        default: '',
+    },
 })
 
+const useAppState = useAppStore()
+
 //变量
-const btn_Info = ref(false);
-const btn_key = ref(props.keys);
-const isBubble = ref(useAppState.getBubble);
+const btn_Info = ref(false)
+const btn_key = ref(props.keys)
+const isBubble = ref(useAppState.getBubble)
 
 //监听
 watch(() => [
@@ -33,7 +37,7 @@ watch(() => [
 })
 
 //渲染完成
-onMounted(()=> {
+onMounted(() => {
     if (props.keys) {
         btn_Info.value = getButtonsVal(props.keys)
     }

+ 9 - 8
src/global/components/hc-tooltip/item.vue

@@ -1,29 +1,30 @@
 <template>
     <el-tooltip :content="content_tip" placement="top" :popper-class="popperClass" :disabled="!isBubble">
-        <slot></slot>
+        <slot />
     </el-tooltip>
 </template>
 
 <script setup>
-import {ref,watch} from "vue";
-import {useAppStore} from "~src/store";
-const useAppState = useAppStore()
+import { ref, watch } from 'vue'
+import { useAppStore } from '~src/store'
 
 //参数
 const props = defineProps({
     content: {
         type: String,
-        default: ''
+        default: '',
     },
     popperClass: {
         type: String,
-        default: ''
+        default: '',
     },
 })
 
+const useAppState = useAppStore()
+
 //变量
-const content_tip = ref(props.content);
-const isBubble = ref(useAppState.getBubble);
+const content_tip = ref(props.content)
+const isBubble = ref(useAppState.getBubble)
 
 //监听
 watch(() => [

+ 45 - 42
src/global/components/hc-uploads/index.vue

@@ -1,62 +1,68 @@
 <template>
     <div v-loading="spinShow" class="hc-uploads-box">
-        <el-upload ref="uploadRef" v-model:file-list="fileListData" :accept="accept" :action="api + action"
-                   :before-upload="beforeUpload" :data="uploadData" :disabled="uploadDisabled"
-                   :headers="getTokenHeader()" :limit="limit" :multiple="limit > 1" :on-error="uploadError"
-                   :on-exceed="uploadExceed" :on-preview="uploadPreview" :on-progress="uploadprogress"
-                   :on-remove="uploadRemove" :on-success="uploadSuccess" list-type="picture-card">
-            <HcIcon class="hc-upload-icon" name="add"/>
+        <el-upload
+            ref="uploadRef" v-model:file-list="fileListData" :accept="accept" :action="api + action"
+            :before-upload="beforeUpload" :data="uploadData" :disabled="uploadDisabled"
+            :headers="getTokenHeader()" :limit="limit" :multiple="limit > 1" :on-error="uploadError"
+            :on-exceed="uploadExceed" :on-preview="uploadPreview" :on-progress="uploadprogress"
+            :on-remove="uploadRemove" :on-success="uploadSuccess" list-type="picture-card"
+        >
+            <HcIcon class="hc-upload-icon" name="add" />
         </el-upload>
-        <el-image-viewer v-if="showViewer" :initial-index="initialIndex" :url-list="previewFileList"
-                         @close="showViewerClose"/>
+        <el-image-viewer
+            v-if="showViewer" :initial-index="initialIndex" :url-list="previewFileList"
+            @close="showViewerClose"
+        />
     </div>
 </template>
 
 <script setup>
-import {ref, watch, onMounted} from "vue";
-import {getTokenHeader} from '~src/api/request/header';
-import {arrIndex, getObjValue, getObjVal, isFileSize} from "js-fast-way"
-import {genFileId} from "element-plus";
+import { onMounted, ref, watch } from 'vue'
+import { getTokenHeader } from '~src/api/request/header'
+import { arrIndex, getObjVal, getObjValue, isFileSize } from 'js-fast-way'
+import { genFileId } from 'element-plus'
 
 const props = defineProps({
     fileList: {
         type: Array,
-        default: () => ([])
+        default: () => ([]),
     },
     datas: {
         type: Object,
-        default: () => ({})
+        default: () => ({}),
     },
     api: {
         type: String,
-        default: "/api/blade-resource/oss/endpoint/"
+        default: '/api/blade-resource/oss/endpoint/',
     },
     action: {
         type: String,
-        default: "put-file"
+        default: 'put-file',
     },
     accept: {
         type: String,
-        default: "image/png,image/jpg,image/jpeg"
+        default: 'image/png,image/jpg,image/jpeg',
     },
     limit: {
         type: Number,
-        default: 1
+        default: 1,
     },
     size: {
         type: Number,
-        default: 30
+        default: 30,
     },
     viewer: {
         type: Boolean,
-        default: true
+        default: true,
     },
 })
 
+//事件
+const emit = defineEmits(['change', 'progress', 'del', 'preview'])
 //变量
 const uploadRef = ref(null)
 const uploadData = ref(props.datas)
-const fileListData = ref(props.fileList);
+const fileListData = ref(props.fileList)
 const uploadDisabled = ref(false)
 
 //监听
@@ -79,20 +85,17 @@ const showViewerClose = () => {
     showViewer.value = false
 }
 
-//事件
-const emit = defineEmits(['change', 'progress', 'del', 'preview'])
-
 //上传前
 const spinShow = ref(false)
 const beforeFileNum = ref(0)
 const beforeUpload = async (file) => {
     if (isFileSize(file?.size, props.size)) {
-        beforeFileNum.value++;
+        beforeFileNum.value++
         spinShow.value = true
-        return true;
+        return true
     } else {
-        window?.$message?.warning(`文件大小, 不能过${props.size}M!`);
-        return false;
+        window?.$message?.warning(`文件大小, 不能过${props.size}M!`)
+        return false
     }
 }
 
@@ -105,7 +108,7 @@ const uploadExceed = (files) => {
         file.uid = genFileId()
         uploadRef.value?.handleStart(file)
     } else {
-        window?.$message?.warning(`请上传 ${props.accept} 格式的文件,文件大小不超过${props.size}M`);
+        window?.$message?.warning(`请上传 ${props.accept} 格式的文件,文件大小不超过${props.size}M`)
     }
 }
 
@@ -118,11 +121,11 @@ const uploadprogress = () => {
 //上传完成
 const finishFileNum = ref(0)
 const uploadSuccess = (response, uploadFile, uploadFiles) => {
-    finishFileNum.value++;
+    finishFileNum.value++
     if (beforeFileNum.value === finishFileNum.value) {
         let fileList = getUploadFileList(uploadFiles)
         uploadClearFiles()
-        emit('change', {type: 'success', fileList})
+        emit('change', { type: 'success', fileList })
         emit('progress', false)
     }
 }
@@ -130,13 +133,13 @@ const uploadSuccess = (response, uploadFile, uploadFiles) => {
 //上传失败
 const errorFileNum = ref(0)
 const uploadError = () => {
-    errorFileNum.value++;
-    window?.$message?.error('上传失败');
-    const num = finishFileNum.value + errorFileNum.value;
+    errorFileNum.value++
+    window?.$message?.error('上传失败')
+    const num = finishFileNum.value + errorFileNum.value
     if (beforeFileNum.value === num) {
         let fileList = getUploadFileList(fileListData.value)
         uploadClearFiles()
-        emit('change', {type: 'error', fileList})
+        emit('change', { type: 'error', fileList })
         emit('progress', false)
     }
 }
@@ -151,14 +154,14 @@ const uploadClearFiles = () => {
 
 //获取文件URL
 const getUploadFileList = (fileListArr) => {
-    let fileArr = [], fileList = fileListArr ?? [];
+    let fileArr = [], fileList = fileListArr ?? []
     fileList.forEach(item => {
         if (getObjVal(item?.response)) {
             const data = getObjValue(item?.response?.data)
             fileArr.push({
                 ...data,
                 url: data['link'],
-                name: data['originalName']
+                name: data['originalName'],
             })
         } else {
             fileArr.push(item)
@@ -174,20 +177,20 @@ const initialIndex = ref(-1)
 const previewFileList = ref([])
 const uploadPreview = (file) => {
     let fileArr = getUploadFileUrl()
-    const fileList = fileListData.value ?? [];
+    const fileList = fileListData.value ?? []
     const index = arrIndex(fileList, 'uid', file?.uid)
     if (props.viewer) {
         previewFileList.value = fileArr
         initialIndex.value = index
         showViewer.value = true
     } else {
-        emit('preview', {index, fileArr, fileList})
+        emit('preview', { index, fileArr, fileList })
     }
 }
 
 //获取文件URL
 const getUploadFileUrl = () => {
-    let fileArr = [], fileList = fileListData.value ?? [];
+    let fileArr = [], fileList = fileListData.value ?? []
     fileList.forEach(item => {
         if (getObjVal(item?.response)) {
             fileArr.push(item?.response?.data?.link)
@@ -200,13 +203,13 @@ const getUploadFileUrl = () => {
 
 //删除文件
 const uploadRemove = (row) => {
-    let link;
+    let link
     if (getObjVal(row?.response)) {
         link = row?.response?.data?.link
     } else {
         link = row?.url
     }
-    emit('del', {link, row, fileList: fileListData.value})
+    emit('del', { link, row, fileList: fileListData.value })
 }
 </script>
 

+ 42 - 39
src/global/components/table-form/index.vue

@@ -1,65 +1,71 @@
 <template>
-    <div :id="`table-form-item-${keyId}`" v-loading="isLoading" :class="!isTableForm? 'no-scroll-bar' : ''"
-         :style="tableFormStyle" class="hc-table-form-data-item">
+    <div
+        :id="`table-form-item-${keyId}`" v-loading="isLoading" :class="!isTableForm ? 'no-scroll-bar' : ''"
+        :style="tableFormStyle" class="hc-table-form-data-item"
+    >
         <el-scrollbar v-if="isScroll" class="table-form-item-scrollbar">
-            <div :id="`table-form-${keyId}`" class="hc-excel-table-form" @click.capture="excelTableFormClick"/>
+            <div :id="`table-form-${keyId}`" class="hc-excel-table-form" @click.capture="excelTableFormClick" />
         </el-scrollbar>
-        <div v-else :id="`table-form-${keyId}`" class="hc-excel-table-form" @click.capture="excelTableFormClick"/>
+        <div v-else :id="`table-form-${keyId}`" class="hc-excel-table-form" @click.capture="excelTableFormClick" />
         <div v-if="!isTableForm" class="hc-no-table-form">
             <div class="table-form-no">
-                <img :src="notableform" alt=""/>
-                <div class="desc">{{ noTips }}</div>
+                <img :src="notableform" alt="">
+                <div class="desc">
+                    {{ noTips }}
+                </div>
             </div>
         </div>
     </div>
 </template>
 
 <script setup>
-import {ref, watch, onMounted, nextTick} from "vue"
-import HTableForm from "~src/plugins/HTableForm"
+import { nextTick, onMounted, ref, watch } from 'vue'
+import HTableForm from '~src/plugins/HTableForm'
 import notableform from '~src/assets/view/notableform.svg'
-import {getStoreValue, setStoreValue, delStoreValue} from "~uti/storage";
-import {getArrValue, getObjVal, isString, deepClone, arrIndex} from "js-fast-way"
+import { delStoreValue, getStoreValue, setStoreValue } from '~uti/storage'
+import { arrIndex, deepClone, getArrValue, getObjVal, isString } from 'js-fast-way'
 
 //初始
 const props = defineProps({
     pkey: [String, Number],
     noTip: {
         type: [String, Number],
-        default: '暂无表单数据'
+        default: '暂无表单数据',
     },
     html: String,
     form: {
         type: Object,
-        default: () => ({})
+        default: () => ({}),
     },
     cols: {
         type: Array,
-        default: () => ([])
+        default: () => ([]),
     },
     loading: Boolean,
     scroll: {
         type: Boolean,
-        default: true
+        default: true,
     },
     height: {
         type: String,
-        default: '100%'
+        default: '100%',
     },
     width: {
         type: String,
-        default: 'auto'
+        default: 'auto',
     },
     isMessage: {
         type: Boolean,
-        default: true
+        default: true,
     },
     pid: {
         type: String,
-        default: ''
+        default: '',
     },
 })
 
+//事件
+const emit = defineEmits(['rightTap', 'render', 'excelBodyTap'])
 //初始变量
 const keyId = ref(props.pkey)
 const noTips = ref(props.noTip)
@@ -80,7 +86,7 @@ const isTableForm = ref(false)
 
 //监听
 watch(() => [
-    props.pkey, props.noTip, props.scroll, props.loading, props.width, props.height, props.pid
+    props.pkey, props.noTip, props.scroll, props.loading, props.width, props.height, props.pid,
 ], ([pkey, tip, scroll, loading, width, height, pid]) => {
     keyId.value = pkey
     noTips.value = tip
@@ -92,7 +98,7 @@ watch(() => [
 
 //html变动
 watch(() => [
-    props.html
+    props.html,
 ], ([html]) => {
     excelHtml.value = html
     setExcelHtml()
@@ -100,23 +106,23 @@ watch(() => [
 
 //深度监听变动的对象数据
 watch(() => [
-    props.form
+    props.form,
 ], ([val]) => {
     excelForm.value = val
     //console.log('表单数据变动', val)
     setPickerKey()
     setFormData(val)
 }, {
-    deep: true
+    deep: true,
 })
 
 //深度监听按键切换的key列表
 watch(() => [
-    props.cols
+    props.cols,
 ], ([cols]) => {
     colsKeys.value = cols
 }, {
-    deep: true
+    deep: true,
 })
 
 
@@ -133,9 +139,6 @@ const setItemStyle = (width, height) => {
     tableFormStyle.value = `width: ${width}; height: ${height};`
 }
 
-//事件
-const emit = defineEmits(['rightTap', 'render', 'excelBodyTap'])
-
 //表单被点击
 const excelTableFormClick = () => {
     emit('excelBodyTap', keyId.value)
@@ -162,12 +165,12 @@ const setExcelHtml = () => {
 
 //获取模板标签数据
 const getExcelHtml = () => {
-    const pkeyId = keyId.value, pid = activeKey.value;
+    const pkeyId = keyId.value, pid = activeKey.value
     const temp = isString(excelHtml.value) ? excelHtml.value : ''
     if (temp && pkeyId) {
         //渲染表单
         isTableForm.value = true
-        const {app, vm} = HTableForm.createForm({
+        const { app, vm } = HTableForm.createForm({
             pid: pid,
             template: temp,
             keys: colsKeys.value,
@@ -208,13 +211,13 @@ const setTableFormBlurReg = (pkeyId, event, key, reg, val, msg, pid) => {
     const dom = document.getElementById(key)?.parentElement ?? ''
     if (dom) {
         if (val && reg) {
-            let regx = new RegExp(reg);
-            let state = regx.test(val);
+            let regx = new RegExp(reg)
+            let state = regx.test(val)
             if (state) {
                 delete formRegExpJson.value[key]
                 HTableForm.setFormStyle(key, 'hc-red-border', pid)
             } else {
-                formRegExpJson.value[key] = {key, reg, val, msg, state}
+                formRegExpJson.value[key] = { key, reg, val, msg, state }
                 HTableForm.setFormStyle(key, 'hc-red-border', pid, true)
                 window?.$message?.warning(msg)
             }
@@ -234,7 +237,7 @@ const onRightClick = (pkeyId, event, KeyName, pid) => {
     //const specialDom = document.getElementById(KeyName + "")
     const startPos = specialDom?.selectionStart || 0
     const endPos = specialDom?.selectionEnd || 0
-    emit('rightTap', {event, KeyName, startPos, endPos, pkeyId, pid})
+    emit('rightTap', { event, KeyName, startPos, endPos, pkeyId, pid })
 }
 
 const isCtrlKey = ref(false)
@@ -247,7 +250,7 @@ const setShiftTableForm = (key, pid) => {
         const keys = checkKeyList.value
         const index = arrIndex(keys, 'key', key)
         if (index === -1) {
-            keys.push({key: key, val: form[key]})
+            keys.push({ key: key, val: form[key] })
         } else {
             keys.splice(index, 1)
         }
@@ -317,7 +320,7 @@ const setSingleCopyValue = async (checkList, keysList) => {
     const keys = deepClone(keysList)
     const form_val = keys[0]['val']
     for (let i = 0; i < checkList.length; i++) {
-        const {key} = checkList[i]
+        const { key } = checkList[i]
         await setTableFormInfoValue(key, form_val)
         HTableForm.setCheckKeyStyle(key, activeKey.value, true)
     }
@@ -328,7 +331,7 @@ const setSingleCopyValue = async (checkList, keysList) => {
 const setMultipleCheckValue = async (checkList, keysList) => {
     const keys = deepClone(keysList)
     for (let i = 0; i < checkList.length; i++) {
-        const {key, val} = checkList[i]
+        const { key, val } = checkList[i]
         if (keys.length > 0) {
             const form_val = keys[0]['val']
             await setTableFormInfoValue(key, form_val ? form_val : val)
@@ -363,7 +366,7 @@ const setFormData = (data) => {
 
 //获取表单效验数据
 const getRegExpJson = () => {
-    return deepClone(formRegExpJson.value);
+    return deepClone(formRegExpJson.value)
 }
 
 //正则效验
@@ -394,7 +397,7 @@ defineExpose({
     unmountHtml,
     setIsCtrlKey,
     setCopyKeyList,
-    setPasteKeyList
+    setPasteKeyList,
 })
 </script>
 
@@ -403,7 +406,7 @@ defineExpose({
 .hc-table-form-data-item .hc-excel-table-form td,
 .hc-table-form-data-item .hc-excel-table-form td .el-input .el-input__wrapper .el-input__inner,
 .el-form-item.special-form-item .el-form-item__content .el-input .el-input__wrapper .el-input__inner {
-    font-family: "hc-eudc", hc-sans, 宋体,  system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
+    font-family: "hc-eudc", hc-sans, 宋体, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
 }
 
 .hc-table-form-data-item {

+ 14 - 12
src/views/tentative/device/approach.vue

@@ -1,8 +1,10 @@
 <template>
     <div class="hc-page-layout-box">
-        <div :style="'width:' + leftWidth + 'px;'" class="hc-layout-left-box menu">
+        <div :style="`width:${leftWidth}px;`" class="hc-layout-left-box menu">
             <div class="hc-menu-header-box">
-                <div class="text-xl name">设备分类</div>
+                <div class="text-xl name">
+                    设备分类
+                </div>
                 <HcTooltip keys="tentative_device_approach_menu_add">
                     <el-button _icon hc-btn size="small" type="primary" @click="addEditNodeFormModalClick">
                         <HcIcon name="add"/>
@@ -15,7 +17,7 @@
                                   @change="menuChange" @menuTap="contextMenuClick"/>
                 </el-scrollbar>
             </div>
-            <!--左右拖动-->
+            <!-- 左右拖动 -->
             <div class="horizontal-drag-line" @mousedown="onmousedown"/>
         </div>
         <div class="hc-page-content-box">
@@ -95,8 +97,8 @@
             </HcCard>
         </div>
 
-        <!--新增/编辑 节点-->
-        <HcDialog :loading="addEditNodeFormLoading" :show="addEditNodeFormModal" :title="`${addEditNodeFormModel.id?'编辑':'新增'}分类`"
+        <!-- 新增/编辑 节点 -->
+        <HcDialog :loading="addEditNodeFormLoading" :show="addEditNodeFormModal" :title="`${addEditNodeFormModel.id ? '编辑' : '新增'}分类`"
                   widths="30rem" @close="addEditNodeFormModalClose" @save="addEditNodeFormModalSave">
             <el-form ref="addEditNodeFormRef" :model="addEditNodeFormModel" :rules="addEditNodeFormRules"
                      label-position="top" label-width="auto" size="large">
@@ -106,8 +108,8 @@
             </el-form>
         </HcDialog>
 
-        <!--新增/编辑-->
-        <HcDialog :loading="addEditFormLoading" :show="addEditFormModal" :title="`${addEditFormModel.id?'编辑':'新增'}设备信息`"
+        <!-- 新增/编辑 -->
+        <HcDialog :loading="addEditFormLoading" :show="addEditFormModal" :title="`${addEditFormModel.id ? '编辑' : '新增'}设备信息`"
                   widths="50rem" @close="addEditFormModalClose" @save="addEditFormClick">
             <el-form ref="addEditFormRef" :model="addEditFormModel" :rules="addEditFormRules" label-width="auto"
                      size="large">
@@ -123,7 +125,7 @@
                 <div class="hc-form-item">
                     <el-form-item label="设备分类" prop="deviceClassId">
                         <el-select v-model="addEditFormModel.deviceClassId" block>
-                            <el-option v-for="item in typeData" :label="item.className" :value="item.id"/>
+                            <el-option v-for="item in typeData" :key="item.id" :label="item.className" :value="item.id"/>
                         </el-select>
                     </el-form-item>
                     <el-form-item label="测量范围">
@@ -208,11 +210,11 @@
             <div class="hc-import-modal-table-box">
                 <HcTable ref="tableImportRef" :column="tableColumn" :datas="tableImportData"
                          :loading="tableImportLoading" isCheck @selection-change="tableImportSelection">
-                    <template #status="{row}">
-                        {{ row.status == 1 ? '启用中' : '已停用' }}
+                    <template #status="{ row }">
+                        {{ row.status === 1 ? '启用中' : '已停用' }}
                     </template>
-                    <template #isCalibration="{row}">
-                        {{ row.isCalibration == 1 ? '是' : '否' }}
+                    <template #isCalibration="{ row }">
+                        {{ row.isCalibration === 1 ? '是' : '否' }}
                     </template>
                 </HcTable>
             </div>

+ 7 - 7
tailwind.config.js

@@ -1,16 +1,16 @@
 module.exports = {
     content: [
-        "./index.html",
-        "./src/**/*.{vue,js}",
+        './index.html',
+        './src/**/*.{vue,js}',
     ],
     theme: {
         extend: {
             width: {
-                '414': '26rem',
-                '606': '38rem',
-                '750': '47rem',
-                '990': '62rem',
-            }
+                414: '26rem',
+                606: '38rem',
+                750: '47rem',
+                990: '62rem',
+            },
         },
     },
     plugins: [],

+ 14 - 14
vite.config.js

@@ -1,7 +1,7 @@
-import {defineConfig} from 'vite'
+import { defineConfig } from 'vite'
 import vue from '@vitejs/plugin-vue'
-import {resolve} from "path";
-import config from "./src/config";
+import { resolve } from 'path'
+import config from './src/config'
 
 // https://vitejs.dev/config/
 export default defineConfig({
@@ -9,9 +9,9 @@ export default defineConfig({
         extract: true,
         preprocessorOptions: {
             scss: {
-                additionalData: `@import "./src/styles/app/_var.scss";`
-            }
-        }
+                additionalData: '@import "./src/styles/app/_var.scss";',
+            },
+        },
     },
     resolve: {
         alias: {
@@ -20,8 +20,8 @@ export default defineConfig({
             '~com': `${resolve(__dirname, './src/components')}`,
             '~api': resolve(__dirname, './src/api/modules'),
             '~sto': resolve(__dirname, './src/store/modules'),
-            '~uti': resolve(__dirname, './src/utils')
-        }
+            '~uti': resolve(__dirname, './src/utils'),
+        },
     },
     plugins: [
         vue(),
@@ -30,7 +30,7 @@ export default defineConfig({
         rollupOptions: {
             output: {
                 manualChunks(id) {
-                    let libStr = '@vue,tailwindcss,element-plus,z-element-plus,echarts,vue-router,pinia,js-web-screen-shot,js-fast-way';
+                    let libStr = '@vue,tailwindcss,element-plus,z-element-plus,echarts,vue-router,pinia,js-web-screen-shot,js-fast-way'
                     const libs = libStr.split(',')
                     if (id.includes('node_modules')) {
                         const arr = id.toString().split('node_modules/')[1].split('/')
@@ -43,12 +43,12 @@ export default defineConfig({
                 },
                 chunkFileNames: 'static/js1/[name]-[hash].js',
                 entryFileNames: 'static/js2/[name]-[hash].js',
-                assetFileNames: 'static/[ext]/[name]-[hash].[ext]'
+                assetFileNames: 'static/[ext]/[name]-[hash].[ext]',
             },
             brotliSize: false, // 不统计
             target: 'esnext',
-            minify: 'esbuild' // 混淆器,terser构建后文件体积更小
-        }
+            minify: 'esbuild', // 混淆器,terser构建后文件体积更小
+        },
     },
     server: {
         ...config.vite,
@@ -58,7 +58,7 @@ export default defineConfig({
                 changeOrigin: true,
                 target: config.target,
                 rewrite: (path) => path.replace(new RegExp('^/api'), '/'),
-            }
-        }
+            },
+        },
     },
 })

+ 564 - 5
yarn.lock

@@ -2,6 +2,11 @@
 # yarn lockfile v1
 
 
+"@aashutoshrathi/word-wrap@^1.2.3":
+  version "1.2.6"
+  resolved "http://47.110.251.215:9000/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
+  integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
+
 "@alloc/quick-lru@^5.2.0":
   version "5.2.0"
   resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30"
@@ -132,6 +137,38 @@
   resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.17.tgz#2b577b976e6844106715bbe0cdc57cd1528063f9"
   integrity sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==
 
+"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.3.0":
+  version "4.4.0"
+  resolved "http://47.110.251.215:9000/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
+  integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
+  dependencies:
+    eslint-visitor-keys "^3.3.0"
+
+"@eslint-community/regexpp@^4.4.0":
+  version "4.5.1"
+  resolved "http://47.110.251.215:9000/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884"
+  integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==
+
+"@eslint/eslintrc@^2.1.0":
+  version "2.1.0"
+  resolved "http://47.110.251.215:9000/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d"
+  integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==
+  dependencies:
+    ajv "^6.12.4"
+    debug "^4.3.2"
+    espree "^9.6.0"
+    globals "^13.19.0"
+    ignore "^5.2.0"
+    import-fresh "^3.2.1"
+    js-yaml "^4.1.0"
+    minimatch "^3.1.2"
+    strip-json-comments "^3.1.1"
+
+"@eslint/js@8.44.0":
+  version "8.44.0"
+  resolved "http://47.110.251.215:9000/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af"
+  integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==
+
 "@floating-ui/core@^1.2.6":
   version "1.2.6"
   resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.2.6.tgz#d21ace437cc919cdd8f1640302fa8851e65e75c0"
@@ -144,6 +181,25 @@
   dependencies:
     "@floating-ui/core" "^1.2.6"
 
+"@humanwhocodes/config-array@^0.11.10":
+  version "0.11.10"
+  resolved "http://47.110.251.215:9000/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2"
+  integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==
+  dependencies:
+    "@humanwhocodes/object-schema" "^1.2.1"
+    debug "^4.1.1"
+    minimatch "^3.0.5"
+
+"@humanwhocodes/module-importer@^1.0.1":
+  version "1.0.1"
+  resolved "http://47.110.251.215:9000/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
+  integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
+
+"@humanwhocodes/object-schema@^1.2.1":
+  version "1.2.1"
+  resolved "http://47.110.251.215:9000/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
+  integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
+
 "@jridgewell/gen-mapping@^0.3.2":
   version "0.3.3"
   resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
@@ -194,7 +250,7 @@
   resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
   integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
 
-"@nodelib/fs.walk@^1.2.3":
+"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
   version "1.2.8"
   resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
   integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
@@ -351,6 +407,38 @@
   dependencies:
     vue-demi "*"
 
+acorn-jsx@^5.3.2:
+  version "5.3.2"
+  resolved "http://47.110.251.215:9000/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+  integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+
+acorn@^8.9.0:
+  version "8.10.0"
+  resolved "http://47.110.251.215:9000/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
+  integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
+
+ajv@^6.10.0, ajv@^6.12.4:
+  version "6.12.6"
+  resolved "http://47.110.251.215:9000/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+  integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    fast-json-stable-stringify "^2.0.0"
+    json-schema-traverse "^0.4.1"
+    uri-js "^4.2.2"
+
+ansi-regex@^5.0.1:
+  version "5.0.1"
+  resolved "http://47.110.251.215:9000/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-styles@^4.1.0:
+  version "4.3.0"
+  resolved "http://47.110.251.215:9000/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+  dependencies:
+    color-convert "^2.0.1"
+
 any-promise@^1.0.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
@@ -398,6 +486,11 @@ arg@^5.0.2:
   resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
   integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
 
+argparse@^2.0.1:
+  version "2.0.1"
+  resolved "http://47.110.251.215:9000/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+  integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
 async-validator@^4.2.5:
   version "4.2.5"
   resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339"
@@ -523,6 +616,11 @@ buffer@^5.5.0:
     base64-js "^1.3.1"
     ieee754 "^1.1.13"
 
+callsites@^3.0.0:
+  version "3.1.0"
+  resolved "http://47.110.251.215:9000/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+  integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
 camelcase-css@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
@@ -548,6 +646,14 @@ caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464:
   resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz#9bbd35ee44c2480a1e3a3b9f4496f5066817164a"
   integrity sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ==
 
+chalk@^4.0.0:
+  version "4.1.2"
+  resolved "http://47.110.251.215:9000/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
 "chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3:
   version "3.5.3"
   resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
@@ -563,6 +669,18 @@ caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464:
   optionalDependencies:
     fsevents "~2.3.2"
 
+color-convert@^2.0.1:
+  version "2.0.1"
+  resolved "http://47.110.251.215:9000/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+  integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+  dependencies:
+    color-name "~1.1.4"
+
+color-name@~1.1.4:
+  version "1.1.4"
+  resolved "http://47.110.251.215:9000/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
 colord@^2.9.1:
   version "2.9.3"
   resolved "http://47.110.251.215:9000/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43"
@@ -618,6 +736,15 @@ crc32-stream@^4.0.2:
     crc-32 "^1.2.0"
     readable-stream "^3.4.0"
 
+cross-spawn@^7.0.2:
+  version "7.0.3"
+  resolved "http://47.110.251.215:9000/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+  dependencies:
+    path-key "^3.1.0"
+    shebang-command "^2.0.0"
+    which "^2.0.1"
+
 crypto-js@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf"
@@ -747,6 +874,18 @@ dayjs@^1.11.9:
   resolved "http://47.110.251.215:9000/dayjs/-/dayjs-1.11.9.tgz#9ca491933fadd0a60a2c19f6c237c03517d71d1a"
   integrity sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==
 
+debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
+  version "4.3.4"
+  resolved "http://47.110.251.215:9000/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+  integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+  dependencies:
+    ms "2.1.2"
+
+deep-is@^0.1.3:
+  version "0.1.4"
+  resolved "http://47.110.251.215:9000/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+  integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
 delayed-stream@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -762,6 +901,13 @@ dlv@^1.1.3:
   resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
   integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
 
+doctrine@^3.0.0:
+  version "3.0.0"
+  resolved "http://47.110.251.215:9000/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+  integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+  dependencies:
+    esutils "^2.0.2"
+
 dom-serializer@^2.0.0:
   version "2.0.0"
   resolved "http://47.110.251.215:9000/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
@@ -881,11 +1027,125 @@ escape-html@^1.0.3:
   resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
   integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
 
+escape-string-regexp@^4.0.0:
+  version "4.0.0"
+  resolved "http://47.110.251.215:9000/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+  integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
+eslint-plugin-vue@^9.15.1:
+  version "9.15.1"
+  resolved "http://47.110.251.215:9000/eslint-plugin-vue/-/eslint-plugin-vue-9.15.1.tgz#3c09e0edab444b5d4d9239a12a645a0e2e2ea5be"
+  integrity sha512-CJE/oZOslvmAR9hf8SClTdQ9JLweghT6JCBQNrT2Iel1uVw0W0OLJxzvPd6CxmABKCvLrtyDnqGV37O7KQv6+A==
+  dependencies:
+    "@eslint-community/eslint-utils" "^4.3.0"
+    natural-compare "^1.4.0"
+    nth-check "^2.0.1"
+    postcss-selector-parser "^6.0.9"
+    semver "^7.3.5"
+    vue-eslint-parser "^9.3.0"
+    xml-name-validator "^4.0.0"
+
+eslint-scope@^7.1.1, eslint-scope@^7.2.0:
+  version "7.2.0"
+  resolved "http://47.110.251.215:9000/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b"
+  integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==
+  dependencies:
+    esrecurse "^4.3.0"
+    estraverse "^5.2.0"
+
+eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1:
+  version "3.4.1"
+  resolved "http://47.110.251.215:9000/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994"
+  integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==
+
+eslint@^8.44.0:
+  version "8.44.0"
+  resolved "http://47.110.251.215:9000/eslint/-/eslint-8.44.0.tgz#51246e3889b259bbcd1d7d736a0c10add4f0e500"
+  integrity sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==
+  dependencies:
+    "@eslint-community/eslint-utils" "^4.2.0"
+    "@eslint-community/regexpp" "^4.4.0"
+    "@eslint/eslintrc" "^2.1.0"
+    "@eslint/js" "8.44.0"
+    "@humanwhocodes/config-array" "^0.11.10"
+    "@humanwhocodes/module-importer" "^1.0.1"
+    "@nodelib/fs.walk" "^1.2.8"
+    ajv "^6.10.0"
+    chalk "^4.0.0"
+    cross-spawn "^7.0.2"
+    debug "^4.3.2"
+    doctrine "^3.0.0"
+    escape-string-regexp "^4.0.0"
+    eslint-scope "^7.2.0"
+    eslint-visitor-keys "^3.4.1"
+    espree "^9.6.0"
+    esquery "^1.4.2"
+    esutils "^2.0.2"
+    fast-deep-equal "^3.1.3"
+    file-entry-cache "^6.0.1"
+    find-up "^5.0.0"
+    glob-parent "^6.0.2"
+    globals "^13.19.0"
+    graphemer "^1.4.0"
+    ignore "^5.2.0"
+    import-fresh "^3.0.0"
+    imurmurhash "^0.1.4"
+    is-glob "^4.0.0"
+    is-path-inside "^3.0.3"
+    js-yaml "^4.1.0"
+    json-stable-stringify-without-jsonify "^1.0.1"
+    levn "^0.4.1"
+    lodash.merge "^4.6.2"
+    minimatch "^3.1.2"
+    natural-compare "^1.4.0"
+    optionator "^0.9.3"
+    strip-ansi "^6.0.1"
+    strip-json-comments "^3.1.0"
+    text-table "^0.2.0"
+
+espree@^9.3.1, espree@^9.6.0:
+  version "9.6.0"
+  resolved "http://47.110.251.215:9000/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f"
+  integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==
+  dependencies:
+    acorn "^8.9.0"
+    acorn-jsx "^5.3.2"
+    eslint-visitor-keys "^3.4.1"
+
+esquery@^1.4.0, esquery@^1.4.2:
+  version "1.5.0"
+  resolved "http://47.110.251.215:9000/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
+  integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
+  dependencies:
+    estraverse "^5.1.0"
+
+esrecurse@^4.3.0:
+  version "4.3.0"
+  resolved "http://47.110.251.215:9000/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+  integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+  dependencies:
+    estraverse "^5.2.0"
+
+estraverse@^5.1.0, estraverse@^5.2.0:
+  version "5.3.0"
+  resolved "http://47.110.251.215:9000/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+  integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
 estree-walker@^2.0.2:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
   integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
 
+esutils@^2.0.2:
+  version "2.0.3"
+  resolved "http://47.110.251.215:9000/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+  integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+  version "3.1.3"
+  resolved "http://47.110.251.215:9000/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+  integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
 fast-glob@^3.2.12:
   version "3.2.12"
   resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"
@@ -897,6 +1157,16 @@ fast-glob@^3.2.12:
     merge2 "^1.3.0"
     micromatch "^4.0.4"
 
+fast-json-stable-stringify@^2.0.0:
+  version "2.1.0"
+  resolved "http://47.110.251.215:9000/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+  integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@^2.0.6:
+  version "2.0.6"
+  resolved "http://47.110.251.215:9000/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+  integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+
 fastq@^1.6.0:
   version "1.15.0"
   resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
@@ -904,6 +1174,13 @@ fastq@^1.6.0:
   dependencies:
     reusify "^1.0.4"
 
+file-entry-cache@^6.0.1:
+  version "6.0.1"
+  resolved "http://47.110.251.215:9000/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+  dependencies:
+    flat-cache "^3.0.4"
+
 fill-range@^7.0.1:
   version "7.0.1"
   resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
@@ -911,6 +1188,27 @@ fill-range@^7.0.1:
   dependencies:
     to-regex-range "^5.0.1"
 
+find-up@^5.0.0:
+  version "5.0.0"
+  resolved "http://47.110.251.215:9000/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+  integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+  dependencies:
+    locate-path "^6.0.0"
+    path-exists "^4.0.0"
+
+flat-cache@^3.0.4:
+  version "3.0.4"
+  resolved "http://47.110.251.215:9000/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
+  integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
+  dependencies:
+    flatted "^3.1.0"
+    rimraf "^3.0.2"
+
+flatted@^3.1.0:
+  version "3.2.7"
+  resolved "http://47.110.251.215:9000/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
+  integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
+
 follow-redirects@^1.15.0:
   version "1.15.2"
   resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
@@ -976,7 +1274,7 @@ glob@7.1.6:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
-glob@^7.1.4:
+glob@^7.1.3, glob@^7.1.4:
   version "7.2.3"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
   integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -988,11 +1286,28 @@ glob@^7.1.4:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
+globals@^13.19.0:
+  version "13.20.0"
+  resolved "http://47.110.251.215:9000/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82"
+  integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==
+  dependencies:
+    type-fest "^0.20.2"
+
 graceful-fs@^4.2.0:
   version "4.2.11"
   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
   integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
 
+graphemer@^1.4.0:
+  version "1.4.0"
+  resolved "http://47.110.251.215:9000/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
+  integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
+
+has-flag@^4.0.0:
+  version "4.0.0"
+  resolved "http://47.110.251.215:9000/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+  integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
 has@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
@@ -1028,11 +1343,29 @@ ieee754@^1.1.13:
   resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
   integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
 
+ignore@^5.2.0:
+  version "5.2.4"
+  resolved "http://47.110.251.215:9000/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
+  integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
+
 immutable@^4.0.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be"
   integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==
 
+import-fresh@^3.0.0, import-fresh@^3.2.1:
+  version "3.3.0"
+  resolved "http://47.110.251.215:9000/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+  dependencies:
+    parent-module "^1.0.0"
+    resolve-from "^4.0.0"
+
+imurmurhash@^0.1.4:
+  version "0.1.4"
+  resolved "http://47.110.251.215:9000/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+  integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+
 inflight@^1.0.4:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -1065,7 +1398,7 @@ is-extglob@^2.1.1:
   resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
   integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
 
-is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
   version "4.0.3"
   resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
   integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
@@ -1077,11 +1410,21 @@ is-number@^7.0.0:
   resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
   integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
 
+is-path-inside@^3.0.3:
+  version "3.0.3"
+  resolved "http://47.110.251.215:9000/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+  integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
 isarray@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
   integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
 
+isexe@^2.0.0:
+  version "2.0.0"
+  resolved "http://47.110.251.215:9000/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+  integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
 jiti@^1.18.2:
   version "1.18.2"
   resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.18.2.tgz#80c3ef3d486ebf2450d9335122b32d121f2a83cd"
@@ -1114,6 +1457,23 @@ js-web-screen-shot@^1.9.8:
   dependencies:
     html2canvas "1.4.1"
 
+js-yaml@^4.1.0:
+  version "4.1.0"
+  resolved "http://47.110.251.215:9000/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+  integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+  dependencies:
+    argparse "^2.0.1"
+
+json-schema-traverse@^0.4.1:
+  version "0.4.1"
+  resolved "http://47.110.251.215:9000/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+  integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-stable-stringify-without-jsonify@^1.0.1:
+  version "1.0.1"
+  resolved "http://47.110.251.215:9000/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+  integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+
 lazystream@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638"
@@ -1121,6 +1481,14 @@ lazystream@^1.0.0:
   dependencies:
     readable-stream "^2.0.5"
 
+levn@^0.4.1:
+  version "0.4.1"
+  resolved "http://47.110.251.215:9000/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+  integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+  dependencies:
+    prelude-ls "^1.2.1"
+    type-check "~0.4.0"
+
 lilconfig@^2.0.5, lilconfig@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
@@ -1131,6 +1499,13 @@ lines-and-columns@^1.1.6:
   resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
   integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
 
+locate-path@^6.0.0:
+  version "6.0.0"
+  resolved "http://47.110.251.215:9000/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+  integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+  dependencies:
+    p-locate "^5.0.0"
+
 lodash-es@^4.17.21:
   version "4.17.21"
   resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
@@ -1166,6 +1541,11 @@ lodash.memoize@^4.1.2:
   resolved "http://47.110.251.215:9000/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
   integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
 
+lodash.merge@^4.6.2:
+  version "4.6.2"
+  resolved "http://47.110.251.215:9000/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+  integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
 lodash.union@^4.6.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
@@ -1181,6 +1561,13 @@ lodash@^4.17.21:
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
   integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
 
+lru-cache@^6.0.0:
+  version "6.0.0"
+  resolved "http://47.110.251.215:9000/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+  dependencies:
+    yallist "^4.0.0"
+
 magic-string@^0.30.0:
   version "0.30.0"
   resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.0.tgz#fd58a4748c5c4547338a424e90fa5dd17f4de529"
@@ -1228,7 +1615,7 @@ mime-types@^2.1.12:
   dependencies:
     mime-db "1.52.0"
 
-minimatch@^3.0.4, minimatch@^3.1.1:
+minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
   version "3.1.2"
   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
   integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -1242,6 +1629,11 @@ minimatch@^5.1.0:
   dependencies:
     brace-expansion "^2.0.1"
 
+ms@2.1.2:
+  version "2.1.2"
+  resolved "http://47.110.251.215:9000/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
 mz@^2.7.0:
   version "2.7.0"
   resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
@@ -1256,6 +1648,11 @@ nanoid@^3.3.6:
   resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
   integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
 
+natural-compare@^1.4.0:
+  version "1.4.0"
+  resolved "http://47.110.251.215:9000/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+  integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+
 node-releases@^2.0.12:
   version "2.0.12"
   resolved "http://47.110.251.215:9000/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039"
@@ -1310,11 +1707,54 @@ once@^1.3.0, once@^1.4.0:
   dependencies:
     wrappy "1"
 
+optionator@^0.9.3:
+  version "0.9.3"
+  resolved "http://47.110.251.215:9000/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
+  integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==
+  dependencies:
+    "@aashutoshrathi/word-wrap" "^1.2.3"
+    deep-is "^0.1.3"
+    fast-levenshtein "^2.0.6"
+    levn "^0.4.1"
+    prelude-ls "^1.2.1"
+    type-check "^0.4.0"
+
+p-limit@^3.0.2:
+  version "3.1.0"
+  resolved "http://47.110.251.215:9000/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+  integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+  dependencies:
+    yocto-queue "^0.1.0"
+
+p-locate@^5.0.0:
+  version "5.0.0"
+  resolved "http://47.110.251.215:9000/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+  integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+  dependencies:
+    p-limit "^3.0.2"
+
+parent-module@^1.0.0:
+  version "1.0.1"
+  resolved "http://47.110.251.215:9000/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+  integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+  dependencies:
+    callsites "^3.0.0"
+
+path-exists@^4.0.0:
+  version "4.0.0"
+  resolved "http://47.110.251.215:9000/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+  integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
 path-is-absolute@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
   integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
 
+path-key@^3.1.0:
+  version "3.1.1"
+  resolved "http://47.110.251.215:9000/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
 path-parse@^1.0.7:
   version "1.0.7"
   resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
@@ -1568,7 +2008,7 @@ postcss-selector-parser@^6.0.11:
     cssesc "^3.0.0"
     util-deprecate "^1.0.2"
 
-postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5:
+postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9:
   version "6.0.13"
   resolved "http://47.110.251.215:9000/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b"
   integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==
@@ -1623,6 +2063,11 @@ postcss@^8.4.24:
     picocolors "^1.0.0"
     source-map-js "^1.0.2"
 
+prelude-ls@^1.2.1:
+  version "1.2.1"
+  resolved "http://47.110.251.215:9000/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
 process-nextick-args@~2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -1633,6 +2078,11 @@ proxy-from-env@^1.1.0:
   resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
   integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
 
+punycode@^2.1.0:
+  version "2.3.0"
+  resolved "http://47.110.251.215:9000/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
+  integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
+
 queue-microtask@^1.2.2:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@@ -1681,6 +2131,11 @@ readdirp@~3.6.0:
   dependencies:
     picomatch "^2.2.1"
 
+resolve-from@^4.0.0:
+  version "4.0.0"
+  resolved "http://47.110.251.215:9000/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+  integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
 resolve@^1.1.7, resolve@^1.22.2:
   version "1.22.2"
   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
@@ -1695,6 +2150,13 @@ reusify@^1.0.4:
   resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
   integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
 
+rimraf@^3.0.2:
+  version "3.0.2"
+  resolved "http://47.110.251.215:9000/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+  dependencies:
+    glob "^7.1.3"
+
 rollup@^3.21.0:
   version "3.21.0"
   resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.21.0.tgz#0a71517db56e150222670f88e5e7acfa4fede7c8"
@@ -1728,6 +2190,25 @@ sass@^1.63.6:
     immutable "^4.0.0"
     source-map-js ">=0.6.2 <2.0.0"
 
+semver@^7.3.5, semver@^7.3.6:
+  version "7.5.4"
+  resolved "http://47.110.251.215:9000/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
+  integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
+  dependencies:
+    lru-cache "^6.0.0"
+
+shebang-command@^2.0.0:
+  version "2.0.0"
+  resolved "http://47.110.251.215:9000/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+  integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+  dependencies:
+    shebang-regex "^3.0.0"
+
+shebang-regex@^3.0.0:
+  version "3.0.0"
+  resolved "http://47.110.251.215:9000/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+  integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
 simple-uploader.js@^0.6.0:
   version "0.6.0"
   resolved "http://47.110.251.215:9000/simple-uploader.js/-/simple-uploader.js-0.6.0.tgz#55724264c89ff70df4a9855bcd28eb92f0b88ced"
@@ -1772,6 +2253,18 @@ string_decoder@~1.1.1:
   dependencies:
     safe-buffer "~5.1.0"
 
+strip-ansi@^6.0.1:
+  version "6.0.1"
+  resolved "http://47.110.251.215:9000/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+  dependencies:
+    ansi-regex "^5.0.1"
+
+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+  version "3.1.1"
+  resolved "http://47.110.251.215:9000/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+  integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
 stylehacks@^6.0.0:
   version "6.0.0"
   resolved "http://47.110.251.215:9000/stylehacks/-/stylehacks-6.0.0.tgz#9fdd7c217660dae0f62e14d51c89f6c01b3cb738"
@@ -1793,6 +2286,13 @@ sucrase@^3.32.0:
     pirates "^4.0.1"
     ts-interface-checker "^0.1.9"
 
+supports-color@^7.1.0:
+  version "7.2.0"
+  resolved "http://47.110.251.215:9000/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+  integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+  dependencies:
+    has-flag "^4.0.0"
+
 supports-preserve-symlinks-flag@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
@@ -1857,6 +2357,11 @@ text-segmentation@^1.0.3:
   dependencies:
     utrie "^1.0.2"
 
+text-table@^0.2.0:
+  version "0.2.0"
+  resolved "http://47.110.251.215:9000/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+  integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+
 thenify-all@^1.0.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
@@ -1888,6 +2393,18 @@ tslib@2.3.0:
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
   integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
 
+type-check@^0.4.0, type-check@~0.4.0:
+  version "0.4.0"
+  resolved "http://47.110.251.215:9000/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+  integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+  dependencies:
+    prelude-ls "^1.2.1"
+
+type-fest@^0.20.2:
+  version "0.20.2"
+  resolved "http://47.110.251.215:9000/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
 update-browserslist-db@^1.0.10, update-browserslist-db@^1.0.11:
   version "1.0.11"
   resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940"
@@ -1896,6 +2413,13 @@ update-browserslist-db@^1.0.10, update-browserslist-db@^1.0.11:
     escalade "^3.1.1"
     picocolors "^1.0.0"
 
+uri-js@^4.2.2:
+  version "4.4.1"
+  resolved "http://47.110.251.215:9000/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+  integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+  dependencies:
+    punycode "^2.1.0"
+
 util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -1929,6 +2453,19 @@ vue-demi@>=0.14.5:
   resolved "http://47.110.251.215:9000/vue-demi/-/vue-demi-0.14.5.tgz#676d0463d1a1266d5ab5cba932e043d8f5f2fbd9"
   integrity sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==
 
+vue-eslint-parser@^9.3.0:
+  version "9.3.1"
+  resolved "http://47.110.251.215:9000/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz#429955e041ae5371df5f9e37ebc29ba046496182"
+  integrity sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==
+  dependencies:
+    debug "^4.3.4"
+    eslint-scope "^7.1.1"
+    eslint-visitor-keys "^3.3.0"
+    espree "^9.3.1"
+    esquery "^1.4.0"
+    lodash "^4.17.21"
+    semver "^7.3.6"
+
 vue-router@^4.2.3:
   version "4.2.3"
   resolved "http://47.110.251.215:9000/vue-router/-/vue-router-4.2.3.tgz#b1680efaea1bf8c45094bd504f4db49ef5b6e8b4"
@@ -1961,16 +2498,38 @@ vuedraggable@^4.1.0:
   dependencies:
     sortablejs "1.14.0"
 
+which@^2.0.1:
+  version "2.0.2"
+  resolved "http://47.110.251.215:9000/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+  integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+  dependencies:
+    isexe "^2.0.0"
+
 wrappy@1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
   integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
 
+xml-name-validator@^4.0.0:
+  version "4.0.0"
+  resolved "http://47.110.251.215:9000/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"
+  integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
+
+yallist@^4.0.0:
+  version "4.0.0"
+  resolved "http://47.110.251.215:9000/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
 yaml@^2.1.1:
   version "2.2.2"
   resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073"
   integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==
 
+yocto-queue@^0.1.0:
+  version "0.1.0"
+  resolved "http://47.110.251.215:9000/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+  integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
 z-element-plus@^1.1.3:
   version "1.1.3"
   resolved "http://47.110.251.215:9000/z-element-plus/-/z-element-plus-1.1.3.tgz#b844be73824bd2c2e8f9ee02616925952b77d66e"