From 8cef2483dcfc4c40d861caaf58d618387f5ab80c Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 13 十一月 2025 13:11:36 +0800
Subject: [PATCH] feat: 1.3.0.2

---
 src/views/FlexJobManage/FlexJobManage.vue                         |   40 +++++++++++++++++++-
 src/views/Permission/components/dialogAuthorizeV2.vue             |    1 
 src/views/FlexJobManage/FlexJobContractManage.vue                 |    5 +-
 src/views/FlexJobManage/components/SignDetailView.vue             |    2 
 src/views/FlexJobManage/components/AddInternalStaffDialog.vue     |    7 +--
 src/views/EmploymentManage/TaskManageList.vue                     |    4 +-
 src/views/EmploymentManage/components/AddOrEditEmploymentView.vue |   23 ++++++++++-
 7 files changed, 67 insertions(+), 15 deletions(-)

diff --git a/src/views/EmploymentManage/TaskManageList.vue b/src/views/EmploymentManage/TaskManageList.vue
index 14aeb74..abc7300 100644
--- a/src/views/EmploymentManage/TaskManageList.vue
+++ b/src/views/EmploymentManage/TaskManageList.vue
@@ -53,10 +53,10 @@
       </ProTableQueryFilterBar>
       <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
         <template #userCount="{ row }">
-          <el-button v-if="row.isInternal" link type="primary" @click="goSignList(row)">{{
+          <el-button v-if="!row.isInternal" link type="primary" @click="goSignList(row)">{{
             row.userCount || 0
           }}</el-button>
-          <span v-else>{{ row.userCount || 0 }}</span>
+          <span v-else>/</span>
         </template>
       </ProTableV2>
     </AppContainer>
diff --git a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
index 9a8c9f3..da71ba5 100644
--- a/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
+++ b/src/views/EmploymentManage/components/AddOrEditEmploymentView.vue
@@ -16,7 +16,11 @@
           </ProFormCol>
           <ProFormCol>
             <ProFormColItem :span="12">
-              <ProFormItemV2 label="闇�姹備汉鏁�:" prop="needPeopleNumber">
+              <ProFormItemV2
+                label="闇�姹備汉鏁�:"
+                prop="needPeopleNumber"
+                :check-rules="[{ message: '璇疯緭鍏ラ渶姹備汉鏁�' }]"
+              >
                 <ProFormInputNumber
                   :controls="false"
                   v-model="form.needPeopleNumber"
@@ -307,7 +311,20 @@
               <ProFormItemV2
                 label="浠诲姟鏃堕棿:"
                 prop="time"
-                :check-rules="[{ message: '璇烽�夋嫨浠诲姟鏃堕棿', type: 'array' }]"
+                :check-rules="[
+                  { message: '璇烽�夋嫨浠诲姟鏃堕棿', type: 'array' },
+                  {
+                    validator: (rule, value, callback) => {
+                      if (form.billingMethod === EnumBillingMethod.Month) {
+                        if (dayjs(form.time[1]).diff(dayjs(form.time[0]), 'month') < 1) {
+                          callback(new Error('鏈堢粨浠诲姟鏃朵换鍔℃椂闂撮渶澶т簬涓�涓湀'));
+                        }
+                        callback();
+                      }
+                      callback();
+                    },
+                  },
+                ]"
               >
                 <ProFormDatePicker
                   v-model="form.time"
@@ -655,7 +672,7 @@
         callback: (action) => {
           if (action === 'confirm') {
             router.push({
-              name: 'BalanceManageV2',
+              name: 'EnterpriseBalanceManage',
             });
           }
         },
diff --git a/src/views/FlexJobManage/FlexJobContractManage.vue b/src/views/FlexJobManage/FlexJobContractManage.vue
index 782b98f..2ae2743 100644
--- a/src/views/FlexJobManage/FlexJobContractManage.vue
+++ b/src/views/FlexJobManage/FlexJobContractManage.vue
@@ -170,8 +170,9 @@
       hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
         !(
           row.userSignContractStatus !== EnumTaskUserSignContractStatus.Pass &&
-          row.hireStatus === EnumTaskUserHireStatus.Pass &&
-          row.source === EnumEnterpriseEmployeeSource.Internal
+          ((row.hireStatus === EnumTaskUserHireStatus.Pass &&
+            row.source === EnumEnterpriseEmployeeSource.External) ||
+            row.source === EnumEnterpriseEmployeeSource.Internal)
         ),
     },
   },
