commissionContractModal.vue 2.2 KB

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