tangning hace 3 días
padre
commit
da55b2a1c0

+ 1 - 1
src/views/case/list.vue

@@ -329,7 +329,7 @@
       }
       const [registerAddModal, { openModal: openAddModal }] = useModal();
       const [registerResultModal, { openModal: openAddResultModal }] = useModal();
-      const [registerDownModal, { openModal: openDownModal }] = useModal();
+      const [registerDownModal, { openModal: openDownModal, closeModal }] = useModal();
       const [registerMoveModal, { openModal: openMoveModal }] = useModal();
       const [registerPowersModal, { openModal: openPowersModal }] = useModal();
       const [registerTable, { reload, setColumns }] = useTable({

+ 1 - 2
src/views/diversity/DownLoadModal.vue

@@ -4,13 +4,12 @@
     @register="register"
     title="系统正在为您打包数据"
     :minHeight="0"
-    @visible-change="handleVisibleChange"
     @cancel="hundleCancel"
     @ok="handleSubmit"
   >
     <div class="pt-2px pr-3px">
       <div class="warp">
-        <p>正在打包场景离线数据{{ downloadPercent }}</p>
+        <p>正在打包场景离线数据</p>
         <span>{{ modelRef.sceneName }}.zip</span>
         <Progress :percent="downloadOption.percent" />
         <p>* 打包完成后将关闭弹窗自动下载。</p>

+ 70 - 48
src/views/diversity/list.vue

@@ -4,13 +4,18 @@
       <template #footer>
         <a-tabs v-model:activeKey="tableType" @change="changeTable">
           <Tabs.TabPane :key="0" tab="多元融合" :disabled="loading" />
-          <Tabs.TabPane :key="1" tab="共享多元融合" :disabled="loading" />
-        </a-tabs
+          <Tabs.TabPane :key="1" tab="共享多元融合" :disabled="loading" /> </a-tabs
       ></template>
       <div class="desc-wrap-BasicTable">
         <BasicTable @register="registerTable" :columns="columnsFun">
           <template #toolbar>
-            <a-button type="primary"  @click="handleAdd" v-if="getCheckPerm('diversity-Add') && tableType == 0"> 新增</a-button>
+            <a-button
+              type="primary"
+              @click="handleAdd"
+              v-if="getCheckPerm('diversity-Add') && tableType == 0"
+            >
+              新增</a-button
+            >
           </template>
 
           <template #href="{ record }">
@@ -47,7 +52,7 @@
                 {
                   label: '下载',
                   ifShow: getTypeCheckPerm('diversity-download') && !record.isOpen,
-                  disabled:  tableType == 1,
+                  disabled: tableType == 1,
                   onClick: createConfirmDownload.bind(null, record),
                 },
                 {
@@ -80,15 +85,9 @@
 </template>
 <script lang="ts">
   import { defineComponent, h, computed, ref, onMounted } from 'vue';
-  import {
-    BasicTable,
-    useTable,
-    TableAction,
-    BasicColumn,
-    FormProps,
-  } from '/@/components/Table';
+  import { BasicTable, useTable, TableAction, BasicColumn, FormProps } from '/@/components/Table';
   import { PageWrapper } from '/@/components/Page';
-  import AddModal from './addCaseModal.vue'
+  import AddModal from './addCaseModal.vue';
   import DownLoadModal from './DownLoadModal.vue';
   import MoveModal from './MoveModal.vue';
   import PowersModal from '/@/views/productOperation/modal/PowersModal.vue';
@@ -207,7 +206,7 @@
         downloadOption.value = {};
       }
       const [registerAddModal, { openModal: openAddModal }] = useModal();
-      const [registerDownModal, { openModal: openDownModal }] = useModal();
+      const [registerDownModal, { openModal: openDownModal, closeModal }] = useModal();
       const [registerMoveModal, { openModal: openMoveModal }] = useModal();
       const [registerPowersModal, { openModal: openPowersModal }] = useModal();
       const [registerTable, { reload, setPagination, getColumns, setColumns }] = useTable({
@@ -238,7 +237,7 @@
       });
       function changeTable(val: number) {
         tableType.value = val;
-        setColumns(columns())
+        setColumns(columns());
         setPagination({ current: 1 });
         reload();
       }
@@ -246,7 +245,7 @@
         console.log('addPowes', getColumns(), columns());
         let res = await caseFusionAdd({});
         console.log('handleAdd', res);
-        handlegotoEdit(res)
+        handlegotoEdit(res);
       }
       async function handleCopy(record: Recordable) {
         createConfirm({
@@ -267,13 +266,13 @@
           title: '删除',
           content: '确定要删除吗?',
           onOk: async () => {
-          caseFusionDel({ fusionId: record.fusionId }).then(() => {
-          message.success({
-            content: '删除成功',
-          });
+            caseFusionDel({ fusionId: record.fusionId }).then(() => {
+              message.success({
+                content: '删除成功',
+              });
 
-          reload();
-        });
+              reload();
+            });
           },
         });
       }
@@ -300,7 +299,7 @@
           okText: '继续',
           content: '多元融合资源过大会导致离线包下载失败,请尽可能缩小多元融合资源后再下载。',
           onOk: async () => {
-            handleDownload(record)
+            handleDownload(record);
           },
         });
       }
