update:消息提示

This commit is contained in:
lan
2023-08-14 22:25:00 +08:00
parent 9a053c1839
commit 3df49615e3
22 changed files with 65 additions and 40 deletions
+1
View File
@@ -13,6 +13,7 @@ declare module 'vue' {
ElCard: typeof import('element-plus/es')['ElCard'] ElCard: typeof import('element-plus/es')['ElCard']
ElCol: typeof import('element-plus/es')['ElCol'] ElCol: typeof import('element-plus/es')['ElCol']
ElContainer: typeof import('element-plus/es')['ElContainer'] ElContainer: typeof import('element-plus/es')['ElContainer']
ElDialog: typeof import('element-plus/es')['ElDialog']
ElDrawer: typeof import('element-plus/es')['ElDrawer'] ElDrawer: typeof import('element-plus/es')['ElDrawer']
ElIcon: typeof import('element-plus/es')['ElIcon'] ElIcon: typeof import('element-plus/es')['ElIcon']
ElInput: typeof import('element-plus/es')['ElInput'] ElInput: typeof import('element-plus/es')['ElInput']
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -5,8 +5,8 @@
<link rel="icon" href="/logo_small.png"> <link rel="icon" href="/logo_small.png">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FileCodeBox</title> <title>FileCodeBox</title>
<script type="module" crossorigin src="/assets/index-a78979ae.js"></script> <script type="module" crossorigin src="/assets/index-3a74cfec.js"></script>
<link rel="stylesheet" href="/assets/index-f5479961.css"> <link rel="stylesheet" href="/assets/index-7bc26ac6.css">
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
+24 -2
View File
@@ -7,6 +7,7 @@ const fileBoxStore = useFileBoxStore();
import QrcodeVue from "qrcode.vue"; import QrcodeVue from "qrcode.vue";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import { ref } from "vue"; import { ref } from "vue";
import { ElMessage } from "element-plus";
const openUrl = (url: string) => { const openUrl = (url: string) => {
if (url.startsWith('/')) { if (url.startsWith('/')) {
url = window.location.origin + url; url = window.location.origin + url;
@@ -16,6 +17,7 @@ const openUrl = (url: string) => {
const route = useRoute(); const route = useRoute();
const copyText = (text: any, style = 0) => { const copyText = (text: any, style = 0) => {
ElMessage.success('复制成功')
if (style === 1) { if (style === 1) {
text = window.location.origin + '/#/?code=' + text; text = window.location.origin + '/#/?code=' + text;
} }
@@ -28,6 +30,13 @@ const copyText = (text: any, style = 0) => {
} }
document.body.removeChild(temp); document.body.removeChild(temp);
}; };
const nowText = ref('');
const showTextDetail = (text: any) => {
showTextDetailVisible.value = true;
nowText.value = text;
};
const showTextDetailVisible = ref(false);
</script> </script>
<template> <template>
@@ -38,6 +47,18 @@ const copyText = (text: any, style = 0) => {
</template> </template>
<template #default> <template #default>
<div v-if="route.name=='home'" style="display: flex;flex-wrap: wrap;justify-content: center"> <div v-if="route.name=='home'" style="display: flex;flex-wrap: wrap;justify-content: center">
<el-dialog
append-to-body
align-center
title="文本详情"
v-model="showTextDetailVisible"
>
<div v-html="nowText"></div>
<template #footer>
<el-button type="success" @click="copyText(nowText);showTextDetailVisible = false"> </el-button>
<el-button type="primary" @click="showTextDetailVisible = false"> </el-button>
</template>
</el-dialog>
<el-card v-for="(value,index) in fileStore.receiveData" :key="index" style="margin: 0.5rem"> <el-card v-for="(value,index) in fileStore.receiveData" :key="index" style="margin: 0.5rem">
<template #header> <template #header>
<div style="display: flex;justify-content: space-between"> <div style="display: flex;justify-content: space-between">
@@ -47,13 +68,14 @@ const copyText = (text: any, style = 0) => {
</template> </template>
<div style="width: 200px;"> <div style="width: 200px;">
<div style="display: flex;justify-content: space-between"> <div style="display: flex;justify-content: space-between">
<qrcode-vue :value="value.text" :size="100"></qrcode-vue> <qrcode-vue v-if="value.name!=='文本分享'" :value="value.text" :size="100"></qrcode-vue>
<div style="width: 100px;height: 100px;flex-wrap: wrap;overflow-y:scroll ">{{value.text}}</div>
<div style="display: flex;flex-direction: column;justify-content: space-around"> <div style="display: flex;flex-direction: column;justify-content: space-around">
<el-tag size="large" style="cursor: pointer" @click="copyText(value.code)">{{ value.code }}</el-tag> <el-tag size="large" style="cursor: pointer" @click="copyText(value.code)">{{ value.code }}</el-tag>
<el-tag v-if="value.name!=='文本分享'" size="large" type="success" style="cursor: pointer" @click="openUrl(value.text);"> <el-tag v-if="value.name!=='文本分享'" size="large" type="success" style="cursor: pointer" @click="openUrl(value.text);">
点击下载 点击下载
</el-tag> </el-tag>
<el-tag v-else size="large" type="success" style="cursor: pointer" @click="copyText(value.text);">点击复制</el-tag> <el-tag v-else size="large" type="success" style="cursor: pointer" @click="showTextDetail(value.text);">查看详情</el-tag>
</div> </div>
</div> </div>
</div> </div>
@@ -86,7 +86,6 @@ function pasteLister(event: any) {
} else { } else {
const file: any = items[i].getAsFile(); const file: any = items[i].getAsFile();
if (file) { if (file) {
console.log(file);
const uid = Date.now(); const uid = Date.now();
file.uid = uid; file.uid = uid;
fileStore.addShareData({ fileStore.addShareData({
+2 -1
View File
@@ -4,6 +4,7 @@ import { request } from "@/utils/request";
const shareText = ref('') const shareText = ref('')
import { useFileDataStore } from "@/stores/fileData"; import { useFileDataStore } from "@/stores/fileData";
import { useFileBoxStore } from "@/stores/fileBox"; import { useFileBoxStore } from "@/stores/fileBox";
import { ElMessage } from "element-plus";
const fileBoxStore = useFileBoxStore(); const fileBoxStore = useFileBoxStore();
const fileStore = useFileDataStore(); const fileStore = useFileDataStore();
const props = defineProps({ const props = defineProps({
@@ -19,7 +20,7 @@ const props = defineProps({
}) })
const handleSubmitShareText = ()=>{ const handleSubmitShareText = ()=>{
if (shareText.value === '') { if (shareText.value === '') {
alert('请输入您要分享的文本'); ElMessage.warning('请输入您要分享的文本');
} else { } else {
const formData = new FormData(); const formData = new FormData();
formData.append('text', shareText.value); formData.append('text', shareText.value);
+1
View File
@@ -1,4 +1,5 @@
import './assets/main.css' import './assets/main.css'
import 'element-plus/dist/index.css'
import 'element-plus/theme-chalk/dark/css-vars.css' import 'element-plus/theme-chalk/dark/css-vars.css'
import { createApp } from 'vue' import { createApp } from 'vue'
import { createPinia } from 'pinia' import { createPinia } from 'pinia'
+4 -3
View File
@@ -1,8 +1,9 @@
// @ts-ignore // @ts-ignore
import axios from "axios"; import axios from "axios";
import { ElMessage } from "element-plus";
const instance = axios.create({ const instance = axios.create({
baseURL: "/", baseURL: import.meta.env.DEV ? "http://localhost:12345" : "/",
timeout: 6000000, timeout: 6000000,
headers:{ headers:{
'Authorization':localStorage.getItem('auth') 'Authorization':localStorage.getItem('auth')
@@ -14,11 +15,11 @@ instance.interceptors.response.use(
if (response.data.code === 200) { if (response.data.code === 200) {
return response.data; return response.data;
} else { } else {
alert(response.data.detail); ElMessage.error(response.data.detail);
return Promise.reject(response.data); return Promise.reject(response.data);
} }
}, (error:any) => { }, (error:any) => {
alert(error.response.data.detail); ElMessage.error(error.response.data.detail);
return Promise.reject(error); return Promise.reject(error);
}); });
Binary file not shown.
Binary file not shown.