解决分页选择页数和条数后,跳转到其他页面,再回来时,分页选择的页数条数丢失的问题,完善邮箱登录,日志完善,操作日志中增加详细报错堆栈信息

This commit is contained in:
YUN-PC5\user 2024-01-26 08:16:10 +08:00
parent 9933de3252
commit 2bf5a087cf
4 changed files with 54 additions and 49 deletions

View File

@ -53,6 +53,14 @@ export function register(data) {
}) })
} }
export function getMailCode(data) {
return request({
url: '/getMailCode',
method: 'post',
data: data
})
}
/** /**
* 三方授权回调 * 三方授权回调
* @param {*} data * @param {*} data

View File

@ -23,60 +23,68 @@ export default {
props: { props: {
total: { total: {
required: true, required: true,
type: Number, type: Number
}, },
page: { page: {
type: Number, type: Number,
default: 1, default: 1
}, },
limit: { limit: {
type: Number, type: Number,
default: 20, default: 20
}, },
pageSizes: { pageSizes: {
type: Array, type: Array,
default() { default() {
return [10, 20, 30, 50, 100] return [10, 20, 30, 50, 100]
}, }
}, },
// 5 // 5
pagerCount: { pagerCount: {
type: Number, type: Number,
default: document.body.clientWidth < 992 ? 5 : 7, default: document.body.clientWidth < 992 ? 5 : 7
}, },
layout: { layout: {
type: String, type: String,
default: 'total, sizes, prev, pager, next, jumper', default: 'total, sizes, prev, pager, next, jumper'
}, },
background: { background: {
type: Boolean, type: Boolean,
default: true, default: true
}, },
autoScroll: { autoScroll: {
type: Boolean, type: Boolean,
default: true, default: true
}, },
hidden: { hidden: {
type: Boolean, type: Boolean,
default: false, default: false
}, }
}, },
setup(props, { ctx, emit }) { setup(props, { ctx, emit }) {
const router = useRouter()
const route = useRoute()
const currentPage = computed({ const currentPage = computed({
get() { get() {
return props.page if (route.query.page) {
emit('update:page', parseInt(route.query.page))
}
return route.query.page ? parseInt(route.query.page) : props.page
}, },
set(val) { set(val) {
emit('update:page', val) emit('update:page', val)
}, }
}) })
const pageSize = computed({ const pageSize = computed({
get() { get() {
return props.limit if (route.query.limit) {
emit('update:limit', parseInt(route.query.limit))
}
return route.query.limit ? parseInt(route.query.limit) : props.limit
}, },
set(val) { set(val) {
emit('update:limit', val) emit('update:limit', val)
}, }
}) })
function handleSizeChange(val) { function handleSizeChange(val) {
@ -84,21 +92,35 @@ export default {
if (props.autoScroll) { if (props.autoScroll) {
// scrollTo(0, 800); // scrollTo(0, 800);
} }
router.replace({
path: router.currentRoute.value.path,
query: {
page: currentPage.value,
limit: val
}
})
} }
function handleCurrentChange(val) { function handleCurrentChange(val) {
emit('pagination', { page: val, limit: pageSize.value }) emit('pagination', { page: val, limit: pageSize.value })
if (props.autoScroll) { if (props.autoScroll) {
// scrollTo(0, 800); // scrollTo(0, 800);
} }
router.replace({
path: router.currentRoute.value.path,
query: {
page: val,
limit: pageSize.value
}
})
} }
return { return {
currentPage, currentPage,
pageSize, pageSize,
handleSizeChange, handleSizeChange,
handleCurrentChange, handleCurrentChange
} }
}, }
} }
</script> </script>
<style scoped> <style scoped>

View File

@ -66,7 +66,7 @@
</template> </template>
<script setup name="loginByEmail" lang="ts"> <script setup name="loginByEmail" lang="ts">
// import { getMailCode, getEmailVerifyImg, getRsaKey } from '@/api/system/login' import { getMailCode } from '@/api/system/login'
import defaultSettings from '@/settings' import defaultSettings from '@/settings'
import starBackground from '@/views/components/starBackground.vue' import starBackground from '@/views/components/starBackground.vue'
import LangSelect from '@/components/LangSelect/index.vue' import LangSelect from '@/components/LangSelect/index.vue'
@ -115,8 +115,6 @@ const loginRules = {
const loginRef = ref() const loginRef = ref()
const loading = ref<boolean>(false) const loading = ref<boolean>(false)
const dragVerify = ref(false) const dragVerify = ref(false)
// const verifyImg = ref('https://picsum.photos/979/547' + '/?image=' + Math.round(Math.random() * 20))
// const /v.jpg
const isPassing = ref(false) const isPassing = ref(false)
const loginForm = ref<loginForm>({ const loginForm = ref<loginForm>({
email: '', email: '',
@ -141,14 +139,6 @@ const verifyImg: verifyImg = reactive({
}) })
// //
function getVerifyImg() { function getVerifyImg() {
// getEmailVerifyImg().then((res) => {
// verifyImg.array = res.data
// if (verifyImg.array.length === 0) {
// verifyImg.array.push('/v.jpg')
// }
// verifyImg.src = verifyImg.array[0]
// // resolve(verifyImg)
// })
verifyImg.array = [ verifyImg.array = [
'/verifyimg/10-979x547.jpg', '/verifyimg/10-979x547.jpg',
'/verifyimg/11-979x547.jpg', '/verifyimg/11-979x547.jpg',
@ -186,8 +176,6 @@ function refreshImg() {
verifyImg.src = verifyImg.array[verifyImg.flag] verifyImg.src = verifyImg.array[verifyImg.flag]
verifyImg.flag++ verifyImg.flag++
} }
// verifyImg.value = 'https://picsum.photos/979/547' + '/?image=' + Math.round(Math.random() * 20)
// verifyImgArray.value.shift();
} }
const redirect = ref() const redirect = ref()
redirect.value = route.query.redirect redirect.value = route.query.redirect
@ -212,7 +200,6 @@ interface LoginUser {
loginDate: string loginDate: string
deptId: number deptId: number
} }
// const currentLoginUser = ref<LoginUser>()
let currentLoginCo: any[] = reactive([]) let currentLoginCo: any[] = reactive([])
/** /**
* @description: 登录 * @description: 登录
@ -239,7 +226,6 @@ function handleLogin() {
id: element.dictValue, id: element.dictValue,
name: element.dictLabel name: element.dictLabel
}) })
// currentLoginUser.value = res.data.user
}) })
roleSelectDialog.roles = roles roleSelectDialog.roles = roles
}) })
@ -276,27 +262,11 @@ function roleSelectDialogClose(): void {
globalProperties.$modal.msg(t('roleSelectDialog.close')) globalProperties.$modal.msg(t('roleSelectDialog.close'))
} }
/** /**
* @description: 企业类型选择弹窗回调 * @description:
* @param {roles} role 企业类型信息 * @param {roles} role
*/ */
function roleSelectDialogCallback(role: roles): void { function roleSelectDialogCallback(role: roles): void {
loading.value = false loading.value = false
const { coSysType, coId } = currentLoginCo.find((item) => item.coSysType === role.id)
userStore
.loginByCoSysType({ coId: coId, cosysType: coSysType }) // , user: currentLoginUser.value
.then(() => {
router.push({ path: redirect.value || '/' })
})
.catch((error) => {
console.error(error)
globalProperties.$modal.msgError(error.msg)
loading.value = false
//
// if (captchaOnOff.value) {
// getCode()
// loginForm.value.code = ''
// }
})
} }
/** /**
* @description: 获取滑动验证 * @description: 获取滑动验证

View File

@ -145,6 +145,11 @@
<el-col :lg="24"> <el-col :lg="24">
<el-form-item label="异常信息:" v-if="form.status === 1">{{ form.errorMsg }}</el-form-item> <el-form-item label="异常信息:" v-if="form.status === 1">{{ form.errorMsg }}</el-form-item>
</el-col> </el-col>
<el-col :lg="24">
<el-form-item label="异常堆栈信息:" v-if="form.status === 1">
<el-input type="textarea" disabled rows="5" v-model="form.stackTrace" />
</el-form-item>
</el-col>
</el-row> </el-row>
</el-form> </el-form>
<template #footer> <template #footer>