wupengfei
10 小时以前 f94468cc4f52ca3a68817592e4ff92f815c835c7
apps/housekeepingMiniApp/src/subpackages/sercice/addStandardOrder/InnerPage.vue
@@ -60,17 +60,18 @@
        <nut-form-item
          label="服务机构:"
          class="bole-form-item"
          prop="supplierEnterpriseId"
          prop="enterpriseEmployeeId"
          label-width="90px"
        >
          <ChooseInputWithDatePicker
            v-model="form.endTime"
            :minDate="endMinTime"
            :maxDate="endMaxTime"
          <ChooseInputWithSuppliers
            v-model:supplierEnterpriseId="form.supplierEnterpriseId"
            placeholder="请选择"
            type="datetime"
            format="YYYY-MM-DD HH:mm:ss"
          ></ChooseInputWithDatePicker>
            :serviceId="id"
            :beginTime="form.beginTime"
            :endTime="form.endTime"
            v-model:enterpriseEmployeeId="form.enterpriseEmployeeId"
            v-model:enterpriseEmployeeName="form.enterpriseEmployeeName"
          ></ChooseInputWithSuppliers>
        </nut-form-item>
        <nut-form-item
          label="备注:"
@@ -89,6 +90,10 @@
      </nut-form>
    </ContentScrollView>
    <PageFooter>
      <div class="addStandardOrder-price-wrapper">
        <div class="addStandardOrder-price-text">支付:</div>
        <nut-price :price="totlePrice" size="large" />
      </div>
      <PageFooterBtn type="primary" class="business-card-btn" @click="goConfirm"
        >立即下单</PageFooterBtn
      >
@@ -119,6 +124,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',
@@ -136,6 +143,7 @@
  endTime: '',
  supplierEnterpriseId: '',
  enterpriseEmployeeId: '',
  enterpriseEmployeeName: '',
  remark: '',
});
@@ -158,6 +166,7 @@
const rules = reactive<FormRules>({
  beginTime: [{ required: true, message: '请选择服务开始时间' }],
  endTime: [{ required: true, message: '请选择服务结束时间' }],
  enterpriseEmployeeId: [{ required: true, message: '请选择服务机构' }],
});
const { isLoading, isError, detail, refetch } = useStandardServiceDetail({
@@ -216,12 +225,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();
    }
  });
}
@@ -236,44 +249,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) {
      pay(res);
    }
  } catch (error) {}
}
async function pay() {
async function pay(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) {}
}
@@ -293,5 +313,18 @@
      }
    }
  }
  .addStandardOrder-price-wrapper {
    display: flex;
    flex: 2;
    min-width: 0;
    align-items: center;
    padding-left: 28px;
    .addStandardOrder-price-text {
      font-size: 32px;
      color: boleGetCssVar('text-color', 'primary');
    }
  }
}
</style>