Jelajahi Sumber

提交修改

tangning 1 tahun lalu
induk
melakukan
a4f1354155

+ 38 - 0
src/api/operate/index.ts

@@ -13,6 +13,21 @@ import {
   overallDelete,
 } from './model';
 import { Result } from '/#/axios';
+import axios from 'axios';
+import { getToken } from '/@/utils/auth';
+
+const token = getToken();
+const config = {
+  headers: {
+    'Content-Type': 'application/json;charset=UTF-8',
+    fdToken: token,
+  },
+};
+
+let objurl = '//testlaser-jp.4dkankan.com/backend';
+if (!window.location.host.includes('test')) {
+  objurl = '//mega.4dkankan.jp/backend';
+}
 
 enum Api {
   pageList = '/service/manage/news/pageNews',
@@ -61,6 +76,9 @@ enum Api {
   addAuth = '/service/manage/jy/sceneUserAuth/addAuth',
   delAuth = '/service/manage/jy/sceneUserAuth/delAuth',
   checkAuthOther = '/service/manage/jy/sceneUserAuth/checkAuthOther',
+  //生成obj新的接口
+  sceneDetail = '/service/manage/scene/sceneDetail',
+  buildSceneObj = '/service/manage/scene/buildSceneObj',
 }
 
 /**
@@ -523,3 +541,23 @@ export const delAuth = (params) =>
       ignoreCancelToken: true,
     },
   });
+// 根据警员ID获取用户列表
+export const sceneDetail = (params) =>
+  defHttp.post<Result>({
+    url: Api.sceneDetail,
+    params,
+    headers: {
+      // @ts-ignore
+      ignoreCancelToken: true,
+    },
+  });
+// 根据警员ID获取用户列表
+export const buildSceneObj = (params) =>
+  defHttp.post<Result>({
+    url: Api.buildSceneObj,
+    params,
+    headers: {
+      // @ts-ignore
+      ignoreCancelToken: true,
+    },
+  });

+ 40 - 1
src/views/productOperation/cameraScene.vue

@@ -67,6 +67,11 @@
                 onClick: handleCopy.bind(null, record),
               },
               {
+                label: '生成 obj',
+                ifShow: getTypeCheckPerm('scenes-creatobj') && record.status == -2 && (tableType == 2 || tableType == 6),
+                onClick: handleGenerate.bind(null, record),
+              },
+              {
                 label: '删除',
                 //icon: 'ic:outline-delete-outline',
                 color: 'error',
@@ -127,6 +132,8 @@
     downloadProcess,
     sceneCopy,
     rebuildScene,
+    buildSceneObj,
+    sceneDetail,
   } from '/@/api/operate';
   import { message } from 'ant-design-vue';
   import { usePermissionStore } from '/@/store/modules/permission';
@@ -272,7 +279,7 @@
           ifShow: true,
           fixed: 'right',
           flag: 'ACTION',
-          width: 330,
+          width: 400,
         },
       ];
       const searchForm: Partial<FormProps> = {
@@ -442,6 +449,37 @@
           }
         });
       }
+      function handleEdit(record: Recordable) {
+        window.open(record.thumbEdit + '&&token=' + token.value);
+      }
+      async function handleGenerate(record: Recordable) {
+        console.log('record', record);
+        let data = await sceneDetail({ id: record.id });
+        console.log('data',data);
+        let { buildObjStatus } = data;
+        let toastText =
+          buildObjStatus == 2
+            ? 'Mesh场景正在计算中,请耐心等待'
+            : buildObjStatus == 1
+            ? '重新生成Mesh场景将覆盖现有场景信息,计算过程中Mesh场景无法打开,确定要重新生成吗?'
+            : '生成obj需要较长时间,请耐心等待';
+        // if (data.code === 200) {
+        createConfirm({
+          iconType: 'warning',
+          title: () => h('span', '生成 obj'),
+          content: () => h('span', toastText),
+          onOk: async () => {
+            if (buildObjStatus !== 2) {
+              await buildSceneObj({ id: record.id });
+            }
+            createMessage.success(t('common.optSuccess'));
+            reload();
+          },
+        });
+        // } else {
+        //   createMessage.error(t(`apiCode.errCode${data.code}`));
+        // }
+      }
       function afterClose() {
         clearInterval(timer.value);
         timer.value = null;
@@ -489,6 +527,7 @@
         canDownload,
         downloadOption,
         cancelDownload,
+        handleGenerate,
         getTypeCheckPerm,
         handlegotoEdit,
         handlePowers,

+ 111 - 28
src/views/productOperation/modal/detailModal.vue

@@ -62,8 +62,8 @@
             filterOption: onFilterOption,
             onSearch: onSearch,
             onChange: (data) => {
-              const item = optionsName.value && optionsName.value.find(ele => ele.ryId == data)
-              setFieldsValue({ryNickName: item && item.ryNickName ? item.ryNickName : ''});
+              const item = optionsName.value && optionsName.value.find((ele) => ele.ryId == data);
+              setFieldsValue({ ryNickName: item && item.ryNickName ? item.ryNickName : '' });
             },
           },
           colProps: {
@@ -91,11 +91,7 @@
             span: 24,
           },
           componentProps: {
-            options: [
-              { label: '无权编辑', value: 0 },
-              { label: '不限时编辑', value: 1 },
-              { label: '限时编辑', value: 2 },
-            ],
+            options: getOptionList('editAuth', 1),
             onChange: async (value) => {
               let params = await getFieldsValue();
               console.log('params', params);
@@ -104,7 +100,7 @@
                 params.lookAuth = 1;
               }
               params.isEmpower = isEdit.value ? [] : params.isEmpower;
-              setFieldsValue({...params, editAuth: value.target.value});
+              setFieldsValue({ ...params, editAuth: value.target.value });
               updateSchema([
                 {
                   field: 'editEndTime',
@@ -141,6 +137,16 @@
             disabledDate: (current) => {
               return current && current < dayjs().endOf('day');
             },
+            onChange: (value) => {
+              updateSchema({
+                field: 'lookEndTime',
+                componentProps: {
+                  disabledDate: (current) => {
+                    return current && (current < dayjs().endOf('day') || current > dayjs(value));
+                  },
+                }
+              });
+            },
           },
         },
         {
@@ -152,10 +158,7 @@
             span: 24,
           },
           componentProps: {
-            options: [
-              { label: '不限时查看', value: 1 },
-              { label: '限时查看', value: 2 },
-            ],
+            options: getOptionList('lookAuth', 1),
             onChange: (value) => {
               updateSchema({
                 field: 'lookEndTime',
@@ -190,10 +193,7 @@
             span: 24,
           },
           componentProps: {
-            options: [
-              { label: '不可授权', value: 0 },
-              { label: '可授权他人', value: 1 },
-            ],
+            options: getOptionList('isAuthor', 1),
             onChange: (value) => {
               updateSchema({
                 field: 'isEmpower',
@@ -215,7 +215,10 @@
           },
         },
       ];
-      const [registerForm, { validate, getFieldsValue, resetFields, setFieldsValue, updateSchema }] = useForm({
+      const [
+        registerForm,
+        { validate, getFieldsValue, resetFields, setFieldsValue, updateSchema },
+      ] = useForm({
         labelWidth: 110,
         schemas,
         showActionButtonGroup: false,
@@ -229,22 +232,58 @@
       const [register, { closeModal }] = useModalInner(async (data) => {
         onSearch('');
         let checkAuthOther = await checkAuthOtherApi({ num: data.num });
+        let setData = {
+          ...checkAuthOther,
+          ...data,
+          isEmpower: [data.canAuthLook ? 0 : '', data.canEditLook ? 1 : ''],
+        };
         if (data) {
           title.value = data.id ? '编辑授权' : '新增授权';
           modelRef.value = data.id ? true : false;
-          console.log('checkAuthOther', checkAuthOther);
-          setFieldsValue({
-            ...data,
-            isEmpower:[data.canAuthLook?0:'',data.canEditLook?1:'']
-          });
+          setFieldsValue(setData);
         } else {
           title.value = '新增客户';
         }
         updateSchema([
           { field: 'isEmpower', ifShow: data.isAuthor == 1 },
-          { field: 'isAuthor', componentProps: { disabled: !checkAuthOther} },
-          { field: 'editEndTime', ifShow: data.editAuth == 2 },
-          { field: 'lookEndTime', ifShow: data.lookAuth == 2 },
+          // {
+          //   field: 'isAuthor',
+          //   componentProps: { disabled: !setData.isAuthor },
+          // },
+          {
+            field: 'editAuth',
+            componentProps: { options: getOptionList('editAuth', setData.editAuth) },
+          },
+          {
+            field: 'lookAuth',
+            componentProps: { options: getOptionList('lookAuth', setData.editAuth) },
+          },
+          {
+            field: 'editEndTime',
+            ifShow: data.editAuth == 2,
+            componentProps: {
+              disabledDate: (current) => {
+                if (checkAuthOther.editEndTime) {
+                  return current && (current < dayjs().endOf('day') || current > dayjs(checkAuthOther.editEndTime));
+                } else {
+                  return current && current < dayjs().endOf('day');
+                }
+              },
+            },
+          },
+          {
+            field: 'lookEndTime',
+            ifShow: data.lookAuth == 2,
+            componentProps: {
+              disabledDate: (current) => {
+                if (checkAuthOther.lookEndTime) {
+                  return current && (current < dayjs().endOf('day') || current > dayjs(checkAuthOther.lookEndTime));
+                } else {
+                  return current && current < dayjs().endOf('day');
+                }
+              },
+            },
+          },
         ]);
       });
       function onFilterOption(inputText: string, option) {
@@ -256,7 +295,8 @@
       }
       async function onSearch(searchText) {
         const list = await getByRyId({ ryId: searchText });
-        optionsName.value = list.map((ele) => {
+        optionsName.value =
+          list.map((ele) => {
             return { ...ele, value: ele.ryId };
           }) || [];
         // console.log('paramList', optionsList);
@@ -274,8 +314,8 @@
           console.log('params', params);
           await addAuth({
             ...params,
-            canAuthLook: params.isEmpower &&  params.isEmpower.every(item => item == 0) ? 1 : 0,
-            canEditLook: params.isEmpower &&  params.isEmpower.every(item => item == 1) ? 1 : 0,
+            canAuthLook: params.isEmpower && params.isEmpower.every((item) => item == 0) ? 1 : 0,
+            canEditLook: params.isEmpower && params.isEmpower.every((item) => item == 1) ? 1 : 0,
           });
           closeModal();
           resetFields();
@@ -295,6 +335,48 @@
         // console.log(v);
         // v && props.userData && nextTick(() => onDataReceive(props.userData));
       }
+      function getOptionList(type: string, auth: any) {
+        let optionList = {
+          editAuth: [
+            { label: '无权编辑', value: 0 },
+            { label: '不限时编辑', value: 1 },
+            { label: '限时编辑', value: 2 },
+          ],
+          lookAuth: [
+            { label: '不限时查看', value: 1 },
+            { label: '限时查看', value: 2 },
+          ],
+          isAuthor: [
+            { label: '不可授权', value: 0 },
+            { label: '可授权他人', value: 1 },
+          ],
+        };
+        let option = optionList[type];
+        if ((!auth && auth != 0) || auth == 1) {
+          return option;
+        } else if (auth == 2) {
+          return option.map((ele) => {
+            return {
+              ...ele,
+              disabled: ele.value == 1,
+            };
+          });
+        } else {
+          return option.map((ele) => {
+            if (type == 'lookAuth' && ele.value == 2) {
+              return {
+                ...ele,
+                disabled: false,
+              };
+            } else {
+              return {
+                ...ele,
+                disabled: ele.value != 0,
+              };
+            }
+          });
+        }
+      }
       return {
         register,
         schemas,
@@ -303,6 +385,7 @@
         fileFlow,
         handleVisibleChange,
         handleSubmit,
+        getOptionList,
         addListFunc,
         resetFields,
         title,