deliveryNoticeFormModal.vue 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <template>
  2. <BasicModal v-bind="$attrs" @register="registerModal" :title="title" width="95%" @ok="handleSubmit">
  3. <deliveryNoticeForm ref="formComponent" :formDisabled="formDisabled" :formBpm="false" @success="submitSuccess"></deliveryNoticeForm>
  4. </BasicModal>
  5. </template>
  6. <script lang="ts">
  7. import { ref, unref } from 'vue';
  8. import { BasicModal, useModalInner } from '/@/components/Modal';
  9. import deliveryNoticeForm from './deliveryNoticeForm.vue';
  10. export default {
  11. name: "deliveryNoticeFormModal",
  12. components:{
  13. BasicModal,
  14. deliveryNoticeForm
  15. },
  16. emits:['register','success'],
  17. setup(_p, {emit}){
  18. const formComponent = ref()
  19. const isUpdate = ref(true);
  20. const formDisabled = ref(false);
  21. const isRevise = ref(false);
  22. const title = ref('')
  23. //表单赋值
  24. const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
  25. setModalProps({confirmLoading: false,showCancelBtn:data?.showFooter,showOkBtn:data?.showFooter});
  26. isUpdate.value = !!data?.isUpdate;
  27. formDisabled.value = !data?.showFooter;
  28. title.value = data?.isUpdate ? (unref(formDisabled) ? '详情' : '编辑') : '新增';
  29. if (unref(isUpdate)) {
  30. formComponent.value.edit(data.record)
  31. }else{
  32. formComponent.value.add()
  33. }
  34. });
  35. function handleSubmit() {
  36. formComponent.value.submitForm();
  37. }
  38. function submitSuccess(){
  39. emit('success');
  40. closeModal();
  41. }
  42. return {
  43. registerModal,
  44. title,
  45. formComponent,
  46. formDisabled,
  47. handleSubmit,
  48. submitSuccess,
  49. }
  50. }
  51. }
  52. </script>
  53. <style lang="less" scoped>
  54. /** 时间和数字输入框样式 */
  55. :deep(.ant-input-number) {
  56. width: 100%;
  57. }
  58. :deep(.ant-calendar-picker) {
  59. width: 100%;
  60. }
  61. </style>