SelectProjectModal.vue 2.3 KB

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