| | |
| | | .par-account-list { |
| | | .nut-radio--button { |
| | | margin-bottom: 20px !important; |
| | | |
| | | &:last-child { |
| | | margin-right: 20px !important; |
| | | margin-bottom: 20px !important; |
| | | } |
| | | } |
| | | } |
| | |
| | | .pro-form-item-tips { |
| | | word-break: break-all; |
| | | } |
| | | |
| | | .nut-dialog__header { |
| | | height: 44px; |
| | | } |
| | | |
| | | .nut-dialog__footer { |
| | | .nut-button--plain { |
| | | border-width: 1px; |
| | | } |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <GasBillRechargeBaseForm ref="formRef" v-model:form="preSetForm"> |
| | | <NutFormItem label="备注信息" class="bole-form-item" prop="remark"> |
| | | <NutInput |
| | | v-model.trim="preSetForm.remark" |
| | | class="bole-input-text" |
| | | <NutTextarea |
| | | placeholder="请输入备注信息" |
| | | type="text" |
| | | max-length="30" |
| | | /> |
| | | placeholderClass="bole-input-text-placeholder" |
| | | autoSize |
| | | class="bole-input-textarea" |
| | | v-model="preSetForm.remark" |
| | | :max-length="30" |
| | | limit-show |
| | | > |
| | | </NutTextarea> |
| | | </NutFormItem> |
| | | <div class="common-content"> |
| | | <NutButton class="recharge-button" type="primary" @click="handleNext"> |
| | | <div class="recharge-button-inner"> |
| | | <div class="recharge-button-text">立即充值</div> |
| | | <div class="recharge-button-text">保存</div> |
| | | </div> |
| | | </NutButton> |
| | | <NutButton class="recharge-button" type="primary" plain @click="goToPrevious"> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { Button as NutButton, FormItem as NutFormItem, Input as NutInput } from '@nutui/nutui-taro'; |
| | | import { |
| | | Button as NutButton, |
| | | FormItem as NutFormItem, |
| | | Textarea as NutTextarea, |
| | | } from '@nutui/nutui-taro'; |
| | | import { reactive, ref, computed, watch } from 'vue'; |
| | | import GasBillRechargeBaseForm from './GasBillRechargeBaseForm.vue'; |
| | | import { useGasBillRechargeContext } from './context'; |
| | |
| | | try { |
| | | let params: LifeGasDataCreateLifePayOrderInput = { |
| | | userId: blLifeRecharge.accountModel.userId, |
| | | channelId: blLifeRecharge.accountModel.channlesNum, |
| | | productData: { |
| | | parValue: props.isDev ? 0.1 : form.parValue, |
| | | gasOrgType: form.gasOrgType, |
| | |
| | | > |
| | | <NutFormItem class="bole-form-item" prop="refundApplyRemark" required> |
| | | <NutTextarea |
| | | placeholder="请填写您需要充值的手机号码" |
| | | placeholder="请输入退款原因" |
| | | placeholderClass="bole-input-text-placeholder" |
| | | autoSize |
| | | class="bole-input-textarea" |
| | |
| | | class="order-bill-recharge phone" |
| | | > |
| | | <NutFormItem label="选择运营商:" class="bole-form-item" prop="ispCode" required> |
| | | <NutRadioGroup v-model="form.ispCode" direction="horizontal"> |
| | | <NutRadioGroup v-model="form.ispCode" direction="horizontal" @change="handleIspCodeChange"> |
| | | <BlRadio |
| | | :label="key" |
| | | v-for="(val, key) in BlLifeRecharge.constants.IspCodeText" |
| | |
| | | /> |
| | | </NutFormItem> |
| | | <slot></slot> |
| | | <NutDialog |
| | | title="提示" |
| | | content="电信可充值区域包括:广东、江苏、湖北、四川、江西、河北、河南、福建、辽宁。其它区域正在分批次进行维护中,在此期间可能会出现充值不成功并自动退款的情况,请您谅解。" |
| | | v-model:visible="dialogVisible" |
| | | /> |
| | | </NutForm> |
| | | </template> |
| | | |
| | |
| | | FormItem as NutFormItem, |
| | | RadioGroup as NutRadioGroup, |
| | | Input as NutInput, |
| | | Dialog as NutDialog, |
| | | } from '@nutui/nutui-taro'; |
| | | import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types'; |
| | | import { reactive, ref, computed } from 'vue'; |
| | | import BlRadio from '../../components/Radio/Radio.vue'; |
| | | import { FormValidator } from '../../utils'; |
| | | import { BlLifeRecharge } from '@life-payment/core-vue'; |
| | | import { BlLifeRecharge, LifeRechargeConstants } from '@life-payment/core-vue'; |
| | | |
| | | defineOptions({ |
| | | name: 'PhoneBillRechargeBaseForm', |
| | |
| | | name: [{ required: true, message: '请输入姓名' }], |
| | | }); |
| | | |
| | | const dialogVisible = ref(false); |
| | | |
| | | function handleIspCodeChange(ispCode: LifeRechargeConstants.IspCode) { |
| | | console.log('ispCode: ', ispCode); |
| | | if (ispCode === LifeRechargeConstants.IspCode.dianxin) { |
| | | dialogVisible.value = true; |
| | | } |
| | | } |
| | | |
| | | const formRef = ref<any>(null); |
| | | |
| | | defineExpose({ |
| | |
| | | <template> |
| | | <PhoneBillRechargeBaseForm ref="formRef" v-model:form="form"> |
| | | <NutFormItem label="备注信息" class="bole-form-item" prop="remark"> |
| | | <NutInput |
| | | v-model.trim="form.remark" |
| | | class="bole-input-text" |
| | | <NutTextarea |
| | | placeholder="请输入备注信息" |
| | | type="text" |
| | | max-length="30" |
| | | /> |
| | | placeholderClass="bole-input-text-placeholder" |
| | | autoSize |
| | | class="bole-input-textarea" |
| | | v-model="form.remark" |
| | | :max-length="30" |
| | | limit-show |
| | | > |
| | | </NutTextarea> |
| | | </NutFormItem> |
| | | <div class="common-content"> |
| | | <nut-button class="recharge-button" type="primary" @click="handleNext"> |
| | | <div class="recharge-button-inner"> |
| | | <div class="recharge-button-text">立即充值</div> |
| | | <div class="recharge-button-text">保存</div> |
| | | </div> |
| | | </nut-button> |
| | | <nut-button class="recharge-button" type="primary" plain @click="goToNext"> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { Button as NutButton, FormItem as NutFormItem, Input as NutInput } from '@nutui/nutui-taro'; |
| | | import { |
| | | Button as NutButton, |
| | | FormItem as NutFormItem, |
| | | Textarea as NutTextarea, |
| | | } from '@nutui/nutui-taro'; |
| | | import { reactive, ref, computed, provide } from 'vue'; |
| | | import PhoneBillRechargeBaseForm from './PhoneBillRechargeBaseForm.vue'; |
| | | import { usePhoneBillRechargeContext } from './context'; |
| | |
| | | try { |
| | | let params: LifePhoneDataCreateLifePayOrderInput = { |
| | | userId: blLifeRecharge.accountModel.userId, |
| | | channelId: blLifeRecharge.accountModel.channlesNum, |
| | | productData: { |
| | | ispCode: form.ispCode, |
| | | parValue: props.isDev ? 0.1 : form.parValue, |
| | |
| | | <template> |
| | | <ElectricBillRechargeBaseForm ref="formRef" v-model:form="form"> |
| | | <NutFormItem label="备注信息" class="bole-form-item" prop="remark"> |
| | | <NutInput |
| | | v-model.trim="form.remark" |
| | | class="bole-input-text" |
| | | <NutTextarea |
| | | placeholder="请输入备注信息" |
| | | type="text" |
| | | max-length="30" |
| | | /> |
| | | placeholderClass="bole-input-text-placeholder" |
| | | autoSize |
| | | class="bole-input-textarea" |
| | | v-model="form.remark" |
| | | :max-length="30" |
| | | limit-show |
| | | > |
| | | </NutTextarea> |
| | | </NutFormItem> |
| | | <div class="common-content"> |
| | | <nut-button class="recharge-button" type="primary" @click="handleNext"> |
| | | <div class="recharge-button-inner"> |
| | | <div class="recharge-button-text">立即充值</div> |
| | | <div class="recharge-button-text">保存</div> |
| | | </div> |
| | | </nut-button> |
| | | <nut-button class="recharge-button" type="primary" plain @click="goToNext"> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { Button as NutButton, FormItem as NutFormItem, Input as NutInput } from '@nutui/nutui-taro'; |
| | | import { |
| | | Button as NutButton, |
| | | FormItem as NutFormItem, |
| | | Input as NutInput, |
| | | Textarea as NutTextarea, |
| | | } from '@nutui/nutui-taro'; |
| | | import { reactive, ref } from 'vue'; |
| | | import { useElectricBillRechargeContext } from './context'; |
| | | import ElectricBillRechargeBaseForm from './ElectricBillRechargeBaseForm.vue'; |
| | |
| | | try { |
| | | let params: LifeElectricDataCreateLifePayOrderInput = { |
| | | userId: blLifeRecharge.accountModel.userId, |
| | | channelId: blLifeRecharge.accountModel.channlesNum, |
| | | productData: { |
| | | parValue: props.isDev ? 0.1 : form.parValue, |
| | | electricType: form.electricType, |
| | |
| | | <LoadingLayout :loading="isLoading"> |
| | | <ElectricBillRechargeBaseForm ref="formRef" v-model:form="form"> |
| | | <NutFormItem label="备注信息" class="bole-form-item" prop="remark"> |
| | | <NutInput |
| | | v-model.trim="form.remark" |
| | | class="bole-input-text" |
| | | <NutTextarea |
| | | placeholder="请输入备注信息" |
| | | type="text" |
| | | max-length="30" |
| | | /> |
| | | placeholderClass="bole-input-text-placeholder" |
| | | autoSize |
| | | class="bole-input-textarea" |
| | | v-model="form.remark" |
| | | :max-length="30" |
| | | limit-show |
| | | > |
| | | </NutTextarea> |
| | | </NutFormItem> |
| | | <div class="common-content"> |
| | | <NutButton class="recharge-button" type="primary" @click="handleSave"> |
| | |
| | | |
| | | <script setup lang="ts"> |
| | | import ElectricBillRechargeBaseForm from '../electricBillRecharge/ElectricBillRechargeBaseForm.vue'; |
| | | import { Button as NutButton } from '@nutui/nutui-taro'; |
| | | import { Button as NutButton, Textarea as NutTextarea } from '@nutui/nutui-taro'; |
| | | import { reactive, ref, computed } from 'vue'; |
| | | import { |
| | | useLifeRechargeContext, |
| | |
| | | </NutFormItem> |
| | | </template> |
| | | <NutFormItem label="备注信息" class="bole-form-item" prop="remark"> |
| | | <NutInput |
| | | v-model.trim="form.remark" |
| | | class="bole-input-text" |
| | | <NutTextarea |
| | | placeholder="请输入备注信息" |
| | | type="text" |
| | | max-length="30" |
| | | /> |
| | | placeholderClass="bole-input-text-placeholder" |
| | | autoSize |
| | | class="bole-input-textarea" |
| | | v-model="form.remark" |
| | | :max-length="30" |
| | | limit-show |
| | | > |
| | | </NutTextarea> |
| | | </NutFormItem> |
| | | <div class="common-content"> |
| | | <NutButton class="recharge-button" type="primary" @click="handleSave"> |
| | |
| | | |
| | | <script setup lang="ts"> |
| | | import GasBillRechargeBaseForm from '../GasBillRecharge/GasBillRechargeBaseForm.vue'; |
| | | import { Button as NutButton } from '@nutui/nutui-taro'; |
| | | import { Button as NutButton, Textarea as NutTextarea } from '@nutui/nutui-taro'; |
| | | import { reactive, ref, computed } from 'vue'; |
| | | import { |
| | | useLifeRechargeContext, |
| | |
| | | <LoadingLayout :loading="isLoading"> |
| | | <PhoneBillRechargeBaseForm ref="formRef" v-model:form="form"> |
| | | <NutFormItem label="备注信息" class="bole-form-item" prop="remark"> |
| | | <NutInput |
| | | v-model.trim="form.remark" |
| | | class="bole-input-text" |
| | | <NutTextarea |
| | | placeholder="请输入备注信息" |
| | | type="text" |
| | | max-length="30" |
| | | /> |
| | | placeholderClass="bole-input-text-placeholder" |
| | | autoSize |
| | | class="bole-input-textarea" |
| | | v-model="form.remark" |
| | | :max-length="30" |
| | | limit-show |
| | | > |
| | | </NutTextarea> |
| | | </NutFormItem> |
| | | <div class="common-content"> |
| | | <NutButton class="recharge-button" type="primary" @click="handleSave"> |
| | |
| | | |
| | | <script setup lang="ts"> |
| | | import PhoneBillRechargeBaseForm from '../PhoneBillRecharge/PhoneBillRechargeBaseForm.vue'; |
| | | import { Button as NutButton } from '@nutui/nutui-taro'; |
| | | import { Button as NutButton, Textarea as NutTextarea } from '@nutui/nutui-taro'; |
| | | import { reactive, ref, computed } from 'vue'; |
| | | import { |
| | | useLifeRechargeContext, |
| | |
| | | this.accountModel = new BlLifeRechargeAccountModel({ |
| | | userId: options.userId, |
| | | phoneNumber: options.phoneNumber, |
| | | channlesNum: options.channlesNum, |
| | | }); |
| | | } |
| | | |
| | |
| | | ...axiosConfig, |
| | | // baseURL: process.env.NODE_ENV === 'development' ? '/' : 'https://api.81812333.com', |
| | | requestInterceptors: [ |
| | | // [ |
| | | // (config) => { |
| | | // console.log('config2: ', config); |
| | | // return config; |
| | | // }, |
| | | // ], |
| | | [ |
| | | (config) => { |
| | | if (config.params) { |
| | | config.params.checkChannelId = this.ctx.accountModel.channlesNum; |
| | | } |
| | | if (config.data) { |
| | | config.data.checkChannelId = this.ctx.accountModel.channlesNum; |
| | | } |
| | | return config; |
| | | }, |
| | | ], |
| | | ...axiosConfig.requestInterceptors, |
| | | ], |
| | | timeout: 10 * 1000, |
| | |
| | | } |
| | | |
| | | /** 根据订单号获取支付状态 GET /api/LifePay/GetPayStatusByOrderNo */ |
| | | async getPayStatusByOrderNo(params: APIgetPayStatusByOrderNoParams, options?: RequestConfig) { |
| | | async getPayStatusByOrderNo(body: GetPayStatusByOrderNoInput, options?: RequestConfig) { |
| | | return this.request<LifeRechargeConstants.LifePayStatusEnum>( |
| | | '/api/LifePay/GetPayStatusByOrderNo', |
| | | { |
| | | method: 'GET', |
| | | params: { |
| | | ...params, |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | } |
| | | ); |
| | |
| | | |
| | | export interface LifePhoneDataCreateLifePayOrderInput { |
| | | userId?: string; |
| | | /** 渠道Id */ |
| | | channelId?: string; |
| | | productData?: LifePhoneData; |
| | | } |
| | | |
| | |
| | | |
| | | export interface LifeElectricDataCreateLifePayOrderInput { |
| | | userId?: string; |
| | | /** 渠道Id */ |
| | | channelId?: string; |
| | | productData?: LifeElectricData; |
| | | } |
| | | |
| | |
| | | |
| | | export interface LifeGasDataCreateLifePayOrderInput { |
| | | userId?: string; |
| | | /** 渠道Id */ |
| | | channelId?: string; |
| | | productData?: LifeGasData; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | export interface ChannelsBaseInput { |
| | | channelId?: string; |
| | | checkChannelId?: string; |
| | | } |
| | | |
| | | export interface AreaInfo { |
| | |
| | | /** 快速检索 */ |
| | | quickQuery?: string; |
| | | } |
| | | |
| | | export interface GetPayStatusByOrderNoInput { |
| | | checkChannelId?: string; |
| | | orderNo?: string; |
| | | } |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 根据订单号获取支付状态 GET /api/LifePay/GetPayStatusByOrderNo */ |
| | | /** 根据订单号获取支付状态 POST /api/LifePay/GetPayStatusByOrderNo */ |
| | | export async function getPayStatusByOrderNo( |
| | | body: API.GetPayStatusByOrderNoInput, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<API.LifePayStatusEnum>('/api/LifePay/GetPayStatusByOrderNo', { |
| | | method: 'GET', |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json', |
| | | }, |
| | |
| | | } |
| | | |
| | | interface AddUpdateUserAccountInput { |
| | | checkChannelId?: string; |
| | | id?: string; |
| | | /** 用户编号 */ |
| | | userId?: string; |
| | |
| | | |
| | | interface LifeElectricDataCreateLifePayOrderInput { |
| | | userId?: string; |
| | | /** 渠道Id */ |
| | | /** 渠道名称 */ |
| | | channelId?: string; |
| | | checkChannelId?: string; |
| | | productData?: LifeElectricData; |
| | |
| | | |
| | | interface LifeGasDataCreateLifePayOrderInput { |
| | | userId?: string; |
| | | /** 渠道Id */ |
| | | /** 渠道名称 */ |
| | | channelId?: string; |
| | | checkChannelId?: string; |
| | | productData?: LifeGasData; |
| | |
| | | |
| | | interface LifePhoneDataCreateLifePayOrderInput { |
| | | userId?: string; |
| | | /** 渠道Id */ |
| | | /** 渠道名称 */ |
| | | channelId?: string; |
| | | checkChannelId?: string; |
| | | productData?: LifePhoneData; |
| | |
| | | } |
| | | |
| | | interface QueryUserAccountAllListInput { |
| | | checkChannelId?: string; |
| | | /** 用户Id */ |
| | | userId?: string; |
| | | lifePayOrderType?: LifePayOrderTypeEnum; |
| | |
| | | } |
| | | |
| | | interface RefundUserLifePayOrderInput { |
| | | checkChannelId?: string; |
| | | id?: string; |
| | | /** 用户Id */ |
| | | userId?: string; |