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/EditElectricUserAccount.vue |  123 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 123 insertions(+), 0 deletions(-)

diff --git a/packages/components/src/views/userAccount/EditElectricUserAccount.vue b/packages/components/src/views/userAccount/EditElectricUserAccount.vue
new file mode 100644
index 0000000..d094b25
--- /dev/null
+++ b/packages/components/src/views/userAccount/EditElectricUserAccount.vue
@@ -0,0 +1,123 @@
+<template>
+  <LoadingLayout :loading="isLoading">
+    <ElectricBillRechargeBaseForm 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">
+        <NutButton class="recharge-button" type="primary" @click="handleSave">
+          <div class="recharge-button-inner">
+            <div class="recharge-button-text">淇濆瓨</div>
+          </div>
+        </NutButton>
+      </div>
+    </ElectricBillRechargeBaseForm>
+  </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import ElectricBillRechargeBaseForm from '../electricBillRecharge/ElectricBillRechargeBaseForm.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 } from '../../hooks';
+import LoadingLayout from '../../components//Layout/LoadingLayout.vue';
+import { useQuery } from '@tanstack/vue-query';
+import { ElectricUserAccountExtraProperties } from '../electricBillRecharge/context';
+
+defineOptions({
+  name: 'EditElectricUserAccount',
+});
+
+type Props = {
+  id?: string;
+};
+
+const props = withDefaults(defineProps<Props>(), {});
+
+const emit = defineEmits<{
+  (e: 'success'): void;
+}>();
+
+const { blLifeRecharge } = useLifeRechargeContext();
+
+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 ElectricUserAccountExtraProperties;
+    form.electricAccount = data.content;
+    form.province = data.province;
+    form.city = data.city;
+
+    form.electricType = currentUserAccountExtraProperties.electricType;
+    form.electricAccountType = currentUserAccountExtraProperties.electricAccountType;
+    form.sixID = currentUserAccountExtraProperties.sixID;
+    form.remark = data.remark;
+  },
+  enabled: computed(() => !!props.id),
+});
+
+const form = reactive({
+  electricAccount: '',
+  electricType: '',
+  electricAccountType: '',
+  province: '',
+  city: '',
+  sixID: '',
+  remark: '',
+});
+
+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,
+      operators: form.electricType,
+      lifePayType: LifeRechargeConstants.LifePayOrderTypeEnum.鐢佃垂璁㈠崟,
+      content: form.electricAccount,
+      province: form.province,
+      city: form.city,
+      extraProperties: JSON.stringify(form),
+      remark: form.remark,
+      id: props.id,
+    };
+    await addUpdateUserAccount(params);
+    emit('success');
+  } catch (error) {}
+}
+</script>

--
Gitblit v1.9.1