From 07d73df3d817d01ce47f6c7b7a8d8514cd389295 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期四, 13 三月 2025 10:19:44 +0800 Subject: [PATCH] release: @life-payment/core v0.0.3 --- packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeBaseForm.vue | 97 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 97 insertions(+), 0 deletions(-) diff --git a/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeBaseForm.vue b/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeBaseForm.vue new file mode 100644 index 0000000..361678e --- /dev/null +++ b/packages/components/src/views/PhoneBillRecharge/PhoneBillRechargeBaseForm.vue @@ -0,0 +1,97 @@ +<template> + <NutForm + :model-value="form" + ref="formRef" + :rules="rules" + label-position="top" + class="order-bill-recharge phone" + > + <NutFormItem label="閫夋嫨杩愯惀鍟�:" class="bole-form-item" prop="ispCode" required> + <NutRadioGroup v-model="form.ispCode" direction="horizontal" @change="handleIspCodeChange"> + <BlRadio + :label="key" + v-for="(val, key) in BlLifeRecharge.constants.IspCodeText" + :key="key" + >{{ val }}</BlRadio + > + </NutRadioGroup> + </NutFormItem> + <NutFormItem label="鍏呭�兼墜鏈哄彿" class="bole-form-item" prop="phone" required> + <NutInput + v-model.trim="form.phone" + class="bole-input-text" + placeholder="璇峰~鍐欐偍闇�瑕佸厖鍊肩殑鎵嬫満鍙风爜" + type="text" + /> + </NutFormItem> + <NutFormItem + label="濮撳悕" + class="bole-form-item" + prop="name" + required + v-if="form.ispCode === BlLifeRecharge.constants.IspCode.dianxin" + > + <NutInput + v-model.trim="form.name" + class="bole-input-text" + placeholder="璇峰~鍐欐偍鐨勫鍚�" + type="text" + /> + </NutFormItem> + <slot></slot> + <NutDialog + title="鎻愮ず" + content="鐢典俊鍙厖鍊煎尯鍩熷寘鎷細骞夸笢銆佹睙鑻忋�佹箹鍖椼�佸洓宸濄�佹睙瑗裤�佹渤鍖椼�佹渤鍗椼�佺寤恒�佽窘瀹併�傚叾瀹冨尯鍩熸鍦ㄥ垎鎵规杩涜缁存姢涓紝鍦ㄦ鏈熼棿鍙兘浼氬嚭鐜板厖鍊间笉鎴愬姛骞惰嚜鍔ㄩ��娆剧殑鎯呭喌锛岃鎮ㄨ皡瑙c��" + v-model:visible="dialogVisible" + /> + </NutForm> +</template> + +<script setup lang="ts"> +import { + Form as NutForm, + 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, LifeRechargeConstants } from '@life-payment/core-vue'; + +defineOptions({ + name: 'PhoneBillRechargeBaseForm', +}); + +const form = defineModel<{ + ispCode: string; + phone: string; + name: string; +}>('form'); + +const rules = reactive<FormRules>({ + ispCode: [{ required: true, message: '璇烽�夋嫨杩愯惀鍟�' }], + phone: [ + { required: true, message: '璇疯緭鍏ュ厖鍊兼墜鏈哄彿' }, + { validator: FormValidator.validatorPhoneNumber, message: '璇疯緭鍏ユ纭殑鎵嬫満鍙�' }, + ], + 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({ + validate: computed(() => formRef.value.validate), +}); +</script> -- Gitblit v1.9.1