From eae59b2d0c6f23529b4ab22c0bc4ed528e4d64f5 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期三, 31 十二月 2025 10:03:06 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobMiniApp

---
 apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue |  137 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 110 insertions(+), 27 deletions(-)

diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue
index 7855001..00687db 100644
--- a/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue
@@ -58,6 +58,36 @@
           ></ChooseInputWithDatePicker>
         </nut-form-item>
         <nut-form-item
+          label="鏈嶅姟鏈烘瀯:"
+          class="bole-form-item"
+          prop="enterpriseEmployeeId"
+          label-width="90px"
+        >
+          <ChooseInputWithSuppliers
+            v-model:supplierEnterpriseId="form.supplierEnterpriseId"
+            placeholder="璇烽�夋嫨"
+            :serviceId="id"
+            :beginTime="form.beginTime"
+            :endTime="form.endTime"
+            v-model:enterpriseEmployeeId="form.enterpriseEmployeeId"
+            v-model:enterpriseEmployeeName="form.enterpriseEmployeeName"
+            v-model:supplierEnterpriseName="form.supplierEnterpriseName"
+          ></ChooseInputWithSuppliers>
+        </nut-form-item>
+        <nut-form-item
+          label="鏀粯閫氶亾:"
+          class="bole-form-item"
+          prop="payAccess"
+          label-width="90px"
+          required
+        >
+          <ChooseInputWithPicker
+            v-model="form.payAccess"
+            placeholder="璇烽�夋嫨鏀粯閫氶亾"
+            :value-enum="EnumUserBankCardAccessTextFormStandard"
+          />
+        </nut-form-item>
+        <nut-form-item
           label="澶囨敞:"
           class="bole-form-item alignTop"
           prop="remark"
@@ -73,7 +103,11 @@
         </nut-form-item>
       </nut-form>
     </ContentScrollView>
-    <PageFooter>
+    <PageFooter class="order-settle-bar">
+      <div class="order-settle-price-wrapper">
+        <div class="order-settle-price-label">鏀粯锛�</div>
+        <nut-price :price="totlePrice" size="large" />
+      </div>
       <PageFooterBtn type="primary" class="business-card-btn" @click="goConfirm"
         >绔嬪嵆涓嬪崟</PageFooterBtn
       >
@@ -86,7 +120,13 @@
       :is-show-custom-address="false"
       @selected="selected"
       exist-address-title="閫夋嫨鍦板潃"
-    ></nut-address>
+    >
+      <template #bottom>
+        <div class="select-address-bottom">
+          <nut-button type="primary" @click="goSelectAddress">鏂板鍦板潃</nut-button>
+        </div>
+      </template>
+    </nut-address>
   </LoadingLayout>
 </template>
 
@@ -97,6 +137,7 @@
   List,
   ListItem,
   ChooseInputWithDatePicker,
+  ChooseInputWithPicker,
 } from '@12333/components';
 import Taro from '@tarojs/taro';
 import { RouterPath } from '@/constants';
@@ -104,6 +145,9 @@
 import * as standardOrderServices from '@12333/services/apiV2/standardOrder';
 import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
 import dayjs from 'dayjs';
+import { EnumUserBankCardAccess, EnumUserBankCardAccessTextFormStandard } from '@12333/constants';
+import { Message } from '@12333/utils';
+import { template } from 'lodash';
 
 defineOptions({
   name: 'InnerPage',
@@ -120,8 +164,11 @@
   beginTime: '',
   endTime: '',
   supplierEnterpriseId: '',
-  enterpriseEmployeeIds: [] as string[],
+  supplierEnterpriseName: '',
+  enterpriseEmployeeId: '',
+  enterpriseEmployeeName: '',
   remark: '',
+  payAccess: EnumUserBankCardAccess.WeChatPay,
 });
 
 const nowDate = dayjs().toDate();
