zhengyiming
2025-04-17 60b9c62a3165f304a933cbac304ac3d43a24f722
packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeStep1.vue
@@ -1,9 +1,26 @@
<template>
  <PhoneBillRechargeBaseForm ref="formRef" v-model:form="form">
    <NutFormItem label="备注信息" class="bole-form-item" prop="remark">
      <NutTextarea
        placeholder="请输入备注信息"
        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">
        <div class="recharge-button-inner">
          <div class="recharge-button-text">返回</div>
        </div>
      </nut-button>
    </div>
@@ -12,38 +29,31 @@
<script setup lang="ts">
import {
  Form as NutForm,
  FormItem as NutFormItem,
  RadioGroup as NutRadioGroup,
  Radio as NutRadio,
  Input as NutInput,
  Button as NutButton,
  FormItem as NutFormItem,
  Textarea as NutTextarea,
} from '@nutui/nutui-taro';
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { reactive, ref, computed, provide } from 'vue';
import BlRadio from '../../components/Radio/Radio.vue';
import { FormValidator } from '../../utils';
import {
  useLifeRechargeContext,
  BlLifeRecharge,
  LifePhoneDataCreateLifePayOrderInput,
  LifeRechargeConstants,
} from '@life-payment/core-vue';
import RechargeTipsView from '../../components/RechargeTipsView/RechargeTipsView.vue';
import ConfirmDialog from '../../components/Dialog/ConfirmDialog.vue';
import ConfirmDialogInfoItem from '../../components/Dialog/ConfirmDialogInfoItem.vue';
import { useGetRate, useGetPhoneParValue } from '../../hooks';
import PhoneBillRechargeBaseForm from './PhoneBillRechargeBaseForm.vue';
import { usePhoneBillRechargeContext } from './context';
import {
  useLifeRechargeContext,
  LifeRechargeConstants,
  AddUpdateUserAccountInput,
} from '@life-payment/core-vue';
import { useAddUpdateUserAccount } from '../../hooks';
defineOptions({
  name: 'PhoneBillRechargeStep1',
});
const { blLifeRecharge } = useLifeRechargeContext();
const form = reactive({
  ispCode: '',
  phone: '',
  ispCode: blLifeRecharge.getCarrierByPhoneNumber(blLifeRecharge.accountModel.phoneNumber),
  phone: blLifeRecharge.accountModel.phoneNumber,
  name: '',
  remark: '',
});
const { goToNext } = usePhoneBillRechargeContext();
@@ -54,8 +64,25 @@
  if (!formRef.value) return;
  formRef.value.validate().then(({ valid, errors }: any) => {
    if (valid) {
      goToNext();
      handleAddUpdateUserAccount();
    }
  });
}
const { addUpdateUserAccount } = useAddUpdateUserAccount();
async function handleAddUpdateUserAccount() {
  try {
    let params: AddUpdateUserAccountInput = {
      userId: blLifeRecharge.accountModel.userId,
      operators: form.ispCode,
      lifePayType: LifeRechargeConstants.LifePayOrderTypeEnum.话费订单,
      content: form.phone,
      extraProperties: JSON.stringify(form),
      remark: form.remark,
    };
    await addUpdateUserAccount(params);
    goToNext();
  } catch (error) {}
}
</script>