| | |
| | | ></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" |
| | |
| | | </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 |
| | | > |
| | |
| | | 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', |
| | |
| | | beginTime: '', |
| | | endTime: '', |
| | | supplierEnterpriseId: '', |
| | | enterpriseEmployeeIds: [] as string[], |
| | | supplierEnterpriseName: '', |
| | | 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) { |
| | | 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) {} |
| | | } |
| | |
| | | .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'); |
| | | } |
| | | } |
| | | } |
| | | } |