Procházet zdrojové kódy

整体工程构建

bill před 2 roky
rodič
revize
bbebb75a2a

+ 0 - 0
.env


+ 0 - 1
.env.criminal

@@ -1 +0,0 @@
-VITE_APP_APP=2

+ 0 - 1
.env.fire

@@ -1 +0,0 @@
-VITE_APP_APP=1

+ 3 - 5
package.json

@@ -4,11 +4,9 @@
   "version": "0.0.0",
   "type": "module",
   "scripts": {
-    "dev": "vite --mode fire",
-    "dev-criminal": "vite --mode criminal",
-    "build-fire": "vue-tsc && vite build --mode fire",
-    "build-criminal": "vue-tsc && vite build --mode criminal",
-    "build": "pnpm run build-fire && pnpm run build-criminal",
+    "dev": "vite",
+    "build": "vue-tsc --noEmit && npm run build-quisk",
+    "build-quisk": "vite build ./ fire && vite build ./ criminal",
     "preview": "vite preview"
   },
   "dependencies": {

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 1
public/vite.svg


+ 1 - 0
src/App.vue

@@ -11,5 +11,6 @@
 import Locale from "@/config/locale.vue";
 import { appConstant } from "@/app";
 
+console.log(appConstant);
 document.title = appConstant.title;
 </script>

+ 0 - 12
src/app/appType.ts

@@ -1,12 +0,0 @@
-export const enum AppType {
-  fire = "fire",
-  criminal = "criminal",
-}
-
-export type AppConstant = {
-  useScssPath: string;
-  title: string;
-  desc: string;
-  banner: string;
-  deptId: number;
-};

+ 3 - 3
src/app/criminal/constant.ts

@@ -1,9 +1,9 @@
-import { AppConstant } from "../appType";
+import { AppConstant } from "../";
+import banner from "@/assets/image/criminalBanner.png";
 
 export const appConstant: AppConstant = {
-  useScssPath: "@/app/criminal/useStyle.scss",
   title: "刑侦三维远程勘验平台",
   desc: "dimensional remote prospecting platform of fire scene of Fire Rescue",
-  banner: "./public/criminalBanner.png",
+  banner,
   deptId: 2,
 };

+ 3 - 3
src/app/fire/constant.ts

@@ -1,9 +1,9 @@
-import { AppConstant } from "../appType";
+import { AppConstant } from "../";
+import banner from "@/assets/image/fireBanner.png";
 
 export const appConstant: AppConstant = {
-  useScssPath: "@/app/fire/useStyle.scss",
   title: "消防火调三维远程勘验平台",
   desc: "dimensional remote prospecting platform of fire scene of Fire Rescue",
-  banner: "./public/fireBanner.png",
+  banner,
   deptId: 1,
 };

+ 1 - 1
src/app/fire/view/dispatch/share.vue

@@ -6,7 +6,7 @@
     <el-form-item label="密码">
       <el-input
         :modelValue="randCode"
-        @input="(val) => filterPSW(val)"
+        @input="(val: string) => filterPSW(val)"
         placeholder="请输入密码"
         style="width: 120px"
       />

+ 19 - 18
src/app/index.ts

@@ -1,33 +1,34 @@
-import { AppConstant, AppType } from "./appType";
 import { Routes } from "@/router";
 
 import { appConstant as criminalConstant } from "./criminal/constant";
 import { appConstant as fireConstant } from "./fire/constant";
 import {
-  routes as criminalRoutes,
-  menuRouteNames as criminalMenuRouteNames,
+  routes as cRoutes,
+  menuRouteNames as cMenuRouteNames,
 } from "./criminal/routeConfig";
 import {
   routes as fireRoutes,
   menuRouteNames as firelMenuRouteNames,
 } from "./fire/routeConfig";
 
-export { AppType };
-export let appRoutes: Routes;
+export type AppConstant = {
+  title: string;
+  desc: string;
+  banner: string;
+  deptId: number;
+};
+
 export let appConstant: AppConstant;
+export let appRoutes: Routes;
 export let menuRouteNames: string[];
 
-switch (VITE_APP_APP as AppType) {
-  case AppType.fire: {
-    appRoutes = fireRoutes;
-    appConstant = fireConstant;
-    menuRouteNames = firelMenuRouteNames;
-    break;
-  }
-  case AppType.criminal: {
-    appRoutes = criminalRoutes;
-    appConstant = criminalConstant;
-    menuRouteNames = criminalMenuRouteNames;
-    break;
-  }
+// 为了打包去除不需要的app只能固定写法
+if (VITE_APP_APP === "fire") {
+  appRoutes = fireRoutes;
+  menuRouteNames = firelMenuRouteNames;
+  appConstant = fireConstant;
+} else if (VITE_APP_APP === "criminal") {
+  appRoutes = cRoutes;
+  menuRouteNames = cMenuRouteNames;
+  appConstant = criminalConstant;
 }

public/criminalBanner.png → src/assets/image/criminalBanner.png


public/fireBanner.png → src/assets/image/fireBanner.png


+ 0 - 1
src/assets/vue.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>

+ 2 - 2
src/components/head/index.vue

@@ -19,11 +19,11 @@
       <div class="display" @click="show = !show" v-if="showCtrl">
         <template v-if="show">
           <span>收起</span>
-          <i class="el-icon-arrow-up"></i>
+          <el-icon><ArrowUp /></el-icon>
         </template>
         <template v-else>
           <span>展开</span>
-          <i class="el-icon-arrow-down"></i>
+          <el-icon><ArrowDown /></el-icon>
         </template>
       </div>
     </div>

+ 1 - 1
src/components/pagination/index.vue

@@ -2,7 +2,7 @@
   <div class="pag-block no-sizes">
     <el-pagination
       layout="total, prev, pager, next"
-      @current-change="(data) => emit('current-change', data)"
+      @current-change="(data: number) => emit('current-change', data)"
       :current-page="currentPage"
       :page-size="currSize"
       background

+ 0 - 28
src/constant/app.ts

@@ -1,28 +0,0 @@
-export const enum AppType {
-  fire = "1",
-  criminal = "2",
-}
-
-export type AppConfigType = {
-  [key in AppType]: {
-    useScssPath: string;
-    title: string;
-    desc: string;
-    banner: string;
-  };
-};
-
-export const AppConfig: AppConfigType = {
-  [AppType.criminal]: {
-    useScssPath: "@/config/criminal.scss",
-    title: "刑侦三维远程勘验平台",
-    desc: "dimensional remote prospecting platform of fire scene of Fire Rescue",
-    banner: "./public/criminalBanner.png",
-  },
-  [AppType.fire]: {
-    useScssPath: "@/config/fire.scss",
-    title: "消防火调三维远程勘验平台",
-    desc: "dimensional remote prospecting platform of fire scene of Fire Rescue",
-    banner: "./public/fireBanner.png",
-  },
-};

+ 0 - 15
src/constant/archive.ts

@@ -1,15 +0,0 @@
-import { ArchiveType } from "@/store/archive";
-import { uploadAttachFile, uploadAttachImage } from "@/request";
-
-export const types = [
-  { name: "现场调查证据材料", value: ArchiveType.evidence },
-  { name: "火灾事故认定", value: ArchiveType.cert },
-  { name: "其他", value: ArchiveType.other },
-];
-
-export const maxFileSize = 100 * 1024 * 1024;
-export const defaultFileType = 2;
-export const fileTypes = [
-  { type: 1, formats: ["jpeg", "jpg"], url: uploadAttachImage },
-  { type: 2, formats: ["pdf", "word"], url: uploadAttachFile },
-];

+ 0 - 582
src/constant/fire.ts

@@ -1,582 +0,0 @@
-import { FireStatus } from "@/store/fire";
-
-// 火灾原因
-export const reason = [
-  {
-    label: "放火",
-    value: "放火",
-    children: [
-      { value: "刑事防火", label: "刑事防火" },
-      { value: "精神病、智障等人士防火", label: "精神病、智障等人士防火" },
-      { value: "自焚", label: "自焚" },
-      { value: "其他", label: "其他" },
-    ],
-  },
-  {
-    value: "电气火灾",
-    label: "电气火灾",
-    children: [
-      { label: "蓄电池故障(热失控)", value: "蓄电池故障(热失控)" },
-      {
-        label: "电气线路故障(线路接插件、配电盘、控制装置等) ",
-        value: "电气线路故障(线路接插件、配电盘、控制装置等) ",
-      },
-      { label: "电动机及其他工业设备", value: "电动机及其他工业设备" },
-      { label: "电器设备故障", value: "电器设备故障" },
-      { label: "电加热器具火灾", value: "电加热器具火灾" },
-      { label: "其他", value: "其他" },
-    ],
-  },
-  {
-    value: "产作业",
-    label: "产作业",
-    children: [
-      { label: "焊割", value: "焊割" },
-      { label: "熬炼", value: "熬炼" },
-      { label: "化工生产", value: "化工生产" },
-      { label: "机械设备类故障", value: "机械设备类故障" },
-      { label: "烘烤", value: "烘烤" },
-      { label: "接触高温", value: "接触高温" },
-      { label: "其他", value: "其他" },
-    ],
-  },
-  {
-    value: "用火不慎",
-    label: "用火不慎",
-    children: [
-      { label: "余火复燃", value: "余火复燃" },
-      { label: "照明不慎", value: "照明不慎" },
-      { label: "烘烤不慎", value: "烘烤不慎" },
-      { label: "敬神祭祖", value: "敬神祭祖" },
-      { label: "油锅起火", value: "油锅起火" },
-      { label: "燃气炉具故障及使用不当", value: "燃气炉具故障及使用不当" },
-      { label: "燃油炉具故障及使用不当", value: "燃油炉具故障及使用不当" },
-      { label: "其他炉具故障及使用不当", value: "其他炉具故障及使用不当" },
-      { label: "烟道过热窜火、飞火等", value: "烟道过热窜火、飞火等" },
-      { label: "烧荒、野外生火不慎", value: "烧荒、野外生火不慎" },
-      { label: "使用蚊香不慎", value: "使用蚊香不慎" },
-      { label: "其他", value: "其他" },
-    ],
-  },
-  {
-    value: "吸烟",
-    label: "吸烟",
-    children: [
-      { label: "违章吸烟", value: "违章吸烟" },
-      { label: "乱扔烟头、火柴等", value: "乱扔烟头、火柴等" },
-      { label: "卧床吸烟", value: "卧床吸烟" },
-      { label: "其他", value: "其他" },
-    ],
-  },
-  {
-    value: "玩火",
-    label: "玩火",
-    children: [
-      { label: "小孩玩火", value: "小孩玩火" },
-      { label: "其他", value: "其他" },
-    ],
-  },
-  { label: "燃放烟花爆竹", value: "燃放烟花爆竹" },
-  { label: "自燃", value: "自燃" },
-  { label: "雷击", value: "雷击" },
-  { label: "静电", value: "静电" },
-  { label: "遗留火种", value: "遗留火种" },
-  { label: "其他", value: "其他" },
-  { label: "不排除原因", value: "不排除原因" },
-];
-
-// 起火场所
-export const place = [
-  {
-    label: "非建构筑物",
-    value: "非建构筑物",
-    children: [
-      { label: "室外集贸市场", value: "室外集贸市场" },
-      { label: "露天堆垛", value: "露天堆垛" },
-      {
-        label: "露天农副业场所",
-        value: "露天农副业场所",
-        children: [
-          { label: "农田", value: "农田" },
-          { label: "经济林木(含果园)", value: "经济林木(含果园)" },
-          { label: "苗圃", value: "苗圃" },
-          { label: "花卉", value: "花卉" },
-          { label: "养殖场", value: "养殖场" },
-          { label: "大棚", value: "大棚" },
-          { label: "其他", value: "其他" },
-        ],
-      },
-      {
-        label: "室外独立生产设施设备",
-        value: "室外独立生产设施设备",
-        children: [
-          { label: "风力发电设施", value: "风力发电设施" },
-          { label: "光伏发电设施", value: "光伏发电设施" },
-          {
-            label: "小型变压器、配电柜等室外输配电设备",
-            value: "小型变压器、配电柜等室外输配电设备",
-          },
-          { label: "变电站", value: "变电站" },
-          { label: "通讯基站", value: "通讯基站" },
-          { label: "其他室外独立式生产设施", value: "其他室外独立式生产设施" },
-        ],
-      },
-      { label: "公园", value: "公园" },
-      { label: "森林", value: "森林" },
-      { label: "草原", value: "草原" },
-      { label: "道路绿化带、隔离带", value: "道路绿化带、隔离带" },
-      { label: "其他", value: "其他" },
-    ],
-  },
-  {
-    label: "交通工具",
-    value: "交通工具",
-    children: [
-      {
-        label: "客车",
-        value: "客车",
-        children: [
-          { label: "燃油车", value: "燃油车" },
-          { label: "燃气车", value: "燃气车" },
-          { label: "电动车", value: "电动车" },
-          { label: "混合电动车", value: "混合电动车" },
-        ],
-      },
-      {
-        label: "货车",
-        value: "货车",
-        children: [
-          { label: "燃油车", value: "燃油车" },
-          { label: "燃气车", value: "燃气车" },
-          { label: "电动车", value: "电动车" },
-          { label: "混合电动车", value: "混合电动车" },
-        ],
-      },
-      {
-        label: "轿车",
-        value: "轿车",
-        children: [
-          { label: "燃油车", value: "燃油车" },
-          { label: "燃气车", value: "燃气车" },
-          { label: "电动车", value: "电动车" },
-          { label: "混合电动车", value: "混合电动车" },
-        ],
-      },
-      {
-        label: "特种车",
-        value: "特种车",
-        children: [
-          { label: "燃油车", value: "燃油车" },
-          { label: "燃气车", value: "燃气车" },
-          { label: "电动车", value: "电动车" },
-          { label: "混合电动车", value: "混合电动车" },
-        ],
-      },
-      { label: "摩托车", value: "摩托车" },
-      { label: "铁路列车", value: "铁路列车" },
-      { label: "船舶", value: "船舶" },
-      { label: "航空(天)", value: "航空(天)" },
-      { label: "城市轨道交通工具", value: "城市轨道交通工具" },
-      { label: "农用机械", value: "农用机械" },
-      {
-        label: "电动助力车(三轮车、自行车)",
-        value: "电动助力车(三轮车、自行车)",
-      },
-      { label: "其他", value: "其他" },
-    ],
-  },
-  {
-    label: "建构筑物",
-    value: "建构筑物",
-    children: [
-      {
-        label: "居住场所",
-        value: "居住场所",
-        children: [
-          { label: "自建住宅", value: "自建住宅" },
-          {
-            label: "非自建住宅",
-            value: "非自建住宅",
-            children: [
-              { label: "商品房	", value: "商品房	" },
-              { label: "经适房	", value: "经适房	" },
-              { label: "集资房	", value: "集资房	" },
-              { label: "公寓房	", value: "公寓房	" },
-            ],
-          },
-          { label: "员工集体宿舍", value: "员工集体宿舍" },
-        ],
-      },
-      { label: "办公场所", value: "办公场所" },
-      {
-        label: "学校",
-        value: "学校",
-        children: [
-          {
-            label: "幼儿园托儿所",
-            value: "幼儿园托儿所",
-            children: [
-              { label: "教学场所	", value: "教学场所	" },
-              { label: "实验场所	", value: "实验场所	" },
-              { label: "学生集体宿舍	", value: "学生集体宿舍	" },
-              { label: "食堂	", value: "食堂	" },
-              { label: "礼堂等室内活动场馆	", value: "礼堂等室内活动场馆	" },
-              { label: "其他	", value: "其他	" },
-            ],
-          },
-          {
-            label: "小学",
-            value: "小学",
-            children: [
-              { label: "教学场所	", value: "教学场所	" },
-              { label: "实验场所	", value: "实验场所	" },
-              { label: "学生集体宿舍	", value: "学生集体宿舍	" },
-              { label: "食堂	", value: "食堂	" },
-              { label: "礼堂等室内活动场馆	", value: "礼堂等室内活动场馆	" },
-              { label: "其他	", value: "其他	" },
-            ],
-          },
-          {
-            label: "中学",
-            value: "中学",
-            children: [
-              { label: "教学场所	", value: "教学场所	" },
-              { label: "实验场所	", value: "实验场所	" },
-              { label: "学生集体宿舍	", value: "学生集体宿舍	" },
-              { label: "食堂	", value: "食堂	" },
-              { label: "礼堂等室内活动场馆	", value: "礼堂等室内活动场馆	" },
-              { label: "其他	", value: "其他	" },
-            ],
-          },
-          {
-            label: "大学",
-            value: "大学",
-            children: [
-              { label: "教学场所	", value: "教学场所	" },
-              { label: "实验场所	", value: "实验场所	" },
-              { label: "学生集体宿舍	", value: "学生集体宿舍	" },
-              { label: "食堂	", value: "食堂	" },
-              { label: "礼堂等室内活动场馆	", value: "礼堂等室内活动场馆	" },
-              { label: "其他	", value: "其他	" },
-            ],
-          },
-          {
-            label: "校外培训机构",
-            value: "校外培训机构",
-            children: [
-              { label: "教学场所	", value: "教学场所	" },
-              { label: "实验场所	", value: "实验场所	" },
-              { label: "学生集体宿舍	", value: "学生集体宿舍	" },
-              { label: "食堂	", value: "食堂	" },
-              { label: "礼堂等室内活动场馆	", value: "礼堂等室内活动场馆	" },
-              { label: "其他	", value: "其他	" },
-            ],
-          },
-          {
-            label: "成人教育机构",
-            value: "成人教育机构",
-            children: [
-              { label: "教学场所	", value: "教学场所	" },
-              { label: "实验场所	", value: "实验场所	" },
-              { label: "学生集体宿舍	", value: "学生集体宿舍	" },
-              { label: "食堂	", value: "食堂	" },
-              { label: "礼堂等室内活动场馆	", value: "礼堂等室内活动场馆	" },
-              { label: "其他	", value: "其他	" },
-            ],
-          },
-        ],
-      },
-      {
-        label: "商业场所",
-        value: "商业场所",
-        children: [
-          { label: "商场", value: "商场" },
-          { label: "超市", value: "超市" },
-          { label: "室内市场", value: "室内市场" },
-          { label: "经营性小场所", value: "经营性小场所" },
-          { label: "其他", value: "其他" },
-        ],
-      },
-      {
-        label: "宾馆、饭店、招待所",
-        value: "宾馆、饭店、招待所",
-        children: [
-          { label: "客房", value: "客房" },
-          { label: "餐饮", value: "餐饮" },
-          { label: "办公室", value: "办公室" },
-          { label: "会议室", value: "会议室" },
-          { label: "民宿", value: "民宿" },
-        ],
-      },
-      {
-        label: "纯餐饮场所",
-        value: "纯餐饮场所",
-        children: [
-          { label: "餐馆酒家", value: "餐馆酒家" },
-          { label: "农家乐", value: "农家乐" },
-          { label: "露天大排档", value: "露天大排档" },
-          { label: "私房菜馆", value: "私房菜馆" },
-        ],
-      },
-      {
-        label: "医疗机构",
-        value: "医疗机构",
-        children: [
-          { label: "医院", value: "医院" },
-          { label: "诊所", value: "诊所" },
-          { label: "康复中心", value: "康复中心" },
-          { label: "精神病院", value: "精神病院" },
-        ],
-      },
-      {
-        label: "养老院",
-        value: "养老院",
-        children: [
-          { label: "公办养老院", value: "公办养老院" },
-          { label: "私营养老院", value: "私营养老院" },
-        ],
-      },
-      { label: "福利院", value: "福利院" },
-      {
-        label: "公共娱乐场所",
-        value: "公共娱乐场所",
-        children: [
-          {
-            label: "影剧院、礼堂等演出、放映场所",
-            value: "影剧院、礼堂等演出、放映场所",
-          },
-          {
-            label: "舞厅、卡拉OK厅等歌舞娱乐场所",
-            value: "舞厅、卡拉OK厅等歌舞娱乐场所",
-          },
-          {
-            label: "具有娱乐功能的夜总会、音乐茶座场所",
-            value: "具有娱乐功能的夜总会、音乐茶座场所",
-          },
-          {
-            label:
-              "保龄球馆、旱冰场、按摩、沐足、棋牌、桑拿浴室等营业性健身、休闲场所",
-            value:
-              "保龄球馆、旱冰场、按摩、沐足、棋牌、桑拿浴室等营业性健身、休闲场所",
-          },
-          { label: "儿童娱乐、活动场所", value: "儿童娱乐、活动场所" },
-          { label: "游艺等其他公共娱乐场所", value: "游艺等其他公共娱乐场所" },
-        ],
-      },
-      {
-        label: "体育场馆",
-        value: "体育场馆",
-        children: [
-          { label: "室内部分", value: "室内部分" },
-          { label: "露天部分", value: "露天部分" },
-        ],
-      },
-      {
-        label: "金融交易场所",
-        value: "金融交易场所",
-        children: [
-          { label: "证券交易所", value: "证券交易所" },
-          { label: "银行网点", value: "银行网点" },
-        ],
-      },
-      {
-        label: "交通枢纽(站)",
-        value: "交通枢纽(站)",
-        children: [
-          { label: "候机场所", value: "候机场所" },
-          { label: "候船场所", value: "候船场所" },
-          {
-            label: "候车场所",
-            value: "候车场所",
-            children: [
-              { label: "汽车客运站	", value: "汽车客运站	" },
-              {
-                label: "铁路、高铁、城轨候车场所	",
-                value: "铁路、高铁、城轨候车场所	",
-              },
-            ],
-          },
-          { label: "地铁站", value: "地铁站" },
-          { label: "公交站", value: "公交站" },
-          { label: "交通综合枢纽", value: "交通综合枢纽" },
-        ],
-      },
-      {
-        label: "文物古建筑",
-        value: "文物古建筑",
-        children: [
-          { label: "国家级", value: "国家级" },
-          { label: "省级", value: "省级" },
-          { label: "市、县级", value: "市、县级" },
-          { label: "其他", value: "其他" },
-        ],
-      },
-      {
-        label: "文博馆(图书馆、博物馆、档案馆等)",
-        value: "文博馆(图书馆、博物馆、档案馆等)",
-      },
-      { label: "科研试验场所", value: "科研试验场所" },
-      { label: "广播电视中心", value: "广播电视中心" },
-      {
-        label: "通信场所",
-        value: "通信场所",
-        children: [
-          { label: "营业厅", value: "营业厅" },
-          { label: "机房", value: "机房" },
-          { label: "其他", value: "其他" },
-        ],
-      },
-      {
-        label: "宗教场所",
-        value: "宗教场所",
-        children: [
-          { label: "寺庙", value: "寺庙" },
-          { label: "教堂", value: "教堂" },
-          { label: "道观", value: "道观" },
-          { label: "其他民间信仰场所", value: "其他民间信仰场所" },
-        ],
-      },
-      { label: "会议、展览中心", value: "会议、展览中心" },
-      {
-        label: "物资仓储场所",
-        value: "物资仓储场所",
-        children: [
-          {
-            label: "危险品",
-            value: "危险品",
-            children: [
-              { label: "甲类	", value: "甲类	" },
-              { label: "乙类	", value: "乙类	" },
-              { label: "丙类	", value: "丙类	" },
-              { label: "丁类	", value: "丁类	" },
-              { label: "戊类	", value: "戊类	" },
-            ],
-          },
-          { label: "棉花", value: "棉花" },
-          { label: "粮食", value: "粮食" },
-          { label: "百货", value: "百货" },
-          { label: "综合", value: "综合" },
-          { label: "物流快递", value: "物流快递" },
-          { label: "三合一、多合一", value: "三合一、多合一" },
-          { label: "经营性小场所", value: "经营性小场所" },
-        ],
-      },
-      {
-        label: "厂房",
-        value: "厂房",
-        children: [
-          { label: "甲乙类生产", value: "甲乙类生产" },
-          { label: "丙类生产", value: "丙类生产" },
-          { label: "丁戊类生产", value: "丁戊类生产" },
-          { label: "劳动密集型", value: "劳动密集型" },
-          { label: "三合一、多合一", value: "三合一、多合一" },
-          { label: "经营性小场所", value: "经营性小场所" },
-          { label: "其他", value: "其他" },
-        ],
-      },
-      {
-        label: "加油加气站充电站",
-        value: "加油加气站充电站",
-        children: [
-          { label: "加油站", value: "加油站" },
-          { label: "加气站", value: "加气站" },
-          { label: "充电站", value: "充电站" },
-          { label: "加油加气站", value: "加油加气站" },
-          { label: "其他", value: "其他" },
-        ],
-      },
-      {
-        label: "汽车库",
-        value: "汽车库",
-        children: [
-          { label: "高层", value: "高层" },
-          { label: "多层", value: "多层" },
-          { label: "地下", value: "地下" },
-          { label: "半地下", value: "半地下" },
-          { label: "机械", value: "机械" },
-          { label: "敞开式", value: "敞开式" },
-        ],
-      },
-      {
-        label: "修车库",
-        value: "修车库",
-        children: [
-          { label: "简易修理厂", value: "简易修理厂" },
-          { label: "临时搭建修理厂", value: "临时搭建修理厂" },
-        ],
-      },
-      {
-        label: "工地",
-        value: "工地",
-        children: [
-          {
-            label: "建设工地",
-            value: "建设工地",
-            children: [
-              {
-                label: "建筑物、构筑物、设施等	",
-                value: "建筑物、构筑物、设施等	",
-              },
-              { label: "临时宿舍	", value: "临时宿舍	" },
-              { label: "临时办公场所	", value: "临时办公场所	" },
-              { label: "临时食堂	", value: "临时食堂	" },
-              { label: "临时室内仓库	", value: "临时室内仓库	" },
-              { label: "临时建材堆放场所	", value: "临时建材堆放场所	" },
-            ],
-          },
-          { label: "装修、改造工地", value: "装修、改造工地" },
-          { label: "动拆迁工地", value: "动拆迁工地" },
-        ],
-      },
-      {
-        label: "室内农副业场所",
-        value: "室内农副业场所",
-        children: [
-          { label: "温室", value: "温室" },
-          { label: "养殖场", value: "养殖场" },
-        ],
-      },
-      {
-        label: "石油化工企业",
-        value: "石油化工企业",
-        children: [
-          { label: "生产装置", value: "生产装置" },
-          { label: "储罐区", value: "储罐区" },
-          { label: "生活区", value: "生活区" },
-          { label: "办公区", value: "办公区" },
-        ],
-      },
-      { label: "其他", value: "其他" },
-    ],
-  },
-  {
-    label: "垃圾及废弃物",
-    value: "垃圾及废弃物",
-    children: [
-      { label: "垃圾箱", value: "垃圾箱" },
-      { label: "垃圾堆", value: "垃圾堆" },
-      { label: "垃圾场", value: "垃圾场" },
-      { label: "垃圾中转站", value: "垃圾中转站" },
-      { label: "废品回收场所", value: "废品回收场所" },
-      { label: "其他", value: "其他" },
-    ],
-  },
-];
-
-export const fireStatusDesc = {
-  [FireStatus.all]: "全部",
-  [FireStatus.incomplete]: "未认定",
-  [FireStatus.complete]: "已认定",
-};
-
-export const fireStatuOptions = [
-  {
-    value: FireStatus.all,
-    label: fireStatusDesc[FireStatus.all],
-  },
-  {
-    value: FireStatus.incomplete,
-    label: fireStatusDesc[FireStatus.incomplete],
-  },
-  { value: FireStatus.complete, label: fireStatusDesc[FireStatus.complete] },
-];

+ 0 - 2
src/helper/mount.ts

@@ -29,8 +29,6 @@ function mount<P>(
     render(vNode, (el = document.createElement("div")));
   }
 
-  console.log(vNode, el);
-
   const destroy = () => {
     if (el) render(null, el);
     el = undefined;

+ 0 - 19
src/store/archive.ts

@@ -1,19 +0,0 @@
-export enum ArchiveType {
-  evidence = 0,
-  cert = 1,
-  other = 2,
-}
-
-export type Archive = {
-  attachmentType: string;
-  createTime: string;
-  creatorId: string;
-  creatorName: string;
-  deptId: string;
-  fileName: string;
-  fileOssUrl: string;
-  id: string;
-  projectId: string;
-  type: ArchiveType;
-  updateTime: string;
-};

+ 1 - 1
src/store/permission.ts

@@ -18,7 +18,7 @@ changSaveLocal("permission", () => permission.value);
  * 获取具有权限的路由
  * @param routeNames 所有路由
  */
-export const getPermissionRoutes = (routeNames: RouteName[]) => {
+export const getPermissionRoutes = (routeNames: string[]) => {
   console.log(permission.value);
   return routeNames
     .filter((routeName) =>

+ 1 - 1
src/view/camera/bind.vue

@@ -4,7 +4,7 @@
       <el-input
         :modelValue="bindCamera.snCode"
         placeholder="请输入相机底部SN码,如214D5RE2G8"
-        @update:modelValue="(val) => (bindCamera.snCode = val.trim())"
+        @update:modelValue="(val: string) => (bindCamera.snCode = val.trim())"
       ></el-input>
     </el-form-item>
     <el-form-item label="所属架构:" class="mandatory">

+ 1 - 1
src/view/case/draw/index.vue

@@ -55,7 +55,7 @@ import {
 const dom = ref<HTMLCanvasElement>();
 const props = computed(() => {
   const route = router.currentRoute.value;
-  if ((route.name as RouteName) !== RouteName.drawCaseFile || !dom.value) {
+  if (route.name !== RouteName.drawCaseFile || !dom.value) {
     return null;
   } else {
     const params = route.params;

+ 3 - 4
src/view/layout/slide/index.vue

@@ -2,7 +2,7 @@
   <div class="slide">
     <el-menu
       :default-active="(router.currentRoute.value.name as string)"
-      @select="(name) => router.push({ name })"
+      @select="(name: string) => router.push({ name })"
     >
       <sub-menu
         :meta="route.meta"
@@ -17,10 +17,9 @@
 <script setup lang="ts">
 import subMenu from "./submenu.vue";
 import { getPermissionRoutes } from "@/store/permission";
-import { RouteName, router } from "@/router";
-import { computed } from "vue";
+import { router } from "@/router";
 
-const props = defineProps<{names: RouteName[]}>()
+const props = defineProps<{ names: string[] }>();
 
 const routes = getPermissionRoutes(props.names);
 </script>

+ 2 - 2
src/view/layout/slide/submenu.vue

@@ -6,7 +6,7 @@
 </template>
 
 <script lang="ts" setup>
-import { RouteMeta, RouteName } from "@/router";
+import { RouteMeta } from "@/router";
 
-defineProps<{ meta: RouteMeta; name: RouteName }>();
+defineProps<{ meta: RouteMeta; name: string }>();
 </script>

+ 2 - 1
src/view/organization/edit.vue

@@ -23,7 +23,7 @@
         ref="myCascader"
         style="width: 100%"
         :modelValue="superiorValue"
-        @update:modelValue="val => updateSuperiorValue(val as string[])"
+        @update:modelValue="(val: string[]) => updateSuperiorValue(val)"
         :options="organTrees"
         :props="{ checkStrictly: true, label: 'name', value: 'id' }"
       ></el-cascader>
@@ -115,6 +115,7 @@ defineExpose<QuiskExpose>({
 });
 
 onMounted(async () => {
+  console.log("111");
   organTrees.value = await getOrganizationTree("1");
 });
 </script>

+ 2 - 2
src/view/organization/index.vue

@@ -71,8 +71,8 @@ const organTrees = ref<Organization[]>([]);
 
 const addHandler = async () => {
   const data = await addOrganization({});
-  await refresh();
-  if (data !== null) {
+  if (data) {
+    await refresh();
     const config = {
       icon: markRaw(SuccessFilled),
       confirmButtonText: "去创建",

+ 23 - 6
tsconfig.json

@@ -8,16 +8,33 @@
     "jsx": "preserve",
     "sourceMap": true,
     "resolveJsonModule": true,
+    "noImplicitAny": false,
     "isolatedModules": true,
     "esModuleInterop": true,
-    "lib": ["ESNext", "DOM"],
+    "lib": [
+      "ESNext",
+      "DOM"
+    ],
     "skipLibCheck": true,
-    "types": ["unplugin-vue-define-options/macros-global"],
+    "types": [
+      "unplugin-vue-define-options/macros-global"
+    ],
     "baseUrl": "./",
     "paths": {
-      "@/*": ["src/*"]
+      "@/*": [
+        "src/*"
+      ]
     }
   },
-  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
-  "references": [{ "path": "./tsconfig.node.json" }]
-}
+  "include": [
+    "src/**/*.ts",
+    "src/**/*.d.ts",
+    "src/**/*.tsx",
+    "src/**/*.vue"
+  ],
+  "references": [
+    {
+      "path": "./tsconfig.node.json"
+    }
+  ]
+}

+ 3 - 3
tsconfig.node.json

@@ -1,13 +1,13 @@
 {
   "compilerOptions": {
     "composite": true,
+    "esModuleInterop": true,
     "module": "ESNext",
+    "skipLibCheck": true,
     "moduleResolution": "Node",
     "allowSyntheticDefaultImports": true
   },
   "include": [
-    "vite.config.ts",
-    "src/app/**/constant.ts",
-    "src/app/appType.ts",
+    "vite.config.ts"
   ]
 }

+ 84 - 79
vite.config.ts

@@ -1,88 +1,93 @@
-import { defineConfig, loadEnv } from "vite";
+import { defineConfig } from "vite";
 import vue from "@vitejs/plugin-vue";
 import { resolve } from "path";
 import ElementPlus from "unplugin-element-plus/vite";
-import { AppType, AppConstant } from "./src/app/appType";
-import { appConstant } from "./src/app/fire/constant";
-// import { appConstant } from "./src/app/criminal/constant";
 
-export default async ({ mode }) => {
-  const app = AppType.fire;
-  // const appConstant = (await import(`./src/app/${app}/constant`))
-  //   .AppConstant as AppConstant;
+let app = "fire";
+if (process.argv.length > 3) {
+  app = process.argv[process.argv.length - 1].trim();
+}
 
-  return defineConfig({
-    define: {
-      VITE_APP_APP: JSON.stringify(app),
-    },
-    resolve: {
-      alias: [
-        {
-          find: "@",
-          replacement: resolve(__dirname, "./src"),
-        },
-      ],
-    },
-    css: {
-      preprocessorOptions: {
-        scss: {
-          additionalData: `@use "${appConstant.useScssPath}" as *;`,
-        },
+const dev = true;
+
+export default defineConfig({
+  define: {
+    VITE_APP_APP: JSON.stringify(app),
+  },
+  base: "./",
+  build: {
+    outDir: `dist/${app}`,
+  },
+  resolve: {
+    alias: [
+      {
+        find: "@",
+        replacement: resolve(__dirname, "./src"),
       },
-    },
-    plugins: [
-      vue(),
-      ElementPlus({
-        useSource: true,
-      }),
     ],
-    server: {
-      // https:true,
-      // port:8080,
-      // 设置代理proxy
-      proxy: {
-        "/api": {
-          // target: 'http://192.168.0.135:8585/',
-          target: "http://test-mix3d.4dkankan.com",
-          // target: 'https://testhuodiao.4dkankan.com/',
-          changeOrigin: true,
-          rewrite: (path) => path.replace(new RegExp(`^/api`), ""),
-        },
-        "/fusion": {
-          target: "https://test-mix3d.4dkankan.com",
-          changeOrigin: true,
-          rewrite: (path) => path.replace(new RegExp(`^/api`), "/fusion"),
-        },
-        "/dev-code": {
-          target: "https://test-mix3d.4dkankan.com/code",
-          changeOrigin: true,
-          rewrite: (path) => path.replace(new RegExp(`^/dev-code`), ""),
-        },
-        "/swkk": {
-          target: "https://test.4dkankan.com",
-          changeOrigin: true,
-          rewrite: (path) => path.replace(new RegExp(`^/swkk`), ""),
-        },
-        "/service": {
-          target: "https://test.4dkankan.com",
-          changeOrigin: true,
-        },
-        "/swss": {
-          target: "https://uat-laser.4dkankan.com/uat",
-          changeOrigin: true,
-          rewrite: (path) => path.replace(new RegExp(`^/swss`), ""),
-        },
-        "/laser": {
-          target: "https://uat-laser.4dkankan.com",
-          changeOrigin: true,
-          rewrite: (path) => path.replace(new RegExp(`^/swss`), ""),
-        },
-        "/fdkk": {
-          target: "https://uat-laser.4dkankan.com",
-          changeOrigin: true,
-          rewrite: (path) => path.replace(new RegExp(`^/swss`), ""),
-        },
+  },
+  css: {
+    preprocessorOptions: {
+      scss: {
+        additionalData: `@use "@/app/${app}/useStyle.scss" as *;`,
+      },
+    },
+  },
+  plugins: [
+    vue(),
+    ElementPlus({
+      useSource: true,
+    }),
+  ],
+  server: {
+    proxy: {
+      "/api": {
+        target: dev ? "http://test-mix3d.4dkankan.com" : "mix3d.4dkankan.com",
+        changeOrigin: true,
+        rewrite: (path) => path.replace(new RegExp(`^/api`), ""),
+      },
+      "/fusion": {
+        target: dev ? "https://test-mix3d.4dkankan.com" : "mix3d.4dkankan.com",
+        changeOrigin: true,
+        rewrite: (path) => path.replace(new RegExp(`^/api`), "/fusion"),
+      },
+      "/dev-code": {
+        target: dev
+          ? "https://test-mix3d.4dkankan.com/code"
+          : "https://mix3d.4dkankan.com/code",
+        changeOrigin: true,
+        rewrite: (path) => path.replace(new RegExp(`^/dev-code`), ""),
+      },
+      "/swkk": {
+        target: dev ? "https://test.4dkankan.com" : "https://www.4dkankan.com",
+        changeOrigin: true,
+        rewrite: (path) => path.replace(new RegExp(`^/swkk`), ""),
+      },
+      "/service": {
+        target: dev ? "https://test.4dkankan.com" : "https://www.4dkankan.com",
+        changeOrigin: true,
+      },
+      "/swss": {
+        target: dev
+          ? "https://uat-laser.4dkankan.com/uat"
+          : "https://laser.4dkankan.com",
+        changeOrigin: true,
+        rewrite: (path) => path.replace(new RegExp(`^/swss`), ""),
+      },
+      "/laser": {
+        target: dev
+          ? "https://uat-laser.4dkankan.com/uat"
+          : "https://laser.4dkankan.com",
+        changeOrigin: true,
+        rewrite: (path) => path.replace(new RegExp(`^/swss`), ""),
+      },
+      "/fdkk": {
+        target: dev
+          ? "https://uat-laser.4dkankan.com/uat"
+          : "https://laser.4dkankan.com",
+        changeOrigin: true,
+        rewrite: (path) => path.replace(new RegExp(`^/swss`), ""),
       },
     },
-  });
-};
+  },
+});