<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>
|