From e372854c71bc97d162452cc4b3f5cfa586da50a8 Mon Sep 17 00:00:00 2001 From: wupengfei <834520024@qq.com> Date: 星期四, 22 五月 2025 17:06:31 +0800 Subject: [PATCH] feat: UI --- packages/components/src/views/Mine/ApplyAgentView.vue | 122 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 122 insertions(+), 0 deletions(-) diff --git a/packages/components/src/views/Mine/ApplyAgentView.vue b/packages/components/src/views/Mine/ApplyAgentView.vue new file mode 100644 index 0000000..fe3521d --- /dev/null +++ b/packages/components/src/views/Mine/ApplyAgentView.vue @@ -0,0 +1,122 @@ +<template> + <NutForm + :model-value="form" + ref="formRef" + :rules="rules" + label-position="top" + class="order-bill-recharge phone chunk-form" + > + <NutFormItem label="鍏徃鍚嶇О" class="bole-form-item" prop="companyName"> + <NutInput + v-model.trim="form.companyName" + class="bole-input-text" + placeholder="璇峰~鍐欐偍鐨勫叕鍙稿悕绉�" + type="text" + /> + </NutFormItem> + <NutFormItem label="濮撳悕" class="bole-form-item" prop="name" required> + <NutInput + v-model.trim="form.name" + class="bole-input-text" + placeholder="璇峰~鍐欐偍鐨勫鍚�" + type="text" + /> + </NutFormItem> + <NutFormItem label="鑱旂郴鏂瑰紡" class="bole-form-item" prop="phoneNumber" required> + <NutInput + v-model.trim="form.phoneNumber" + class="bole-input-text" + placeholder="璇峰~鍐欐偍鐨勮仈绯绘柟寮�" + type="text" + /> + </NutFormItem> + <NutFormItem label="鎰忓悜浠g悊绫诲瀷 " class="bole-form-item" prop="type" required> + <ChooseInputWithPicker + v-model="form.type" + placeholder="璇烽�夋嫨鎮ㄦ兂鐢宠鐨勪唬鐞嗙被鍨�" + :value-enum="[]" + enum-label-key="gasOrgName" + enum-value-key="gasOrgCode" + /> + </NutFormItem> + <NutFormItem label="瀹㈡埛璧勬簮" class="bole-form-item" prop="refundApplyRemark" required> + <NutTextarea + placeholder="璇峰~鍐欐偍鎷ユ湁鐨勫鎴疯祫婧�" + placeholderClass="bole-input-text-placeholder" + autoSize + class="bole-input-textarea" + v-model="form.refundApplyRemark" + :max-length="200" + limit-show + > + </NutTextarea> + </NutFormItem> + </NutForm> +</template> + +<script setup lang="ts"> +import { + Form as NutForm, + FormItem as NutFormItem, + Input as NutInput, + Textarea as NutTextarea, +} 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 { FormValidator } from '../../utils'; +import ChooseInputWithPicker from '../../components/Input/ChooseInputWithPicker.vue'; + +defineOptions({ + name: 'ApplyAgentView', +}); + +const emit = defineEmits<{ + (e: 'submit'): void; +}>(); + +const form = reactive({ + companyName: '', + name: '', + phoneNumber: '', + type: '', + refundApplyRemark: '', +}); + +const rules = reactive<FormRules>({ + name: [{ required: true, message: '璇峰~鍐欐偍鐨勫鍚�' }], + phoneNumber: [ + { required: true, message: '璇峰~鍐欐偍鐨勮仈绯绘柟寮�' }, + { validator: FormValidator.validatorPhoneNumber, message: '璇疯緭鍏ユ纭殑鎵嬫満鍙�' }, + ], + refundApplyRemark: [{ required: true, message: '璇疯緭鍏ラ��娆惧師鍥�' }], +}); + +const { blLifeRecharge } = useLifeRechargeContext(); + +const formRef = ref<any>(null); + +function handleSubmit() { + if (!formRef.value) return; + formRef.value.validate().then(({ valid, errors }: any) => { + if (valid) { + refundUserLifePayOrder(); + } + }); +} + +async function refundUserLifePayOrder() { + try { + let params = { + userId: blLifeRecharge.accountModel.userId, + refundApplyRemark: form.refundApplyRemark, + }; + let res = await blLifeRecharge.services.refundUserLifePayOrder(params); + emit('submit'); + } catch (error) {} +} + +defineExpose({ + handleSubmit, +}); +</script> -- Gitblit v1.9.1