@@ -313,35 +312,58 @@
           console.log(res);
           if (res.downloadStatus != 3) {
             // 未下载过,需要打包
-              openDownModal(true, {
-                ...record,
-              });
-              if (res.downloadStatus == 1) {
-                if (timer.value) {
-                  afterClose();
-                }
-                timer.value = setInterval(() => {
-                  downloadProcess({ fusionId: record.fusionId, }).then((res) => {
-                    if (res.status == '1003') {
-                      createMessage.error('下载失败');
-                      afterClose();
-                      return;
-                    }
-                    if (res.percent >= 100) {
-                      canDownload.value = false;
-                      afterClose();
-                    }
-                    downloadOption.value = res;
-                    console.log(res);
-                  });
-                }, 1000);
+            openDownModal(true, {
+              ...record,
+            });
+            if (res.downloadStatus == 1) {
+              if (timer.value) {
+                afterClose();
               }
+              getProcess({ fusionId: record.fusionId });
+              // timer.value = setInterval(() => {
+              //   downloadProcess({ fusionId: record.fusionId }).then((res) => {
+              //     if (res.status == '1003') {
+              //       createMessage.error('下载失败');
+              //       afterClose();
+              //       return;
+              //     }
+              //     if (res.percent >= 100) {
+              //       canDownload.value = false;
+              //       afterClose();
+              //     }
+              //     downloadOption.value = res;
+              //     console.log(res);
+              //   });
+              // }, 1000);
+            }
           } else {
             canDownload.value = false;
             window.open(res.downloadUrl);
           }
         });
       }
+      function getProcess(params) {
+        timer.value = setTimeout(() => {
+          downloadProcess(params).then((res) => {
+            console.log('getProcess', res);
+            downloadOption.value = res;
+            if (res.status == '1003') {
+              createMessage.error('下载失败');
+              afterClose();
+              return;
+            }
+            if (res.percent >= 100) {
+              canDownload.value = false;
+              window.open(res.url);
+              afterClose();
+              closeModal()
+            } else {
+              getProcess(params);
+            }
+            console.log(res);
+          });
+        }, 1000);
+      }
       async function handleGenerate(record: Recordable) {
         console.log('record', record);
         let data = await sceneDetail({ id: record.id });
@@ -401,11 +423,11 @@
           tableType: tableType.value,
         });
         setTimeout(() => {
-          setColumns(columns())
-        }, 2000)
+          setColumns(columns());
+        }, 2000);
       }
       onMounted(() => {
-        setColumns(columns())
+        setColumns(columns());
       });
       return {
         registerTable,
@@ -478,7 +500,7 @@
         }
       }
     }
-    :deep(.ant-table-cell-content){
+    :deep(.ant-table-cell-content) {
       display: block !important;
     }
   }

