Browse Source

修改环境

bill 3 years ago
parent
commit
73ccb3f8ec

+ 3 - 2
package.json

@@ -12,11 +12,12 @@
     "@simaq/core": "^1.1.0",
     "ant-design-vue": "^3.3.0-beta.3",
     "axios": "^0.27.2",
+    "less": "^4.1.3",
     "mitt": "^3.0.0",
     "vue": "^3.2.37",
     "vue-cropper": "1.0.2",
-    "vuedraggable": "^4.1.0",
-    "vue-router": "^4.1.3"
+    "vue-router": "^4.1.3",
+    "vuedraggable": "^4.1.0"
   },
   "devDependencies": {
     "@types/node": "^18.6.5",

+ 145 - 4
pnpm-lock.yaml

@@ -1,4 +1,4 @@
-lockfileVersion: 5.4
+lockfileVersion: 5.3
 
 specifiers:
   '@simaq/core': ^1.1.0
@@ -6,6 +6,7 @@ specifiers:
   '@vitejs/plugin-vue': ^3.0.0
   ant-design-vue: ^3.3.0-beta.3
   axios: ^0.27.2
+  less: ^4.1.3
   mitt: ^3.0.0
   sass: ^1.54.3
   typescript: ^4.6.4
@@ -20,6 +21,7 @@ dependencies:
   '@simaq/core': 1.1.0
   ant-design-vue: 3.3.0-beta.3_vue@3.2.37
   axios: 0.27.2
+  less: 4.1.3
   mitt: 3.0.0
   vue: 3.2.37
   vue-cropper: 1.0.2
@@ -31,7 +33,7 @@ devDependencies:
   '@vitejs/plugin-vue': 3.0.1_vite@3.0.4+vue@3.2.37
   sass: 1.54.3
   typescript: 4.7.4
-  vite: 3.0.4_sass@1.54.3
+  vite: 3.0.4_less@4.1.3+sass@1.54.3
   vue-tsc: 0.38.9_typescript@4.7.4
 
 packages:
@@ -125,7 +127,7 @@ packages:
       vite: ^3.0.0
       vue: ^3.2.25
     dependencies:
-      vite: 3.0.4_sass@1.54.3
+      vite: 3.0.4_less@4.1.3+sass@1.54.3
       vue: 3.2.37
     dev: true
 
@@ -216,6 +218,7 @@ packages:
     dependencies:
       '@vue/reactivity': 3.2.37
       '@vue/shared': 3.2.37
+    dev: false
 
   /@vue/runtime-dom/3.2.37:
     resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==}
@@ -223,6 +226,7 @@ packages:
       '@vue/runtime-core': 3.2.37
       '@vue/shared': 3.2.37
       csstype: 2.6.20
+    dev: false
 
   /@vue/server-renderer/3.2.37_vue@3.2.37:
     resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==}
@@ -232,6 +236,7 @@ packages:
       '@vue/compiler-ssr': 3.2.37
       '@vue/shared': 3.2.37
       vue: 3.2.37
+    dev: false
 
   /@vue/shared/3.2.37:
     resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==}
@@ -329,6 +334,12 @@ packages:
     resolution: {integrity: sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==}
     dev: false
 
+  /copy-anything/2.0.6:
+    resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==}
+    dependencies:
+      is-what: 3.14.1
+    dev: false
+
   /core-js/3.24.1:
     resolution: {integrity: sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg==}
     requiresBuild: true
@@ -336,11 +347,19 @@ packages:
 
   /csstype/2.6.20:
     resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==}
+    dev: false
 
   /dayjs/1.11.5:
     resolution: {integrity: sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==}
     dev: false
 
+  /debug/3.2.7:
+    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+    dependencies:
+      ms: 2.1.3
+    dev: false
+    optional: true
+
   /delayed-stream/1.0.0:
     resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
     engines: {node: '>=0.4.0'}
@@ -354,6 +373,15 @@ packages:
     resolution: {integrity: sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==}
     dev: false
 
