From 47047d626ea8fab28c04e6534fe6ffa3dc61de69 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 26 十二月 2025 16:09:22 +0800
Subject: [PATCH] feat: init

---
 apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue |  105 ++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 81 insertions(+), 24 deletions(-)

diff --git a/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue b/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue
index 7855001..5732f29 100644
--- a/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue
+++ b/apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue
@@ -58,6 +58,23 @@
           ></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 alignTop"
           prop="remark"
@@ -73,7 +90,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
       >
@@ -104,6 +125,8 @@
 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 } from '@12333/constants';
+import { Message } from '@12333/utils';
 
 defineOptions({
   name: 'InnerPage',
@@ -120,7 +143,9 @@
   beginTime: '',
   endTime: '',
   supplierEnterpriseId: '',
-  enterpriseEmployeeIds: [] as string[],
+  supplierEnterpriseName: '',
+  enterpriseEmployeeId: '',
+  enterpriseEmployeeName: '',
   remark: '',
 });
 
@@ -143,6 +168,7 @@
 const rules = reactive<FormRules>({
   beginTime: [{ required: true, message: '璇烽�夋嫨鏈嶅姟寮�濮嬫椂闂�' }],
   endTime: [{ required: true, message: '璇烽�夋嫨鏈嶅姟缁撴潫鏃堕棿' }],
+  enterpriseEmployeeId: [{ required: true, message: '璇烽�夋嫨鏈嶅姟鏈烘瀯' }],
 });
 
 const { isLoading, isError, detail, refetch } = useStandardServiceDetail({
@@ -201,12 +227,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,44 +251,51 @@
       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('鏀粯鎴愬姛');
+      Taro.redirectTo({
+        url: `${RouterPath.mineOrderDetail}?id=${orderId}`,
+      });
     }
   } catch (error) {}
 }
@@ -271,6 +308,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