+ 22 - 18
src/views/productOperation/cameraScene.vue

@@ -34,6 +34,7 @@
         <a-tabs v-model:activeKey="tableType" @change="changeTable">
           <a-tab-pane :key="0" tab="场景列表" :disabled="loading" />
           <a-tab-pane :key="1" tab="场景共享" :disabled="loading" />
+          <a-tab-pane :key="2" v-show="getCheckPerm('scenes-All')" tab="全域核查" :disabled="loading" />
           <!-- <a-tab-pane :key="3" tab="四维双目Lite" :disabled="loading"/> 
         <a-tab-pane :key="4" tab="四维全景" :disabled="loading"/>  -->
           -->
@@ -52,8 +53,9 @@
           </template>
 
           <template #href="{ record }">
+            <span v-if="tableType == 2">{{ record.sceneName }}</span>
             <a
-              v-if="record.status == 1 || record.status == 6 || (record.status == -2 && record.payStatus == 1)"
+              v-else-if="record.status == 1 || record.status == 6 || (record.status == -2 && record.payStatus == 1)"
               target="_blank"
               :title="record.sceneName"
               :href="record.webSite"
@@ -84,7 +86,7 @@
           </template> -->
           <template #action="{ record }">
             <TableAction
-              v-if="!record.isShare"
+              v-if="!record.isShare || tableType == 2"
               stopButtonPropagation
               :actions="[
                 {
@@ -481,7 +483,7 @@
       const searchForm: Partial<FormProps> = {
         labelWidth: 80,
         autoSubmitOnEnter: true,
-        autoAdvancedLine: 1,
+        autoAdvancedLine: 2,
         schemas: [
           {
             field: 'sceneName',
@@ -491,8 +493,7 @@
               maxLength: 100,
             },
             colProps: {
-              xl: 5,
-              xxl: 5,
+              span: 6,
             },
           },
           {
@@ -503,8 +504,7 @@
               maxLength: 100,
             },
             colProps: {
-              xl: 6,
-              xxl: 6,
+              span: 6,
             },
           },
           {
@@ -522,8 +522,7 @@
               params: { type: 'camera' },
             },
             colProps: {
-              xl: 6,
-              xxl: 6,
+              span: 6,
             },
           },
           // {
@@ -573,8 +572,7 @@
               maxLength: 100,
             },
             colProps: {
-              xl: 6,
-              xxl: 6,
+              span: 6,
             },
           },
           {
@@ -585,15 +583,14 @@
               maxLength: 100,
             },
             colProps: {
-              xl: 5,
-              xxl: 5,
+              span: 6,
             },
           },
           {
-            field: 'platform',
+            field: 'platformId',
             label: '平台',
             component: 'ApiSelect',
-            ifShow: false,
+            show: false,
             componentProps: {
               style: { maxWidth: '250px', placeholder: '全部' },
               placeholder: '全部',
@@ -604,8 +601,7 @@
               valueField: 'id',
             },
             colProps: {
-              xl: 18,
-              xxl: 18,
+              span: 6,
             },
           },
         ],
