Jelajahi Sumber

下载链接加s

duy 2 tahun lalu
induk
melakukan
69396f44af
2 mengubah file dengan 176 tambahan dan 106 penghapusan
  1. 32 27
      src/utils/tools.js
  2. 144 79
      src/views/custody/backup.vue

+ 32 - 27
src/utils/tools.js

@@ -1,12 +1,12 @@
-import {clog, arrIndex} from "js-fast-way"
-import config from "~src/config/index";
+import { arrIndex, clog } from 'js-fast-way'
+import config from '~src/config/index'
 
-import {useAppStore} from "~src/store";
+import { useAppStore } from '~src/store'
 const store = useAppStore()
 
 //控制台打印
 export const HcLog = (name, tips, data) => {
-    const title = store.barMenuName ?? '';
+    const title = store.barMenuName ?? ''
     if (config.isLog === 'auto') {
         if (import.meta.env.DEV) {
             clog(title, name, tips, data)
@@ -28,8 +28,8 @@ export const getRowsValue = (arr, key, key2, value) => {
 
 //获取ID,并转为数字
 export const rowsToIdNumArr = (rows) => {
-    const ids = rowsToId(rows);
-    let keys = ids ? ids.split(',') : [];
+    const ids = rowsToId(rows)
+    let keys = ids ? ids.split(',') : []
     for (let i = 0; i < keys.length; i++) {
         keys[i] = Number(keys[i])
     }
@@ -38,14 +38,14 @@ export const rowsToIdNumArr = (rows) => {
 
 //拼接ID
 export const rowsToId = (rows) => {
-    return rowsToKey(rows,'id')
+    return rowsToKey(rows, 'id')
 }
 
 //拼接字段
-export const rowsToKey = (rows,key) => {
+export const rowsToKey = (rows, key) => {
     return rows.map((obj) => {
-        return obj[key];
-    }).join(",")
+        return obj[key]
+    }).join(',')
 }
 
 //删除提醒
@@ -59,43 +59,48 @@ export const delMessage = (cbk) => {
             if (action === 'confirm') {
                 cbk()
             }
-        }
+        },
     })
 }
 
 //日期格式化
 export const dateFormat = (date, format) => {
-    format = format || 'yyyy-MM-dd hh:mm:ss';
+    format = format || 'yyyy-MM-dd hh:mm:ss'
     if (date !== 'Invalid Date') {
         let o = {
-            "M+": date.getMonth() + 1, //month
-            "d+": date.getDate(), //day
-            "h+": date.getHours(), //hour
-            "m+": date.getMinutes(), //minute
-            "s+": date.getSeconds(), //second
-            "q+": Math.floor((date.getMonth() + 3) / 3), //quarter
-            "S": date.getMilliseconds() //millisecond
+            'M+': date.getMonth() + 1, //month
+            'd+': date.getDate(), //day
+            'h+': date.getHours(), //hour
+            'm+': date.getMinutes(), //minute
+            's+': date.getSeconds(), //second
+            'q+': Math.floor((date.getMonth() + 3) / 3), //quarter
+            'S': date.getMilliseconds(), //millisecond
         }
         if (/(y+)/.test(format)) {
-            format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
+            format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
         }
         for (let k in o) {
-            if (new RegExp("(" + k + ")").test(format)) {
-                format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
+            if (new RegExp('(' + k + ')').test(format)) {
+                format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length))
             }
         }
-        return format;
+        return format
     }
-    return '';
+    return ''
 }
 
 //获取当前域名
 export const getTopUrl = () => {
-    return window.location.href.split('/#/')[0];
+    return window.location.href.split('/#/')[0]
 }
 
 //设置系统名称
 export const setAppName = (name) => {
-    const title = window.document.title;
-    window.document.title = `${title} - ${name}`;
+    const title = window.document.title
+    window.document.title = `${title} - ${name}`
 }
+//替换http为https
+export const setUrlHttps = (url) => {
+    if (!url) return url
+    return url.replace('http://', 'https://')
+}

+ 144 - 79
src/views/custody/backup.vue

