use Message instead of Toast

This commit is contained in:
Timi
2026-08-22 01:08:23 +08:00
parent 94c17e6d81
commit e2af521996
46 changed files with 291 additions and 289 deletions
+11 -11
View File
@@ -55,7 +55,7 @@
</template>
<script setup lang="ts">
import { Toast } from "tdesign-mobile-vue";
import { Message } from "@/utils/message";
import { Captcha, NotifyAPI, useUserStore, type LoginResponse, Time } from "timi-web";
import ManagedUserAPI from "@/api/ManagedUserAPI";
import { useCurrentStoreStore } from "@/store/currentStoreStore";
@@ -118,23 +118,23 @@ async function validateInvite(): Promise<void> {
function validateForm(): boolean {
if (!/^1\d{10}$/.test(formModel.phoneNo)) {
Toast.warning("请输入正确的 11 位手机号");
Message.warning("请输入正确的 11 位手机号");
return false;
}
if (!formModel.name || formModel.name.length > 191) {
Toast.warning("请输入不超过 191 个字符的用户名");
Message.warning("请输入不超过 191 个字符的用户名");
return false;
}
if (formModel.password.length < 6) {
Toast.warning("密码至少需要 6 个字符");
Message.warning("密码至少需要 6 个字符");
return false;
}
if (formModel.password !== formModel.confirmPassword) {
Toast.warning("两次输入的密码不一致");
Message.warning("两次输入的密码不一致");
return false;
}
if (!formModel.notifyDetailId || !/^\d{6}$/.test(formModel.smsCode)) {
Toast.warning("请先获取并输入短信验证码");
Message.warning("请先获取并输入短信验证码");
return false;
}
return true;
@@ -169,7 +169,7 @@ async function sendSms(): Promise<void> {
}
const captchaId = getCaptchaId();
if (!captchaId) {
Toast.warning("图形验证码尚未加载,请稍后重试");
Message.warning("图形验证码尚未加载,请稍后重试");
await captchaRef.value?.update();
return;
}
@@ -182,7 +182,7 @@ async function sendSms(): Promise<void> {
}
});
startSmsTimer();
Toast.success(`验证码已发送,请检查 ${formModel.phoneNo} 手机短信(易保网络)`);
Message.success(`验证码已发送,请检查 ${formModel.phoneNo} 手机短信(易保网络)`);
} catch {
formModel.notifyDetailId = "";
} finally {
@@ -194,7 +194,7 @@ async function sendSms(): Promise<void> {
async function register(): Promise<void> {
if (isSubmitting.value || isExpired.value || !validateForm()) {
if (isExpired.value) {
Toast.warning("邀请码已失效,请联系邀请人重新生成");
Message.warning("邀请码已失效,请联系邀请人重新生成");
}
return;
}
@@ -212,7 +212,7 @@ async function register(): Promise<void> {
});
await userStore.updateLoginUser(result as LoginResponse);
await currentStoreStore.loadAfterLogin();
Toast.success("注册成功");
Message.success("注册成功");
await router.replace("/management");
} catch {
formModel.smsCode = "";
@@ -222,7 +222,7 @@ async function register(): Promise<void> {
}
async function handleCaptchaError(): Promise<void> {
Toast.warning("验证码加载失败,请点击验证码重试");
Message.warning("验证码加载失败,请点击验证码重试");
}
let expireTimer = 0;
+2 -2
View File
@@ -58,7 +58,7 @@
</template>
<script setup lang="ts">
import { Toast } from "tdesign-mobile-vue";
import { Message } from "@/utils/message";
import { PassTimeLabel, type User, UserAPI } from "timi-web";
import EventAPI from "@/api/EventAPI";
import ManagedUserAPI from "@/api/ManagedUserAPI";
@@ -186,7 +186,7 @@ onMounted(async () => {
navBarStore.setRightText("编辑", "var(--td-brand-color)", toEdit);
}
} catch {
Toast.error("用户详情加载失败");
Message.error("用户详情加载失败");
}
});
+7 -7
View File
@@ -27,7 +27,7 @@
</template>
<script setup lang="ts">
import { Toast } from "tdesign-mobile-vue";
import { Message } from "@/utils/message";
import { useUserStore } from "timi-web";
import ManagedUserAPI from "@/api/ManagedUserAPI";
import { useCurrentStoreStore } from "@/store/currentStoreStore";
@@ -81,7 +81,7 @@ const selectedStoreName = computed(() => {
function openStorePicker(): void {
if (!currentStoreStore.storeList.length) {
Toast.warning("暂无可选门店");
Message.warning("暂无可选门店");
return;
}
@@ -177,7 +177,7 @@ async function saveUser(): Promise<void> {
});
}
}
Toast.success("用户已保存");
Message.success("用户已保存");
const detailPath = `/management/users/${saved.id || formModel.id}`;
if (isCreateMode.value) {
await router.replace(detailPath);
@@ -191,15 +191,15 @@ async function saveUser(): Promise<void> {
function validateForm(): boolean {
if (!formModel.name) {
Toast.warning("请填写姓名");
Message.warning("请填写姓名");
return false;
}
if (!formModel.storeId) {
Toast.warning("请选择门店");
Message.warning("请选择门店");
return false;
}
if (isCreateMode.value && !formModel.password) {
Toast.warning("请填写密码");
Message.warning("请填写密码");
return false;
}
return true;
@@ -212,7 +212,7 @@ onMounted(async () => {
try {
await fillForm();
} catch {
Toast.error("用户数据加载失败");
Message.error("用户数据加载失败");
}
});
+5 -5
View File
@@ -24,7 +24,7 @@
</template>
<script setup lang="ts">
import { Toast } from "tdesign-mobile-vue";
import { Message } from "@/utils/message";
import { createInvitePosterImage, downloadInvitePoster } from "@/utils/qrCode";
defineOptions({ name: "UserInvitePoster" });
@@ -61,9 +61,9 @@ async function savePoster(): Promise<void> {
isDownloading.value = true;
try {
await downloadInvitePoster(posterOptions.value, "GAO-邀请注册海报.png");
Toast.success("海报已保存");
Message.success("海报已保存");
} catch {
Toast.error("海报保存失败");
Message.error("海报保存失败");
} finally {
isDownloading.value = false;
}
@@ -72,9 +72,9 @@ async function savePoster(): Promise<void> {
async function copyLink(): Promise<void> {
try {
await navigator.clipboard.writeText(registerLink);
Toast.success("注册链接已复制");
Message.success("注册链接已复制");
} catch {
Toast.error("复制失败,请检查浏览器权限");
Message.error("复制失败,请检查浏览器权限");
}
}
+2 -2
View File
@@ -83,7 +83,7 @@
</template>
<script setup lang="ts">
import { Toast } from "tdesign-mobile-vue";
import { Message } from "@/utils/message";
import { type Page, type PageResult, UserAPI, type User, useUserStore } from "timi-web";
import ManagedUserAPI from "@/api/ManagedUserAPI";
import { useCurrentStoreStore } from "@/store/currentStoreStore";
@@ -227,7 +227,7 @@ onMounted(async () => {
try {
await loadData();
} catch {
Toast.error("用户列表加载失败");
Message.error("用户列表加载失败");
}
});
+4 -4
View File
@@ -16,7 +16,7 @@
</template>
<script setup lang="ts">
import { Toast } from "tdesign-mobile-vue";
import { Message } from "@/utils/message";
import { UserAPI, useUserStore } from "timi-web";
defineOptions({
@@ -39,11 +39,11 @@ const formModel = reactive({
async function savePassword(): Promise<void> {
if (!formModel.oldPassword || !formModel.newPassword) {
Toast.warning("请填写旧密码和新密码");
Message.warning("请填写旧密码和新密码");
return;
}
if (formModel.newPassword !== formModel.confirmPassword) {
Toast.warning("两次输入的新密码不一致");
Message.warning("两次输入的新密码不一致");
return;
}
isSaving.value = true;
@@ -53,7 +53,7 @@ async function savePassword(): Promise<void> {
newValue: formModel.newPassword
});
userStore.clearLoginUser();
Toast.success("密码已更新,请重新登录");
Message.success("密码已更新,请重新登录");
await router.replace("/login");
} finally {
isSaving.value = false;
+5 -4
View File
@@ -53,12 +53,13 @@
</template>
<script setup lang="ts">
import { DialogPlugin, Toast } from "tdesign-mobile-vue";
import { DialogPlugin } from "tdesign-mobile-vue";
import { AttachmentAPI, type Gender, UserAPI, useUserStore } from "timi-web";
import PhotoField from "@/components/PhotoField.vue";
import { useNavBarStore } from "@/store/navBarStore";
import { buildFallbackAvatar } from "@/utils/avatar";
import { compressUploadImage } from "@/utils/imageCompression";
import { Message } from "@/utils/message";
type UserAvatarSource = NonNullable<Parameters<typeof UserAPI.getAvatarURL>[0]> & {
name?: string;
@@ -135,7 +136,7 @@ async function handleAvatarSelected(event: Event): Promise<void> {
const compressedFile = await compressUploadImage(file);
const [tempFile] = await AttachmentAPI.upload(compressedFile);
if (!tempFile?.id) {
Toast.error("头像上传失败");
Message.error("头像上传失败");
return;
}
avatarTempFileId.value = tempFile.id;
@@ -156,7 +157,7 @@ async function toPassword(): Promise<void> {
async function saveProfile(): Promise<void> {
if (!formModel.name) {
Toast.warning("请填写用户名");
Message.warning("请填写用户名");
return;
}
isSaving.value = true;
@@ -169,7 +170,7 @@ async function saveProfile(): Promise<void> {
tempFileIdList: avatarTempFileId.value ? [avatarTempFileId.value] : undefined
});
await userStore.updateLoginUser(result);
Toast.success("资料已保存");
Message.success("资料已保存");
await router.back();
} finally {
isSaving.value = false;
+5 -5
View File
@@ -39,7 +39,7 @@
<script setup lang="ts">
import type { DropdownOption, DropdownValue } from "tdesign-mobile-vue";
import { Toast } from "tdesign-mobile-vue";
import { Message } from "@/utils/message";
import { RoleAPI, type ModuleCode, type Role as UserRole, useUserStore } from "timi-web";
import ManagedUserAPI from "@/api/ManagedUserAPI";
import { useCurrentStoreStore } from "@/store/currentStoreStore";
@@ -198,7 +198,7 @@ async function loadActiveUserRoles(): Promise<void> {
async function saveRoleList(): Promise<void> {
const current = activeUser.value;
if (!current?.id || !current.userId) {
Toast.warning("请选择用户");
Message.warning("请选择用户");
return;
}
@@ -210,14 +210,14 @@ async function saveRoleList(): Promise<void> {
roleIdList: [...checkedRoleIds.value]
});
await loadActiveUserRoles();
Toast.success("用户角色已保存");
Message.success("用户角色已保存");
} catch (error) {
checkedRoleIds.value = [];
try {
await reloadAuthorizationScope();
await loadActiveUserRoles();
} finally {
Toast.error(getErrorMessage(error, "用户角色授权失败"));
Message.error(getErrorMessage(error, "用户角色授权失败"));
}
} finally {
isSaving.value = false;
@@ -285,7 +285,7 @@ onMounted(async () => {
try {
await loadData();
} catch {
Toast.error("用户角色加载失败");
Message.error("用户角色加载失败");
}
});
+2 -2
View File
@@ -19,7 +19,7 @@
</template>
<script setup lang="ts">
import { Toast } from "tdesign-mobile-vue";
import { Message } from "@/utils/message";
import { Captcha, useUserStore } from "timi-web";
import { useCurrentStoreStore } from "@/store/currentStoreStore";
@@ -56,7 +56,7 @@ function getRedirectPath(): string {
function validateForm(): boolean {
if (!formModel.user || !formModel.password || !formModel.captcha || !captchaRef.value?.captchaId) {
Toast.warning("请输入账号、密码和验证码");
Message.warning("请输入账号、密码和验证码");
return false;
}
return true;
+3 -3
View File
@@ -44,7 +44,7 @@
</template>
<script setup lang="ts">
import { Toast } from "tdesign-mobile-vue";
import { Message } from "@/utils/message";
import ManagedUserAPI from "@/api/ManagedUserAPI";
import { useCurrentStoreStore } from "@/store/currentStoreStore";
import { coreRoleCodes, gaoRoleCodes } from "@/utils/permission";
@@ -123,7 +123,7 @@ function confirmPicker(): void {
async function generateInvite(): Promise<void> {
if (!formModel.roleId || (shouldSelectStore.value && !formModel.storeId)) {
Toast.warning(shouldSelectStore.value ? "请选择角色和门店" : "请选择角色");
Message.warning(shouldSelectStore.value ? "请选择角色和门店" : "请选择角色");
return;
}
isGenerating.value = true;
@@ -157,7 +157,7 @@ watch(() => props.visible, async visible => {
try {
await loadData();
} catch {
Toast.error("邀请配置加载失败");
Message.error("邀请配置加载失败");
}
});
</script>