use Message instead of Toast
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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("用户详情加载失败");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -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("用户数据加载失败");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -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("复制失败,请检查浏览器权限");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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("用户列表加载失败");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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("用户角色加载失败");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user