From 7faf1532a00bb886860ea5150cf80939b0b69f81 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 20 十月 2025 16:32:22 +0800
Subject: [PATCH] fix: bug
---
src/views/FlexJobManage/FlexJobManage.vue | 44 ++++++++++++++
src/services/api/enterpriseEmployee.ts | 18 ++++++
src/services/api/typings.d.ts | 57 +++++++++++++++++++
src/views/UserManage/UserManageList.vue | 33 ++++++++++
4 files changed, 150 insertions(+), 2 deletions(-)
diff --git a/src/services/api/enterpriseEmployee.ts b/src/services/api/enterpriseEmployee.ts
index 286ed8a..622e474 100644
--- a/src/services/api/enterpriseEmployee.ts
+++ b/src/services/api/enterpriseEmployee.ts
@@ -2,6 +2,24 @@
// @ts-ignore
import { request } from '@/utils/request';
+/** 浼佷笟鎵归噺绛剧害鍚堝悓 POST /api/user/enterpriseEmployee/batchEnterpriseSignContract */
+export async function batchEnterpriseSignContract(
+ body: API.BatchEnterpriseSignContractCommand,
+ options?: API.RequestConfig
+) {
+ return request<API.BatchEnterpriseSignContractCommandResult>(
+ '/api/user/enterpriseEmployee/batchEnterpriseSignContract',
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ }
+ );
+}
+
/** 缂栬緫鐏靛伐淇℃伅 POST /api/user/enterpriseEmployee/editEnterpriseEmployee */
export async function editEnterpriseEmployee(
body: API.EditEnterpriseEmployeeCommand,
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index b417c8a..26fed29 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -398,6 +398,29 @@
address?: string;
}
+ interface BatchEnterpriseSignContractCommand {
+ /** 鐏靛伐Id */
+ ids?: string[];
+ }
+
+ interface BatchEnterpriseSignContractCommandResult {
+ /** 绛剧害鎴愬姛鐏靛伐Id */
+ successIds?: string[];
+ /** 绛剧害澶辫触鐨勭伒宸ヤ俊鎭� */
+ errors?: BatchEnterpriseSignContractCommandResultError[];
+ }
+
+ interface BatchEnterpriseSignContractCommandResultError {
+ /** 濮撳悕 */
+ name?: string;
+ /** 鎵嬫満鍙� */
+ contactPhoneNumber?: string;
+ /** 韬唤璇佸彿 */
+ identity?: string;
+ /** 閿欒娑堟伅 */
+ errorMessages?: string;
+ }
+
interface BindWxmpUserInfoCommand {
/** 璁块棶浠ょ墝 */
accessToken: string;
@@ -446,6 +469,10 @@
interface CheckReceiveTaskCommand {
/** 鎻愪氦Id */
id?: string;
+ /** 浠诲姟浜哄憳Id */
+ taskInfoUserId?: string;
+ /** 鏃ユ湡 */
+ date?: string;
/** 绛惧埌鏃堕棿 */
checkInTime?: string;
/** 绛惧嚭鏃堕棿 */
@@ -1354,6 +1381,24 @@
interface ExportTaskSettlementOrderRostersCommand {
/** 缁撶畻璁㈠崟Id */
id?: string;
+ }
+
+ interface FriendlyResultBatchEnterpriseSignContractCommandResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: BatchEnterpriseSignContractCommandResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
}
interface FriendlyResultBoolean {
@@ -3829,6 +3874,12 @@
bindProperty?: string;
/** 鏄惁蹇呭~ */
required?: boolean;
+ /** 鍧愭爣X */
+ x?: number;
+ /** 鍧愭爣Y */
+ y?: number;
+ /** 椤电爜 */
+ page?: number;
}
type GetCurrentLogierMenusQuery = Record<string, any>;
@@ -6995,6 +7046,12 @@
bindProperty?: string;
/** 鏄惁蹇呭~ */
required?: boolean;
+ /** 鍧愭爣X */
+ x?: number;
+ /** 鍧愭爣Y */
+ y?: number;
+ /** 椤电爜 */
+ page?: number;
}
interface SaveDictionaryCategoryCommand {
diff --git a/src/views/FlexJobManage/FlexJobManage.vue b/src/views/FlexJobManage/FlexJobManage.vue
index d27bffd..907e336 100644
--- a/src/views/FlexJobManage/FlexJobManage.vue
+++ b/src/views/FlexJobManage/FlexJobManage.vue
@@ -84,6 +84,7 @@
<el-button @click="handleBatchUnSign()" type="primary">鎵归噺瑙g害</el-button>
<el-button @click="handleSendShotMessage()" type="primary">鐭俊鍙戦��</el-button>
<el-button @click="handleBatchSign()" type="primary">鎵归噺绛剧害</el-button>
+ <el-button @click="handleEnterpriseBatchSign()" type="primary">鎵归噺浼佷笟绛剧害</el-button>
</template>
</ProTableQueryFilterBar>
<ProTableV2
@@ -512,6 +513,49 @@
}
}
+function handleEnterpriseBatchSign() {
+ const selectionRows = getSelectionRows();
+ if (selectionRows) {
+ const hasSigned = selectionRows?.some(
+ (x) =>
+ !(
+ x.userSignContractStatus === EnumTaskUserSignContractStatus.Pass &&
+ x.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Wait
+ )
+ );
+ if (hasSigned) {
+ Message.warnMessage('鍕鹃�変汉鍛樹腑鍖呭惈宸蹭紒涓氱绾︺�佹湭褰曠敤浜哄憳鎴栨湭绛剧害瀹屾垚浜哄憳');
+ return;
+ }
+ const ids = selectionRows.map((x) => x.id);
+ handleBatchEnterpriseSign(ids);
+ }
+}
+
+async function handleBatchEnterpriseSign(ids: string[]) {
+ try {
+ let res = await enterpriseEmployeeServices.batchEnterpriseSignContract({ ids: ids });
+ if (res) {
+ Message.successMessage('鎿嶄綔鎴愬姛');
+ getList(paginationState.pageIndex);
+ if (res?.errors?.length > 0) {
+ Message.tipMessage('瀛樺湪绛剧害澶辫触鐨勭伒宸ヤ俊鎭暟鎹紝鏄惁瀵煎嚭锛�').then(() => {
+ XLSXUtils.exportToXLSX({
+ workbookDataList: res.errors,
+ fileName: '绛剧害澶辫触鐏靛伐淇℃伅',
+ workbookHeaderMap: {
+ name: '濮撳悕',
+ contactPhoneNumber: '鎵嬫満鍙�',
+ identity: '韬唤璇佸彿',
+ errorMessage: '閿欒淇℃伅',
+ },
+ });
+ });
+ }
+ }
+ } catch (error) {}
+}
+
async function signContract() {
try {
let params: API.InviteElectronSignCommand = {
diff --git a/src/views/UserManage/UserManageList.vue b/src/views/UserManage/UserManageList.vue
index 17fec99..10d42bb 100644
--- a/src/views/UserManage/UserManageList.vue
+++ b/src/views/UserManage/UserManageList.vue
@@ -22,6 +22,16 @@
:columns="UserManageColumns"
:operationBtns="operationBtns"
>
+ <template #status="{ row }">
+ <FieldSwitch
+ v-model="row.status"
+ active-text="鍚敤"
+ :active-value="EnumUserStatus.Normal"
+ inactive-text="绂佺敤"
+ :inactive-value="EnumUserStatus.Disabled"
+ :before-change="() => setUserInfoStatus(row)"
+ />
+ </template>
</ProTableV2>
</AppContainer>
<AddOrEditUserDialog v-bind="dialogProps" />
@@ -43,10 +53,11 @@
useTable,
useFormDialog,
defineOperationBtns,
+ FieldSwitch,
} from '@bole-core/components';
import * as userServices from '@/services/api/user';
import { UserManageColumns } from './constants';
-import { EnumUserStatusText } from '@/constants';
+import { EnumUserStatus, EnumUserStatusText } from '@/constants';
import { ModelValueType } from 'element-plus';
import { Message } from '@bole-core/core';
import AddOrEditUserDialog from './components/AddOrEditUserDialog.vue';
@@ -141,7 +152,7 @@
formatter: (role: API.GetOperationUserInfosQueryResultItem) =>
role.roles?.length > 0 ? role.roles.map((x) => x.name).join(',') : '',
},
- status: { type: 'enum', valueEnum: EnumUserStatusText },
+ // status: { type: 'enum', valueEnum: EnumUserStatusText },
},
}
);
@@ -257,6 +268,24 @@
});
}
+async function setUserInfoStatus(row: API.GetOperationUserInfosQueryResultItem) {
+ try {
+ await Message.tipMessage(
+ `纭瑕�${row.status === EnumUserStatus.Normal ? '绂佺敤' : '鍚敤'}璇ョ敤鎴峰悧锛焋
+ );
+ const res = await userServices.setUserInfoStatus({
+ ids: [row.id],
+ status:
+ row.status === EnumUserStatus.Normal ? EnumUserStatus.Disabled : EnumUserStatus.Normal,
+ });
+ if (res) {
+ getList(paginationState.pageIndex);
+ Message.successMessage(`鎿嶄綔鎴愬姛`);
+ return !!res;
+ }
+ } catch (error) {}
+}
+
async function resetPassword() {
try {
let params: API.ResetUserPasswordsCommand = {
--
Gitblit v1.9.1