zhengyiming
2025-06-09 f5105689af0ccee7d34632e8f8b47a66abda0884
Merge branch 'dev-ui' of http://120.26.58.240:8888/r/LifePaymentFront into dev-ui
6个文件已修改
119 ■■■■ 已修改文件
apps/taro/src/subpackages/my/applyAgent/applyAgent.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/my/applyResult/applyResult.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/my/generatePromotionCode/generatePromotionCode.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/Mine/ApplyAgentView.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/components/src/views/Mine/GeneratePromotionCodeView.vue 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/core/src/lifeRechargeServices.ts 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
apps/taro/src/subpackages/my/applyAgent/applyAgent.vue
@@ -13,7 +13,6 @@
import { PageLayout } from '@/components';
import { RouterPath } from '@/constants';
import { ApplyAgentView } from '@life-payment/components';
import { goBack } from '@/utils';
import type { ComponentExposed } from 'vue-component-type-helpers';
defineOptions({
@@ -27,9 +26,9 @@
  applyAgentViewRef.value?.handleSubmit?.();
}
function submit() {
function submit(value: string) {
  RouteHelper.navigateTo({
    url: RouterPath.applyResult,
    url: `${RouterPath.applyResult}?promoterIdNumber=${value}`,
  });
}
</script>
apps/taro/src/subpackages/my/applyResult/applyResult.vue
@@ -12,14 +12,19 @@
<script setup lang="ts">
import { PageLayout } from '@/components';
import { ResultWithoutBG } from '@life-payment/components';
import Taro from '@tarojs/taro';
defineOptions({
  name: 'applyAgent',
});
const router = Taro.useRouter();
const promoterIdNumber = router.params?.promoterIdNumber ?? '';
function generate() {
  RouteHelper.navigateTo({
    url: RouterPath.promotionQrcode,
    url: `${RouterPath.generatePromotionCode}?promoterIdNumber=${promoterIdNumber}`,
  });
}
</script>
apps/taro/src/subpackages/my/generatePromotionCode/generatePromotionCode.vue
@@ -18,8 +18,8 @@
import { PageLayout } from '@/components';
import { RouterPath } from '@/constants';
import { GeneratePromotionCodeView } from '@life-payment/components';
import { goBack } from '@/utils';
import type { ComponentExposed } from 'vue-component-type-helpers';
import Taro from '@tarojs/taro';
defineOptions({
  name: 'generatePromotionCode',
@@ -33,9 +33,9 @@
  generatePromotionCodeViewRef.value?.handleSubmit?.();
}
function submit() {
function submit(value: string) {
  RouteHelper.navigateTo({
    url: RouterPath.applyResult,
    url: `${RouterPath.promotionQrcode}?promoterIdNumber=${value}`,
  });
}
</script>
packages/components/src/views/Mine/ApplyAgentView.vue
@@ -30,22 +30,22 @@
        type="text"
      />
    </NutFormItem>
    <NutFormItem label="意向代理类型" class="bole-form-item" prop="type" required>
    <NutFormItem label="意向代理类型" class="bole-form-item" prop="agentType" required>
      <ChooseInputWithPicker
        v-model="form.type"
        v-model="form.agentType"
        placeholder="请选择您想申请的代理类型"
        :value-enum="[]"
        :value-enum="LifeRechargeConstants.LifePayChannelAgentTypeText"
        enum-label-key="gasOrgName"
        enum-value-key="gasOrgCode"
      />
    </NutFormItem>
    <NutFormItem label="客户资源" class="bole-form-item" prop="refundApplyRemark">
    <NutFormItem label="客户资源" class="bole-form-item" prop="customerResources">
      <NutTextarea
        placeholder="请填写您拥有的客户资源"
        placeholderClass="bole-input-text-placeholder"
        autoSize
        class="bole-input-textarea"
        v-model="form.refundApplyRemark"
        v-model="form.customerResources"
        :max-length="200"
        limit-show
      >
@@ -63,24 +63,33 @@
} from '@nutui/nutui-taro';
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { reactive, ref, computed } from 'vue';
import { useLifeRechargeContext } from '@life-payment/core-vue';
import {
  CreateChannelConsultationInput,
  LifeRechargeConstants,
  useLifeRechargeContext,
} from '@life-payment/core-vue';
import { FormValidator } from '../../utils';
import ChooseInputWithPicker from '../../components/Input/ChooseInputWithPicker.vue';
import Taro from '@tarojs/taro';
defineOptions({
  name: 'ApplyAgentView',
});
const emit = defineEmits<{
  (e: 'submit'): void;
  (e: 'submit', value: string): void;
}>();
const router = Taro.useRouter();
const promoterIdNumber = router.params?.promoterIdNumber ?? '';
const form = reactive({
  companyName: '',
  name: '',
  phoneNumber: '',
  type: '',
  refundApplyRemark: '',
  agentType: '' as any as LifeRechargeConstants.LifePayChannelAgentType,
  customerResources: '',
});
const rules = reactive<FormRules>({
@@ -89,7 +98,7 @@
    { required: true, message: '请填写您的联系方式' },
    { validator: FormValidator.validatorPhoneNumber, message: '请输入正确的手机号' },
  ],
  type: [{ required: true, message: '请选择您想申请的代理类型' }],
  agentType: [{ required: true, message: '请选择您想申请的代理类型' }],
});
const { blLifeRecharge } = useLifeRechargeContext();
@@ -100,19 +109,27 @@
  if (!formRef.value) return;
  formRef.value.validate().then(({ valid, errors }: any) => {
    if (valid) {
      refundUserLifePayOrder();
      createChannelConsultation();
    }
  });
}
async function refundUserLifePayOrder() {
async function createChannelConsultation() {
  try {
    let params = {
    let params: CreateChannelConsultationInput = {
      userId: blLifeRecharge.accountModel.userId,
      refundApplyRemark: form.refundApplyRemark,
      idNumber: promoterIdNumber,
      name: form.name,
      agentType: form.agentType,
      phoneNumber: form.phoneNumber,
      companyName: form.companyName,
      customerResources: form.customerResources,
    };
    let res = await blLifeRecharge.services.refundUserLifePayOrder(params);
    emit('submit');
    console.log('params: ', params);
    let res = await blLifeRecharge.services.createChannelConsultation(params);
    if (res) {
      emit('submit', res);
    }
  } catch (error) {}
}
packages/components/src/views/Mine/GeneratePromotionCodeView.vue
@@ -29,16 +29,21 @@
import { Form as NutForm, FormItem as NutFormItem, Input as NutInput } from '@nutui/nutui-taro';
import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
import { reactive, ref } from 'vue';
import { useLifeRechargeContext } from '@life-payment/core-vue';
import { CreateOrUpdatePromoterInput, useLifeRechargeContext } from '@life-payment/core-vue';
import { FormValidator } from '../../utils';
import Taro from '@tarojs/taro';
defineOptions({
  name: 'ApplyAgentView',
});
const emit = defineEmits<{
  (e: 'submit'): void;
  (e: 'submit', data: string): void;
}>();
const router = Taro.useRouter();
const promoterIdNumber = router.params?.promoterIdNumber ?? '';
const form = reactive({
  name: '',
@@ -68,12 +73,16 @@
async function refundUserLifePayOrder() {
  try {
    // let params = {
    //   userId: blLifeRecharge.accountModel.userId,
    //   refundApplyRemark: form.refundApplyRemark,
    // };
    // let res = await blLifeRecharge.services.refundUserLifePayOrder(params);
    emit('submit');
    let params: CreateOrUpdatePromoterInput = {
      userId: blLifeRecharge.accountModel.userId,
      idNumber: promoterIdNumber,
      name: form.name,
      phoneNumber: form.phoneNumber,
    };
    let res = await blLifeRecharge.services.createOrUpdatePromoter(params);
    if (res) {
      emit('submit', res);
    }
  } catch (error) {}
}
packages/core/src/lifeRechargeServices.ts
@@ -422,6 +422,18 @@
      ...(options || {}),
    });
  }
  /** 创建或更新推广员 POST /api/Promoter/CreateOrUpdatePromoter */
  async createOrUpdatePromoter(body: API.CreateOrUpdatePromoterInput, options?: API.RequestConfig) {
    return this.request<string>('/api/Promoter/CreateOrUpdatePromoter', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    });
  }
}
export interface PhoneMesssageCodeLoginInput {
@@ -945,3 +957,18 @@
  /** 客户资源 */
  customerResources?: string;
}
export interface CreateOrUpdatePromoterInput {
  /** Id */
  id?: string;
  /** 客户端用户Id 如有 */
  userId?: string;
  /** ID */
  idNumber?: string;
  /** 推广员 */
  name?: string;
  /** 联系方式 */
  phoneNumber?: string;
  /** 备注 */
  remark?: string;
}