@@ -143,6 +190,8 @@
 const rules = reactive<FormRules>({
   beginTime: [{ required: true, message: '璇烽�夋嫨鏈嶅姟寮�濮嬫椂闂�' }],
   endTime: [{ required: true, message: '璇烽�夋嫨鏈嶅姟缁撴潫鏃堕棿' }],
+  enterpriseEmployeeId: [{ required: true, message: '璇烽�夋嫨鏈嶅姟鏈烘瀯' }],
+  payAccess: [{ required: true, message: '璇烽�夋嫨鏀粯閫氶亾' }],
 });
 
 const { isLoading, isError, detail, refetch } = useStandardServiceDetail({
@@ -158,6 +207,7 @@
 
 const { infiniteLoadingProps } = useEnterpriseAddresses({
   rows: 100,
+  refeshDidShow: false,
   onSuccess(res) {
     const data = res.pages[0].data;
     const address = data.find((item) => item.isDefault);
@@ -172,7 +222,7 @@
 const existAddress = computed(() => {
   return infiniteLoadingProps.value.flattenListData.map((x) => ({
     id: x.id,
-    addressDetail: x.addressDetail,
+    addressDetail: `${x.addressName}${x.addressDetail}`,
     cityName: '',
     countyName: '',
     provinceName: '',
@@ -201,12 +251,16 @@
   form.addressId = nowExistAdd.id;
 };
 
+const totlePrice = computed(() => {
+  return (spec.value?.price ?? 0) * specNumber;
+});
+
 const formRef = ref<any>(null);
 function goConfirm() {
   if (!formRef.value) return;
   formRef.value.validate().then(({ valid, errors }: any) => {
     if (valid) {
-      // addStandardOrder();
+      addStandardOrder();
     }
   });
 }
@@ -221,46 +275,55 @@
       specName: spec.value.name,
       specPrice: spec.value.price ?? 0,
       specNumber: specNumber,
-      addressId: '3fa85f64-5717-4562-b3fc-2c963f66afa6',
+      addressId: form.addressId,
       name: detail.value.name,
-      contactPhoneNumber: 'string',
-      provinceCode: 'string',
-      provinceContent: 'string',
-      cityCode: 'string',
-      cityContent: 'string',
-      areaCode: 'string',
-      areaContent: 'string',
-      addressName: 'string',
-      addressDetail: 'string',
-      longitude: 0,
-      latitude: 0,
-      beginTime: '2025-12-24T08:25:08.372Z',
-      endTime: '2025-12-24T08:25:08.372Z',
-      supplierEnterpriseId: '3fa85f64-5717-4562-b3fc-2c963f66afa6',
-      enterpriseEmployeeIds: ['3fa85f64-5717-4562-b3fc-2c963f66afa6'],
-      remark: 'string',
-      payAccess: 1,
+      contactPhoneNumber: selectedAddress.value.contactPhoneNumber,
+      provinceCode: selectedAddress.value.provinceCode,
+      provinceContent: selectedAddress.value.provinceContent,
+      cityCode: selectedAddress.value.cityCode,
+      cityContent: selectedAddress.value.cityContent,
+      areaCode: selectedAddress.value.areaCode,
+      areaContent: selectedAddress.value.areaContent,
+      addressName: selectedAddress.value.addressName,
+      addressDetail: selectedAddress.value.addressDetail,
+      longitude: selectedAddress.value.longitude,
+      latitude: selectedAddress.value.latitude,
+      beginTime: dayjs(form.beginTime).format('YYYY-MM-DD HH:mm'),
+      endTime: dayjs(form.endTime).format('YYYY-MM-DD HH:mm'),
+      supplierEnterpriseId: form.supplierEnterpriseId,
+      enterpriseEmployeeIds: [form.enterpriseEmployeeId],
+      remark: form.remark,
+      payAccess: EnumUserBankCardAccess.WeChatPay,
     };
     let res = await standardOrderServices.addStandardOrder(params);
+    if (res) {
+      payStandardOrder(res);
+    }
   } catch (error) {}
 }
 
-async function pay() {
+async function payStandardOrder(orderId: string) {
   try {
     let params: API.PayStandardOrderCommand = {
-      id: '9e919af2-3d33-4eac-f6dc-08de429676b3',
+      id: orderId,
     };
     let res = await standardOrderServices.payStandardOrder(params);
     if (res) {
-      Taro.requestPayment({
+      await Taro.requestPayment({
         timeStamp: res.timestamp,
         nonceStr: res.nonceStr,
         package: res.package,
         signType: res.signType as any,
         paySign: res.paySign,
       });
+      Message.success('鏀粯鎴愬姛');
     }
-  } catch (error) {}
+  } catch (error) {
+  } finally {
+    Taro.redirectTo({
+      url: `${RouterPath.serciceDetail}?id=${id}`,
+    });
+  }
 }
 </script>
 
@@ -271,6 +334,26 @@
   .addStandardOrder-form {
     .nut-cell-group__wrap {
       box-shadow: none;
+
+      .input-text,
+      .h5-textarea {
+        text-align: right !important;
+      }
+    }
+  }
+
+  .order-settle-bar {
+    .order-settle-price-wrapper {
+      height: 100%;
+      flex: 1;
+      min-width: 0;
+      display: flex;
+      align-items: center;
+      margin-left: 28px;
+
+      .order-settle-price-label {
+        color: boleGetCssVar('text-color', 'primary');
+      }
     }
   }
 }

--
Gitblit v1.10.0