Merge branch 'szh' into dev

szh-new
sunzehua 4 months ago
commit 04f17dd28c

@ -1,31 +1,16 @@
<template>
<div ref="wrapRef" :class="getWrapperClass" class="basic-table-search-form">
<BasicForm
v-if="getBindValues.useSearchForm"
v-show="showSearchForm"
ref="formRef"
submit-on-reset
v-bind="getFormProps"
:fetch="fetch"
:table-action="tableAction"
:autoSubmitOnEnter="true"
@register="registerForm"
@submit="handleSearchInfoChange"
@advanced-change="redoHeight"
>
<BasicForm v-if="getBindValues.useSearchForm" v-show="showSearchForm" ref="formRef" submit-on-reset
v-bind="getFormProps" :fetch="fetch" :table-action="tableAction" :autoSubmitOnEnter="true"
@register="registerForm" @submit="handleSearchInfoChange" @advanced-change="redoHeight">
<template v-for="item in getFormSlotKeys" #[replaceFormSlotKey(item)]="data">
<slot :name="item" v-bind="data || {}"></slot>
</template>
</BasicForm>
<Table
v-show="getEmptyDataIsShowTable"
ref="tableElRef"
v-bind="getBindValues"
:row-class-name="getRowClassName"
@change="handleTableChange"
@resize-column="resizeColumn"
>
<div class="table-wrapper" >
<slot name="left" class="left" ></slot>
<Table class="basic-table" v-show="getEmptyDataIsShowTable" ref="tableElRef" v-bind="getBindValues" :row-class-name="getRowClassName"
@change="handleTableChange" @resize-column="resizeColumn">
<template v-for="item in Object.keys($slots)" #[item]="data" :key="item">
<slot :name="item" v-bind="data || {}"></slot>
</template>
@ -41,39 +26,41 @@
<!-- </template>-->
</Table>
</div>
</div>
</template>
<script lang="ts">
import type { BasicTableProps, TableActionType, SizeType, ColumnChangeParam } from './types/table'
import { defineComponent, ref, computed, unref, toRaw, inject, watchEffect } from 'vue'
import { Table } from 'ant-design-vue'
import { BasicForm, useForm } from '/@/components/Form/index'
import { PageWrapperFixedHeightKey } from '/@/components/Page'
import HeaderCell from './components/HeaderCell.vue'
import { InnerHandlers } from './types/table'
import { usePagination } from './hooks/usePagination'
import { useColumns } from './hooks/useColumns'
import { useDataSource } from './hooks/useDataSource'
import { useLoading } from './hooks/useLoading'
import { useRowSelection } from './hooks/useRowSelection'
import { useTableScroll } from './hooks/useTableScroll'
import { useTableScrollTo } from './hooks/useScrollTo'
import { useCustomRow } from './hooks/useCustomRow'
import { useTableStyle } from './hooks/useTableStyle'
import { useTableHeader } from './hooks/useTableHeader'
import { useTableExpand } from './hooks/useTableExpand'
import { createTableContext } from './hooks/useTableContext'
import { useTableFooter } from './hooks/useTableFooter'
import { useTableForm } from './hooks/useTableForm'
import { useDesign } from '/@/hooks/web/useDesign'
import { omit } from 'lodash-es'
import { basicProps } from './props'
import { isFunction } from '/@/utils/is'
import { warn } from '/@/utils/log'
export default defineComponent({
import type { BasicTableProps, TableActionType, SizeType, ColumnChangeParam } from './types/table'
import { defineComponent, ref, computed, unref, toRaw, inject, watchEffect } from 'vue'
import { Table } from 'ant-design-vue'
import { BasicForm, useForm } from '/@/components/Form/index'
import { PageWrapperFixedHeightKey } from '/@/components/Page'
import HeaderCell from './components/HeaderCell.vue'
import { InnerHandlers } from './types/table'
import { usePagination } from './hooks/usePagination'
import { useColumns } from './hooks/useColumns'
import { useDataSource } from './hooks/useDataSource'
import { useLoading } from './hooks/useLoading'
import { useRowSelection } from './hooks/useRowSelection'
import { useTableScroll } from './hooks/useTableScroll'
import { useTableScrollTo } from './hooks/useScrollTo'
import { useCustomRow } from './hooks/useCustomRow'
import { useTableStyle } from './hooks/useTableStyle'
import { useTableHeader } from './hooks/useTableHeader'
import { useTableExpand } from './hooks/useTableExpand'
import { createTableContext } from './hooks/useTableContext'
import { useTableFooter } from './hooks/useTableFooter'
import { useTableForm } from './hooks/useTableForm'
import { useDesign } from '/@/hooks/web/useDesign'
import { omit } from 'lodash-es'
import { basicProps } from './props'
import { isFunction } from '/@/utils/is'
import { warn } from '/@/utils/log'
export default defineComponent({
name: 'BasicTable',
components: {
Table,
@ -352,21 +339,22 @@
resizeColumn
}
},
})
})
</script>
<style lang="less">
@border-color: #cecece4d;
@border-color: #cecece4d;
@prefix-cls: ~'@{namespace}-basic-table';
@prefix-cls: ~'@{namespace}-basic-table';
[data-theme='dark'] {
.ant-table-tbody > tr:hover.ant-table-row-selected > td,
.ant-table-tbody > tr.ant-table-row-selected td {
[data-theme='dark'] {
.ant-table-tbody>tr:hover.ant-table-row-selected>td,
.ant-table-tbody>tr.ant-table-row-selected td {
background-color: #262626;
}
}
}
.@{prefix-cls} {
.@{prefix-cls} {
max-width: 100%;
height: 100%;
@ -394,6 +382,7 @@
padding: 6px;
background-color: @component-background;
border-radius: 2px;
.ant-table.ant-table-bordered .ant-table-title {
border: none !important;
}
@ -433,7 +422,7 @@
}
td {
padding: 12px 6px!important;
padding: 12px 6px !important;
}
}
@ -442,16 +431,26 @@
padding: 0;
}
}
}
// .basic-table-search-form {
// .ant-form-item-no-colon {
// color: @main-color;
// }
// }
// .ant-table-small {
// font-size: 12px !important;
// .ant-table-cell {
// padding: 9px 15px !important;
// }
// }
}
// .basic-table-search-form {
// .ant-form-item-no-colon {
// color: @main-color;
// }
// }
// .ant-table-small {
// font-size: 12px !important;
// .ant-table-cell {
// padding: 9px 15px !important;
// }
// }
.table-wrapper{
display:flex;
.basic-table{
flex: 1;
min-width: 0;
}
}
</style>