@@ -2,55 +2,103 @@
     <div class="hc-page-box hc-custody-backup">
         <HcCard ui="hc-backup-bg-white">
             <template #header>
-                <div class="hc-card-header-project-alias">{{ projectInfo?.name }}</div>
+                <div class="hc-card-header-project-alias">
+                    {{ projectInfo?.name }}
+                </div>
             </template>
             <div class="hc-backup-box">
                 <div class="hc-backup-tab-box">
                     <template v-for="item in backupTabData" :key="item.num">
-                        <div class="hc-backup-tab" :class="item.num === backupTabKey ? 'cut':''" @click="backupTabClick(item.num)">
-                            <span class="font-FZGongYHJW num">{{item.num}}</span>
-                            <span class="text">{{item.name}}</span>
+                        <div class="hc-backup-tab" :class="item.num === backupTabKey ? 'cut' : ''" @click="backupTabClick(item.num)">
+                            <span class="font-FZGongYHJW num">{{ item.num }}</span>
+                            <span class="text">{{ item.name }}</span>
                         </div>
                     </template>
                 </div>
                 <div class="hc-backup-card-box">
                     <el-scrollbar>
-                        <div class="hc-backup-card-body" v-if="backupTabKey === 1">
+                        <div v-if="backupTabKey === 1" class="hc-backup-card-body">
                             <div class="hc-backup-table-box">
-                                <div class="tr-left">OSS当前存储内容</div>
+                                <div class="tr-left">
+                                    OSS当前存储内容
+                                </div>
                                 <div class="tr-body">
                                     <div class="tr-item">
-                                        <div class="td-name">阿里云</div>
+                                        <div class="td-name">
+                                            阿里云
+                                        </div>
                                         <div class="td-item-tr">
-                                            <div class="td-item">对象最小计量大小</div>
-                                            <div class="td-item">存储时间要求</div>
-                                            <div class="td-item">数据访问特点</div>
-                                            <div class="td-item">存储空间价格</div>
-                                            <div class="td-item">数据取回费用</div>
+                                            <div class="td-item">
+                                                对象最小计量大小
+                                            </div>
+                                            <div class="td-item">
+                                                存储时间要求
+                                            </div>
+                                            <div class="td-item">
+                                                数据访问特点
+                                            </div>
+                                            <div class="td-item">
+                                                存储空间价格
+                                            </div>
+                                            <div class="td-item">
+                                                数据取回费用
+                                            </div>
                                         </div>
                                         <div class="td-item-tr">
-                                            <div class="td-item">-</div>
-                                            <div class="td-item">-</div>
-                                            <div class="td-item">-</div>
-                                            <div class="td-item">-</div>
-                                            <div class="td-item">-</div>
+                                            <div class="td-item">
+                                                -
+                                            </div>
+                                            <div class="td-item">
+                                                -
+                                            </div>
+                                            <div class="td-item">
+                                                -
+                                            </div>
+                                            <div class="td-item">
+                                                -
+                                            </div>
+                                            <div class="td-item">
+                                                -
+                                            </div>
                                         </div>
                                     </div>
                                     <div class="tr-item">
-                                        <div class="td-name">备份云</div>
+                                        <div class="td-name">
+                                            备份云
+                                        </div>
                                         <div class="td-item-tr">
-                                            <div class="td-item">对象最小计量大小</div>
-                                            <div class="td-item">存储时间要求</div>
-                                            <div class="td-item">数据访问特点</div>
-                                            <div class="td-item">存储空间价格</div>
-                                            <div class="td-item">数据取回费用</div>
+                                            <div class="td-item">
+                                                对象最小计量大小
+                                            </div>
+                                            <div class="td-item">
+                                                存储时间要求
+                                            </div>
+                                            <div class="td-item">
+                                                数据访问特点
+                                            </div>
+                                            <div class="td-item">
+                                                存储空间价格
+                                            </div>
+                                            <div class="td-item">
+                                                数据取回费用
+                                            </div>
                                         </div>
                                         <div class="td-item-tr">
