123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <template>
- <a-modal
- title="选择项目(select project)"
- width="95%"
- :visible="visible"
- :maskClosable="false"
- switchFullscreen
- @ok = "handleOk"
- @cancel="handleCancel">
- <div>
- <!--引用表格-->
- <BasicTable @register="registerTable" :rowSelection="rowSelection"></BasicTable>
- </div>
- </a-modal>
- </template>
- <script lang="ts" name="baseCode-baseShipArchive" setup>
- import {ref, reactive } from 'vue';
- import {BasicTable, useTable, TableAction} from '/@/components/Table';
- import { useListPage } from '/@/hooks/system/useListPage'
- import {columns, searchFormSchema} from './BaseProjectArchive.data';
- import {list} from './BaseProjectArchive.api';
- import { message } from 'ant-design-vue';
- const queryParam = reactive<any>({});
- var visible = ref(false);
- const emit = defineEmits([ 'selectProject']); //定义emit
- //注册table数据
- const { tableContext} = useListPage({
- tableProps:{
- api:list,
- columns,
- canResize:false,
- formConfig: {
- schemas: searchFormSchema,
- autoSubmitOnEnter:true,
- showAdvancedButton:true,
- fieldMapToNumber: [
- ],
- fieldMapToTime: [
- ['shipDate', ['shipDate_begin', 'shipDate_end'], 'YYYY-MM-DD HH:mm:ss'],
- ],
- },
- showTableSetting:false,
- showActionColumn:false,
- actionColumn: {
- width: 200,
- fixed:'right'
- },
- beforeFetch: (params) => {
- return Object.assign(params, queryParam);
- },
- }
- })
- const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
-
- function handleCancel() {
- visible.value = false;
- selectedRowKeys.value = []
- emit('selectProject',rowSelection.selectedRows)
- }
- function handleOk() {
- if(selectedRowKeys.value.length!==1){
- message.warning('请选择一条数据数据')
- }else{
- emit('selectProject',rowSelection.selectedRows)
- handleCancel()
- }
- }
- function getTable(){
- visible.value = true
- }
- defineExpose({
- getTable
- });
- </script>
- <style lang="less" scoped>
- :deep(.ant-picker),:deep(.ant-input-number){
- width: 100%;
- }
- </style>
|