chore: 🔨 合并冲突解决

This commit is contained in:
ray
2024-11-16 23:00:30 +08:00
parent 2dd4421fdf
commit 711e3ba5f4
48 changed files with 207 additions and 791 deletions

View File

@@ -42,11 +42,7 @@
<el-table-column label="存储引擎" align="center" prop="engine" />
<el-table-column
label="排序规则"
align="center"
prop="tableCollation"
/>
<el-table-column label="排序规则" align="center" prop="tableCollation" />
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column fixed="right" label="操作" width="200">
@@ -115,10 +111,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="业务名" prop="businessName">
<el-input
v-model="genConfigFormData.businessName"
placeholder="用户"
/>
<el-input v-model="genConfigFormData.businessName" placeholder="用户" />
</el-form-item>
</el-col>
</el-row>
@@ -126,18 +119,12 @@
<el-row>
<el-col :span="12">
<el-form-item label="包名" prop="packageName">
<el-input
v-model="genConfigFormData.packageName"
placeholder="com.youlai.boot"
/>
<el-input v-model="genConfigFormData.packageName" placeholder="com.youlai.boot" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="模块名" prop="moduleName">
<el-input
v-model="genConfigFormData.moduleName"
placeholder="system"
/>
<el-input v-model="genConfigFormData.moduleName" placeholder="system" />
</el-form-item>
</el-col>
</el-row>
@@ -145,18 +132,12 @@
<el-row>
<el-col :span="12">
<el-form-item label="实体名" prop="entityName">
<el-input
v-model="genConfigFormData.entityName"
placeholder="User"
/>
<el-input v-model="genConfigFormData.entityName" placeholder="User" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="作者">
<el-input
v-model="genConfigFormData.author"
placeholder="youlai"
/>
<el-input v-model="genConfigFormData.author" placeholder="youlai" />
</el-form-item>
</el-col>
</el-row>
@@ -256,11 +237,7 @@
</div>
</template>
<template #default="scope">
<el-checkbox
v-model="scope.row.isShowInQuery"
:true-value="1"
:false-value="0"
/>
<el-checkbox v-model="scope.row.isShowInQuery" :true-value="1" :false-value="0" />
</template>
</el-table-column>
@@ -277,11 +254,7 @@
</template>
<template #default="scope">
<el-checkbox
v-model="scope.row.isShowInList"
:true-value="1"
:false-value="0"
/>
<el-checkbox v-model="scope.row.isShowInList" :true-value="1" :false-value="0" />
</template>
</el-table-column>
@@ -298,11 +271,7 @@
</template>
<template #default="scope">
<el-checkbox
v-model="scope.row.isShowInForm"
:true-value="1"
:false-value="0"
/>
<el-checkbox v-model="scope.row.isShowInForm" :true-value="1" :false-value="0" />
</template>
</el-table-column>
@@ -339,10 +308,7 @@
<el-table-column label="表单类型" min-width="120">
<template #default="scope">
<el-select
v-if="
scope.row.isShowInQuery === 1 ||
scope.row.isShowInForm === 1
"
v-if="scope.row.isShowInQuery === 1 || scope.row.isShowInForm === 1"
v-model="scope.row.formType"
placeholder="请选择"
>
@@ -562,9 +528,7 @@ const initSort = () => {
if (sortFlag.value) {
return;
}
const table = document.querySelector(
".elTableCustom .el-table__body-wrapper tbody"
);
const table = document.querySelector(".elTableCustom .el-table__body-wrapper tbody");
sortFlag.value = Sortable.create(<HTMLElement>table, {
group: "shared",
animation: 150,
@@ -622,13 +586,7 @@ function handleNextClick() {
//这里需要校验基础配置
const { tableName, packageName, businessName, moduleName, entityName } =
genConfigFormData.value;
if (
!tableName ||
!packageName ||
!businessName ||
!moduleName ||
!entityName
) {
if (!tableName || !packageName || !businessName || !moduleName || !entityName) {
ElMessage.error("表名、业务名、包名、模块名、实体名不能为空");
return;
}
@@ -755,9 +713,7 @@ const toggleCheckAll = (key: FieldConfigKey, value: boolean) => {
const checkAllSelected = (key: keyof FieldConfig, isCheckAllRef: any) => {
const fieldConfigs = genConfigFormData.value?.fieldConfigs || [];
isCheckAllRef.value = fieldConfigs.every(
(row: FieldConfig) => row[key] === 1
);
isCheckAllRef.value = fieldConfigs.every((row: FieldConfig) => row[key] === 1);
};
/** 获取生成预览 */
@@ -787,9 +743,7 @@ function handlePreview(tableName: string) {
* @param data - 数据数组
* @returns 树形结构根节点
*/
function buildTree(
data: { path: string; fileName: string; content: string }[]
): TreeNode {
function buildTree(data: { path: string; fileName: string; content: string }[]): TreeNode {
// 动态获取根节点
const root: TreeNode = { label: "前后端代码", children: [] };
@@ -804,11 +758,10 @@ function buildTree(
"java",
genConfigFormData.value.backendAppName,
genConfigFormData.value.frontendAppName,
(
genConfigFormData.value.packageName +
"." +
genConfigFormData.value.moduleName
).replace(/\./g, separator),
(genConfigFormData.value.packageName + "." + genConfigFormData.value.moduleName).replace(
/\./g,
separator
),
];
// 检查路径中的特殊部分并合并它们

View File

@@ -16,11 +16,7 @@
</el-tooltip>
</div>
<el-radio-group
v-model="dataRange"
size="small"
@change="handleDateRangeChange"
>
<el-radio-group v-model="dataRange" size="small" @change="handleDateRangeChange">
<el-radio-button label="近7天" :value="1" />
<el-radio-button label="近30天" :value="2" />
</el-radio-group>
@@ -209,9 +205,7 @@ const handleResize = () => {
};
/** 初始化图表 */
onMounted(() => {
chart.value = markRaw(
echarts.init(document.getElementById(props.id) as HTMLDivElement)
);
chart.value = markRaw(echarts.init(document.getElementById(props.id) as HTMLDivElement));
loadData();
window.addEventListener("resize", handleResize);

View File

@@ -12,20 +12,14 @@
/>
<div>
<p>{{ greetings }}</p>
<p class="text-sm text-gray">
今日天气晴朗气温在15至25之间东南风
</p>
<p class="text-sm text-gray">今日天气晴朗气温在15至25之间东南风</p>
</div>
</div>
</el-col>
<el-col :span="6" :xs="24">
<div class="flex h-full items-center justify-around">
<el-statistic
v-for="item in statisticData"
:key="item.key"
:value="item.value"
>
<el-statistic v-for="item in statisticData" :key="item.key" :value="item.value">
<template #title>
<div class="flex items-center">
<svg-icon :icon-class="item.iconClass" size="20px" />
@@ -45,9 +39,7 @@
<el-card shadow="never">
<template #header>
<div class="flex-x-between">
<span class="text-[var(--el-text-color-secondary)]">
在线用户
</span>
<span class="text-[var(--el-text-color-secondary)]">在线用户</span>
<el-tag type="success" size="small">-</el-tag>
</div>
</template>
@@ -56,41 +48,27 @@
<span class="text-lg">{{ onlineUserCount }}</span>
<svg-icon icon-class="user" size="2em" />
</div>
<div
class="flex-x-between mt-2 text-sm text-[var(--el-text-color-secondary)]"
>
<div class="flex-x-between mt-2 text-sm text-[var(--el-text-color-secondary)]">
<span>总用户数</span>
<span>5</span>
</div>
</el-card>
</el-col>
<el-col
v-for="(item, index) in visitStatsList"
:key="index"
:xs="24"
:sm="12"
:lg="6"
>
<el-col v-for="(item, index) in visitStatsList" :key="index" :xs="24" :sm="12" :lg="6">
<el-skeleton :loading="visitStatsLoading" :rows="5" animated>
<template #template>
<el-card>
<template #header>
<div>
<el-skeleton-item variant="h3" style="width: 40%" />
<el-skeleton-item
variant="rect"
style="float: right; width: 1em; height: 1em"
/>
<el-skeleton-item variant="rect" style="float: right; width: 1em; height: 1em" />
</div>
</template>
<div class="flex-x-between">
<el-skeleton-item variant="text" style="width: 30%" />
<el-skeleton-item
variant="circle"
style="width: 2em; height: 2em"
/>
<el-skeleton-item variant="circle" style="width: 2em; height: 2em" />
</div>
<div class="mt-5 flex-x-between">
<el-skeleton-item variant="text" style="width: 50%" />
@@ -114,13 +92,7 @@
<div class="flex-x-between mt-2">
<div class="flex-y-center">
<span class="text-lg">{{ item.todayCount }}</span>
<span
:class="[
'text-xs',
'ml-2',
getGrowthRateClass(item.growthRate),
]"
>
<span :class="['text-xs', 'ml-2', getGrowthRateClass(item.growthRate)]">
<el-icon>
<Top v-if="item.growthRate > 0" />
<Bottom v-else-if="item.growthRate < 0" />
@@ -131,9 +103,7 @@
<svg-icon :icon-class="item.icon" size="2em" />
</div>
<div
class="flex-x-between mt-2 text-sm text-[var(--el-text-color-secondary)]"
>
<div class="flex-x-between mt-2 text-sm text-[var(--el-text-color-secondary)]">
<span>{{ item.title }}</span>
<span>{{ item.totalCount }}</span>
</div>
@@ -161,11 +131,7 @@
</template>
<el-scrollbar height="400px">
<div
v-for="(item, index) in notices"
:key="index"
class="flex-y-center py-3"
>
<div v-for="(item, index) in notices" :key="index" class="flex-y-center py-3">
<DictLabel v-model="item.type" code="notice_type" size="small" />
<el-text
truncated
@@ -263,11 +229,7 @@ const loadVisitStatsData = async () => {
const list: VisitStatsVO[] = await StatsAPI.getVisitStats();
if (list) {
const tagTypes: ("primary" | "success" | "warning")[] = [
"primary",
"success",
"warning",
];
const tagTypes: ("primary" | "success" | "warning")[] = ["primary", "success", "warning"];
const transformedList: VisitStats[] = list.map((item, index) => ({
title: item.title,
icon: getVisitStatsIcon(item.type),

View File

@@ -1,12 +1,7 @@
<!-- 接口文档 -->
<template>
<div class="app-container">
<iframe
src="http://vapi.youlai.tech/doc.html"
width="100%"
height="100%"
frameborder="0"
/>
<iframe src="http://vapi.youlai.tech/doc.html" width="100%" height="100%" frameborder="0" />
</div>
</template>

View File

@@ -15,8 +15,7 @@ const contentConfig: IContentConfig = {
{
id: 1,
username: "tom",
avatar:
"https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif",
avatar: "https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif",
percent: 99,
price: 10,
url: "https://www.baidu.com",
@@ -30,8 +29,7 @@ const contentConfig: IContentConfig = {
{
id: 2,
username: "jerry",
avatar:
"https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif",
avatar: "https://foruda.gitee.com/images/1723603502796844527/03cdca2a_716974.gif",
percent: 88,
price: 999,
url: "https://www.google.com",

View File

@@ -8,9 +8,7 @@
>
示例源码 请点击>>>>
</el-link>
<el-button type="primary" plain round size="small" @click="isA = !isA">
切换示例
</el-button>
<el-button type="primary" plain round size="small" @click="isA = !isA">切换示例</el-button>
</div>
<!-- 列表 -->
@@ -146,14 +144,10 @@ function handleOperatClick(data: IOperatData) {
console.log(data);
// 重置密码
if (data.name === "reset_pwd") {
ElMessageBox.prompt(
"请输入用户「" + data.row.username + "」的新密码",
"重置密码",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
}
).then(({ value }) => {
ElMessageBox.prompt("请输入用户「" + data.row.username + "」的新密码", "重置密码", {
confirmButtonText: "确定",
cancelButtonText: "取消",
}).then(({ value }) => {
if (!value || value.length < 6) {
ElMessage.warning("密码至少需要6位字符请重新输入");
return false;

View File

@@ -5,11 +5,7 @@
<div class="grid">
<div v-for="item of svg_icons" :key="item">
<copy-button :text="generateIconCode(item)">
<el-tooltip
effect="dark"
:content="generateIconCode(item)"
placement="top"
>
<el-tooltip effect="dark" :content="generateIconCode(item)" placement="top">
<div class="icon-item">
<svg-icon :icon-class="item" />
<span>{{ item }}</span>
@@ -23,11 +19,7 @@
<div class="grid">
<div v-for="(icon, name) of icons" :key="name">
<copy-button :text="generateElementIconCode(name)">
<el-tooltip
effect="dark"
:content="generateElementIconCode(name)"
placement="top"
>
<el-tooltip effect="dark" :content="generateElementIconCode(name)" placement="top">
<div class="icon-item">
<el-icon :size="20">
<component :is="icon" />

View File

@@ -36,11 +36,7 @@ const text = computed(() => {
>
示例源码 请点击>>>>
</el-link>
<table-select
:text="text"
:select-config="selectConfig"
@confirm-click="handleConfirm"
>
<table-select :text="text" :select-config="selectConfig" @confirm-click="handleConfirm">
<template #status="scope">
<el-tag :type="scope.row[scope.prop] == 1 ? 'success' : 'info'">
{{ scope.row[scope.prop] == 1 ? "启用" : "禁用" }}

View File

@@ -15,9 +15,6 @@ const value = ref("初始内容");
>
示例源码 请点击>>>>
</el-link>
<editor
v-model="value"
style="z-index: 99999; height: calc(100vh - 180px)"
/>
<editor v-model="value" style="z-index: 99999; height: calc(100vh - 180px)" />
</div>
</template>

View File

@@ -22,19 +22,13 @@
>
连接
</el-button>
<el-button
type="danger"
:disabled="!isConnected"
@click="disconnectWebSocket"
>
<el-button type="danger" :disabled="!isConnected" @click="disconnectWebSocket">
断开
</el-button>
</el-col>
<el-col :span="8" class="text-right">
连接状态
<el-tag v-if="isConnected" class="ml-2" type="success">
已连接
</el-tag>
<el-tag v-if="isConnected" class="ml-2" type="success">已连接</el-tag>
<el-tag v-else class="ml-2" type="info">已断开</el-tag>
</el-col>
</el-row>
@@ -60,9 +54,7 @@
<el-input v-model="receiver" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="sendToUser">
发送点对点消息
</el-button>
<el-button type="primary" @click="sendToUser">发送点对点消息</el-button>
</el-form-item>
</el-form>
</el-card>
@@ -78,17 +70,14 @@
'tip-message': message.type === 'tip',
message: message.type !== 'tip',
'message--sent': message.sender === userStore.userInfo.username,
'message--received':
message.sender !== userStore.userInfo.username,
'message--received': message.sender !== userStore.userInfo.username,
}"
>
<div v-if="message.type != 'tip'" class="message-content">
<div
:class="{
'message-sender':
message.sender === userStore.userInfo.username,
'message-receiver':
message.sender !== userStore.userInfo.username,
'message-sender': message.sender === userStore.userInfo.username,
'message-receiver': message.sender !== userStore.userInfo.username,
}"
>
{{ message.sender }}
@@ -124,16 +113,10 @@ interface MessageType {
const messages = ref<MessageType[]>([]);
const topicMessage = ref(
"亲爱的大冤种们由于一只史诗级的BUG系统版本已经被迫回退到了0.0.1。"
); // 广播消息
const topicMessage = ref("亲爱的大冤种们由于一只史诗级的BUG系统版本已经被迫回退到了0.0.1。"); // 广播消息
const queneMessage = ref(
"hi , " +
receiver.value +
" , 我是" +
userStore.userInfo.username +
" , 想和你交个朋友 ! "
"hi , " + receiver.value + " , 我是" + userStore.userInfo.username + " , 想和你交个朋友 ! "
);
let stompClient: Client;

View File

@@ -8,8 +8,7 @@ defineOptions({
const state = reactive({
errGif: new URL("../../assets/images/401.gif", import.meta.url).href,
ewizardClap:
"https://wpimg.wallstcn.com/007ef517-bafd-4066-aae4-6883632d9646",
ewizardClap: "https://wpimg.wallstcn.com/007ef517-bafd-4066-aae4-6883632d9646",
dialogVisible: false,
});
@@ -24,9 +23,7 @@ function back() {
<template>
<div class="page-container">
<el-button icon="el-icon-arrow-left" class="pan-back-btn" @click="back">
返回
</el-button>
<el-button icon="el-icon-arrow-left" class="pan-back-btn" @click="back">返回</el-button>
<el-row>
<el-col :span="12">
<h1 class="text-jumbo text-ginormous">Oops!</h1>
@@ -49,12 +46,7 @@ function back() {
</ul>
</el-col>
<el-col :span="12">
<img
:src="errGif"
width="313"
height="428"
alt="Girl has dropped her ice cream."
/>
<img :src="errGif" width="313" height="428" alt="Girl has dropped her ice cream." />
</el-col>
</el-row>
<el-dialog v-model="dialogVisible" title="随便看">

View File

@@ -16,44 +16,22 @@ function back() {
<div class="page-container">
<div class="pic-404">
<img class="pic-404__parent" src="@/assets/images/404.png" alt="404" />
<img
class="pic-404__child left"
src="@/assets/images/404_cloud.png"
alt="404"
/>
<img
class="pic-404__child mid"
src="@/assets/images/404_cloud.png"
alt="404"
/>
<img
class="pic-404__child right"
src="@/assets/images/404_cloud.png"
alt="404"
/>
<img class="pic-404__child left" src="@/assets/images/404_cloud.png" alt="404" />
<img class="pic-404__child mid" src="@/assets/images/404_cloud.png" alt="404" />
<img class="pic-404__child right" src="@/assets/images/404_cloud.png" alt="404" />
</div>
<div class="bullshit">
<div class="bullshit__oops">OOPS!</div>
<div class="bullshit__info">
All rights reserved
<a
style="color: #20a0ff"
href="https://wallstreetcn.com"
target="_blank"
>
wallstreetcn
</a>
</div>
<div class="bullshit__headline">
The webmaster said that you can not enter this page...
<a style="color: #20a0ff" href="https://wallstreetcn.com" target="_blank">wallstreetcn</a>
</div>
<div class="bullshit__headline">The webmaster said that you can not enter this page...</div>
<div class="bullshit__info">
Please check that the URL you entered is correct, or click the button
below to return to the homepage.
Please check that the URL you entered is correct, or click the button below to return to the
homepage.
</div>
<a href="#" class="bullshit__return-home" @click.prevent="back">
Back to home
</a>
<a href="#" class="bullshit__return-home" @click.prevent="back">Back to home</a>
</div>
</div>
</template>

View File

@@ -38,19 +38,13 @@
</el-tag>
</el-dropdown-item>
<el-dropdown-item
@click="setLoginCredentials('root', '123456')"
>
<el-dropdown-item @click="setLoginCredentials('root', '123456')">
超级管理员root/123456
</el-dropdown-item>
<el-dropdown-item
@click="setLoginCredentials('admin', '123456')"
>
<el-dropdown-item @click="setLoginCredentials('admin', '123456')">
系统管理员admin/123456
</el-dropdown-item>
<el-dropdown-item
@click="setLoginCredentials('test', '123456')"
>
<el-dropdown-item @click="setLoginCredentials('test', '123456')">
测试小游客test/123456
</el-dropdown-item>
</el-dropdown-menu>
@@ -76,11 +70,7 @@
</el-form-item>
<!-- 密码 -->
<el-tooltip
:visible="isCapslock"
:content="$t('login.capsLock')"
placement="right"
>
<el-tooltip :visible="isCapslock" :content="$t('login.capsLock')" placement="right">
<el-form-item prop="password">
<div class="input-wrapper">
<el-icon class="mx-2">
@@ -114,11 +104,7 @@
@keyup.enter="handleLoginSubmit"
/>
<el-image
:src="captchaBase64"
class="captcha-img"
@click="getCaptcha"
/>
<el-image :src="captchaBase64" class="captcha-img" @click="getCaptcha" />
</div>
</el-form-item>
@@ -161,11 +147,7 @@
<div class="login-footer">
<el-text size="small">
Copyright © 2021 - 2024 youlai.tech All Rights Reserved.
<el-link
:underline="false"
href="http://beian.miit.gov.cn/"
target="_blank"
>
<el-link :underline="false" href="http://beian.miit.gov.cn/" target="_blank">
皖ICP备20006496号-2
</el-link>
</el-text>
@@ -200,9 +182,7 @@ const isCapslock = ref(false); // 是否大写锁定
const captchaBase64 = ref(); // 验证码图片Base64字符串
const logo = ref(new URL("../../assets/logo.png", import.meta.url).href);
const loginImage = ref(
new URL("../../assets/images/login-image.svg", import.meta.url).href
);
const loginImage = ref(new URL("../../assets/images/login-image.svg", import.meta.url).href);
const loginData = ref<LoginData>({
username: "admin",
@@ -300,8 +280,7 @@ function parseRedirect(): {
// 主题切换
const toggleTheme = () => {
const newTheme =
settingsStore.theme === ThemeEnum.DARK ? ThemeEnum.LIGHT : ThemeEnum.DARK;
const newTheme = settingsStore.theme === ThemeEnum.DARK ? ThemeEnum.LIGHT : ThemeEnum.DARK;
settingsStore.changeTheme(newTheme);
};
@@ -332,8 +311,7 @@ onMounted(() => {
width: 100%;
height: 100%;
overflow-y: auto;
background: url("@/assets/images/login-background-light.jpg") no-repeat center
right;
background: url("@/assets/images/login-background-light.jpg") no-repeat center right;
.login-header {
position: absolute;
@@ -471,8 +449,7 @@ onMounted(() => {
html.dark {
.login {
background: url("@/assets/images/login-background-dark.jpg") no-repeat
center right;
background: url("@/assets/images/login-background-dark.jpg") no-repeat center right;
.login-content {
background: transparent;

View File

@@ -16,12 +16,7 @@
size="small"
@click="triggerFileUpload"
/>
<input
ref="fileInput"
type="file"
style="display: none"
@change="handleFileChange"
/>
<input ref="fileInput" type="file" style="display: none" @change="handleFileChange" />
</div>
<div class="mt-5">
{{ userProfile.nickname }}
@@ -41,10 +36,7 @@
用户名
</template>
{{ userProfile.username }}
<el-icon
v-if="userProfile.gender === 1"
class="align-middle color-blue"
>
<el-icon v-if="userProfile.gender === 1" class="align-middle color-blue">
<Male />
</el-icon>
<el-icon v-else class="align-middle color-pink">
@@ -117,9 +109,7 @@
<div class="mt-5">
<div class="font-bold">绑定手机</div>
<div class="text-14px mt-2">
<span v-if="userProfile.mobile">
已绑定手机号{{ userProfile.mobile }}
</span>
<span v-if="userProfile.mobile">已绑定手机号{{ userProfile.mobile }}</span>
<span v-else>未绑定手机</span>
<el-button
v-if="userProfile.mobile"
@@ -147,9 +137,7 @@
<div class="mt-5">
<div class="font-bold">绑定邮箱</div>
<div class="text-14px mt-2">
<span v-if="userProfile.email">
已绑定邮箱{{ userProfile.email }}
</span>
<span v-if="userProfile.email">已绑定邮箱{{ userProfile.email }}</span>
<span v-else>未绑定邮箱</span>
<el-button
v-if="userProfile.email"
@@ -203,25 +191,13 @@
:label-width="100"
>
<el-form-item label="原密码" prop="oldPassword">
<el-input
v-model="passwordChangeForm.oldPassword"
type="password"
show-password
/>
<el-input v-model="passwordChangeForm.oldPassword" type="password" show-password />
</el-form-item>
<el-form-item label="新密码" prop="newPassword">
<el-input
v-model="passwordChangeForm.newPassword"
type="password"
show-password
/>
<el-input v-model="passwordChangeForm.newPassword" type="password" show-password />
</el-form-item>
<el-form-item label="确认密码" prop="confirmPassword">
<el-input
v-model="passwordChangeForm.confirmPassword"
type="password"
show-password
/>
<el-input v-model="passwordChangeForm.confirmPassword" type="password" show-password />
</el-form-item>
</el-form>
<!-- 绑定手机 -->
@@ -243,11 +219,7 @@
:disabled="mobileCountdown > 0"
@click="handleSendVerificationCode('MOBILE')"
>
{{
mobileCountdown > 0
? `${mobileCountdown}s后重新发送`
: "发送验证码"
}}
{{ mobileCountdown > 0 ? `${mobileCountdown}s后重新发送` : "发送验证码" }}
</el-button>
</template>
</el-input>
@@ -273,11 +245,7 @@
:disabled="emailCountdown > 0"
@click="handleSendVerificationCode('EMAIL')"
>
{{
emailCountdown > 0
? `${emailCountdown}s后重新发送`
: "发送验证码"
}}
{{ emailCountdown > 0 ? `${emailCountdown}s后重新发送` : "发送验证码" }}
</el-button>
</template>
</el-input>
@@ -336,9 +304,7 @@ const emailTimer = ref<NodeJS.Timeout | null>(null);
const passwordChangeRules = {
oldPassword: [{ required: true, message: "请输入原密码", trigger: "blur" }],
newPassword: [{ required: true, message: "请输入新密码", trigger: "blur" }],
confirmPassword: [
{ required: true, message: "请再次输入新密码", trigger: "blur" },
],
confirmPassword: [{ required: true, message: "请再次输入新密码", trigger: "blur" }],
};
// 手机号校验规则

View File

@@ -31,7 +31,7 @@
v-hasPerm="['sys:dept:add']"
type="success"
icon="plus"
@click="handleOpenDialog(0, undefined)"
@click="handleOpenDialog()"
>
新增
</el-button>

View File

@@ -32,12 +32,8 @@
</el-descriptions-item>
<el-descriptions-item label="发布状态:">
<el-tag v-if="notice.publishStatus == 0" type="info">未发布</el-tag>
<el-tag v-else-if="notice.publishStatus == 1" type="success">
已发布
</el-tag>
<el-tag v-else-if="notice.publishStatus == -1" type="warning">
已撤回
</el-tag>
<el-tag v-else-if="notice.publishStatus == 1" type="success">已发布</el-tag>
<el-tag v-else-if="notice.publishStatus == -1" type="warning">已撤回</el-tag>
</el-descriptions-item>
<el-descriptions-item label="发布人:">
{{ notice.publisherName }}

View File

@@ -95,9 +95,7 @@ const handleFileExceed = () => {
const handleDownloadTemplate = () => {
UserAPI.downloadTemplate().then((response: any) => {
const fileData = response.data;
const fileName = decodeURI(
response.headers["content-disposition"].split(";")[1].split("=")[1]
);
const fileName = decodeURI(response.headers["content-disposition"].split(";")[1].split("=")[1]);
const fileType =
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8";