-                                            <div class="td-item">-</div>
-                                            <div class="td-item">-</div>
-                                            <div class="td-item">-</div>
-                                            <div class="td-item">-</div>
-                                            <div class="td-item">-</div>
+                                            <div class="td-item">
+                                                -
+                                            </div>
+                                            <div class="td-item">
+                                                -
+                                            </div>
+                                            <div class="td-item">
+                                                -
+                                            </div>
+                                            <div class="td-item">
+                                                -
+                                            </div>
+                                            <div class="td-item">
+                                                -
+                                            </div>
                                         </div>
                                     </div>
                                 </div>
@@ -62,36 +110,52 @@
                                 <div>2、提供多种数据处理能力,如图片处理、视频截帧、文档预览、图片场景识别、人脸识别、SQL就地查询</div>
                             </div>
                         </div>
-                        <div class="hc-backup-card-body" v-if="backupTabKey === 2">
+                        <div v-if="backupTabKey === 2" class="hc-backup-card-body">
                             <div class="hc-backup-card-btn">
-                                <el-button type="primary" hc-btn @click="balenewDataClick" :loading="balenewDataClickLoading">
-
+                                <el-button type="primary" hc-btn :loading="balenewDataClickLoading" @click="balenewDataClick">
                                     <span>打包最新数据</span>
                                 </el-button>
-                                <el-button type="primary" hc-btn  @click="downUtilsClick" :loading="downUtilsClickLoading">
-                                    <HcIcon name="download-2"/>
+                                <el-button type="primary" hc-btn :loading="downUtilsClickLoading" @click="downUtilsClick">
+                                    <HcIcon name="download-2" />
                                     <span>下载脱机载体工具</span>
                                 </el-button>
-
                             </div>
-                            <HcTable :column="tableBasicColumn" :datas="tableBasicData" :isIndex="false" border/>
+                            <HcTable :column="tableBasicColumn" :datas="tableBasicData" :is-index="false" border />
                             <div class="mt-5 hc-backup-table-box">
-                                <div class="tr-left">功能描述</div>
+                                <div class="tr-left">
+                                    功能描述
+                                </div>
                                 <div class="tr-body">
                                     <div class="tr-item">
-                                        <div class="td-name">档案存储</div>
+                                        <div class="td-name">
+                                            档案存储
+                                        </div>
                                         <div class="td-item-tr">
-                                            <div class="td-item">离线存储</div>
-                                            <div class="td-item">离线导入</div>
+                                            <div class="td-item">
+                                                离线存储
+                                            </div>
+                                            <div class="td-item">
+                                                离线导入
+                                            </div>
                                         </div>
                                     </div>
                                     <div class="tr-item">
-                                        <div class="td-name">档案查询</div>
+                                        <div class="td-name">
+                                            档案查询
+                                        </div>
                                         <div class="td-item-tr">
-                                            <div class="td-item">多条件检索查询</div>
-                                            <div class="td-item">预览</div>
-                                            <div class="td-item">下载</div>
-                                            <div class="td-item">打印</div>
+                                            <div class="td-item">
+                                                多条件检索查询
+                                            </div>
+                                            <div class="td-item">
+                                                预览
+                                            </div>
+                                            <div class="td-item">
+                                                下载
+                                            </div>
+                                            <div class="td-item">
+                                                打印
+                                            </div>
                                         </div>
                                     </div>
                                 </div>
@@ -110,16 +174,17 @@
 </template>
 
 <script setup>
-import {ref, onMounted} from "vue";
-import {useAppStore} from "~src/store";
-import backupApi from "~api/backup/backupApi.js";
-import { Loading } from "element-plus/es/components/loading/src/service";
+import { onMounted, ref } from 'vue'
+import { useAppStore } from '~src/store'
+import backupApi from '~api/backup/backupApi.js'
+import { Loading } from 'element-plus/es/components/loading/src/service'
+import { setUrlHttps } from '~src/utils/tools'
 
 //变量
 const useAppState = useAppStore()
