From a8c0f3a72c24c756bc2c7493144bce717dc13ff4 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期二, 16 九月 2025 10:23:46 +0800
Subject: [PATCH] feat: 接口对接

---
 apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue |  102 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 73 insertions(+), 29 deletions(-)

diff --git a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
index 5f50ad4..b95cbea 100644
--- a/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/publishTask/InnerPage.vue
@@ -36,11 +36,29 @@
         required
         label-width="90px"
       >
-        <nut-radio-group v-model="form.settlementCycle" direction="horizontal">
+        <nut-radio-group
+          v-model="form.settlementCycle"
+          direction="horizontal"
+          @change="settleTypeChange"
+        >
           <BlRadio :label="Number(key)" v-for="(val, key) in EnumSettlementCycleText" :key="key">{{
             val
           }}</BlRadio>
         </nut-radio-group>
+      </nut-form-item>
+      <nut-form-item
+        label="缁撶畻鏃ユ湡:"
+        class="bole-form-item"
+        prop="settlementDate"
+        label-width="90px"
+        required
+        v-if="form.settlementCycle !== EnumSettlementCycle.Day"
+      >
+        <ChooseInputWithPicker
+          v-model="form.settlementDate"
+          placeholder="璇疯缃粨绠楁棩鏈�"
+          :value-enum="settlementDateList"
+        />
       </nut-form-item>
       <nut-form-item label="绂忓埄:" class="bole-form-item" prop="benefits" label-width="90px">
         <ChooseInputWithCheckbox
@@ -101,11 +119,6 @@
       </nut-form-item>
       <nut-form-item label="浠诲姟鍦扮偣" class="bole-form-item" prop="weMapInfo" required>
         <ChooseLocationInput placeholder="璇烽�夋嫨浠诲姟鍦扮偣" v-model="form.weMapInfo" />
-        <!-- <ChooseInputWithAreaPicker
-          :columns="areaTreeList"
-          v-model="form.areaList"
-          placeholder="璇烽�夋嫨鎵�鍦ㄥ湴鍖�"
-        ></ChooseInputWithAreaPicker> -->
       </nut-form-item>
       <nut-form-item
         label="璇︾粏鍦板潃:"
@@ -125,12 +138,14 @@
         <ChooseInputWithDatePicker
           v-model="form.beginTime"
           :minDate="nowDate"
+          placeholder="璇烽�夋嫨浠诲姟寮�濮嬫棩鏈�"
         ></ChooseInputWithDatePicker>
       </nut-form-item>
       <nut-form-item label="浠诲姟缁撴潫鏃ユ湡:" class="bole-form-item" prop="endTime" label-width="90px">
         <ChooseInputWithDatePicker
           v-model="form.endTime"
           :minDate="nowDate"
+          placeholder="璇烽�夋嫨浠诲姟缁撴潫鏃ユ湡"
         ></ChooseInputWithDatePicker>
       </nut-form-item>
     </nut-form>
@@ -153,6 +168,8 @@
   EnumSettlementCycleText,
   BillingMethodEnumUnit,
   EnumUserGenderTextOptions,
+  EnumSettlementCycleDateWeekArray,
+  EnumSettlementCycleDateMonthArray,
 } from '@12333/constants';
 import {
   ChooseInputWithPicker,
@@ -180,10 +197,9 @@
 const { userDetail } = useUser();
 const { findAreaNameFromCode } = useAllAreaList();
 const router = Taro.useRouter();
-const taskId = router.params?.taskId ?? '';
+const taskId = router.params?.id ?? '';
 const isEdit = !!taskId;
 const isCopy = router.params?.isCopy === 'true';
-console.log('isCopy: ', router.params?.isCopy);
 
 const nowDate = dayjs().toDate();
 
@@ -194,20 +210,29 @@
   categoryCode: CategoryCode.CertificateType,
 });
 
