//新增页面
export const addFormSchema: FormSchema[] = [
{ label: 'id', field: 'id', component: 'Input', labelWidth: '120px', show: false },
{
label: '标题',
field: 'title',
component: 'Input',
labelWidth: '120px',
required: true,
},
{
label: '来源',
field: 'source',
component: 'RadioGroup',
labelWidth: '120px',
componentProps: ({ formModel, formActionType }) => {
return {
options: [
{
label: '系统',
value: 0,
},
{
label: '外部',
value: 1,
},
],
onChange: (e: any) => {
if (e.target.value == 0) {
// console.log('dd', e.target.value == 1);
// formModel.receiver = undefined; // reset city value
const { updateSchema } = formActionType;
updateSchema([
{
label: '链接',
field: 'externalLink',
component: 'Input',
labelWidth: '120px',
},
]);
} else {
console.log('aa', addFormSchema);
}
},
};
},]
<template>
<BasicModal
v-bind="$attrs"
@register="registerModal"
:title="getTitle"
@ok="handleSubmit()"
class="replayModal"
>
<BasicForm @register="registerForm" class="addForm" />
</BasicModal>
</template>
<script lang="ts" setup>
import { ref, computed } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { BasicForm, useForm } from '/@/components/Form/index';
import { addFormSchema, formSchema } from './data';
import { useMessage } from '/@/hooks/web/useMessage';
import { lnsSet } from '/@/api/psp/lns';
const emit = defineEmits(['success', 'register']);
const { createMessage } = useMessage();
const isUpdate = ref(true);
const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
labelWidth: 40,
schemas: addFormSchema,
showActionButtonGroup: false,
actionColOptions: {
span: 24,
},
});
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields();
setModalProps({
confirmLoading: false,
title: '新增生活快讯',
});
isUpdate.value = !!data?.isUpdate;
setFieldsValue(data.record.id == undefined ? { source: 1, isTop: 1 } : { ...data.record });
});
const getTitle = computed(() => '新增生活快讯');
async function handleSubmit() {
try {
setModalProps({ confirmLoading: true });
const values = await validate();
console.log(values);
await lnsSet(values).then(() => {
createMessage.success('操作成功');
closeModal();
});
emit('success');
} finally {
setModalProps({ confirmLoading: false });
}
}
</script>