From 7f7e010a048f2de8dcb6dd2e6e3e3da1ebfd4f43 Mon Sep 17 00:00:00 2001
From: odc.xiaohui <xiaohui@Q1>
Date: 星期三, 20 十二月 2023 16:58:46 +0800
Subject: [PATCH] 互联网
---
src/views/index.vue | 375 +++++++++++++++++++++++++++++------------------------
1 files changed, 205 insertions(+), 170 deletions(-)
diff --git a/src/views/index.vue b/src/views/index.vue
index 33c0ed7..b28bd2d 100644
--- a/src/views/index.vue
+++ b/src/views/index.vue
@@ -1,132 +1,74 @@
<template>
<div class="p-2">
- <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
- <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>
- </el-form-item>
- </el-form>
- </el-card>
- </div>
- </transition>
+<!-- <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">-->
+<!-- <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="originalName">-->
+<!-- <el-input v-model="queryParams.originalName" 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>-->
+<!-- </el-form-item>-->
+<!-- </el-form>-->
+<!-- </el-card>-->
+<!-- </div>-->
+<!-- </transition>-->
<el-card shadow="hover">
<template #header>
- <el-row :gutter="10" class="mb8">
- <el-col :span="1.5">
+ <el-row style="text-align: center">
+ <el-col>
<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-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>-->
+<!-- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>-->
</el-row>
</template>
+<!-- <el-table-->
+<!-- v-loading="loading"-->
+<!-- :data="ossList"-->
+<!-- @selection-change="handleSelectionChange"-->
+<!-- :header-cell-class-name="handleHeaderClass"-->
+<!-- @header-click="handleHeaderCLick"-->
+<!-- v-if="showTable"-->
+<!-- >-->
+<!-- <el-table-column type="index" />-->
+<!--<!– <el-table-column type="selection" width="55" align="center" />–>-->
+<!-- <el-table-column label="鍘熷悕" align="center" prop="originalName" />-->
+<!-- <el-table-column label="涓婁紶鏃堕棿" align="center" prop="createTime" />-->
+<!-- <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-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-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-if="isContains(useUserStore().permissions, 'system:oss:remove')"></el-button>-->
+<!-- </el-tooltip>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+<!-- </el-table>-->
- <el-table
- v-loading="loading"
- :data="ossList"
- @selection-change="handleSelectionChange"
- :header-cell-class-name="handleHeaderClass"
- @header-click="handleHeaderCLick"
- 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-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-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-if="isContains(useUserStore().permissions, 'system:oss:remove')"></el-button>
- </el-tooltip>
- </template>
- </el-table-column>
- </el-table>
-
- <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+<!-- <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />-->
</el-card>
<!-- 娣诲姞鎴栦慨鏀筄SS瀵硅薄瀛樺偍瀵硅瘽妗� -->
<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();lookPawsd($event)" @openPopup="lookPawsd($event)" 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" />"
+ <video-upload v-model="form.file" v-if="type === 2" />
</el-form-item>
</el-form>
<template #footer>
@@ -137,32 +79,90 @@
</template>
</el-dialog>
<el-dialog :title="titleDownload" v-model="visibleCode" width="500px" append-to-body>
+ <p style="color: red">鎻愬彇鐮佸皢浼氬湪24灏忔椂鍚庡け鏁堣灏藉揩涓嬭浇!</p>
<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>
+ <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-input style="margin: 10px 0" ref="inputRef" :style="inputSty" v-show="titleDownload=='璇疯緭鍏ユ彁鍙栫爜'" v-model="pasTxt" 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>-->
+<!-- <el-button link type="primary" v-show="titleDownload=='璇疯緭鍏ユ彁鍙栫爜'" icon="Delete" @click="delFile()" >鍒犻櫎</el-button>-->
<template #footer>
<div class="dialog-footer">
+ <el-button link type="primary" v-show="titleDownload=='杈撳叆鎻愬彇鐮�'" icon="Download" @click="handleDownloadFile()" v-if="isContains(useUserStore().permissions, 'system:oss:download')">涓嬭浇</el-button>
+ <el-button link type="primary" v-show="titleDownload=='璇疯緭鍏ユ彁鍙栫爜'" icon="Delete" @click="delFile()" >鍒犻櫎</el-button>
<el-button type="primary" @click="visibleCode = false">纭� 瀹�</el-button>
- <el-button @click="visibleCode = false">鍙� 娑�</el-button>
</div>
</template>
+ </el-dialog>
+
+ <!-- 杩涘害鏉� -->
+ <el-dialog
+ v-model="dialogVisible"
+ title=""
+ width="30%"
+ :close-on-click-modal = "false"
+ :close-on-press-escape = "false"
+ :show-close = "false"
+
+ >
+
+ <el-progress type="dashboard" :percentage="percentage2" :color="colors" />
+
</el-dialog>
</div>
</template>
<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";
+import router from '@/router';
+import { onMounted, ref } from 'vue';
+import { Minus, Plus } from '@element-plus/icons-vue';
+import { ElMessageBox } from 'element-plus';
-const router = useRouter();
+const dialogVisible = ref(false)
+
+const state = reactive({
+ mytime:0,//瀹氫箟瀹氭椂鍣�
+ })
+const percentage = ref(10)
+const percentage2 = ref(0)
+
+const colors = [
+ { color: '#f56c6c', percentage: 20 },
+ { color: '#e6a23c', percentage: 40 },
+ { color: '#5cb87a', percentage: 60 },
+ { color: '#1989fa', percentage: 80 },
+ { color: '#6f7ad3', percentage: 100 },
+]
+
+const increase = () => {
+ percentage.value += 10
+ if (percentage.value > 100) {
+ percentage.value = 100
+ }
+}
+const decrease = () => {
+ percentage.value -= 10
+ if (percentage.value < 0) {
+ percentage.value = 0
+ }
+}
+onMounted(() => {
+
+
+})
+watch(percentage2, (new1,new2) => {
+ console.log(new1,new2)
+ if(new1 == 95){
+ clearInterval(state.mytime);
+ state.mytime = 0;
+ }
+})
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const ossList = ref<OssVO[]>([]);
@@ -189,6 +189,8 @@
const inputRef = ref<any>()
const inputSty =ref<any>()
const currentIp = ref('')
+const childFile = ref<any>()
+const figType = ref<any>()
// 榛樿鎺掑簭
const defaultSort = ref({ prop: 'createTime', order: 'ascending' });
@@ -317,9 +319,6 @@
getList();
}
/** 浠诲姟鏃ュ織鍒楄〃鏌ヨ */
-const handleOssConfig = () => {
- router.push('/system/oss-config/index')
-}
/** 鏂囦欢鎸夐挳鎿嶄綔 */
const handleFile = () => {
reset();
@@ -341,9 +340,32 @@
dialog.title = "涓婁紶瑙嗛";
}
/** 鎻愪氦鎸夐挳 */
-const submitForm = () => {
+
+const submitForm = async () => {
+ await childFile.value.handleCilck()
dialog.visible = false;
- getList();
+}
+const lookPawsd = async (row:any) => {
+ console.log(row);
+ // row.msg = ':/"123456'
+ clearInterval(state.mytime);
+ state.mytime = 0;
+ if(row == '123123'){
+ dialogVisible.value = true;
+ state.mytime = setInterval(() => {
+ percentage2.value = (percentage2.value % 100) + 5
+ }, 500)
+ }
+ else{
+ dialogVisible.value = false;
+ clearInterval(state.mytime);
+ state.mytime = 0;
+ testtxt.value = row.msg;
+ // testtxt.value = row.msg.slice(2);
+ titleDownload.value = '鏌ョ湅鎻愬彇鐮�'
+ pasTxt.value = ''
+ visibleCode.value = true
+ }
}
const handleCode = async (row: OssVO) => {
console.log(row, row.ossId);
@@ -378,6 +400,13 @@
downIds.value = ref(row.ossId)
console.log(toRaw(downIds.value.value));
}
+const delFile=async () => {
+ let oss = figType.value+'/'+ pasTxt.value;
+ await delOss(oss).finally(() => loading.value = false);
+ await getList();
+ proxy?.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ visibleCode.value = false
+}
const handleDownloadFile = ()=>{
console.log(downIds.value);
if (pasTxt.value){
@@ -389,31 +418,31 @@
}
// inputRef.value.style.border = '1px solid red'
}
-
+ visibleCode.value=false
}
/** 鐢ㄦ埛鐘舵�佷慨鏀� */
-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;
- await proxy?.$modal.confirm('鏄惁纭鍒犻櫎OSS瀵硅薄瀛樺偍缂栧彿涓�"' + ossIds + '"鐨勬暟鎹」?');
- loading.value = true;
- await delOss(ossIds).finally(() => loading.value = false);
- await getList();
- proxy?.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+ let ossIds = row?.ossId || ids.value;
+ titleDownload.value = '璇疯緭鍏ユ彁鍙栫爜'
+ pasTxt.value = ''
+ inputSty.value ={
+ border: '1px solid blue',
+ borderRadius: '5px'
+ }
+ visibleCode.value = true
+ figType.value = ossIds
+ console.log(figType);
+ // await proxy?.$modal.confirm('鏄惁纭鍒犻櫎OSS瀵硅薄瀛樺偍缂栧彿涓�"' + ossIds + '"鐨勬暟鎹」?');
+ // loading.value = true;
+ // ossIds = ossIds+'/'+pasTxt.value;
+ // await delOss(ossIds).finally(() => loading.value = false);
+ // await getList();
+ // 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)) {
@@ -425,6 +454,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)
@@ -432,15 +462,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;
}
}
@@ -453,32 +481,39 @@
// });
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()){
+ console.log('鏈塼oken');
+ await getList();
+ }else {
+ console.log('鏃爐oken');
+ router.push('/login')
+ }
// 璋冪敤 getList() 鏂规硶
- // await getList();
+
})
</script>
--
Gitblit v1.8.0