From adeebee840065e609da0e879b44913420db027bf Mon Sep 17 00:00:00 2001
From: JEECG <445654970@qq.com>
Date: Sun, 14 Sep 2025 10:24:02 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90v3.8.3=E3=80=91=E7=94=A8=E6=88=B7?=
=?UTF-8?q?=E5=A4=A7=E6=94=B9=E9=80=A0=EF=BC=8C=E5=8F=96=E6=B6=88=E5=8E=9F?=
=?UTF-8?q?=E8=81=8C=E4=BD=8D=E6=8D=A2=E6=88=90=E8=81=8C=E4=BD=8D=E5=AD=97?=
=?UTF-8?q?=E5=85=B8=E3=80=81=E5=8E=9F=E8=81=8C=E4=BD=8D=E6=94=B9=E6=88=90?=
=?UTF-8?q?=E5=B2=97=E4=BD=8D=E8=81=8C=E7=BA=A7=E3=80=81=E6=96=B0=E5=A2=9E?=
=?UTF-8?q?=E4=B8=BB=E5=B2=97=E4=BD=8D=E5=92=8C=E5=85=BC=E8=81=8C=E5=B2=97?=
=?UTF-8?q?=E4=BD=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/views/system/user/UserAgentModal.vue | 71 -------
.../src/views/system/user/UserDrawer.vue | 20 ++
.../views/system/user/UserQuitAgentModal.vue | 81 --------
.../user/components/ImportExcelProgress.vue | 193 ++++++++++++++++++
.../src/views/system/user/index.vue | 32 +--
.../src/views/system/user/user.api.ts | 32 ---
.../src/views/system/user/user.data.ts | 188 ++++++-----------
7 files changed, 277 insertions(+), 340 deletions(-)
delete mode 100644 jeecgboot-vue3/src/views/system/user/UserAgentModal.vue
delete mode 100644 jeecgboot-vue3/src/views/system/user/UserQuitAgentModal.vue
create mode 100644 jeecgboot-vue3/src/views/system/user/components/ImportExcelProgress.vue
diff --git a/jeecgboot-vue3/src/views/system/user/UserAgentModal.vue b/jeecgboot-vue3/src/views/system/user/UserAgentModal.vue
deleted file mode 100644
index ff505ac79..000000000
--- a/jeecgboot-vue3/src/views/system/user/UserAgentModal.vue
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
-
-
- 删除代理
-
-
-
-
-
diff --git a/jeecgboot-vue3/src/views/system/user/UserDrawer.vue b/jeecgboot-vue3/src/views/system/user/UserDrawer.vue
index 34aed026b..b38248735 100644
--- a/jeecgboot-vue3/src/views/system/user/UserDrawer.vue
+++ b/jeecgboot-vue3/src/views/system/user/UserDrawer.vue
@@ -139,6 +139,26 @@
//update-begin-author:taoyan date:2022-5-24 for: VUEN-1117【issue】0523周开源问题
setProps({ disabled: !showFooter.value });
//update-end-author:taoyan date:2022-5-24 for: VUEN-1117【issue】0523周开源问题
+ if(unref(isUpdate)){
+ updateSchema([
+ //修改主岗位和兼职岗位的参数
+ {
+ field: 'mainDepPostId',
+ componentProps: { params: { departIds: data.record.selecteddeparts, parentId: data.record.selecteddeparts } },
+ },
+ {
+ field: 'otherDepPostId',
+ componentProps: { params: { departIds: data.record.selecteddeparts, parentId: data.record.selecteddeparts } },
+ }
+ ]);
+ }
+ //部门管理,新增用户,在岗位下添加人员的时候默认当前岗位为主岗位
+ updateSchema([
+ {
+ field: 'mainDepPostId',
+ defaultValue: data?.mainDepPostId || '',
+ }
+ ])
});
//获取标题
const getTitle = computed(() => {
diff --git a/jeecgboot-vue3/src/views/system/user/UserQuitAgentModal.vue b/jeecgboot-vue3/src/views/system/user/UserQuitAgentModal.vue
deleted file mode 100644
index a1bc4d330..000000000
--- a/jeecgboot-vue3/src/views/system/user/UserQuitAgentModal.vue
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
-
-
-
diff --git a/jeecgboot-vue3/src/views/system/user/components/ImportExcelProgress.vue b/jeecgboot-vue3/src/views/system/user/components/ImportExcelProgress.vue
new file mode 100644
index 000000000..e0b895003
--- /dev/null
+++ b/jeecgboot-vue3/src/views/system/user/components/ImportExcelProgress.vue
@@ -0,0 +1,193 @@
+
+
+
+ {{ btnText }}
+
+
+ 导入中
+
+
+
+
+
+
当前上传文件:
+
{{ fileName }}
+
+
+
+
+
+
+
+
+
+
diff --git a/jeecgboot-vue3/src/views/system/user/index.vue b/jeecgboot-vue3/src/views/system/user/index.vue
index 8970f7e60..fade40b15 100644
--- a/jeecgboot-vue3/src/views/system/user/index.vue
+++ b/jeecgboot-vue3/src/views/system/user/index.vue
@@ -5,8 +5,9 @@
新增
- 导出
- 导入
+ 导出
+
+
回收站
@@ -40,12 +41,8 @@
-
-
-
-
@@ -58,9 +55,7 @@
import UserDrawer from './UserDrawer.vue';
import UserRecycleBinModal from './UserRecycleBinModal.vue';
import PasswordModal from './PasswordModal.vue';
- import UserAgentModal from './UserAgentModal.vue';
import JThirdAppButton from '/@/components/jeecg/thirdApp/JThirdAppButton.vue';
- import UserQuitAgentModal from './UserQuitAgentModal.vue';
import UserQuitModal from './UserQuitModal.vue';
import { useDrawer } from '/@/components/Drawer';
import { useListPage } from '/@/hooks/system/useListPage';
@@ -68,7 +63,8 @@
import { useMessage } from '/@/hooks/web/useMessage';
import { columns, searchFormSchema } from './user.data';
import { listNoCareTenant, deleteUser, batchDeleteUser, getImportUrl, getExportUrl, frozenBatch } from './user.api';
- import {usePermission} from "/@/hooks/web/usePermission";
+ import { usePermission } from '/@/hooks/web/usePermission';
+ import ImportExcelProgress from './components/ImportExcelProgress.vue';
const { createMessage, createConfirm } = useMessage();
const { isDisabledAuth } = usePermission();
@@ -185,12 +181,6 @@
function handleChangePassword(username) {
openPasswordModal(true, { username });
}
- /**
- * 打开代理人弹窗
- */
- function handleAgentSettings(userName) {
- openAgentModal(true, { userName });
- }
/**
* 冻结解冻
*/
@@ -279,21 +269,9 @@
confirm: handleFrozen.bind(null, record, 1),
},
},
- {
- label: '代理人',
- onClick: handleAgentSettings.bind(null, record.username),
- },
];
}
- /**
- * 离职
- * @param userName
- */
- function handleQuit(userName) {
- //打开离职代理人弹窗
- openQuitAgentModal(true, { userName });
- }
diff --git a/jeecgboot-vue3/src/views/system/user/user.api.ts b/jeecgboot-vue3/src/views/system/user/user.api.ts
index 11b197ce8..09c7ace90 100644
--- a/jeecgboot-vue3/src/views/system/user/user.api.ts
+++ b/jeecgboot-vue3/src/views/system/user/user.api.ts
@@ -6,9 +6,6 @@ enum Api {
list = '/sys/user/list',
save = '/sys/user/add',
edit = '/sys/user/edit',
- agentSave = '/sys/sysUserAgent/add',
- agentEdit = '/sys/sysUserAgent/edit',
- deleteAgent = '/sys/sysUserAgent/delete',
getUserRole = '/sys/user/queryUserRole',
duplicateCheck = '/sys/duplicate/check',
deleteUser = '/sys/user/delete',
@@ -196,36 +193,7 @@ export const frozenBatch = (params, handleSuccess) => {
handleSuccess();
});
};
-/**
- * 获取用户代理
- * @param params
- */
-export const getUserAgent = (params) => defHttp.get({ url: Api.getUserAgent, params }, { isTransformResponse: false });
-/**
- * 保存或者更新用户代理
- * @param params
- */
-export const saveOrUpdateAgent = (params) => {
- let url = params.id ? Api.agentEdit : Api.agentSave;
- return defHttp.post({ url: url, params });
-};
-/**
- * 代理删除
- * @param params
- */
-export const deleteAgent = (params, handleSuccess) => {
- return defHttp.delete({ url: Api.deleteAgent, params }, { joinParamsToUrl: true }).then(() => {
- handleSuccess();
- });
-};
-/**
- * 用户离职(新增代理人和用户状态变更操作)
- * @param params
- */
-export const userQuitAgent = (params) => {
- return defHttp.put({ url: Api.userQuitAgent, params });
-};
/**
* 用户离职列表
diff --git a/jeecgboot-vue3/src/views/system/user/user.data.ts b/jeecgboot-vue3/src/views/system/user/user.data.ts
index 6930b3a22..620661ace 100644
--- a/jeecgboot-vue3/src/views/system/user/user.data.ts
+++ b/jeecgboot-vue3/src/views/system/user/user.data.ts
@@ -49,6 +49,11 @@ export const columns: BasicColumn[] = [
width: 150,
dataIndex: 'departIds_dictText',
},
+ {
+ title: '主岗位',
+ width: 150,
+ dataIndex: 'mainDepPostId_dictText',
+ },
{
title: '状态',
dataIndex: 'status_dictText',
@@ -177,11 +182,11 @@ export const formSchema: FormSchema[] = [
{
label: '工号',
field: 'workNo',
- required: true,
+ required: false,
component: 'Input',
- dynamicRules: ({ model, schema }) => rules.duplicateCheckRule('sys_user', 'work_no', model, schema, true),
+ dynamicRules: ({ model, schema }) => rules.duplicateCheckRule('sys_user', 'work_no', model, schema, false),
},
- {
+/* {
label: '职务',
field: 'post',
required: false,
@@ -189,6 +194,15 @@ export const formSchema: FormSchema[] = [
componentProps: {
labelKey: 'name',
},
+ },*/
+ {
+ label: '职务',
+ field: 'positionType',
+ required: false,
+ component: 'JDictSelectTag',
+ componentProps: {
+ dictCode: "user_position"
+ },
},
{
label: '角色',
@@ -220,10 +234,21 @@ export const formSchema: FormSchema[] = [
field: 'departIds',
componentProps: { options },
},
+ //修改主岗位和兼职岗位的参数
+ {
+ field: 'mainDepPostId',
+ componentProps: { params: { departIds: values?values.value.join(","): "" } },
+ },
+ {
+ field: 'otherDepPostId',
+ componentProps: { params: { departIds: values?values.value.join(","): "" } },
+ }
]);
//update-begin---author:wangshuai---date:2024-05-11---for:【issues/1222】用户编辑界面“所属部门”与“负责部门”联动出错整---
if(!values){
formModel.departIds = [];
+ formModel.mainDepPostId = "";
+ formModel.otherDepPostId = "";
return;
}
//update-end---author:wangshuai---date:2024-05-11---for:【issues/1222】用户编辑界面“所属部门”与“负责部门”联动出错整---
@@ -233,6 +258,35 @@ export const formSchema: FormSchema[] = [
};
},
},
+ {
+ label: '主岗位',
+ field: 'mainDepPostId',
+ component: 'JSelectDepartPost',
+ componentProps: {
+ rowKey: 'id',
+ multiple: false
+ },
+ ifShow: ({ values }) => {
+ if(!values.selecteddeparts){
+ return false;
+ }
+ return !(values.selecteddeparts instanceof Array && values.selecteddeparts.length == 0);
+ },
+ },
+ {
+ label: '兼职岗位',
+ field: 'otherDepPostId',
+ component: 'JSelectDepartPost',
+ componentProps: {
+ rowKey: 'id',
+ },
+ ifShow: ({ values }) => {
+ if(!values.selecteddeparts){
+ return false;
+ }
+ return !(values.selecteddeparts instanceof Array && values.selecteddeparts.length == 0);
+ },
+ },
{
label: '租户',
field: 'relTenantIds',
@@ -296,10 +350,10 @@ export const formSchema: FormSchema[] = [
label: '邮箱',
field: 'email',
component: 'Input',
- required: true,
+ required: false,
dynamicRules: ({ model, schema }) => {
return [
- { ...rules.duplicateCheckRule('sys_user', 'email', model, schema, true)[0], trigger: 'blur' },
+ { ...rules.duplicateCheckRule('sys_user', 'email', model, schema, false)[0], trigger: 'blur' },
{ ...rules.rule('email', false)[0], trigger: 'blur' },
];
},
@@ -368,131 +422,7 @@ export const formPasswordSchema: FormSchema[] = [
},
];
-export const formAgentSchema: FormSchema[] = [
- {
- label: '',
- field: 'id',
- component: 'Input',
- show: false,
- },
- {
- field: 'userName',
- label: '用户名',
- component: 'Input',
- componentProps: {
- readOnly: true,
- allowClear: false,
- },
- },
- {
- field: 'agentUserName',
- label: '代理人用户名',
- required: true,
- component: 'JSelectUser',
- componentProps: {
- rowKey: 'username',
- labelKey: 'realname',
- maxSelectCount: 10,
- },
- },
- {
- field: 'startTime',
- label: '代理开始时间',
- component: 'DatePicker',
- required: true,
- componentProps: {
- showTime: true,
- valueFormat: 'YYYY-MM-DD HH:mm:ss',
- placeholder: '请选择代理开始时间',
- getPopupContainer: () => document.body,
- },
- },
- {
- field: 'endTime',
- label: '代理结束时间',
- component: 'DatePicker',
- required: true,
- componentProps: {
- showTime: true,
- valueFormat: 'YYYY-MM-DD HH:mm:ss',
- placeholder: '请选择代理结束时间',
- getPopupContainer: () => document.body,
- },
- },
- {
- field: 'status',
- label: '状态',
- component: 'JDictSelectTag',
- defaultValue: '1',
- componentProps: {
- dictCode: 'valid_status',
- type: 'radioButton',
- },
- },
-];
-export const formQuitAgentSchema: FormSchema[] = [
- {
- label: '',
- field: 'id',
- component: 'Input',
- show: false,
- },
- {
- field: 'userName',
- label: '用户名',
- component: 'Input',
- componentProps: {
- readOnly: true,
- allowClear: false,
- },
- },
- {
- field: 'agentUserName',
- label: '交接人员',
- //required: true,
- component: 'JSelectUser',
- componentProps: {
- rowKey: 'username',
- labelKey: 'realname',
- maxSelectCount: 1,
- },
- },
- {
- field: 'startTime',
- label: '交接开始时间',
- component: 'DatePicker',
- //required: true,
- componentProps: {
- showTime: true,
- valueFormat: 'YYYY-MM-DD HH:mm:ss',
- placeholder: '请选择交接开始时间',
- getPopupContainer: () => document.body,
- },
- },
- {
- field: 'endTime',
- label: '交接结束时间',
- component: 'DatePicker',
- //required: true,
- componentProps: {
- showTime: true,
- valueFormat: 'YYYY-MM-DD HH:mm:ss',
- placeholder: '请选择交接结束时间',
- getPopupContainer: () => document.body,
- },
- },
- {
- field: 'status',
- label: '状态',
- component: 'JDictSelectTag',
- defaultValue: '1',
- componentProps: {
- dictCode: 'valid_status',
- type: 'radioButton',
- },
- },
-];
//租户用户列表
export const userTenantColumns: BasicColumn[] = [