+const settlementDateList = computed(() => {
+  if (form.settlementCycle === EnumSettlementCycle.Month) {
+    return EnumSettlementCycleDateMonthArray;
+  }
+  if (form.settlementCycle === EnumSettlementCycle.Week) {
+    return EnumSettlementCycleDateWeekArray;
+  }
+  return [];
+});
+
 const form = reactive({
   name: '',
-  billingMethod: EnumBillingMethod.Month,
+  billingMethod: EnumBillingMethod.Day,
   serviceFee: '' as any as number,
-  settlementCycle: EnumSettlementCycle.Month,
+  settlementCycle: EnumSettlementCycle.Day,
   benefits: [] as string[],
-  ageMinLimit: 0,
-  ageMaxLimit: 0,
-  genderLimit: '' as any as EnumUserGender,
+  ageMinLimit: '' as any as number,
+  ageMaxLimit: '' as any as number,
+  genderLimit: 0 as any as EnumUserGender,
   credentialLimits: [] as string[],
-  // address: '',
   beginTime: '',
   endTime: '',
-  // areaList: [] as number[],
+  settlementDate: null as number,
 
   weMapInfo: {} as WeMapModel,
   addressDetail: '',
@@ -216,24 +241,36 @@
 const rules = reactive<FormRules>({
   name: [{ required: true, message: '璇疯緭鍏ヤ换鍔″悕绉�' }],
   genderLimit: [{ required: true, message: '璇烽�夋嫨鎬у埆瑕佹眰' }],
+  settlementCycleDate: [{ required: true, message: '璇疯缃粨绠楁棩鏈�' }],
   addressDetail: [{ required: true, message: '璇疯緭鍏ヨ缁嗗湴鍧�' }],
-
+  billingMethod: [
+    {
+      required: true,
+      message: '璇烽�夋嫨鏀惰垂鏂瑰紡',
+      validator: () => {
+        if (!form.billingMethod) {
+          return Promise.reject('璇烽�夋嫨鏈嶅姟璐圭被鍨�');
+        }
+        if (!form.serviceFee) {
+          return Promise.reject('璇疯緭鍏ユ湇鍔¤垂');
+        }
+        return Promise.resolve(true);
+      },
+    },
+  ],
   weMapInfo: [
     { required: true, message: '璇疯缃伐浣滃湴鐐�', validator: FormValidator.validatorWeMap },
   ],
-  // areaList: [
-  //   { required: true, message: '璇锋坊鍔犲伐浣滃湴鐐�', validator: FormValidator.validatorArray },
-  // ],
 
   ageMinLimit: [
     {
       required: true,
       message: '璇疯緭鍏ュ勾榫勮姹�',
       validator: () => {
-        if (!form.ageMinLimit) {
+        if (!form.ageMinLimit && form.ageMinLimit > 0) {
           return Promise.reject('璇疯緭鍏ュ勾榫勮姹�');
         }
-        if (!form.ageMaxLimit) {
+        if (!form.ageMaxLimit && form.ageMaxLimit > 0) {
           return Promise.reject('璇疯緭鍏ュ勾榫勮姹�');
         }
         if (Number(form.ageMaxLimit) <= Number(form.ageMinLimit)) {
@@ -256,7 +293,8 @@
       message: '璇烽�夋嫨缁撴潫鏃ユ湡',
       validator(value) {
         if (!value) return Promise.reject('璇烽�夋嫨缁撴潫鏃ユ湡');
-        if (value <= form.beginTime) return Promise.reject('缁撴潫鏃ユ湡涓嶈兘灏忎簬寮�濮嬫棩鏈�');
+        if (dayjs(value).isBefore(dayjs(form.beginTime)))
+          return Promise.reject('缁撴潫鏃ユ湡闇�澶т簬寮�濮嬫棩鏈�');
         return Promise.resolve(true);
       },
     },
@@ -285,17 +323,18 @@
     form.billingMethod = data.billingMethod;
     form.serviceFee = data.serviceFee;
     form.settlementCycle = data.settlementCycle;
-    form.benefits = (data.benefits ?? []).map((item) => item.code);
+    form.settlementDate = data.settlementDate;
+    form.benefits = (data.benefits ?? []).map((item) => item.benefitCode);
     form.ageMinLimit = data.ageMinLimit;
     form.ageMaxLimit = data.ageMaxLimit;
     form.genderLimit = data.genderLimit;
-    form.credentialLimits = (data.credentialLimits ?? []).map((item) => item.code);
+    form.credentialLimits = (data.credentialLimits ?? []).map((item) => item.typeCode);
     form.beginTime = dayjs(data.beginTime).format('YYYY-MM-DD');
     form.endTime = dayjs(data.endTime).format('YYYY-MM-DD');
     form.addressDetail = data.addressDetail;
     form.weMapInfo = {
-      provinceName: findAreaNameFromCode(data.provinceCode),
-      cityName: findAreaNameFromCode(data.cityCode),
+      provinceName: data.provinceContent,
+      cityName: data.cityContent,
       provinceCode: data.provinceCode,
       cityCode: data.cityCode,
       latitude: data.latitude,
@@ -322,6 +361,7 @@
       billingMethod: form.billingMethod,
       serviceFee: form.serviceFee,
       settlementCycle: form.settlementCycle,
+      settlementDate: form.settlementDate,
       benefits: form.benefits,
       ageMinLimit: form.ageMinLimit,
       ageMaxLimit: form.ageMaxLimit,
@@ -333,8 +373,8 @@
       addressDetail: form.addressDetail,
       longitude: form.weMapInfo.longitude,
       latitude: form.weMapInfo.latitude,
-      beginTime: form.beginTime,
-      endTime: form.endTime,
+      beginTime: dayjs(form.beginTime).format('YYYY-MM-DD 00:00:00'),
+      endTime: dayjs(form.endTime).format('YYYY-MM-DD 23:59:59'),
     };
     if (isEdit) {
       params.id = taskId;
@@ -344,7 +384,7 @@
     }
     let res = await taskServices.saveTaskInfo(params);
     if (res) {
-      Message.success(isEdit ? '缂栬緫鎴愬姛' : '鍙戝竷鎴愬姛', {
+      Message.success(isEdit && !isCopy ? '缂栬緫鎴愬姛' : '鍙戝竷鎴愬姛', {
         onClosed() {
           goBack();
         },
@@ -353,6 +393,10 @@
   } catch (error) {}
 }
 
+function settleTypeChange() {
+  form.settlementDate = null as number;
+}
+
 function handleCancel() {
   goBack();
 }

--
Gitblit v1.9.1