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