Przeglądaj źródła

Merge branch 'all-v4' into 'all-v4-fjc'

# Conflicts:
#   src/views/page-config/component/BasicLayoutList.vue
Jiacheng 符 1 rok temu
rodzic
commit
5643b25dcd
30 zmienionych plików z 115 dodań i 2061 usunięć
  1. 6 12
      src/layout/components/Header/SwitchTenant.vue
  2. 9 9
      src/router/full-routes.ts
  3. 28 0
      src/types/message/constant.ts
  4. 1 1
      src/views/cameras/overview/CamerasOverview.vue
  5. 11 6
      src/views/cameras/overview/components/AddCameraByIP.vue
  6. 11 6
      src/views/cameras/overview/components/AddCameraByNVR.vue
  7. 11 6
      src/views/cameras/overview/components/AddCameraBySRS.vue
  8. 1 1
      src/views/cameras/preview/components/AlgorithmsSetting/AlgorithmsSetting.vue
  9. 3 3
      src/views/datamanager/platformdata/components/query/Query.vue
  10. 3 3
      src/views/datamanager/platformdata/components/score/Score.vue
  11. 12 8
      src/views/map-config/mini-map/MapBase/KonvaMap.vue
  12. 0 1
      src/views/map-config/mini-map/MiniMapConfig.vue
  13. 10 3
      src/views/page-config/component/BasicLayoutList.vue
  14. 1 1
      src/views/system-config/business-scene/PageBusinessScene.vue
  15. 0 234
      src/views/system-config/template/CardCommon.vue
  16. 0 235
      src/views/system-config/template/CardCommon_shangfei.vue
  17. 0 149
      src/views/system-config/template/DrawerCommon.vue
  18. 0 150
      src/views/system-config/template/DrawerCommon_shangfei.vue
  19. 0 138
      src/views/system-config/template/LabelManager.vue
  20. 0 138
      src/views/system-config/template/LabelManager_shangfei.vue
  21. 0 139
      src/views/system-config/template/SceneManager.vue
  22. 0 139
      src/views/system-config/template/SceneManager_shangfei.vue
  23. 0 88
      src/views/system-config/template/TemplateManager.vue
  24. 0 142
      src/views/system-config/template/TitleCommon.vue
  25. 0 147
      src/views/system-config/template/TitleCommon_shangfei.vue
  26. 0 138
      src/views/system-config/template/WorkspaceManager.vue
  27. 0 138
      src/views/system-config/template/WorkspaceManager_shangfei.vue
  28. 0 19
      src/views/system-config/template/constant.ts
  29. 4 3
      src/views/templateManage/CardCommon.vue
  30. 4 4
      src/views/templateManage/SceneManager.vue

+ 6 - 12
src/layout/components/Header/SwitchTenant.vue

@@ -5,7 +5,6 @@
     <el-tree-select
       v-model="currentTenant"
       :data="options"
-      clearable
       check-strictly
       placeholder="请选择租户"
       @update:modelValue="handleChange"
@@ -24,19 +23,14 @@
     value: string;
   }
 
+  const userStore = useUserStore();
   const { setValue, getValue } = useTargetTenantIdSetting();
-
   const localTId = getValue();
