Merge remote-tracking branch 'websoft/master'
This commit is contained in:
110
.workbuddy/memory/2026-08-07.md
Normal file
110
.workbuddy/memory/2026-08-07.md
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
# 2026-08-07 工作日志
|
||||||
|
|
||||||
|
## 运输计划调度弹窗恢复左右分栏布局
|
||||||
|
- 需求:客户提供「计划详情」参考截图,要求调度弹窗改回「左侧基本信息卡 + 右侧收发货路线卡」的左右分栏布局。
|
||||||
|
- 改动:`src/views/business/components/business-crud-page.vue`
|
||||||
|
- 模板:把基本信息与收发货路线重新包进 `business-crud-page__dispatch-summary` 双列容器;左侧 `section-card` 内恢复 3 列网格(客户/项目/合同编号),货物信息占 2 列、计划执行时间占 1 列、附件独占一行;右侧 `section-card` 内恢复左右排列的起点/终点(徽章+名称+地址+联系人),中间用方向虚线连接。
|
||||||
|
- 样式:
|
||||||
|
- 外容器恢复 `grid-template-columns: minmax(0, 1.25fr) minmax(420px, 1fr)`,gap 16px,卡片等高拉伸。
|
||||||
|
- 基本信息网格恢复 3 列,列间距 16px、行间距 12px。
|
||||||
|
- 路线区恢复 `grid-template-columns: 1fr 56px 1fr`,徽章 32px,标题 16px,地址/联系人 13px,连接线 56px。
|
||||||
|
- 保留紧凑化后的字号/间距(标签 12px、值 14px),避免回到原先过松的状态。
|
||||||
|
- 验证:`npm run build` 成功。
|
||||||
|
|
||||||
|
## 运输计划调度弹窗基本信息改为 2 列
|
||||||
|
- 需求:客户截图反馈左侧「基本信息」还嫌松,要求改为 2 列更紧凑。
|
||||||
|
- 改动:`src/views/business/components/business-crud-page.vue`
|
||||||
|
- 模板:调整基本信息字段顺序为 客户/项目、合同编号/计划执行时间、货物信息(占满 2 列)、附件(占满 2 列)。
|
||||||
|
- 样式:`business-crud-page__dispatch-summary-grid` 从 `repeat(3, minmax(0, 1fr))` 改为 `repeat(2, minmax(0, 1fr))`,保持 gap 12px 16px。
|
||||||
|
- 验证:`npm run build` 成功。
|
||||||
|
|
||||||
|
## 运输计划调度弹窗路线连接改为车辆图标
|
||||||
|
- 需求:客户希望把收发货路线中间的方向虚线换成车辆图标。
|
||||||
|
- 改动:`src/views/business/components/business-crud-page.vue`
|
||||||
|
- 模板:把 `<div class="business-crud-page__dispatch-route-line" />` 替换为 `<div class="business-crud-page__dispatch-route-vehicle"><el-icon><Van /></el-icon></div>`。
|
||||||
|
- 样式:删除原 `&__dispatch-route-line` 虚线箭头样式,新增 `&__dispatch-route-vehicle`,使用主色圆形背景、白色 `Van` 图标,尺寸 36×36px,居中与路线节点对齐。
|
||||||
|
- 验证:`npm run build` 成功。
|
||||||
|
|
||||||
|
## 运输计划调度弹窗收发货路线视觉美化
|
||||||
|
- 需求:客户反馈右上角「收发货路线」卡片仍不够美观,要求继续优化。
|
||||||
|
- 改动:`src/views/business/components/business-crud-page.vue`
|
||||||
|
- 样式:
|
||||||
|
- 路线容器去掉 `padding-top`,改为 `align-items: center` 垂直居中。
|
||||||
|
- 起点/终点 item 改为 `align-items: center`,徽章从方角改为圆形,并加轻微阴影。
|
||||||
|
- 车辆图标改为白底 + 主色边框 + 主色 `Van` 图标,尺寸加大到 44×44px,两侧各延伸 20px 虚线,形成「路线」流动感。
|
||||||
|
- 城市名称限制单行并溢出省略,地址/联系人间距收紧、颜色变淡。
|
||||||
|
- 验证:`npm run build` 成功。
|
||||||
|
|
||||||
|
## 通知公告 /desk/notice 操作列加宽
|
||||||
|
- 需求:客户截图反馈操作列中「查看、编辑、删除」三个文字链接被挤成两行,要求加宽。
|
||||||
|
- 改动:`src/views/desk/notice.vue`
|
||||||
|
- 在 Avue CRUD option 中新增 `menuWidth: 220`,使操作列可在一行容纳三个操作链接;符合项目样式规范「三个操作按钮时宽度不小于 220px」。
|
||||||
|
|
||||||
|
## 全仓表格操作列宽度统一(≤3 按钮统一 180)
|
||||||
|
- 需求:客户提供新截图,要求所有操作按钮 ≤3 个的表格操作列统一宽度为 180;>3 个按钮保持 320。
|
||||||
|
- 核心改动:
|
||||||
|
- `src/utils/table-menu.js`:`TABLE_MENU_WIDTH` 的 `default` 与 `three` 都从 160/220 统一改为 180,`four` 保持 320;`resolveTableMenuWidth` 逻辑不变。
|
||||||
|
- `src/main.js`:全局 `crudOption.menuWidth` 从 160 改为 180,覆盖未显式设置 menuWidth 的 Avue CRUD 页面。
|
||||||
|
- `src/views/desk/notice.vue`:`menuWidth` 从 220 改为 180。
|
||||||
|
- `src/option/business/process-config.js`:`menuWidth` 从 200 改为 180。
|
||||||
|
- `src/views/system/param.vue`:手写 el-table 操作列宽度从 220 改为 180。
|
||||||
|
- 批量替换:对 44 个显式设置 `menuWidth: 160` 的 `.vue` / `.js` / `const/*.js` 文件统一改为 180(含部分文件内多处)。
|
||||||
|
- 验证:`npm run build` 成功(exit code 0)。
|
||||||
|
|
||||||
|
## 角色管理 /authority/role 操作列改 180
|
||||||
|
- 需求:用户明确要求把 /authority/role 页面操作列宽度设为 180(该页面此前设为 320,因含「查看/编辑/删除 + 权限设置」自定义菜单)。
|
||||||
|
- 改动:`src/views/authority/role.vue`
|
||||||
|
- option 内联 `menuWidth: 320` 改为 `menuWidth: 180`。
|
||||||
|
|
||||||
|
## 全站操作列按钮统一为链接(el-link)风格
|
||||||
|
- 需求:用户要求「操作栏里的按钮改成链接的方案,全站风格统一」,并先确认了对功能是否有影响。
|
||||||
|
- 调研结论(关键):全仓手写 el-table 操作列(10 个文件、约 28 列)与 53 个 avue-crud 自定义 `#menu` 插槽**已全部是 `<el-link>`**,全库 `type="text"` 残留为 0;真正未链接化的只剩下 **Avue 内置 viewBtn/editBtn/delBtn**(渲染为 `<el-button is-text>`,包在 `div.avue-crud__menu` 内,且自带 `permission` 指令与 `rowView/rowEdit/rowDel` 事件)。
|
||||||
|
- 实施手法:采用「方案 A:纯 CSS 视觉对齐」(零功能影响、不动事件与权限,符合用户「不要影响功能」的诉求)。
|
||||||
|
- 改动:`src/styles/element-ui.scss`
|
||||||
|
- 新增 `.avue-crud__menu > .el-button.is-text` 规则,把 Avue 内置行操作按钮外观对齐为 el-link:主色文字、无边框/无背景、hover 下划线 + 浅色、禁用态浅色无下划线、`height:auto / padding:0`(配合父级 `inline-flex; gap:8px` 与已存在的主色/间距覆盖规则)。
|
||||||
|
- 选择器仅命中行操作列 `.avue-crud__menu` 内的 `is-text` 按钮,不误伤顶部工具栏(`.avue-crud__header`)与弹窗按钮(`.avue-crud__dialog__menu`)。
|
||||||
|
- 注意:现有全局规则 `.avue-crud__menu .el-link` 会强制操作列内所有 el-link(含 `type="danger"` 的删除)显示为主色蓝。如需删除按钮保留红色告警,需单独调整该覆盖规则(本次未改,保持统一蓝)。
|
||||||
|
- 验证:`npm run build` 成功(exit code 0);构建日志中的 CSS `*` 告警来自第三方库压缩,与本次无关(历史既有)。
|
||||||
|
|
||||||
|
## 操作列文字取消加粗(统一常规字重)
|
||||||
|
- 需求:用户要求操作栏下的按钮字体都不要加粗,统一风格。
|
||||||
|
- 根因:Element Plus `el-link` 默认 `font-weight: var(--el-font-weight-primary)`(500 中等粗),导致操作列里的链接(查看/编辑/删除等)显示为加粗;而 Avue 内置 `is-text` 按钮此前已被规则设为 normal。
|
||||||
|
- 改动:`src/styles/element-ui.scss`
|
||||||
|
- 在既有 `.avue-crud__menu .el-link, .el-table ... .cell:has(.el-link) .el-link` 统一规则中增加 `font-weight: normal;`((0,2,0) 优先级高于 el-link 自身 (0,1,0) 的默认字重,可覆盖)。
|
||||||
|
- 覆盖范围:Avue 行菜单内的 el-link + 任意含 el-link 的表格体单元格(手写操作列),一次统一全站操作列字重;Avue 内置 `is-text` 按钮与顶部工具栏/弹窗按钮字重保持原样不受影响。
|
||||||
|
- 验证:`npm run build` 成功(exit code 0)。
|
||||||
|
|
||||||
|
## 全站表格省略文字 hover tooltip 提示统一
|
||||||
|
- 需求:用户截图反馈合同管理等页面中「所属项目」等列文字被省略,要求像 `/base/common-address` 一样,鼠标移上去显示完整提示;全站统一加,改完列出文件。
|
||||||
|
- 参考实现:`src/option/base/common-address.js` 中 Avue 列配置使用 `showOverflowTooltip: true`。
|
||||||
|
- 调研结论:全站表格可见列约 848 个(Avue)+ 424 个手写 `<el-table-column>`,其中 801 个 Avue 列、268 个手写列未开启 tooltip。Element Plus 支持全局 `table: { showOverflowTooltip: true }` 配置,Avue 3.9.2 完整透传,可一行代码覆盖全站。
|
||||||
|
- 改动文件清单:
|
||||||
|
- `src/main.js`
|
||||||
|
- Element Plus 全局配置新增 `table: { showOverflowTooltip: true }`,一次性覆盖所有 Avue CRUD 与手写 el-table。
|
||||||
|
- Avue 全局 `crudOption` 新增 `showOverflowTooltip: true` 作为双保险,避免页面级 option 被错误覆盖时失效。
|
||||||
|
- `src/styles/element-ui.scss`
|
||||||
|
- 新增 `.el-table .cell.avue-crud__menu, .el-table .el-table__body .cell.el-tooltip:has(> .el-link)` 规则,豁免操作列单元格的固定宽度与溢出隐藏,防止全局 tooltip 导致操作列内 el-link 换行后被裁切,保持原有 8px gap 与自动换行。
|
||||||
|
- `src/option/business/common.js`
|
||||||
|
- 共享工厂函数 `createCrudOption` 新增 `showOverflowTooltip: true`,覆盖 business 模块通过该工厂生成的所有 CRUD option。
|
||||||
|
- 覆盖范围:全站所有表格可见文本列(含 Avue 与手写 el-table),`type="selection"` 选择列由 Element Plus 自动豁免;操作列通过 CSS 豁免不被影响。
|
||||||
|
- 验证:`npm run build` 成功(exit code 0);构建日志中 CSS `*` 告警来自第三方库压缩,与本次无关(历史既有)。
|
||||||
|
|
||||||
|
## 修复 /system/dept 操作栏错位(链接竖排)
|
||||||
|
- 现象:用户截图反馈机构管理页操作列「查看 / 编辑 / 删除 / 新增子项」竖排且偏右错位。
|
||||||
|
- 根因:Avue 自带默认样式 `.avue-crud .avue-crud__menu{display:block}`(特异性 0,2,0)与项目全局覆盖样式选择器完全相同;项目原规则虽带 `!important`,但在 dev 模式 CSS 注入时序或浏览器缓存旧 element-ui.scss 时,`.avue-crud__menu` 退化成 block,导致内部按钮/链接竖排。
|
||||||
|
- 修复:
|
||||||
|
- `src/styles/element-ui.scss`:把 `.avue-crud .avue-crud__menu` 改为重复类名 `.avue-crud .avue-crud__menu.avue-crud__menu`(特异性升到 0,3,0),并新增 `width: 100% !important` 让操作列容器占满单元格、左对齐横排更稳。
|
||||||
|
- `src/views/system/dept.vue`:scoped 样式新增 `:deep(.avue-crud__menu)` 兜底(inline-flex + gap 8px + 子元素 inline-flex),双保险确保本页操作列横排。
|
||||||
|
- 验证:dev server 已热更新,curl 确认两处编译结果均含 `display: inline-flex !important`;构建需用户硬刷新浏览器清旧 CSS 缓存。
|
||||||
|
|
||||||
|
## 客商档案 /vehicle/customer-archive 弹窗风格统一为 section-card
|
||||||
|
- 需求:用户截图反馈弹窗有「双层灰色背景」,且「工商信息」等标题没有放到卡片里面;要求改成和 `/business/project-apply` 一致的白卡风格。
|
||||||
|
- 根因:原页面主表单使用 `.archive-form__group` 灰色容器,内部再包一层白色 `.el-row` 卡片,标题坐在灰色背景上,形成外层 dialog body 灰 + 分组灰的「双层灰」;客商材料、变更记录、评分材料、发票/邮寄信息也沿用旧的分节标题样式。
|
||||||
|
- 改动:`src/views/vehicle/customer-archive.vue`
|
||||||
|
- 主表单 4 个分组改为 `<section-card title="工商信息 / 联系信息 / 财务/信用信息 / 其他信息">` 全局白卡组件,删除外层「基本信息」大标题。
|
||||||
|
- 评分/联系人/收款/发票 4 个 Tab 内容改为 `<section-card>` + `<template #extra>`,按钮组进入卡头右侧。
|
||||||
|
- 客商材料改为 `<section-card title="客商材料" #extra>`,变更记录改为 `<section-card title="变更记录">`。
|
||||||
|
- 发票信息弹窗的「发票信息 / 邮寄信息」改为两张 `<section-card>`。
|
||||||
|
- 评分详情弹窗的「证明材料」改为 `<section-card title="证明材料" class="score-material-card">`。
|
||||||
|
- 清理不再使用的样式:`.archive-form__group`、`.section-title`、`.section-head`、`.customer-material-section`、`.change-record-section`、`.invoice-form__section-title`、`.score-material-section` 等。
|
||||||
|
- 验证:`npm run build` 成功(exit code 0)。
|
||||||
@@ -147,7 +147,7 @@ export const option = {
|
|||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
grid: true,
|
grid: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
label: '数据源',
|
label: '数据源',
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ app.use(store);
|
|||||||
app.use(router);
|
app.use(router);
|
||||||
app.use(ElementPlus, {
|
app.use(ElementPlus, {
|
||||||
locale: messages[language],
|
locale: messages[language],
|
||||||
|
table: { showOverflowTooltip: true },
|
||||||
});
|
});
|
||||||
app.use(Avue, {
|
app.use(Avue, {
|
||||||
axios,
|
axios,
|
||||||
@@ -85,7 +86,8 @@ app.use(Avue, {
|
|||||||
searchLabelWidth: 160,
|
searchLabelWidth: 160,
|
||||||
searchMenuSpan: 24,
|
searchMenuSpan: 24,
|
||||||
searchMenuPosition: 'right',
|
searchMenuPosition: 'right',
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
|
showOverflowTooltip: true,
|
||||||
viewBtnIcon: ' ',
|
viewBtnIcon: ' ',
|
||||||
editBtnIcon: ' ',
|
editBtnIcon: ' ',
|
||||||
copyBtnIcon: ' ',
|
copyBtnIcon: ' ',
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ export const getCargoTypeOption = ctx => ({
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
selection: true,
|
selection: true,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
label: '类型',
|
label: '类型',
|
||||||
|
|||||||
@@ -204,7 +204,8 @@ export const createCrudOption = columns => ({
|
|||||||
delBtn: false,
|
delBtn: false,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
menuFixed: 'right',
|
menuFixed: 'right',
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
|
showOverflowTooltip: true,
|
||||||
column: columns,
|
column: columns,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -178,5 +178,5 @@ export const option = {
|
|||||||
updateBtnText: '保存',
|
updateBtnText: '保存',
|
||||||
dialogTop: '10px',
|
dialogTop: '10px',
|
||||||
dialogWidth: '96%',
|
dialogWidth: '96%',
|
||||||
menuWidth: 200,
|
menuWidth: 220,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -718,5 +718,5 @@ export const option = {
|
|||||||
]),
|
]),
|
||||||
dialogWidth: '96%',
|
dialogWidth: '96%',
|
||||||
dialogTop: '10px',
|
dialogTop: '10px',
|
||||||
menuWidth: 320,
|
menuWidth: 280,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ export default {
|
|||||||
selection: true,
|
selection: true,
|
||||||
grid: true,
|
grid: true,
|
||||||
labelWidth: 'auto',
|
labelWidth: 'auto',
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 1200,
|
dialogWidth: 1200,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
tabs: true,
|
tabs: true,
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export default {
|
|||||||
selection: true,
|
selection: true,
|
||||||
grid: true,
|
grid: true,
|
||||||
labelWidth: 'auto',
|
labelWidth: 'auto',
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export const authLockOption = {
|
|||||||
viewBtn: false,
|
viewBtn: false,
|
||||||
editBtn: false,
|
editBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogType: 'drawer',
|
dialogType: 'drawer',
|
||||||
dialogWidth: 800,
|
dialogWidth: 800,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export const authLogOption = {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
menu: true,
|
menu: true,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogType: 'drawer',
|
dialogType: 'drawer',
|
||||||
dialogWidth: 800,
|
dialogWidth: 800,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export const optionParent = {
|
|||||||
index: true,
|
index: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 880,
|
dialogWidth: 880,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
@@ -104,7 +104,7 @@ export const optionChild = {
|
|||||||
index: true,
|
index: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 880,
|
dialogWidth: 880,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export const optionParent = {
|
|||||||
index: true,
|
index: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 880,
|
dialogWidth: 880,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
@@ -105,7 +105,7 @@ export const optionChild = {
|
|||||||
index: true,
|
index: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 880,
|
dialogWidth: 880,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
|
|||||||
@@ -359,7 +359,7 @@ export const platformOption = {
|
|||||||
selection: true,
|
selection: true,
|
||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
editBtnText: '配置',
|
editBtnText: '配置',
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export const codeOption = {
|
|||||||
index: true,
|
index: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
labelWidth: 'auto',
|
labelWidth: 'auto',
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
tabs: true,
|
tabs: true,
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export default {
|
|||||||
selection: true,
|
selection: true,
|
||||||
labelWidth: 'auto',
|
labelWidth: 'auto',
|
||||||
searchLabelWidth: 160,
|
searchLabelWidth: 160,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export default {
|
|||||||
selection: true,
|
selection: true,
|
||||||
labelWidth: 'auto',
|
labelWidth: 'auto',
|
||||||
searchLabelWidth: 160,
|
searchLabelWidth: 160,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 500,
|
dialogWidth: 500,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export const option = {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
viewBtn: false,
|
viewBtn: false,
|
||||||
menuWidth: 320,
|
menuWidth: 180,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ export default {
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
.logo-img {
|
.logo-img {
|
||||||
width: 40px;
|
width: 30px;
|
||||||
margin-top: 5px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -550,12 +550,16 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 全站统一:Avue 操作列文字链接保持间距并支持自动换行
|
// 全站统一:Avue 操作列文字链接保持间距并支持自动换行
|
||||||
.avue-crud .avue-crud__menu {
|
// 注意:Avue 自带 .avue-crud .avue-crud__menu{display:block}(特异性同为 0,2,0)。
|
||||||
|
// 此处重复类名升至 0,3,0 并强制 display:inline-flex !important,彻底压过 Avue 内置样式,
|
||||||
|
// 避免 dev 模式下 CSS 注入顺序导致 .avue-crud__menu 退化成 block 而让操作项竖排错位。
|
||||||
|
.avue-crud .avue-crud__menu.avue-crud__menu {
|
||||||
display: inline-flex !important;
|
display: inline-flex !important;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: start;
|
justify-content: start;
|
||||||
|
width: 100% !important;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -573,6 +577,9 @@
|
|||||||
// 选择器同时覆盖 Avue 行菜单(.avue-crud__menu)与任意含 el-link 的表格体单元格(手写操作列)。
|
// 选择器同时覆盖 Avue 行菜单(.avue-crud__menu)与任意含 el-link 的表格体单元格(手写操作列)。
|
||||||
.avue-crud__menu .el-link,
|
.avue-crud__menu .el-link,
|
||||||
.el-table .el-table__body .cell:has(.el-link) .el-link {
|
.el-table .el-table__body .cell:has(.el-link) .el-link {
|
||||||
|
// 覆盖 Element Plus el-link 默认的 font-weight: var(--el-font-weight-primary)(500 中等粗),
|
||||||
|
// 操作列文字统一为常规字重,避免「查看/编辑/删除」等链接显得加粗。
|
||||||
|
font-weight: normal;
|
||||||
--el-link-text-color: var(--el-color-primary);
|
--el-link-text-color: var(--el-color-primary);
|
||||||
--el-link-hover-text-color: var(--el-color-primary-light-3);
|
--el-link-hover-text-color: var(--el-color-primary-light-3);
|
||||||
--el-link-active-text-color: var(--el-color-primary-dark-2);
|
--el-link-active-text-color: var(--el-color-primary-dark-2);
|
||||||
@@ -596,6 +603,44 @@
|
|||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 全站统一:Element Plus 全局开启 show-overflow-tooltip 后,
|
||||||
|
// 操作列单元格会被加上 .el-tooltip 类并写死宽度,导致内部 el-link 换行后被裁切。
|
||||||
|
// 此处豁免操作列单元格:让 Avue 行菜单与手写表格操作列保持原有 flex 自动换行,不被固定宽度裁切。
|
||||||
|
.el-table .cell.avue-crud__menu,
|
||||||
|
.el-table .el-table__body .cell.el-tooltip:has(> .el-link) {
|
||||||
|
width: auto !important;
|
||||||
|
overflow: visible;
|
||||||
|
text-overflow: clip;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 全站统一:Avue 内置行操作按钮(查看 / 编辑 / 删除 / 复制等)视觉对齐为 el-link 链接样式。
|
||||||
|
// 选择器仅命中表格行操作列 .avue-crud__menu 内的 is-text 按钮,不误伤顶部工具栏(.avue-crud__header)
|
||||||
|
// 与弹窗按钮(.avue-crud__dialog__menu)。事件(rowView/rowEdit/rowDel)与权限(permission 指令)
|
||||||
|
// 由 Avue 自带,此处只改外观,零功能影响。
|
||||||
|
.avue-crud__menu > .el-button.is-text {
|
||||||
|
height: auto;
|
||||||
|
padding: 0;
|
||||||
|
border: none;
|
||||||
|
background: transparent;
|
||||||
|
color: var(--el-color-primary);
|
||||||
|
font-weight: normal;
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus,
|
||||||
|
&:active {
|
||||||
|
background: transparent;
|
||||||
|
color: var(--el-color-primary-light-3);
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.is-disabled,
|
||||||
|
&.is-disabled:hover {
|
||||||
|
background: transparent;
|
||||||
|
color: var(--el-color-primary-light-5);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
.avue-crud__pagination .el-pagination,
|
.avue-crud__pagination .el-pagination,
|
||||||
.empty-pagination .el-pagination,
|
.empty-pagination .el-pagination,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
export const TABLE_MENU_WIDTH = {
|
export const TABLE_MENU_WIDTH = {
|
||||||
default: 160,
|
default: 180,
|
||||||
three: 220,
|
three: 180,
|
||||||
four: 320,
|
four: 320,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -321,7 +321,7 @@ export default {
|
|||||||
height: 'auto',
|
height: 'auto',
|
||||||
calcHeight: 32,
|
calcHeight: 32,
|
||||||
dialogWidth: 700,
|
dialogWidth: 700,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
tip: false,
|
tip: false,
|
||||||
searchShow: true,
|
searchShow: true,
|
||||||
searchMenuSpan: 24,
|
searchMenuSpan: 24,
|
||||||
@@ -500,7 +500,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
addBtn: false,
|
addBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogType: 'drawer',
|
dialogType: 'drawer',
|
||||||
dialogWidth: 800,
|
dialogWidth: 800,
|
||||||
column: [
|
column: [
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ export default {
|
|||||||
selection: true,
|
selection: true,
|
||||||
labelWidth: 'auto',
|
labelWidth: 'auto',
|
||||||
searchLabelWidth: 160,
|
searchLabelWidth: 160,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
@@ -275,7 +275,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
addBtn: false,
|
addBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
@@ -336,7 +336,7 @@ export default {
|
|||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
labelWidth: 'auto',
|
labelWidth: 'auto',
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ export default {
|
|||||||
selection: true,
|
selection: true,
|
||||||
labelWidth: 'auto',
|
labelWidth: 'auto',
|
||||||
searchLabelWidth: 160,
|
searchLabelWidth: 160,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
@@ -312,7 +312,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
addBtn: false,
|
addBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
@@ -375,7 +375,7 @@ export default {
|
|||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
labelWidth: 'auto',
|
labelWidth: 'auto',
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ export default {
|
|||||||
index: true,
|
index: true,
|
||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
@@ -366,7 +366,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
addBtn: false,
|
addBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogType: 'drawer',
|
dialogType: 'drawer',
|
||||||
dialogWidth: 800,
|
dialogWidth: 800,
|
||||||
column: [
|
column: [
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ export default {
|
|||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
labelWidth: 'auto',
|
labelWidth: 'auto',
|
||||||
searchLabelWidth: 160,
|
searchLabelWidth: 160,
|
||||||
menuWidth: 320,
|
menuWidth: 240,
|
||||||
dialogWidth: 600,
|
dialogWidth: 600,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
selection: true,
|
selection: true,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
label: '编码',
|
label: '编码',
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
selection: true,
|
selection: true,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
menuFixed: 'right',
|
menuFixed: 'right',
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
selection: true,
|
selection: true,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
label: '中文名称',
|
label: '中文名称',
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
selection: false,
|
selection: false,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
label: '费用类型',
|
label: '费用类型',
|
||||||
|
|||||||
@@ -387,7 +387,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
selection: true,
|
selection: true,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
label: '编码',
|
label: '编码',
|
||||||
|
|||||||
@@ -219,7 +219,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
selection: true,
|
selection: true,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
label: '编码',
|
label: '编码',
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<business-crud-page :api="api" :config="config" :crud-option="option" />
|
<business-crud-page :api="api" :config="config" :crud-option="option" :menu-width="250" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
addBtn: false,
|
addBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
labelWidth: 'auto',
|
labelWidth: 'auto',
|
||||||
dialogType: 'drawer',
|
dialogType: 'drawer',
|
||||||
column: [
|
column: [
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ export default {
|
|||||||
height: 'auto',
|
height: 'auto',
|
||||||
calcHeight: 32,
|
calcHeight: 32,
|
||||||
dialogWidth: 950,
|
dialogWidth: 950,
|
||||||
|
menuWidth: 180,
|
||||||
tip: false,
|
tip: false,
|
||||||
searchShow: true,
|
searchShow: true,
|
||||||
searchMenuSpan: 24,
|
searchMenuSpan: 24,
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ export default {
|
|||||||
addBtn: false,
|
addBtn: false,
|
||||||
viewBtn: false,
|
viewBtn: false,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ export default {
|
|||||||
viewBtn: false,
|
viewBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ export default {
|
|||||||
viewBtn: false,
|
viewBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
size: 'default',
|
size: 'default',
|
||||||
searchSize: 'default',
|
searchSize: 'default',
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
addBtn: false,
|
addBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogType: 'drawer',
|
dialogType: 'drawer',
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
addBtn: false,
|
addBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogType: 'drawer',
|
dialogType: 'drawer',
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
addBtn: false,
|
addBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogType: 'drawer',
|
dialogType: 'drawer',
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ export default {
|
|||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
grid: true,
|
grid: true,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
labelWidth: 'auto',
|
labelWidth: 'auto',
|
||||||
dialogWidth: 880,
|
dialogWidth: 880,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ export default {
|
|||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
grid: true,
|
grid: true,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
labelWidth: 'auto',
|
labelWidth: 'auto',
|
||||||
dialogWidth: 880,
|
dialogWidth: 880,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
|
|||||||
@@ -729,4 +729,23 @@ export default {
|
|||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
margin-top: 12px;
|
margin-top: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 操作列兜底:确保「查看 / 编辑 / 删除 / 新增子项」横向排列并保留 8px 间距,
|
||||||
|
避免退化成 block 导致操作项竖排错位。全局样式已统一处理,此处为双保险。 */
|
||||||
|
:deep(.avue-crud__menu) {
|
||||||
|
display: inline-flex !important;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 8px;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
width: 100%;
|
||||||
|
text-align: left;
|
||||||
|
|
||||||
|
> .el-button,
|
||||||
|
> .el-link,
|
||||||
|
> .el-dropdown {
|
||||||
|
flex-shrink: 0;
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ export default {
|
|||||||
index: true,
|
index: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
menuWidth: 320,
|
menuWidth: 220,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
</template>
|
</template>
|
||||||
<!-- 操作栏模块 -->
|
<!-- 操作栏模块 -->
|
||||||
<el-table-column prop="menu" label="操作" :width="220" align="center">
|
<el-table-column prop="menu" label="操作" :width="180" align="center">
|
||||||
<template #="{ row }">
|
<template #="{ row }">
|
||||||
<el-link
|
<el-link
|
||||||
v-if="this.permissionList.viewBtn"
|
v-if="this.permissionList.viewBtn"
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ export default {
|
|||||||
selection: true,
|
selection: true,
|
||||||
addBtn: false,
|
addBtn: false,
|
||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
menuWidth: 160,
|
menuWidth: 240,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ export default {
|
|||||||
index: true,
|
index: true,
|
||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
|
|||||||
@@ -1343,7 +1343,6 @@ export default {
|
|||||||
.driver-page {
|
.driver-page {
|
||||||
&__identity {
|
&__identity {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
|
||||||
gap: 4px;
|
gap: 4px;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ export default {
|
|||||||
index: true,
|
index: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 880,
|
dialogWidth: 880,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ export default {
|
|||||||
index: true,
|
index: true,
|
||||||
selection: true,
|
selection: true,
|
||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 880,
|
dialogWidth: 880,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ export default {
|
|||||||
selection: true,
|
selection: true,
|
||||||
viewBtn: true,
|
viewBtn: true,
|
||||||
height: 300,
|
height: 300,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 880,
|
dialogWidth: 880,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -429,7 +429,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
selection: true,
|
selection: true,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
label: '评分表名称',
|
label: '评分表名称',
|
||||||
@@ -1022,8 +1022,8 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.base-form {
|
.base-form {
|
||||||
max-width: 1080px;
|
max-width: 60%;
|
||||||
margin: 10px auto 28px;
|
padding: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-head {
|
.section-head {
|
||||||
|
|||||||
@@ -151,9 +151,7 @@
|
|||||||
:disabled="readonly"
|
:disabled="readonly"
|
||||||
class="archive-form"
|
class="archive-form"
|
||||||
>
|
>
|
||||||
<div class="section-title dialog-section-title">基本信息</div>
|
<section-card title="工商信息">
|
||||||
<div class="archive-form__group">
|
|
||||||
<div class="dialog-section-title archive-form__group-title">工商信息</div>
|
|
||||||
<el-row :gutter="18">
|
<el-row :gutter="18">
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="客商编号" prop="customerCode">
|
<el-form-item label="客商编号" prop="customerCode">
|
||||||
@@ -297,10 +295,9 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</section-card>
|
||||||
|
|
||||||
<div class="archive-form__group">
|
<section-card title="联系信息">
|
||||||
<div class="dialog-section-title archive-form__group-title">联系信息</div>
|
|
||||||
<el-row :gutter="18">
|
<el-row :gutter="18">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="客商负责人" prop="principal">
|
<el-form-item label="客商负责人" prop="principal">
|
||||||
@@ -329,10 +326,9 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</section-card>
|
||||||
|
|
||||||
<div class="archive-form__group">
|
<section-card title="财务/信用信息">
|
||||||
<div class="dialog-section-title archive-form__group-title">财务/信用信息</div>
|
|
||||||
<el-row :gutter="18">
|
<el-row :gutter="18">
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="注册资金(万元)" prop="registeredCapital">
|
<el-form-item label="注册资金(万元)" prop="registeredCapital">
|
||||||
@@ -377,10 +373,9 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</section-card>
|
||||||
|
|
||||||
<div class="archive-form__group">
|
<section-card title="其他信息">
|
||||||
<div class="dialog-section-title archive-form__group-title">其他信息</div>
|
|
||||||
<el-row :gutter="18">
|
<el-row :gutter="18">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="备注" prop="remark">
|
||||||
@@ -393,18 +388,18 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</section-card>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<el-tabs v-model="activeTab" class="archive-tabs">
|
<el-tabs v-model="activeTab" class="archive-tabs">
|
||||||
<el-tab-pane label="评分表" name="scores">
|
<el-tab-pane label="评分表" name="scores">
|
||||||
<div class="section-head">
|
<section-card>
|
||||||
<span></span>
|
<template #extra>
|
||||||
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="addScore">
|
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="addScore">
|
||||||
添加评分记录
|
添加评分记录
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</template>
|
||||||
<el-table :data="scoreTableData" border class="score-list-table">
|
<el-table :data="scoreTableData" border class="score-list-table">
|
||||||
<el-table-column label="序号" width="90" align="center">
|
<el-table-column label="序号" width="90" align="center">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<span>{{ row.__index }}</span>
|
<span>{{ row.__index }}</span>
|
||||||
@@ -470,15 +465,16 @@
|
|||||||
@size-change="handleScoreSizeChange"
|
@size-change="handleScoreSizeChange"
|
||||||
@current-change="handleScoreCurrentChange"
|
@current-change="handleScoreCurrentChange"
|
||||||
/>
|
/>
|
||||||
|
</section-card>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="联系人" name="contacts">
|
<el-tab-pane label="联系人" name="contacts">
|
||||||
<div class="section-head">
|
<section-card>
|
||||||
<span></span>
|
<template #extra>
|
||||||
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="openContact()">
|
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="openContact()">
|
||||||
新增联系人
|
新增联系人
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</template>
|
||||||
<el-table :data="contactTableData" border class="contact-table">
|
<el-table :data="contactTableData" border class="contact-table">
|
||||||
<el-table-column label="序号" prop="__index" width="90" align="center" />
|
<el-table-column label="序号" prop="__index" width="90" align="center" />
|
||||||
<el-table-column label="联系人姓名" prop="contactName" min-width="150" />
|
<el-table-column label="联系人姓名" prop="contactName" min-width="150" />
|
||||||
<el-table-column label="联系人电话" prop="contactPhone" min-width="150" />
|
<el-table-column label="联系人电话" prop="contactPhone" min-width="150" />
|
||||||
@@ -509,15 +505,16 @@
|
|||||||
@size-change="size => handleDetailSizeChange('contact', size)"
|
@size-change="size => handleDetailSizeChange('contact', size)"
|
||||||
@current-change="page => handleDetailCurrentChange('contact', page)"
|
@current-change="page => handleDetailCurrentChange('contact', page)"
|
||||||
/>
|
/>
|
||||||
|
</section-card>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="收款信息" name="receiptAccounts">
|
<el-tab-pane label="收款信息" name="receiptAccounts">
|
||||||
<div class="section-head">
|
<section-card>
|
||||||
<span></span>
|
<template #extra>
|
||||||
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="openReceipt()">
|
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="openReceipt()">
|
||||||
新增收款信息
|
新增收款信息
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</template>
|
||||||
<el-table :data="receiptTableData" border class="receipt-table">
|
<el-table :data="receiptTableData" border class="receipt-table">
|
||||||
<el-table-column label="序号" prop="__index" width="90" align="center" />
|
<el-table-column label="序号" prop="__index" width="90" align="center" />
|
||||||
<el-table-column label="收款单位名称" prop="accountName" min-width="180" />
|
<el-table-column label="收款单位名称" prop="accountName" min-width="180" />
|
||||||
<el-table-column label="开户人姓名" prop="accountHolderName" min-width="150" />
|
<el-table-column label="开户人姓名" prop="accountHolderName" min-width="150" />
|
||||||
@@ -539,15 +536,16 @@
|
|||||||
@size-change="size => handleDetailSizeChange('receipt', size)"
|
@size-change="size => handleDetailSizeChange('receipt', size)"
|
||||||
@current-change="page => handleDetailCurrentChange('receipt', page)"
|
@current-change="page => handleDetailCurrentChange('receipt', page)"
|
||||||
/>
|
/>
|
||||||
|
</section-card>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="发票信息" name="invoices">
|
<el-tab-pane label="发票信息" name="invoices">
|
||||||
<div class="section-head">
|
<section-card>
|
||||||
<span></span>
|
<template #extra>
|
||||||
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="openInvoice()">
|
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="openInvoice()">
|
||||||
新增发票信息
|
新增发票信息
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</template>
|
||||||
<el-table :data="invoiceTableData" border class="invoice-table">
|
<el-table :data="invoiceTableData" border class="invoice-table">
|
||||||
<el-table-column label="序号" prop="__index" width="90" align="center" />
|
<el-table-column label="序号" prop="__index" width="90" align="center" />
|
||||||
<el-table-column label="收票方名称" prop="invoiceTitle" min-width="180" />
|
<el-table-column label="收票方名称" prop="invoiceTitle" min-width="180" />
|
||||||
<el-table-column label="纳税人识别号" prop="taxNo" min-width="180" />
|
<el-table-column label="纳税人识别号" prop="taxNo" min-width="180" />
|
||||||
@@ -575,12 +573,12 @@
|
|||||||
@size-change="size => handleDetailSizeChange('invoice', size)"
|
@size-change="size => handleDetailSizeChange('invoice', size)"
|
||||||
@current-change="page => handleDetailCurrentChange('invoice', page)"
|
@current-change="page => handleDetailCurrentChange('invoice', page)"
|
||||||
/>
|
/>
|
||||||
|
</section-card>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
|
|
||||||
<div class="customer-material-section">
|
<section-card title="客商材料">
|
||||||
<div class="section-head">
|
<template #extra>
|
||||||
<div class="section-title dialog-section-title">客商材料</div>
|
|
||||||
<div v-if="!readonly" class="section-actions">
|
<div v-if="!readonly" class="section-actions">
|
||||||
<el-button icon="el-icon-download" @click="downloadAttachments">批量下载</el-button>
|
<el-button icon="el-icon-download" @click="downloadAttachments">批量下载</el-button>
|
||||||
<el-button type="primary" icon="el-icon-plus" @click="addAttachment"
|
<el-button type="primary" icon="el-icon-plus" @click="addAttachment"
|
||||||
@@ -590,7 +588,7 @@
|
|||||||
OCR上传识别
|
OCR上传识别
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</template>
|
||||||
<el-alert
|
<el-alert
|
||||||
type="info"
|
type="info"
|
||||||
:closable="false"
|
:closable="false"
|
||||||
@@ -657,17 +655,16 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</section-card>
|
||||||
|
|
||||||
<div class="change-record-section">
|
<section-card title="变更记录">
|
||||||
<div class="section-title dialog-section-title">变更记录</div>
|
|
||||||
<el-table :data="archiveForm.changeRecords" border>
|
<el-table :data="archiveForm.changeRecords" border>
|
||||||
<el-table-column label="序号" type="index" width="90" align="center" />
|
<el-table-column label="序号" type="index" width="90" align="center" />
|
||||||
<el-table-column label="变更日期" prop="changeTime" min-width="170" />
|
<el-table-column label="变更日期" prop="changeTime" min-width="170" />
|
||||||
<el-table-column label="变更内容" prop="changeContent" min-width="260" />
|
<el-table-column label="变更内容" prop="changeContent" min-width="260" />
|
||||||
<el-table-column label="变更账号" prop="changeUserName" min-width="160" />
|
<el-table-column label="变更账号" prop="changeUserName" min-width="160" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</section-card>
|
||||||
|
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button @click="archiveBox = false">{{ readonly ? '关闭' : '取消' }}</el-button>
|
<el-button @click="archiveBox = false">{{ readonly ? '关闭' : '取消' }}</el-button>
|
||||||
@@ -838,8 +835,8 @@
|
|||||||
label-width="120px"
|
label-width="120px"
|
||||||
class="invoice-form"
|
class="invoice-form"
|
||||||
>
|
>
|
||||||
<div class="invoice-form__section-title">发票信息</div>
|
<section-card title="发票信息">
|
||||||
<el-row :gutter="34">
|
<el-row :gutter="34">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="纳税人识别号" prop="taxNo">
|
<el-form-item label="纳税人识别号" prop="taxNo">
|
||||||
<el-input v-model="invoiceForm.taxNo" maxlength="30" />
|
<el-input v-model="invoiceForm.taxNo" maxlength="30" />
|
||||||
@@ -887,8 +884,10 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<div class="invoice-form__section-title">邮寄信息</div>
|
</section-card>
|
||||||
<el-row :gutter="34">
|
|
||||||
|
<section-card title="邮寄信息">
|
||||||
|
<el-row :gutter="34">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="收件人姓名" prop="receiverName">
|
<el-form-item label="收件人姓名" prop="receiverName">
|
||||||
<el-input v-model="invoiceForm.receiverName" maxlength="30" />
|
<el-input v-model="invoiceForm.receiverName" maxlength="30" />
|
||||||
@@ -917,6 +916,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
</section-card>
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="invoice-dialog__footer-actions">
|
<div class="invoice-dialog__footer-actions">
|
||||||
@@ -1105,9 +1105,8 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<div class="score-material-section">
|
<section-card title="证明材料" class="score-material-card">
|
||||||
<div class="score-material-section__head">
|
<template #extra>
|
||||||
<div class="dialog-section-title">证明材料</div>
|
|
||||||
<vehicle-attachment-upload
|
<vehicle-attachment-upload
|
||||||
v-if="!readonly"
|
v-if="!readonly"
|
||||||
v-model="scoreAttachmentFiles"
|
v-model="scoreAttachmentFiles"
|
||||||
@@ -1116,7 +1115,7 @@
|
|||||||
:show-tip="false"
|
:show-tip="false"
|
||||||
@success="handleScoreAttachmentUploadSuccess"
|
@success="handleScoreAttachmentUploadSuccess"
|
||||||
/>
|
/>
|
||||||
</div>
|
</template>
|
||||||
<el-table :data="scoreAttachmentFiles" border class="score-material-table">
|
<el-table :data="scoreAttachmentFiles" border class="score-material-table">
|
||||||
<el-table-column label="序号" type="index" width="90" align="center" />
|
<el-table-column label="序号" type="index" width="90" align="center" />
|
||||||
<el-table-column label="文件名" prop="name" min-width="220" />
|
<el-table-column label="文件名" prop="name" min-width="220" />
|
||||||
@@ -1144,7 +1143,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</section-card>
|
||||||
|
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button type="primary" v-if="!readonly" @click="saveScoreDetail">保存</el-button>
|
<el-button type="primary" v-if="!readonly" @click="saveScoreDetail">保存</el-button>
|
||||||
@@ -1431,7 +1430,7 @@ export default {
|
|||||||
editBtn: false,
|
editBtn: false,
|
||||||
selection: true,
|
selection: true,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
menuWidth: 320,
|
menuWidth: 260,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
label: '客商编号',
|
label: '客商编号',
|
||||||
@@ -3477,30 +3476,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.archive-form__group {
|
business-term-field,
|
||||||
padding: 16px 20px;
|
|
||||||
margin-bottom: 16px;
|
|
||||||
background-color: #f0f2f5;
|
|
||||||
border-radius: 8px;
|
|
||||||
|
|
||||||
.dialog-section-title {
|
|
||||||
margin: 0 0 12px;
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: 500;
|
|
||||||
color: #303133;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 内层白色卡片:字段区域白底,浮于灰色分组块之上
|
|
||||||
> .el-row {
|
|
||||||
margin: 0;
|
|
||||||
padding: 18px 16px 4px;
|
|
||||||
background-color: #fff;
|
|
||||||
border-radius: 6px;
|
|
||||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.business-term-field,
|
|
||||||
.archive-form__address {
|
.archive-form__address {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -3532,24 +3508,6 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-title {
|
|
||||||
margin: 16px 0 12px;
|
|
||||||
font-size: 18px;
|
|
||||||
font-weight: 700;
|
|
||||||
color: #303133;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-head {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
margin: 18px 0 12px;
|
|
||||||
|
|
||||||
.section-title {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-actions {
|
.section-actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
@@ -3687,13 +3645,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.customer-material-section {
|
// 客商材料、变更记录已改用全局 <section-card> 组件,无需额外 margin-top
|
||||||
margin-top: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.change-record-section {
|
|
||||||
margin-top: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.score-list-table,
|
.score-list-table,
|
||||||
.contact-table,
|
.contact-table,
|
||||||
@@ -3720,25 +3672,6 @@ export default {
|
|||||||
|
|
||||||
.invoice-form {
|
.invoice-form {
|
||||||
max-width: none;
|
max-width: none;
|
||||||
|
|
||||||
&__section-title {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
gap: 16px;
|
|
||||||
margin: 8px 0 20px;
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: 700;
|
|
||||||
color: #303133;
|
|
||||||
|
|
||||||
&::before,
|
|
||||||
&::after {
|
|
||||||
flex: 1;
|
|
||||||
height: 1px;
|
|
||||||
content: '';
|
|
||||||
background-color: #dcdfe6;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.contact-form__address {
|
.contact-form__address {
|
||||||
@@ -3849,20 +3782,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.score-material-section {
|
.score-material-card {
|
||||||
margin: 26px 36px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.score-material-section__head {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 18px;
|
|
||||||
margin-bottom: 16px;
|
|
||||||
|
|
||||||
.dialog-section-title {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.vehicle-attachment-upload) {
|
:deep(.vehicle-attachment-upload) {
|
||||||
width: auto;
|
width: auto;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ export default {
|
|||||||
viewBtn: false,
|
viewBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ export default {
|
|||||||
viewBtn: false,
|
viewBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ export default {
|
|||||||
viewBtn: false,
|
viewBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ export default {
|
|||||||
addBtn: false,
|
addBtn: false,
|
||||||
viewBtn: false,
|
viewBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ export default {
|
|||||||
viewBtn: false,
|
viewBtn: false,
|
||||||
delBtn: false,
|
delBtn: false,
|
||||||
dialogWidth: 900,
|
dialogWidth: 900,
|
||||||
menuWidth: 160,
|
menuWidth: 180,
|
||||||
dialogClickModal: false,
|
dialogClickModal: false,
|
||||||
column: [
|
column: [
|
||||||
{
|
{
|
||||||
|
|||||||
158
vite.config.mjs.timestamp-1786073196297-499423fa70143.mjs
Normal file
158
vite.config.mjs.timestamp-1786073196297-499423fa70143.mjs
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user