Browse Source

内业台账树修改

duy 1 năm trước cách đây
mục cha
commit
5d909fad8f
4 tập tin đã thay đổi với 186 bổ sung12 xóa
  1. 1 1
      package.json
  2. 1 1
      src/views/ledger/components/WbsTree.vue
  3. 38 1
      src/views/ledger/write.vue
  4. 146 9
      yarn.lock

+ 1 - 1
package.json

@@ -19,6 +19,7 @@
         "dayjs": "^1.11.10",
         "echarts": "^5.4.3",
         "element-plus": "2.4.1",
+        "hc-vue3-ui": "^2.5.9",
         "js-base64": "^3.7.5",
         "js-fast-way": "0.2.9",
         "js-md5": "^0.8.3",
@@ -39,7 +40,6 @@
         "cssnano": "^6.0.1",
         "eslint": "^8.52.0",
         "eslint-plugin-vue": "^9.18.0",
-        "hc-vue3-ui": "^2.3.4",
         "postcss": "^8.4.31",
         "sass": "^1.69.4",
         "tailwindcss": "3.3.4",

+ 1 - 1
src/views/ledger/components/WbsTree.vue

@@ -151,7 +151,7 @@ const ElTreeLoadNode = async (node, resolve) => {
         primaryKeyId,
         parentId,
         classifyType: classifyType.value,
-        tableOwner:'',
+        tableOwner:'1',
     })
     //处理数据
     if (!error && code === 200) {

+ 38 - 1
src/views/ledger/write.vue

@@ -12,9 +12,15 @@
             </div>
             <div class="hc-tree-box">
                 <el-scrollbar>
-                    <WbsTree
+                    <!-- <WbsTree
                         :auto-expand-keys="treeAutoExpandKeys" :contract-id="contractId" :project-id="projectId"
                         @nodeTap="nodeWbsElTreeClick"
+                    /> -->
+                    <HcLazyTree
+                        is-counts is-type
+                        :auto-expand-keys="treeAutoExpandKeys" 
+                        @load="treeLoadNode"
+                        @nodeLoading="treeNodeLoading" @nodeTap="nodeWbsElTreeClick"
                     />
                 </el-scrollbar>
             </div>
@@ -52,6 +58,8 @@ import HcInternal from './components/internal.vue'
 import HcWeather from './components/weather.vue'
 import HcConstruction from './components/construction.vue'
 import { getStoreValue, setStoreValue } from '~src/utils/storage'
+import queryApi from '~api/data-fill/query'
+import { getArrValue, getObjValue } from 'js-fast-way'
 
 //变量
 const router = useRouter()
@@ -61,6 +69,9 @@ const projectId = ref(useAppState.getProjectId)
 const contractId = ref(useAppState.getContractId)
 const projectInfo = ref(useAppState.getProjectInfo)
 const isCollapse = ref(useAppState.getCollapse)
+const contractInfo = ref(useAppState.getContractInfo)
+const { contractType } = contractInfo.value
+const classifyType = ref(contractType === 2 ? '2' : '1')
 
 //路由参数
 const routerQuery = useRoutes?.query
@@ -76,6 +87,32 @@ watch(() => [
 //自动展开缓存
 const treeAutoExpandKeys = ref([])
 
+
+//懒加载的数据
+const treeLoading = ref(true)
+const treeNodeLoading = () => {
+    treeLoading.value = false
+}
+const treeLoadNode = async ({ node, item, level }, resolve) => {
+    let contractIdRelation = '', parentId = '', primaryKeyId = ''
+    if (level !== 0) {
+        const nodeData = getObjValue(item)
+        contractIdRelation = nodeData?.contractIdRelation || ''
+        parentId = contractIdRelation ? nodeData?.primaryKeyId : nodeData?.id
+        primaryKeyId = nodeData?.id || ''
+    }
+    //获取数据
+    const { data } = await queryApi.queryWbsTreeData({
+        contractId: contractId.value || '',
+        contractIdRelation,
+        primaryKeyId,
+        parentId,
+        classifyType: classifyType.value,
+        tableOwner:classifyType.value,
+    })
+    resolve(getArrValue(data))
+    treeLoading.value = false
+}
 //类型处理
 const sbTableKey = ref(dataType)
 const sbTableData = ref([

+ 146 - 9
yarn.lock

@@ -409,6 +409,16 @@
     estree-walker "^2.0.2"
     source-map-js "^1.0.2"
 
+"@vue/compiler-core@3.3.8":
+  version "3.3.8"
+  resolved "http://47.110.251.215:9000/@vue/compiler-core/-/compiler-core-3.3.8.tgz#301bb60d0245265a88ed5b30e200fbf223acb313"
+  integrity sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==
+  dependencies:
+    "@babel/parser" "^7.23.0"
+    "@vue/shared" "3.3.8"
+    estree-walker "^2.0.2"
+    source-map-js "^1.0.2"
+
 "@vue/compiler-dom@3.3.7":
   version "3.3.7"
   resolved "http://47.110.251.215:9000/@vue/compiler-dom/-/compiler-dom-3.3.7.tgz#a245aa03f9bfcdb537a239bf02842072de0644c9"
@@ -417,6 +427,14 @@
     "@vue/compiler-core" "3.3.7"
     "@vue/shared" "3.3.7"
 
+"@vue/compiler-dom@3.3.8":
+  version "3.3.8"
+  resolved "http://47.110.251.215:9000/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz#09d832514b9b8d9415a3816b065d69dbefcc7e9b"
+  integrity sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==
+  dependencies:
+    "@vue/compiler-core" "3.3.8"
+    "@vue/shared" "3.3.8"
+
 "@vue/compiler-sfc@3.3.7", "@vue/compiler-sfc@^3.3.7":
   version "3.3.7"
   resolved "http://47.110.251.215:9000/@vue/compiler-sfc/-/compiler-sfc-3.3.7.tgz#219d04b3013c7b15fbc536e2279e07810b731cc2"
@@ -433,6 +451,22 @@
     postcss "^8.4.31"
     source-map-js "^1.0.2"
 
+"@vue/compiler-sfc@3.3.8":
+  version "3.3.8"
+  resolved "http://47.110.251.215:9000/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz#40b18e48aa00260950964d1d72157668521be0e1"
+  integrity sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==
+  dependencies:
+    "@babel/parser" "^7.23.0"
+    "@vue/compiler-core" "3.3.8"
+    "@vue/compiler-dom" "3.3.8"
+    "@vue/compiler-ssr" "3.3.8"
+    "@vue/reactivity-transform" "3.3.8"
+    "@vue/shared" "3.3.8"
+    estree-walker "^2.0.2"
+    magic-string "^0.30.5"
+    postcss "^8.4.31"
+    source-map-js "^1.0.2"
+
 "@vue/compiler-ssr@3.3.7":
   version "3.3.7"
   resolved "http://47.110.251.215:9000/@vue/compiler-ssr/-/compiler-ssr-3.3.7.tgz#eff4a70f7ceb800d60e68d208b96a030c0f1b636"
@@ -441,6 +475,14 @@
     "@vue/compiler-dom" "3.3.7"
     "@vue/shared" "3.3.7"
 
+"@vue/compiler-ssr@3.3.8":
+  version "3.3.8"
+  resolved "http://47.110.251.215:9000/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz#136eed54411e4694815d961048a237191063fbce"
+  integrity sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==
+  dependencies:
+    "@vue/compiler-dom" "3.3.8"
+    "@vue/shared" "3.3.8"
+
 "@vue/devtools-api@^6.5.0":
   version "6.5.0"
   resolved "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz"
@@ -457,6 +499,17 @@
     estree-walker "^2.0.2"
     magic-string "^0.30.5"
 
+"@vue/reactivity-transform@3.3.8":
+  version "3.3.8"
+  resolved "http://47.110.251.215:9000/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz#6d07649013b0be5c670f0ab6cc7ddd3150ad03f2"
+  integrity sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==
+  dependencies:
+    "@babel/parser" "^7.23.0"
+    "@vue/compiler-core" "3.3.8"
+    "@vue/shared" "3.3.8"
+    estree-walker "^2.0.2"
+    magic-string "^0.30.5"
+
 "@vue/reactivity@3.3.7":
   version "3.3.7"
   resolved "http://47.110.251.215:9000/@vue/reactivity/-/reactivity-3.3.7.tgz#48b6671a45ba33039da2c0eb25ae702f924486a9"
@@ -464,6 +517,13 @@
   dependencies:
     "@vue/shared" "3.3.7"
 
+"@vue/reactivity@3.3.8":
+  version "3.3.8"
+  resolved "http://47.110.251.215:9000/@vue/reactivity/-/reactivity-3.3.8.tgz#cce8a03a3fd3539c3eeda53e277ba365d160dd4d"
+  integrity sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==
+  dependencies:
+    "@vue/shared" "3.3.8"
+
 "@vue/runtime-core@3.3.7":
   version "3.3.7"
   resolved "http://47.110.251.215:9000/@vue/runtime-core/-/runtime-core-3.3.7.tgz#c1eece1c98f936dc69dd0667d11b464579b128fd"
@@ -472,6 +532,14 @@
     "@vue/reactivity" "3.3.7"
     "@vue/shared" "3.3.7"
 
+"@vue/runtime-core@3.3.8":
+  version "3.3.8"
+  resolved "http://47.110.251.215:9000/@vue/runtime-core/-/runtime-core-3.3.8.tgz#fba5a632cbf2b5d29e171489570149cb6975dcdb"
+  integrity sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw==
+  dependencies:
+    "@vue/reactivity" "3.3.8"
+    "@vue/shared" "3.3.8"
+
 "@vue/runtime-dom@3.3.7":
   version "3.3.7"
   resolved "http://47.110.251.215:9000/@vue/runtime-dom/-/runtime-dom-3.3.7.tgz#e7cf88cc01591fdf6e3164825554fdadc3137ffc"
@@ -481,6 +549,15 @@
     "@vue/shared" "3.3.7"
     csstype "^3.1.2"
 
+"@vue/runtime-dom@3.3.8":
+  version "3.3.8"
+  resolved "http://47.110.251.215:9000/@vue/runtime-dom/-/runtime-dom-3.3.8.tgz#e2d7aa795cf50914dda9a951887765a594b38af4"
+  integrity sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA==
+  dependencies:
+    "@vue/runtime-core" "3.3.8"
+    "@vue/shared" "3.3.8"
+    csstype "^3.1.2"
+
 "@vue/server-renderer@3.3.7":
   version "3.3.7"
   resolved "http://47.110.251.215:9000/@vue/server-renderer/-/server-renderer-3.3.7.tgz#0cc3dc6ad39a54693e6e8f853caa3c7bb43b0364"
@@ -489,11 +566,24 @@
     "@vue/compiler-ssr" "3.3.7"
     "@vue/shared" "3.3.7"
 
+"@vue/server-renderer@3.3.8":
+  version "3.3.8"
+  resolved "http://47.110.251.215:9000/@vue/server-renderer/-/server-renderer-3.3.8.tgz#9b1779010e75783edeed8fcfb97d9c95fc3ac5d2"
+  integrity sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg==
+  dependencies:
+    "@vue/compiler-ssr" "3.3.8"
+    "@vue/shared" "3.3.8"
+
 "@vue/shared@3.3.7":
   version "3.3.7"
   resolved "http://47.110.251.215:9000/@vue/shared/-/shared-3.3.7.tgz#0091852fe5cc4237c8440fe32f3ab6bc920ae6d9"
   integrity sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg==
 
+"@vue/shared@3.3.8":
+  version "3.3.8"
+  resolved "http://47.110.251.215:9000/@vue/shared/-/shared-3.3.8.tgz#f044942142e1d3a395f24132e6203a784838542d"
+  integrity sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==
+
 "@vueuse/core@^9.1.0":
   version "9.13.0"
   resolved "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz"
@@ -644,6 +734,15 @@ axios@^1.5.1:
     form-data "^4.0.0"
     proxy-from-env "^1.1.0"
 
+axios@^1.6.2:
+  version "1.6.2"
+  resolved "http://47.110.251.215:9000/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2"
+  integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==
+  dependencies:
+    follow-redirects "^1.15.0"
+    form-data "^4.0.0"
+    proxy-from-env "^1.1.0"
+
 b4a@^1.6.4:
   version "1.6.4"
   resolved "http://47.110.251.215:9000/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9"
@@ -1062,6 +1161,27 @@ element-plus@2.4.1:
     memoize-one "^6.0.0"
     normalize-wheel-es "^1.2.0"
 
+element-plus@2.4.2:
+  version "2.4.2"
+  resolved "http://47.110.251.215:9000/element-plus/-/element-plus-2.4.2.tgz#2a24632e0904ccd7bbbd64c269704f6b9969833c"
+  integrity sha512-E/HwXX7JF1LPvQSjs0fZ8WblIoc0quoXsRXQZiL7QDq7xJdNGSUaXtdk7xiEv7axPmLfEFtxE5du9fFspDrmJw==
+  dependencies:
+    "@ctrl/tinycolor" "^3.4.1"
+    "@element-plus/icons-vue" "^2.0.6"
+    "@floating-ui/dom" "^1.0.1"
+    "@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.7"
+    "@types/lodash" "^4.14.182"
+    "@types/lodash-es" "^4.17.6"
+    "@vueuse/core" "^9.1.0"
+    async-validator "^4.2.5"
+    dayjs "^1.11.3"
+    escape-html "^1.0.3"
+    lodash "^4.17.21"
+    lodash-es "^4.17.21"
+    lodash-unified "^1.0.2"
+    memoize-one "^6.0.0"
+    normalize-wheel-es "^1.2.0"
+
 entities@^4.2.0:
   version "4.5.0"
   resolved "http://47.110.251.215:9000/entities/-/entities-4.5.0.tgz"
@@ -1435,20 +1555,21 @@ has@^1.0.3:
   dependencies:
     function-bind "^1.1.1"
 
-hc-vue3-ui@^2.3.4:
-  version "2.3.4"
-  resolved "http://47.110.251.215:9000/hc-vue3-ui/-/hc-vue3-ui-2.3.4.tgz#67fe7e125176bbd6031fca55b8ab2d64ca30215e"
-  integrity sha512-6zNLI0alZuJ3HBtkWzB79S5fIUVhVGcM2vnw6d48PZt8GvqBA6yZsAoLTseNza9vHbVeI8Jj3MzKb7TdQpQCrA==
+hc-vue3-ui@^2.5.9:
+  version "2.5.9"
+  resolved "http://47.110.251.215:9000/hc-vue3-ui/-/hc-vue3-ui-2.5.9.tgz#b153087d00aa85d0baa0855b8b3e7f452a8efb32"
+  integrity sha512-PHON9UPoAanISCd71JVMfVe3BI4ERQD2Nj1oTheLP2eS+DDhqriYtcs1YV4/M1YwOmMjC8DzM0AR/pH5rBuIAA==
   dependencies:
-    axios "^1.5.1"
+    axios "^1.6.2"
     dayjs "^1.11.10"
-    element-plus "2.4.1"
-    js-fast-way "^0.2.9"
+    element-plus "2.4.2"
+    js-fast-way "^0.3.7"
     js-md5 "^0.8.3"
     lottie-web "^5.12.2"
     simple-uploader.js "^0.6.0"
     sortablejs "^1.15.0"
-    vue "3.3.7"
+    split.js "^1.6.5"
+    vue "3.3.8"
     vuedraggable "^2.24.3"
 
 html2canvas@1.4.1:
@@ -1559,11 +1680,16 @@ js-base64@^3.7.5:
   resolved "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz"
   integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==
 
-js-fast-way@0.2.9, js-fast-way@^0.2.9:
+js-fast-way@0.2.9:
   version "0.2.9"
   resolved "http://47.110.251.215:9000/js-fast-way/-/js-fast-way-0.2.9.tgz#fd193f1a63644315331274474232d18d2c494c35"
   integrity sha512-ORSz9K/vLBu0Xo9dXgAS9nbqi35BsooPZYj1EpkjOWEVQ8hz3dUFGwTG2r7huZyxxnWd2fXoZwSe0X77aPwhlg==
 
+js-fast-way@^0.3.7:
+  version "0.3.7"
+  resolved "http://47.110.251.215:9000/js-fast-way/-/js-fast-way-0.3.7.tgz#b84c6fe151816f44d8453655bcaf122bf7e3a072"
+  integrity sha512-tdelAmrYlCJIykMv8o2BEFI+v+WKLiJyzPyCVlUGSZgxm2xewlXM4A307lXBPZwC1HdLuwTWctAoLeBNf6RdOg==
+
 js-md5@^0.8.3:
   version "0.8.3"
   resolved "http://47.110.251.215:9000/js-md5/-/js-md5-0.8.3.tgz#921bab7efa95bfc9d62b87ee08a57f8fe4305b69"
@@ -2652,6 +2778,17 @@ vue@3.3.7:
     "@vue/server-renderer" "3.3.7"
     "@vue/shared" "3.3.7"
 
+vue@3.3.8:
+  version "3.3.8"
+  resolved "http://47.110.251.215:9000/vue/-/vue-3.3.8.tgz#532ff071af24f6a69e5ecc53a66858a9ee874ffc"
+  integrity sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==
+  dependencies:
+    "@vue/compiler-dom" "3.3.8"
+    "@vue/compiler-sfc" "3.3.8"
+    "@vue/runtime-dom" "3.3.8"
+    "@vue/server-renderer" "3.3.8"
+    "@vue/shared" "3.3.8"
+
 vuedraggable@^2.24.3:
   version "2.24.3"
   resolved "http://47.110.251.215:9000/vuedraggable/-/vuedraggable-2.24.3.tgz#43c93849b746a24ce503e123d5b259c701ba0d19"