wupengfei
8 小时以前 47047d626ea8fab28c04e6534fe6ffa3dc61de69
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');
      }
    }
  }
}