From c848d51eb43c87463fc8ce0b8e4996bb3f80894c Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期三, 22 十月 2025 18:39:24 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobAdminBClient
---
src/views/FlexJobManage/FlexJobManage.vue | 53 ++++++++++++++++++++++++++
src/views/ServiceChargeManage/ServiceChargeDetail.vue | 1
src/views/EmploymentManage/TaskManageList.vue | 4 +
src/views/EmploymentManage/CheckReceiveTaskDetail.vue | 10 +++-
src/views/EmploymentManage/components/AddOrEditEmploymentView.vue | 12 ++++-
src/views/EmploymentManage/CheckManage.vue | 4 +
src/views/UserManage/UserManageList.vue | 33 +++++++++++++++-
7 files changed, 107 insertions(+), 10 deletions(-)
diff --git a/src/views/EmploymentManage/CheckManage.vue b/src/views/EmploymentManage/CheckManage.vue
index 438e1b8..a6a5623 100644
--- a/src/views/EmploymentManage/CheckManage.vue
+++ b/src/views/EmploymentManage/CheckManage.vue
@@ -164,7 +164,9 @@
serviceFee: {
type: 'money',
formatter: (row) => {
- return `${row.serviceFee}${EnumBillingMethodUnitText[row.billingMethod]}`;
+ return row.billingMethod === EnumBillingMethod.Face
+ ? ''
+ : `${row.serviceFee}${EnumBillingMethodUnitText[row.billingMethod]}`;
},
},
settlementCycle: { type: 'enum', valueEnum: EnumSettlementCycleText },
diff --git a/src/views/EmploymentManage/CheckReceiveTaskDetail.vue b/src/views/EmploymentManage/CheckReceiveTaskDetail.vue
index b56f43e..ad67149 100644
--- a/src/views/EmploymentManage/CheckReceiveTaskDetail.vue
+++ b/src/views/EmploymentManage/CheckReceiveTaskDetail.vue
@@ -1,5 +1,5 @@
<template>
- <LoadingLayout :loading="state.loading">
+ <LoadingLayout v-loading="state.loading">
<AppContainer>
<el-card class="query-filter-bar-wrapper" shadow="never">
<ProForm :model="taskInfo" is-read>
@@ -16,7 +16,11 @@
</ProFormColItem>
<ProFormColItem :span="8">
<ProFormItemV2 label="鏈嶅姟璐归噾棰�:">
- {{ `${taskInfo.serviceFee}${EnumBillingMethodUnitText[taskInfo.billingMethod]}` }}
+ {{
+ taskInfo.billingMethod === EnumBillingMethod.Face
+ ? EnumBillingMethodText[taskInfo.billingMethod]
+ : `${taskInfo.serviceFee}${EnumBillingMethodUnitText[taskInfo.billingMethod]}`
+ }}
</ProFormItemV2>
</ProFormColItem>
</ProFormCol>
@@ -70,7 +74,7 @@
import * as taskServices from '@/services/api/task';
import { useQuery } from '@tanstack/vue-query';
import { CheckReceiveTaskDetailColumns } from './constants';
-import { EnumBillingMethodUnitText } from '@/constants';
+import { EnumBillingMethodUnitText, EnumBillingMethod, EnumBillingMethodText } from '@/constants';
import dayjs from 'dayjs';
import CheckManageDialog from './components/CheckManageDialog.vue';
import ManualCheckManageDialog from './components/ManualCheckManageDialog.vue';
diff --git a/src/views/EmploymentManage/TaskManageList.vue b/src/views/EmploymentManage/TaskManageList.vue
index a19bbc4..f6f6850 100644
--- a/src/views/EmploymentManage/TaskManageList.vue
+++ b/src/views/EmploymentManage/TaskManageList.vue
@@ -226,7 +226,9 @@
serviceFee: {
type: 'money',
formatter: (row) => {
- return `${row.serviceFee}${EnumBillingMethodUnitText[row.billingMethod]}`;
+ return row.billingMethod === EnumBillingMethod.Face
+ ? ''
+ : `${row.serviceFee}${EnumBillingMethodUnitText[row.billingMethod]}`;
},
},
applyBeginTime: { type: 'date', format: 'YYYY-MM-DD' },
diff --git a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
index 31a7f8c..c0d783d 100644
--- a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
+++ b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
@@ -25,7 +25,7 @@
if (!form.billingMethod) {
callback(new Error('璇烽�夋嫨鏈嶅姟璐圭被鍨�'));
}
- if (!form.serviceFee) {
+ if (!form.serviceFee && form.billingMethod !== EnumBillingMethod.Face) {
callback(new Error('璇疯緭鍏ユ湇鍔¤垂'));
}
callback();
@@ -42,6 +42,7 @@
>
<template #extra>
<ProFormInputNumber
+ v-if="form.billingMethod !== EnumBillingMethod.Face"
:controls="false"
v-model="form.serviceFee"
placeholder="璇疯緭鍏�"
@@ -278,6 +279,7 @@
start-placeholder="寮�濮嬫棩鏈�"
end-placeholder="缁撴潫鏃ユ湡"
:disabled-date="disabledDate"
+ @change="handleTimeChange"
></ProFormDatePicker>
</ProFormItemV2>
</ProFormColItem>
@@ -392,11 +394,11 @@
}
function disabledapplyDate(time: Date) {
- return dayjs(time).isBefore(form.time[0], 'day') || dayjs(time).isAfter(form.time[1], 'day');
+ return dayjs(time).isAfter(dayjs(form.time[1]), 'day') || dayjs(time).isBefore(dayjs(), 'day');
}
const feeCannotEdit = computed(() => {
- return dayjs(form.time[0]).isBefore(dayjs(), 'day');
+ return dayjs().isAfter(form.time[0], 'second') && isEdit;
});
const eventContext = useGlobalEventContext();
@@ -506,6 +508,10 @@
form.settlementDate = null as number;
}
+function handleTimeChange() {
+ form.applyTime = [] as unknown as ModelValueType;
+}
+
function handleBack() {
closeViewPush(route, {
name: 'TaskManageList',
diff --git a/src/views/FlexJobManage/FlexJobManage.vue b/src/views/FlexJobManage/FlexJobManage.vue
index d27bffd..b4522c1 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
@@ -138,6 +139,7 @@
import SignDialog from './components/SignDialog.vue';
import * as enterpriseEmployeeServices from '@/services/api/enterpriseEmployee';
import { ModelValueType } from 'element-plus';
+import _ from 'lodash';
defineOptions({
name: 'FlexJobManageList',
@@ -512,6 +514,57 @@
}
}
+const handleEnterpriseBatchSign = _.debounce(
+ () => {
+ 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);
+ }
+ },
+ 1000,
+ { leading: true, trailing: false }
+);
+
+async function handleBatchEnterpriseSign(ids: string[]) {
+ try {
+ state.loading = true;
+ 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: '韬唤璇佸彿',
+ errorMessages: '閿欒淇℃伅',
+ },
+ });
+ });
+ }
+ }
+ } catch (error) {
+ } finally {
+ state.loading = false;
+ }
+}
+
async function signContract() {
try {
let params: API.InviteElectronSignCommand = {
diff --git a/src/views/ServiceChargeManage/ServiceChargeDetail.vue b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
index 440afdb..ea1a5ec 100644
--- a/src/views/ServiceChargeManage/ServiceChargeDetail.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeDetail.vue
@@ -414,6 +414,7 @@
bank: '鎵�灞為摱琛�',
bankBranch: '鎵�灞炴敮琛�',
receiveAccount: '鏀舵璐︽埛',
+ totalWorkHours: '绱宸ユ椂锛堝皬鏃讹級',
settlementAmount: '缁撶畻閲戦',
actualSettlementAmount: '瀹炲彂閲戦',
errorMessage: '閿欒淇℃伅',
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