diff --git a/src/views/FlexJobManage/FlexJobManage.vue b/src/views/FlexJobManage/FlexJobManage.vue
index b723cbc..0766984 100644
--- a/src/views/FlexJobManage/FlexJobManage.vue
+++ b/src/views/FlexJobManage/FlexJobManage.vue
@@ -217,7 +217,11 @@
 const operationBtnMap: Record<string, OperationBtnType> = {
   editBtn: {
     emits: {
-      onClick: (role) => openDialog(role),
+      onClick: (role) => openInternalDialog(role),
+    },
+    extraProps: {
+      hide: (row: API.GetEnterpriseEmployeesQueryResultItem) =>
+        row.source === EnumEnterpriseEmployeeSource.External,
     },
   },
   detailBtn: {
@@ -657,10 +661,12 @@
 const {
   dialogProps: dialogAddInternalStaffProps,
   handleAdd: handleInternalStaffAdd,
+  handleEdit: handleInternalStaffEdit,
   editForm: internalStaffEditForm,
 } = useFormDialog({
   onConfirm: addEnterpriseEmployee,
   defaultFormParams: {
+    id: '',
     name: '',
     identity: '',
     contactPhoneNumber: '',
@@ -676,8 +682,32 @@
   },
 });
 
+async function openInternalDialog(row: API.GetEnterpriseEmployeesQueryResultItem) {
+  try {
+    let detail = await enterpriseEmployeeServices.getEnterpriseEmployee({ id: row.id });
+    handleInternalStaffEdit({
+      id: row.id,
+      name: row.name,
+      identity: row.identity,
+      contactPhoneNumber: row.contactPhoneNumber,
+      gender: detail.gender,
+      age: detail.age ?? null,
+      identityImg: convertApi2FormUrlOnlyOne(detail.identityImg),
+      identityBackImg: convertApi2FormUrlOnlyOne(detail.identityBackImg),
+      contractUrl: convertApi2FormUrlOnlyOne(detail.contractUrl, {
+        fileName: detail.contractUrl ? detail.contractUrl.split('/').pop() : '鍚堝悓',
+      }),
+      regiterTime: detail.applyTime ?? '',
+      userRealTime: row.userRealTime ?? '',
+      userSignContractTime: row.userSignContractTime ?? '',
+      contractTime: [row.contractBegin, row.contractEnd],
+    });
+  } catch (error) {}
+}
+
 async function addEnterpriseEmployee() {
   try {
+    const isEdit = !!internalStaffEditForm.id;
     let params: API.AddEnterpriseEmployeeCommand = {
       name: internalStaffEditForm.name,
       identity: internalStaffEditForm.identity,
@@ -690,7 +720,13 @@
       contractBegin: format(internalStaffEditForm.contractTime[0], 'YYYY-MM-DD 00:00:00'),
       contractEnd: format(internalStaffEditForm.contractTime[1], 'YYYY-MM-DD 23:59:59'),
     };
-    let res = await enterpriseEmployeeServices.addEnterpriseEmployee(params);
+    let res;
+    if (isEdit) {
+      (params as API.EditEnterpriseEmployeeCommand).id = internalStaffEditForm.id;
+      res = await enterpriseEmployeeServices.editEnterpriseEmployee(params);
+    } else {
+      res = await enterpriseEmployeeServices.addEnterpriseEmployee(params);
+    }
     if (res) {
       Message.successMessage('鎿嶄綔鎴愬姛');
       getList(paginationState.pageIndex);
diff --git a/src/views/FlexJobManage/components/AddInternalStaffDialog.vue b/src/views/FlexJobManage/components/AddInternalStaffDialog.vue
index 8d16ddd..5939095 100644
--- a/src/views/FlexJobManage/components/AddInternalStaffDialog.vue
+++ b/src/views/FlexJobManage/components/AddInternalStaffDialog.vue
@@ -38,11 +38,7 @@
           </ProFormItemV2>
         </ProFormColItem>
         <ProFormColItem :span="12">
-          <ProFormItemV2
-            label="鍗忚鏃堕棿:"
-            prop="contractTime"
-            :check-rules="[{ message: '璇烽�夋嫨鍗忚鏃堕棿', type: 'array' }]"
-          >
+          <ProFormItemV2 label="鍗忚鏃堕棿:" prop="contractTime">
             <ProFormDatePicker
               v-model="form.contractTime"
               type="daterange"
@@ -157,6 +153,7 @@
 
 type Form = {
   title?: string;
+  id: string;
   name: string;
   identity: string;
   contactPhoneNumber: string;
diff --git a/src/views/FlexJobManage/components/SignDetailView.vue b/src/views/FlexJobManage/components/SignDetailView.vue
index 6ea4065..d83a691 100644
--- a/src/views/FlexJobManage/components/SignDetailView.vue
+++ b/src/views/FlexJobManage/components/SignDetailView.vue
@@ -45,7 +45,7 @@
 const column = defineColumns([
   {
     id: '1',
-    enCode: 'enterpriseName',
+    enCode: 'sourceName',
     name: '鎵�灞炲鎴�',
   },
   {
diff --git a/src/views/Permission/components/dialogAuthorizeV2.vue b/src/views/Permission/components/dialogAuthorizeV2.vue
index 71bfb25..aad24be 100644
--- a/src/views/Permission/components/dialogAuthorizeV2.vue
+++ b/src/views/Permission/components/dialogAuthorizeV2.vue
@@ -21,6 +21,7 @@
             node-key="id"
             :expand-on-click-node="false"
             :highlight-current="true"
+            check-strictly
             default-expand-all
             show-checkbox
             ref="moduleTree"

--
Gitblit v1.9.1