@@ -650,7 +646,15 @@
       });
       function changeTable(val: string) {
         tableType.value = val;
-        getForm().updateSchema({ field: 'platform', ifShow: val == '1' });
+        getForm().updateSchema([
+          { field: 'platformId', show: val == '2' },
+          // { field: 'snCode', colProps: {
+          //     span: val == '2' ? 5 : 6,
+          //   }, },
+          // { field: 'sceneName', colProps: {
+          //     span: val == '2' ? 5 : 6,
+          //   }, },
+        ]);
         reload();
       }
       async function handleCopy(record: Recordable) {

+ 2 - 1
src/views/productOperation/modal/uploadModal.vue

@@ -3,7 +3,6 @@
     v-bind="$attrs"
     @register="register"
     title="上传"
-    :showCancelBtn="false"
     @visible-change="handleVisibleChange"
     @cancel="resetFields"
     @ok="handleSubmit"
@@ -134,7 +133,9 @@
         modelRef.value = data;
         fileFlow.list = [];
         fileFlow.sourceType = 'orig';
+        loading.value = false;
         resetFields();
+        if(uploadRef.value) uploadRef.value.clearFiles();
         // setFieldsValue({
         //   type: data.sceneName,
         // });

+ 1 - 1
src/views/statistics/components/VisitSource.vue

@@ -61,7 +61,7 @@
   // const jyType = ref(props.jyType);
   const SearchData = ref({
     jyType: null,
-    timeList: [dayjs().format('YYYY-MM-DD'), dayjs().add(-30, 'day').format('YYYY-MM-DD')],
+    timeList: [dayjs().add(-30, 'day').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')],
     districtCode: props.districtCode || null,
     cameraType: props.cameraType,
     platformId: props.platformId,

+ 1 - 1
src/views/statistics/components/lineEcharts2.vue

@@ -72,7 +72,7 @@
   type RangeValue = [Dayjs, Dayjs];
   const picker = ref('date');
   const SearchData = ref({
-    timeList: [dayjs().format('YYYY-MM-DD'), dayjs().add(-30, 'day').format('YYYY-MM-DD')],
+    timeList: [dayjs().add(-30, 'day').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')],
     jyType: null,
     platformId: props.platformId,
     cameraType: props.cameraType,

+ 1 - 1
src/views/statistics/components/orderEchart.vue

@@ -69,7 +69,7 @@
   const chartRef = ref<HTMLDivElement | null>(null);
   const { setOptions } = useECharts(chartRef as Ref<HTMLDivElement>);
   const SearchData = ref({
-    timeList: [dayjs().format('YYYY-MM-DD'), dayjs().add(-30, 'day').format('YYYY-MM-DD')],
+    timeList: [dayjs().add(-30, 'day').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')],
     jyType: null,
     cameraType: props.cameraType,
     districtCode: props.districtCode || null,

+ 2 - 2
src/views/statistics/scene/exportModal.vue

@@ -70,7 +70,7 @@
           label: '警种',
           componentProps: {
             options: jyType,
-            multiple: true,
+            mode: 'multiple',
             treeNodeFilterProp: 'label',
             showSearch: true,
             listHeight: 200,
@@ -87,7 +87,7 @@
             style: { maxWidth: '297px' },
             placeholder: '全部',
             api: sceneGroupCount,
-            multiple: true,
+            mode: 'multiple',
             immediate: false,
             resultField: 'list',
             labelField: 'name',

+ 8 - 4
src/views/statistics/scene/index.vue

@@ -22,7 +22,7 @@
           @change="handleChanges"
         />
         <span>
-          <span v-if="pageAuth != 'admin'">当前账号采集总数:{{ userCount }} |</span>
+          <span v-if="platformId == getUserInfo.platformId">当前账号采集总数:{{ userCount }} |</span>
           <span v-if="useruploadTime"> 更新于 {{ useruploadTime }}</span>
         </span>
       </div>
@@ -225,7 +225,11 @@
       if(getUserInfo.value.platformId && (getUserInfo.value.roleId == 47 || getUserInfo.value.roleId == 48)){
         platformId.value = getUserInfo.value.platformId
         let item = platformOptions.value.find(item => item.id == getUserInfo.value.platformId)
-        pageAuth.value = item.pageAuth;
+        if(!item){
+          pageAuth.value = getUserInfo.value.roleId == 47?'user':'admin';
+        }else{
+          pageAuth.value = item.pageAuth;
+        }
       }else{
         pageAuth.value = 'admin'
       }
@@ -277,7 +281,7 @@
           action: '年',
         },
       ];
-      if (getUserInfo.value != 47) {
+      if (getUserInfo.value.roleId != 47) {
         list.push({
           title: '总采集用户数/总用户数',
           icon: 'transaction|svg',
@@ -297,7 +301,7 @@
   }
   function handleChange(val, item = {}) {
     console.log('val', val, item);
-    pageAuth.value = item.pageAuth;
+    pageAuth.value = item.pageAuth || 'admin';
     loading1.value += 1;
     getData();
   }