dataModal.vue.vm 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <template>
  2. <BasicModal v-bind="$attrs" @@register="registerModal" :width="700" :title="getTitle" @@ok="handleSubmit">
  3. <BasicForm @@register="registerForm" />
  4. </BasicModal>
  5. </template>
  6. <script lang="ts">
  7. import { defineComponent, ref, computed, unref } from 'vue';
  8. import { BasicModal, useModalInner } from '/@@/components/Modal';
  9. import { BasicForm, useForm } from '/@@/components/Form/index';
  10. import { formSchema } from './data.data';
  11. import { add@(Model.ClassName), update@(Model.ClassName) } from '/@@/api/main/@(Model.ClassName)';
  12. export default defineComponent({
  13. components: { BasicModal, BasicForm },
  14. emits: ['success', 'register'],
  15. setup(_, { emit }) {
  16. const isUpdate = ref(true);
  17. const [registerForm, { setFieldsValue, resetFields, validate }] = useForm({
  18. labelWidth: 100,
  19. schemas: formSchema,
  20. showActionButtonGroup: false,
  21. actionColOptions: {
  22. span: 23,
  23. },
  24. });
  25. const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
  26. resetFields();
  27. setModalProps({ confirmLoading: false });
  28. isUpdate.value = !!data?.isUpdate;
  29. if (unref(isUpdate)) {
  30. setFieldsValue({
  31. ...data.record,
  32. });
  33. @foreach (var column in Model.TableField){
  34. if(column.EffectType == "Upload"){
  35. @:if (data.record.@(column.LowerPropertyName)) {
  36. @:setFieldsValue({
  37. @:@(column.LowerPropertyName): [data.record.@(column.LowerPropertyName)Attachment],
  38. @:});
  39. @:}
  40. }
  41. }
  42. }
  43. });
  44. const getTitle = computed(() => (!unref(isUpdate) ? '新增@(Model.BusName)' : '编辑@(Model.BusName)'));
  45. async function handleSubmit() {
  46. try {
  47. var values = await validate();
  48. @foreach (var column in Model.TableField){
  49. if(column.EffectType == "Upload"){
  50. @:if (values.@(column.LowerPropertyName)) {
  51. @:values = { ...values, @(column.LowerPropertyName): values.@(column.LowerPropertyName)[0].id };
  52. @:}
  53. }
  54. }
  55. setModalProps({ confirmLoading: true });
  56. if (!unref(isUpdate)) {
  57. await add@(Model.ClassName)(values);
  58. } else {
  59. await update@(Model.ClassName)(values);
  60. }
  61. closeModal();
  62. emit('success');
  63. } finally {
  64. setModalProps({ confirmLoading: false });
  65. }
  66. }
  67. return { registerModal, registerForm, getTitle, handleSubmit };
  68. },
  69. });
  70. </script>