diff --git a/src/api/login/login.ts b/src/api/login/login.ts new file mode 100644 index 0000000..df61ae0 --- /dev/null +++ b/src/api/login/login.ts @@ -0,0 +1,44 @@ +import { http } from '@/utils/http/axios' +import type { PageParam, PictureSortParam, SetTFParam } from '/#/api' +import { ContentTypeEnum } from '@/enums/httpEnum' + +/** + * 获得手机号验证码 + * @returns + */ +export async function getCode(params: PageParam) { + const res = await http.request({ + url: `/web/smslogin/sendcode`, + method: 'get', + params, + }) + + const { data: { records, pages } } = res + return { + pageCount: pages, + data: records, + } +} + +/** + * 手机号登录 + */ +export async function smsLogin(params: any) { + return http.request({ + url: `/web/smslogin/login`, + method: 'post', + params, + headers: { 'Content-Type': ContentTypeEnum.FORM_DATA }, + }) +} + +/** + * 忘记密码第一步 + */ +export async function forgetPassword(params: any) { + return http.request({ + url: `/ocr/sUser/selectSUser`, + method: 'post', + params, + }) +} diff --git a/src/assets/images/message/time.png b/src/assets/images/message/time.png new file mode 100644 index 0000000..13ee839 Binary files /dev/null and b/src/assets/images/message/time.png differ diff --git a/src/assets/images/message/user.png b/src/assets/images/message/user.png new file mode 100644 index 0000000..a6b0944 Binary files /dev/null and b/src/assets/images/message/user.png differ diff --git a/src/views/login/components/Forget.vue b/src/views/login/components/Forget.vue index 0b35f4c..6eab28c 100644 --- a/src/views/login/components/Forget.vue +++ b/src/views/login/components/Forget.vue @@ -9,6 +9,8 @@ import { useUserStore } from '@/store/modules/user' import { ResultEnum } from '@/enums/httpEnum' import { getFilter, setFilter } from '@/api/home/filter' import { getConfig } from '@/api/system/user' +import { forgetPassword, getCode } from '@/api/login/login' + import { asideMap } from '@/config/aside' const emit = defineEmits(['close', 'forget']) @@ -19,6 +21,13 @@ interface FormState { captcha: string } +interface FormForget { + agentcode: string + loginname: string + phone: string + phonecode: string +} + const formRef = ref() const message = useMessage() const loading = ref(false) @@ -29,17 +38,23 @@ const router = useRouter() const route = useRoute() const show = ref(false) const flag = ref(false) +const formForget: FormForget = reactive({ + agentcode: '三方系统标识8', + loginname: '13311111111', + phone: '13311111111', + phonecode: '', +}) const formInline: FormState = reactive({ enterprisecode: '三方系统标识8', username: '13311111111', password: '123456', captcha: '', }) -const tab = ref(1) +const tab = ref(0) const countTime = ref('获取验证码') const rules = { enterprisecode: { required: true, message: '请输入企业编码', trigger: 'blur' }, - username: { required: true, message: '请输入用户名', trigger: 'blur' }, + loginname: { required: true, message: '请输入用户名', trigger: 'blur' }, password: { required: true, message: '请输入密码', trigger: 'blur' }, captcha: { required: true, message: '请输入验证码', trigger: 'blur' }, reenteredPassword: [ @@ -64,19 +79,20 @@ function handleSubmit(e) { e.preventDefault() formRef.value.validate(async (errors) => { if (!errors) { - const { username, password, enterprisecode, captcha } = formInline + const { loginname, phone, phonecode, agentcode } = formForget message.loading('登录中...') loading.value = true const params = { - logincode: captcha, - username, - password, - codetoken: userStore.getCapToken, - agentcode: enterprisecode, + loginname, + phone, + phonecode, + agentcode, } try { + const res = await forgetPassword(params) + console.log(res) const { code, message: msg } = await userStore.login(params) await userStore.getInformation() const response = await getFilter() @@ -127,6 +143,15 @@ function computedForm() { return !formInline.enterprisecode || !formInline.username || !formInline.password } +async function sendCode(value) { + const res = await getCode({ + phone: 13311111111, + agentcode: '三方系统标识8', + }) + console.log(res) + startCount() +} + function startCount() { let time = 60 countTime.value = '60s' @@ -157,35 +182,35 @@ function forget() {
- - - + + + - - + + - - + + - - + + diff --git a/src/views/login/components/Login.vue b/src/views/login/components/Login.vue index a086192..8f2a267 100644 --- a/src/views/login/components/Login.vue +++ b/src/views/login/components/Login.vue @@ -10,16 +10,23 @@ import { ResultEnum } from '@/enums/httpEnum' import { getFilter, setFilter } from '@/api/home/filter' import { getConfig } from '@/api/system/user' import { asideMap } from '@/config/aside' +import { getCode, smsLogin } from '@/api/login/login' const emit = defineEmits(['close', 'forget']) interface FormState { enterprisecode?: string username: string password: string - captcha: string +} + +interface FormSms { + agentcode: string + phone: string + phonecode: string } const formRef = ref() +const formRefSms = ref() const message = useMessage() const loading = ref(false) const autoLogin = ref(true) @@ -32,12 +39,20 @@ const formInline: FormState = reactive({ enterprisecode: '三方系统标识8', username: '13311111111', password: '123456', - captcha: '', +}) + +const formSms: FormSms = reactive({ + agentcode: '三方系统标识8', + phone: '13311111111', + phonecode: '', }) const tab = ref(0) const countTime = ref('获取验证码') const rules = { enterprisecode: { required: true, message: '请输入企业编码', trigger: 'blur' }, + agentcode: { required: true, message: '请输入企业编码', trigger: 'blur' }, + phone: { required: true, message: '请输入手机号', trigger: 'blur' }, + phonecode: { required: true, message: '请输入验证码', trigger: 'blur' }, username: { required: true, message: '请输入用户名', trigger: 'blur' }, password: { required: true, message: '请输入密码', trigger: 'blur' }, captcha: { required: true, message: '请输入验证码', trigger: 'blur' }, @@ -47,12 +62,11 @@ function handleSubmit(e) { e.preventDefault() formRef.value.validate(async (errors) => { if (!errors) { - const { username, password, enterprisecode, captcha } = formInline + const { username, password, enterprisecode } = formInline message.loading('登录中...') loading.value = true const params = { - logincode: captcha, username, password, codetoken: userStore.getCapToken, @@ -98,6 +112,59 @@ function handleSubmit(e) { }) } +function handleSmsSubmit(e) { + e.preventDefault() + formRefSms.value.validate(async (errors) => { + if (!errors) { + const { phone, agentcode, phonecode } = formSms + message.loading('登录中...') + loading.value = true + + try { + const res = await smsLogin({ + phone, + agentcode, + phonecode, + }) + console.log(res) + // const { code, message: msg } = await userStore.login(params) + await userStore.getInformation() + const response = await getFilter() + + // 添加个默认显示配置 + if (response.data === null) { + const systemConfig = await getConfig() + const onList: string[] = [] + Object.keys(systemConfig.data).forEach((key) => { + // 系统配置开启且个人配置开启 + if (key.startsWith('iz') && systemConfig.data[key] === 'Y' && asideMap[key]?.isDefaultFilter) + onList.push(key) + }) + await setFilter({ searchcount: onList.join(',') }) + } + + message.destroyAll() + if (code === ResultEnum.SUCCESS) { + const toPath = decodeURIComponent((route.query?.redirect || '/') as string) + message.success('登录成功,即将进入系统') + if (route.name === LOGIN_NAME) + router.replace('/') + else router.replace(toPath) + } + else { + message.info(msg || '登录失败') + } + } + finally { + loading.value = false + } + } + else { + message.error('请填写完整信息,并且进行验证码校验') + } + }) +} + function close() { emit('close') } @@ -110,6 +177,15 @@ function computedForm() { return !formInline.enterprisecode || !formInline.username || !formInline.password } +async function sendCode(value) { + const res = await getCode({ + phone: 13311111111, + agentcode: '三方系统标识8', + }) + console.log(res) + startCount() +} + function startCount() { let time = 60 countTime.value = '60s' @@ -184,35 +260,35 @@ function forget() {
- - - + + + - - + + - - + + - + 登录 diff --git a/src/views/message/content/Content.vue b/src/views/message/content/Content.vue index ee01c72..86fad2c 100644 --- a/src/views/message/content/Content.vue +++ b/src/views/message/content/Content.vue @@ -56,17 +56,17 @@ const taskDetailPictureList = ref([]) const tab = ref(0) -async function getList() { +async function getList(value) { const res = await getMessageList({ pageNo: '1', pageSize: '10', - msgCategory: '1', + msgCategory: value, }) const { data } = res state.list = data } -getList() +getList('1') watch(() => workStore.activeId, async (newValue, oldValue) => { const res = await getPackageTaskList(newValue, packagepagination) @@ -87,16 +87,12 @@ async function handleSelect(item: any) { totalCount.value = total } -onUnmounted(() => { - workStore.reset() -}) - function switchTab(type: number) { tab.value = type + getList(type) } function goDetail(id) { - // console.log(id) emit('goDetail', id) } diff --git a/src/views/message/content/Detail.vue b/src/views/message/content/Detail.vue index 2caa72d..45df479 100644 --- a/src/views/message/content/Detail.vue +++ b/src/views/message/content/Detail.vue @@ -1,232 +1,18 @@