mirror of
https://github.com/m-xlsea/ruoyi-plus-soybean.git
synced 2025-09-24 07:49:47 +08:00
Merge remote-tracking branch 'origin/flow' into flow
This commit is contained in:
@ -77,14 +77,15 @@ export const request = createFlatRequest<App.Service.Response, RequestInstanceSt
|
|||||||
// when the backend response code is in `modalLogoutCodes`, it means the user will be logged out by displaying a modal
|
// when the backend response code is in `modalLogoutCodes`, it means the user will be logged out by displaying a modal
|
||||||
const modalLogoutCodes = import.meta.env.VITE_SERVICE_MODAL_LOGOUT_CODES?.split(',') || [];
|
const modalLogoutCodes = import.meta.env.VITE_SERVICE_MODAL_LOGOUT_CODES?.split(',') || [];
|
||||||
if (modalLogoutCodes.includes(responseCode) && isLogin) {
|
if (modalLogoutCodes.includes(responseCode) && isLogin) {
|
||||||
const isExist = request.state.errMsgStack.includes(response.data.msg);
|
const isExist = request.state.errMsgStack && request.state.errMsgStack.includes(response.data.msg);
|
||||||
if (isExist) {
|
if (isExist) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
if (window.location.pathname?.startsWith('/login')) {
|
||||||
if (!window.location.pathname?.startsWith('/login')) {
|
logoutAndCleanup();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
request.state.errMsgStack = [...(request.state.errMsgStack || []), response.data.msg];
|
request.state.errMsgStack = [...(request.state.errMsgStack || []), response.data.msg];
|
||||||
|
|
||||||
// prevent the user from refreshing the page
|
// prevent the user from refreshing the page
|
||||||
window.addEventListener('beforeunload', handleLogout);
|
window.addEventListener('beforeunload', handleLogout);
|
||||||
|
|
||||||
@ -106,9 +107,6 @@ export const request = createFlatRequest<App.Service.Response, RequestInstanceSt
|
|||||||
request.cancelAllRequest();
|
request.cancelAllRequest();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
logoutAndCleanup();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// when the backend response code is in `expiredTokenCodes`, it means the token is expired, and refresh token
|
// when the backend response code is in `expiredTokenCodes`, it means the token is expired, and refresh token
|
||||||
// the api `refreshToken` can not return error code in `expiredTokenCodes`, otherwise it will be a dead loop, should return `logoutCodes` or `modalLogoutCodes`
|
// the api `refreshToken` can not return error code in `expiredTokenCodes`, otherwise it will be a dead loop, should return `logoutCodes` or `modalLogoutCodes`
|
||||||
|
2
src/typings/api/workflow.api.d.ts
vendored
2
src/typings/api/workflow.api.d.ts
vendored
@ -40,7 +40,7 @@ declare namespace Api {
|
|||||||
|
|
||||||
/** leave search params */
|
/** leave search params */
|
||||||
type LeaveSearchParams = CommonType.RecordNullable<
|
type LeaveSearchParams = CommonType.RecordNullable<
|
||||||
Pick<Api.Workflow.Leave, 'leaveDays'> & Api.Common.CommonSearchParams
|
{ startLeaveDays: number; endLeaveDays: number } & Api.Common.CommonSearchParams
|
||||||
>;
|
>;
|
||||||
|
|
||||||
/** leave operate params */
|
/** leave operate params */
|
||||||
|
@ -34,13 +34,13 @@ async function search() {
|
|||||||
<NCollapseItem :title="$t('common.search')" name="user-search">
|
<NCollapseItem :title="$t('common.search')" name="user-search">
|
||||||
<NForm ref="formRef" :model="model" label-placement="left" :label-width="80">
|
<NForm ref="formRef" :model="model" label-placement="left" :label-width="80">
|
||||||
<NGrid responsive="screen" item-responsive>
|
<NGrid responsive="screen" item-responsive>
|
||||||
<NFormItemGi span="24 s:12 m:6" label="IP地址" path="ipaddr" class="pr-24px">
|
<NFormItemGi span="24 s:12 m:8" label="IP地址" path="ipaddr" class="pr-24px">
|
||||||
<NInput v-model:value="model.ipaddr" placeholder="请输入IP地址" />
|
<NInput v-model:value="model.ipaddr" placeholder="请输入IP地址" />
|
||||||
</NFormItemGi>
|
</NFormItemGi>
|
||||||
<NFormItemGi span="24 s:12 m:6" label="用户账号" path="userName" class="pr-24px">
|
<NFormItemGi span="24 s:12 m:8" label="用户账号" path="userName" class="pr-24px">
|
||||||
<NInput v-model:value="model.userName" placeholder="请输入用户账号" />
|
<NInput v-model:value="model.userName" placeholder="请输入用户账号" />
|
||||||
</NFormItemGi>
|
</NFormItemGi>
|
||||||
<NFormItemGi span="24" class="pr-24px">
|
<NFormItemGi span="24 s:24 m:8" class="pr-24px">
|
||||||
<NSpace class="w-full" justify="end">
|
<NSpace class="w-full" justify="end">
|
||||||
<NButton @click="reset">
|
<NButton @click="reset">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
|
@ -77,7 +77,7 @@ async function search() {
|
|||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</NFormItemGi>
|
</NFormItemGi>
|
||||||
<NFormItemGi span="24 s:12 m:12" label="创建时间" path="createTime" class="pr-24px">
|
<NFormItemGi span="24 s:12 m:6" label="创建时间" path="createTime" class="pr-24px">
|
||||||
<NDatePicker
|
<NDatePicker
|
||||||
v-model:formatted-value="dateRangeCreateTime"
|
v-model:formatted-value="dateRangeCreateTime"
|
||||||
type="datetimerange"
|
type="datetimerange"
|
||||||
@ -86,7 +86,7 @@ async function search() {
|
|||||||
@update:formatted-value="onDateRangeCreateTimeUpdate"
|
@update:formatted-value="onDateRangeCreateTimeUpdate"
|
||||||
/>
|
/>
|
||||||
</NFormItemGi>
|
</NFormItemGi>
|
||||||
<NFormItemGi span="24 s:12 m:12" class="pr-24px">
|
<NFormItemGi span="24" class="pr-24px">
|
||||||
<NSpace class="w-full" justify="end">
|
<NSpace class="w-full" justify="end">
|
||||||
<NButton @click="reset">
|
<NButton @click="reset">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
|
@ -33,17 +33,16 @@ async function search() {
|
|||||||
<NCollapse>
|
<NCollapse>
|
||||||
<NCollapseItem :title="$t('common.search')" name="user-search">
|
<NCollapseItem :title="$t('common.search')" name="user-search">
|
||||||
<NForm ref="formRef" :model="model" label-placement="left" :label-width="80">
|
<NForm ref="formRef" :model="model" label-placement="left" :label-width="80">
|
||||||
<NGrid responsive="self" item-responsive>
|
<NGrid responsive="screen" item-responsive>
|
||||||
<NFormItemGi
|
<NFormItemGi
|
||||||
:show-feedback="false"
|
span="24 s:12 m:12"
|
||||||
span="12"
|
|
||||||
:label="$t('page.system.dict.data.label')"
|
:label="$t('page.system.dict.data.label')"
|
||||||
path="dictLabel"
|
path="dictLabel"
|
||||||
class="pr-24px"
|
class="pr-24px"
|
||||||
>
|
>
|
||||||
<NInput v-model:value="model.dictLabel" :placeholder="$t('page.system.dict.form.dictLabel.required')" />
|
<NInput v-model:value="model.dictLabel" :placeholder="$t('page.system.dict.form.dictLabel.required')" />
|
||||||
</NFormItemGi>
|
</NFormItemGi>
|
||||||
<NFormItemGi :show-feedback="false" span="12" class="pr-24px">
|
<NFormItemGi span="24 s:12 m:12" class="pr-24px">
|
||||||
<NSpace class="w-full" justify="end">
|
<NSpace class="w-full" justify="end">
|
||||||
<NButton @click="reset">
|
<NButton @click="reset">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
|
@ -38,7 +38,7 @@ async function search() {
|
|||||||
<NForm ref="formRef" :model="model" label-placement="left" :label-width="80">
|
<NForm ref="formRef" :model="model" label-placement="left" :label-width="80">
|
||||||
<NGrid responsive="screen" item-responsive>
|
<NGrid responsive="screen" item-responsive>
|
||||||
<NFormItemGi
|
<NFormItemGi
|
||||||
span="8"
|
span="24 s:12 m:8"
|
||||||
:label="$t('page.system.tenantPackage.packageName')"
|
:label="$t('page.system.tenantPackage.packageName')"
|
||||||
path="packageName"
|
path="packageName"
|
||||||
class="pr-24px"
|
class="pr-24px"
|
||||||
@ -48,7 +48,12 @@ async function search() {
|
|||||||
:placeholder="$t('page.system.tenantPackage.form.packageName.required')"
|
:placeholder="$t('page.system.tenantPackage.form.packageName.required')"
|
||||||
/>
|
/>
|
||||||
</NFormItemGi>
|
</NFormItemGi>
|
||||||
<NFormItemGi span="8" :label="$t('page.system.tenantPackage.status')" path="status" class="pr-24px">
|
<NFormItemGi
|
||||||
|
span="24 s:12 m:8"
|
||||||
|
:label="$t('page.system.tenantPackage.status')"
|
||||||
|
path="status"
|
||||||
|
class="pr-24px"
|
||||||
|
>
|
||||||
<NSelect
|
<NSelect
|
||||||
v-model:value="model.status"
|
v-model:value="model.status"
|
||||||
:placeholder="$t('page.system.tenantPackage.form.status.required')"
|
:placeholder="$t('page.system.tenantPackage.form.status.required')"
|
||||||
@ -56,7 +61,7 @@ async function search() {
|
|||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</NFormItemGi>
|
</NFormItemGi>
|
||||||
<NFormItemGi span="8" class="pr-24px">
|
<NFormItemGi span="24 s:24 m:8" class="pr-24px">
|
||||||
<NSpace class="w-full" justify="end">
|
<NSpace class="w-full" justify="end">
|
||||||
<NButton @click="reset">
|
<NButton @click="reset">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
|
@ -43,7 +43,8 @@ const {
|
|||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
// if you want to use the searchParams in Form, you need to define the following properties, and the value is null
|
// if you want to use the searchParams in Form, you need to define the following properties, and the value is null
|
||||||
// the value can not be undefined, otherwise the property in Form will not be reactive
|
// the value can not be undefined, otherwise the property in Form will not be reactive
|
||||||
leaveDays: null,
|
startLeaveDays: null,
|
||||||
|
endLeaveDays: null,
|
||||||
params: {}
|
params: {}
|
||||||
},
|
},
|
||||||
columns: () => [
|
columns: () => [
|
||||||
|
@ -35,10 +35,14 @@ async function search() {
|
|||||||
<NCollapseItem :title="$t('common.search')" name="user-search">
|
<NCollapseItem :title="$t('common.search')" name="user-search">
|
||||||
<NForm ref="formRef" :model="model" label-placement="left" :label-width="80">
|
<NForm ref="formRef" :model="model" label-placement="left" :label-width="80">
|
||||||
<NGrid responsive="screen" item-responsive>
|
<NGrid responsive="screen" item-responsive>
|
||||||
<NFormItemGi span="24 s:12 m:6" label="请假天数" path="leaveDays" class="pr-24px">
|
<NFormItemGi span="24 s:12 m:16" label="请假天数" path="startLeaveDays" class="pr-24px">
|
||||||
<NInputNumber v-model:value="model.leaveDays" placeholder="请输入请假天数" />
|
<NSpace align="center" class="w-full">
|
||||||
|
<NInputNumber v-model:value="model.startLeaveDays" placeholder="开始天数" />
|
||||||
|
<span class="mx-2">至</span>
|
||||||
|
<NInputNumber v-model:value="model.endLeaveDays" placeholder="结束天数" />
|
||||||
|
</NSpace>
|
||||||
</NFormItemGi>
|
</NFormItemGi>
|
||||||
<NFormItemGi span="24" class="pr-24px">
|
<NFormItemGi span="24 s:12 m:8" class="pr-24px">
|
||||||
<NSpace class="w-full" justify="end">
|
<NSpace class="w-full" justify="end">
|
||||||
<NButton @click="reset">
|
<NButton @click="reset">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
|
Reference in New Issue
Block a user