| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- <script setup lang="ts">
- import { onMounted, watch } from 'vue';
- import { Page } from '@vben/common-ui';
- import { useRouter } from 'vue-router';
- import { useVbenVxeGrid, type VxeGridProps } from '#/adapter/vxe-table';
- import { columns, querySchema } from './config-data';
- // @ts-ignore
- import type { VbenFormProps } from '@vben/common-ui';
- import {
- queryrclassApilist,
- queryscheduleClassOpeningApi,
- } from '#/api/schedule/work/class';
- import { ElMessage } from 'element-plus';
- const router = useRouter();
- const mockData = [
- {
- roleId: 2,
- Name: '王保瑞',
- Position: '当班经理',
- roleSort: 1,
- status: '0',
- Startdate: '2024-01-15 10:00:00',
- remark: '当班',
- isEditing: false,
- },
- {
- roleId: 2,
- Name: '王凯',
- Position: '当班经理',
- roleSort: 1,
- status: '0',
- createTime: '2024-01-15 10:00:00',
- remark: '当班',
- isEditing: false,
- },
- {
- roleId: 2,
- Name: '威威',
- Position: '当班经理',
- roleSort: 1,
- status: '0',
- createTime: '2024-01-15 10:00:00',
- remark: '当班',
- isEditing: false,
- },
- // {
- // roleId: 3,
- // Name: '普通用户',
- // roleKey: 'user',
- // roleSort: 2,
- // status: '0',
- // createTime: '2024-01-16 12:00:00',
- // remark: '测试用户',
- // },
- ];
- const formOptions: VbenFormProps = {
- commonConfig: {
- labelWidth: 80,
- componentProps: {
- allowClear: true,
- },
- },
- schema: querySchema(),
- wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
- // 日期选择格式化
- fieldMappingTime: [
- [
- 'createTime',
- ['params[beginTime]', 'params[endTime]'],
- ['YYYY-MM-DD 00:00:00', 'YYYY-MM-DD 23:59:59'],
- ],
- ],
- };
- onMounted(() => {
- console.log(router);
- });
- // 列表中显示配置
- const gridOptions: VxeGridProps = {
- checkboxConfig: {
- // 高亮
- highlight: true,
- // 翻页时保留选中状态
- reserve: true,
- // 点击行选中
- trigger: 'default',
- checkMethod: ({ row }) => row?.roleId !== 1,
- },
- columns,
- size: 'medium',
- height: 'auto',
- // data: mockData,
- proxyConfig: {
- ajax: {
- query: async ({ page }, formValues = {}) => {
- const resp = await queryrclassApilist({
- ...formValues,
- pageNum: page.currentPage,
- pageSize: page.pageSize,
- });
- return { items: resp.rows, total: resp.total };
- },
- },
- },
- rowConfig: {
- keyField: 'roleId',
- },
- toolbarConfig: {
- custom: true,
- refresh: true,
- zoom: true,
- },
- id: 'system-role-index',
- };
- const [BasicTable, BasicTableApi] = useVbenVxeGrid({
- formOptions,
- gridOptions,
- });
- // 定义新增抽屉
- const handleAddClick = async () => {
- const formValues = (await BasicTableApi.formApi?.getValues()) || {};
- if (!formValues?.stationName) {
- ElMessage.warning('请先选择场站');
- return;
- }
- router.replace({
- path: '/schedule/work/class/addandedit',
- query: {
- stationId: formValues?.stationName,
- },
- });
- };
- const handleViewClick = (data: any) => {
- router.push({
- path: '/schedule/work/class/addandedit',
- query: {
- stationId: data.stationId,
- Detailsid: data.id,
- },
- });
- };
- // const handleEditClick = (row: any) => {
- // console.log(row);
- // };
- watch(
- () => router.currentRoute.value.path,
- (newPath, oldPath) => {
- if (newPath === '/schedule/work/class' && oldPath === '/schedule/work/class/addandedit') {
- BasicTableApi.reload();
- }
- }
- );
- </script>
- <template>
- <Page :auto-content-height="true">
- <BasicTable table-title="如每月8日后需调整上月数据,请联系系统管理员">
- <template #toolbar-tools>
- <el-space>
- <el-button type="primary" @click="handleAddClick"> 开班 </el-button>
- </el-space>
- </template>
- <template #action="{ row }">
- <el-button
- size="small"
- type="primary"
- plain
- @click="handleViewClick(row)"
- >查看</el-button
- >
- <!-- <el-button
- size="small"
- type="primary"
- plain
- @click="handleEditClick(row)"
- >编辑</el-button
- > -->
- </template>
- </BasicTable>
- </Page>
- </template>
- <style scoped lang="scss">
- :deep(.el-tooltip__trigger:focus) {
- outline: none;
- }
- </style>
|