+  /errno/0.1.8:
+    resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==}
+    hasBin: true
+    requiresBuild: true
+    dependencies:
+      prr: 1.0.1
+    dev: false
+    optional: true
+
   /esbuild-android-64/0.14.54:
     resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==}
     engines: {node: '>=12'}
@@ -615,6 +643,12 @@ packages:
       is-glob: 4.0.3
     dev: true
 
+  /graceful-fs/4.2.10:
+    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
+    requiresBuild: true
+    dev: false
+    optional: true
+
   /has/1.0.3:
     resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
     engines: {node: '>= 0.4.0'}
@@ -622,6 +656,22 @@ packages:
       function-bind: 1.1.1
     dev: true
 
+  /iconv-lite/0.6.3:
+    resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
+    engines: {node: '>=0.10.0'}
+    dependencies:
+      safer-buffer: 2.1.2
+    dev: false
+    optional: true
+
+  /image-size/0.5.5:
+    resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==}
+    engines: {node: '>=0.10.0'}
+    hasBin: true
+    requiresBuild: true
+    dev: false
+    optional: true
+
   /immutable/4.1.0:
     resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==}
     dev: true
@@ -661,10 +711,32 @@ packages:
     engines: {node: '>=0.10.0'}
     dev: false
 
+  /is-what/3.14.1:
+    resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==}
+    dev: false
+
   /js-tokens/4.0.0:
     resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
     dev: false
 
+  /less/4.1.3:
+    resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==}
+    engines: {node: '>=6'}
+    hasBin: true
+    dependencies:
+      copy-anything: 2.0.6
+      parse-node-version: 1.0.1
+      tslib: 2.4.0
+    optionalDependencies:
+      errno: 0.1.8
+      graceful-fs: 4.2.10
+      image-size: 0.5.5
+      make-dir: 2.1.0
+      mime: 1.6.0
+      needle: 3.1.0
+      source-map: 0.6.1
+    dev: false
+
   /lodash-es/4.17.21:
     resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
     dev: false
@@ -685,6 +757,16 @@ packages:
     dependencies:
       sourcemap-codec: 1.4.8
 
+  /make-dir/2.1.0:
+    resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
+    engines: {node: '>=6'}
+    requiresBuild: true
+    dependencies:
+      pify: 4.0.1
+      semver: 5.7.1
+    dev: false
+    optional: true
+
   /mime-db/1.52.0:
     resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
     engines: {node: '>= 0.6'}
@@ -697,10 +779,23 @@ packages:
       mime-db: 1.52.0
     dev: false
 
+  /mime/1.6.0:
+    resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+    engines: {node: '>=4'}
+    hasBin: true
+    requiresBuild: true
+    dev: false
+    optional: true
+
   /mitt/3.0.0:
     resolution: {integrity: sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==}
     dev: false
 
+  /ms/2.1.3:
+    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+    dev: false
+    optional: true
+
   /nanoid/3.3.4:
     resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
     engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -710,11 +805,28 @@ packages:
     resolution: {integrity: sha512-jGTwpFRexSH+fxappnGQtN9dspgE2ipa1aOjtR24igG0pv6JCxImIAmrLRHX+zUF5+1wtsFVbKyfP51kIGAVNw==}
     dev: false
 
+  /needle/3.1.0:
+    resolution: {integrity: sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==}
+    engines: {node: '>= 4.4.x'}
+    hasBin: true
+    requiresBuild: true
+    dependencies:
+      debug: 3.2.7
+      iconv-lite: 0.6.3
+      sax: 1.2.4
+    dev: false
+    optional: true
+
   /normalize-path/3.0.0:
     resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
     engines: {node: '>=0.10.0'}
     dev: true
 
+  /parse-node-version/1.0.1:
+    resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==}
+    engines: {node: '>= 0.10'}
+    dev: false
+
   /path-parse/1.0.7:
     resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
     dev: true
@@ -727,6 +839,12 @@ packages:
     engines: {node: '>=8.6'}
     dev: true
 
