SelectShipSModal.vue 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <template>
  2. <a-modal
  3. title="选择船(select ship)"
  4. width="95%"
  5. :visible="visible"
  6. :maskClosable="false"
  7. :destroyOnClose="true"
  8. switchFullscreen
  9. @ok = "handleOk"
  10. @cancel="handleCancel">
  11. <div>
  12. <!--引用表格-->
  13. <BasicTable @register="registerTable" :rowSelection="rowSelection" size="small"></BasicTable>
  14. </div>
  15. </a-modal>
  16. </template>
  17. <script lang="ts" name="baseCode-baseShipArchive" setup>
  18. import {ref, reactive } from 'vue';
  19. import {BasicTable, useTable, TableAction} from '/@/components/Table';
  20. import { useListPage } from '/@/hooks/system/useListPage'
  21. import {columns, searchFormSchema} from './components/BaseShipArchive.data';
  22. import {list} from './components/BaseShipArchive.api';
  23. import { useMessage } from '/@/hooks/web/useMessage';
  24. const queryParam = reactive<any>({});
  25. var visible = ref(false);
  26. const emit = defineEmits([ 'select']); //定义emit
  27. //注册model
  28. const { createMessage} = useMessage();
  29. //注册table数据
  30. const { tableContext} = useListPage({
  31. tableProps:{
  32. api:list,
  33. columns,
  34. canResize:false,
  35. formConfig: {
  36. schemas: searchFormSchema,
  37. autoSubmitOnEnter:true,
  38. showAdvancedButton:true,
  39. fieldMapToNumber: [
  40. ],
  41. fieldMapToTime: [
  42. ['shipDate', ['shipDate_begin', 'shipDate_end'], 'YYYY-MM-DD HH:mm:ss'],
  43. ],
  44. },
  45. showTableSetting:false,
  46. showActionColumn:false,
  47. actionColumn: {
  48. width: 200,
  49. fixed:'right'
  50. },
  51. beforeFetch: (params) => {
  52. return Object.assign(params, queryParam);
  53. },
  54. }
  55. })
  56. const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
  57. function handleCancel() {
  58. visible.value = false;
  59. selectedRowKeys.value = []
  60. }
  61. function handleOk() {
  62. if(selectedRowKeys.value.length==0){
  63. createMessage('请选择数据')
  64. }else{
  65. emit('select',rowSelection.selectedRows)
  66. handleCancel()
  67. }
  68. }
  69. function getTable(){
  70. visible.value = true
  71. }
  72. defineExpose({
  73. getTable
  74. });
  75. </script>
  76. <style lang="less" scoped>
  77. :deep(.ant-picker),:deep(.ant-input-number){
  78. width: 100%;
  79. }
  80. </style>