| src/api/http/config.ts | ●●●●● patch | view | raw | blame | history | |
| src/components/MediaPanel.vue | ●●●●● patch | view | raw | blame | history | |
| src/main.ts | ●●●●● patch | view | raw | blame | history | |
| src/pages/page-web/home.vue | ●●●●● patch | view | raw | blame | history | |
| src/permission.ts | ●●●●● patch | view | raw | blame | history |
src/api/http/config.ts
@@ -8,13 +8,13 @@ // http // http://172.16.13.64:8100 // baseURL: 'http://192.168.1.133:6789', // This url must end with "/". Example: 'http://192.168.1.1:6789/' baseURL: 'http://192.168.1.198:6789', // This url must end with "/". Example: 'http://192.168.1.1:6789/' // baseURL: 'https://dev.jxpskj.com:36789', // This url must end with "/". Example: 'http://192.168.1.1:6789/' // baseURL: 'http://192.168.1.198:6789', // This url must end with "/". Example: 'http://192.168.1.1:6789/' baseURL: 'https://dev.jxpskj.com:36789', // This url must end with "/". Example: 'http://192.168.1.1:6789/' // ws: 'ws//127.0.0.1:6789/api/v1/ws', // ws://192.168.1.198:1883/ websocketURL: 'ws://192.168.1.198:6789/api/v1/ws', // Example: 'ws://192.168.1.198:6789/api/v1/ws' // websocketURL: 'ws://192.168.1.198:6789/api/v1/ws', // Example: 'ws://192.168.1.198:6789/api/v1/ws' // websocketURL: 'ws://192.168.1.133:6789/api/v1/ws', // Example: 'ws://192.168.1.198:6789/api/v1/ws' // websocketURL: 'wss://dev.jxpskj.com:36789/api/v1/ws', // Example: 'ws://192.168.1.198:6789/api/v1/ws' websocketURL: 'wss://dev.jxpskj.com:36789/api/v1/ws', // Example: 'ws://192.168.1.198:6789/api/v1/ws' // livestreaming // RTMP Note: This IP is the address of the streaming server. If you want to see livestream on web page, you need to convert the RTMP stream to WebRTC stream. src/components/MediaPanel.vue
@@ -55,16 +55,16 @@ </template> <script setup lang="ts"> import {ref} from '@vue/reactivity' import {TableState} from 'ant-design-vue/lib/table/interface' import {onMounted, reactive} from 'vue' import {IPage} from '../api/http/type' import {ELocalStorageKey} from '../types/enums' import {downloadFile} from '../utils/common' import {downloadMediaFile, getMediaFiles, MediaQueryParam} from '/@/api/media' import {DownloadOutlined} from '@ant-design/icons-vue' import {message, Pagination} from 'ant-design-vue' import {TaskStatus, TaskStatusMap} from '/@/types/task' import { ref } from '@vue/reactivity' import { TableState } from 'ant-design-vue/lib/table/interface' import { onMounted, reactive } from 'vue' import { IPage } from '../api/http/type' import { ELocalStorageKey } from '../types/enums' import { downloadFile } from '../utils/common' import { downloadMediaFile, getMediaFiles, MediaQueryParam } from '/@/api/media' import { DownloadOutlined } from '@ant-design/icons-vue' import { message, Pagination } from 'ant-design-vue' import { TaskStatus, TaskStatusMap } from '/@/types/task' const workspaceId = localStorage.getItem(ELocalStorageKey.WorkspaceId)! const loading = ref(false) @@ -78,8 +78,8 @@ }) const subFileTypeOptions = [ {value: 0, label: '普通图片'}, {value: 1, label: '全景图'}, { value: 0, label: '普通图片' }, { value: 1, label: '全景图' }, ] const payloadOptions = [] @@ -96,7 +96,7 @@ title: '文件名称', dataIndex: 'file_name', ellipsis: true, slots: {customRender: 'name'} slots: { customRender: 'name' } }, // { // title: '文件路径', @@ -127,7 +127,7 @@ }, { title: '操作', slots: {customRender: 'action'} slots: { customRender: 'action' } } ] const body: IPage = { @@ -165,27 +165,27 @@ getFiles() }) function dateChange(value: any) { function dateChange (value: any) { searchQuery.startTime = value[0] searchQuery.endTime = value[1] getFiles() } function subFileTypeChange(value: any) { function subFileTypeChange (value: any) { searchQuery.subFileType = value.join(',') getFiles() } function payloadChange(value: any) { function payloadChange (value: any) { searchQuery.payload = value.join(',') getFiles() } function inputChange(searchValue: string) { function inputChange (searchValue: string) { getFiles() } function getFiles() { function getFiles () { getMediaFiles(workspaceId, body, searchQuery).then(res => { mediaData.data = res.data.list paginationProp.total = res.data.pagination.total @@ -194,13 +194,13 @@ }) } function refreshData(page: Pagination) { function refreshData (page: Pagination) { body.page = page?.current! body.page_size = page?.pageSize! getFiles() } function downloadMedia(media: MediaFile) { function downloadMedia (media: MediaFile) { loading.value = true downloadMediaFile(workspaceId, media.file_id).then(res => { if (!res) { src/main.ts
@@ -1,3 +1,13 @@ /* * @Author: husq 931347610@qq.com * @Date: 2023-09-13 18:21:07 * @LastEditors: husq 931347610@qq.com * @LastEditTime: 2023-09-25 15:54:31 * @FilePath: \Cloud-API-Demo-Web\src\main.ts * @Description: * * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. */ import App from './App.vue' import router from './router' import { antComponents } from './antd' @@ -5,6 +15,7 @@ import 'virtual:svg-icons-register' import store, { storeKey } from './store' import { createInstance } from '/@/root' import './permission' import '/@/styles/index.scss' const app = createInstance(App) // 引入css app.use(store, storeKey) src/pages/page-web/home.vue
@@ -17,11 +17,11 @@ <script lang="ts" setup> import zhCN from 'ant-design-vue/es/locale/zh_CN' import Topbar from '/@/components/common/topbar.vue' import {onMounted, reactive, ref, UnwrapRef, watch} from 'vue' import {getRoot} from '/@/root' import {useRoute} from 'vue-router' import {EBizCode, ELocalStorageKey, ERouterName} from '/@/types' import {useConnectWebSocket} from '/@/hooks/use-connect-websocket' import { onMounted, reactive, ref, UnwrapRef, watch } from 'vue' import { getRoot } from '/@/root' import { useRoute } from 'vue-router' import { EBizCode, ELocalStorageKey, ERouterName } from '/@/types' import { useConnectWebSocket } from '/@/hooks/use-connect-websocket' import EventBus from '/@/event-bus' interface FormState { src/permission.ts
New file @@ -0,0 +1,28 @@ import { ELocalStorageKey, ERouterName } from './types/enums' import router from '/@/router/index' const whiteList = ['/' + ERouterName.LOGIN] // 设置白名单 router.beforeEach(async (to, from, next) => { // 确定用户是否已登录过,存在Token const hasToken = localStorage.getItem(ELocalStorageKey.Token) if (hasToken) { if (to.path === '/' + ERouterName.LOGIN) { // 如果已登录,请重定向到主页 next({ path: '/' + ERouterName.PROJECT_LIST }) } else { try { next() // // 如果不传参数就会重新执行路由拦截,重新进到这里 } catch (error) { next(`/${ERouterName.LOGIN}?redirect=${to.path}`) } } } else { if (whiteList.indexOf(to.path) !== -1) { next() } else { next(`/${ERouterName.LOGIN}?redirect=${to.path}`) } } })