| | |
| | | <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="备注:" |
| | |
| | | </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 |
| | | > |
| | |
| | | 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', |
| | |
| | | endTime: '', |
| | | supplierEnterpriseId: '', |
| | | enterpriseEmployeeId: '', |
| | | enterpriseEmployeeName: '', |
| | | remark: '', |
| | | }); |
| | | |
| | |
| | | const rules = reactive<FormRules>({ |
| | | beginTime: [{ required: true, message: '请选择服务开始时间' }], |
| | | endTime: [{ required: true, message: '请选择服务结束时间' }], |
| | | enterpriseEmployeeId: [{ required: true, message: '请选择服务机构' }], |
| | | }); |
| | | |
| | | const { isLoading, isError, detail, refetch } = useStandardServiceDetail({ |
| | |
| | | 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(); |
| | | } |
| | | }); |
| | | } |
| | |
| | | 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) {} |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .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> |