/* * @Author: levi7754 levi7754@163.com * @Date: 2024-06-05 14:32:03 * @LastEditors: levi7754 levi7754@163.com * @LastEditTime: 2025-12-09 08:57:02 * @FilePath: /udp-front/packages/udp-core/src/plugins/vxe-table/index.ts * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ import 'xe-utils'; import { merge, toDateString, getWhatDay } from 'xe-utils'; import { geti18n, transformI18n } from '../i18n/index'; // import { storageLocal } from '@utogether/utils'; import { VxetableRender } from '@utogether/utils'; // import { VxetableRender } from './render'; import { getServiceApi } from '../../api'; import VXETable, { VxeUI } from 'vxe-table'; // import './render.tsx'; // const dict = storageLocal.getItem('kLov'); VxetableRender(VXETable, { serviceApi: getServiceApi(), i18n: transformI18n }); setCommands(); // 全局默认参数 const defaultConfig = { // 对组件内置的提示语进行国际化翻译 // @ts-ignore i18n: (key, args) => geti18n().global.t(key, args), // 可选,对参数中的列头、校验提示..等进行自动翻译(只对支持国际化的有效) translate(key) { // 例如,只翻译 "message." 开头的键值 const NAMESPACED = ['message.', 'el.']; if (key && NAMESPACED.findIndex(v => key.includes(v)) !== -1) { return geti18n().global.t.call(geti18n().global.locale, key); } return key; } }; export function setTableConfig(config = {}) { VXETable.setConfig(merge(defaultConfig, config)); VxeUI.interceptor.add('event.clearEdit', { tableInterceptorMethod(params) { const { $event } = params; if ($event.target.className.indexOf('vxe-table--ignore-clear') > -1) return false; } }); } export function setTheme(theme) { // 切换为暗黑主题 VxeUI.setTheme(theme); } function setCommands() { // 定义选中日期今天指令 VxeUI.commands.add('utTodyay', { dateRangePickerCommandMethod({ $dateRangePicker }) { const startDate = toDateString(new Date(), 'yyyy-MM-dd 00:00:00'); const endDate = toDateString(new Date(), 'yyyy-MM-dd 23:59:59'); $dateRangePicker.setModelValue(startDate, endDate); } }); // 定义选中日期昨天指令 VxeUI.commands.add('utYesterDay', { dateRangePickerCommandMethod({ $dateRangePicker }) { const startDate = toDateString(getWhatDay(new Date(), -1), 'yyyy-MM-dd 00:00:00'); const endDate = toDateString(getWhatDay(new Date(), -1), 'yyyy-MM-dd 23:59:59'); $dateRangePicker.setModelValue(startDate, endDate); } }); // 定义选中日期最近一周指令 VxeUI.commands.add('utRecentWeek', { dateRangePickerCommandMethod({ $dateRangePicker }) { const startDate = toDateString(getWhatDay(new Date(), -7), 'yyyy-MM-dd 00:00:00'); const endDate = toDateString(new Date(), 'yyyy-MM-dd 23:59:59'); $dateRangePicker.setModelValue(startDate, endDate); } }); // 定义选中日期最近一个月指令 VxeUI.commands.add('utRecentMonth', { dateRangePickerCommandMethod({ $dateRangePicker }) { const startDate = toDateString(getWhatDay(new Date(), -30), 'yyyy-MM-dd 00:00:00'); const endDate = toDateString(new Date(), 'yyyy-MM-dd 23:59:59'); $dateRangePicker.setModelValue(startDate, endDate); } }); // 定义选中日期最近三个月指令 VxeUI.commands.add('utRecentThreeMonth', { dateRangePickerCommandMethod({ $dateRangePicker }) { const startDate = toDateString(getWhatDay(new Date(), -90), 'yyyy-MM-dd 00:00:00'); const endDate = toDateString(new Date(), 'yyyy-MM-dd 23:59:59'); $dateRangePicker.setModelValue(startDate, endDate); } }); // 定义选中日期最近半年指令 VxeUI.commands.add('utRecentHalfYear', { dateRangePickerCommandMethod({ $dateRangePicker }) { const startDate = toDateString(getWhatDay(new Date(), -180), 'yyyy-MM-dd 00:00:00'); const endDate = toDateString(new Date(), 'yyyy-MM-dd 23:59:59'); $dateRangePicker.setModelValue(startDate, endDate); } }); // 定义选中日期最近半年指令 VxeUI.commands.add('utRecentYear', { dateRangePickerCommandMethod({ $dateRangePicker }) { const startDate = toDateString(getWhatDay(new Date(), -365), 'yyyy-MM-dd 00:00:00'); const endDate = toDateString(new Date(), 'yyyy-MM-dd 23:59:59'); $dateRangePicker.setModelValue(startDate, endDate); } }); }