From b3950b71def7ced271171626c4c883f66fa036e3 Mon Sep 17 00:00:00 2001
From: odc.xiaohui <xiaohui@Q1>
Date: 星期四, 09 十一月 2023 10:03:45 +0800
Subject: [PATCH] 修改视频专网
---
src/views/index.vue | 147 ++++------------
src/views/register.vue | 4
.env.development | 6
vite.config.ts | 3
src/views/login.vue | 38 +++
src/utils/request.ts | 35 ++-
.env.production | 4
src/App.vue | 4
src/views/system/oss/index.vue | 236 +++++++++++++++----------
src/permission.ts | 10
10 files changed, 243 insertions(+), 244 deletions(-)
diff --git a/.env.development b/.env.development
index 546360e..787bec8 100644
--- a/.env.development
+++ b/.env.development
@@ -6,15 +6,15 @@
# 寮�鍙戠幆澧�
VITE_APP_BASE_API = '/dev-api'
-#VITE_APP_BASE_API='/'
+#VITE_APP_BASE_API='/prod-api'
# 搴旂敤璁块棶璺緞 渚嬪浣跨敤鍓嶇紑 /admin/
VITE_APP_CONTEXT_PATH = '/'
# 鐩戞帶鍦板潃
-VITE_APP_MONITRO_ADMIN = 'http://192.168.3.228:8080/admin/applications'
+VITE_APP_MONITRO_ADMIN = 'http://162.14.79.111:8080/admin/applications'
# powerjob 鎺у埗鍙板湴鍧�
-VITE_APP_POWERJOB_ADMIN = 'http://192.168.3.228:8080/'
+VITE_APP_POWERJOB_ADMIN = 'http://162.14.79.111:8080/'
VITE_APP_PORT = 80
diff --git a/.env.production b/.env.production
index 8a9b298..78f1f76 100644
--- a/.env.production
+++ b/.env.production
@@ -2,10 +2,10 @@
VITE_APP_TITLE = 璺ㄧ綉鏂囦欢鍚屾绯荤粺
# 鐢熶骇鐜閰嶇疆
-VITE_APP_ENV = 'production'
+VITE_APP_ENV='production'
# 搴旂敤璁块棶璺緞 渚嬪浣跨敤鍓嶇紑 /admin/
-VITE_APP_CONTEXT_PATH = '/'
+VITE_APP_CONTEXT_PATH='/'
# 鐩戞帶鍦板潃
VITE_APP_MONITRO_ADMIN = '/admin/applications'
diff --git a/src/App.vue b/src/App.vue
index 4eaa6b3..a124b45 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -16,10 +16,6 @@
const appStore = useAppStore();
const size = computed(() => appStore.size as any);
-import router from './router';
-import { to as tos } from "await-to-js";
-import useUserStore from "@/store/modules/user";
-
diff --git a/src/permission.ts b/src/permission.ts
index d87f2a4..5662679 100644
--- a/src/permission.ts
+++ b/src/permission.ts
@@ -10,22 +10,22 @@
import usePermissionStore from '@/store/modules/permission';
NProgress.configure({ showSpinner: false });
-const whiteList = ['/login', '/register', '/social-callback','/index'];
+const whiteList = ['/login', '/register', '/social-callback'];
router.beforeEach(async (to, from, next) => {
NProgress.start();
if (getToken()) {
- console.log('鏈塼oken',to.path);
+ console.log('鍒ゆ柇褰撳墠鐢ㄦ埛鏄惁宸叉媺鍙栧畬user_info淇℃伅');
to.meta.title && useSettingsStore().setTitle(to.meta.title as string);
/* has token*/
if (to.path === '/login') {
next({ path: '/' });
NProgress.done();
} else {
- console.log(useUserStore().roles);
if (useUserStore().roles.length === 0) {
isRelogin.show = true;
// 鍒ゆ柇褰撳墠鐢ㄦ埛鏄惁宸叉媺鍙栧畬user_info淇℃伅
+
const [err] = await tos(useUserStore().getInfo());
if (err) {
await useUserStore().logout();
@@ -48,12 +48,12 @@
}
} else {
// 娌℃湁token
+ console.log("娌℃湁token");
if (whiteList.indexOf(to.path) !== -1) {
// 鍦ㄥ厤鐧诲綍鐧藉悕鍗曪紝鐩存帴杩涘叆
next();
} else {
- // next(`/login?redirect=${to.fullPath}`); // 鍚﹀垯鍏ㄩ儴閲嶅畾鍚戝埌鐧诲綍椤�
- next(`/index`); // 鍚﹀垯鍏ㄩ儴閲嶅畾鍚戝埌鐧诲綍椤�
+ next(`/login?redirect=${to.fullPath}`); // 鍚﹀垯鍏ㄩ儴閲嶅畾鍚戝埌鐧诲綍椤�
NProgress.done();
}
}
diff --git a/src/utils/request.ts b/src/utils/request.ts
index fe246b1..6178701 100644
--- a/src/utils/request.ts
+++ b/src/utils/request.ts
@@ -10,6 +10,7 @@
import { getLanguage } from '@/lang';
import { encryptBase64, encryptWithAes, generateAesKey } from '@/utils/crypto';
import { encrypt } from '@/utils/jsencrypt';
+import router from "@/router";
let downloadLoadingInstance: LoadingInstance;
// 鏄惁鏄剧ず閲嶆柊鐧诲綍
@@ -105,23 +106,25 @@
return res.data;
}
if (code === 401) {
+ console.log(code,'code==============');
+ router.push({ path: '/login' });
// prettier-ignore
- if (!isRelogin.show) {
- // isRelogin.show = true;
- isRelogin.show = true;
- ElMessageBox.confirm('鐧诲綍鐘舵�佸凡杩囨湡锛屾偍鍙互缁х画鐣欏湪璇ラ〉闈紝鎴栬�呴噸鏂扮櫥褰�', '绯荤粺鎻愮ず', {
- confirmButtonText: '閲嶆柊鐧诲綍',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- isRelogin.show = false;
- useUserStore().logout().then(() => {
- location.href = import.meta.env.VITE_APP_CONTEXT_PATH + 'index';
- });
- }).catch(() => {
- isRelogin.show = false;
- });
- }
+ // if (!isRelogin.show) {
+ // // isRelogin.show = true;
+ // isRelogin.show = true;
+ // ElMessageBox.confirm('鐧诲綍鐘舵�佸凡杩囨湡锛屾偍鍙互缁х画鐣欏湪璇ラ〉闈紝鎴栬�呴噸鏂扮櫥褰�', '绯荤粺鎻愮ず', {
+ // confirmButtonText: '閲嶆柊鐧诲綍',
+ // cancelButtonText: '鍙栨秷',
+ // type: 'warning'
+ // }).then(() => {
+ // isRelogin.show = false;
+ // useUserStore().logout().then(() => {
+ // location.href = import.meta.env.VITE_APP_CONTEXT_PATH + 'index';
+ // });
+ // }).catch(() => {
+ // isRelogin.show = false;
+ // });
+ // }
return Promise.reject('鏃犳晥鐨勪細璇濓紝鎴栬�呬細璇濆凡杩囨湡锛岃閲嶆柊鐧诲綍銆�');
} else if (code === HttpStatus.SERVER_ERROR) {
console.log(msg);
diff --git a/src/views/index.vue b/src/views/index.vue
index 5574922..cb759dd 100644
--- a/src/views/index.vue
+++ b/src/views/index.vue
@@ -4,29 +4,11 @@
<div class="mb-[10px]" v-show="showSearch">
<el-card shadow="hover">
<el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
- <!-- <el-form-item label="鏂囦欢鍚�" prop="fileName">-->
- <!-- <el-input v-model="queryParams.fileName" placeholder="璇疯緭鍏ユ枃浠跺悕" clearable style="width: 200px" @keyup.enter="handleQuery" />-->
- <!-- </el-form-item>-->
+
<el-form-item label="鍘熷悕" prop="originalName">
<el-input v-model="queryParams.originalName" placeholder="璇疯緭鍏ュ師鍚�" clearable style="width: 200px" @keyup.enter="handleQuery" />
</el-form-item>
-<!-- <el-form-item label="鏂囦欢鍚庣紑" prop="fileSuffix">-->
-<!-- <el-input v-model="queryParams.fileSuffix" placeholder="璇疯緭鍏ユ枃浠跺悗缂�" clearable style="width: 200px" @keyup.enter="handleQuery" />-->
-<!-- </el-form-item>-->
- <!-- <el-form-item label="鍒涘缓鏃堕棿">-->
- <!-- <el-date-picker-->
- <!-- v-model="dateRangeCreateTime"-->
- <!-- value-format="YYYY-MM-DD HH:mm:ss"-->
- <!-- type="daterange"-->
- <!-- range-separator="-"-->
- <!-- start-placeholder="寮�濮嬫棩鏈�"-->
- <!-- end-placeholder="缁撴潫鏃ユ湡"-->
- <!-- :default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]"-->
- <!-- ></el-date-picker>-->
- <!-- </el-form-item>-->
- <!-- <el-form-item label="鏈嶅姟鍟�" prop="service">-->
- <!-- <el-input v-model="queryParams.service" placeholder="璇疯緭鍏ユ湇鍔″晢" clearable style="width: 200px" @keyup.enter="handleQuery" />-->
- <!-- </el-form-item>-->
+
<el-form-item>
<el-button type="primary" icon="search" @click="handleQuery">鎼滅储</el-button>
<el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
@@ -42,35 +24,15 @@
<el-col :span="1.5">
<el-button type="primary" plain icon="Upload" @click="handleFile" v-if="isContains(useUserStore().permissions, 'system:oss:upload')">涓婁紶鏂囦欢</el-button>
</el-col>
-<!-- <el-col :span="1.5">-->
-<!-- <el-button type="primary" plain icon="Upload" @click="handleImage" v-if="isContains(useUserStore().permissions, 'system:oss:upload')">涓婁紶鍥剧墖</el-button>-->
-<!-- </el-col>-->
-<!-- <el-col :span="1.5">-->
-<!-- <el-button type="primary" plain icon="Upload" @click="handleVideo" v-if="isContains(useUserStore().permissions, 'system:oss:upload')">涓婁紶瑙嗛</el-button>-->
-<!-- </el-col>-->
+
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-if="isContains(useUserStore().permissions, 'system:oss:remove')">
鍒犻櫎
</el-button>
</el-col>
- <!-- <el-col :span="1.5">-->
- <!-- <el-button-->
- <!-- :type="previewListResource ? 'danger' : 'warning'"-->
- <!-- plain-->
- <!-- @click="handlePreviewListResource(!previewListResource)"-->
- <!-- v-hasPermi="['system:oss:edit']"-->
- <!-- >棰勮寮�鍏� :-->
- <!-- {{-->
- <!-- previewListResource ? "绂佺敤" : "鍚敤" }}</el-button-->
- <!-- >-->
- <!-- </el-col>-->
- <el-col :span="1.5">
- <el-button type="info" plain icon="Operation" @click="handleOssConfig" v-hasPermi="['system:oss:lists']">閰嶇疆绠$悊</el-button>
- </el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</template>
-
<el-table
v-loading="loading"
:data="ossList"
@@ -80,29 +42,8 @@
v-if="showTable"
>
<el-table-column type="selection" width="55" align="center" />
- <!-- <el-table-column label="瀵硅薄瀛樺偍涓婚敭" align="center" prop="ossId" v-if="true" />-->
- <!-- <el-table-column label="鏂囦欢鍚�" align="center" prop="fileName" />-->
<el-table-column label="鍘熷悕" align="center" prop="originalName" />
-<!-- <el-table-column label="鏂囦欢鍚庣紑" align="center" prop="fileSuffix" />-->
- <!-- <el-table-column label="鏂囦欢灞曠ず" align="center" prop="url">-->
- <!-- <template #default="scope">-->
- <!-- <ImagePreview-->
- <!-- v-if="previewListResource && checkFileSuffix(scope.row.fileSuffix)"-->
- <!-- :width="100"-->
- <!-- :height="100"-->
- <!-- :src="scope.row.url"-->
- <!-- :preview-src-list="[scope.row.url]"-->
- <!-- />-->
- <!-- <span v-text="scope.row.url" v-if="!checkFileSuffix(scope.row.fileSuffix) || !previewListResource" />-->
- <!-- </template>-->
- <!-- </el-table-column>-->
-<!-- <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180" sortable="custom">-->
-<!-- <template #default="scope">-->
-<!-- <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>-->
-<!-- </template>-->
-<!-- </el-table-column>-->
<el-table-column label="涓婁紶浜�" align="center" prop="createByName" />
- <!-- <el-table-column label="鏈嶅姟鍟�" align="center" prop="service" sortable="custom" />-->
<el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="鏌ョ湅鎻愬彇鐮�" placement="top">
@@ -152,17 +93,13 @@
<script setup name="Oss" lang="ts">
import { listOss, delOss, createUser, examineIds } from "@/api/system/oss";
-import ImagePreview from "@/components/ImagePreview/index.vue";
import { OssForm, OssQuery, OssVO } from "@/api/system/oss/types";
-import { getInfo } from "@/api/login";
import { to as tos } from "await-to-js";
import useUserStore from "@/store/modules/user";
-import { setToken } from "@/utils/auth";
+import { getToken, setToken } from "@/utils/auth";
import usePermissionStore from "@/store/modules/permission";
import { isHttp } from "@/utils/validate";
-import { any } from "vue-types";
-
-const router = useRouter();
+import router from '@/router';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const ossList = ref<OssVO[]>([]);
@@ -318,9 +255,6 @@
getList();
}
/** 浠诲姟鏃ュ織鍒楄〃鏌ヨ */
-const handleOssConfig = () => {
- router.push('/system/oss-config/index')
-}
/** 鏂囦欢鎸夐挳鎿嶄綔 */
const handleFile = () => {
reset();
@@ -346,8 +280,6 @@
const submitForm = async () => {
await childFile.value.handleCilck()
dialog.visible = false;
- // setTimeout(() =>{ getList();},1000)
-
}
const handleCode = async (row: OssVO) => {
console.log(row, row.ossId);
@@ -396,15 +328,6 @@
}
/** 鐢ㄦ埛鐘舵�佷慨鏀� */
-const handlePreviewListResource = async (preview: boolean) => {
- let text = preview ? "鍚敤" : "鍋滅敤";
- try {
- await proxy?.$modal.confirm('纭瑕�"' + text + '""棰勮鍒楄〃鍥剧墖"閰嶇疆鍚�?');
- await proxy?.updateConfigByKey("sys.oss.previewListResource", preview);
- await getList()
- proxy?.$modal.msgSuccess(text + "鎴愬姛");
- } catch { return }
-}
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
const handleDelete = async (row?: OssVO) => {
const ossIds = row?.ossId || ids.value;
@@ -415,9 +338,8 @@
proxy?.$modal.msgSuccess("鍒犻櫎鎴愬姛");
}
const refreshPage = async () => {
- // const [err] = await tos(useUserStore().getInfo());
- // console.log(err);
const accessRoutes = await usePermissionStore().generateRoutes();
+ console.log(accessRoutes,'accessRoutes',router);
// 鏍规嵁roles鏉冮檺鐢熸垚鍙闂殑璺敱琛�
accessRoutes.forEach((route) => {
if (!isHttp(route.path)) {
@@ -429,6 +351,7 @@
const isContains = (arr: string | any[], value: any) => {
return arr.includes(value);
};
+
const setAddUser = async (val: any | number | (string | number)[]) => {
console.log(val);
const res = await createUser(val)
@@ -436,15 +359,13 @@
if (res.code==200){
const data = res.data;
setToken(data.access_token);
- await refreshPage()
+ const [err] = await tos(useUserStore().getInfo());
+ console.log('useUserStore', useUserStore,err);
await getList()
- await nextTick(async () => {
- const [err] = await tos(useUserStore().getInfo());
- console.log('useUserStore', useUserStore,err);
+
+ // await refreshPage()
+
console.log('permissions', useUserStore().permissions,'system:oss:upload');
-
- })
-
// token.value = data.access_token;
}
}
@@ -457,32 +378,36 @@
// });
onBeforeMount( async () => {
console.log('绗竴',useUserStore().permissions);
- try {
- // 浣跨敤fetch API鑾峰彇褰撳墠IP鍦板潃
- await fetch('https://api.ipify.org/?format=json')
- .then(response => response.json())
- .then(async data => {
- currentIp.value = data.ip;
- let obj = {
- username: data.ip
- }
- await setAddUser(obj)
- })
- .catch(error => {
- console.error('鑾峰彇IP鍦板潃澶辫触锛�', error);
- });
- } catch (error) {
- console.log(error);
- }
+ // try {
+ // // 浣跨敤fetch API鑾峰彇褰撳墠IP鍦板潃
+ // await fetch('https://api.ipify.org/?format=json')
+ // .then(response => response.json())
+ // .then(async data => {
+ // currentIp.value = data.ip;
+ // let obj = {
+ // username: data.ip
+ // }
+ // await setAddUser(obj)
+ // })
+ // .catch(error => {
+ // console.error('鑾峰彇IP鍦板潃澶辫触锛�', error);
+ // });
+ // } catch (error) {
+ // console.log(error);
+ // }
})
onMounted(async () => {
- console.log('绗簩',useUserStore().permissions);
+ console.log('绗簩aaaaaaa',useUserStore().permissions);
// 绛夊緟 useUserStore() 鏂规硶鐨� getInfo() 鏂规硶杩斿洖缁撴灉骞惰祴鍊肩粰 err 鍙橀噺
// const [err] = await tos(useUserStore().getInfo());
-
+ if (getToken()){
+ await getList();
+ }else {
+ router.push('/login')
+ }
// 璋冪敤 getList() 鏂规硶
- // await getList();
+
})
</script>
diff --git a/src/views/login.vue b/src/views/login.vue
index 02cef14..f2d2445 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -63,8 +63,10 @@
import { authBinding } from '@/api/system/social/auth';
import { useUserStore } from '@/store/modules/user';
import { LoginData, TenantVO } from '@/api/types';
-import { to } from 'await-to-js';
+import { to as tos, to } from "await-to-js";
import { HttpStatus } from "@/enums/RespEnum";
+import { createUser } from "@/api/system/oss";
+import { setToken } from "@/utils/auth";
const userStore = useUserStore();
const router = useRouter();
@@ -203,12 +205,38 @@
});
};
+const setAddUser = async (val: any | number | (string | number)[]) => {
+ console.log(val);
+ const res = await createUser(val)
+ console.log(res);
+ if (res.code == 200) {
+ const data = res.data;
+ setToken(data.access_token);
+ }
+}
-onMounted(() => {
- getCode();
- initTenantList();
- getLoginData();
+onMounted(async () => {
+ try {
+ // 浣跨敤fetch API鑾峰彇褰撳墠IP鍦板潃
+ await fetch('https://api.ipify.org/?format=json')
+ .then(response => response.json())
+ .then(async data => {
+ let obj = {
+ username: data.ip
+ }
+ await setAddUser(obj)
+ })
+ .catch(error => {
+ console.error('鑾峰彇IP鍦板潃澶辫触锛�', error);
+ });
+ } catch (error) {
+ console.log(error);
+ }
+ router.push('index')
+ // getCode();
+ // initTenantList();
+ // getLoginData();
});
</script>
diff --git a/src/views/register.vue b/src/views/register.vue
index d4d262a..295480b 100644
--- a/src/views/register.vue
+++ b/src/views/register.vue
@@ -153,8 +153,8 @@
}
onMounted(() => {
- getCode();
- initTenantList();
+ // getCode();
+ // initTenantList();
})
</script>
diff --git a/src/views/system/oss/index.vue b/src/views/system/oss/index.vue
index d8f17ef..b6ea088 100644
--- a/src/views/system/oss/index.vue
+++ b/src/views/system/oss/index.vue
@@ -4,29 +4,11 @@
<div class="mb-[10px]" v-show="showSearch">
<el-card shadow="hover">
<el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
-<!-- <el-form-item label="鏂囦欢鍚�" prop="fileName">-->
-<!-- <el-input v-model="queryParams.fileName" placeholder="璇疯緭鍏ユ枃浠跺悕" clearable style="width: 200px" @keyup.enter="handleQuery" />-->
-<!-- </el-form-item>-->
+
<el-form-item label="鍘熷悕" prop="originalName">
<el-input v-model="queryParams.originalName" placeholder="璇疯緭鍏ュ師鍚�" clearable style="width: 200px" @keyup.enter="handleQuery" />
</el-form-item>
- <el-form-item label="鏂囦欢鍚庣紑" prop="fileSuffix">
- <el-input v-model="queryParams.fileSuffix" placeholder="璇疯緭鍏ユ枃浠跺悗缂�" clearable style="width: 200px" @keyup.enter="handleQuery" />
- </el-form-item>
-<!-- <el-form-item label="鍒涘缓鏃堕棿">-->
-<!-- <el-date-picker-->
-<!-- v-model="dateRangeCreateTime"-->
-<!-- value-format="YYYY-MM-DD HH:mm:ss"-->
-<!-- type="daterange"-->
-<!-- range-separator="-"-->
-<!-- start-placeholder="寮�濮嬫棩鏈�"-->
-<!-- end-placeholder="缁撴潫鏃ユ湡"-->
-<!-- :default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]"-->
-<!-- ></el-date-picker>-->
-<!-- </el-form-item>-->
-<!-- <el-form-item label="鏈嶅姟鍟�" prop="service">-->
-<!-- <el-input v-model="queryParams.service" placeholder="璇疯緭鍏ユ湇鍔″晢" clearable style="width: 200px" @keyup.enter="handleQuery" />-->
-<!-- </el-form-item>-->
+
<el-form-item>
<el-button type="primary" icon="search" @click="handleQuery">鎼滅储</el-button>
<el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
@@ -40,37 +22,17 @@
<template #header>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
- <el-button type="primary" plain icon="Upload" @click="handleFile" v-hasPermi="['system:oss:upload']">涓婁紶鏂囦欢</el-button>
+ <el-button type="primary" plain icon="Upload" @click="handleFile" v-if="isContains(useUserStore().permissions, 'system:oss:upload')">涓婁紶鏂囦欢</el-button>
</el-col>
+
<el-col :span="1.5">
- <el-button type="primary" plain icon="Upload" @click="handleImage" v-hasPermi="['system:oss:upload']">涓婁紶鍥剧墖</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button type="primary" plain icon="Upload" @click="handleVideo" v-hasPermi="['system:oss:upload']">涓婁紶瑙嗛</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['system:oss:remove']">
+ <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-if="isContains(useUserStore().permissions, 'system:oss:remove')">
鍒犻櫎
</el-button>
- </el-col>
-<!-- <el-col :span="1.5">-->
-<!-- <el-button-->
-<!-- :type="previewListResource ? 'danger' : 'warning'"-->
-<!-- plain-->
-<!-- @click="handlePreviewListResource(!previewListResource)"-->
-<!-- v-hasPermi="['system:oss:edit']"-->
-<!-- >棰勮寮�鍏� :-->
-<!-- {{-->
-<!-- previewListResource ? "绂佺敤" : "鍚敤" }}</el-button-->
-<!-- >-->
-<!-- </el-col>-->
- <el-col :span="1.5">
- <el-button type="info" plain icon="Operation" @click="handleOssConfig" v-hasPermi="['system:oss:lists']">閰嶇疆绠$悊</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</template>
-
<el-table
v-loading="loading"
:data="ossList"
@@ -80,39 +42,18 @@
v-if="showTable"
>
<el-table-column type="selection" width="55" align="center" />
-<!-- <el-table-column label="瀵硅薄瀛樺偍涓婚敭" align="center" prop="ossId" v-if="true" />-->
-<!-- <el-table-column label="鏂囦欢鍚�" align="center" prop="fileName" />-->
<el-table-column label="鍘熷悕" align="center" prop="originalName" />
- <el-table-column label="鏂囦欢鍚庣紑" align="center" prop="fileSuffix" />
-<!-- <el-table-column label="鏂囦欢灞曠ず" align="center" prop="url">-->
-<!-- <template #default="scope">-->
-<!-- <ImagePreview-->
-<!-- v-if="previewListResource && checkFileSuffix(scope.row.fileSuffix)"-->
-<!-- :width="100"-->
-<!-- :height="100"-->
-<!-- :src="scope.row.url"-->
-<!-- :preview-src-list="[scope.row.url]"-->
-<!-- />-->
-<!-- <span v-text="scope.row.url" v-if="!checkFileSuffix(scope.row.fileSuffix) || !previewListResource" />-->
-<!-- </template>-->
-<!-- </el-table-column>-->
- <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180" sortable="custom">
- <template #default="scope">
- <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
- </template>
- </el-table-column>
<el-table-column label="涓婁紶浜�" align="center" prop="createByName" />
-<!-- <el-table-column label="鏈嶅姟鍟�" align="center" prop="service" sortable="custom" />-->
<el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="鏌ョ湅鎻愬彇鐮�" placement="top">
- <el-button link type="primary" icon="Search" @click="handleCode(scope.row)" v-hasPermi="['system:oss:decode']"></el-button>
+ <el-button link type="primary" icon="Search" @click="handleCode(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:view')"></el-button>
</el-tooltip>
<el-tooltip content="涓嬭浇" placement="top">
- <el-button link type="primary" icon="Download" @click="handleDownload(scope.row)" v-hasPermi="['system:oss:download']"></el-button>
+ <el-button link type="primary" icon="Download" @click="handleDownload(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:download')"></el-button>
</el-tooltip>
<el-tooltip content="鍒犻櫎" placement="top">
- <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:oss:remove']"></el-button>
+ <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-if="isContains(useUserStore().permissions, 'system:oss:remove')"></el-button>
</el-tooltip>
</template>
</el-table-column>
@@ -124,7 +65,7 @@
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="ossFormRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="鏂囦欢鍚�">
- <fileUpload v-model="form.file" v-if="type === 0" />
+ <fileUpload ref="childFile" @closePopup="getList()" v-model="form.file" v-if="type === 0" />
<imageUpload v-model="form.file" v-if="type === 1" />
<video-upload v-model="form.file" v-if="type === 2" />"
</el-form-item>
@@ -136,8 +77,10 @@
</div>
</template>
</el-dialog>
- <el-dialog title="鏌ョ湅鎻愬彇鐮�" v-model="visibleCode" width="500px" append-to-body>
- <span>qw15rw</span>
+ <el-dialog :title="titleDownload" v-model="visibleCode" width="500px" append-to-body>
+ <span v-show="titleDownload=='鏌ョ湅鎻愬彇鐮�'">{{testtxt}}</span>
+ <el-input style="margin: 10px 0" ref="inputRef" :style="inputSty" v-show="titleDownload!='鏌ョ湅鎻愬彇鐮�'" v-model="pasTxt" v-if="isContains(useUserStore().permissions, 'system:oss:download')" placeholder="璇疯緭鍏ユ枃浠舵彁鍙栫爜"></el-input>
+ <el-button link type="primary" v-show="titleDownload!='鏌ョ湅鎻愬彇鐮�'" icon="Download" @click="handleDownloadFile()" v-if="isContains(useUserStore().permissions, 'system:oss:download')">涓嬭浇</el-button>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="visibleCode = false">纭� 瀹�</el-button>
@@ -149,11 +92,14 @@
</template>
<script setup name="Oss" lang="ts">
-import { listOss, delOss } from "@/api/system/oss";
-import ImagePreview from "@/components/ImagePreview/index.vue";
+import { listOss, delOss, createUser, examineIds } from "@/api/system/oss";
import { OssForm, OssQuery, OssVO } from "@/api/system/oss/types";
-
-const router = useRouter();
+import { to as tos } from "await-to-js";
+import useUserStore from "@/store/modules/user";
+import { setToken } from "@/utils/auth";
+import usePermissionStore from "@/store/modules/permission";
+import { isHttp } from "@/utils/validate";
+import router from '@/router';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const ossList = ref<OssVO[]>([]);
@@ -173,7 +119,14 @@
visible: false,
title: ''
});
-
+const testtxt = ref<any>()
+const pasTxt = ref<any>()
+const titleDownload = ref<any>()
+const downIds = ref<any>()
+const inputRef = ref<any>()
+const inputSty =ref<any>()
+const currentIp = ref('')
+const childFile = ref<any>()
// 榛樿鎺掑簭
const defaultSort = ref({ prop: 'createTime', order: 'ascending' });
@@ -205,9 +158,12 @@
});
const { queryParams, form, rules } = toRefs(data);
-
+const sure = () => {
+ testtxt.value += 1
+}
/** 鏌ヨOSS瀵硅薄瀛樺偍鍒楄〃 */
const getList = async () => {
+
loading.value = true;
const res = await proxy?.getConfigKey("sys.oss.previewListResource");
previewListResource.value = res?.data === undefined ? true : res.data === 'true';
@@ -299,9 +255,6 @@
getList();
}
/** 浠诲姟鏃ュ織鍒楄〃鏌ヨ */
-const handleOssConfig = () => {
- router.push('/system/oss-config/index')
-}
/** 鏂囦欢鎸夐挳鎿嶄綔 */
const handleFile = () => {
reset();
@@ -323,27 +276,58 @@
dialog.title = "涓婁紶瑙嗛";
}
/** 鎻愪氦鎸夐挳 */
-const submitForm = () => {
+
+const submitForm = async () => {
+ await childFile.value.handleCilck()
dialog.visible = false;
- getList();
}
-const handleCode = ()=>{
- visibleCode.value = true
+const handleCode = async (row: OssVO) => {
+ console.log(row, row.ossId);
+
+ await examineIds(row.ossId).then(res => {
+ console.log(res);
+ if (res.code == 200) {
+ testtxt.value = res.msg;
+ titleDownload.value = '鏌ョ湅鎻愬彇鐮�'
+ pasTxt.value = ''
+ // inputSty.value ={
+ // border: '1px solid blue'
+ // }
+ visibleCode.value = true
+
+ } else {
+ const message = res.msg;
+ proxy?.$modal.msgSuccess(message);
+
+ }
+ })
}
/** 涓嬭浇鎸夐挳鎿嶄綔 */
const handleDownload = (row: OssVO) => {
- proxy?.$download.oss(row.ossId)
+ titleDownload.value = '杈撳叆鎻愬彇鐮�'
+ pasTxt.value = ''
+ inputSty.value ={
+ border: '1px solid blue',
+ borderRadius: '5px'
+ }
+ visibleCode.value = true
+ downIds.value = ref(row.ossId)
+ console.log(toRaw(downIds.value.value));
+}
+const handleDownloadFile = ()=>{
+ console.log(downIds.value);
+ if (pasTxt.value){
+ proxy?.$download.ossDown(downIds.value.value,pasTxt.value)
+ }else {
+ console.log(inputRef.value);
+ inputSty.value ={
+ border: '1px solid red'
+ }
+ // inputRef.value.style.border = '1px solid red'
+ }
+
}
/** 鐢ㄦ埛鐘舵�佷慨鏀� */
-const handlePreviewListResource = async (preview: boolean) => {
- let text = preview ? "鍚敤" : "鍋滅敤";
- try {
- await proxy?.$modal.confirm('纭瑕�"' + text + '""棰勮鍒楄〃鍥剧墖"閰嶇疆鍚�?');
- await proxy?.updateConfigByKey("sys.oss.previewListResource", preview);
- await getList()
- proxy?.$modal.msgSuccess(text + "鎴愬姛");
- } catch { return }
-}
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
const handleDelete = async (row?: OssVO) => {
const ossIds = row?.ossId || ids.value;
@@ -353,8 +337,70 @@
await getList();
proxy?.$modal.msgSuccess("鍒犻櫎鎴愬姛");
}
+const refreshPage = async () => {
+ const accessRoutes = await usePermissionStore().generateRoutes();
+ // 鏍规嵁roles鏉冮檺鐢熸垚鍙闂殑璺敱琛�
+ accessRoutes.forEach((route) => {
+ if (!isHttp(route.path)) {
+ router.addRoute(route); // 鍔ㄦ�佹坊鍔犲彲璁块棶璺敱琛�
+ }
+ });
+ // location.reload();
+};
+const isContains = (arr: string | any[], value: any) => {
+ return arr.includes(value);
+};
+const setAddUser = async (val: any | number | (string | number)[]) => {
+ console.log(val);
+ const res = await createUser(val)
+ console.log(res);
+ if (res.code==200){
+ const data = res.data;
+ setToken(data.access_token);
+ await getList()
+ // await refreshPage()
-onMounted(() => {
- getList();
+ const [err] = await tos(useUserStore().getInfo());
+ console.log('useUserStore', useUserStore,err);
+ console.log('permissions', useUserStore().permissions,'system:oss:upload');
+ // token.value = data.access_token;
+ }
+}
+// watch(() => value.value, (newValue) => {
+// if (newValue) {
+// showValue.value = true;
+// } else {
+// showValue.value = false;
+// }
+// });
+onBeforeMount( async () => {
+ console.log('绗竴',useUserStore().permissions);
+ try {
+ // 浣跨敤fetch API鑾峰彇褰撳墠IP鍦板潃
+ await fetch('https://api.ipify.org/?format=json')
+ .then(response => response.json())
+ .then(async data => {
+ currentIp.value = data.ip;
+ let obj = {
+ username: data.ip
+ }
+ await setAddUser(obj)
+ })
+ .catch(error => {
+ console.error('鑾峰彇IP鍦板潃澶辫触锛�', error);
+ });
+ } catch (error) {
+ console.log(error);
+ }
+
})
+onMounted(async () => {
+ console.log('绗簩',useUserStore().permissions);
+ // 绛夊緟 useUserStore() 鏂规硶鐨� getInfo() 鏂规硶杩斿洖缁撴灉骞惰祴鍊肩粰 err 鍙橀噺
+ // const [err] = await tos(useUserStore().getInfo());
+
+ // 璋冪敤 getList() 鏂规硶
+ // await getList();
+})
+
</script>
diff --git a/vite.config.ts b/vite.config.ts
index 9164e3e..0d1183e 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -26,7 +26,8 @@
open: true,
proxy: {
[env.VITE_APP_BASE_API]: {
- target: 'http://192.168.3.228:8080',
+ target: 'http://162.14.79.111:8080',
+ // target: 'http://192.168.3.228:8080',
changeOrigin: true,
rewrite: (path) => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')
}
--
Gitblit v1.8.0