-
-  const currentTenant = ref(localTId ? Number(localTId) : '');
-
-  const options = ref<TenantOption[]>([]);
-
-  const userStore = useUserStore();
-
-  const tenantName = computed(() => {
-    return userStore.info.tenantName;
+  const tenantId = computed(() => {
+    return userStore.info.tenantId;
   });
+  const currentTenant = ref(localTId ? Number(localTId) : Number(tenantId.value));
+  const options = ref<TenantOption[]>([]);
 
   onMounted(() => {
     queryListTenant().then((res) => {
@@ -47,7 +41,7 @@
 
   const handleChange = (targetTenantId: string) => {
     setValue(targetTenantId);
-    currentTenant.value = targetTenantId;
+    currentTenant.value = Number(targetTenantId) ;
     window.location.reload();
   };
 </script>

+ 9 - 9
src/router/full-routes.ts

@@ -21,13 +21,13 @@ const fullRoutes: AppRouteRecordRaw[] = [
     },
     children: [
       {
-        // 主控台
+        // 首页(原主控台
         path: 'console',
         name: 'DashboardConsole',
         component: '/dashboard/home/Home',
         meta: { 
           icon: '',
-          title: '主控台',
+          title: '首页',
         },
       }
     ]
@@ -143,7 +143,7 @@ const fullRoutes: AppRouteRecordRaw[] = [
         component: '/page-config/PageSceneList',
         meta: {
           icon: '',
-          title: '场景布局列表(菜单不可见)'
+          title: '场景布局列表'
         }
       },
       {
@@ -153,7 +153,7 @@ const fullRoutes: AppRouteRecordRaw[] = [
         component: '/page-config/ConfigEdit',
         meta: {
           icon: '',
-          title: '场景布局配置(菜单不可见)'
+          title: '场景布局配置'
         }
       },
       {
@@ -173,7 +173,7 @@ const fullRoutes: AppRouteRecordRaw[] = [
         component: '/page-config/PageCameraList',
         meta: { 
           icon: '',
-          title: '相机布局列表(菜单不可见)',
+          title: '相机布局列表',
         }
       },
       {
@@ -183,7 +183,7 @@ const fullRoutes: AppRouteRecordRaw[] = [
         component: '/map-config/mini-map/MiniMapConfig',
         meta: { 
           icon: '',
-          title: '相机布局配置(菜单不可见)',
+          title: '相机布局配置',
         }
       }
     ]
@@ -309,7 +309,7 @@ const fullRoutes: AppRouteRecordRaw[] = [
         component: '/message/reportmessage/ReportOperation',
         meta: { 
           icon: '',
-          title: '报表推送配置(菜单不可见)' 
+          title: '报表推送配置' 
         },
       },
       {
@@ -329,7 +329,7 @@ const fullRoutes: AppRouteRecordRaw[] = [
         component: '/message/alarm-config/AlarmConfig',
         meta: { 
           icon: '',
-          title: '报警推送配置(菜单不可见)',
+          title: '报警推送配置',
         },
       },
       {
@@ -349,7 +349,7 @@ const fullRoutes: AppRouteRecordRaw[] = [
         component: '/message/sysnotion-config/SysnotionConfig',
         meta: { 
           icon: '',
-          title: '系统通知配置(菜单不可见)',
+          title: '系统通知配置',
         },
       }, 
       {

+ 28 - 0
src/types/message/constant.ts

@@ -0,0 +1,28 @@
+/* 推送消息类型:1-平台违规报警数据 2-平台访问统计数 3-指定人员访问数据 */
+export enum PushMessageTypeEnum {
+  VIOLATION_WARNING = 1,
+  ACCESS_COUNT = 2,
+  DESIGNEE_ACCESS_DATA = 3
+}
+
+/* 功能类型:1是新增,2是查询,3是编辑 */
+export enum OperationTypeEnum {
+  ADD = 1,
+  SEARCH = 2,
+  EDIT = 3
+}
+
+/* 统计时间段类型:1-周报 2-月报 3-季报 4-年报 5-自定义 */
+export enum StatisticTypeEnum {
+  WEEK_REPORT = 1,
+  MONTH_REPORT = 2,
+  QUARTER_REPORT = 3,
+  YEAR_REPORT = 4,
+  CUSTOM_REPORT = 5,
+}
+
+export const OperationTypeNames = {
+  [OperationTypeEnum.ADD]: '新增',
+  [OperationTypeEnum.SEARCH]: '查询',
+  [OperationTypeEnum.EDIT]: '编辑',
+} 

+ 1 - 1
src/views/cameras/overview/CamerasOverview.vue

@@ -322,7 +322,7 @@
   };
 
   const handlePreview = (_row) => {
-    router.push(`/cameras/preview?cameraId=${_row.id}`);
+    router.push(`/algorithm/config?cameraId=${_row.id}`);
   };
 
   const handleDelete = (row) => {

+ 11 - 6
src/views/cameras/overview/components/AddCameraByIP.vue

@@ -82,9 +82,9 @@
             @update:scene-checked-list="handleUpdateSceneTemplateList"
           />
         </el-form-item>
-        <el-form-item label="所属工位:" prop="workspaceId">
+        <el-form-item label="所属工位:" prop="workspaceIdStr">
           <el-tree-select
-            v-model="cameraIPData.workspaceId"
+            v-model="cameraIPData.workspaceIdStr"
             :data="workspaceInfo"
             :render-after-expand="false"
             :default-expand-all="props.formData ? true : false"
@@ -147,7 +147,9 @@
   const { workspaceInfo, getWorkspaceFromTreeInfo, getWorkspaceIdFromTreeNode } = treeWorkspaceInfo;
 
   const IPFormRef = ref();
-  const cameraIPData = ref<CameraDetailServer>({} as CameraDetailServer);
+
+  type CameraDetailForm = CameraDetailServer & { workspaceIdStr?: string };
+  const cameraIPData = ref<CameraDetailForm>({} as CameraDetailForm);
 
   const rules = {
     name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
@@ -158,7 +160,7 @@
     password: [{ required: true, message: '请输入用户名密码', trigger: 'blur' }],
     cameraType: [{ required: true, message: '请选择协议类型', trigger: 'blur' }],
     sceneTemplateList: [{ required: true, message: '请选择至少一个业务场景', trigger: 'blur' }],
-    workspaceId: [{ required: true, message: '请选择工位', trigger: 'blur' }],
+    workspaceIdStr: [{ required: true, message: '请选择工位', trigger: 'blur' }],
     videoStandard: [{ required: true, message: '请选择视频编码标准', trigger: 'blur' }],
   };
 
@@ -174,6 +176,10 @@
     IPFormRef.value.validate((valid) => {
       if (valid) {
         const copyData = cloneDeep(cameraIPData.value);
+        if (cameraIPData.value.workspaceIdStr)
+          copyData.workspaceId = Number(
+            getWorkspaceIdFromTreeNode(cameraIPData.value.workspaceIdStr),
+          );
         delete (copyData as any).principal;
         copyData.sourceType = 'IP';
         emits('confirm-execute', copyData);
@@ -183,7 +189,6 @@
 
   const handleTreeSelect = (node) => {
     if (node.disabled) return;
-    cameraIPData.value.workspaceId = Number(getWorkspaceIdFromTreeNode(node.value));
     cameraIPData.value.principal = node.principalName ? node.principalName : '该工位暂无负责人';
     cameraIPData.value.workshopId = node.workshopId;
   };
@@ -191,8 +196,8 @@
   onBeforeMount(() => {
     getWorkspaceFromTreeInfo();
     if (props.formData) {
-      console.log('props.formData', props.formData);
       cameraIPData.value = props.formData;
+      cameraIPData.value.workspaceIdStr = `workspace-${props.formData.workspaceId}`;
     }
   });
 </script>

+ 11 - 6
src/views/cameras/overview/components/AddCameraByNVR.vue

@@ -61,9 +61,9 @@
             @update:scene-checked-list="handleUpdateSceneTemplateList"
           />
         </el-form-item>
-        <el-form-item label="所属工位:" prop="workspaceId">
+        <el-form-item label="所属工位:" prop="workspaceIdStr">
           <el-tree-select
-            v-model="cameraNVRData.workspaceId"
+            v-model="cameraNVRData.workspaceIdStr"
             :data="workspaceInfo"
             :render-after-expand="false"
             :default-expand-all="props.formData ? true : false"
@@ -146,7 +146,9 @@
   const { workspaceInfo, getWorkspaceFromTreeInfo, getWorkspaceIdFromTreeNode } = treeWorkspaceInfo;
 
   const NVRFormRef = ref();
-  const cameraNVRData = ref<CameraDetailServer>({} as CameraDetailServer);
+
+  type CameraDetailForm = CameraDetailServer & { workspaceIdStr?: string };
+  const cameraNVRData = ref<CameraDetailForm>({} as CameraDetailForm);
 
   const rules = {
     nvrId: [{ required: true, message: '请选择NVR设备', trigger: 'blur' }],
@@ -154,7 +156,7 @@
     code: [{ required: true, message: '请输入设备ID', trigger: 'blur' }],
     nvrChannel: [{ required: true, message: '请输入NVR平台通道号', trigger: 'blur' }],
     sceneTemplateList: [{ required: true, message: '请选择至少一个业务场景', trigger: 'blur' }],
-    workspaceId: [{ required: true, message: '请选择工位', trigger: 'blur' }],
+    workspaceIdStr: [{ required: true, message: '请选择工位', trigger: 'blur' }],
     cameraType: [{ required: true, message: '请选择协议类型', trigger: 'blur' }],
     videoStandard: [{ required: true, message: '请选择视频编码标准', trigger: 'blur' }],
   };
@@ -171,6 +173,10 @@
     NVRFormRef.value.validate((valid) => {
       if (valid) {
         const copyData = cloneDeep(cameraNVRData.value);
+        if (cameraNVRData.value.workspaceIdStr)
+          copyData.workspaceId = Number(
+            getWorkspaceIdFromTreeNode(cameraNVRData.value.workspaceIdStr),
+          );
         delete (copyData as any).principal;
         copyData.sourceType = 'NVR';
         emits('confirm-execute', copyData);
@@ -180,7 +186,6 @@
 
   const handleTreeSelect = (node) => {
     if (node.disabled) return;
-    cameraNVRData.value.workspaceId = Number(getWorkspaceIdFromTreeNode(node.value));
     cameraNVRData.value.principal = node.principalName ? node.principalName : '该工位暂无负责人';
     cameraNVRData.value.workshopId = node.workshopId;
   };
@@ -189,8 +194,8 @@
     getNvrDevice();
     getWorkspaceFromTreeInfo();
     if (props.formData) {
-      console.log('props.formData', props.formData);
       cameraNVRData.value = props.formData;
+      cameraNVRData.value.workspaceIdStr = `workspace-${props.formData.workspaceId}`;
     }
   });
 </script>

+ 11 - 6
src/views/cameras/overview/components/AddCameraBySRS.vue

@@ -54,9 +54,9 @@
             @update:scene-checked-list="handleUpdateSceneTemplateList"
           />
         </el-form-item>
-        <el-form-item label="所属工位:" prop="workspaceId">
+        <el-form-item label="所属工位:" prop="workspaceIdStr">
           <el-tree-select
-            v-model="CameraSRSData.workspaceId"
+            v-model="CameraSRSData.workspaceIdStr"
             :data="workspaceInfo"
             :render-after-expand="false"
             :default-expand-all="props.formData ? true : false"
@@ -115,14 +115,16 @@
   const { workspaceInfo, getWorkspaceFromTreeInfo, getWorkspaceIdFromTreeNode } = treeWorkspaceInfo;
 
   const IPFormRef = ref();
-  const CameraSRSData = ref<CameraDetailServer>({} as CameraDetailServer);
+
+  type CameraDetailForm = CameraDetailServer & { workspaceIdStr?: string };
+  const CameraSRSData = ref<CameraDetailForm>({} as CameraDetailForm);
 
   const rules = {
     name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
     code: [{ required: true, message: '请输入设备ID', trigger: 'blur' }],
     rtspUrl: [{ required: true, message: '请输入流媒体地址', trigger: 'blur' }],
     sceneTemplateList: [{ required: true, message: '请选择至少一个业务场景', trigger: 'blur' }],
-    workspaceId: [{ required: true, message: '请选择工位', trigger: 'blur' }],
+    workspaceIdStr: [{ required: true, message: '请选择工位', trigger: 'blur' }],
     videoStandard: [{ required: true, message: '请选择视频编码标准', trigger: 'blur' }],
   };
 
@@ -138,6 +140,10 @@
     IPFormRef.value.validate((valid) => {
       if (valid) {
         const copyData = cloneDeep(CameraSRSData.value);
+        if (CameraSRSData.value.workspaceIdStr)
+          copyData.workspaceId = Number(
+            getWorkspaceIdFromTreeNode(CameraSRSData.value.workspaceIdStr),
+          );
         delete (copyData as any).principal;
         copyData.sourceType = 'RTSP';
         emits('confirm-execute', copyData);
@@ -147,7 +153,6 @@
 
   const handleTreeSelect = (node) => {
     if (node.disabled) return;
-    CameraSRSData.value.workspaceId = Number(getWorkspaceIdFromTreeNode(node.value));
     CameraSRSData.value.principal = node.principalName ? node.principalName : '该工位暂无负责人';
     CameraSRSData.value.workshopId = node.workshopId;
   };
@@ -155,8 +160,8 @@
   onBeforeMount(() => {
     getWorkspaceFromTreeInfo();
     if (props.formData) {
-      console.log('props.formData', props.formData);
       CameraSRSData.value = props.formData;
+      CameraSRSData.value.workspaceIdStr = `workspace-${props.formData.workspaceId}`;
     }
   });
 </script>

+ 1 - 1
src/views/cameras/preview/components/AlgorithmsSetting/AlgorithmsSetting.vue

@@ -77,7 +77,7 @@
   const cameraDetailStore = useCameraDetailStore();
   const userStore = useUserStore();
 
-  const hasAddPermission = () => userStore.checkPermission('algo_add');
+  const hasAddPermission = () => userStore.checkPermission('back:algo:config:add');
   const algoSettingIsOpen = ref(false);
 
   const handleToggleSetting = (algoId: number) => {

+ 3 - 3
src/views/datamanager/platformdata/components/query/Query.vue

@@ -50,7 +50,7 @@
     getWorkshopVisitedTimes,
   } from '@/api/datamanagement/dataplatform';
   import { formatWorkshopChart, formatCameraChart } from '@/utils/platformUtils';
-  import { deptTreeList } from '@/api/auth/dept';
+  import { getAllDepartments } from '@/api/auth/dept';
   import _ from 'lodash-es';
 
   const departmentList = ref<any[]>([]);
@@ -60,10 +60,10 @@
   const { flattenedWorkshops, getScenesTree, calculateTreeData } = sceneInfos;
   onMounted(() => {
     getScenesTree({ level: 1, valueKey: 'code', labelKey: 'name', disabled: true });
-    deptTreeList().then((res) => {
+    getAllDepartments().then((res) => {
       departmentList.value = calculateTreeData(
         res,
-        { level: 3, valueKey: 'deptId', labelKey: 'deptName' },
+        { level: 3, valueKey: 'id', labelKey: 'deptName' },
         1,
       );
     });

+ 3 - 3
src/views/datamanager/platformdata/components/score/Score.vue

@@ -60,7 +60,7 @@
   import { useSceneInfos } from '@/hooks/useSceneInfos';
   import ScoreTable from '../common/ScoreTable.vue';
   import ScoreLineChart from '../../charts/ScoreLineChart.vue';
-  import { deptTreeList } from '@/api/auth/dept';
+  import { getAllDepartments } from '@/api/auth/dept';
   import _ from 'lodash-es';
 
   const departmentList = ref<any[]>([]);
@@ -70,10 +70,10 @@
   const { getScenesTree, calculateTreeData } = sceneInfos;
   onMounted(() => {
     getScenesTree({ level: 1, valueKey: 'code', labelKey: 'name', disabled: true });
-    deptTreeList().then((res) => {
+    getAllDepartments().then((res) => {
       departmentList.value = calculateTreeData(
         res,
-        { level: 3, valueKey: 'deptId', labelKey: 'deptName' },
+        { level: 3, valueKey: 'id', labelKey: 'deptName' },
         1,
       );
     });

+ 12 - 8
src/views/map-config/mini-map/MapBase/KonvaMap.vue

@@ -190,8 +190,13 @@ const handleStageClick = (e: any) => {
       const clickedVideoUrl = props.filterData.find(
         (item) => item.code === lastClickedGroupId.value,
       );
-      if (clickedVideoUrl) {
-        lastClickedVideoUrl.value = clickedVideoUrl.pushStreamDTO.videoUrls;
+
+      const videoUrl = clickedVideoUrl.pushStreamDTO?.videoUrls?.pushstreamIpAbs
+      if (videoUrl) {
+        lastClickedVideoUrl.value = videoUrl;
+      } else {
+        ElMessage.error("视频地址不存在")
+        return;
       }
       isShow.value = false;
       posX.value = e.evt.offsetX + 20;
@@ -364,7 +369,6 @@ const saveLayout = () => {
 
 //删除相机
 const handleKeyDown = (e) => {
-  console.log(e)
   if (e.keyCode === 46 || e.code === 'Delete' || e.keyCode === 8 || e.code === 'Backspace') {
     if (lastClickedGroupId.value === defaultCameraId.value) {
       // ElMessage.error({
@@ -433,7 +437,7 @@ const createMap = (layout, selectId) => {
         return item;
       })
       ?.filter((cam) => {
-        if (shopCameraList.value.findIndex((x) => x.code === cam.id) >= 0) {
+        if (props.cameraList.findIndex((x) => x.code === cam.id) >= 0) {
           return true;
         } else {
           unExitList.push(cam.code);
@@ -467,12 +471,12 @@ defineExpose({
 });
 onMounted(() => {
   camImg.src = cameraImgSrc;
-  // stageAll.value.addEventListener('keydown', handleKeyDown);
+  window.addEventListener('keydown', handleKeyDown);
 });
 
-// onBeforeUnmount(() => {
-//   stageAll.value.removeEventListener('keydown', handleKeyDown);
-// });
+onBeforeUnmount(() => {
+  window.removeEventListener('keydown', handleKeyDown);
+});
 </script>
 
 <style scoped lang="scss">

+ 0 - 1
src/views/map-config/mini-map/MiniMapConfig.vue

@@ -219,7 +219,6 @@ const getShopContent = async (id: number) => {
     isMap.value = res.isUploadBg;
     if (res.isUploadBg) {
       isUploadBg.value = true;
-      console.log(res)
       konvaMap.value.createMap(res, selectedShopId.value);
     } else {
       hasBg.value = false;

+ 10 - 3
src/views/page-config/component/BasicLayoutList.vue

@@ -82,6 +82,7 @@ const length = computed(() => {
 const selectCompany = ref<number>();
 const viewType = ref<number>();
 const handleSelectChange = async () => {
+  sessionStorage.setItem('selectCompanyId', String(selectCompany.value))
   layoutList.value = await getLayoutInfoList(props.layoutType)
   const layoutIDList = layoutList.value.map((x) => x.id);
   getLayoutInfoImg(props.layoutType, viewType.value!, layoutIDList)
@@ -142,8 +143,13 @@ const getLayoutInfoImg = (layoutType: LayoutConfigType.scene | LayoutConfigType.
     case LayoutConfigType.camera:
       cameraPlatformApiMap[viewType]({ workshopIdList: idList }).then((res) => {
         res.map((workshopWithLayout) => {
-          layoutList.value.find((workshop) => workshop.id === workshopWithLayout.targetId)!.layout =
-            JSON.parse(workshopWithLayout.layout).bgImgUrl;
+          let img
+          try {
+            img = JSON.parse(workshopWithLayout.layout).bgImgUrl;
+          } catch {
+            img = ''
+          }
+          layoutList.value.find((workshop) => workshop.id === workshopWithLayout.targetId)!.layout = img
         });
       });
       break;
@@ -154,7 +160,8 @@ onMounted(async () => {
   viewType.value = Number(router.currentRoute.value.query.viewType);
   companyList.value = await getCompanyListApi();
   if (!companyList.value) return;
-  selectCompany.value = companyList.value[0].id;
+  const savedCompanyId = sessionStorage.getItem('selectCompanyId');
+  selectCompany.value = savedCompanyId ? Number(savedCompanyId) : companyList.value[0].id;
   layoutList.value = await getLayoutInfoList(props.layoutType)
   const layoutIDList = layoutList.value.map((x) => x.id);
   getLayoutInfoImg(props.layoutType, viewType.value, layoutIDList)

+ 1 - 1
src/views/system-config/business-scene/PageBusinessScene.vue

@@ -103,7 +103,7 @@ const actionColumn: BasicColumn = reactive({
                     label: '编辑',
                     icon: Edit,
                     onClick: () => {
-                        openDrawer('修改业务场景');
+                        openDrawer('编辑业务场景');
                         tableInfo.value = record.row;
                     },
                 },

+ 0 - 234
src/views/system-config/template/CardCommon.vue

@@ -1,234 +0,0 @@
-<template>
-  <div>
-    <TitleCommon
-      v-model="cardaddDrawer"
-      :type="props.type"
-      :pagesize="currentPageSize"
-      :pagenumber="currentPage"
-      :drawer="cardaddDrawer"
-      :tab="props.tab"
-      @find-data-by-name="searchDataByName"
-      @submit-drawer="addData"
-      @add-form="clickAddData"
-      @handle-close="closeDrawer"
-      @clear-data="clearData"
-    >
-    </TitleCommon>
-
-    <div style="margin-top: 20px">
-      <el-table style="width: 100%" :data="tableData" highlight-current-row>
-        <el-table-column :label="props.type + `名称`" prop="name" />
-        <!-- <el-table-column :label="props.type + `代码`" prop="code" /> -->
-
-        <el-table-column prop="status" label="状态">
-          <template #default="scope">
-            <el-tag v-if="scope.row.status === 0" type="success">启用</el-tag>
-            <el-tag v-else type="danger">禁用</el-tag>
-          </template>
-        </el-table-column>
-
-        <el-table-column label="备注" prop="remark" />
-        <el-table-column label="创建时间" prop="createdAt" />
-        <el-table-column label="操作">
-          <template #default="scoped">
-            <el-popconfirm title="确认要删除吗?" @confirm="deleteTableData(scoped.row)">
-              <template #reference>
-                <img
-                  :src="del"
-                  alt="delete"
-                  class="actionIcon"
-                  style="height: 30px; width: 30px; padding: 5px"
-                />
-              </template>
-            </el-popconfirm>
-            <img
-              :src="edit"
-              alt="edit"
-              class="actionIcon"
-              @click="showEditDrawer(scoped.row)"
-              style="height: 30px; width: 30px; padding: 5px"
-            />
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <div>
-        <el-pagination
-          v-model:currentPage="currentPage"
-          v-model:currentPageSize="currentPageSize"
-          :page-sizes="[10, 20, 50, 100, 200]"
-          layout="->,total,sizes,prev,pager,next,jumper"
-          :total="total"
-          @size-change="handleSizeChangeFun"
-          @current-change="handlePageChangeFun"
-        />
-      </div>
-    </div>
-
-    <el-drawer
-      v-model="cardeditDrawer"
-      direction="rtl"
-      :title="type === '模板' ? '编辑模板' : '编辑标签'"
-      :before-close="handleClose"
-    >
-      <DrawerCommonVue
-        :detail="currentdrawerFormData"
-        :type="props.type"
-        v-if="currentdrawerFormData"
-        @submit-drawer="submitDrawer"
-      />
-    </el-drawer>
-  </div>
-</template>
-
-<script setup lang="ts">
-  import { onMounted, ref } from 'vue';
-  import { ElDrawer, ElMessageBox } from 'element-plus';
-  import DrawerCommonVue, { FormModelCommon } from './DrawerCommon.vue';
-  import TitleCommon, { DataCommon } from './TitleCommon.vue';
-  import { Records, SceneModule } from '@/api/template/template';
-  import del from '@/assets/icons/del.png';
-  import edit from '@/assets/icons/edit.png';
-  import { LabelType } from './constant';
-
-  // const currentFormType = ref('场景');
-
-  export type CreateType = '添加模板' | '编辑模板' | '添加标签' | '编辑标签';
-  export interface TableModel {
-    id: number;
-    name: string;
-    code: string;
-    status: number;
-    remark: string;
-    createAt: string;
-  }
-
-  export interface ModelCommon {
-    drawerFormData: FormModelCommon | null;
-  }
-
-  export interface Page {
-    page: number;
-    size: number;
-  }
-
-  // const currentType = ref<CreateType>('编辑模板');
-  const currentdrawerFormData = ref<FormModelCommon>({} as FormModelCommon);
-  const cardeditDrawer = ref(false);
-  const cardaddDrawer = ref(false);
-  const currentPage = ref(1);
-  const currentPageSize = ref(10);
-  const total = ref(100);
-  const tableData = ref<Records[]>([]);
-
-  const props = defineProps<{
-    type: string;
-    tab: LabelType;
-    addData: (d: SceneModule) => Promise<unknown>;
-    searchDataByName: (d: DataCommon) => Promise<unknown>;
-    deleteTableData: (d: TableModel) => Promise<unknown>;
-    submitDrawer: (d: SceneModule) => Promise<unknown>;
-    getData: (d: Page) => Promise<unknown>;
-  }>();
-
-  // 删除数据-finish
-  function deleteTableData(row: TableModel) {
-    // emit('deleteTableData', row);
-    props.deleteTableData(row).then((res) => {
-      console.log('deleteTableData', res);
-      getData({ page: currentPage.value, size: currentPageSize.value });
-    });
-  }
-
-  // 编辑数据弹框-finish
-  function showEditDrawer(row: TableModel) {
-    cardeditDrawer.value = true;
-    console.log('row', row);
-    currentdrawerFormData.value = row;
-  }
-
-  // 弹框关闭事件-finish
-  const handleClose = (done: () => void) => {
-    done();
-    closeDrawer();
-  };
-
-  // 编辑提交数据
-  function submitDrawer(data: SceneModule) {
-    console.log('编辑提交数据:', data);
-    props.submitDrawer(data).then((res) => {
-      console.log('submitDrawer', res);
-      closeDrawer();
-      getData({ page: currentPage.value, size: currentPageSize.value });
-    });
-  }
-
-  // 查询数据列表-finish
-  function getData(data: Page) {
-    props.getData(data).then((res) => {
-      console.log('getData', res);
-      tableData.value = res.records;
-      total.value = res.totalRow;
-    });
-  }
-
-  // 根据名称找到数据-finish
-  function searchDataByName(data: DataCommon) {
-    props.searchDataByName(data).then((res) => {
-      console.log('searchDataByName', res);
-      tableData.value = res.records;
-    });
-  }
-
-  // 单机添加按钮,控制弹框显示-finish
-  function clickAddData() {
-    cardaddDrawer.value = true;
-  }
-
-  // 添加数据-finish
-  function addData(data: SceneModule) {
-    props.addData(data).then((res) => {
-      console.log('addData', res);
-      closeDrawer();
-
-      getData({ page: currentPage.value, size: currentPageSize.value });
-    });
-  }
-
-  function closeDrawer() {
-    cardaddDrawer.value = false;
-    cardeditDrawer.value = false;
-    getData({ page: currentPage.value, size: currentPageSize.value });
-  }
-
-  // 清空输入框数据-finish
-  function clearData() {
-    // getSceneLabelList(currentPage.value, currentPageSize.value);
-    getData({ page: currentPage.value, size: currentPageSize.value });
-  }
-
-  // 页数-finish
-  function handleSizeChangeFun(val: number) {
-    currentPageSize.value = val;
-    getData({ page: currentPage.value, size: currentPageSize.value });
-  }
-
-  // 翻页-finish
-  function handlePageChangeFun(val: number) {
-    currentPage.value = val;
-    console.log('currentPage:' + currentPage.value);
-    getData({ page: currentPage.value, size: currentPageSize.value });
-  }
-
-  onMounted(() => {
-    // getData(props.currentPage, props.currentPageSize);
-    getData({ page: currentPage.value, size: currentPageSize.value });
-  });
-</script>
-
-<style scoped>
-  .actionIcon {
-    display: inline-block;
-    cursor: pointer;
-  }
-</style>

+ 0 - 235
src/views/system-config/template/CardCommon_shangfei.vue

@@ -1,235 +0,0 @@
-<template>
-  <div>
-    <TitleCommon_shangfei
-      v-model="cardaddDrawer"
-      :type="props.type"
-      :pagesize="currentPageSize"
-      :pagenumber="currentPage"
-      :drawer="cardaddDrawer"
-      :tab="props.tab"
-      @find-data-by-name="searchDataByName"
-      @submit-drawer="addData"
-      @add-form="clickAddData"
-      @handle-close="closeDrawer"
-      @clear-data="clearData"
-    >
-    </TitleCommon_shangfei>
-
-    <div style="margin-top: 20px">
-      <el-table style="width: 100%" :data="tableData" highlight-current-row>
-        <el-table-column :label="props.type + `名称`" prop="name" />
-        <!-- <el-table-column :label="props.type + `代码`" prop="code" /> -->
-
-        <el-table-column prop="status" label="状态">
-          <template #default="scope">
-            <el-tag v-if="scope.row.status === 0" type="success">启用</el-tag>
-            <el-tag v-else type="danger">禁用</el-tag>
-          </template>
-        </el-table-column>
-
-        <el-table-column label="备注" prop="remark" />
-        <el-table-column label="创建时间" prop="createdAt" />
-        <el-table-column label="操作">
-          <template #default="scoped">
-            <el-popconfirm title="确认要删除吗?" @confirm="deleteTableData(scoped.row)">
-              <template #reference>
-                <img
-                  :src="del"
-                  alt="delete"
-                  class="actionIcon"
-                  style="height: 30px; width: 30px; padding: 5px"
-                />
-              </template>
-            </el-popconfirm>
-            <img
-              :src="edit"
-              alt="edit"
-              class="actionIcon"
-              @click="showEditDrawer(scoped.row)"
-              style="height: 30px; width: 30px; padding: 5px"
-              v-if="props.type === '标签'"
-            />
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <div>
-        <el-pagination
-          v-model:currentPage="currentPage"
-          v-model:currentPageSize="currentPageSize"
-          :page-sizes="[10, 20, 50, 100, 200]"
-          layout="->,total,sizes,prev,pager,next,jumper"
-          :total="total"
-          @size-change="handleSizeChangeFun"
-          @current-change="handlePageChangeFun"
-        />
-      </div>
-    </div>
-
-    <el-drawer
-      v-model="cardeditDrawer"
-      direction="rtl"
-      :title="type === '模板' ? '编辑模板' : '编辑标签'"
-      :before-close="handleClose"
-    >
-      <DrawerCommonVue_shangfei
-        :detail="currentdrawerFormData"
-        :type="props.type"
-        v-if="currentdrawerFormData"
-        @submit-drawer="submitDrawer"
-      />
-    </el-drawer>
-  </div>
-</template>
-
-<script setup lang="ts">
-  import { onMounted, ref } from 'vue';
-  import { ElDrawer, ElMessageBox } from 'element-plus';
-  import DrawerCommonVue_shangfei, { FormModelCommon } from './DrawerCommon_shangfei.vue';
-  import TitleCommon_shangfei, { DataCommon } from './TitleCommon_shangfei.vue';
-  import { Records, SceneModule } from '@/api/template/template';
-  import del from '@/assets/icons/del.png';
-  import edit from '@/assets/icons/edit.png';
-  import { LabelType } from './constant';
-
-  // const currentFormType = ref('场景');
-
-  export type CreateType = '添加模板' | '编辑模板' | '添加标签' | '编辑标签';
-  export interface TableModel {
-    id: number;
-    name: string;
-    code: string;
-    status: number;
-    remark: string;
-    createAt: string;
-  }
-
-  export interface ModelCommon {
-    drawerFormData: FormModelCommon | null;
-  }
-
-  export interface Page {
-    page: number;
-    size: number;
-  }
-
-  // const currentType = ref<CreateType>('编辑模板');
-  const currentdrawerFormData = ref<FormModelCommon>({} as FormModelCommon);
-  const cardeditDrawer = ref(false);
-  const cardaddDrawer = ref(false);
-  const currentPage = ref(1);
-  const currentPageSize = ref(10);
-  const total = ref(100);
-  const tableData = ref<Records[]>([]);
-
-  const props = defineProps<{
-    type: string;
-    tab: LabelType;
-    addData: (d: SceneModule) => Promise<unknown>;
-    searchDataByName: (d: DataCommon) => Promise<unknown>;
-    deleteTableData: (d: TableModel) => Promise<unknown>;
-    submitDrawer: (d: SceneModule) => Promise<unknown>;
-    getData: (d: Page) => Promise<unknown>;
-  }>();
-
-  // 删除数据-finish
-  function deleteTableData(row: TableModel) {
-    // emit('deleteTableData', row);
-    props.deleteTableData(row).then((res) => {
-      console.log('deleteTableData', res);
-      getData({ page: currentPage.value, size: currentPageSize.value });
-    });
-  }
-
-  // 编辑数据弹框-finish
-  function showEditDrawer(row: TableModel) {
-    cardeditDrawer.value = true;
-    console.log('row', row);
-    currentdrawerFormData.value = row;
-  }
-
-  // 弹框关闭事件-finish
-  const handleClose = (done: () => void) => {
-    done();
-    closeDrawer();
-  };
-
-  // 编辑提交数据
-  function submitDrawer(data: SceneModule) {
-    console.log('编辑提交数据:', data);
-    props.submitDrawer(data).then((res) => {
-      console.log('submitDrawer', res);
-      closeDrawer();
-      getData({ page: currentPage.value, size: currentPageSize.value });
-    });
-  }
-
-  // 查询数据列表-finish
-  function getData(data: Page) {
-    props.getData(data).then((res) => {
-      console.log('getData', res);
-      tableData.value = res.records;
-      total.value = res.totalRow;
-    });
-  }
-
-  // 根据名称找到数据-finish
-  function searchDataByName(data: DataCommon) {
-    props.searchDataByName(data).then((res) => {
-      console.log('searchDataByName', res);
-      tableData.value = res.records;
-    });
-  }
-
-  // 单机添加按钮,控制弹框显示-finish
-  function clickAddData() {
-    cardaddDrawer.value = true;
-  }
-
-  // 添加数据-finish
-  function addData(data: SceneModule) {
-    props.addData(data).then((res) => {
-      console.log('addData', res);
-      closeDrawer();
-
-      getData({ page: currentPage.value, size: currentPageSize.value });
-    });
-  }
-
-  function closeDrawer() {
-    cardaddDrawer.value = false;
-    cardeditDrawer.value = false;
-    getData({ page: currentPage.value, size: currentPageSize.value });
-  }
-
-  // 清空输入框数据-finish
-  function clearData() {
-    // getSceneLabelList(currentPage.value, currentPageSize.value);
-    getData({ page: currentPage.value, size: currentPageSize.value });
-  }
-
-  // 页数-finish
-  function handleSizeChangeFun(val: number) {
-    currentPageSize.value = val;
-    getData({ page: currentPage.value, size: currentPageSize.value });
-  }
-
-  // 翻页-finish
-  function handlePageChangeFun(val: number) {
-    currentPage.value = val;
-    console.log('currentPage:' + currentPage.value);
-    getData({ page: currentPage.value, size: currentPageSize.value });
-  }
-
-  onMounted(() => {
-    // getData(props.currentPage, props.currentPageSize);
-    getData({ page: currentPage.value, size: currentPageSize.value });
-  });
-</script>
-
-<style scoped>
-  .actionIcon {
-    display: inline-block;
-    cursor: pointer;
-  }
-</style>

+ 0 - 149
src/views/system-config/template/DrawerCommon.vue

@@ -1,149 +0,0 @@
-<template>
-  <div>
-    <el-form ref="ruleDrawerRef" :model="form" label-width="100px">
-      <el-form-item
-        :label="props.type === '模板' ? '模板名称' : '标签名称'"
-        prop="name"
-        :rules="[
-          {
-            required: true,
-            message: '输入模板名称',
-            trigger: 'blur',
-          },
-        ]"
-      >
-        <el-input placeholder="请输入模板名称" v-model="form.name" />
-      </el-form-item>
-
-      <el-form-item
-        v-if="
-          isEqual(props.detail, {}) ||
-          !props.detail.code ||
-          (props.detail.code && props.detail.code == '')
-        "
-        :label="props.type === '模板' ? '模板代码' : '标签代码'"
-        prop="code"
-        :rules="[
-          {
-            required: true,
-            message: '输入模板代码',
-            trigger: 'blur',
-          },
-        ]"
-      >
-        <el-input placeholder="请输入模板代码" v-model="form.code" />
-      </el-form-item>
-
-      <el-form-item label="备注" prop="remark">
-        <el-input placeholder="请输入备注" v-model="form.remark" />
-      </el-form-item>
-
-      <!-- <el-form-item label="模板上传">
-        <el-upload>
-          <el-button disabled>上传</el-button>
-        </el-upload>
-      </el-form-item> -->
-
-      <el-form-item label="状态" prop="status">
-        <el-switch v-model="form.status" :active-value="0" :inactive-value="1" />
-      </el-form-item>
-
-      <div style="margin-top: 100px; margin-left: 180px">
-        <el-button style="margin-left: 50px" @click="resetForm(ruleDrawerRef)">重置</el-button>
-        <el-button style="margin-left: 50px" @click="submitDrawer(ruleDrawerRef)" type="primary"
-          >提交</el-button
-        >
-      </div>
-    </el-form>
-  </div>
-</template>
-
-<script setup lang="ts">
-  import { ref, watch } from 'vue';
-  import { FormInstance } from 'element-plus';
-  import { onMounted } from 'vue';
-  import { cloneDeep, isEqual } from 'lodash-es';
-
-  import { uid } from 'uid';
-
-  export interface FormModelCommon {
-    id?: number;
-    code: string;
-    name: string;
-    status: number;
-    remark: string;
-  }
-  export type CreateType = 'create' | 'edit';
-  const props = defineProps<{ detail: FormModelCommon; type: string }>();
-  const emit = defineEmits(['submitDrawer']);
-  // const form = ref<FormModelCommon>({
-  //   id: props.detail.id,
-  //   name: props.detail.name,
-  //   code: props.detail.code,
-  //   remark: props.detail.remark,
-  //   status: props.detail.status,
-  // });
-
-  const form = ref<FormModelCommon>({
-    id: undefined,
-    name: '',
-    code: '',
-    remark: '',
-    status: 0,
-  });
-
-  const getValue = () => {
-    const dataForm = cloneDeep(props.detail);
-    form.value.id = dataForm.id;
-    form.value.name = dataForm.name;
-    form.value.code = dataForm.code;
-    form.value.remark = dataForm.remark;
-    form.value.status = dataForm.status;
-  };
-
-  watch(
-    () => props.detail,
-    () => {
-      getValue();
-    },
-    { immediate: true },
-  );
-
-  const ruleDrawerRef = ref<FormInstance>();
-
-  function resetForm(formE1: FormInstance | undefined) {
-    if (!formE1) return;
-    formE1.resetFields();
-    form.value.name = '';
-    form.value.code = '';
-    form.value.remark = '';
-    form.value.status = 0;
-    console.log('resetForm');
-  }
-
-  function submitDrawer(formEl: FormInstance | undefined) {
-    console.log('common-', form, props.detail.code);
-    if (!formEl) return;
-    formEl.validate((valid, fields) => {
-      if (valid) {
-        const drawerData = {
-          id: form.value.id,
-          name: form.value.name,
-          code: form.value.code === '' ? uid(16) : form.value.code,
-          remark: form.value.remark,
-          status: form.value.status,
-        };
-        emit('submitDrawer', drawerData);
-      } else {
-        console.log('error submit!', fields);
-      }
-    });
-  }
-
-  onMounted(() => {
-    console.log('drawercommon-form', form);
-    console.log('drawercommon-props', props.detail);
-  });
-</script>
-
-<style scoped></style>

+ 0 - 150
src/views/system-config/template/DrawerCommon_shangfei.vue

@@ -1,150 +0,0 @@
-<template>
-  <div>
-    <el-form ref="ruleDrawerRef" :model="form" label-width="100px">
-      <el-form-item
-        :label="props.type === '模板' ? '模板名称' : '标签名称'"
-        prop="name"
-        :rules="[
-          {
-            required: true,
-            message: '输入模板名称',
-            trigger: 'blur',
-          },
-        ]"
-      >
-        <el-input placeholder="请输入模板名称" v-model="form.name" />
-      </el-form-item>
-
-      <!-- <el-form-item
-        v-if="
-          isEqual(props.detail, {}) ||
-          !props.detail.code ||
-          (props.detail.code && props.detail.code == '')
-        "
-        :label="props.type === '模板' ? '模板代码' : '标签代码'"
-        prop="code"
-        :rules="[
-          {
-            required: true,
-            message: '输入模板代码',
-            trigger: 'blur',
-          },
-        ]"
-      >
-        <el-input placeholder="请输入模板代码" v-model="form.code" />
-      </el-form-item> -->
-
-      <el-form-item label="备注" prop="remark">
-        <el-input placeholder="请输入备注" v-model="form.remark" />
-      </el-form-item>
-
-      <!-- <el-form-item label="模板上传">
-        <el-upload>
-          <el-button disabled>上传</el-button>
-        </el-upload>
-      </el-form-item> -->
-
-      <el-form-item label="状态" prop="status">
-        <el-switch v-model="form.status" :active-value="0" :inactive-value="1" />
-      </el-form-item>
-
-      <div style="margin-top: 100px; margin-left: 180px">
-        <el-button style="margin-left: 50px" @click="resetForm(ruleDrawerRef)">重置</el-button>
-        <el-button style="margin-left: 50px" @click="submitDrawer(ruleDrawerRef)" type="primary"
-          >提交</el-button
-        >
-      </div>
-    </el-form>
-  </div>
-</template>
-
-<script setup lang="ts">
-  import { ref, watch } from 'vue';
-  import { FormInstance } from 'element-plus';
-  import { onMounted } from 'vue';
-  import { cloneDeep, isEqual } from 'lodash-es';
-  import { uid } from 'uid';
-
-  export interface FormModelCommon {
-    id?: number;
-    code: string;
-    name: string;
-    status: number;
-    remark: string;
-  }
-  export type CreateType = 'create' | 'edit';
-  const props = defineProps<{ detail: FormModelCommon; type: string }>();
-  const emit = defineEmits(['submitDrawer']);
-  // const form = ref<FormModelCommon>({
-  //   id: props.detail.id,
-  //   name: props.detail.name,
-  //   code: props.detail.code,
-  //   remark: props.detail.remark,
-  //   status: props.detail.status,
-  // });
-
-  console.log('123xs', 123);
-
-  const form = ref<FormModelCommon>({
-    id: undefined,
-    name: '',
-    code: '',
-    remark: '',
-    status: 0,
-  });
-
-  const getValue = () => {
-    const dataForm = cloneDeep(props.detail);
-    form.value.id = dataForm.id;
-    form.value.name = dataForm.name;
-    form.value.code = dataForm.code;
-    form.value.remark = dataForm.remark;
-    form.value.status = dataForm.status;
-  };
-
-  watch(
-    () => props.detail,
-    () => {
-      getValue();
-    },
-    { immediate: true },
-  );
-
-  const ruleDrawerRef = ref<FormInstance>();
-
-  function resetForm(formE1: FormInstance | undefined) {
-    if (!formE1) return;
-    formE1.resetFields();
-    form.value.name = '';
-    // form.value.code = '';
-    form.value.remark = '';
-    form.value.status = 0;
-    console.log('resetForm');
-  }
-
-  function submitDrawer(formEl: FormInstance | undefined) {
-    console.log('common-', form, props.detail.code);
-    if (!formEl) return;
-    formEl.validate((valid, fields) => {
-      if (valid) {
-        const drawerData = {
-          id: form.value.id,
-          name: form.value.name,
-          code: form.value.code === '' ? uid(16) : form.value.code,
-          remark: form.value.remark,
-          status: form.value.status,
-        };
-        emit('submitDrawer', drawerData);
-      } else {
-        console.log('error submit!', fields);
-      }
-    });
-  }
-
-  onMounted(() => {
-    console.log('drawercommon-form', form);
-    console.log('drawercommon-props', props.detail);
-  });
-</script>
-
-<style scoped></style>

+ 0 - 138
src/views/system-config/template/LabelManager.vue

@@ -1,138 +0,0 @@
-<template>
-  <div>
-    <CardCommon
-      :type="type"
-      :tab="props.tab"
-      :search-data-by-name="findSceneLabelFun"
-      :get-data="getSceneLabelListFun"
-      :delete-table-data="deleteSceneLabelFun"
-      :submit-drawer="updateSceneLabelFun"
-      :add-data="saveSceneLabelFun"
-    >
-    </CardCommon>
-  </div>
-</template>
-
-<script setup lang="ts">
-  import {
-    updateSceneLabel,
-    getSceneLabelList,
-    deleteSceneLabel,
-    findSceneLabelByName,
-    saveSceneLabel,
-    SceneLabel,
-  } from '@/api/template/template';
-  import { ElMessage, ElMessageBox } from 'element-plus';
-  import CardCommon, { TableModel } from './CardCommon.vue';
-  import { DataCommon } from './TitleCommon.vue';
-  import { ref } from 'vue';
-  const type = ref('标签');
-
-  const props = defineProps<{
-    tab: LabelType;
-  }>();
-
-  // 添加数据
-  function saveSceneLabelFun(data: SceneLabel) {
-    return saveSceneLabel(data)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `添加数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 根据名称查找
-  function findSceneLabelFun(data: DataCommon) {
-    console.log('findSceneLabelByName', data.name, data.page, data.size);
-    return findSceneLabelByName(data.name, data.page, data.size)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `查询数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 查找数据列表-finish
-  function getSceneLabelListFun(data) {
-    return getSceneLabelList(data.page, data.size)
-      .then((res) => {
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error.message, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `查询数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 删除数据
-  function deleteSceneLabelFun(data: TableModel) {
-    console.log('detele', data);
-    return deleteSceneLabel(data.id)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `删除数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 编辑数据
-  function updateSceneLabelFun(data: SceneLabel) {
-    console.log('edit', data);
-    return updateSceneLabel(data)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `编辑数据失败`,
-            });
-          },
-        });
-      });
-  }
-</script>
-
-<style scoped></style>

+ 0 - 138
src/views/system-config/template/LabelManager_shangfei.vue

@@ -1,138 +0,0 @@
-<template>
-  <div>
-    <CardCommon_shangfei
-      :type="type"
-      :tab="props.tab"
-      :search-data-by-name="findSceneLabelFun"
-      :get-data="getSceneLabelListFun"
-      :delete-table-data="deleteSceneLabelFun"
-      :submit-drawer="updateSceneLabelFun"
-      :add-data="saveSceneLabelFun"
-    >
-    </CardCommon_shangfei>
-  </div>
-</template>
-
-<script setup lang="ts">
-  import {
-    updateSceneLabel,
-    getSceneLabelList,
-    deleteSceneLabel,
-    findSceneLabelByName,
-    saveSceneLabel,
-    SceneLabel,
-  } from '@/api/template/template';
-  import { ElMessage, ElMessageBox } from 'element-plus';
-  import CardCommon_shangfei, { TableModel } from './CardCommon_shangfei.vue';
-  import { DataCommon } from './TitleCommon.vue';
-  import { ref } from 'vue';
-  const type = ref('标签');
-
-  const props = defineProps<{
-    tab: LabelType;
-  }>();
-
-  // 添加数据
-  function saveSceneLabelFun(data: SceneLabel) {
-    return saveSceneLabel(data)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `添加数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 根据名称查找
-  function findSceneLabelFun(data: DataCommon) {
-    console.log('findSceneLabelByName', data.name, data.page, data.size);
-    return findSceneLabelByName(data.name, data.page, data.size)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `查询数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 查找数据列表-finish
-  function getSceneLabelListFun(data) {
-    return getSceneLabelList(data.page, data.size)
-      .then((res) => {
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error.message, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `查询数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 删除数据
-  function deleteSceneLabelFun(data: TableModel) {
-    console.log('detele', data);
-    return deleteSceneLabel(data.id)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `删除数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 编辑数据
-  function updateSceneLabelFun(data: SceneLabel) {
-    console.log('edit', data);
-    return updateSceneLabel(data)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `编辑数据失败`,
-            });
-          },
-        });
-      });
-  }
-</script>
-
-<style scoped></style>

+ 0 - 139
src/views/system-config/template/SceneManager.vue

@@ -1,139 +0,0 @@
-<template>
-  <div>
-    <CardCommon
-      :type="type"
-      :tab="props.tab"
-      :search-data-by-name="findSceneModuleFun"
-      :get-data="getSceneLabelListFun"
-      :delete-table-data="deleteSceneModuleFun"
-      :submit-drawer="updateSceneModuleFun"
-      :add-data="saveSceneModuleFun"
-    >
-    </CardCommon>
-  </div>
-</template>
-
-<script setup lang="ts">
-  import {
-    updateSceneModule,
-    getSceneModuleList,
-    deleteSceneModule,
-    findSceneModuleByName,
-    saveSceneModule,
-    SceneModule,
-  } from '@/api/template/template';
-  import { ElMessage, ElMessageBox } from 'element-plus';
-  import CardCommon, { TableModel } from './CardCommon.vue';
-  import { DataCommon } from './TitleCommon.vue';
-  import { ref } from 'vue';
-  import { LabelType } from './constant';
-  const type = ref('模板');
-
-  const props = defineProps<{
-    tab: LabelType;
-  }>();
-
-  // 添加数据
-  function saveSceneModuleFun(data: SceneModule) {
-    return saveSceneModule(data)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `添加数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 根据名称查找
-  function findSceneModuleFun(data: DataCommon) {
-    console.log('findSceneModuleByName', data.name, data.page, data.size);
-    return findSceneModuleByName(data.name, data.page, data.size)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `查询数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 查找数据列表-finish
-  function getSceneLabelListFun(data) {
-    return getSceneModuleList(data.page, data.size)
-      .then((res) => {
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error.message, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `查询数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 删除数据
-  function deleteSceneModuleFun(data: TableModel) {
-    console.log('detele', data);
-    return deleteSceneModule(data.id)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `删除数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 编辑数据
-  function updateSceneModuleFun(data: SceneModule) {
-    console.log('edit', data);
-    return updateSceneModule(data)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `编辑数据失败`,
-            });
-          },
-        });
-      });
-  }
-</script>
-
-<style scoped></style>

+ 0 - 139
src/views/system-config/template/SceneManager_shangfei.vue

@@ -1,139 +0,0 @@
-<template>
-  <div>
-    <CardCommon_shangfei
-      :type="type"
-      :tab="props.tab"
-      :search-data-by-name="findSceneModuleFun"
-      :get-data="getSceneLabelListFun"
-      :delete-table-data="deleteSceneModuleFun"
-      :submit-drawer="updateSceneModuleFun"
-      :add-data="saveSceneModuleFun"
-    >
-    </CardCommon_shangfei>
-  </div>
-</template>
-
-<script setup lang="ts">
-  import {
-    updateSceneModule,
-    getSceneModuleList,
-    deleteSceneModule,
-    findSceneModuleByName,
-    saveSceneModule,
-    SceneModule,
-  } from '@/api/template/template';
-  import { ElMessage, ElMessageBox } from 'element-plus';
-  import CardCommon_shangfei, { TableModel } from './CardCommon_shangfei.vue';
-  import { DataCommon } from './TitleCommon.vue';
-  import { ref } from 'vue';
-  import { LabelType } from './constant';
-  const type = ref('模板');
-
-  const props = defineProps<{
-    tab: LabelType;
-  }>();
-
-  // 添加数据
-  function saveSceneModuleFun(data: SceneModule) {
-    return saveSceneModule(data)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `添加数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 根据名称查找
-  function findSceneModuleFun(data: DataCommon) {
-    console.log('findSceneModuleByName', data.name, data.page, data.size);
-    return findSceneModuleByName(data.name, data.page, data.size)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `查询数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 查找数据列表-finish
-  function getSceneLabelListFun(data) {
-    return getSceneModuleList(data.page, data.size)
-      .then((res) => {
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error.message, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `查询数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 删除数据
-  function deleteSceneModuleFun(data: TableModel) {
-    console.log('detele', data);
-    return deleteSceneModule(data.id)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `删除数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 编辑数据
-  function updateSceneModuleFun(data: SceneModule) {
-    console.log('edit', data);
-    return updateSceneModule(data)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `编辑数据失败`,
-            });
-          },
-        });
-      });
-  }
-</script>
-
-<style scoped></style>

+ 0 - 88
src/views/system-config/template/TemplateManager.vue

@@ -1,88 +0,0 @@
-<template>
-  <div style="width: 100%">
-    <div>
-      <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
-        <div v-if="disableDepartmentEdit">
-          <el-tab-pane label="公司模板" name="scene">
-            <SceneManagerVue_shangfei tab="scene" />
-          </el-tab-pane>
-          <el-tab-pane label="场景标签" name="label">
-            <LabelManagerVue_shangfei tab="label" />
-          </el-tab-pane>
-          <el-tab-pane label="车间模板" name="workspace">
-            <WorkspaceManagerVue_shangfei tab="workspace" />
-          </el-tab-pane>
-        </div>
-        <div v-else>
-          <el-tab-pane label="公司模板" name="scene">
-            <SceneManagerVue tab="scene" />
-          </el-tab-pane>
-          <el-tab-pane label="场景标签" name="label">
-            <LabelManagerVue tab="label" />
-          </el-tab-pane>
-          <el-tab-pane label="车间模板" name="workspace">
-            <WorkspaceManagerVue tab="workspace" />
-          </el-tab-pane>
-        </div>
-      </el-tabs>
-    </div>
-  </div>
-</template>
-
-<script setup lang="ts">
-  import { ref } from 'vue';
-  import type { TabsPaneContext } from 'element-plus';
-  import LabelManagerVue from './LabelManager.vue';
-  import LabelManagerVue_shangfei from './LabelManager_shangfei.vue';
-  import WorkspaceManagerVue from './WorkspaceManager.vue';
-  import WorkspaceManagerVue_shangfei from './WorkspaceManager_shangfei.vue';
-  import SceneManagerVue from './SceneManager.vue';
-  import SceneManagerVue_shangfei from './SceneManager_shangfei.vue';
-  import { LabelType } from './constant';
-  import { useGlobSetting } from '@/hooks/setting';
-
-  const globSetting = useGlobSetting();
-  const disableDepartmentEdit = globSetting.disableDepartmentEdit;
-
-  console.log('disableDepartmentEdit', disableDepartmentEdit);
-
-  const activeName = ref('scene');
-  const currentLabel = ref<LabelType>('scene');
-
-  const handleClick = (tab: TabsPaneContext) => {
-    console.log(tab.paneName);
-    if (tab.paneName === 'scene') {
-      currentLabel.value = 'scene';
-    } else {
-      if (tab.paneName === 'label') {
-        currentLabel.value = 'label';
-      } else {
-        currentLabel.value = 'workspace';
-      }
-    }
-  };
-</script>
-
-<style scoped>
-  :deep(.demo-tabs > .el-tabs__content) {
-    padding: 32px;
-    color: #6b778c;
-    font-size: 32px;
-    font-weight: 600;
-  }
-
-  :deep(.el-tabs__item:hover) {
-    /* color: rgb(53, 120, 220); */
-    background-color: rgb(53, 120, 220);
-  }
-
-  :deep(.el-tabs__item.is-active) {
-    /* color: rgb(221, 239, 255); */
-    background-color: rgb(221, 239, 255);
-    border: 3px solid #4693f1 !important;
-  }
-
-  :deep(.el-tabs__header) {
-    margin: 0;
-  }
-</style>

+ 0 - 142
src/views/system-config/template/TitleCommon.vue

@@ -1,142 +0,0 @@
-<template>
-  <div>
-    <div class="form-tip">{{ '提示:' + getTipByTab(props.tab) }}</div>
-    <el-form inline ref="ruleFormRef" :model="form">
-      <el-form-item style="margin-top: 0px">
-        <el-input
-          v-model="form.name"
-          :placeholder="`请输入` + props.type + `名称`"
-          class="input-with-select"
-        >
-          <template #append>
-            <el-button :icon="Search" @click="findDataByName(ruleFormRef)" />
-          </template>
-        </el-input>
-
-        <!-- <el-input style="width: 200px" :placeholder="`请输入` + props.type + `名称`" v-model="form.name" clearable
-                    @clear="clearData" /> -->
-      </el-form-item>
-      <!-- <el-button type="primary" :icon="Search" @click="findDataByName(ruleFormRef)">查询</el-button> -->
-      <el-button
-        type="primary"
-        :icon="Plus"
-        @click="addForm"
-        style="position: absolute; right: 0; width: 100px"
-      >
-        {{ props.type }}</el-button
-      >
-    </el-form>
-  </div>
-
-  <el-drawer
-    v-model="titleDrawer"
-    direction="rtl"
-    :title="props.type === '模板' ? '添加模板' : '添加标签'"
-    :before-close="handleClose"
-  >
-    <DrawerCommonVue :detail="drawerFormData" :type="props.type" @submit-drawer="submitDrawer" />
-  </el-drawer>
-</template>
-
-<script setup lang="ts">
-  import { Search, Plus } from '@element-plus/icons-vue';
-  import { onMounted, ref, watch } from 'vue';
-  import { ElMessageBox, FormInstance } from 'element-plus';
-  import DrawerCommonVue, { FormModelCommon } from './DrawerCommon.vue';
-  import { useKeyPress } from 'vue-hooks-plus';
-  import { LabelType, getTipByTab } from './constant';
-
-  export type CreateType = '添加模板' | '修改模板';
-  const props = defineProps<{
-    type: string;
-    pagesize: number;
-    pagenumber: number;
-    drawer: boolean;
-    tab: LabelType;
-  }>();
-  const emit = defineEmits([
-    'findDataByName',
-    'submitDrawer',
-    'handleClose',
-    'addForm',
-    'clearData',
-  ]);
-  const form = ref({
-    name: '',
-  });
-  const ruleFormRef = ref<FormInstance>();
-  const currentType = ref<CreateType>('添加模板');
-  const defaultFormValue = { id: 0, code: '', name: '', remark: '', status: 0 };
-  const drawerFormData = ref<FormModelCommon>({ ...defaultFormValue } as FormModelCommon);
-
-  export interface DataCommon {
-    name: string;
-    size: number;
-    page: number;
-  }
-  useKeyPress('enter', () => {
-    findDataByName(ruleFormRef.value);
-  });
-  const titleDrawer = ref(false);
-  watch(
-    () => props.drawer,
-    (newdrawer) => {
-      titleDrawer.value = newdrawer;
-    },
-    { immediate: true },
-  );
-
-  // 根据名称找到数据-finish
-  function findDataByName(formEl: FormInstance | undefined) {
-    console.log('findDataByName');
-    if (!formEl) return;
-    formEl.validate((valid, fields) => {
-      if (valid) {
-        const data = ref<DataCommon>({
-          name: form.value.name,
-          size: props.pagesize,
-          page: props.pagenumber,
-        });
-        emit('findDataByName', data.value);
-      } else {
-        console.log('error submit!', fields);
-      }
-    });
-  }
-
-  function addForm() {
-    currentType.value = '添加模板';
-    emit('addForm');
-  }
-
-  // 添加
-  function submitDrawer(data) {
-    emit('submitDrawer', data);
-    setTimeout(() => {
-      drawerFormData.value = { ...defaultFormValue };
-    }, 500);
-  }
-
-  const handleClose = (done: () => void) => {
-    done();
-    emit('handleClose');
-  };
-
-  // function clearData() {
-  //     emit('clearData');
-  // }
-
-  onMounted(() => {});
-</script>
-
-<style scoped>
-  .form-tip {
-    font-family: PingFangSC, PingFang SC;
-    font-weight: 400;
-    font-size: 12px;
-    color: #909399;
-    line-height: 38px;
-    text-align: left;
-    font-style: normal;
-  }
-</style>

+ 0 - 147
src/views/system-config/template/TitleCommon_shangfei.vue

@@ -1,147 +0,0 @@
-<template>
-  <div>
-    <div class="form-tip">{{ '提示:' + getTipByTab(props.tab) }}</div>
-    <el-form inline ref="ruleFormRef" :model="form">
-      <el-form-item style="margin-top: 0px">
-        <el-input
-          v-model="form.name"
-          :placeholder="`请输入` + props.type + `名称`"
-          class="input-with-select"
-        >
-          <template #append>
-            <el-button :icon="Search" @click="findDataByName(ruleFormRef)" />
-          </template>
-        </el-input>
-
-        <!-- <el-input style="width: 200px" :placeholder="`请输入` + props.type + `名称`" v-model="form.name" clearable
-                    @clear="clearData" /> -->
-      </el-form-item>
-      <!-- <el-button type="primary" :icon="Search" @click="findDataByName(ruleFormRef)">查询</el-button> -->
-      <el-button
-        type="primary"
-        :icon="Plus"
-        @click="addForm"
-        style="position: absolute; right: 0; width: 100px"
-        v-if="props.type === '标签'"
-      >
-        {{ props.type }}</el-button
-      >
-    </el-form>
-  </div>
-
-  <el-drawer
-    v-model="titleDrawer"
-    direction="rtl"
-    :title="props.type === '模板' ? '添加模板' : '添加标签'"
-    :before-close="handleClose"
-  >
-    <DrawerCommonVue_shangfei
-      :detail="drawerFormData"
-      :type="props.type"
-      @submit-drawer="submitDrawer"
-    />
-  </el-drawer>
-</template>
-
-<script setup lang="ts">
-  import { Search, Plus } from '@element-plus/icons-vue';
-  import { onMounted, ref, watch } from 'vue';
-  import { ElMessageBox, FormInstance } from 'element-plus';
-  import DrawerCommonVue_shangfei, { FormModelCommon } from './DrawerCommon_shangfei.vue';
-  import { useKeyPress } from 'vue-hooks-plus';
-  import { LabelType, getTipByTab } from './constant';
-
-  export type CreateType = '添加模板' | '修改模板';
-  const props = defineProps<{
-    type: string;
-    pagesize: number;
-    pagenumber: number;
-    drawer: boolean;
-    tab: LabelType;
-  }>();
-  const emit = defineEmits([
-    'findDataByName',
-    'submitDrawer',
-    'handleClose',
-    'addForm',
-    'clearData',
-  ]);
-  const form = ref({
-    name: '',
-  });
-  const ruleFormRef = ref<FormInstance>();
-  const currentType = ref<CreateType>('添加模板');
-  const defaultFormValue = { id: 0, code: '', name: '', remark: '', status: 0 };
-  const drawerFormData = ref<FormModelCommon>({ ...defaultFormValue } as FormModelCommon);
-
-  export interface DataCommon {
-    name: string;
-    size: number;
-    page: number;
-  }
-  useKeyPress('enter', () => {
-    findDataByName(ruleFormRef.value);
-  });
-  const titleDrawer = ref(false);
-  watch(
-    () => props.drawer,
-    (newdrawer) => {
-      titleDrawer.value = newdrawer;
-    },
-    { immediate: true },
-  );
-
-  // 根据名称找到数据-finish
-  function findDataByName(formEl: FormInstance | undefined) {
-    console.log('findDataByName');
-    if (!formEl) return;
-    formEl.validate((valid, fields) => {
-      if (valid) {
-        const data = ref<DataCommon>({
-          name: form.value.name,
-          size: props.pagesize,
-          page: props.pagenumber,
-        });
-        emit('findDataByName', data.value);
-      } else {
-        console.log('error submit!', fields);
-      }
-    });
-  }
-
-  function addForm() {
-    currentType.value = '添加模板';
-    emit('addForm');
-  }
-
-  // 添加
-  function submitDrawer(data) {
-    emit('submitDrawer', data);
-    setTimeout(() => {
-      drawerFormData.value = { ...defaultFormValue };
-    }, 500);
-  }
-
-  const handleClose = (done: () => void) => {
-    done();
-    emit('handleClose');
-  };
-
-  // function clearData() {
-  //     emit('clearData');
-  // }
-
-  onMounted(() => {});
-</script>
-
-<style scoped>
-  .form-tip {
-    font-family: PingFangSC, PingFang SC;
-    font-weight: 400;
-    font-size: 12px;
-    color: #909399;
-    line-height: 38px;
-    text-align: left;
-    font-style: normal;
-  }
-</style>

+ 0 - 138
src/views/system-config/template/WorkspaceManager.vue

@@ -1,138 +0,0 @@
-<template>
-  <div>
-    <CardCommon
-      :type="type"
-      :tab="props.tab"
-      :search-data-by-name="findWorkshopModuleFun"
-      :get-data="getWorkshopModuleListFun"
-      :delete-table-data="deleteWorkshopModuleFun"
-      :submit-drawer="updateWorkshopModuleFun"
-      :add-data="saveWorkshopModuleFun"
-    >
-    </CardCommon>
-  </div>
-</template>
-
-<script setup lang="ts">
-  import {
-    updateWorkshopModule,
-    getWorkshopModuleList,
-    deleteWorkshopModule,
-    findWorkshopModuleByName,
-    saveWorkshopModule,
-    WorkshopModule,
-  } from '@/api/template/template';
-  import { ElMessage, ElMessageBox } from 'element-plus';
-  import CardCommon, { TableModel } from './CardCommon.vue';
-  import { DataCommon } from './TitleCommon.vue';
-  import { ref } from 'vue';
-  const type = ref('模板');
-
-  const props = defineProps<{
-    tab: LabelType;
-  }>();
-
-  // 添加数据
-  function saveWorkshopModuleFun(data: WorkshopModule) {
-    return saveWorkshopModule(data)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `添加数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 根据名称查找
-  function findWorkshopModuleFun(data: DataCommon) {
-    console.log('findWorkshopModuleByName', data.name, data.page, data.size);
-    return findWorkshopModuleByName(data.name, data.page, data.size)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `查询数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 查找数据列表-finish
-  function getWorkshopModuleListFun(data) {
-    return getWorkshopModuleList(data.page, data.size)
-      .then((res) => {
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error.message, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `查询数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 删除数据
-  function deleteWorkshopModuleFun(data: TableModel) {
-    console.log('detele', data);
-    return deleteWorkshopModule(data.id)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `删除数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 编辑数据
-  function updateWorkshopModuleFun(data: WorkshopModule) {
-    console.log('edit', data);
-    return updateWorkshopModule(data)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `编辑数据失败`,
-            });
-          },
-        });
-      });
-  }
-</script>
-
-<style scoped></style>

+ 0 - 138
src/views/system-config/template/WorkspaceManager_shangfei.vue

@@ -1,138 +0,0 @@
-<template>
-  <div>
-    <CardCommon_shangfei
-      :type="type"
-      :tab="props.tab"
-      :search-data-by-name="findWorkshopModuleFun"
-      :get-data="getWorkshopModuleListFun"
-      :delete-table-data="deleteWorkshopModuleFun"
-      :submit-drawer="updateWorkshopModuleFun"
-      :add-data="saveWorkshopModuleFun"
-    >
-    </CardCommon_shangfei>
-  </div>
-</template>
-
-<script setup lang="ts">
-  import {
-    updateWorkshopModule,
-    getWorkshopModuleList,
-    deleteWorkshopModule,
-    findWorkshopModuleByName,
-    saveWorkshopModule,
-    WorkshopModule,
-  } from '@/api/template/template';
-  import { ElMessage, ElMessageBox } from 'element-plus';
-  import CardCommon_shangfei, { TableModel } from './CardCommon_shangfei.vue';
-  import { DataCommon } from './TitleCommon.vue';
-  import { ref } from 'vue';
-  const type = ref('模板');
-
-  const props = defineProps<{
-    tab: LabelType;
-  }>();
-
-  // 添加数据
-  function saveWorkshopModuleFun(data: WorkshopModule) {
-    return saveWorkshopModule(data)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `添加数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 根据名称查找
-  function findWorkshopModuleFun(data: DataCommon) {
-    console.log('findWorkshopModuleByName', data.name, data.page, data.size);
-    return findWorkshopModuleByName(data.name, data.page, data.size)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `查询数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 查找数据列表-finish
-  function getWorkshopModuleListFun(data) {
-    return getWorkshopModuleList(data.page, data.size)
-      .then((res) => {
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error.message, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `查询数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 删除数据
-  function deleteWorkshopModuleFun(data: TableModel) {
-    console.log('detele', data);
-    return deleteWorkshopModule(data.id)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `删除数据失败`,
-            });
-          },
-        });
-      });
-  }
-
-  // 编辑数据
-  function updateWorkshopModuleFun(data: WorkshopModule) {
-    console.log('edit', data);
-    return updateWorkshopModule(data)
-      .then((res) => {
-        console.log(res);
-        return res;
-      })
-      .catch((error) => {
-        ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
-          callback: () => {
-            ElMessage({
-              type: 'info',
-              message: `编辑数据失败`,
-            });
-          },
-        });
-      });
-  }
-</script>
-
-<style scoped></style>

+ 0 - 19
src/views/system-config/template/constant.ts

@@ -1,19 +0,0 @@
-export type LabelType = 'scene' | 'label' | 'workspace';
-
-export const templateTips = [
-  {
-    tab: 'scene',
-    tip: '决定了平台主页的页面布局、功能模块、监测数据类型,系统已进行初始化配置,请勿修改、删除。',
-  },
-  {
-    tab: 'label',
-    tip: '用于关联公司场景与模板之间的关系,实现模板的实例化。为系统底层能力,请勿修改、删除。',
-  },
-  {
-    tab: 'workspace',
-    tip: '决定了每个车间的页面布局、功能模块、监测数据类型,系统已进行初始化配置,请勿修改、删除。',
-  },
-];
-
-export const getTipByTab = (tab: LabelType) =>
-  templateTips.find((item) => item.tab === tab)?.tip || '';

+ 4 - 3
src/views/templateManage/CardCommon.vue

@@ -77,7 +77,7 @@
               </el-tooltip>
             </el-button>
 
-            <el-button link type="primary" size="small" @click="showDeleteDialog(scope.row)"
+            <el-button link type="primary" size="small" @click="deleteTableData(scope.row)"
               ><el-tooltip class="box-item" effect="dark" content="删除" placement="top">
                 <el-icon :size="16">
                   <Delete />
@@ -108,7 +108,7 @@
       :add-item="addData"
       :edit-item="submitDrawer"
     />
-    <el-dialog v-model="dialogVisible" title="删除该条模板" width="30%" align-center>
+    <!-- <el-dialog v-model="dialogVisible" title="删除该条模板" width="30%" align-center>
       <p>删除后,其他功能若关联该结构,也将同步更新。</p>
       <p>是否确认删除?</p>
       <template #footer>
@@ -117,7 +117,7 @@
           <el-button type="primary" @click="deleteTableData(currentRow)">确定</el-button>
         </span>
       </template>
-    </el-dialog>
+    </el-dialog> -->
   </div>
 </template>
 
@@ -228,6 +228,7 @@
   // 删除数据-finish
   function deleteTableData(row: TableModel) {
     // emit('deleteTableData', row);
+    currentRow.value = row;
     props.deleteTableData(row).then(() => {
       dialogVisible.value = false;
       getData({ pageNumber: currentPage.value, pageSize: currentPageSize.value });

+ 4 - 4
src/views/templateManage/SceneManager.vue

@@ -40,7 +40,7 @@
       })
       .catch((error) => {
         ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
+          confirmButtonText: '确定',
           callback: () => {
             ElMessage({
               type: 'info',
@@ -80,7 +80,7 @@
       })
       .catch((error) => {
         ElMessageBox.alert(error.message, '异常', {
-          confirmButtonText: 'OK',
+          confirmButtonText: '确定',
           callback: () => {
             ElMessage({
               type: 'info',
@@ -101,7 +101,7 @@
       })
       .catch((error) => {
         ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
+          confirmButtonText: '确定',
           callback: () => {
             ElMessage({
               type: 'info',
@@ -122,7 +122,7 @@
       })
       .catch((error) => {
         ElMessageBox.alert(error, '异常', {
-          confirmButtonText: 'OK',
+          confirmButtonText: '确定',
           callback: () => {
             ElMessage({
               type: 'info',