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/userAccount/EditGasUserAccount.vue | 133 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 133 insertions(+), 0 deletions(-) diff --git a/packages/components/src/views/userAccount/EditGasUserAccount.vue b/packages/components/src/views/userAccount/EditGasUserAccount.vue new file mode 100644 index 0000000..f03cd9c --- /dev/null +++ b/packages/components/src/views/userAccount/EditGasUserAccount.vue @@ -0,0 +1,133 @@ +<template> + <LoadingLayout :loading="isLoading"> + <GasBillRechargeBaseForm ref="formRef" v-model:form="form"> + <template #top> + <NutFormItem label="鐕冩皵绫诲瀷" class="bole-form-item" prop="gasOrgType" required> + <ChooseInputWithPicker + v-model="form.gasOrgType" + placeholder="璇烽�夋嫨鐕冩皵绫诲瀷" + :value-enum="gasParValueList" + enum-label-key="gasOrgName" + enum-value-key="gasOrgCode" + /> + </NutFormItem> + </template> + <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"> + <NutButton class="recharge-button" type="primary" @click="handleSave"> + <div class="recharge-button-inner"> + <div class="recharge-button-text">淇濆瓨</div> + </div> + </NutButton> + </div> + </GasBillRechargeBaseForm> + </LoadingLayout> +</template> + +<script setup lang="ts"> +import GasBillRechargeBaseForm from '../GasBillRecharge/GasBillRechargeBaseForm.vue'; +import { Button as NutButton, Textarea as NutTextarea } from '@nutui/nutui-taro'; +import { reactive, ref, computed } from 'vue'; +import { + useLifeRechargeContext, + LifeRechargeConstants, + AddUpdateUserAccountInput, +} from '@life-payment/core-vue'; +import { useAddUpdateUserAccount, useGetGasParValue } from '../../hooks'; +import LoadingLayout from '../../components//Layout/LoadingLayout.vue'; +import ChooseInputWithPicker from '../../components//Input/ChooseInputWithPicker.vue'; +import { useQuery } from '@tanstack/vue-query'; +import { GasUserAccountExtraProperties } from '../GasBillRecharge/context'; + +defineOptions({ + name: 'EditGasUserAccount', +}); + +type Props = { + id?: string; +}; + +const props = withDefaults(defineProps<Props>(), {}); + +const emit = defineEmits<{ + (e: 'success'): void; +}>(); + +const { blLifeRecharge } = useLifeRechargeContext(); + +const { gasParValueList } = useGetGasParValue(); + +const { isLoading } = useQuery({ + queryKey: ['blLifeRecharge/getUserAccountDetail', props.id], + queryFn: async () => { + return await blLifeRecharge.services.getUserAccountDetail( + { id: props.id }, + { + showLoading: false, + } + ); + }, + onSuccess(data) { + const currentUserAccountExtraProperties = JSON.parse( + data.extraProperties + ) as GasUserAccountExtraProperties; + form.gasAccount = data.content; + form.areaList = [data.province, data.city]; + form.gasOrgType = data.operators as any; + + form.remark = data.remark; + }, + enabled: computed(() => !!props.id), +}); + +const form = reactive({ + gasOrgType: '', + // province: '', + // city: '', + gasAccount: '', + remark: '', + areaList: [] as string[], +}); + +const formRef = ref<any>(null); + +function handleSave() { + if (!formRef.value) return; + formRef.value.validate().then(({ valid, errors }: any) => { + if (valid) { + handleAddUpdateUserAccount(); + } + }); +} + +const { addUpdateUserAccount } = useAddUpdateUserAccount(); + +async function handleAddUpdateUserAccount() { + try { + let params: AddUpdateUserAccountInput = { + userId: blLifeRecharge.accountModel.userId, + lifePayType: LifeRechargeConstants.LifePayOrderTypeEnum.鐕冩皵璁㈠崟, + content: form.gasAccount, + province: form.areaList?.[0] ?? '', + city: form.areaList?.[1] ?? '', + extraProperties: JSON.stringify(form), + remark: form.remark, + operators: form.gasOrgType, + id: props.id, + }; + await addUpdateUserAccount(params); + emit('success'); + } catch (error) {} +} +</script> -- Gitblit v1.9.1