merge
This commit is contained in:
BIN
src/assets/login/job.png
Normal file
BIN
src/assets/login/job.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 448 B |
@@ -26,7 +26,9 @@ export default {
|
||||
readAccept: '我已仔细阅读并接受',
|
||||
privacyPolicy: '《隐私政策》',
|
||||
phoneAndJobCodeLabel: '手机号/工号',
|
||||
phoneAndJobCodePlaceholder: '请输入手机号/工号'
|
||||
phoneAndJobCodePlaceholder: '请输入手机号/工号',
|
||||
jobCodeLabel: '工号',
|
||||
jobCodePlaceholder: '请输入工号',
|
||||
},
|
||||
mobile: {
|
||||
label1: '手机号',
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
// export const CODE_ENV = 'production'; // 生产环境
|
||||
|
||||
// 测试环境
|
||||
export const SPDM_URL = 'http://192.168.65.161:3000'; // SPDM项目地址
|
||||
export const BASE_URL = '/spdmApi/honeycom-spdm'; // baseUrl
|
||||
export const TENANT_NAME = 'lyric'; // 租户:利元亨
|
||||
export const CODE_ENV = 'test'; // 测试环境
|
||||
// export const SPDM_URL = 'http://192.168.65.161:3000'; // SPDM项目地址
|
||||
// export const BASE_URL = '/spdmApi/honeycom-spdm'; // baseUrl
|
||||
// export const TENANT_NAME = 'lyric'; // 租户:利元亨
|
||||
// export const CODE_ENV = 'test'; // 测试环境
|
||||
|
||||
// // 190.100
|
||||
// export const SPDM_URL = 'http://192.168.190.100:3000'; // SPDM项目地址
|
||||
@@ -23,8 +23,8 @@ export const CODE_ENV = 'test'; // 测试环境
|
||||
// export const CODE_ENV = 'lyric-intranet'; // 利元亨内网环境
|
||||
|
||||
// // 本地环境
|
||||
// // export const SPDM_URL = 'http://192.168.65.64:3001'; // SPDM项目地址(李靖本地)
|
||||
// export const SPDM_URL = 'http://192.168.65.61:3001'; // SPDM项目地址(董志欢本地)
|
||||
// export const BASE_URL = '/spdmApi/honeycom-spdm'; // baseUrl
|
||||
// export const TENANT_NAME = 'lyric'; // 租户:利元亨
|
||||
// export const CODE_ENV = 'local-dev'; // 本地开发环境
|
||||
// export const SPDM_URL = 'http://192.168.65.64:3001'; // SPDM项目地址(李靖本地)
|
||||
export const SPDM_URL = 'http://192.168.65.61:3001'; // SPDM项目地址(董志欢本地)
|
||||
export const BASE_URL = '/spdmApi/honeycom-spdm'; // baseUrl
|
||||
export const TENANT_NAME = 'lyric'; // 租户:利元亨
|
||||
export const CODE_ENV = 'local-dev'; // 本地开发环境
|
||||
|
||||
@@ -14,10 +14,7 @@
|
||||
USER_INFO_DATA,
|
||||
jump: jumpFun
|
||||
}"
|
||||
:plugins="[
|
||||
DocElementRectPlugin(),
|
||||
InstanceofPlugin(),
|
||||
]"
|
||||
:plugins="[DocElementRectPlugin()]"
|
||||
/>
|
||||
</template>
|
||||
|
||||
@@ -27,7 +24,7 @@ import { useRoute, useRouter } from 'vue-router';
|
||||
import WujieVue from "wujie-vue3";
|
||||
import Cookies from 'js-cookie';
|
||||
import { SPDM_URL } from '../config';
|
||||
import { DocElementRectPlugin, InstanceofPlugin } from 'wujie-polyfill';
|
||||
import { DocElementRectPlugin } from 'wujie-polyfill';
|
||||
|
||||
const USER_INFO_DATA = Cookies.get('cid_user_info');
|
||||
const USER_ID = Cookies.get('cid_user_id');
|
||||
|
||||
@@ -14,10 +14,7 @@
|
||||
USER_INFO_DATA,
|
||||
VIEW_MODE: 'preview'
|
||||
}"
|
||||
:plugins="[
|
||||
DocElementRectPlugin(),
|
||||
InstanceofPlugin(),
|
||||
]"
|
||||
:plugins="[DocElementRectPlugin()]"
|
||||
/>
|
||||
</template>
|
||||
|
||||
@@ -26,7 +23,7 @@ import { watch } from 'vue';
|
||||
import WujieVue from 'wujie-vue3';
|
||||
import Cookies from 'js-cookie';
|
||||
import { SPDM_URL } from '../config';
|
||||
import { DocElementRectPlugin, InstanceofPlugin } from 'wujie-polyfill';
|
||||
import { DocElementRectPlugin } from 'wujie-polyfill';
|
||||
|
||||
const emit = defineEmits(['load']);
|
||||
const { bus } = WujieVue;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import axios, {AxiosInstance, AxiosResponse, InternalAxiosRequestConfig} from 'axios';
|
||||
import {useMessage, useMessageBox} from '/@/hooks/message';
|
||||
import {Session, Token} from '/@/utils/storage';
|
||||
import axios, { AxiosInstance, AxiosResponse, InternalAxiosRequestConfig } from 'axios';
|
||||
import { useMessage, useMessageBox } from '/@/hooks/message';
|
||||
import { Session, Token } from '/@/utils/storage';
|
||||
import qs from 'qs';
|
||||
import other from './other';
|
||||
|
||||
@@ -14,7 +14,7 @@ const service: AxiosInstance = axios.create({
|
||||
timeout: 5 * 60 * 1000, // 全局超时时间
|
||||
paramsSerializer: {
|
||||
serialize: (params: any) => {
|
||||
return qs.stringify(params, {arrayFormat: 'repeat'});
|
||||
return qs.stringify(params, { arrayFormat: 'repeat' });
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -86,14 +86,14 @@ const handleResponse = (response: AxiosResponse<any>) => {
|
||||
service.interceptors.response.use(handleResponse, (error) => {
|
||||
const status = Number(error.response.status) || 200;
|
||||
if (status === 423) {
|
||||
return Promise.reject({msg: '"演示环境,仅供预览"'});
|
||||
return Promise.reject({ msg: '"演示环境,仅供预览"' });
|
||||
}
|
||||
|
||||
if (status === 424) {
|
||||
if (!reLoginConfirm) {
|
||||
reLoginConfirm = true;
|
||||
useMessageBox()
|
||||
.confirm('令牌状态已过期,请点击重新登录')
|
||||
.confirm('登录状态已过期,请点击重新登录')
|
||||
.then(() => {
|
||||
Session.clear(); // 清除浏览器全部临时缓存
|
||||
window.location.href = '/'; // 去登录页
|
||||
|
||||
@@ -2,7 +2,13 @@
|
||||
<div class="layout-padding">
|
||||
<div class="layout-padding-auto layout-padding-view">
|
||||
<div class="mb-5 flex" v-show="showSearch">
|
||||
<el-input class="max-w-60" v-model="state.queryForm.packageName" :placeholder="$t('platformPackage.inputNameTip')" clearable @keyup.enter="getDataList">
|
||||
<el-input
|
||||
class="max-w-60"
|
||||
v-model="state.queryForm.packageName"
|
||||
:placeholder="$t('platformPackage.inputNameTip')"
|
||||
clearable
|
||||
@keyup.enter="getDataList"
|
||||
>
|
||||
<template #append>
|
||||
<el-button icon="Search" @click="getDataList" />
|
||||
</template>
|
||||
@@ -52,10 +58,10 @@
|
||||
>
|
||||
{{ $t('common.delBtn') }}
|
||||
</el-button>
|
||||
|
||||
<!-- SPDM CODE 去掉导出
|
||||
:export="'platform_tenant_export'"
|
||||
@exportExcel="exportExcel" -->
|
||||
<right-toolbar
|
||||
:export="'platform_tenant_export'"
|
||||
@exportExcel="exportExcel"
|
||||
@queryTable="getDataList"
|
||||
class="ml10"
|
||||
style="float: right; margin-right: 20px"
|
||||
@@ -93,16 +99,16 @@
|
||||
</template>
|
||||
|
||||
<script lang="tsx" name="systemTenant" setup>
|
||||
import {ElButton} from 'element-plus';
|
||||
import {batchDeletePackage, deletePackages, fetchPackagePage, IPackage, IPackageQuery, queryPackage} from '/@/api/admin/package';
|
||||
import {BasicTableProps, useTable} from '/@/hooks/table';
|
||||
import {useMessage, useMessageBox} from '/@/hooks/message';
|
||||
import { ElButton } from 'element-plus';
|
||||
import { batchDeletePackage, deletePackages, fetchPackagePage, IPackage, IPackageQuery, queryPackage } from '/@/api/admin/package';
|
||||
import { BasicTableProps, useTable } from '/@/hooks/table';
|
||||
import { useMessage, useMessageBox } from '/@/hooks/message';
|
||||
import TableRender from '/@/components/TableRender/index.vue';
|
||||
import {ITableRenderColumn} from '/@/components/TableRender/types';
|
||||
import { ITableRenderColumn } from '/@/components/TableRender/types';
|
||||
|
||||
// 引入组件
|
||||
const FormDialog = defineAsyncComponent(() => import('./form.vue'));
|
||||
const {t} = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
// 定义变量内容
|
||||
const formDialogRef = ref();
|
||||
@@ -148,7 +154,7 @@ const tableColumns = computed<ITableRenderColumn<IPackage>[]>(() => [
|
||||
label: t('common.action'),
|
||||
width: 160,
|
||||
fixed: 'right',
|
||||
renderDefault: ({row}) => (
|
||||
renderDefault: ({ row }) => (
|
||||
<>
|
||||
<ElButton type="primary" size="small" link onClick={() => formDialogRef.value?.openDialog(row.packageId)}>
|
||||
{t('common.editBtn')}
|
||||
@@ -160,7 +166,7 @@ const tableColumns = computed<ITableRenderColumn<IPackage>[]>(() => [
|
||||
]);
|
||||
|
||||
// table hook
|
||||
const {getDataList, currentChangeHandle, sizeChangeHandle, downBlobFile, tableStyle} = useTable(state);
|
||||
const { getDataList, currentChangeHandle, sizeChangeHandle, downBlobFile, tableStyle } = useTable(state);
|
||||
|
||||
// 清空搜索条件
|
||||
const resetQuery = () => {
|
||||
@@ -175,12 +181,12 @@ const handleSelectable = (row: any) => {
|
||||
|
||||
// 导出excel
|
||||
const exportExcel = () => {
|
||||
downBlobFile('/admin/tenant/export', {...state.queryForm, ids: selectObjs}, 'tenant.xlsx');
|
||||
downBlobFile('/admin/tenant/export', { ...state.queryForm, ids: selectObjs }, 'tenant.xlsx');
|
||||
};
|
||||
|
||||
// 多选事件
|
||||
const handleSelectionChange = (objs: {id: string}[]) => {
|
||||
selectObjs.value = objs.map(({packageId}) => packageId);
|
||||
const handleSelectionChange = (objs: { id: string }[]) => {
|
||||
selectObjs.value = objs.map(({ packageId }) => packageId);
|
||||
multiple.value = !objs.length;
|
||||
};
|
||||
|
||||
|
||||
@@ -19,10 +19,19 @@
|
||||
<el-button icon="folder-add" type="primary" class="ml10" @click="roleDialogRef.openDialog()" v-auth="'tenant_role_add'">
|
||||
{{ $t('common.addBtn') }}
|
||||
</el-button>
|
||||
<el-button plain icon="upload-filled" type="primary" class="ml10" @click="excelUploadRef.show()" v-auth="'platform_user_add'">
|
||||
<!-- SPDM CODE -->
|
||||
<!-- <el-button plain icon="upload-filled" type="primary" class="ml10" @click="excelUploadRef.show()" v-auth="'platform_user_add'">
|
||||
{{ $t('common.importBtn') }}
|
||||
</el-button>
|
||||
<el-button plain :disabled="multiple" icon="Delete" type="primary" class="ml10" v-auth="'platform_user_del'" @click="handleDelete(selectObjs)">
|
||||
</el-button> -->
|
||||
<el-button
|
||||
plain
|
||||
:disabled="multiple"
|
||||
icon="Delete"
|
||||
type="primary"
|
||||
class="ml10"
|
||||
v-auth="'platform_user_del'"
|
||||
@click="handleDelete(selectObjs)"
|
||||
>
|
||||
{{ $t('common.delBtn') }}
|
||||
</el-button>
|
||||
<right-toolbar
|
||||
@@ -66,17 +75,17 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="tsx" name="systemRole">
|
||||
import {withDirectives, resolveDirective} from 'vue';
|
||||
import {ElButton, ElTooltip} from 'element-plus';
|
||||
import {BasicTableProps, useTable} from '/@/hooks/table';
|
||||
import {getTenantRolePage, deleteTenantRole, ITenantRole} from '/@/api/admin/role';
|
||||
import {useMessage, useMessageBox} from '/@/hooks/message';
|
||||
import {ITableRenderColumn} from '/@/components/TableRender/types';
|
||||
import { withDirectives, resolveDirective } from 'vue';
|
||||
import { ElButton, ElTooltip } from 'element-plus';
|
||||
import { BasicTableProps, useTable } from '/@/hooks/table';
|
||||
import { getTenantRolePage, deleteTenantRole, ITenantRole } from '/@/api/admin/role';
|
||||
import { useMessage, useMessageBox } from '/@/hooks/message';
|
||||
import { ITableRenderColumn } from '/@/components/TableRender/types';
|
||||
|
||||
// 引入组件
|
||||
const RoleDialog = defineAsyncComponent(() => import('./form.vue'));
|
||||
const Permission = defineAsyncComponent(() => import('./permession.vue'));
|
||||
const {t} = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
// 定义变量内容
|
||||
const roleDialogRef = ref();
|
||||
@@ -98,7 +107,7 @@ const state: BasicTableProps = reactive<BasicTableProps>({
|
||||
});
|
||||
|
||||
// table hook
|
||||
const {getDataList, currentChangeHandle, sizeChangeHandle, downBlobFile, tableStyle} = useTable(state);
|
||||
const { getDataList, currentChangeHandle, sizeChangeHandle, downBlobFile, tableStyle } = useTable(state);
|
||||
|
||||
const tableColumns = computed<ITableRenderColumn<ITenantRole>[]>(() => [
|
||||
{
|
||||
@@ -124,7 +133,7 @@ const tableColumns = computed<ITableRenderColumn<ITenantRole>[]>(() => [
|
||||
{
|
||||
label: t('common.action'),
|
||||
width: 250,
|
||||
renderDefault: ({row}) => {
|
||||
renderDefault: ({ row }) => {
|
||||
const directiveAuth = resolveDirective('auth');
|
||||
return (
|
||||
<>
|
||||
@@ -162,7 +171,7 @@ const resetQuery = () => {
|
||||
|
||||
// 导出excel
|
||||
const exportExcel = () => {
|
||||
downBlobFile('/tenant/sysRole/export', Object.assign(state.queryForm, {ids: selectObjs}), 'role.xlsx');
|
||||
downBlobFile('/tenant/sysRole/export', Object.assign(state.queryForm, { ids: selectObjs }), 'role.xlsx');
|
||||
};
|
||||
|
||||
// 是否可以多选
|
||||
@@ -171,8 +180,8 @@ const handleSelectable = (row: any) => {
|
||||
};
|
||||
|
||||
// 多选事件
|
||||
const handleSelectionChange = (objs: {roleId: string}[]) => {
|
||||
selectObjs.value = objs.map(({roleId}) => roleId);
|
||||
const handleSelectionChange = (objs: { roleId: string }[]) => {
|
||||
selectObjs.value = objs.map(({ roleId }) => roleId);
|
||||
multiple.value = !objs.length;
|
||||
};
|
||||
|
||||
|
||||
@@ -2,7 +2,13 @@
|
||||
<div class="layout-padding">
|
||||
<div class="layout-padding-auto layout-padding-view">
|
||||
<div class="mb-5 flex" v-show="showSearch">
|
||||
<el-input class="max-w-60" v-model="state.queryForm.companyName" :placeholder="$t('tenant.inputCompanyNameTip')" clearable @keyup.enter="getDataList">
|
||||
<el-input
|
||||
class="max-w-60"
|
||||
v-model="state.queryForm.companyName"
|
||||
:placeholder="$t('tenant.inputCompanyNameTip')"
|
||||
clearable
|
||||
@keyup.enter="getDataList"
|
||||
>
|
||||
<template #append>
|
||||
<el-button icon="Search" @click="getDataList" />
|
||||
</template>
|
||||
@@ -59,10 +65,11 @@
|
||||
>
|
||||
{{ $t('common.delBtn') }}
|
||||
</el-button>
|
||||
|
||||
<right-toolbar
|
||||
:export="'platform_tenant_export'"
|
||||
<!-- SPDM CODE 去掉导出:
|
||||
:export="'platform_tenant_export'"
|
||||
@exportExcel="exportExcel"
|
||||
-->
|
||||
<right-toolbar
|
||||
@queryTable="getDataList"
|
||||
class="ml10"
|
||||
style="float: right; margin-right: 20px"
|
||||
@@ -105,20 +112,20 @@
|
||||
</template>
|
||||
|
||||
<script lang="tsx" name="systemTenant" setup>
|
||||
import {resolveDirective, withDirectives} from 'vue';
|
||||
import {ElButton, ElTooltip} from 'element-plus';
|
||||
import {DictTag, TableRender} from '/@/components';
|
||||
import {ITableRenderColumn} from '/@/components/TableRender/types';
|
||||
import {useMessage, useMessageBox} from '/@/hooks/message';
|
||||
import {BasicTableProps, useTable} from '/@/hooks/table';
|
||||
import {delTenants, fetchTenantPage, ITenant, ITenantQuery, queryTenant} from '/@/api/admin/tenant';
|
||||
import {UserStatusOptions, UserStatusOptionsQuery} from '/@/api/admin/userManage';
|
||||
import { resolveDirective, withDirectives } from 'vue';
|
||||
import { ElButton, ElTooltip } from 'element-plus';
|
||||
import { DictTag, TableRender } from '/@/components';
|
||||
import { ITableRenderColumn } from '/@/components/TableRender/types';
|
||||
import { useMessage, useMessageBox } from '/@/hooks/message';
|
||||
import { BasicTableProps, useTable } from '/@/hooks/table';
|
||||
import { delTenants, fetchTenantPage, ITenant, ITenantQuery, queryTenant } from '/@/api/admin/tenant';
|
||||
import { UserStatusOptions, UserStatusOptionsQuery } from '/@/api/admin/userManage';
|
||||
|
||||
// 引入组件
|
||||
const FormDialog = defineAsyncComponent(() => import('./form.vue'));
|
||||
const Individuation = defineAsyncComponent(() => import('./individuation.vue'));
|
||||
const TenantPackage = defineAsyncComponent(() => import('./package.vue'));
|
||||
const {t} = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
// 定义变量内容
|
||||
const formDialogRef = shallowRef<InstanceType<typeof FormDialog>>();
|
||||
@@ -139,7 +146,7 @@ const state: BasicTableProps<ITenantQuery> = reactive<BasicTableProps>({
|
||||
});
|
||||
|
||||
// table hook
|
||||
const {getDataList, currentChangeHandle, sizeChangeHandle, downBlobFile, tableStyle} = useTable(state);
|
||||
const { getDataList, currentChangeHandle, sizeChangeHandle, downBlobFile, tableStyle } = useTable(state);
|
||||
|
||||
const tableColumns = computed<ITableRenderColumn<ITenant>[]>(() => [
|
||||
{
|
||||
@@ -174,14 +181,14 @@ const tableColumns = computed<ITableRenderColumn<ITenant>[]>(() => [
|
||||
{
|
||||
label: t('tenant.status'),
|
||||
prop: 'status',
|
||||
renderDefault: ({row}) => {
|
||||
renderDefault: ({ row }) => {
|
||||
return <DictTag options={UserStatusOptions} value={row.status} i18n></DictTag>;
|
||||
},
|
||||
},
|
||||
{
|
||||
label: t('common.action'),
|
||||
width: 250,
|
||||
renderDefault: ({row}) => {
|
||||
renderDefault: ({ row }) => {
|
||||
return (
|
||||
<>
|
||||
<ElButton icon="edit-pen" onClick={() => formDialogRef.value?.openDialog(row.tenantId)} text type="primary">
|
||||
@@ -215,12 +222,12 @@ const resetQuery = () => {
|
||||
|
||||
// 导出excel
|
||||
const exportExcel = () => {
|
||||
downBlobFile('/admin/tenant/export', Object.assign(state.queryForm, {ids: selectObjs}), 'tenant.xlsx');
|
||||
downBlobFile('/admin/tenant/export', Object.assign(state.queryForm, { ids: selectObjs }), 'tenant.xlsx');
|
||||
};
|
||||
|
||||
// 多选事件
|
||||
const handleSelectionChange = (objs: {id: string}[]) => {
|
||||
selectObjs.value = objs.map(({tenantId}) => tenantId);
|
||||
const handleSelectionChange = (objs: { id: string }[]) => {
|
||||
selectObjs.value = objs.map(({ tenantId }) => tenantId);
|
||||
multiple.value = !objs.length;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,18 +1,24 @@
|
||||
<template>
|
||||
<div class="layout-padding-auto layout-padding-view">
|
||||
<div class="mb-5">
|
||||
<el-input v-model="queryForm.nickname" style="max-width: 300px" :placeholder="$t('staffManage.inputNickNameTip')" class="input-with-select" @keyup.enter="queryStaffs">
|
||||
<el-input
|
||||
v-model="queryForm.nickname"
|
||||
style="max-width: 300px"
|
||||
:placeholder="$t('staffManage.inputNickNameTip')"
|
||||
class="input-with-select"
|
||||
@keyup.enter="queryStaffs"
|
||||
>
|
||||
<template #append>
|
||||
<el-button :icon="Search" @click="queryStaffs" />
|
||||
</template>
|
||||
</el-input>
|
||||
|
||||
<el-popover :width="400" trigger="click" :teleported="false" v-model:visible="visible">
|
||||
<template #reference>
|
||||
<!-- <template #reference>
|
||||
<el-button class="ml-5" text>
|
||||
<i class="mdi mdi-filter-outline text-xl"></i>
|
||||
</el-button>
|
||||
</template>
|
||||
</template> -->
|
||||
<div>
|
||||
<header class="flex justify-between items-center px-3">
|
||||
<h3>{{ $t('staffManage.filter') }}</h3>
|
||||
@@ -97,11 +103,11 @@
|
||||
</template>
|
||||
|
||||
<script lang="tsx" setup>
|
||||
import {Audit, changeStatus, deleteStaff, getStaffList, IStaff, IStaffQuery, StaffStatusEnum, StaffStatusMap} from '/@/api/admin/staffManage';
|
||||
import {ITableRenderColumn} from '/@/components/TableRender/types';
|
||||
import {formatTimestamp} from '/@/utils/formatTime';
|
||||
import {Search} from '@element-plus/icons-vue';
|
||||
import {ElButton} from 'element-plus';
|
||||
import { Audit, changeStatus, deleteStaff, getStaffList, IStaff, IStaffQuery, StaffStatusEnum, StaffStatusMap } from '/@/api/admin/staffManage';
|
||||
import { ITableRenderColumn } from '/@/components/TableRender/types';
|
||||
import { formatTimestamp } from '/@/utils/formatTime';
|
||||
import { Search } from '@element-plus/icons-vue';
|
||||
import { ElButton } from 'element-plus';
|
||||
import EditForm from './editForm.vue';
|
||||
import InviteForm from './inviteForm.vue';
|
||||
import { useMessage, useMessageBox } from '/@/hooks/message';
|
||||
@@ -117,8 +123,8 @@ const inviteFormRef = ref<InstanceType<typeof InviteForm>>();
|
||||
const visible = ref(false);
|
||||
const props = defineProps<{
|
||||
deptId?: string;
|
||||
posts: {postId: string; postName: string}[];
|
||||
roles: {roleId: string; roleName: string}[];
|
||||
posts: { postId: string; postName: string }[];
|
||||
roles: { roleId: string; roleName: string }[];
|
||||
}>();
|
||||
const pagination = reactive({
|
||||
current: 1,
|
||||
@@ -164,9 +170,9 @@ const queryParams = ref<IStaffQuery>({
|
||||
size: 10,
|
||||
});
|
||||
const statusType = [
|
||||
{label: t(`staffManage.all`), value: ''},
|
||||
{label: t(`staffManage.unlocked`), value: StaffStatusEnum.UNLOCKED},
|
||||
{label: t(`staffManage.locked`), value: StaffStatusEnum.LOCKED},
|
||||
{ label: t(`staffManage.all`), value: '' },
|
||||
{ label: t(`staffManage.unlocked`), value: StaffStatusEnum.UNLOCKED },
|
||||
{ label: t(`staffManage.locked`), value: StaffStatusEnum.LOCKED },
|
||||
];
|
||||
const tableData = ref<IStaff[]>([]);
|
||||
const tableColumns = computed<ITableRenderColumn<IStaff & Audit>[]>(() => [
|
||||
@@ -174,7 +180,8 @@ const tableColumns = computed<ITableRenderColumn<IStaff & Audit>[]>(() => [
|
||||
label: '',
|
||||
type: 'index',
|
||||
},
|
||||
{ // SPDM CODE
|
||||
{
|
||||
// SPDM CODE
|
||||
label: t('staffManage.username'),
|
||||
prop: 'username',
|
||||
},
|
||||
@@ -211,30 +218,32 @@ const tableColumns = computed<ITableRenderColumn<IStaff & Audit>[]>(() => [
|
||||
return row.roles.map((roleId: string) => (props.roles.filter((role) => role.roleId === roleId)[0] || {}).roleName).join(',');
|
||||
},
|
||||
},
|
||||
{
|
||||
label: t('staffManage.status'),
|
||||
prop: 'status',
|
||||
formatter: (row: IStaff) => {
|
||||
return t(`staffManage.${StaffStatusMap[row.status]}`);
|
||||
},
|
||||
},
|
||||
// SPDM CODE
|
||||
// {
|
||||
// label: t('staffManage.status'),
|
||||
// prop: 'status',
|
||||
// formatter: (row: IStaff) => {
|
||||
// return t(`staffManage.${StaffStatusMap[row.status]}`);
|
||||
// },
|
||||
// },
|
||||
|
||||
{
|
||||
label: t('common.action'),
|
||||
fixed: 'right',
|
||||
width: 200,
|
||||
renderDefault: ({row}: {row: IStaff}) => {
|
||||
renderDefault: ({ row }: { row: IStaff }) => {
|
||||
return (
|
||||
<>
|
||||
<ElButton type="primary" link onClick={() => updateStaff(row.staffId)}>
|
||||
{ t('common.editBtn')}
|
||||
</ElButton>
|
||||
<ElButton type="primary" link onClick={() => handleChangeStatus(row.staffId, row.status)}>
|
||||
{row.status === StaffStatusEnum.UNLOCKED ? t('staffManage.lock') : t('staffManage.unlock')}
|
||||
{t('common.editBtn')}
|
||||
</ElButton>
|
||||
|
||||
{/* // SPDM CODE <ElButton type="primary" link onClick={() => handleChangeStatus(row.staffId, row.status)}>
|
||||
{row.status === StaffStatusEnum.UNLOCKED ? t('staffManage.lock') : t('staffManage.unlock')}
|
||||
</ElButton> */}
|
||||
|
||||
<ElButton type="primary" link onClick={() => handleDelete(row.staffId)}>
|
||||
{ t('common.delBtn')}
|
||||
{t('common.delBtn')}
|
||||
</ElButton>
|
||||
</>
|
||||
);
|
||||
@@ -243,16 +252,16 @@ const tableColumns = computed<ITableRenderColumn<IStaff & Audit>[]>(() => [
|
||||
]);
|
||||
const currentChangeHandle = (value: number) => {
|
||||
pagination.current = value;
|
||||
const {current, size, ...rest} = queryParams.value;
|
||||
queryParams.value = {...rest, size, current: value};
|
||||
const { current, size, ...rest } = queryParams.value;
|
||||
queryParams.value = { ...rest, size, current: value };
|
||||
|
||||
getDataList();
|
||||
};
|
||||
|
||||
const sizeChangeHandle = (value: number) => {
|
||||
pagination.size = value;
|
||||
const {current, size, ...rest} = queryParams.value;
|
||||
queryParams.value = {...rest, size: value, current: 1};
|
||||
const { current, size, ...rest } = queryParams.value;
|
||||
queryParams.value = { ...rest, size: value, current: 1 };
|
||||
getDataList();
|
||||
};
|
||||
const resetFields = () => {
|
||||
@@ -264,7 +273,7 @@ const resetFields = () => {
|
||||
getDataList();
|
||||
};
|
||||
const tableStyle = {
|
||||
cellStyle: {textAlign: 'center'},
|
||||
cellStyle: { textAlign: 'center' },
|
||||
headerCellStyle: {
|
||||
textAlign: 'center',
|
||||
background: 'var(--el-table-row-hover-bg-color)',
|
||||
@@ -273,16 +282,16 @@ const tableStyle = {
|
||||
};
|
||||
|
||||
const queryStaffs = () => {
|
||||
const {size} = queryParams.value;
|
||||
const { size } = queryParams.value;
|
||||
|
||||
const {phone, nickname, email, status, roles, posts} = queryForm.value;
|
||||
const { phone, nickname, email, status, roles, posts } = queryForm.value;
|
||||
const params: IStaffQuery = {
|
||||
...(phone && {phone}),
|
||||
...(nickname && {nickname}),
|
||||
...(email && {email}),
|
||||
...(status && {status}),
|
||||
...(roles.length && {roles}),
|
||||
...(posts.length && {posts}),
|
||||
...(phone && { phone }),
|
||||
...(nickname && { nickname }),
|
||||
...(email && { email }),
|
||||
...(status && { status }),
|
||||
...(roles.length && { roles }),
|
||||
...(posts.length && { posts }),
|
||||
size,
|
||||
current: 1,
|
||||
};
|
||||
@@ -298,8 +307,8 @@ const getDataList = async () => {
|
||||
pagination.current = data.current;
|
||||
pagination.total = data.total;
|
||||
tableData.value = data.records.map((item: any) => {
|
||||
const {postList, roleList, email, status, staffId, userInfo, deptList} = item;
|
||||
const {phone, nickname, username} = userInfo;
|
||||
const { postList, roleList, email, status, staffId, userInfo, deptList } = item;
|
||||
const { phone, nickname, username } = userInfo;
|
||||
const posts = postList.map((post: any) => post.postId);
|
||||
const roles = roleList.map((role: any) => role.roleId);
|
||||
const depts = deptList;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<div class="widgets-top">
|
||||
<div class="flex justify-end custom_btn">
|
||||
<el-button v-if="customizing" type="primary" round @click="save">{{ $t('widgets.index.0910663-0') }}</el-button>
|
||||
<!-- <el-button v-else type="primary" round @click="custom">{{ $t('Crontab.index.7634731-6') }}</el-button> -->
|
||||
<el-button v-else type="primary" round @click="custom">{{ $t('Crontab.index.7634731-6') }}</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div ref="widgets" class="widgets">
|
||||
@@ -321,24 +321,24 @@ const allComponentList = computed(() => {
|
||||
const myCompsList = computed(() => {
|
||||
// 支持列表 SPDM CODE
|
||||
const myGrid = [
|
||||
'docking-tianyu',
|
||||
'docking-zw-3d',
|
||||
'docking-intesim-cae',
|
||||
'calendar',
|
||||
'current-user',
|
||||
'news',
|
||||
'audit-log',
|
||||
'sys-log',
|
||||
'flow-data',
|
||||
// 'docking-tianyu',
|
||||
// 'docking-zw-3d',
|
||||
// 'docking-intesim-cae',
|
||||
// 'calendar',
|
||||
// 'current-user',
|
||||
// 'news',
|
||||
// 'audit-log',
|
||||
// 'sys-log',
|
||||
// 'flow-data',
|
||||
// 'favorite-flow',
|
||||
// 'sys-log-line',
|
||||
// 'demo-chart1',
|
||||
// 'demo-chart2',
|
||||
// 'task-info',
|
||||
// 'task-list',
|
||||
// 'task-compare-chart',
|
||||
// 'task-trend-chart',
|
||||
'favorite-menu',
|
||||
'favorite-flow',
|
||||
'sys-log-line',
|
||||
'demo-chart1',
|
||||
'demo-chart2',
|
||||
'task-info',
|
||||
'task-list',
|
||||
'task-compare-chart',
|
||||
'task-trend-chart',
|
||||
'TaskMessage',
|
||||
'TaskList',
|
||||
'ToDoCalendar',
|
||||
|
||||
@@ -9,10 +9,21 @@
|
||||
hide-required-asterisk
|
||||
@keyup.enter="handleVerify"
|
||||
>
|
||||
<el-form-item class="login-animation1" prop="username" :label="$t('password.phoneAndJobCodeLabel')">
|
||||
<el-input text :placeholder="$t('password.phoneAndJobCodePlaceholder')" v-model="state.ruleForm.username" clearable autocomplete="off">
|
||||
<el-form-item
|
||||
class="login-animation1"
|
||||
prop="username"
|
||||
:label="['lyric-intranet'].includes(CODE_ENV) ? $t('password.jobCodeLabel') : $t('password.phoneAndJobCodeLabel')"
|
||||
>
|
||||
<el-input
|
||||
text
|
||||
:placeholder="['lyric-intranet'].includes(CODE_ENV) ? $t('password.jobCodePlaceholder') : $t('password.phoneAndJobCodePlaceholder')"
|
||||
v-model="state.ruleForm.username"
|
||||
clearable
|
||||
autocomplete="off"
|
||||
>
|
||||
<template #prefix>
|
||||
<el-icon class="el-input__icon">
|
||||
<img v-if="['lyric-intranet'].includes(CODE_ENV)" src="/@/assets/login/job.png" class="job-img" />
|
||||
<el-icon v-else class="el-input__icon">
|
||||
<ele-User />
|
||||
</el-icon>
|
||||
</template>
|
||||
@@ -111,6 +122,7 @@ import { uploadFormat } from '/@/utils/commonFunction';
|
||||
import { Session } from '/@/utils/storage';
|
||||
import { useLocalStorage } from '@vueuse/core';
|
||||
import { enableConfigByTenant } from '/@/spdm/utils/index'; // SPDM CODE
|
||||
import { CODE_ENV } from '/@/spdm/config';
|
||||
|
||||
const props = defineProps({
|
||||
showBrowserMsgText: {
|
||||
@@ -240,4 +252,8 @@ onMounted(() => {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
.job-img {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user