+  /pify/4.0.1:
+    resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
+    engines: {node: '>=6'}
+    dev: false
+    optional: true
+
   /postcss/8.4.16:
     resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==}
     engines: {node: ^10 || ^12 || >=14}
@@ -735,6 +853,11 @@ packages:
       picocolors: 1.0.0
       source-map-js: 1.0.2
 
+  /prr/1.0.1:
+    resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==}
+    dev: false
+    optional: true
+
   /readdirp/3.6.0:
     resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
     engines: {node: '>=8.10.0'}
@@ -773,6 +896,11 @@ packages:
       tslib: 2.4.0
     dev: false
 
+  /safer-buffer/2.1.2:
+    resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+    dev: false
+    optional: true
+
   /sass/1.54.3:
     resolution: {integrity: sha512-fLodey5Qd41Pxp/Tk7Al97sViYwF/TazRc5t6E65O7JOk4XF8pzwIW7CvCxYVOfJFFI/1x5+elDyBIixrp+zrw==}
     engines: {node: '>=12.0.0'}
@@ -783,12 +911,23 @@ packages:
       source-map-js: 1.0.2
     dev: true
 
+  /sax/1.2.4:
+    resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==}
+    dev: false
+    optional: true
+
   /scroll-into-view-if-needed/2.2.29:
     resolution: {integrity: sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==}
     dependencies:
       compute-scroll-into-view: 1.0.17
     dev: false
 
+  /semver/5.7.1:
+    resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
+    hasBin: true
+    dev: false
+    optional: true
+
   /shallow-equal/1.2.1:
     resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==}
     dev: false
@@ -834,7 +973,7 @@ packages:
     hasBin: true
     dev: true
 
-  /vite/3.0.4_sass@1.54.3:
+  /vite/3.0.4_less@4.1.3+sass@1.54.3:
     resolution: {integrity: sha512-NU304nqnBeOx2MkQnskBQxVsa0pRAH5FphokTGmyy8M3oxbvw7qAXts2GORxs+h/2vKsD+osMhZ7An6yK6F1dA==}
     engines: {node: ^14.18.0 || >=16.0.0}
     hasBin: true
@@ -854,6 +993,7 @@ packages:
         optional: true
     dependencies:
       esbuild: 0.14.54
+      less: 4.1.3
       postcss: 8.4.16
       resolve: 1.22.1
       rollup: 2.77.2
@@ -903,6 +1043,7 @@ packages:
       '@vue/runtime-dom': 3.2.37
       '@vue/server-renderer': 3.2.37_vue@3.2.37
       '@vue/shared': 3.2.37
+    dev: false
 
   /vuedraggable/4.1.0_vue@3.2.37:
     resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==}

+ 0 - 2
src/components/bill-ui/components/cropper/cropper.vue

