bill 8 months ago
parent
commit
a886c8484b

+ 2 - 0
src/api/constant.ts

@@ -2,10 +2,12 @@ import {namespace} from '@/env'
 
 export enum ResCode {
   TOKEN_INVALID = 4008,
+  UN_AUTH = 4000,
   SUCCESS = 0
 }
 
 export const ResCodeDesc: { [key in ResCode]: string } = {
+  [ResCode.UN_AUTH] : '没有权限',
   [ResCode.TOKEN_INVALID]: 'token已失效',
   [ResCode.SUCCESS]: '请求成功'
 }

+ 6 - 1
src/api/instance.ts

@@ -1,5 +1,5 @@
 import { axiosFactory } from "./setup";
-import { Message } from "bill/index";
+import { Dialog, Message } from "bill/index";
 import { showLoad, hideLoad } from "@/utils";
 import * as URL from "./constant";
 import { ResCode, ResCodeDesc } from "./constant";
@@ -59,6 +59,11 @@ addResErrorHandler((response, data) => {
         : data?.message || data?.msg;
     if (data.code === ResCode.TOKEN_INVALID) {
       gotoLogin();
+    } else if (data.code === ResCode.SUCCESS) {
+      Dialog.alert(msg).then(() => {
+        location.href = `/admin/#/login`
+      })
+      throw msg
     } else {
       Message.error(msg || '服务出现异常,请稍后再试');
     }

+ 1 - 1
src/api/sys.ts

@@ -49,7 +49,7 @@ export interface Case {
   caseTitle: string;
   latAndLong: string;
   mapUrl: string;
-
+  showScenes: boolean
   caseNum: string;
   caseCategory: string;
   caseRegion: string;

+ 164 - 3
src/components/bill-ui/components/icon/iconfont/demo_index.html

@@ -55,6 +55,48 @@
           <ul class="icon_lists dib-box">
           
             <li class="dib">
+              <span class="icon iconfont">&#xe776;</span>
+                <div class="name">list_s</div>
+                <div class="code-name">&amp;#xe776;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe777;</span>
+                <div class="name">message_c</div>
+                <div class="code-name">&amp;#xe777;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe750;</span>
+                <div class="name">pen</div>
+                <div class="code-name">&amp;#xe750;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe64f;</span>
+                <div class="name">show_dot_s</div>
+                <div class="code-name">&amp;#xe64f;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe657;</span>
+                <div class="name">show_dot_n</div>
+                <div class="code-name">&amp;#xe657;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe650;</span>
+                <div class="name">show_pic_n</div>
+                <div class="code-name">&amp;#xe650;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe658;</span>
+                <div class="name">show_pic_s</div>
+                <div class="code-name">&amp;#xe658;</div>
+              </li>
+          
+            <li class="dib">
               <span class="icon iconfont">&#xe72b;</span>
                 <div class="name">show_3d_s</div>
                 <div class="code-name">&amp;#xe72b;</div>
@@ -552,9 +594,9 @@
 <pre><code class="language-css"
 >@font-face {
   font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1723082881853') format('woff2'),
-       url('iconfont.woff?t=1723082881853') format('woff'),
-       url('iconfont.ttf?t=1723082881853') format('truetype');
+  src: url('iconfont.woff2?t=1734504872176') format('woff2'),
+       url('iconfont.woff?t=1734504872176') format('woff'),
+       url('iconfont.ttf?t=1734504872176') format('truetype');
 }
 </code></pre>
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -581,6 +623,69 @@
         <ul class="icon_lists dib-box">
           
           <li class="dib">
+            <span class="icon iconfont icon-list_s"></span>
+            <div class="name">
+              list_s
+            </div>
+            <div class="code-name">.icon-list_s
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-message_c"></span>
+            <div class="name">
+              message_c
+            </div>
+            <div class="code-name">.icon-message_c
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-pen"></span>
+            <div class="name">
+              pen
+            </div>
+            <div class="code-name">.icon-pen
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-show_dot_s"></span>
+            <div class="name">
+              show_dot_s
+            </div>
+            <div class="code-name">.icon-show_dot_s
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-show_dot_n"></span>
+            <div class="name">
+              show_dot_n
+            </div>
+            <div class="code-name">.icon-show_dot_n
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-show_pic_n"></span>
+            <div class="name">
+              show_pic_n
+            </div>
+            <div class="code-name">.icon-show_pic_n
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-show_pic_s"></span>
+            <div class="name">
+              show_pic_s
+            </div>
+            <div class="code-name">.icon-show_pic_s
+            </div>
+          </li>
+          
+          <li class="dib">
             <span class="icon iconfont icon-show_3d_s"></span>
             <div class="name">
               show_3d_s
@@ -1329,6 +1434,62 @@
           
             <li class="dib">
                 <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-list_s"></use>
+                </svg>
+                <div class="name">list_s</div>
+                <div class="code-name">#icon-list_s</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-message_c"></use>
+                </svg>
+                <div class="name">message_c</div>
+                <div class="code-name">#icon-message_c</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-pen"></use>
+                </svg>
+                <div class="name">pen</div>
+                <div class="code-name">#icon-pen</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-show_dot_s"></use>
+                </svg>
+                <div class="name">show_dot_s</div>
+                <div class="code-name">#icon-show_dot_s</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-show_dot_n"></use>
+                </svg>
+                <div class="name">show_dot_n</div>
+                <div class="code-name">#icon-show_dot_n</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-show_pic_n"></use>
+                </svg>
+                <div class="name">show_pic_n</div>
+                <div class="code-name">#icon-show_pic_n</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-show_pic_s"></use>
+                </svg>
+                <div class="name">show_pic_s</div>
+                <div class="code-name">#icon-show_pic_s</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
                   <use xlink:href="#icon-show_3d_s"></use>
                 </svg>
                 <div class="name">show_3d_s</div>

+ 31 - 3
src/components/bill-ui/components/icon/iconfont/iconfont.css

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 4647199 */
-  src: url('iconfont.woff2?t=1723082881853') format('woff2'),
-       url('iconfont.woff?t=1723082881853') format('woff'),
-       url('iconfont.ttf?t=1723082881853') format('truetype');
+  src: url('iconfont.woff2?t=1734504872176') format('woff2'),
+       url('iconfont.woff?t=1734504872176') format('woff'),
+       url('iconfont.ttf?t=1734504872176') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,34 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-list_s:before {
+  content: "\e776";
+}
+
+.icon-message_c:before {
+  content: "\e777";
+}
+
+.icon-pen:before {
+  content: "\e750";
+}
+
+.icon-show_dot_s:before {
+  content: "\e64f";
+}
+
+.icon-show_dot_n:before {
+  content: "\e657";
+}
+
+.icon-show_pic_n:before {
+  content: "\e650";
+}
+
+.icon-show_pic_s:before {
+  content: "\e658";
+}
+
 .icon-show_3d_s:before {
   content: "\e72b";
 }

File diff suppressed because it is too large
+ 1 - 1
src/components/bill-ui/components/icon/iconfont/iconfont.js


+ 49 - 0
src/components/bill-ui/components/icon/iconfont/iconfont.json

@@ -6,6 +6,55 @@
   "description": "",
   "glyphs": [
     {
+      "icon_id": "42851849",
+      "name": "list_s",
+      "font_class": "list_s",
+      "unicode": "e776",
+      "unicode_decimal": 59254
+    },
+    {
+      "icon_id": "42851848",
+      "name": "message_c",
+      "font_class": "message_c",
+      "unicode": "e777",
+      "unicode_decimal": 59255
+    },
+    {
+      "icon_id": "39993146",
+      "name": "pen",
+      "font_class": "pen",
+      "unicode": "e750",
+      "unicode_decimal": 59216
+    },
+    {
+      "icon_id": "25633715",
+      "name": "show_dot_s",
+      "font_class": "show_dot_s",
+      "unicode": "e64f",
+      "unicode_decimal": 58959
+    },
+    {
+      "icon_id": "25633717",
+      "name": "show_dot_n",
+      "font_class": "show_dot_n",
+      "unicode": "e657",
+      "unicode_decimal": 58967
+    },
+    {
+      "icon_id": "25633765",
+      "name": "show_pic_n",
+      "font_class": "show_pic_n",
+      "unicode": "e650",
+      "unicode_decimal": 58960
+    },
+    {
+      "icon_id": "25633777",
+      "name": "show_pic_s",
+      "font_class": "show_pic_s",
+      "unicode": "e658",
+      "unicode_decimal": 58968
+    },
+    {
       "icon_id": "35129313",
       "name": "show_3d_s",
       "font_class": "show_3d_s",

BIN
src/components/bill-ui/components/icon/iconfont/iconfont.ttf


BIN
src/components/bill-ui/components/icon/iconfont/iconfont.woff


BIN
src/components/bill-ui/components/icon/iconfont/iconfont.woff2


+ 1 - 1
src/components/path/sign.vue

@@ -63,7 +63,7 @@ let changPointsTimeout: any;
 path.bus.on("changePoints", (points) => {
   clearTimeout(changPointsTimeout);
   currentPoints = points.map((p, ndx) => ({
-    name: props.path.points[ndx].name || `标记点${ndx + 1}`,
+    name: p?.name || `标记点${ndx + 1}`,
     position: { ...p.position },
     modelId: p.modelId,
   }));

+ 10 - 4
src/components/tagging/sign-new.vue

@@ -26,10 +26,15 @@
           />
         </h2>
         <div class="content">
-          <p><span>特征描述:</span>{{ tagging.desc }}</p>
-          <p><span>遗留部位:</span>{{ tagging.part }}</p>
-          <p><span>提取方法:</span>{{ tagging.method }}</p>
-          <p><span>提取人:</span>{{ tagging.principal }}</p>
+          <p>
+            <span v-if="defStyleType.id !== taggingStyle?.typeId"> 特征描述: </span>
+            {{ tagging.desc }}
+          </p>
+          <template v-if="defStyleType.id !== taggingStyle?.typeId">
+            <p><span>遗留部位:</span>{{ tagging.part }}</p>
+            <p><span>提取方法:</span>{{ tagging.method }}</p>
+            <p><span>提取人:</span>{{ tagging.principal }}</p>
+          </template>
         </div>
         <Images
           :tagging="tagging"
@@ -67,6 +72,7 @@ import { custom, getResource } from "@/env";
 import type { Tagging, TaggingPosition } from "@/store";
 import { useCameraChange, usePixel } from "@/hook/use-pixel";
 import { inRevise } from "bill/utils";
+import { defStyleType } from "@/api";
 
 export type SignProps = { tagging: Tagging; scenePos: TaggingPosition; show?: boolean };
 

+ 23 - 16
src/layout/edit/fuse-slide-menu.vue

@@ -1,42 +1,49 @@
 <template>
-  <SlideMenu 
-    :items="items" 
-    @select="name => router.push({ name })" 
-    :active="(router.currentRoute.value.name as string)" />
+  <SlideMenu
+    class="fsm"
+    :items="items"
+    @select="(name) => router.push({ name })"
+    :active="(router.currentRoute.value.name as string)"
+  />
 </template>
 
 <script lang="ts" setup>
-import SlideMenu from '@/components/menu/index.vue'
-import { metas, RoutesName, router } from '@/router'
+import SlideMenu from "@/components/menu/index.vue";
+import { metas, RoutesName, router } from "@/router";
 
-import type { Items } from '@/components/menu/index.vue'
+import type { Items } from "@/components/menu/index.vue";
 
 const items: Items = [
   {
     name: RoutesName.merge,
-    ...metas[RoutesName.merge]
+    ...metas[RoutesName.merge],
   },
   {
     name: RoutesName.tagging,
-    ...metas[RoutesName.tagging]
+    ...metas[RoutesName.tagging],
   },
   {
     name: RoutesName.measure,
-    ...metas[RoutesName.measure]
+    ...metas[RoutesName.measure],
   },
   {
     name: RoutesName.guide,
-    ...metas[RoutesName.guide]
+    ...metas[RoutesName.guide],
   },
   {
     name: RoutesName.view,
-    ...metas[RoutesName.view]
+    ...metas[RoutesName.view],
   },
   {
     name: RoutesName.setting,
-    ...metas[RoutesName.setting]
+    ...metas[RoutesName.setting],
   },
-]
+];
+</script>
 
-
-</script>
+<style lang="scss">
+.fsm .ui-menu-item.active {
+  background: rgba(0, 200, 175, 0.3);
+  color: #00c8af;
+}
+</style>

+ 12 - 8
src/layout/scene-list/index.vue

@@ -40,7 +40,7 @@
           type="primary"
           ghost
           style="float: right"
-          v-if="canSync(item as Scene) && !voffline"
+          v-if="canSync(item as Scene) && !voffline && currentLayout === RoutesName.show"
           @click.stop="sync(item as Scene)"
         >
           同屏勘验
@@ -59,6 +59,7 @@ import {
   fuseModels,
   SceneStatus,
   getSWKKSyncLink,
+  caseProject,
 } from "@/store";
 import List from "@/components/list/index.vue";
 import ModelList from "../model-list/index.vue";
@@ -67,6 +68,7 @@ import { Button } from "ant-design-vue";
 
 import type { ModelType, FuseModelType } from "@/model";
 import type { Scene } from "@/store";
+import { currentLayout, RoutesName } from "@/router";
 
 const emit = defineEmits<{ (e: "update:current", data: ModelType): void }>();
 const props = defineProps<{ current: ModelType }>();
@@ -84,13 +86,15 @@ const sync = async (scene: Scene) => {
 };
 
 const list = computed(() => {
-  const sceneList = scenes.value.map((scene) => ({
-    raw: scene,
-    select:
-      props.current !== fuseModel &&
-      props.current.num === scene.num &&
-      props.current.type === scene.type,
-  }));
+  const sceneList = caseProject.value?.showScenes
+    ? scenes.value.map((scene) => ({
+        raw: scene,
+        select:
+          props.current !== fuseModel &&
+          props.current.num === scene.num &&
+          props.current.type === scene.type,
+      }))
+    : [];
   if (fuseModels.value.length) {
     return [{ raw: fuseModel }, ...sceneList];
   } else {

+ 24 - 7
src/layout/show/slide-menu.vue

@@ -6,7 +6,10 @@
       :key="item.name"
       @click="$emit('changeItem', item as any)"
     >
-      <ui-icon :type="item.icon" :tip="item.title" class="icon" />
+      <span>
+        <ui-icon :type="item.icon" class="icon" />
+        <p>{{ item.title }}</p>
+      </span>
     </div>
   </div>
 </template>
@@ -83,17 +86,28 @@ const items = computed(() => {
   transition: all 0.3s ease;
 
   > div {
-    height: 70px;
+    height: 80px;
     display: flex;
     align-items: center;
     justify-content: center;
     position: relative;
     color: rgba(255, 255, 255, 0.6);
-    transition: color 0.3s ease;
+    transition: all 0.3s ease;
+    background: rgba(0, 200, 175, 0);
     cursor: pointer;
 
+    > span {
+      text-align: center;
+    }
+
+    p {
+      color: currentColor;
+      font-size: 14px;
+      margin-top: 8px;
+    }
+
     &::before {
-      content: "";
+      // content: "";
       position: absolute;
       left: 0;
       top: 0;
@@ -103,17 +117,20 @@ const items = computed(() => {
       transition: width 0.3s ease;
     }
 
-    &.active,
-    &:hover {
+    &.active {
+      background: rgba(0, 200, 175, 0.3);
       color: #00c8af;
     }
+    &:hover {
+      color: var(--color-main-hover);
+    }
 
     &.active::before {
       width: 4px;
     }
 
     .icon {
-      font-size: 24px;
+      font-size: 18px;
       color: currentColor;
     }
   }

+ 43 - 55
src/main.ts

@@ -1,65 +1,53 @@
-import { createApp, watchEffect } from 'vue'
-import './style.scss'
-import App from './app.vue'
-import Components from 'bill/index'
-import router from './router'
-import { params } from '@/env'
-import { addHook, addUnsetTokenURLS, delHook, delUnsetTokenURLS } from '@/api'
-import { currentLayout, RoutesName } from './router';
-import * as URL from '@/api/constant'
+import { createApp, watchEffect } from "vue";
+import "./style.scss";
+import App from "./app.vue";
+import Components from "bill/index";
+import router from "./router";
+import { params } from "@/env";
+import { addHook, addUnsetTokenURLS, delHook, delUnsetTokenURLS } from "@/api";
+import { currentLayout, RoutesName } from "./router";
+import * as URL from "@/api/constant";
 // import 'ant-design-vue/dist/reset.css';
-import '@/assets/style/global.less'
+import "@/assets/style/global.less";
 
-const app = createApp(App)
-app.use(Components)
-app.use(router)
-app.mount('#app')
+const app = createApp(App);
+app.use(Components);
+app.use(router);
+app.mount("#app");
 
 if (import.meta.env.DEV) {
   // import('@/hook/notice')
 }
 
-watchEffect((onCleanup) => {
-  if ([RoutesName.show, RoutesName.signModel].includes(currentLayout.value!)) {
+addHook({
+  before(config: any) {
+    const isView = [
+      RoutesName.show,
+      RoutesName.signModel,
+      RoutesName.error,
+    ].includes(currentLayout.value!);
+    const type = isView ? "view" : "edit";
+    if (config.headers) {
+      config.headers["page-type"] = type;
+    } else {
+      config.headers = { "page-type": type };
+    }
+  },
+});
 
-    const untokenURLS = params.share 
-      ? [
-          // URL.FUSE_MODEL_LIST,
-          // URL.MODEL_LIST,
-          // URL.GET_SETTING,
-          // URL.TAGGING_LIST,
-          // URL.TAGGING_POINT_LIST,
-          // URL.TAGGING_STYLE_LIST,
-          // URL.MESASURE_LIST,
-          // URL.GUIDE_LIST,
-          // URL.GUIDE_PATH_LIST,
-          // URL.RECORD_LIST,
-          // URL.RECORD_FRAGMENT_LIST,
-          // URL.VIEW_LIST,
-          // URL.FOLDER_TYPE_LIST,
-          // URL.FLODER_LIST,
-          // URL.MODEL_SIGN,
-          // URL.CASE_INFO,
-          URL.AUTH_PWD
-        ]
-      : [URL.AUTH_PWD]
-      
-    const apiHook = {
-      before(config: any) {
-        if (config.headers) {
-          config.headers.share = '1'
-        } else {
-          config.headers = { share: '1' }
-        }
-      }
+watchEffect(
+  (onCleanup) => {
+    if (
+      [RoutesName.show, RoutesName.signModel].includes(currentLayout.value!)
+    ) {
+      const untokenURLS = [URL.AUTH_PWD];
+      addUnsetTokenURLS(...untokenURLS);
+      onCleanup(() => {
+        delUnsetTokenURLS(...untokenURLS);
+      });
     }
-    addHook(apiHook)
-    addUnsetTokenURLS(...untokenURLS)
-    onCleanup(() => {
-      delHook(apiHook)
-      delUnsetTokenURLS(...untokenURLS)
-    })
-  }
-}, { flush: 'sync' })
+  },
+  { flush: "sync" }
+);
 
-export default app
+export default app;

+ 3 - 3
src/router/constant.ts

@@ -104,15 +104,15 @@ export const metas = {
   [RoutesName.show]: { sysTitle: "" },
 
   [RoutesName.summaryShow]: {
-    icon: "list-view",
-    title: "汇总",
+    icon: "list_s",
+    title: "场景列表",
   },
   [RoutesName.viewShow]: {
     icon: "list-scene",
     title: "视图",
   },
   [RoutesName.fireInfo]: {
-    icon: "list-detail",
+    icon: "message_c",
     title: "案件信息",
   },
   [RoutesName.recordShow]: {

+ 2 - 2
src/views/guide/path/edit-path.vue

@@ -148,8 +148,8 @@
     >
       <ui-icon
         :style="{ color: unKeepAdding ? 'var(--color-main-normal)' : 'currentColor' }"
-        type="pin1"
-        size="22px"
+        type="pen"
+        size="30px"
       />
     </span>
   </Teleport>

+ 35 - 34
src/views/tagging/edit.vue

@@ -29,49 +29,50 @@
         maxlength="15"
       />
       <div class="input">
-        <ui-input type="checkbox" label="标题长驻显示" v-model="tagging.show3dTitle" />
+        <ui-input type="checkbox" label="标题常驻" v-model="tagging.show3dTitle" />
       </div>
 
       <ui-input
         class="input"
         width="100%"
         height="158px"
-        placeholder="特征描述:"
+        :placeholder="defStyleType.id === type ? '描述:' : '特征描述:'"
         type="richtext"
         v-model="tagging.desc"
         :maxlength="200"
       />
-      <ui-input
-        class="input preplace"
-        width="100%"
-        placeholder=""
-        type="text"
-        v-model="tagging.part"
-        :maxlength="60"
-      >
-        <template #preIcon><span>遗留部位:</span></template>
-      </ui-input>
-      <ui-input
-        class="input preplace"
-        width="100%"
-        placeholder=""
-        type="text"
-        v-model="tagging.method"
-        :maxlength="60"
-      >
-        <template #preIcon><span>提取方法:</span></template>
-      </ui-input>
-      <ui-input
-        class="input preplace"
-        width="100%"
-        type="text"
-        placeholder=""
-        v-model="tagging.principal"
-        :maxlength="60"
-      >
-        <template #preIcon><span>提取人:</span></template>
-      </ui-input>
-
+      <template v-if="defStyleType.id !== type">
+        <ui-input
+          class="input preplace"
+          width="100%"
+          placeholder=""
+          type="text"
+          v-model="tagging.part"
+          :maxlength="60"
+        >
+          <template #preIcon><span>遗留部位:</span></template>
+        </ui-input>
+        <ui-input
+          class="input preplace"
+          width="100%"
+          placeholder=""
+          type="text"
+          v-model="tagging.method"
+          :maxlength="60"
+        >
+          <template #preIcon><span>提取方法:</span></template>
+        </ui-input>
+        <ui-input
+          class="input preplace"
+          width="100%"
+          type="text"
+          placeholder=""
+          v-model="tagging.principal"
+          :maxlength="60"
+        >
+          <template #preIcon><span>提取人:</span></template>
+        </ui-input>
+      </template>
       <div class="input">
         <div class="mat-select">
           <span>音乐</span>
@@ -162,7 +163,7 @@ import {
   isTemploraryID,
   defaultStyle,
 } from "@/store";
-import { styleTypes } from "@/api";
+import { defStyleType, styleTypes } from "@/api";
 import { selectMaterials } from "@/components/materials/quisk";
 import { getFileName } from "@/utils";
 import { taggingsGroup } from "@/sdk";

+ 1 - 1
vite.config.ts

@@ -101,7 +101,7 @@ export default defineConfig({
     port: 7173,
     open: true,
     proxy: proxy,
-    https: true
+    // https: true
   },
   preview: {
     proxy