From d01af540b961aaaa17f68e70374f78a6695219cc Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 17 十一月 2025 10:25:32 +0800
Subject: [PATCH] fix: bug
---
src/views/FlexJobManage/FlexJobContractManage.vue | 178 ++++++++++++++++++----------------------------------------
1 files changed, 56 insertions(+), 122 deletions(-)
diff --git a/src/views/FlexJobManage/FlexJobContractManage.vue b/src/views/FlexJobManage/FlexJobContractManage.vue
index f12bbf1..0aea8c5 100644
--- a/src/views/FlexJobManage/FlexJobContractManage.vue
+++ b/src/views/FlexJobManage/FlexJobContractManage.vue
@@ -23,7 +23,7 @@
</QueryFilterItem>
<QueryFilterItem>
<FieldDatePicker
- v-model="extraParamState.signContractTime"
+ v-model="extraParamState.userSignContractTime"
type="daterange"
range-separator="~"
start-placeholder="璧峰鏃ユ湡"
@@ -60,15 +60,35 @@
<!-- <el-button @click="handleDownloadTemplate()" type="primary" link>妯℃澘涓嬭浇</el-button> -->
<!-- <el-button @click="handleBatchImportAdd()" type="primary">鎵归噺瀵煎叆</el-button> -->
<!-- <el-button @click="handleStaffInfoAdd()" type="primary">鏂板缓</el-button> -->
- <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> -->
+ <el-button
+ v-if="checkSubModuleItemShow('pageButton', 'batchUnSignBtn')"
+ @click="handleBatchUnSign()"
+ type="primary"
+ >鎵归噺瑙g害</el-button
+ >
+ <el-button
+ v-if="checkSubModuleItemShow('pageButton', 'sendShotMessageBtn')"
+ @click="handleSendShotMessage()"
+ type="primary"
+ >鐭俊鍙戦��</el-button
+ >
+ <el-button
+ v-if="checkSubModuleItemShow('pageButton', 'batchSignBtn')"
+ @click="handleBatchSign()"
+ type="primary"
+ >鎵归噺绛剧害</el-button
+ >
+ <el-button
+ v-if="checkSubModuleItemShow('pageButton', 'batchEnterpriseSignBtn')"
+ @click="handleEnterpriseBatchSign()"
+ type="primary"
+ >鎵归噺浼佷笟绛剧害</el-button
+ >
</template>
</ProTableQueryFilterBar>
<ProTableV2
v-bind="proTableProps"
- :columns="FlexJobContractManageColumns"
+ :columns="column"
:operationBtns="operationBtns"
show-column-check
ref="proTable"
@@ -78,7 +98,7 @@
>
</ProTableV2>
</AppContainer>
- <StaffInfoDialog v-bind="dialogStaffInfoProps" />
+ <!-- <StaffInfoDialog v-bind="dialogStaffInfoProps" /> -->
<StaffDetailInfoDialog v-bind="dialogStaffDetailProps" />
<BatchImportDialog
v-bind="dialogBatchImportProps"
@@ -100,18 +120,15 @@
QueryFilterItem,
useTable,
FieldDatePicker,
- FieldRadio,
FieldSelect,
- defineOperationBtns,
useFormDialog,
UploadUserFile,
XLSXUtils,
} from '@bole-core/components';
-import { FlexJobContractManageColumns } from './constants';
import { EnumTaskUserHireStatusText, EnumTaskUserSignContractStatusText } from '@/constants';
import { Message } from '@bole-core/core';
import { convertApi2FormUrlOnlyOne, downloadFileByUrl, format } from '@/utils';
-import StaffInfoDialog from './components/StaffInfoDialog.vue';
+// import StaffInfoDialog from './components/StaffInfoDialog.vue';
import BatchImportDialog from './components/BatchImportDialog.vue';
import SendShotMessageDialog from './components/SendShotMessageDialog.vue';
import StaffDetailInfoDialog from './components/StaffDetailInfoDialog.vue';
@@ -119,36 +136,25 @@
import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee';
import { ModelValueType } from 'element-plus';
import _ from 'lodash';
+import { getEnterpriseEmployeesHooks } from './hooks';
defineOptions({
name: 'FlexJobContractManage',
});
-const operationBtns = defineOperationBtns([
- // {
- // data: {
- // enCode: 'editBtn',
- // name: '缂栬緫',
- // },
+const operationBtnMap: Record<string, OperationBtnType> = {
+ // editBtn: {
// emits: {
// onClick: (role) => openDialog(role),
// },
// },
- {
- data: {
- enCode: 'detailBtn',
- name: '璇︽儏',
- },
+ detailBtn: {
emits: {
onClick: (role: API.GetEnterpriseEmployeesQueryResultItem) =>
handleStaffDetailEdit({ id: role.id, tabType: 'info' }),
},
},
- {
- data: {
- enCode: 'enterpriseSignBtn',
- name: '浼佷笟绛剧害',
- },
+ enterpriseSignBtn: {
emits: {
onClick: (role) => handleEnterpriseSign(role),
},
@@ -160,27 +166,19 @@
),
},
},
- {
- data: {
- enCode: 'inviteSignBtn',
- name: '閭�璇风绾�',
- },
+ inviteSignBtn: {
emits: {
onClick: (role) => handleInviteSign(role),
},
extraProps: {
hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
!(
- row.userSignContractStatus !== EnumTaskUserSignContractStatus.Pass &&
- row.hireStatus === EnumTaskUserHireStatus.Pass
+ row.source === EnumEnterpriseEmployeeSource.Internal &&
+ row.userSignContractStatus !== EnumTaskUserSignContractStatus.Pass
),
},
},
- {
- data: {
- enCode: 'unSignBtn',
- name: '瑙g害',
- },
+ unSignBtn: {
emits: {
onClick: (role) => handleUnSign(role),
},
@@ -192,17 +190,17 @@
),
},
},
- // {
- // data: {
- // enCode: 'delBtn',
- // name: '鍒犻櫎',
- // },
- // props: { type: 'danger' },
- // emits: {
- // onClick: (role) => handleDelete(role),
- // },
- // },
-]);
+ delBtn: {
+ props: { type: 'danger' },
+ emits: {
+ onClick: (role) => handleDelete(role),
+ },
+ },
+};
+
+const { checkSubModuleItemShow, column, operationBtns } = useAccess({
+ operationBtnMap,
+});
const router = useRouter();
@@ -217,75 +215,8 @@
state.loading = false;
});
-const {
- getDataSource: getList,
- proTableProps,
- paginationState,
- extraParamState,
- reset,
-} = useTable(
- async ({ pageIndex, pageSize }, extraParamState) => {
- try {
- let params: API.GetEnterpriseEmployeesQuery = {
- pageModel: {
- rows: pageSize,
- page: pageIndex,
- orderInput: extraParamState.orderInput,
- },
- keywords: extraParamState.searchWord,
- createdTimeStart: format(extraParamState.createdTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
- createdTimeEnd: format(extraParamState.createdTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
- signContractTimeStart: format(
- extraParamState.signContractTime?.[0] ?? '',
- 'YYYY-MM-DD 00:00:00'
- ),
- signContractTimeEnd: format(
- extraParamState.signContractTime?.[1] ?? '',
- 'YYYY-MM-DD 23:59:59'
- ),
- hireStatus: extraParamState.hireStatus,
- isReal: extraParamState.isReal,
- userSignContractStatus: extraParamState.userSignContractStatus,
- enterpriseSignContractStatus: extraParamState.enterpriseSignContractStatus,
- };
-
- let res = await enterpriseEmployeeServices.getEnterpriseEmployees(params, {
- showLoading: !state.loading,
- });
- return res;
- } catch (error) {
- console.log('error: ', error);
- }
- },
- {
- defaultExtraParams: {
- searchWord: '',
- orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }],
- createdTime: [] as unknown as ModelValueType,
- signContractTime: [] as unknown as ModelValueType,
- hireStatus: '' as any as EnumTaskUserHireStatus,
- isReal: null as any as boolean,
- userSignContractStatus: '' as any as EnumTaskUserSignContractStatus,
- enterpriseSignContractStatus: '' as any as EnumTaskUserSignContractStatus,
- },
- queryKey: ['enterpriseEmployeeServices/getEnterpriseEmployees'],
- columnsRenderProps: {
- gender: { type: 'enum', valueEnum: EnumUserGenderTextForPerson },
- hireStatus: { type: 'enum', valueEnum: EnumTaskUserHireStatusText },
- userIsReal: {
- formatter: (row: API.GetEnterpriseEmployeesQueryResultItem) => {
- return row.userIsReal ? '宸插疄鍚�' : '鏈疄鍚�';
- },
- },
- userSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText },
- hireTime: { type: 'date' },
- userRealTime: { type: 'date' },
- userSignContractTime: { type: 'date' },
- enterpriseSignContractStatus: { type: 'enum', valueEnum: EnumTaskUserSignContractStatusText },
- enterpriseSignContractTime: { type: 'date' },
- },
- }
-);
+const { getList, proTableProps, paginationState, extraParamState, reset } =
+ getEnterpriseEmployeesHooks();
const proTable = ref<InstanceType<typeof ProTableV2>>();
@@ -423,7 +354,10 @@
try {
const selectionRows = getSelectionRows();
if (selectionRows) {
- if (
+ if (selectionRows.some((x) => x.source === EnumEnterpriseEmployeeSource.External)) {
+ Message.warnMessage('鍕鹃�変汉鍛樹腑鍖呭惈澶栭儴浜哄憳');
+ return;
+ } else if (
selectionRows.some((x) => x.userSignContractStatus === EnumTaskUserSignContractStatus.Pass)
) {
await Message.tipMessage('鍕鹃�変汉鍛樹腑鍖呭惈宸茬绾﹀畬鎴愪汉鍛橈紝纭瑕佺户缁彂閫佺煭淇¢�氱煡鍚楋紵');
@@ -481,10 +415,10 @@
(x) =>
x.userSignContractStatus === EnumTaskUserSignContractStatus.Pass ||
x.enterpriseSignContractStatus === EnumTaskUserSignContractStatus.Pass ||
- x.hireStatus === EnumTaskUserHireStatus.Wait
+ x.source === EnumEnterpriseEmployeeSource.External
);
if (hasSigned) {
- Message.warnMessage('鍕鹃�変汉鍛樹腑鍖呭惈宸茬绾﹀畬鎴愭垨鏈綍鐢ㄤ汉鍛�');
+ Message.warnMessage('鍕鹃�変汉鍛樹腑鍖呭惈宸茬绾﹀畬鎴愭垨澶栭儴浜哄憳');
return;
}
handleSignAdd({
--
Gitblit v1.9.1