-const projectId = ref(useAppState.getProjectId);
-const contractId = ref(useAppState.getContractId);
-const projectInfo = ref(useAppState.getProjectInfo);
+const projectId = ref(useAppState.getProjectId)
+const contractId = ref(useAppState.getContractId)
+const projectInfo = ref(useAppState.getProjectInfo)
 
 //渲染完成
 onMounted(() => {
@@ -130,33 +195,34 @@ onMounted(() => {
 //tab数据
 const backupTabKey = ref(1)
 const backupTabData = ref([
-    {num: 1, name: 'OSS云存储'},
-    {num: 2, name: '脱机软件存储'},
+    { num: 1, name: 'OSS云存储' },
+    { num: 2, name: '脱机软件存储' },
 ])
 const backupTabClick = (num) => {
     backupTabKey.value = num
 }
 //下载脱机载体工具
 const downUtilsClickLoading = ref(false)
-const downFileUrl=ref('')
-const getFileData=async()=>{
-      const { error,response,data, res} = await backupApi.DownloadVersionInfo({
-          projectId:projectId.value
+const downFileUrl = ref('')
+const getFileData = async ()=>{
+      const { error, response, data, res } = await backupApi.DownloadVersionInfo({
+          projectId:projectId.value,
 
     })
     if (!error) {
-        downFileUrl.value=data.fileUrl
-        tableBasicData.value[0].size=data.fileSize
-        tableBasicData.value[0].num=data.fileSize
-        tableBasicData.value[0].baledate=data.uploadDate
+        downFileUrl.value = data.fileUrl
+        tableBasicData.value[0].size = data.fileSize
+        tableBasicData.value[0].num = data.fileSize
+        tableBasicData.value[0].baledate = data.uploadDate
 
-    }else{
-        downUtilsClickLoading.value=false
+    } else {
+        downUtilsClickLoading.value = false
     }
 }
 const downUtilsClick = () => {
     if (downFileUrl.value) {
-         window.open(downFileUrl.value, '_blank')
+        //  window.open(downFileUrl.value, '_blank')
+        window.open( setUrlHttps(downFileUrl.value), '_blank')
     }
 
 
@@ -164,40 +230,39 @@ const downUtilsClick = () => {
 
 //打包最新数据
 const balenewDataClickLoading = ref(false)
-const balenewDataClick = async() => {
-     balenewDataClickLoading.value=true
-      const { error,response, res,data} = await backupApi.getpackData({
-          projectId:projectId.value
+const balenewDataClick = async () => {
+     balenewDataClickLoading.value = true
+      const { error, response, res, data } = await backupApi.getpackData({
+          projectId:projectId.value,
 
     })
     if (!error) {
            window.$message?.success(data)
-         balenewDataClickLoading.value=false
-    }else{
-        balenewDataClickLoading.value=false
+         balenewDataClickLoading.value = false
+    } else {
+        balenewDataClickLoading.value = false
     }
 
 }
 
 //表格
 const tableBasicColumn = [
-    {key:'name', name: '软件名称', align: 'center'},
-    {key:'type', name: '软件打开方式', align: 'center'},
-    {key:'size', name: '软件包大小', align: 'center'},
-    {key:'num', name: '目前存储量', align: 'center'},
-    {key:'baledate', name: '打包日期', align: 'center'}
+    { key:'name', name: '软件名称', align: 'center' },
+    { key:'type', name: '软件打开方式', align: 'center' },
+    { key:'size', name: '软件包大小', align: 'center' },
+    { key:'num', name: '目前存储量', align: 'center' },
+    { key:'baledate', name: '打包日期', align: 'center' },
 ]
 const tableBasicData = ref([
-    {name:'工程档案离线存储软件', type: '桌面、U盘、硬盘皆可支持安装存放', size: '2.3G', num: '',baledate:''}
+    { name:'工程档案离线存储软件', type: '桌面、U盘、硬盘皆可支持安装存放', size: '2.3G', num: '', baledate:'' },
 ])
-
 </script>
 
 <style lang="scss" scoped>
 @import '~style/custody/scoped/backup.scss';
 </style>
 
-<style lang="scss" >
+<style lang="scss">
 .hc-backup-card-body .hc-table-ref-box {
     border: 0;
 }