@@ -66,13 +66,11 @@ const on = {
 }
 
 const clickHandler = async (status) => {
-  console.log(status)
   if (status === 'ok') {
     const data = await Promise.all([
       new Promise(resolve => vmRef.value.getCropBlob(resolve)),
       new Promise(resolve => vmRef.value.getCropData(resolve)),
     ])
-    console.log('emmm', data)
     props.cb(null, data)
   } else {
     props.cb()

+ 0 - 1
src/components/bill-ui/components/input/textarea.vue

@@ -41,7 +41,6 @@ const props = defineProps({
   ...textareaPropsDesc
 })
 
-console.log(props)
 const emit = defineEmits([
   'update:modelValue',
   'focus',

+ 0 - 1
src/components/bill-ui/components/message/index.js

@@ -37,7 +37,6 @@ Message.use = function use(app) {
     const existsShows = []
     const oneShow = config => {
         const key = config.type + config.msg
-        console.log(existsShows)
         if (!existsShows.includes(key)) {
             const index = existsShows.length
             existsShows[index] = key

+ 0 - 1
src/components/bill-ui/components/slide/index.vue

@@ -69,7 +69,6 @@ const extendItems = computed(() => {
 const index = computed(() => getIndex(extendIndex.value))
 
 watchEffect(() => {
-    console.log(props.currentIndex, extendLength.value)
     extendIndex.value = props.currentIndex + extendLength.value
 })
 

+ 0 - 1
src/components/error/index.vue

@@ -10,7 +10,6 @@
 <script setup lang="ts">
 import errImg from './img/err.png'
 
-console.log(errImg)
 </script>
 
 <style lang="scss" scoped src="./style.scss" />

+ 10 - 21
src/components/tagging/list.vue

@@ -1,42 +1,31 @@
 <template>
-  <template v-if="custom.showTaggings">
-  
-    <template v-for="(pos, index) in positions" :key="pos.id">
-      <Sign 
-        v-if="isShowSign(pos.modelId)"
-        @delete="deletePosition(pos)"
-        :tagging="tagging"
-        :scene-pos="pos"
-      />
-    </template>
+  <template v-for="(pos, index) in positions" :key="pos.id">
+    <Sign 
+      v-if="getTaggingPositionIsShow(pos)"
+      @delete="deletePosition(pos)"
+      :tagging="tagging"
+      :scene-pos="pos"
+      :key="pos.id"
+    />
   </template>
 </template>
 
 <script lang="ts" setup>
 import { computed } from 'vue'
 import Sign from './sign.vue'
-import { custom } from '@/env'
 import { 
-  getFuseModelShowVariable, 
-  getFuseModel, 
   getTaggingPositions, 
-  taggingPositions 
+  taggingPositions,
+  getTaggingPositionIsShow
 } from '@/store';
 
 import type { Tagging, TaggingPosition } from '@/store';
 
 const props = defineProps<{ tagging: Tagging }>()
-
-const isShowSign = (modelId: string) => {
-  const model = getFuseModel(modelId)
-  return model?.loaded && getFuseModelShowVariable(model).value
-}
-
 const positions = computed(() => getTaggingPositions(props.tagging))
 
 const deletePosition = (pos: TaggingPosition) => {
   const index = taggingPositions.value.indexOf(pos)
   taggingPositions.value.splice(index, 1)
 }
-
 </script>

+ 1 - 1
src/env/index.ts

@@ -15,7 +15,7 @@ export const bottomBarHeightStack = stackFactory(ref<string>('60px'))
 export const showTaggingsStack = stackFactory(ref<boolean>(true))
 export const showMeasuresStack = stackFactory(ref<boolean>(false))
 export const currentModelStack = stackFactory(ref<FuseModel | null>(null))
-export const showModelsMapStack = stackFactory(ref<Map<FuseModel, boolean>>(new Map))
+export const showModelsMapStack = stackFactory(ref<Map<FuseModel, boolean>>(new Map), true)
 export const modelsChangeStoreStack = stackFactory(ref<boolean>(false))
 export const showTaggingPositionsStack = stackFactory(ref<WeakSet<TaggingPosition>>(new WeakSet()))
 

+ 0 - 1
src/layout/edit/fuse-left-pano.vue

@@ -50,7 +50,6 @@ const modelDelete = (model: FuseModel) => {
   if (~index) {
     fuseModels.value.splice(index, 1)
   }
-  console.log(fuseModels.value.length)
 }
 
 </script>

+ 14 - 1
src/layout/edit/scene-select.vue

@@ -7,6 +7,7 @@
     @cancel="visible = false"
     okText="确定"
     cancelText="取消"
+    class="model-table"
   >
     <div>
       <div className='model-header'>
@@ -94,10 +95,22 @@ const okHandler = createLoadPack(async () => {
 })
 </script>
 
-<style lang="scss" scoped>
+<style lang="less" scoped>
 .model-header {
   display: flex;
   justify-content: flex-end;
   padding-bottom: 24px;
 }
+</style>
+
+<style lang="less">
+.ant-modal-root {
+  @import 'ant-design-vue/dist/antd.less'; // 引入官方提供的 less 样式入口文件
+  @primary-color: #26559B;
+  @menu-item-active-bg: #E6F7FF;
+  @table-selected-row-bg: #E6F7FF;
+  // .ant-table-tbody > tr.ant-table-row-selected > td {
+  //   background: none;
+  // }
+}
 </style>

+ 1 - 1
src/layout/right-pano.vue

@@ -12,7 +12,7 @@
   backdrop-filter: blur(4px);
   top: calc(var(--editor-head-height) + var(--header-top) + 20px);
   right: 20px;
-  z-index: 2000;
+  z-index: 5;
   overflow-y: auto;
   transition: all .3s ease;
   max-height: calc(100% - ( var(--editor-head-height) + var(--header-top) + 40px ));

+ 0 - 1
src/main.ts

@@ -1,5 +1,4 @@
 import { createApp } from 'vue'
-import 'ant-design-vue/dist/antd.css';
 import './style.scss'
 import App from './app.vue'
 import Components from 'bill/index'

+ 0 - 1
src/model/index.ts

@@ -31,7 +31,6 @@ const _loadModel = (() => {
     if (!deepIsRevise(oldModelType, modelType)) {
       return oldResult
     }
-    console.log('加载', modelType)
 
     oldModelType = modelType
     return oldResult = new Promise<any>((resolve, reject) => {

+ 0 - 1
src/model/platform.ts

@@ -116,7 +116,6 @@ export async function exposeFactory(type: ModelType, win?: any): Promise<ModelEx
         },
         async setView(flyData: string) {
           const pose = JSON.parse(flyData)
-          console.log('===>?', pose)
           sdk.Camera.setPose({ dur: 300, ...pose })
         }
       }

+ 2 - 2
src/router/constant.ts

@@ -83,11 +83,11 @@ export const metas = {
 
 
   [RoutesName.summaryShow]: {
-    icon: 'list-scene',
+    icon: 'list-view',
     title: '汇总'
   },
   [RoutesName.viewShow]: {
-    icon: 'list-view',
+    icon: 'list-scene',
     title: '视图'
   },
   [RoutesName.recordShow]: {

+ 0 - 2
src/sdk/association.ts

@@ -69,11 +69,9 @@ const associationModels = (sdk: SDK) => {
   shallowWatchArray(getModels, (models, oldModels) => {
     const { added, deleted } = diffArrayChange(models, oldModels)
     for (const item of added) {
-      console.log('added', item)
       if (getSceneModel(item)) {
         continue;
       }
-      console.log('added load', item)
 
       const itemRaw = toRaw(item)
       const sceneModel = sdk.addModel({

+ 8 - 5
src/store/fuse-model.ts

@@ -64,11 +64,6 @@ export const getFuseModelShowVariable = (model: FuseModel) =>
     }
   })
   
-watchEffect(() => {
-  for (const model of fuseModels.value) {
-    custom.showModelsMap.set(model, model.show)
-  }
-})
 
 export const fuseModelsLoaded = ref(false)
 watchPostEffect(() => {
@@ -152,6 +147,14 @@ export const autoSaveFuseModels = autoSetModeCallback(fuseModels, {
   recovery: recoverFuseModels,
   save: async () => {
     await saveFuseModels()
+
+    for (const model of bcModels) {
+      const currentModel = getFuseModel(model.id)
+      if (currentModel && currentModel.show !== model.show) {
+        custom.showModelsMap.set(currentModel, currentModel.show)
+      }
+    }
+    
     await Promise.all([
       initialTaggings(),
       initialMeasures()

+ 2 - 1
src/store/measure.ts

@@ -1,6 +1,7 @@
 import { ref } from 'vue'
 import { fuseModels, getFuseModel, getFuseModelShowVariable } from './fuse-model'
 import { createTemploraryID, autoSetModeCallback } from './sys'
+import { custom } from '@/env'
 import { 
   addStoreItem, 
   deepIsRevise, 
@@ -34,7 +35,7 @@ export const measures = ref<Measures>([])
 export const getMeasureIsShow = (measure: Measure) =>
   measure.positions.every(({modelId}) => {
     const model = getFuseModel(modelId)
-    return model && getFuseModelShowVariable(model).value
+    return custom.showMeasures && model && model.loaded && getFuseModelShowVariable(model).value
   })
 
 export const createMeasure = (measure: Partial<Measure> = {}): Measure => ({

+ 0 - 1
src/store/record.ts

@@ -75,7 +75,6 @@ const getRecordMergeFiles = (record: Record) => {
 
 export const initialRecords = async () => {
   const serviceRecords = await fetchRecords()
-  console.log(serviceRecords)
   unSetModelUpdate(() => records.value = serviceRecords)
   await Promise.all(records.value.map(initRecordFragmentsByRecord))
   for (const record of records.value) {

+ 9 - 0
src/store/tagging-positions.ts

@@ -1,5 +1,7 @@
 import { ref } from 'vue'
 import { autoSetModeCallback, createTemploraryID } from './sys'
+import { getFuseModel, getFuseModelShowVariable } from './fuse-model'
+import { custom } from '@/env'
 import { 
   fetchTaggingPositions, 
   postAddTaggingPosition,
@@ -31,6 +33,13 @@ export const createTaggingPosition = (position: Partial<TaggingPosition> = {}):
 export const getTaggingPositions = (tagging: Tagging) => 
   taggingPositions.value.filter(position => position.taggingId === tagging.id) || []
 
+
+export const getTaggingPositionIsShow = (position: TaggingPosition) => {
+    const model = getFuseModel(position.modelId)
+    return custom.showTaggings && model && model.loaded && getFuseModelShowVariable(model).value
+}
+
+
 let bcPositions: TaggingPositions = []
 export const getBackupTaggingPositions = () => bcPositions
 export const backupTaggingPositions = () => {

+ 5 - 1
src/store/tagging.ts

@@ -8,7 +8,8 @@ import {
   recoverTaggingPositions,
   backupTaggingPositions,
   taggingPositions,
-  getTaggingPositions
+  getTaggingPositions,
+  getTaggingPositionIsShow
 } from './tagging-positions'
 import { 
   saveTaggingStyles,
@@ -42,6 +43,9 @@ export type Taggings = Tagging[]
 export const taggings = ref<Taggings>([])
 export const getTagging = (id: Tagging['id']) => taggings.value.find(tagging => tagging.id === id)
 
+export const getTaggingIsShow = (tagging: Tagging) => 
+  getTaggingPositions(tagging).some(getTaggingPositionIsShow)
+
 export const createTagging = (tagging: Partial<Tagging> = {}): Tagging => ({
   id: createTemploraryID(),
   title: ``,

+ 54 - 49
src/utils/stack.ts

@@ -1,61 +1,66 @@
-import { computed, shallowReactive, isRef } from 'vue'
+import { computed, shallowReactive, isRef, watch } from "vue";
 
-import type { ComputedRef, UnwrapRef } from 'vue'
+import type { ComputedRef, UnwrapRef } from "vue";
 
 export type Stack<T> = {
-  push: (raw: T) => () => void
-  pop: () => T
-  length: ComputedRef<number>
-  current: ComputedRef<T>
-}
+  push: (raw: T) => () => void;
+  pop: () => T;
+  length: ComputedRef<number>;
+  current: ComputedRef<T>;
+};
 
 // 栈构建
 export const stackFactory = <T>(initVal?: T, debug?: boolean): Stack<T> => {
-  const stack = shallowReactive([]) as Array<T>
+  const stack = shallowReactive([]) as Array<T>;
 
   if (initVal !== void 0) {
-      stack.push(initVal)
+    stack.push(initVal);
   }
-
   return {
-      push(raw: T) {
-          stack.push(raw)
-          return () => {
-            const index = stack.indexOf(raw)
-            ~index && stack.splice(index, 1)
-          }
-      },
-      pop() {
-          let ret = stack[stack.length-- - 1]
-          return ret
-      },
-      current: computed(() => {
-          return stack[stack.length - 1]
-      }),
-      length: computed(() => stack.length),
-  }
-}
+    push(raw: T) {
+      stack.push(raw);
+      return () => {
+        const index = stack.indexOf(raw);
+        ~index && stack.splice(index, 1);
+      };
+    },
+    pop() {
+      let ret = stack[stack.length-- - 1];
+      return ret;
+    },
+    current: computed(() => {
+      return stack[stack.length - 1];
+    }),
+    length: computed(() => stack.length),
+  };
+};
 
-export const flatStacksValue = <T extends { [key in any]: Stack<any> }>(stacks: T) => {
-    const result = {} as { [key in keyof T]: UnwrapRef<T[key]['current']['value']> }
-    const keys = Object.keys(stacks) as Array<keyof T>
+export const flatStacksValue = <T extends { [key in any]: Stack<any> }>(
+  stacks: T
+) => {
+  const result = {} as {
+    [key in keyof T]: UnwrapRef<T[key]["current"]["value"]>;
+  };
+  const keys = Object.keys(stacks) as Array<keyof T>;
 
-    const proxy = new Proxy(result, {
-        get(_, key: keyof T) {
-            if (keys.includes(key)) {
-                return isRef(stacks[key].current.value) ? (stacks[key].current.value as any).value : stacks[key].current.value
-            } else {
-                return stacks[key]
-            }
-        },
-        set(_, key: keyof T, val) {
-            if (isRef(stacks[key].current.value)) {
-                ;(stacks[key].current.value as any).value = val
-            } else {
-                (stacks[key].current.value as any) = val
-            }
-            return true
-        },
-    })
-    return proxy
-}
+  const proxy = new Proxy(result, {
+    get(_, key: keyof T) {
+      if (keys.includes(key)) {
+        return isRef(stacks[key].current.value)
+          ? (stacks[key].current.value as any).value
+          : stacks[key].current.value;
+      } else {
+        return stacks[key];
+      }
+    },
+    set(_, key: keyof T, val) {
+      if (isRef(stacks[key].current.value)) {
+        (stacks[key].current.value as any).value = val;
+      } else {
+        (stacks[key].current.value as any) = val;
+      }
+      return true;
+    },
+  });
+  return proxy;
+};

+ 0 - 2
src/utils/store-help.ts

@@ -158,7 +158,6 @@ export const saveStoreItems = <T extends {id: any}>(
     added
   } = diffStoreItemsChange(newItems.value, oldItems)
 
-  console.log(newItems.value, oldItems, deleted, updated, added)
   const promiseAll: Promise<any>[] = []
   
   if (actions.delete) {
@@ -209,7 +208,6 @@ export const diffStoreItemsChange = <T extends Array<{ id: any }>>(newItems: T,
 
 export const recoverStoreItems = <T extends Array<{ id: any }>>(items: Ref<T>, getBackupItems: () => T) => () => {
   const backupItems = getBackupItems()
-  console.log(backupItems)
   items.value = backupItems.map(oldItem => {
     const model = items.value.find(item => item.id === oldItem.id)
     return model ? Object.assign(model, oldItem) : oldItem

+ 0 - 1
src/views/guide/edit-paths.vue

@@ -185,7 +185,6 @@ const play = async () => {
     changeCurrent(paths.value[0])
     await asyncTimeout(400)
     playSceneGuide(toRaw(paths.value), (index) => {
-      console.log('guide', index)
       current.value = paths.value[index - 1]
     })
   }

+ 0 - 1
src/views/proportion/index.vue

@@ -46,7 +46,6 @@ watch(length, () => {
 })
 
 const resetMeasure = () => {
-  console.log('--startMeasure--')
   scaleSet?.startMeasure()
 }
 

+ 0 - 1
src/views/tagging-position/index.vue

@@ -81,7 +81,6 @@ watchEffect((onCleanup) => {
           ...position,
           taggingId: tagging.value!.id
         })
-        console.log(storePosition)
         taggingPositions.value.push(storePosition)
       }
     }

+ 3 - 14
src/views/tagging-position/sign.vue

@@ -12,7 +12,7 @@
         @click.stop="$emit('delete')"
       />
       <ui-icon 
-        :class="{disabled: disabledFly}"
+        :class="{disabled: !getTaggingPositionIsShow(position)}"
         type="pin" 
         ctrl  
         @click.stop="$emit('fixed')"
@@ -22,22 +22,11 @@
 </template>
 
 <script setup lang="ts">
-import { computed } from 'vue';
-import { 
-  getFuseModel,
-  fuseModels,
-  getFuseModelShowVariable
-} from '@/store'
+import { getTaggingPositionIsShow } from '@/store'
 
 import type { TaggingPosition } from '@/store'
 
-const props = defineProps<{ position: TaggingPosition, title: string }>()
-const disabledFly = computed(() => {
-  const model = getFuseModel(props.position.modelId)
-  console.log(fuseModels.value, props.position.modelId, model, getFuseModelShowVariable(model!).value)
-  return !model || !getFuseModelShowVariable(model).value
-})
-
+defineProps<{ position: TaggingPosition, title: string }>()
 defineEmits<{ 
   (e: 'delete'): void 
   (e: 'fixed'): void

+ 10 - 9
src/views/tagging/sign.vue

@@ -2,7 +2,7 @@
   <ui-group-option 
     class="sign-tagging" 
     :class="{active: selected, edit}" 
-    @click="edit && !disabledFly && emit('select', true)"
+    @click="edit && getTaggingIsShow(tagging) && emit('select', true)"
   >
     <div class="info">
       <img :src="getResource(getFileUrl(tagging.images.length ? tagging.images[0] : style.icon))" v-if="style">
@@ -12,7 +12,13 @@
       </div>
     </div>
     <div class="actions" @click.stop>
-      <ui-icon type="pin" ctrl @click.stop="$emit('select', true)" v-if="!edit"/>
+      <ui-icon 
+         v-if="!edit"
+        type="pin" 
+        ctrl 
+        @click.stop="$emit('select', true)" 
+        :class="{ disabled: !getTaggingIsShow(tagging) }"
+      />
       <template v-else>
         <ui-icon type="pin1" ctrl @click.stop="$emit('fixed')" />
         <ui-more 
@@ -34,7 +40,8 @@ import {
   getTaggingStyle, 
   getTaggingPositions, 
   getFuseModel,
-  getFuseModelShowVariable
+  getFuseModelShowVariable,
+  getTaggingIsShow
 } from '@/store'
 
 import type { Tagging } from '@/store'
@@ -45,11 +52,6 @@ const props = withDefaults(
 )
 const style = computed(() => getTaggingStyle(props.tagging.styleId))
 const positions = computed(() => getTaggingPositions(props.tagging))
-const disabledFly = computed(() => 
-  positions.value
-    .map(position => getFuseModel(position.modelId))
-    .every(model => !model || !getFuseModelShowVariable(model).value)
-)
 
 const emit = defineEmits<{ 
   (e: 'delete'): void 
@@ -108,7 +110,6 @@ watchEffect((onCleanup) => {
     document.documentElement.addEventListener('keyup', keyupHandler, false)
     onCleanup(() => {
       stop()
-      console.log('removeHandler')
       document.documentElement.removeEventListener('keyup', keyupHandler, false)
     })
   }

+ 7 - 0
vite.config.ts

@@ -6,6 +6,13 @@ import { resolve } from 'path'
 // https://vitejs.dev/config/
 export default defineConfig({
   plugins: [vue()],
+  css: {
+    preprocessorOptions: {
+      less: {
+        javascriptEnabled: true
+      }
+    }
+  },
   base: './',
   assetsInclude: ['public/**/*'],
   resolve: {