@ -1,32 +1,40 @@
<template>
<div class="main">
<div style="width: 100%;">
<BasicTable class="ds-table" @register="registerTable" @row-dbClick="handledbclick">
<template #left>
<div class="nav-box">
<div class="nav-bottom">
<a-button type="link" size="small" @click="getCurrentTotalStat"> <i
class="icon-refresh-1-copy iconfont"></i>刷新</a-button>
class="icon-refresh-1-copy iconfont"></i>刷新任务单</a-button>
</div>
<a-spin :spinning="levelLoading" tip="加载中...">
<div class="bottom-box">
<div class="nav-title" v-if="levelTop.length > 0">
<a-radio-group button-style="solid" v-model:value="activeTopKey"
style="margin-bottom: 16px;display: flex" @change="changeTopLevel">
<a-radio-button v-for="(item, index) in levelTop" :value="item.key" :key="index">
<span class="nav-top">{{ item.name }}<span class="nav-top-tip">({{ item.total
<a-radio-button v-for="(item, index) in levelTop" :value="item.key"
:key="index">
<span class="nav-top">{{ item.name }}<span class="nav-top-tip">({{
item.total
}})</span></span>
</a-radio-button>
</a-radio-group>
</div>
<div class="nav-no-data" v-else><i class="iconfont icon-guanli"></i><span>暂无导航数据</span></div>
<div class="nav-no-data" v-else><i class="iconfont icon-guanli"></i><span>暂无导航数据</span>
</div>
<div style="padding: 0 20px;">
<a-tabs tab-position="top" v-model:activeKey="activeNextKey" hide-add size="small"
@change="changeNextLevel" v-if="levelNext.length > 0">
<a-tab-pane v-for="level in levelNext" :key="level.key" :tab="level.name"
style="margin-right: 6px">
<div>
<div v-for="(item, index) in levelTree" @click="handleClickTree(item, index)"
<div v-for="(item, index) in levelTree"
@click="handleClickTree(item, index)"
:class="{ active: item.active }" class="box-item">
<span class="box-number">{{ item.total }}</span>
<span class="box-text" style="font-size: 12px;font-weight: 400">{{ item.name
<span class="box-text" style="font-size: 12px;font-weight: 400">{{
item.name
}}</span>
</div>
</div>
@ -37,8 +45,7 @@
</div>
</a-spin>
</div>
<div style="width: 80%;">
<BasicTable class="ds-table" @register="registerTable" @row-dbClick="handledbclick">
</template>
<template #tableTitle>
<a-popconfirm title="是否取消当前选择项?" ok-text="" cancel-text="" @confirm="removeFun">
<a-button type="link"> <i class="icon-weiwancheng iconfont"></i> 取消</a-button>
@ -218,7 +225,8 @@
<a-modal title="提示信息" width="900px" :visible="bcFileFlag" :footer="null" @cancel="bcFileFlag = false">
<div class="bcfile-title" style="margin-top: 20px">
<div>
<i class="icon-fuzhi4 iconfont" title="复制" style="margin-right: 10px;cursor: pointer;" @click="handleCopy"></i>
<i class="icon-fuzhi4 iconfont" title="复制" style="margin-right: 10px;cursor: pointer;"
@click="handleCopy"></i>
时间{{ bcFile.executeTime }}
</div>
<span> {{ bcFile.batchTotal }}</span>
@ -1142,7 +1150,7 @@ function handleClickTree(row, index) {
.nav-bottom {
width: 100%;
margin-bottom: 10px;
margin-bottom: 16px;
.icon {
font-size: 12px;
@ -1213,6 +1221,7 @@ function handleClickTree(row, index) {
border-radius: 2px;
width: 20%;
flex-shrink: 0;
margin-top:4px;
}
.nav-no-data {

Loading…
Cancel
Save