Merge remote-tracking branch 'websoft/master'
# Conflicts: # src/views/business/components/business-crud-page.vue
This commit is contained in:
@@ -190,3 +190,57 @@
|
|||||||
## ⚠️ option.labelWidth 必须放在 createCrudOption 展开之后
|
## ⚠️ option.labelWidth 必须放在 createCrudOption 展开之后
|
||||||
- 第一次给 transport-plan.js、waybill-manage.js 加 `labelWidth: 100` 时写在 `...createCrudOption(...)` **之前**,被 createCrudOption 自带 `labelWidth: 'auto'` 覆盖,label 仍是 auto(按内容参差,看着像"150 不统一")。shipping-template 当时写在 createCrudOption 之后才生效。
|
- 第一次给 transport-plan.js、waybill-manage.js 加 `labelWidth: 100` 时写在 `...createCrudOption(...)` **之前**,被 createCrudOption 自带 `labelWidth: 'auto'` 覆盖,label 仍是 auto(按内容参差,看着像"150 不统一")。shipping-template 当时写在 createCrudOption 之后才生效。
|
||||||
- 教训:业务 option 文件顶层 `export const option = { labelWidth: 100, ...createCrudOption([...]) }` 写法**无效**,必须 `export const option = { ...createCrudOption([...]), labelWidth: 100, dialogWidth, ... }` 后写覆盖前写。
|
- 教训:业务 option 文件顶层 `export const option = { labelWidth: 100, ...createCrudOption([...]) }` 写法**无效**,必须 `export const option = { ...createCrudOption([...]), labelWidth: 100, dialogWidth, ... }` 后写覆盖前写。
|
||||||
|
|
||||||
|
## payable-detail 主表格单据号列固定左侧
|
||||||
|
- 需求:`/settlement/payable-detail` 主表格除序号外,「单据号」列也固定左侧(横向滚动时始终可见)。
|
||||||
|
- 改动(2 处):
|
||||||
|
1. `src/option/settlement/receivable-payable-detail.js`:`documentNo` 列加 `fixed: 'left'`。
|
||||||
|
2. `src/views/settlement/receivable-payable-detail.vue`:主表格 v-for 动态列加 `:fixed="column.fixed"`(模板需显式透传才生效)。
|
||||||
|
- 注意:payable-detail 与 receivable-detail 共用同一组件,应收明细页同步生效(两侧一致)。左侧固定区 = 选择框52 + 序号64 + 单据号180。
|
||||||
|
|
||||||
|
## project-apply 列表列全部居中
|
||||||
|
- 需求:`/business/project-apply` avue-crud 列表所有列居中看效果。
|
||||||
|
- 改动(单文件 `src/views/business/project-apply.vue` `buildTableOption()`):column map 展开时加 `align:'center'` + `headerAlign:'center'`。avue 中 align 只管单元格内容,表头需 headerAlign 单独设。
|
||||||
|
- 弹窗内子表格(客户/承运商/材料/变更记录/选人)本就 align="center",无需动。Vite 2889 已 HMR。
|
||||||
|
|
||||||
|
## project-apply 审批状态列改纯文字
|
||||||
|
- 需求:审批状态列从 el-tag 改为纯文字。
|
||||||
|
- 改动(单文件 `src/views/business/project-apply.vue`):`#approvalStatus` 插槽去掉 `<el-tag>` 包裹,直接输出 `displayStatus(row,'approvalStatus')`;删除已无引用的 `statusTagType()` 方法。Vite 2889 编译 200。
|
||||||
|
|
||||||
|
## 全站表格列居中(含操作列)
|
||||||
|
- 需求:project-apply 居中效果被确认后,要求操作列按钮也居中,并应用到全站表格。
|
||||||
|
- 改动(`src/styles/element-ui.scss`,2 处全局规则):
|
||||||
|
1. `.avue-crud .avue-crud__menu.avue-crud__menu`:`justify-content: start` → `center`,`text-align: left` → `center`(Avue 操作列按钮居中,含下拉更多按钮)。
|
||||||
|
2. 表头背景规则后新增全站规则:`.el-table th.el-table__cell .cell, .el-table td.el-table__cell .cell { text-align: center }`(所有 el-table 表头+单元格内容居中,命中固定列;.cell 直接设置覆盖 el-table-column align 的继承值)。
|
||||||
|
- project-apply.vue 页面级 `align:'center'` 保留(双保险,无害);手写表格操作列 `.cell:has(> .el-link)` 本就 `justify-content:center`。
|
||||||
|
- 注意:全站居中会覆盖个别页面金额列 `align: right` 等显式右对齐,后续若某页要右对齐需页面级更高特异性覆盖。
|
||||||
|
|
||||||
|
## ⚠️ Vite optimizeDeps 缓存坑(patch node_modules 后必须重启 dev server)
|
||||||
|
- 修改 `node_modules/@smallwei/avue/lib/...` 这种深度依赖后,HMR **不会重新打包**:Vite 首次启动时已把整个 Avue ES module 预打包到 `node_modules/.vite/deps/@smallwei_avue.js`,缓存的 chunk 持续被 dev server 返回,导致代码修改"看起来没生效"。
|
||||||
|
- 解法(任选其一):
|
||||||
|
1. 重启 dev server(Vite 会重新 optimizeDeps)。
|
||||||
|
2. 手动删 `node_modules/.vite/deps/@smallwei_avue.js` + `_metadata.json`,再让 server 收到请求时触发重新打包(最干净,连同 `_metadata.json` 一起删,否则 fileHash 缓存会让它误以为已最新)。
|
||||||
|
- 经验:以后再 patch 任何被 Vite optimizeDeps 预打包的依赖(如 element-plus / avue / wangeditor 等),都要重启 server 才能生效。
|
||||||
|
|
||||||
|
## 全站弹窗/表单 label 去掉冒号(pnpm patch 修复 Avue 默认值)
|
||||||
|
- 需求:全站所有 el-form / avue-form 的字段 label(车站名称:、所属省份: 等)后冒号要去掉。
|
||||||
|
- 关键事实(重要,避免重复踩坑):
|
||||||
|
- Element Plus 的 label-suffix 不是用 `::after` 渲染,而是把后缀直接拼接到 label 文本节点:
|
||||||
|
```js
|
||||||
|
// node_modules/element-plus/es/components/form/src/form-item.vue...mjs:115
|
||||||
|
const currentLabel = computed(() => `${props.label || ""}${formContext?.labelSuffix || ""}`);
|
||||||
|
```
|
||||||
|
- EP el-form 的 labelSuffix prop 默认 `''`(空),不产生冒号;冒号来自 Avue。
|
||||||
|
- Avue 默认 `labelSuffix: ":"`,逻辑 `this.tableOption.labelSuffix || ":"`(空串 falsy 回落 `":"`),透传给 el-form 的 `label-suffix` prop。
|
||||||
|
- **踩坑**:Avue package.json 有 `"module": "es/index.mjs"` 和 `"main": "lib/index.js"`。Vite 用 ES 模块版(`es/`),不是 CommonJS 版(`lib/`)。**pnpm patch 必须同时覆盖 `es/` 和 `lib/` 两个文件**,否则 Vite 加载的 `es/` 版本未被 patch,冒号照旧!
|
||||||
|
- 另一个坑:Vite 把 Avue 预打包到 `node_modules/.vite/deps/@smallwei_avue.js`。patch 后必须删整个 `.vite` 目录 + 重启 dev server,否则预打包缓存仍是旧代码。
|
||||||
|
- 实施(pnpm patch + 手动补 es/ 版本):
|
||||||
|
1. `pnpm patch @smallwei/avue` → 临时目录,编辑 `lib/.../index2.js`。
|
||||||
|
2. `pnpm patch-commit <临时目录>` → 生成 `patches/@smallwei__avue.patch`(仅含 lib/ 改动)。
|
||||||
|
3. **手动更新 patch 文件**:追加 `es/packages/element-plus/form/index2.mjs` 的 diff(同样 `|| ":"` → `|| ""`)。
|
||||||
|
4. **手动编辑 node_modules** 中 `es/.../index2.mjs`(pnpm patch 只生成了 lib/ 的改动,es/ 版本需手动改)。
|
||||||
|
5. 删 `node_modules/.vite` 整个目录 → 重启 `pnpm dev` → Vite 重新预打包(含 es/ patch)→ 浏览器强刷。
|
||||||
|
- patch 文件:`patches/@smallwei__avue.patch`(含 es/ + lib/ 两处 diff)。
|
||||||
|
- pnpm 配置:`pnpm-workspace.yaml` 内 `patchedDependencies: { '@smallwei/avue': patches/@smallwei__avue.patch }`。
|
||||||
|
- ⚠️ 提交时务必带上:`patches/`、`pnpm-workspace.yaml`、`pnpm-lock.yaml`,缺一不可。
|
||||||
|
- ⚠️ `pnpm install` 会从 patch 文件重新应用补丁——如果 patch 文件没有 es/ 的 diff,es/ 版本会被还原为原始代码(冒号回来)。已手动补上 es/ diff 到 patch 文件。
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# 2026-08-24
|
||||||
|
|
||||||
|
## 发货模板查看弹窗白底卡片统一化
|
||||||
|
- 问题:shipping-template 查看弹窗仍走 Avue 默认 rowView,各板块无白底卡片分隔。
|
||||||
|
- 改动:
|
||||||
|
- `src/option/business/shipping-template.js`:config 新增 `detailButton: true`、`detailButtonIgnoreDraftStatus: true`,并配置 `detailSections`(模板信息/基本信息/收发货信息),每板块两列 el-descriptions,备注与地址占整行。
|
||||||
|
- `src/views/business/components/business-crud-page.vue`:在 detailBox 通用详情模板中,货物信息卡片后新增运费信息 section-card,区分公路(单价/数量合计/运费/运费合计/其他运费合计/币种)与非公路(运费/数量合计/其他运费合计/币种)展示。
|
||||||
|
- 样式:`&__detail-content` 已统一 `gap: 12px`,section-card 间距即为 12px;新增 `&__freight-descriptions` 单位/币种辅助色。
|
||||||
|
- 验证:`npm run build` 通过。
|
||||||
|
|
||||||
|
## 发货模板查看弹窗 label 宽度统一
|
||||||
|
- 问题:详情弹窗各 section 的 el-descriptions 按内容自动列宽,导致「收发货信息」板块含 6 字标签(发货联系方式/收货联系方式)时 label 列比其他板块(4 字标签)更宽,视觉不一致。原 CSS `.el-descriptions__label{width:140px}` 在含 span 行的 fixed 布局下未能可靠等宽。
|
||||||
|
- 改动:
|
||||||
|
- `src/views/business/components/business-crud-page.vue` 在通用详情描述(line ~3109)与运费信息两张描述表(road / 非 road)上加 `label-width="140px"`。
|
||||||
|
- `src/option/business/shipping-template.js`:将「收发货信息」字段顺序调整为联系人/联系方式在前、地址整行在后(非 span 行置于首行,让 `table-layout: fixed` 能在首行正确建立两列 label 宽度)。
|
||||||
|
- 验证:`npm run build` 通过。
|
||||||
|
|
||||||
|
## 全站业务状态标签文字化(调度状态/审批状态)
|
||||||
|
- 新增全局 `.status-text` 工具类(`src/styles/element-ui.scss` 末尾):去掉 `el-tag` 背景/边框,保留彩色文字 + `currentColor` 圆点。
|
||||||
|
- 全站所有业务状态 `el-tag` 统一加 `class="status-text"`:business-crud-page(#status/#businessStatus/#approvalStatus 插槽 + 运输计划详情头 + 运单详情头 + 调度弹窗头)、master-order 系列 businessStatus、loading-manage 详情弹窗、结算三处 approvalStatus、process-config 流程状态。
|
||||||
|
- 已通过 dev (localhost:2889) HMR 生效,刷新即可查看。调度状态(businessStatus)全站视觉已统一为"文字 + 颜色"。
|
||||||
|
- `credit-score-quantification.vue` 状态列(#status 插槽,statusMap: 正常/停用/草稿)的 el-tag 也加 `.status-text` 统一。
|
||||||
@@ -33,6 +33,19 @@
|
|||||||
- **master-order?mode=editor**:`master-order.vue` 把 `<master-order-editor>` 包进 `<template v-else-if="mode==='editor'">`,前置 `<div class="archive-page-form__title">{{ masterEditorTitle }}</div>`(computed `masterEditorTitle` = `routeId ? '编辑总单' : '新增总单'`)。
|
- **master-order?mode=editor**:`master-order.vue` 把 `<master-order-editor>` 包进 `<template v-else-if="mode==='editor'">`,前置 `<div class="archive-page-form__title">{{ masterEditorTitle }}</div>`(computed `masterEditorTitle` = `routeId ? '编辑总单' : '新增总单'`)。
|
||||||
- 扩展原则:新增独立表单页要带此标题,要么并入 business-crud-page 的 `formPageTitle` 条件(business-crud-page 系列),要么在对应页面模板手写 `<div class="archive-page-form__title">`(loading-manage / master-order 模式)。
|
- 扩展原则:新增独立表单页要带此标题,要么并入 business-crud-page 的 `formPageTitle` 条件(business-crud-page 系列),要么在对应页面模板手写 `<div class="archive-page-form__title">`(loading-manage / master-order 模式)。
|
||||||
|
|
||||||
|
### 表格列内嵌输入控件:全宽(全局 CSS,不动手写 scoped)
|
||||||
|
- `element-ui.scss` 在 660-678 行加了一条全局规则:`.el-table .el-table__body td.el-table__cell .cell > .el-input-number/.el-input/.el-select/.el-date-editor/.el-cascader { width:100%; --el-*-width:100% }`(带对应 `--el-input-number-width` 等变量兜底)。
|
||||||
|
- 适用场景:可编辑 el-table 列、弹窗内编辑表格。原先容易踩坑的是 el-plus 的 el-input-number 默认根 width=150px,cell 给到 min-width=150 后输入框只占自然宽度、看着"显示不全"。**新增任何"el-table cell 内嵌 el-input-number/el-input/el-select"需求不用再写 scoped 宽度**——已全局兜底。
|
||||||
|
- 与"表单内 250px 全宽"互不冲突:本规则只命中 `.el-table .el-table__body td`,表单内 `.el-form-item__content >` 的 250px 规则仍生效。
|
||||||
|
- 已覆盖:pre-settlement-editor「结算明细调整」弹窗(adjustDialog 列内 el-input-number/el-input 全宽)、transport-reconciliation-editor/formal-settlement-editor/settlement-adjustment-editor 同款结构。
|
||||||
|
|
||||||
|
### 业务状态标签文字化:全局 `.status-text` 工具类
|
||||||
|
- 需求:全站"调度状态/运单状态/审批状态"等用 `el-tag` 展示的字段,统一改为"纯文字 + 颜色"(不用 tag 背景/边框)。
|
||||||
|
- 实现:`element-ui.scss` 末尾新增 `.el-tag.status-text { background:transparent!important; border-color:transparent!important; padding:0; margin-left:8px; font-weight:500 }` + `&::before` 6px 圆点(`background:currentColor`,颜色随 el-tag 的 `:type`)。
|
||||||
|
- 用法:业务状态 `el-tag` 加 `class="status-text"`,颜色仍由现有 `statusTagType/statusType/waybillStatusType/detailStatusType` 返回的 success/warning/danger/info/primary 决定。
|
||||||
|
- 已覆盖:`business-crud-page.vue`(#status/#businessStatus/#approvalStatus 插槽 + 运输计划详情头 + 运单详情头 + 调度弹窗头)、`master-order.vue`/`master-order-detail.vue`/`master-order-dispatch.vue` 的 businessStatus、`loading-manage.vue` 详情弹窗、结算三处 approvalStatus、`process-config.vue` 流程状态、`credit-score-quantification.vue` 状态列。
|
||||||
|
- 例外:`loading-manage.vue` 列表状态列本就用 `<span class="loading-manage-page__status is-${status}">` 文字化(先例),不动;"类型标签"(transport-flow-tag、transportTypeName 等 `type="primary"`)非状态语义,保持 tag 样式。
|
||||||
|
|
||||||
## 关键文件
|
## 关键文件
|
||||||
- 分组白卡:`src/components/section-card/main.vue`。
|
- 分组白卡:`src/components/section-card/main.vue`。
|
||||||
- 全局弹窗/section-card 样式:`src/styles/element-ui.scss`。
|
- 全局弹窗/section-card 样式:`src/styles/element-ui.scss`。
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
diff --git a/es/packages/element-plus/form/index2.mjs b/es/packages/element-plus/form/index2.mjs
|
||||||
|
--- a/es/packages/element-plus/form/index2.mjs
|
||||||
|
+++ b/es/packages/element-plus/form/index2.mjs
|
||||||
|
@@ -100,6 +100,6 @@
|
||||||
|
},
|
||||||
|
labelSuffix() {
|
||||||
|
- return this.tableOption.labelSuffix || ":";
|
||||||
|
+ return this.tableOption.labelSuffix || "";
|
||||||
|
},
|
||||||
|
isMenu() {
|
||||||
|
return this.columnOption.length != 1;
|
||||||
|
diff --git a/lib/packages/element-plus/form/index2.js b/lib/packages/element-plus/form/index2.js
|
||||||
|
--- a/lib/packages/element-plus/form/index2.js
|
||||||
|
+++ b/lib/packages/element-plus/form/index2.js
|
||||||
|
@@ -104,6 +104,6 @@
|
||||||
|
},
|
||||||
|
labelSuffix() {
|
||||||
|
- return this.tableOption.labelSuffix || ":";
|
||||||
|
+ return this.tableOption.labelSuffix || "";
|
||||||
|
},
|
||||||
|
isMenu() {
|
||||||
|
return this.columnOption.length != 1;
|
||||||
Generated
+34
-29
@@ -4,6 +4,11 @@ settings:
|
|||||||
autoInstallPeers: true
|
autoInstallPeers: true
|
||||||
excludeLinksFromLockfile: false
|
excludeLinksFromLockfile: false
|
||||||
|
|
||||||
|
patchedDependencies:
|
||||||
|
'@smallwei/avue':
|
||||||
|
hash: 5ba15ad41b2c301250bf24adf39da2ed526b8375143da2c5a495361b29e862db
|
||||||
|
path: patches/@smallwei__avue.patch
|
||||||
|
|
||||||
importers:
|
importers:
|
||||||
|
|
||||||
.:
|
.:
|
||||||
@@ -28,7 +33,7 @@ importers:
|
|||||||
version: 1.7.0
|
version: 1.7.0
|
||||||
'@smallwei/avue':
|
'@smallwei/avue':
|
||||||
specifier: ~3.9.2
|
specifier: ~3.9.2
|
||||||
version: 3.9.2(@element-plus/icons-vue@2.3.2(vue@3.5.34))(element-plus@2.14.2(vue@3.5.34))(vue@3.5.34)
|
version: 3.9.2(patch_hash=5ba15ad41b2c301250bf24adf39da2ed526b8375143da2c5a495361b29e862db)(@element-plus/icons-vue@2.3.2(vue@3.5.34))(element-plus@2.14.2(vue@3.5.34))(vue@3.5.34)
|
||||||
animate.css:
|
animate.css:
|
||||||
specifier: ^4.1.1
|
specifier: ^4.1.1
|
||||||
version: 4.1.1
|
version: 4.1.1
|
||||||
@@ -2636,7 +2641,7 @@ snapshots:
|
|||||||
countup.js: 2.10.0
|
countup.js: 2.10.0
|
||||||
signature_pad: 5.1.3
|
signature_pad: 5.1.3
|
||||||
|
|
||||||
'@smallwei/avue@3.9.2(@element-plus/icons-vue@2.3.2(vue@3.5.34))(element-plus@2.14.2(vue@3.5.34))(vue@3.5.34)':
|
'@smallwei/avue@3.9.2(patch_hash=5ba15ad41b2c301250bf24adf39da2ed526b8375143da2c5a495361b29e862db)(@element-plus/icons-vue@2.3.2(vue@3.5.34))(element-plus@2.14.2(vue@3.5.34))(vue@3.5.34)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@element-plus/icons-vue': 2.3.2(vue@3.5.34)
|
'@element-plus/icons-vue': 2.3.2(vue@3.5.34)
|
||||||
axios: 0.21.4
|
axios: 0.21.4
|
||||||
@@ -2775,30 +2780,30 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
vue: 3.5.34
|
vue: 3.5.34
|
||||||
|
|
||||||
'@wangeditor-next/basic-modules@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3)':
|
'@wangeditor-next/basic-modules@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3)
|
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
dom7: 3.0.0
|
dom7: 4.0.6
|
||||||
is-url: 1.2.4
|
is-url: 1.2.4
|
||||||
lodash.throttle: 4.1.1
|
lodash.throttle: 4.1.1
|
||||||
nanoid: 3.3.12
|
nanoid: 5.1.11
|
||||||
slate: 0.72.8
|
slate: 0.123.0
|
||||||
snabbdom: 3.6.3
|
snabbdom: 3.6.3
|
||||||
|
|
||||||
'@wangeditor-next/code-highlight@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.123.0)(snabbdom@3.6.3)':
|
'@wangeditor-next/code-highlight@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.123.0)(snabbdom@3.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3)
|
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
dom7: 4.0.6
|
dom7: 4.0.6
|
||||||
prismjs: 1.30.0
|
prismjs: 1.30.0
|
||||||
slate: 0.123.0
|
slate: 0.123.0
|
||||||
snabbdom: 3.6.3
|
snabbdom: 3.6.3
|
||||||
|
|
||||||
'@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3)':
|
'@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/event-emitter': 0.3.5
|
'@types/event-emitter': 0.3.5
|
||||||
'@uppy/core': 2.3.4
|
'@uppy/core': 2.3.4
|
||||||
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
|
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
|
||||||
dom7: 3.0.0
|
dom7: 4.0.6
|
||||||
event-emitter: 0.3.5
|
event-emitter: 0.3.5
|
||||||
html-void-elements: 3.0.0
|
html-void-elements: 3.0.0
|
||||||
i18next: 23.16.8
|
i18next: 23.16.8
|
||||||
@@ -2809,9 +2814,9 @@ snapshots:
|
|||||||
lodash.foreach: 4.5.0
|
lodash.foreach: 4.5.0
|
||||||
lodash.throttle: 4.1.1
|
lodash.throttle: 4.1.1
|
||||||
lodash.toarray: 4.4.0
|
lodash.toarray: 4.4.0
|
||||||
nanoid: 3.3.12
|
nanoid: 5.1.11
|
||||||
scroll-into-view-if-needed: 3.1.0
|
scroll-into-view-if-needed: 3.1.0
|
||||||
slate: 0.72.8
|
slate: 0.123.0
|
||||||
slate-history: 0.115.0(slate@0.123.0)
|
slate-history: 0.115.0(slate@0.123.0)
|
||||||
snabbdom: 3.6.3
|
snabbdom: 3.6.3
|
||||||
|
|
||||||
@@ -2819,13 +2824,13 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@uppy/core': 2.3.4
|
'@uppy/core': 2.3.4
|
||||||
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
|
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
|
||||||
'@wangeditor-next/basic-modules': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3)
|
'@wangeditor-next/basic-modules': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
'@wangeditor-next/code-highlight': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.123.0)(snabbdom@3.6.3)
|
'@wangeditor-next/code-highlight': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3)
|
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
'@wangeditor-next/list-module': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.123.0)(snabbdom@3.6.3)
|
'@wangeditor-next/list-module': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
'@wangeditor-next/table-module': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.debounce@4.0.8)(lodash.throttle@4.1.1)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)
|
'@wangeditor-next/table-module': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.debounce@4.0.8)(lodash.throttle@4.1.1)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
'@wangeditor-next/upload-image-module': 2.0.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/basic-modules@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.foreach@4.5.0)(slate@0.123.0)(snabbdom@3.6.3)
|
'@wangeditor-next/upload-image-module': 2.0.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/basic-modules@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.foreach@4.5.0)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
'@wangeditor-next/video-module': 2.0.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@4.0.6)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)
|
'@wangeditor-next/video-module': 2.0.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
dom7: 4.0.6
|
dom7: 4.0.6
|
||||||
is-hotkey: 0.2.0
|
is-hotkey: 0.2.0
|
||||||
lodash.camelcase: 4.3.0
|
lodash.camelcase: 4.3.0
|
||||||
@@ -2838,16 +2843,16 @@ snapshots:
|
|||||||
slate: 0.123.0
|
slate: 0.123.0
|
||||||
snabbdom: 3.6.3
|
snabbdom: 3.6.3
|
||||||
|
|
||||||
'@wangeditor-next/list-module@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.123.0)(snabbdom@3.6.3)':
|
'@wangeditor-next/list-module@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.123.0)(snabbdom@3.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3)
|
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
dom7: 4.0.6
|
dom7: 4.0.6
|
||||||
slate: 0.123.0
|
slate: 0.123.0
|
||||||
snabbdom: 3.6.3
|
snabbdom: 3.6.3
|
||||||
|
|
||||||
'@wangeditor-next/table-module@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.debounce@4.0.8)(lodash.throttle@4.1.1)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)':
|
'@wangeditor-next/table-module@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.debounce@4.0.8)(lodash.throttle@4.1.1)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3)
|
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
dom7: 4.0.6
|
dom7: 4.0.6
|
||||||
lodash.debounce: 4.0.8
|
lodash.debounce: 4.0.8
|
||||||
lodash.throttle: 4.1.1
|
lodash.throttle: 4.1.1
|
||||||
@@ -2855,22 +2860,22 @@ snapshots:
|
|||||||
slate: 0.123.0
|
slate: 0.123.0
|
||||||
snabbdom: 3.6.3
|
snabbdom: 3.6.3
|
||||||
|
|
||||||
'@wangeditor-next/upload-image-module@2.0.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/basic-modules@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.foreach@4.5.0)(slate@0.123.0)(snabbdom@3.6.3)':
|
'@wangeditor-next/upload-image-module@2.0.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/basic-modules@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.foreach@4.5.0)(slate@0.123.0)(snabbdom@3.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@uppy/core': 2.3.4
|
'@uppy/core': 2.3.4
|
||||||
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
|
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
|
||||||
'@wangeditor-next/basic-modules': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3)
|
'@wangeditor-next/basic-modules': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3)
|
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
dom7: 4.0.6
|
dom7: 4.0.6
|
||||||
lodash.foreach: 4.5.0
|
lodash.foreach: 4.5.0
|
||||||
slate: 0.123.0
|
slate: 0.123.0
|
||||||
snabbdom: 3.6.3
|
snabbdom: 3.6.3
|
||||||
|
|
||||||
'@wangeditor-next/video-module@2.0.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3))(dom7@4.0.6)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)':
|
'@wangeditor-next/video-module@2.0.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@uppy/core': 2.3.4
|
'@uppy/core': 2.3.4
|
||||||
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
|
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
|
||||||
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.12)(slate@0.72.8)(snabbdom@3.6.3)
|
'@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.11)(slate@0.123.0)(snabbdom@3.6.3)
|
||||||
dom7: 4.0.6
|
dom7: 4.0.6
|
||||||
nanoid: 5.1.11
|
nanoid: 5.1.11
|
||||||
slate: 0.123.0
|
slate: 0.123.0
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
patchedDependencies:
|
||||||
|
'@smallwei/avue': patches/@smallwei__avue.patch
|
||||||
@@ -63,8 +63,8 @@ export const config = {
|
|||||||
['signDate', '签订日期'],
|
['signDate', '签订日期'],
|
||||||
['contractFormat', '合同格式'],
|
['contractFormat', '合同格式'],
|
||||||
['legalSealFlag', '是否需要加盖法人章'],
|
['legalSealFlag', '是否需要加盖法人章'],
|
||||||
['copyCount', '一式'],
|
['copyCount', '一式(份)'],
|
||||||
['paymentDays', '回款账期'],
|
['paymentDays', '回款账期(天)'],
|
||||||
['remark', '备注', 2],
|
['remark', '备注', 2],
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
@@ -158,7 +158,7 @@ export const config = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
action: 'startChange',
|
action: 'startChange',
|
||||||
label: '发起变更',
|
label: '变更',
|
||||||
statusProp: 'approvalStatus',
|
statusProp: 'approvalStatus',
|
||||||
status: ['approved'],
|
status: ['approved'],
|
||||||
stage: ['formal'],
|
stage: ['formal'],
|
||||||
@@ -167,7 +167,7 @@ export const config = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
action: 'startChange',
|
action: 'startChange',
|
||||||
label: '再次发起变更',
|
label: '变更',
|
||||||
statusProp: 'approvalStatus',
|
statusProp: 'approvalStatus',
|
||||||
status: ['change_approved'],
|
status: ['change_approved'],
|
||||||
stage: ['formal'],
|
stage: ['formal'],
|
||||||
@@ -459,7 +459,7 @@ export const option = createCrudOption([
|
|||||||
rules: selectRule('是否需要加盖法人章'),
|
rules: selectRule('是否需要加盖法人章'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '一式',
|
label: '一式(份)',
|
||||||
prop: 'copyCount',
|
prop: 'copyCount',
|
||||||
labelWidth: '72px',
|
labelWidth: '72px',
|
||||||
formslot: true,
|
formslot: true,
|
||||||
@@ -468,7 +468,7 @@ export const option = createCrudOption([
|
|||||||
minWidth: 110,
|
minWidth: 110,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '回款账期',
|
label: '回款账期(天)',
|
||||||
prop: 'paymentDays',
|
prop: 'paymentDays',
|
||||||
formslot: true,
|
formslot: true,
|
||||||
hide: true,
|
hide: true,
|
||||||
|
|||||||
@@ -219,7 +219,7 @@ export const option = createCrudOption([
|
|||||||
minWidth: 120,
|
minWidth: 120,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '项目资金使用额度(万元)',
|
label: '项目资金使用额度(万元)',
|
||||||
prop: 'fundLimit',
|
prop: 'fundLimit',
|
||||||
type: 'number',
|
type: 'number',
|
||||||
precision: 2,
|
precision: 2,
|
||||||
@@ -228,7 +228,7 @@ export const option = createCrudOption([
|
|||||||
rules: amountRules('项目资金使用额度'),
|
rules: amountRules('项目资金使用额度'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '项目应收账款额度(万元)',
|
label: '项目应收账款额度(万元)',
|
||||||
prop: 'receivableLimit',
|
prop: 'receivableLimit',
|
||||||
type: 'number',
|
type: 'number',
|
||||||
precision: 2,
|
precision: 2,
|
||||||
@@ -237,7 +237,7 @@ export const option = createCrudOption([
|
|||||||
rules: amountRules('项目应收账款额度'),
|
rules: amountRules('项目应收账款额度'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '应收账款回款期限(天)',
|
label: '应收账款回款期限(天)',
|
||||||
prop: 'receivableDays',
|
prop: 'receivableDays',
|
||||||
type: 'number',
|
type: 'number',
|
||||||
hide: true,
|
hide: true,
|
||||||
@@ -245,7 +245,7 @@ export const option = createCrudOption([
|
|||||||
rules: [{ required: true, message: '请输入应收账款回款期限', trigger: 'blur' }],
|
rules: [{ required: true, message: '请输入应收账款回款期限', trigger: 'blur' }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '回款账期(天)',
|
label: '回款账期(天)',
|
||||||
prop: 'paymentDays',
|
prop: 'paymentDays',
|
||||||
type: 'number',
|
type: 'number',
|
||||||
hide: true,
|
hide: true,
|
||||||
@@ -311,7 +311,7 @@ export const option = createCrudOption([
|
|||||||
minWidth: 130,
|
minWidth: 130,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '项目规模(万元)',
|
label: '项目规模(万元)',
|
||||||
prop: 'projectScale',
|
prop: 'projectScale',
|
||||||
type: 'number',
|
type: 'number',
|
||||||
precision: 2,
|
precision: 2,
|
||||||
@@ -320,7 +320,7 @@ export const option = createCrudOption([
|
|||||||
rules: [nonNegativeRule('项目规模')],
|
rules: [nonNegativeRule('项目规模')],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '预计利润(万元)',
|
label: '预计利润(万元)',
|
||||||
prop: 'estimatedProfit',
|
prop: 'estimatedProfit',
|
||||||
type: 'number',
|
type: 'number',
|
||||||
precision: 2,
|
precision: 2,
|
||||||
@@ -329,7 +329,7 @@ export const option = createCrudOption([
|
|||||||
rules: [nonNegativeRule('预计利润')],
|
rules: [nonNegativeRule('预计利润')],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '资金需求(万元)',
|
label: '资金需求(万元)',
|
||||||
prop: 'fundDemand',
|
prop: 'fundDemand',
|
||||||
type: 'number',
|
type: 'number',
|
||||||
precision: 2,
|
precision: 2,
|
||||||
|
|||||||
@@ -15,6 +15,40 @@ const templateTypeOptions = [
|
|||||||
export const config = {
|
export const config = {
|
||||||
title: '发货模板',
|
title: '发货模板',
|
||||||
permission: 'shipping_template',
|
permission: 'shipping_template',
|
||||||
|
detailButton: true,
|
||||||
|
detailButtonIgnoreDraftStatus: true,
|
||||||
|
detailSections: [
|
||||||
|
{
|
||||||
|
title: '模板信息',
|
||||||
|
fields: [
|
||||||
|
['templateCode', '模板编号'],
|
||||||
|
['templateName', '模板名称'],
|
||||||
|
['templateType', '模板类型'],
|
||||||
|
['transportType', '运输方式'],
|
||||||
|
['remark', '备注', 2],
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '基本信息',
|
||||||
|
fields: [
|
||||||
|
['projectName', '项目'],
|
||||||
|
['contractName', '客户合同'],
|
||||||
|
['transportType', '运输方式'],
|
||||||
|
['basicRemark', '备注', 2],
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '收发货信息',
|
||||||
|
fields: [
|
||||||
|
['departureContact', '发货联系人'],
|
||||||
|
['departurePhone', '发货联系方式'],
|
||||||
|
['departureAddress', '发货地址', 2],
|
||||||
|
['arrivalContact', '收货联系人'],
|
||||||
|
['arrivalPhone', '收货联系方式'],
|
||||||
|
['arrivalAddress', '收货地址', 2],
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
tableColumnOrder: [
|
tableColumnOrder: [
|
||||||
'templateCode',
|
'templateCode',
|
||||||
'templateName',
|
'templateName',
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ export const config = {
|
|||||||
{
|
{
|
||||||
title: '申请信息',
|
title: '申请信息',
|
||||||
fields: [
|
fields: [
|
||||||
['applicationNo', '申请单号', 2],
|
['applicationNo', '申请单号', 1],
|
||||||
['projectName', '项目', 1],
|
['projectName', '项目', 1],
|
||||||
['projectCode', '项目编号', 1],
|
['projectCode', '项目编号', 1],
|
||||||
['undertakeDeptName', '承办部门', 1],
|
['undertakeDeptName', '承办部门', 1],
|
||||||
@@ -62,7 +62,7 @@ export const config = {
|
|||||||
['currentNode', '当前节点', 1],
|
['currentNode', '当前节点', 1],
|
||||||
['currentProcessor', '当前处理人', 1],
|
['currentProcessor', '当前处理人', 1],
|
||||||
['validUntil', '申请有效期至', 1],
|
['validUntil', '申请有效期至', 1],
|
||||||
['remark', '备注', 2],
|
['remark', '备注', 1],
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -578,7 +578,7 @@ export const option = {
|
|||||||
viewDisplay: false,
|
viewDisplay: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '单价(计价单位)',
|
label: '单价(计价单位)',
|
||||||
prop: 'unitPrice',
|
prop: 'unitPrice',
|
||||||
formatter: row => formatUnitPrice(row),
|
formatter: row => formatUnitPrice(row),
|
||||||
minWidth: 140,
|
minWidth: 140,
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ export const timeExpressionTypeDic = [
|
|||||||
value: 2,
|
value: 2,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '固定频率(毫秒)',
|
label: '固定频率(毫秒)',
|
||||||
value: 3,
|
value: 3,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '固定延迟(毫秒)',
|
label: '固定延迟(毫秒)',
|
||||||
value: 4,
|
value: 4,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -428,14 +428,14 @@ export default {
|
|||||||
value: 0,
|
value: 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '最低内存(GB)',
|
label: '最低内存(GB)',
|
||||||
labelTip: '可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制',
|
labelTip: '可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制',
|
||||||
prop: 'minMemorySpace',
|
prop: 'minMemorySpace',
|
||||||
type: 'number',
|
type: 'number',
|
||||||
value: 0,
|
value: 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '最低磁盘空间(GB)',
|
label: '最低磁盘空间(GB)',
|
||||||
labelTip: '可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制',
|
labelTip: '可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制',
|
||||||
prop: 'minDiskSpace',
|
prop: 'minDiskSpace',
|
||||||
type: 'number',
|
type: 'number',
|
||||||
@@ -475,14 +475,14 @@ export default {
|
|||||||
value: 0,
|
value: 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '统计窗口(s)',
|
label: '统计窗口(s)',
|
||||||
labelTip: '统计的窗口长度(s),0代表不限制',
|
labelTip: '统计的窗口长度(s),0代表不限制',
|
||||||
prop: 'statisticWindowLen',
|
prop: 'statisticWindowLen',
|
||||||
type: 'number',
|
type: 'number',
|
||||||
value: 0,
|
value: 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '沉默窗口(s)',
|
label: '沉默窗口(s)',
|
||||||
labelTip: '沉默时间窗口(s),0代表不限制',
|
labelTip: '沉默时间窗口(s),0代表不限制',
|
||||||
prop: 'silenceWindowLen',
|
prop: 'silenceWindowLen',
|
||||||
type: 'number',
|
type: 'number',
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ export const searchFields = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
export const tableColumns = [
|
export const tableColumns = [
|
||||||
{ label: '单据号', prop: 'documentNo', minWidth: 180, link: true },
|
{ label: '单据号', prop: 'documentNo', minWidth: 180, link: true, fixed: 'left' },
|
||||||
{ label: '项目名称', prop: 'projectName', minWidth: 120 },
|
{ label: '项目名称', prop: 'projectName', minWidth: 120 },
|
||||||
{ label: '所属组织', prop: 'deptName', minWidth: 120 },
|
{ label: '所属组织', prop: 'deptName', minWidth: 120 },
|
||||||
{ label: '费用日期', prop: 'feeDate', minWidth: 120 },
|
{ label: '费用日期', prop: 'feeDate', minWidth: 120 },
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ export const option = {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '核定载质量(KG)',
|
label: '核定载质量(KG)',
|
||||||
prop: 'approvedLoadKg',
|
prop: 'approvedLoadKg',
|
||||||
minWidth: 140,
|
minWidth: 140,
|
||||||
align: 'right',
|
align: 'right',
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ export const option = {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '评定(复核)单位',
|
label: '评定(复核)单位',
|
||||||
prop: 'assessmentUnit',
|
prop: 'assessmentUnit',
|
||||||
minWidth: 160,
|
minWidth: 160,
|
||||||
overHidden: true,
|
overHidden: true,
|
||||||
|
|||||||
@@ -651,6 +651,32 @@
|
|||||||
background-color: #fafafa !important;
|
background-color: #fafafa !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 全站统一:表格列内容(表头 + 单元格)居中展示
|
||||||
|
.el-table th.el-table__cell .cell,
|
||||||
|
.el-table td.el-table__cell .cell {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 全站统一:el-table 表格列内嵌控件默认拉满 cell(不撞表头)
|
||||||
|
// 适用场景:可编辑表、弹窗内表格(如 pre-settlement-editor 结算明细调整、transport-reconciliation/formal-settlement/settlement-adjustment editor 等)。
|
||||||
|
// 排除 .el-form-item__content 上下文,与表单内 250px 规则互不冲突。
|
||||||
|
.el-table .el-table__body td.el-table__cell .cell > .el-input-number,
|
||||||
|
.el-table .el-table__body td.el-table__cell .cell > .el-input,
|
||||||
|
.el-table .el-table__body td.el-table__cell .cell > .el-select,
|
||||||
|
.el-table .el-table__body td.el-table__cell .cell > .el-date-editor,
|
||||||
|
.el-table .el-table__body td.el-table__cell .cell > .el-cascader,
|
||||||
|
.el-table .el-table__body td.el-table__cell .cell > .el-input-number .el-input__wrapper,
|
||||||
|
.el-table .el-table__body td.el-table__cell .cell > .el-select .el-select__wrapper,
|
||||||
|
.el-table .el-table__body td.el-table__cell .cell > .el-date-editor.el-input,
|
||||||
|
.el-table .el-table__body td.el-table__cell .cell > .el-date-editor.el-input .el-input__wrapper {
|
||||||
|
width: 100%;
|
||||||
|
--el-input-number-width: 100%;
|
||||||
|
--el-input-width: 100%;
|
||||||
|
--el-select-width: 100%;
|
||||||
|
--el-date-editor-width: 100%;
|
||||||
|
--el-cascader-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
// 统一 avue-crud 偶数行背景色
|
// 统一 avue-crud 偶数行背景色
|
||||||
.avue-crud .el-table__body-wrapper tr.el-table__row:nth-child(even) td.el-table__cell,
|
.avue-crud .el-table__body-wrapper tr.el-table__row:nth-child(even) td.el-table__cell,
|
||||||
.avue-crud .el-table__body-wrapper tr.el-table__row:nth-child(even) td.el-table-fixed-column--left,
|
.avue-crud .el-table__body-wrapper tr.el-table__row:nth-child(even) td.el-table-fixed-column--left,
|
||||||
@@ -866,9 +892,9 @@
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: start;
|
justify-content: center;
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
text-align: left;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 全站统一:手写表格操作列中的文字链接保持间距并支持自动换行
|
// 全站统一:手写表格操作列中的文字链接保持间距并支持自动换行
|
||||||
@@ -979,6 +1005,11 @@
|
|||||||
border-top: 0 !important;
|
border-top: 0 !important;
|
||||||
margin-top: -30px !important;
|
margin-top: -30px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查看弹窗(avue--detail)footer 不上移,避免遮住详情表格底部边框
|
||||||
|
.avue-crud__dialog .avue-form.avue--detail ~ .avue-dialog__footer {
|
||||||
|
margin-top: 0 !important;
|
||||||
|
}
|
||||||
.el-form-item__label {
|
.el-form-item__label {
|
||||||
margin-left: 12px !important;
|
margin-left: 12px !important;
|
||||||
}
|
}
|
||||||
@@ -995,3 +1026,28 @@
|
|||||||
//.el-form-item {
|
//.el-form-item {
|
||||||
// margin-bottom: 15px !important;
|
// margin-bottom: 15px !important;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
// ============ 业务状态标签:全站统一为「文字 + 颜色」样式 ============
|
||||||
|
// 去掉 el-tag 默认背景与边框,仅保留彩色文字,并前置一个状态圆点(颜色同文字)。
|
||||||
|
// 适用于所有业务状态展示:调度状态 / 运单状态 / 审批状态等。
|
||||||
|
.el-tag.status-text {
|
||||||
|
background-color: transparent !important;
|
||||||
|
border-color: transparent !important;
|
||||||
|
padding: 0;
|
||||||
|
margin-left: 8px;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: inherit;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: '';
|
||||||
|
display: inline-block;
|
||||||
|
width: 6px;
|
||||||
|
height: 6px;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: currentColor;
|
||||||
|
margin-right: 6px;
|
||||||
|
vertical-align: middle;
|
||||||
|
position: relative;
|
||||||
|
top: -1px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -512,7 +512,7 @@ export default {
|
|||||||
{ label: '请求接口', prop: 'requestUri', search: true, slot: true },
|
{ label: '请求接口', prop: 'requestUri', search: true, slot: true },
|
||||||
{ label: '请求方法', prop: 'method', slot: true, width: 85 },
|
{ label: '请求方法', prop: 'method', slot: true, width: 85 },
|
||||||
{ label: '调用IP', prop: 'remoteIp', search: true, width: 140 },
|
{ label: '调用IP', prop: 'remoteIp', search: true, width: 140 },
|
||||||
{ label: '耗时(ms)', prop: 'time', width: 85 },
|
{ label: '耗时(ms)', prop: 'time', width: 85 },
|
||||||
{ label: '日志时间', prop: 'createTime',
|
{ label: '日志时间', prop: 'createTime',
|
||||||
sortable: true, span: 24, width: 180 },
|
sortable: true, span: 24, width: 180 },
|
||||||
{ label: '用户代理', prop: 'userAgent', span: 24, hide: true },
|
{ label: '用户代理', prop: 'userAgent', span: 24, hide: true },
|
||||||
|
|||||||
@@ -205,6 +205,7 @@ export default {
|
|||||||
dialogCustomClass: 'railway-station-edit-dialog',
|
dialogCustomClass: 'railway-station-edit-dialog',
|
||||||
labelPosition: 'right',
|
labelPosition: 'right',
|
||||||
labelWidth: '140px',
|
labelWidth: '140px',
|
||||||
|
labelSuffix: '',
|
||||||
tip: false,
|
tip: false,
|
||||||
searchShow: true,
|
searchShow: true,
|
||||||
searchMenuSpan: 24,
|
searchMenuSpan: 24,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-loading="loading" class="master-detail">
|
<div v-loading="loading" class="master-detail">
|
||||||
<section v-if="master" class="detail-overview">
|
<section v-if="master" class="detail-overview">
|
||||||
<div class="detail-heading"><div><h2>多联总单详情 <span>|</span> {{ master.masterNo }}</h2><el-tag :type="statusType(master.businessStatus)">{{ statusName(master.businessStatus) }}</el-tag><el-tag v-if="transportFlowLabel" type="info" class="transport-flow-tag">{{ transportFlowLabel }}</el-tag></div><el-button @click="$emit('back')">返回</el-button></div>
|
<div class="detail-heading"><div><h2>多联总单详情 <span>|</span> {{ master.masterNo }}</h2><el-tag :type="statusType(master.businessStatus)" class="status-text">{{ statusName(master.businessStatus) }}</el-tag><el-tag v-if="transportFlowLabel" type="info" class="transport-flow-tag">{{ transportFlowLabel }}</el-tag></div><el-button @click="$emit('back')">返回</el-button></div>
|
||||||
<dl class="detail-meta"><div><dt>客户</dt><dd>{{ master.customerName || '-' }}</dd></div><div><dt>合同编号</dt><dd>{{ master.contractNo || '-' }}</dd></div><div><dt>项目</dt><dd>{{ master.projectName || '-' }}</dd></div><div class="detail-meta__attachments"><dt>附件</dt><dd><template v-if="attachments.length"><el-link v-for="file in attachments" :key="file.url || file.link || file.name || file.originalName" type="primary" @click="previewAttachment(file)">{{ attachmentName(file) }}</el-link></template><span v-else>-</span></dd></div></dl>
|
<dl class="detail-meta"><div><dt>客户</dt><dd>{{ master.customerName || '-' }}</dd></div><div><dt>合同编号</dt><dd>{{ master.contractNo || '-' }}</dd></div><div><dt>项目</dt><dd>{{ master.projectName || '-' }}</dd></div><div class="detail-meta__attachments"><dt>附件</dt><dd><template v-if="attachments.length"><el-link v-for="file in attachments" :key="file.url || file.link || file.name || file.originalName" type="primary" @click="previewAttachment(file)">{{ attachmentName(file) }}</el-link></template><span v-else>-</span></dd></div></dl>
|
||||||
<div class="route-map"><template v-for="(route, index) in segments" :key="route.segmentNo"><div class="route-map__node"><span :class="['route-badge', index ? 'middle' : 'start']">{{ index ? '经' : '起' }}</span><strong>{{ route.departureName || '-' }}</strong><small>{{ route.departureAddress || '-' }}</small><small class="route-map__progress">{{ index ? `已到达 ${quantity(segments[index - 1].arrivedQuantity)}/${quantity(master.totalQuantity)}` : `已调度 ${quantity(route.dispatchedQuantity)}/${quantity(master.totalQuantity)}` }}</small><small v-if="index" class="route-map__progress">已调度 {{ quantity(route.dispatchedQuantity) }}/{{ quantity(master.totalQuantity) }}</small></div><div class="route-map__line"></div><div v-if="index === segments.length - 1" class="route-map__node"><span class="route-badge end">终</span><strong>{{ route.arrivalName || '-' }}</strong><small>{{ route.arrivalAddress || '-' }}</small><small class="route-map__progress">已到达 {{ quantity(route.arrivedQuantity) }}/{{ quantity(master.totalQuantity) }}</small></div></template></div>
|
<div class="route-map"><template v-for="(route, index) in segments" :key="route.segmentNo"><div class="route-map__node"><span :class="['route-badge', index ? 'middle' : 'start']">{{ index ? '经' : '起' }}</span><strong>{{ route.departureName || '-' }}</strong><small>{{ route.departureAddress || '-' }}</small><small class="route-map__progress">{{ index ? `已到达 ${quantity(segments[index - 1].arrivedQuantity)}/${quantity(master.totalQuantity)}` : `已调度 ${quantity(route.dispatchedQuantity)}/${quantity(master.totalQuantity)}` }}</small><small v-if="index" class="route-map__progress">已调度 {{ quantity(route.dispatchedQuantity) }}/{{ quantity(master.totalQuantity) }}</small></div><div class="route-map__line"></div><div v-if="index === segments.length - 1" class="route-map__node"><span class="route-badge end">终</span><strong>{{ route.arrivalName || '-' }}</strong><small>{{ route.arrivalAddress || '-' }}</small><small class="route-map__progress">已到达 {{ quantity(route.arrivedQuantity) }}/{{ quantity(master.totalQuantity) }}</small></div></template></div>
|
||||||
</section>
|
</section>
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
<header @click="toggleSegment(route.segmentNo)"><h3><span class="segment-index">{{ segmentNumber(route, index) }}</span><span>{{ route.departureName || '-' }} → {{ route.arrivalName || '-' }}</span><span class="segment-detail__transport-type">{{ segmentTransportType(route) || '-' }}</span><span class="segment-detail__progress-bar"><span :style="{ width: `${segmentProgress(route)}%` }"></span></span><span class="segment-detail__progress">已调度 <em>{{ quantity(route.dispatchedQuantity) }}</em> / {{ quantity(plannedQuantity(route)) }} {{ plannedUnit(route) }}</span></h3><div class="segment-detail__header-right"><el-tooltip :content="isSegmentExpanded(route.segmentNo) ? '折叠' : '展开'" placement="top"><el-button circle :icon="isSegmentExpanded(route.segmentNo) ? ArrowUp : ArrowDown" @click.stop="toggleSegment(route.segmentNo)" /></el-tooltip></div></header>
|
<header @click="toggleSegment(route.segmentNo)"><h3><span class="segment-index">{{ segmentNumber(route, index) }}</span><span>{{ route.departureName || '-' }} → {{ route.arrivalName || '-' }}</span><span class="segment-detail__transport-type">{{ segmentTransportType(route) || '-' }}</span><span class="segment-detail__progress-bar"><span :style="{ width: `${segmentProgress(route)}%` }"></span></span><span class="segment-detail__progress">已调度 <em>{{ quantity(route.dispatchedQuantity) }}</em> / {{ quantity(plannedQuantity(route)) }} {{ plannedUnit(route) }}</span></h3><div class="segment-detail__header-right"><el-tooltip :content="isSegmentExpanded(route.segmentNo) ? '折叠' : '展开'" placement="top"><el-button circle :icon="isSegmentExpanded(route.segmentNo) ? ArrowUp : ArrowDown" @click.stop="toggleSegment(route.segmentNo)" /></el-tooltip></div></header>
|
||||||
<div v-show="isSegmentExpanded(route.segmentNo)" class="segment-execution">
|
<div v-show="isSegmentExpanded(route.segmentNo)" class="segment-execution">
|
||||||
<div class="segment-stats"><div><span>总量</span><strong>{{ quantity(master.totalQuantity) }}<small>吨</small></strong></div><div><span>已调度</span><strong class="dispatched">{{ quantity(route.dispatchedQuantity) }}<small>吨</small></strong></div><div><span>剩余</span><strong class="remaining">{{ quantity(remainingQuantity(route)) }}<small>吨</small></strong></div></div>
|
<div class="segment-stats"><div><span>总量</span><strong>{{ quantity(master.totalQuantity) }}<small>吨</small></strong></div><div><span>已调度</span><strong class="dispatched">{{ quantity(route.dispatchedQuantity) }}<small>吨</small></strong></div><div><span>剩余</span><strong class="remaining">{{ quantity(remainingQuantity(route)) }}<small>吨</small></strong></div></div>
|
||||||
<el-table :data="route.waybills || []" border class="waybill-table"><el-table-column label="运单号" min-width="180"><template #default="{ row }"><el-link type="primary" @click="openWaybill(row)">{{ row.waybillNo }}</el-link></template></el-table-column><el-table-column prop="carrierName" label="承运商" min-width="190" /><el-table-column label="司机/车牌" min-width="180"><template #default="{ row }">{{ driverVehicle(row) }}</template></el-table-column><el-table-column prop="cargoType" label="货物类型" min-width="120" /><el-table-column label="数量(吨)" width="130"><template #default="{ row }">{{ quantity(row.quantity) }}</template></el-table-column><el-table-column label="状态" width="130"><template #default="{ row }"><el-tag :type="waybillStatusType(row.businessStatus)" size="small">{{ waybillStatusName(row.businessStatus) }}</el-tag></template></el-table-column><el-table-column prop="createTime" label="创建时间" min-width="180" /></el-table>
|
<el-table :data="route.waybills || []" border class="waybill-table"><el-table-column label="运单号" min-width="180"><template #default="{ row }"><el-link type="primary" @click="openWaybill(row)">{{ row.waybillNo }}</el-link></template></el-table-column><el-table-column prop="carrierName" label="承运商" min-width="190" /><el-table-column label="司机/车牌" min-width="180"><template #default="{ row }">{{ driverVehicle(row) }}</template></el-table-column><el-table-column prop="cargoType" label="货物类型" min-width="120" /><el-table-column label="数量(吨)" width="130"><template #default="{ row }">{{ quantity(row.quantity) }}</template></el-table-column><el-table-column label="状态" width="130"><template #default="{ row }"><el-tag :type="waybillStatusType(row.businessStatus)" size="small" class="status-text">{{ waybillStatusName(row.businessStatus) }}</el-tag></template></el-table-column><el-table-column prop="createTime" label="创建时间" min-width="180" /></el-table>
|
||||||
<el-empty v-if="!(route.waybills || []).length" description="暂无运单明细" :image-size="56" />
|
<el-empty v-if="!(route.waybills || []).length" description="暂无运单明细" :image-size="56" />
|
||||||
<div v-if="(route.transportPlans || []).length" class="transport-plan-detail"><h4>关联计划单</h4><el-table :data="route.transportPlans" border><el-table-column label="计划单号" min-width="160"><template #default="{ row }"><el-link type="primary" @click="openPlan(row)">{{ row.planNo }}</el-link></template></el-table-column><el-table-column prop="planName" label="计划名称" min-width="180" /><el-table-column prop="transportType" label="运输方式" width="130" /><el-table-column prop="planStartDate" label="计划开始日期" width="130" /><el-table-column prop="planEndDate" label="计划结束日期" width="130" /><el-table-column prop="businessStatus" label="状态" width="110" /></el-table></div>
|
<div v-if="(route.transportPlans || []).length" class="transport-plan-detail"><h4>关联计划单</h4><el-table :data="route.transportPlans" border><el-table-column label="计划单号" min-width="160"><template #default="{ row }"><el-link type="primary" @click="openPlan(row)">{{ row.planNo }}</el-link></template></el-table-column><el-table-column prop="planName" label="计划名称" min-width="180" /><el-table-column prop="transportType" label="运输方式" width="130" /><el-table-column prop="planStartDate" label="计划开始日期" width="130" /><el-table-column prop="planEndDate" label="计划结束日期" width="130" /><el-table-column prop="businessStatus" label="状态" width="110" /></el-table></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -30,15 +30,15 @@
|
|||||||
<el-table-column prop="cargoName" label="货物名称" min-width="150" />
|
<el-table-column prop="cargoName" label="货物名称" min-width="150" />
|
||||||
<el-table-column prop="cargoType" label="货物类型" min-width="130" />
|
<el-table-column prop="cargoType" label="货物类型" min-width="130" />
|
||||||
<el-table-column prop="packageType" label="包装" min-width="120" />
|
<el-table-column prop="packageType" label="包装" min-width="120" />
|
||||||
<el-table-column label="重量(吨)" min-width="110"><template #default="{ row }">{{ row.weight ?? row.weightTon ?? (row.quantityUnit === '吨' ? row.quantity : '-') }}</template></el-table-column>
|
<el-table-column label="重量(吨)" min-width="110"><template #default="{ row }">{{ row.weight ?? row.weightTon ?? (row.quantityUnit === '吨' ? row.quantity : '-') }}</template></el-table-column>
|
||||||
<el-table-column label="体积(方)" min-width="110"><template #default="{ row }">{{ row.volume ?? row.volumeCubic ?? '-' }}</template></el-table-column>
|
<el-table-column label="体积(方)" min-width="110"><template #default="{ row }">{{ row.volume ?? row.volumeCubic ?? '-' }}</template></el-table-column>
|
||||||
<el-table-column label="数量" min-width="100"><template #default="{ row }">{{ row.quantity ?? '-' }}{{ row.quantityUnit ? ` ${row.quantityUnit}` : '' }}</template></el-table-column>
|
<el-table-column label="数量" min-width="100"><template #default="{ row }">{{ row.quantity ?? '-' }}{{ row.quantityUnit ? ` ${row.quantityUnit}` : '' }}</template></el-table-column>
|
||||||
<el-table-column prop="materialCode" label="物料编码" min-width="130" />
|
<el-table-column prop="materialCode" label="物料编码" min-width="130" />
|
||||||
<el-table-column prop="deviceCode" label="设备编码" min-width="130" />
|
<el-table-column prop="deviceCode" label="设备编码" min-width="130" />
|
||||||
<el-table-column prop="brand" label="品牌" min-width="120" />
|
<el-table-column prop="brand" label="品牌" min-width="120" />
|
||||||
<el-table-column label="规格型号" min-width="150"><template #default="{ row }">{{ [row.specification, row.model].filter(Boolean).join('/') || '-' }}</template></el-table-column>
|
<el-table-column label="规格型号" min-width="150"><template #default="{ row }">{{ [row.specification, row.model].filter(Boolean).join('/') || '-' }}</template></el-table-column>
|
||||||
<el-table-column prop="remark" label="备注" min-width="160" />
|
<el-table-column prop="remark" label="备注" min-width="160" />
|
||||||
<el-table-column label="货物单价(元)" min-width="130"><template #default="{ row }">{{ row.unitPrice ?? '-' }}</template></el-table-column>
|
<el-table-column label="货物单价(元)" min-width="130"><template #default="{ row }">{{ row.unitPrice ?? '-' }}</template></el-table-column>
|
||||||
<el-table-column label="计划日期" min-width="130"><template #default="{ row }">{{ row.planDate || row.planStartDate || '-' }}</template></el-table-column>
|
<el-table-column label="计划日期" min-width="130"><template #default="{ row }">{{ row.planDate || row.planStartDate || '-' }}</template></el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<el-empty v-if="!(master.goods || []).length" description="暂无货物信息" :image-size="56" />
|
<el-empty v-if="!(master.goods || []).length" description="暂无货物信息" :image-size="56" />
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<div class="overview-heading">
|
<div class="overview-heading">
|
||||||
<div>
|
<div>
|
||||||
<h2>多联总单调度 <span>|</span> {{ master.masterNo }}</h2>
|
<h2>多联总单调度 <span>|</span> {{ master.masterNo }}</h2>
|
||||||
<el-tag :type="statusType(master.businessStatus)">{{ statusName(master.businessStatus) }}</el-tag>
|
<el-tag :type="statusType(master.businessStatus)" class="status-text">{{ statusName(master.businessStatus) }}</el-tag>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="overview-content">
|
<div class="overview-content">
|
||||||
@@ -159,7 +159,7 @@
|
|||||||
<el-col :span="6"><el-form-item label="箱号" required><el-input v-model="route.containerNo" placeholder="请输入" /></el-form-item></el-col>
|
<el-col :span="6"><el-form-item label="箱号" required><el-input v-model="route.containerNo" placeholder="请输入" /></el-form-item></el-col>
|
||||||
<el-col :span="6"><el-form-item label="舱位" required><el-input v-model="route.cabinNo" placeholder="请输入" /></el-form-item></el-col>
|
<el-col :span="6"><el-form-item label="舱位" required><el-input v-model="route.cabinNo" placeholder="请输入" /></el-form-item></el-col>
|
||||||
</template>
|
</template>
|
||||||
<el-col :span="6"><el-form-item label="里程(km)"><el-input :model-value="route.mileage" inputmode="numeric" maxlength="10" placeholder="请输入" @input="value => handleMileageInput(route, value)" /></el-form-item></el-col>
|
<el-col :span="6"><el-form-item label="里程(km)"><el-input :model-value="route.mileage" inputmode="numeric" maxlength="10" placeholder="请输入" @input="value => handleMileageInput(route, value)" /></el-form-item></el-col>
|
||||||
<el-col :span="6"><el-form-item label="备注"><el-input v-model="route.remark" maxlength="200" show-word-limit placeholder="请输入" /></el-form-item></el-col>
|
<el-col :span="6"><el-form-item label="备注"><el-input v-model="route.remark" maxlength="200" show-word-limit placeholder="请输入" /></el-form-item></el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
format="YYYY-MM-DD"
|
format="YYYY-MM-DD"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
|
style="width: 200px"
|
||||||
/></el-form-item>
|
/></el-form-item>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -116,6 +117,7 @@
|
|||||||
format="YYYY-MM-DD"
|
format="YYYY-MM-DD"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
|
style="width: 200px"
|
||||||
/></el-form-item>
|
/></el-form-item>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -428,7 +430,27 @@
|
|||||||
<div class="address-pagination"><el-pagination v-model:current-page="commonCargoPage.current" v-model:page-size="commonCargoPage.size" :page-sizes="[10, 20, 50]" layout="total, prev, pager, next, sizes" :total="commonCargoPage.total" @size-change="loadCommonCargoList" @current-change="loadCommonCargoList" /></div>
|
<div class="address-pagination"><el-pagination v-model:current-page="commonCargoPage.current" v-model:page-size="commonCargoPage.size" :page-sizes="[10, 20, 50]" layout="total, prev, pager, next, sizes" :total="commonCargoPage.total" @size-change="loadCommonCargoList" @current-change="loadCommonCargoList" /></div>
|
||||||
<template #footer><el-button @click="commonCargoVisible = false">关闭</el-button><el-button type="primary" :disabled="!commonCargoSelected.length" @click="confirmCommonCargoSelection">确定</el-button></template>
|
<template #footer><el-button @click="commonCargoVisible = false">关闭</el-button><el-button type="primary" :disabled="!commonCargoSelected.length" @click="confirmCommonCargoSelection">确定</el-button></template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog v-model="cargoImportVisible" title="导入货物" append-to-body width="560px"><div class="cargo-import"><el-upload action="#" accept=".xls,.xlsx" :auto-upload="false" :show-file-list="false" :disabled="cargoImportLoading" :on-change="handleCargoImport"><el-button type="primary" :loading="cargoImportLoading">上传</el-button><template #tip><div class="el-upload__tip">支持 .xlsx、.xls 文件,单个文件不超过 50M</div></template></el-upload><el-button type="primary" plain @click="downloadCargoTemplate">点击下载模板</el-button></div><template #footer><el-button @click="cargoImportVisible = false">关闭</el-button></template></el-dialog>
|
<el-dialog v-model="cargoImportVisible" title="导入货物" append-to-body width="560px">
|
||||||
|
<section-card>
|
||||||
|
<div class="cargo-import">
|
||||||
|
<el-upload
|
||||||
|
action="#"
|
||||||
|
accept=".xls,.xlsx"
|
||||||
|
:auto-upload="false"
|
||||||
|
:show-file-list="false"
|
||||||
|
:disabled="cargoImportLoading"
|
||||||
|
:on-change="handleCargoImport"
|
||||||
|
>
|
||||||
|
<el-button type="primary" :loading="cargoImportLoading">上传</el-button>
|
||||||
|
<template #tip>
|
||||||
|
<div class="el-upload__tip">支持 .xlsx、.xls 文件,单个文件不超过 50M</div>
|
||||||
|
</template>
|
||||||
|
</el-upload>
|
||||||
|
<el-button type="primary" plain @click="downloadCargoTemplate">点击下载模板</el-button>
|
||||||
|
</div>
|
||||||
|
</section-card>
|
||||||
|
<template #footer><el-button @click="cargoImportVisible = false">关闭</el-button></template>
|
||||||
|
</el-dialog>
|
||||||
<el-dialog v-model="routeDialogVisible" title="选择线路" width="1280px" @opened="loadRouteList">
|
<el-dialog v-model="routeDialogVisible" title="选择线路" width="1280px" @opened="loadRouteList">
|
||||||
<div class="route-dialog__search">
|
<div class="route-dialog__search">
|
||||||
<el-form :model="routeQuery" label-position="right" label-width="86px">
|
<el-form :model="routeQuery" label-position="right" label-width="86px">
|
||||||
@@ -1975,6 +1997,15 @@ export default {
|
|||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
color: #606266;
|
color: #606266;
|
||||||
}
|
}
|
||||||
|
.cargo-import {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 16px;
|
||||||
|
.el-upload__tip {
|
||||||
|
margin-top: 8px;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
@media screen and (max-width: 1440px) {
|
@media screen and (max-width: 1440px) {
|
||||||
.route-node-form {
|
.route-node-form {
|
||||||
grid-template-columns: repeat(2, minmax(320px, 1fr));
|
grid-template-columns: repeat(2, minmax(320px, 1fr));
|
||||||
|
|||||||
@@ -17,8 +17,8 @@
|
|||||||
<el-col :span="6"><el-form-item label="合同格式"><el-select v-model="form.contractFormat"><el-option label="电子合同" value="电子合同" /><el-option label="纸质合同" value="纸质合同" /></el-select></el-form-item></el-col>
|
<el-col :span="6"><el-form-item label="合同格式"><el-select v-model="form.contractFormat"><el-option label="电子合同" value="电子合同" /><el-option label="纸质合同" value="纸质合同" /></el-select></el-form-item></el-col>
|
||||||
<el-col :span="6"><el-form-item label="结算方式"><el-input v-model="form.settlementMode" /></el-form-item></el-col>
|
<el-col :span="6"><el-form-item label="结算方式"><el-input v-model="form.settlementMode" /></el-form-item></el-col>
|
||||||
<el-col :span="6"><el-form-item label="是否需要加盖法人章"><el-select v-model="form.legalSealFlag"><el-option label="是" :value="1" /><el-option label="否" :value="0" /></el-select></el-form-item></el-col>
|
<el-col :span="6"><el-form-item label="是否需要加盖法人章"><el-select v-model="form.legalSealFlag"><el-option label="是" :value="1" /><el-option label="否" :value="0" /></el-select></el-form-item></el-col>
|
||||||
<el-col :span="6"><el-form-item label="一式"><div class="inline-field"><el-input-number v-model="form.copyCount" :min="1" controls-position="right" /><span>份</span></div></el-form-item></el-col>
|
<el-col :span="6"><el-form-item label="一式(份)"><div class="inline-field"><el-input-number v-model="form.copyCount" :min="1" controls-position="right" /></div></el-form-item></el-col>
|
||||||
<el-col :span="6"><el-form-item label="回款账期"><el-input-number v-model="form.paymentDays" :min="0" controls-position="right" /><span class="unit">天</span></el-form-item></el-col>
|
<el-col :span="6"><el-form-item label="回款账期(天)"><el-input-number v-model="form.paymentDays" :min="0" controls-position="right" /></el-form-item></el-col>
|
||||||
<el-col :span="24"><el-form-item label="备注"><el-input v-model="form.remark" type="textarea" maxlength="2000" show-word-limit /></el-form-item></el-col>
|
<el-col :span="24"><el-form-item label="备注"><el-input v-model="form.remark" type="textarea" maxlength="2000" show-word-limit /></el-form-item></el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</section>
|
</section>
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
<el-table :data="paymentRatioRows" border class="change-table">
|
<el-table :data="paymentRatioRows" border class="change-table">
|
||||||
<el-table-column type="index" label="序号" width="70" />
|
<el-table-column type="index" label="序号" width="70" />
|
||||||
<el-table-column prop="paymentTerm" label="付款笔数" min-width="180" />
|
<el-table-column prop="paymentTerm" label="付款笔数" min-width="180" />
|
||||||
<el-table-column label="付款比例上限" min-width="220"><template #default="{ row }"><el-input-number v-model="row.ratioLimit" :min="0" :max="100" :precision="2" controls-position="right" /><span>%</span></template></el-table-column>
|
<el-table-column label="付款比例上限(%)" min-width="220"><template #default="{ row }"><el-input-number v-model="row.ratioLimit" :min="0" :max="100" :precision="2" controls-position="right" /></template></el-table-column>
|
||||||
<el-table-column label="备注" min-width="220"><template #default="{ row }"><el-input v-model="row.remark" maxlength="200" /></template></el-table-column>
|
<el-table-column label="备注" min-width="220"><template #default="{ row }"><el-input v-model="row.remark" maxlength="200" /></template></el-table-column>
|
||||||
<el-table-column label="操作" width="100"><template #default="{ $index }"><el-link type="danger" @click="paymentRatioRows.splice($index, 1)">删除</el-link></template></el-table-column>
|
<el-table-column label="操作" width="100"><template #default="{ $index }"><el-link type="danger" @click="paymentRatioRows.splice($index, 1)">删除</el-link></template></el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|||||||
@@ -395,7 +395,7 @@
|
|||||||
<div class="loading-detail__summary">
|
<div class="loading-detail__summary">
|
||||||
<div class="loading-detail__heading">配载单详情</div>
|
<div class="loading-detail__heading">配载单详情</div>
|
||||||
<div>{{ dialogForm.loadingNo || '-' }}</div>
|
<div>{{ dialogForm.loadingNo || '-' }}</div>
|
||||||
<div><el-tag :type="detailStatusType">{{ statusText(dialogForm) }}</el-tag></div>
|
<div><el-tag :type="detailStatusType" class="status-text">{{ statusText(dialogForm) }}</el-tag></div>
|
||||||
<div><el-tag type="warning">{{ transportTypeLabel(dialogForm.transportType) }}</el-tag></div>
|
<div><el-tag type="warning">{{ transportTypeLabel(dialogForm.transportType) }}</el-tag></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="loading-detail__task-row">
|
<div class="loading-detail__task-row">
|
||||||
@@ -871,7 +871,7 @@
|
|||||||
<el-form-item v-if="dialogForm.carrierType !== '承运商'" label="押运人手机号">
|
<el-form-item v-if="dialogForm.carrierType !== '承运商'" label="押运人手机号">
|
||||||
<el-input v-model="dialogForm.escortPhone" clearable placeholder="请输入" />
|
<el-input v-model="dialogForm.escortPhone" clearable placeholder="请输入" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="里程(km)">
|
<el-form-item label="里程(km)">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="dialogForm.mileage"
|
v-model="dialogForm.mileage"
|
||||||
clearable
|
clearable
|
||||||
@@ -2474,6 +2474,7 @@ export default {
|
|||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.loading-manage-page {
|
.loading-manage-page {
|
||||||
|
margin-bottom: 60px;
|
||||||
.loading-manage-page__search {
|
.loading-manage-page__search {
|
||||||
padding: 12px 12px 4px;
|
padding: 12px 12px 4px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
<section class="card-info">
|
<section class="card-info">
|
||||||
<div class="card-title-row">
|
<div class="card-title-row">
|
||||||
<el-link type="primary" @click="goDetail(row.id)">{{ row.masterNo }}</el-link
|
<el-link type="primary" @click="goDetail(row.id)">{{ row.masterNo }}</el-link
|
||||||
><el-tag :type="statusType(row.businessStatus)" class="status-tag">{{
|
><el-tag :type="statusType(row.businessStatus)" class="status-tag status-text">{{
|
||||||
statusName(row.businessStatus)
|
statusName(row.businessStatus)
|
||||||
}}</el-tag>
|
}}</el-tag>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #status="{ row }">
|
<template #status="{ row }">
|
||||||
<el-tag :type="statusTagType(row.status)">
|
<el-tag :type="statusTagType(row.status)" class="status-text">
|
||||||
{{ row.statusName || displayStatus(row.status) }}
|
{{ row.statusName || displayStatus(row.status) }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
@@ -1198,7 +1198,9 @@ export default {
|
|||||||
|
|
||||||
&__timeline-line {
|
&__timeline-line {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 22px;
|
// 圆点中心位置 = padding-top(12) + dot 半径(7) = 19px;
|
||||||
|
// 线 height 3px,因此 top 需为 19 - 1.5 = 17.5px,使线视觉中心与圆点中心对齐
|
||||||
|
top: 17.5px;
|
||||||
right: 58px;
|
right: 58px;
|
||||||
left: 58px;
|
left: 58px;
|
||||||
height: 3px;
|
height: 3px;
|
||||||
|
|||||||
@@ -55,9 +55,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #approvalStatus="{ row }">
|
<template #approvalStatus="{ row }">
|
||||||
<el-tag :type="statusTagType(row.approvalStatus)">
|
{{ displayStatus(row, 'approvalStatus') }}
|
||||||
{{ displayStatus(row, 'approvalStatus') }}
|
|
||||||
</el-tag>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #menu="{ row, index }">
|
<template #menu="{ row, index }">
|
||||||
@@ -98,7 +96,7 @@
|
|||||||
@update:model-value="projectBox = $event"
|
@update:model-value="projectBox = $event"
|
||||||
@closed="resetProjectDialog"
|
@closed="resetProjectDialog"
|
||||||
>
|
>
|
||||||
<div v-if="isProjectFormPage" class="project-apply-page__title">
|
<div v-if="isProjectFormPage" class="archive-page-form__title">
|
||||||
{{ projectDialogTitle }}
|
{{ projectDialogTitle }}
|
||||||
</div>
|
</div>
|
||||||
<el-form
|
<el-form
|
||||||
@@ -178,6 +176,7 @@
|
|||||||
<el-form-item label="承办部门" prop="undertakeDeptId">
|
<el-form-item label="承办部门" prop="undertakeDeptId">
|
||||||
<el-cascader
|
<el-cascader
|
||||||
v-model="form.undertakeDeptId"
|
v-model="form.undertakeDeptId"
|
||||||
|
style="width: 100%"
|
||||||
placeholder="请选择承办部门"
|
placeholder="请选择承办部门"
|
||||||
clearable
|
clearable
|
||||||
filterable
|
filterable
|
||||||
@@ -1074,24 +1073,38 @@ export default {
|
|||||||
delBtn: false,
|
delBtn: false,
|
||||||
// 操作列收窄:本项目操作按钮较少,320px 过宽,调整为 220px(链接会自动换行兜底)
|
// 操作列收窄:本项目操作按钮较少,320px 过宽,调整为 220px(链接会自动换行兜底)
|
||||||
menuWidth: 180,
|
menuWidth: 180,
|
||||||
column: (option.column || []).map(column => ({ ...column, display: false })),
|
column: (option.column || []).map(column => ({
|
||||||
|
...column,
|
||||||
|
display: false,
|
||||||
|
align: 'center',
|
||||||
|
headerAlign: 'center',
|
||||||
|
})),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
hasPermission(code) {
|
hasPermission(code) {
|
||||||
return this.isAdmin || this.validData(this.permission && this.permission[code], false);
|
return this.isAdmin || this.validData(this.permission && this.permission[code], false);
|
||||||
},
|
},
|
||||||
openProjectFormPage() {
|
openProjectFormPage() {
|
||||||
const type = this.$route.query.mode === 'edit' ? 'edit' : 'add';
|
const type = this.$route.query.mode || 'add';
|
||||||
const id = this.$route.query.id;
|
const id = this.$route.query.id;
|
||||||
this.dialogType = type;
|
this.dialogType = type;
|
||||||
this.dialogReadonly = false;
|
this.dialogReadonly = type === 'view';
|
||||||
this.projectBox = true;
|
this.projectBox = true;
|
||||||
if (type === 'add') {
|
if (['add', 'majorSupplement'].includes(type)) {
|
||||||
this.applyProjectDetail({ ...emptyForm(), projectType: '普通项目' });
|
this.applyProjectDetail({
|
||||||
|
...emptyForm(),
|
||||||
|
projectType: type === 'majorSupplement' ? '重大项目' : '普通项目',
|
||||||
|
});
|
||||||
this.fillDefaultUsers();
|
this.fillDefaultUsers();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.api.getDetail(id).then(res => this.applyProjectDetail(res.data.data || {}));
|
this.api.getDetail(id).then(res => {
|
||||||
|
const detail = res.data.data || {};
|
||||||
|
this.applyProjectDetail({
|
||||||
|
...detail,
|
||||||
|
changeType: type === 'change' ? this.resolveChangeType(detail) : detail.changeType,
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
closeProjectForm() {
|
closeProjectForm() {
|
||||||
if (this.isProjectFormPage) {
|
if (this.isProjectFormPage) {
|
||||||
@@ -1140,25 +1153,6 @@ export default {
|
|||||||
const item = column && (column.dicData || []).find(dic => dic.value === row[prop]);
|
const item = column && (column.dicData || []).find(dic => dic.value === row[prop]);
|
||||||
return item ? item.label : row[prop] || '未知';
|
return item ? item.label : row[prop] || '未知';
|
||||||
},
|
},
|
||||||
statusTagType(status) {
|
|
||||||
if (
|
|
||||||
[
|
|
||||||
1,
|
|
||||||
'pending',
|
|
||||||
'waiting_dispatch',
|
|
||||||
'processing',
|
|
||||||
'dispatching',
|
|
||||||
'approved',
|
|
||||||
'change_approved',
|
|
||||||
].includes(status)
|
|
||||||
) {
|
|
||||||
return 'success';
|
|
||||||
}
|
|
||||||
if ([2, 'cancelled', 'withdrawn', 'draft'].includes(status)) return 'info';
|
|
||||||
if (['rejected', 'change_rejected'].includes(status)) return 'danger';
|
|
||||||
if (status === 'completed') return 'primary';
|
|
||||||
return 'warning';
|
|
||||||
},
|
|
||||||
onLoad(page, params = {}) {
|
onLoad(page, params = {}) {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
this.api
|
this.api
|
||||||
@@ -1310,34 +1304,16 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
openProjectDialog(type, row = {}) {
|
openProjectDialog(type, row = {}) {
|
||||||
if (['add', 'edit'].includes(type)) {
|
const query = { mode: type };
|
||||||
this.$router.push({
|
if (['edit', 'view', 'change'].includes(type)) {
|
||||||
path: '/business/project-apply/form',
|
query.id = row.id;
|
||||||
query:
|
|
||||||
type === 'edit'
|
|
||||||
? { mode: type, id: row.id, name: `编辑${this.config.title}` }
|
|
||||||
: { mode: type, name: `新增${this.config.title}` },
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
this.dialogType = type;
|
if (type === 'add') query.name = `新增${this.config.title}`;
|
||||||
this.dialogReadonly = type === 'view';
|
else if (type === 'edit') query.name = `编辑${this.config.title}`;
|
||||||
this.projectBox = true;
|
else if (type === 'view') query.name = `查看${this.config.title}`;
|
||||||
if (type === 'add' || type === 'majorSupplement') {
|
else if (type === 'majorSupplement') query.name = '重大项目补录';
|
||||||
this.applyProjectDetail({
|
else if (type === 'change') query.name = '项目变更';
|
||||||
...emptyForm(),
|
this.$router.push({ path: '/business/project-apply/form', query });
|
||||||
projectType: type === 'majorSupplement' ? '重大项目' : '普通项目',
|
|
||||||
});
|
|
||||||
this.fillDefaultUsers();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.api.getDetail(row.id).then(res => {
|
|
||||||
const detail = res.data.data || {};
|
|
||||||
this.applyProjectDetail({
|
|
||||||
...detail,
|
|
||||||
changeType: type === 'change' ? this.resolveChangeType(detail) : detail.changeType,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
resetProjectDialog() {
|
resetProjectDialog() {
|
||||||
this.$refs.projectForm?.clearValidate();
|
this.$refs.projectForm?.clearValidate();
|
||||||
@@ -2110,28 +2086,11 @@ export default {
|
|||||||
|
|
||||||
.project-apply-page-form {
|
.project-apply-page-form {
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
|
margin-bottom: 60px;
|
||||||
//padding: 20px 24px 92px;
|
//padding: 20px 24px 92px;
|
||||||
//background: #f5f6fa;
|
//background: #f5f6fa;
|
||||||
}
|
}
|
||||||
|
|
||||||
.project-apply-page__title {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
margin-bottom: 16px;
|
|
||||||
color: #303133;
|
|
||||||
font-size: 18px;
|
|
||||||
font-weight: 600;
|
|
||||||
|
|
||||||
&::before {
|
|
||||||
//width: 4px;
|
|
||||||
height: 18px;
|
|
||||||
margin-right: 8px;
|
|
||||||
//background: #409eff;
|
|
||||||
border-radius: 2px;
|
|
||||||
content: '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.project-apply-dialog__footer {
|
.project-apply-dialog__footer {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
|
|||||||
@@ -146,7 +146,7 @@
|
|||||||
<template #header>
|
<template #header>
|
||||||
<div class="voucher-manage-page__dialog-title">凭证详情</div>
|
<div class="voucher-manage-page__dialog-title">凭证详情</div>
|
||||||
</template>
|
</template>
|
||||||
<el-descriptions v-loading="detailLoading" :column="2" border>
|
<el-descriptions v-loading="detailLoading" :column="2" border class="voucher-manage-page__detail-desc">
|
||||||
<el-descriptions-item label="项目名称">
|
<el-descriptions-item label="项目名称">
|
||||||
{{ detailValue(detailRow.projectName) }}
|
{{ detailValue(detailRow.projectName) }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
@@ -1076,5 +1076,17 @@ load();
|
|||||||
:deep(.el-table__body tr:nth-child(even) > td) {
|
:deep(.el-table__body tr:nth-child(even) > td) {
|
||||||
background: #fafafa;
|
background: #fafafa;
|
||||||
}
|
}
|
||||||
|
&__detail-desc {
|
||||||
|
:deep(.el-descriptions__table) {
|
||||||
|
table-layout: fixed;
|
||||||
|
th, td {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
.el-descriptions__label,
|
||||||
|
.el-descriptions__content {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
<el-link v-if="column.link && row[column.prop]" type="primary" @click="emitAction('view', row)">{{
|
<el-link v-if="column.link && row[column.prop]" type="primary" @click="emitAction('view', row)">{{
|
||||||
row[column.prop]
|
row[column.prop]
|
||||||
}}</el-link>
|
}}</el-link>
|
||||||
<el-tag v-else-if="column.status" :type="statusType(row.approvalStatus)">{{
|
<el-tag v-else-if="column.status" :type="statusType(row.approvalStatus)" class="status-text">{{
|
||||||
displayValue(row[column.prop])
|
displayValue(row[column.prop])
|
||||||
}}</el-tag>
|
}}</el-tag>
|
||||||
<span v-else-if="column.money">{{ formatMoney(row[column.prop], row.currency) }}</span>
|
<span v-else-if="column.money">{{ formatMoney(row[column.prop], row.currency) }}</span>
|
||||||
|
|||||||
@@ -424,26 +424,27 @@
|
|||||||
destroy-on-close
|
destroy-on-close
|
||||||
class="pre-settlement-candidate-dialog"
|
class="pre-settlement-candidate-dialog"
|
||||||
>
|
>
|
||||||
<div class="dialog-section-title">选择结算明细</div>
|
<section-card title="选择结算明细">
|
||||||
<el-form :model="candidateQuery" inline label-position="right" label-width="auto">
|
<el-form :model="candidateQuery" inline label-position="right" label-width="auto">
|
||||||
<el-form-item label="批次号">
|
<el-form-item label="批次号">
|
||||||
<el-input v-model="candidateQuery.batchNo" clearable placeholder="请输入" />
|
<el-input v-model="candidateQuery.batchNo" clearable placeholder="请输入" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="费用日期">
|
<el-form-item label="费用日期">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="candidateQuery.feeDateRange"
|
v-model="candidateQuery.feeDateRange"
|
||||||
type="daterange"
|
type="daterange"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
format="YYYY-MM-DD"
|
format="YYYY-MM-DD"
|
||||||
start-placeholder="开始日期"
|
start-placeholder="开始日期"
|
||||||
end-placeholder="结束日期"
|
end-placeholder="结束日期"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="loadCandidates">查询</el-button>
|
<el-button type="primary" @click="loadCandidates">查询</el-button>
|
||||||
<el-button @click="resetCandidateQuery">重置</el-button>
|
<el-button @click="resetCandidateQuery">重置</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
</section-card>
|
||||||
<el-table
|
<el-table
|
||||||
ref="candidateTableRef"
|
ref="candidateTableRef"
|
||||||
v-loading="candidateDialog.loading"
|
v-loading="candidateDialog.loading"
|
||||||
|
|||||||
@@ -118,7 +118,7 @@
|
|||||||
>
|
>
|
||||||
{{ row[column.prop] }}
|
{{ row[column.prop] }}
|
||||||
</el-link>
|
</el-link>
|
||||||
<el-tag v-else-if="column.status" :type="statusTagType(row.approvalStatus)">
|
<el-tag v-else-if="column.status" :type="statusTagType(row.approvalStatus)" class="status-text">
|
||||||
{{ row[column.prop] || '-' }}
|
{{ row[column.prop] || '-' }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
<span v-else-if="column.money">
|
<span v-else-if="column.money">
|
||||||
|
|||||||
@@ -63,6 +63,7 @@
|
|||||||
:label="column.label"
|
:label="column.label"
|
||||||
:min-width="column.minWidth"
|
:min-width="column.minWidth"
|
||||||
:align="column.align || 'center'"
|
:align="column.align || 'center'"
|
||||||
|
:fixed="column.fixed"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
|
|||||||
@@ -71,7 +71,7 @@
|
|||||||
type="primary"
|
type="primary"
|
||||||
@click="openView(row)"
|
@click="openView(row)"
|
||||||
>{{ row[column.prop] }}</el-link
|
>{{ row[column.prop] }}</el-link
|
||||||
><el-tag v-else-if="column.status" :type="statusType(row.approvalStatus)">{{
|
><el-tag v-else-if="column.status" :type="statusType(row.approvalStatus)" class="status-text">{{
|
||||||
row[column.prop] || '-'
|
row[column.prop] || '-'
|
||||||
}}</el-tag
|
}}</el-tag
|
||||||
><span v-else-if="column.money">{{ formatMoney(row[column.prop]) }}</span
|
><span v-else-if="column.money">{{ formatMoney(row[column.prop]) }}</span
|
||||||
|
|||||||
@@ -25,11 +25,11 @@
|
|||||||
<el-descriptions-item label="能源类型">{{
|
<el-descriptions-item label="能源类型">{{
|
||||||
vehicleDetail.energyType || '-'
|
vehicleDetail.energyType || '-'
|
||||||
}}</el-descriptions-item>
|
}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="外廓尺寸(mm)">{{ dimensions }}</el-descriptions-item>
|
<el-descriptions-item label="外廓尺寸(mm)">{{ dimensions }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="核定载质量(KG)">{{
|
<el-descriptions-item label="核定载质量(KG)">{{
|
||||||
vehicleDetail.approvedLoadKg ?? '-'
|
vehicleDetail.approvedLoadKg ?? '-'
|
||||||
}}</el-descriptions-item>
|
}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="准牵引总质量(KG)">{{
|
<el-descriptions-item label="准牵引总质量(KG)">{{
|
||||||
vehicleDetail.tractionMassKg ?? '-'
|
vehicleDetail.tractionMassKg ?? '-'
|
||||||
}}</el-descriptions-item>
|
}}</el-descriptions-item>
|
||||||
<el-descriptions-item label="行驶证档案编号">{{
|
<el-descriptions-item label="行驶证档案编号">{{
|
||||||
|
|||||||
@@ -231,7 +231,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="外廓尺寸(毫米)">
|
<el-form-item label="外廓尺寸(毫米)">
|
||||||
<div class="dimension-group">
|
<div class="dimension-group">
|
||||||
<div class="dimension-group__item">
|
<div class="dimension-group__item">
|
||||||
<span class="dimension-group__label">长</span>
|
<span class="dimension-group__label">长</span>
|
||||||
@@ -263,7 +263,7 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="18">
|
<el-row :gutter="18">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="核定载质量(KG)" prop="approvedLoadKg">
|
<el-form-item label="核定载质量(KG)" prop="approvedLoadKg">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="vehicleForm.approvedLoadKg"
|
v-model="vehicleForm.approvedLoadKg"
|
||||||
inputmode="numeric"
|
inputmode="numeric"
|
||||||
@@ -272,7 +272,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="准牵引总质量(KG)" prop="tractionMassKg">
|
<el-form-item label="准牵引总质量(KG)" prop="tractionMassKg">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="vehicleForm.tractionMassKg"
|
v-model="vehicleForm.tractionMassKg"
|
||||||
inputmode="numeric"
|
inputmode="numeric"
|
||||||
@@ -729,7 +729,7 @@ export default {
|
|||||||
return [
|
return [
|
||||||
['所属组织', 'organizationName'], ['车牌号', 'plateNo'], ['车牌颜色', 'plateColor'],
|
['所属组织', 'organizationName'], ['车牌号', 'plateNo'], ['车牌颜色', 'plateColor'],
|
||||||
['车辆类型', 'vehicleType'], ['外廓长度(mm)', 'outerLength'], ['外廓宽度(mm)', 'outerWidth'],
|
['车辆类型', 'vehicleType'], ['外廓长度(mm)', 'outerLength'], ['外廓宽度(mm)', 'outerWidth'],
|
||||||
['外廓高度(mm)', 'outerHeight'], ['核定载质量(KG)', 'approvedLoadKg'], ['准牵引总质量(KG)', 'tractionMassKg'],
|
['外廓高度(mm)', 'outerHeight'], ['核定载质量(KG)', 'approvedLoadKg'], ['准牵引总质量(KG)', 'tractionMassKg'],
|
||||||
['业务关系', 'businessRelation'], ['能源类型', 'energyType'], ['强制报废日期', 'compulsoryScrapDate'],
|
['业务关系', 'businessRelation'], ['能源类型', 'energyType'], ['强制报废日期', 'compulsoryScrapDate'],
|
||||||
['海关备案号', 'customsRecordNo'], ['行驶证档案编号', 'drivingLicenseNo'], ['行驶证有效期起', 'drivingLicenseStartDate'],
|
['海关备案号', 'customsRecordNo'], ['行驶证档案编号', 'drivingLicenseNo'], ['行驶证有效期起', 'drivingLicenseStartDate'],
|
||||||
['行驶证有效期止', 'drivingLicenseEndDate'], ['道路运输证号', 'roadTransportCertNo'], ['道路运输证有效期起', 'roadTransportCertStartDate'],
|
['行驶证有效期止', 'drivingLicenseEndDate'], ['道路运输证号', 'roadTransportCertNo'], ['道路运输证有效期起', 'roadTransportCertStartDate'],
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
<template #status="{ row }">
|
<template #status="{ row }">
|
||||||
<el-tag :type="statusMap[row.status].type">
|
<el-tag :type="statusMap[row.status].type" class="status-text">
|
||||||
{{ statusMap[row.status].label }}
|
{{ statusMap[row.status].label }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
@@ -119,7 +119,7 @@
|
|||||||
<el-table-column label="评分项目数" width="140" align="center">
|
<el-table-column label="评分项目数" width="140" align="center">
|
||||||
<template #default="{ row }">{{ row.items.length }}</template>
|
<template #default="{ row }">{{ row.items.length }}</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" width="180" align="center">
|
<el-table-column label="操作" width="160" align="center">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-link type="primary" @click="openCategory(row)">编辑</el-link>
|
<el-link type="primary" @click="openCategory(row)">编辑</el-link>
|
||||||
</template>
|
</template>
|
||||||
@@ -287,8 +287,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="得分率(%)" required>
|
<el-form-item label="得分率(%)" required>
|
||||||
<div class="range-input standard-range-input">
|
<div class="range-input standard-range-input score-rate-range">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="standardForm.scoreRateLower"
|
v-model="standardForm.scoreRateLower"
|
||||||
inputmode="numeric"
|
inputmode="numeric"
|
||||||
@@ -316,22 +316,21 @@
|
|||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="8">
|
||||||
<el-form-item label="额度增加" required>
|
<el-form-item label="额度增加(万元)" required>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="standardForm.creditLimitIncrease"
|
v-model="standardForm.creditLimitIncrease"
|
||||||
inputmode="decimal"
|
inputmode="decimal"
|
||||||
@input="value => handleStandardNumberInput('creditLimitIncrease', value, 2)"
|
@input="value => handleStandardNumberInput('creditLimitIncrease', value, 2)"
|
||||||
>
|
class="credit-increase-input"
|
||||||
<template #suffix>万元</template>
|
/>
|
||||||
</el-input>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="最大资金使用额度(万元)" required>
|
<el-form-item label="最大资金使用额度(万元)" required>
|
||||||
<div class="range-input standard-range-input">
|
<div class="range-input standard-range-input credit-limit-range">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="standardForm.creditLimitLower"
|
v-model="standardForm.creditLimitLower"
|
||||||
inputmode="decimal"
|
inputmode="decimal"
|
||||||
@@ -1214,6 +1213,24 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.credit-limit-range {
|
||||||
|
width: 520px;
|
||||||
|
max-width: 100%;
|
||||||
|
|
||||||
|
:deep(.el-input) {
|
||||||
|
width: 250px;
|
||||||
|
flex: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.score-rate-range {
|
||||||
|
width: 250px;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.credit-increase-input {
|
||||||
|
}
|
||||||
|
|
||||||
.score-unit {
|
.score-unit {
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
color: #606266;
|
color: #606266;
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
<template #customerCode="{ row }">
|
<template #customerCode="{ row }">
|
||||||
<el-button type="primary" link @click="openArchive(row, true)">
|
<el-button type="primary" link @click="viewArchive(row)">
|
||||||
{{ row.customerCode }}
|
{{ row.customerCode }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
<el-link
|
<el-link
|
||||||
type="primary"
|
type="primary"
|
||||||
v-if="hasPermission('customer_archive_view')"
|
v-if="hasPermission('customer_archive_view')"
|
||||||
@click="openArchive(row, true)"
|
@click="viewArchive(row)"
|
||||||
>
|
>
|
||||||
查看
|
查看
|
||||||
</el-link>
|
</el-link>
|
||||||
@@ -354,7 +354,7 @@
|
|||||||
<section-card title="财务/信用信息">
|
<section-card title="财务/信用信息">
|
||||||
<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">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="archiveForm.registeredCapital"
|
v-model="archiveForm.registeredCapital"
|
||||||
maxlength="18"
|
maxlength="18"
|
||||||
@@ -363,7 +363,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="开票税点(%)" prop="invoiceTaxRate">
|
<el-form-item label="开票税点(%)" prop="invoiceTaxRate">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="archiveForm.invoiceTaxRate"
|
v-model="archiveForm.invoiceTaxRate"
|
||||||
maxlength="5"
|
maxlength="5"
|
||||||
@@ -377,7 +377,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="最大资金使用额度(万元)" prop="maxCreditLimit">
|
<el-form-item label="最大资金使用额度(万元)" prop="maxCreditLimit">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="archiveForm.maxCreditLimit"
|
v-model="archiveForm.maxCreditLimit"
|
||||||
maxlength="18"
|
maxlength="18"
|
||||||
@@ -387,7 +387,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="申请总资金使用额度(万元)" prop="applyCreditLimit">
|
<el-form-item label="申请总资金使用额度(万元)" prop="applyCreditLimit">
|
||||||
<el-input v-model="archiveForm.applyCreditLimit" maxlength="18" disabled />
|
<el-input v-model="archiveForm.applyCreditLimit" maxlength="18" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -439,17 +439,17 @@
|
|||||||
<span>{{ row.creditLevel }}</span>
|
<span>{{ row.creditLevel }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column min-width="185" align="center">
|
<el-table-column min-width="210" align="center">
|
||||||
<template #header>
|
<template #header>
|
||||||
<span>最大资金使用额度(万<br />元)</span>
|
<span>最大资金使用额度(万元)</span>
|
||||||
</template>
|
</template>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<span>{{ formatScoreValue(row.maxCreditLimit) }}</span>
|
<span>{{ formatScoreValue(row.maxCreditLimit) }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column min-width="190" align="center">
|
<el-table-column min-width="220" align="center">
|
||||||
<template #header>
|
<template #header>
|
||||||
<span>拟申请总资金使用额<br />度(万元)</span>
|
<span>拟申请总资金使用额(万元)</span>
|
||||||
</template>
|
</template>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<span>{{ formatScoreValue(row.applyCreditLimit) }}</span>
|
<span>{{ formatScoreValue(row.applyCreditLimit) }}</span>
|
||||||
@@ -486,37 +486,40 @@
|
|||||||
>新增联系人</el-button
|
>新增联系人</el-button
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<el-table :data="contactTableData" border class="contact-table">
|
<section-card>
|
||||||
<el-table-column label="序号" prop="__index" width="90" align="center" />
|
<el-table :data="contactTableData" border class="contact-table">
|
||||||
<el-table-column label="联系人姓名" prop="contactName" min-width="150" />
|
<el-table-column label="序号" prop="__index" width="90" align="center" />
|
||||||
<el-table-column label="联系人电话" prop="contactPhone" min-width="150" />
|
<el-table-column label="联系人姓名" prop="contactName" min-width="150" />
|
||||||
<el-table-column label="邮箱" prop="email" min-width="180" />
|
<el-table-column label="联系人电话" prop="contactPhone" min-width="150" />
|
||||||
<el-table-column label="联系地址" min-width="240">
|
<el-table-column label="邮箱" prop="email" min-width="180" />
|
||||||
<template #default="{ row }">
|
<el-table-column label="联系地址" min-width="240">
|
||||||
<span>{{ formatContactAddress(row) || '-' }}</span>
|
<template #default="{ row }">
|
||||||
</template>
|
<span>{{ formatContactAddress(row) || '-' }}</span>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="备注" prop="remark" min-width="180" />
|
</el-table-column>
|
||||||
<el-table-column label="所属分公司/事业部" min-width="170">
|
<el-table-column label="备注" prop="remark" min-width="180" />
|
||||||
<template #default="{ row }">
|
<el-table-column label="所属分公司/事业部" min-width="170">
|
||||||
<span>{{ row.branchName || archiveForm.deptName || '-' }}</span>
|
<template #default="{ row }">
|
||||||
</template>
|
<span>{{ row.branchName || archiveForm.deptName || '-' }}</span>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="操作" width="130" align="center" v-if="!readonly">
|
</el-table-column>
|
||||||
<template #default="{ row }">
|
<el-table-column label="操作" width="130" align="center" v-if="!readonly">
|
||||||
<el-link type="primary" @click="openContact(row.__raw, row.__rawIndex)">
|
<template #default="{ row }">
|
||||||
修改
|
<el-link type="primary" @click="openContact(row.__raw, row.__rawIndex)">
|
||||||
</el-link>
|
修改
|
||||||
<el-link type="danger" @click="deleteContact(row.__rawIndex)">删除</el-link>
|
</el-link>
|
||||||
</template>
|
<el-link type="danger" @click="deleteContact(row.__rawIndex)">删除</el-link>
|
||||||
</el-table-column>
|
</template>
|
||||||
</el-table>
|
</el-table-column>
|
||||||
<empty-pagination
|
</el-table>
|
||||||
:page="contactPaginationPage"
|
<empty-pagination
|
||||||
always-show
|
:page="contactPaginationPage"
|
||||||
@size-change="size => handleDetailSizeChange('contact', size)"
|
always-show
|
||||||
@current-change="page => handleDetailCurrentChange('contact', page)"
|
@size-change="size => handleDetailSizeChange('contact', size)"
|
||||||
/>
|
@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="tab-table-toolbar" v-if="!readonly">
|
<div class="tab-table-toolbar" v-if="!readonly">
|
||||||
@@ -800,12 +803,12 @@
|
|||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<div class="archive-form__footer">
|
<div class="archive-form__footer">
|
||||||
<el-button v-if="!isArchivePage" @click="closeArchive">
|
<el-button v-if="!isArchivePage || readonly" @click="closeArchive">
|
||||||
{{ readonly ? '关闭' : '取消' }}
|
{{ isArchivePage ? '返回' : readonly ? '关闭' : '取消' }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" v-if="!readonly" @click="saveArchive">保存</el-button>
|
<el-button type="primary" v-if="!readonly" @click="saveArchive">保存</el-button>
|
||||||
<el-button type="success" v-if="!readonly" @click="saveAndSubmitArchive">提交</el-button>
|
<el-button type="success" v-if="!readonly" @click="saveAndSubmitArchive">提交</el-button>
|
||||||
<el-button v-if="!readonly" @click="closeArchive">返回</el-button>
|
<el-button v-if="!readonly && !isArchivePage" @click="closeArchive">返回</el-button>
|
||||||
</div>
|
</div>
|
||||||
</component>
|
</component>
|
||||||
|
|
||||||
@@ -817,45 +820,47 @@
|
|||||||
class="contact-dialog"
|
class="contact-dialog"
|
||||||
@closed="resetContact"
|
@closed="resetContact"
|
||||||
>
|
>
|
||||||
<el-form
|
<section-card>
|
||||||
ref="contactForm"
|
<el-form
|
||||||
:model="contactForm"
|
ref="contactForm"
|
||||||
:rules="contactRules"
|
:model="contactForm"
|
||||||
label-position="right"
|
:rules="contactRules"
|
||||||
label-width="110px"
|
label-position="right"
|
||||||
class="contact-form"
|
label-width="110px"
|
||||||
>
|
class="contact-form"
|
||||||
<el-form-item label="联系人姓名" prop="contactName" class="contact-form__compact-field">
|
>
|
||||||
<el-input v-model="contactForm.contactName" maxlength="30" />
|
<el-form-item label="联系人姓名" prop="contactName" class="contact-form__compact-field">
|
||||||
</el-form-item>
|
<el-input v-model="contactForm.contactName" maxlength="30" />
|
||||||
<el-form-item label="手机号" prop="contactPhone" class="contact-form__compact-field">
|
</el-form-item>
|
||||||
<el-input v-model="contactForm.contactPhone" maxlength="11" />
|
<el-form-item label="手机号" prop="contactPhone" class="contact-form__compact-field">
|
||||||
</el-form-item>
|
<el-input v-model="contactForm.contactPhone" maxlength="11" />
|
||||||
<el-form-item label="邮箱" prop="email" class="contact-form__compact-field">
|
</el-form-item>
|
||||||
<el-input v-model="contactForm.email" maxlength="100" />
|
<el-form-item label="邮箱" prop="email" class="contact-form__compact-field">
|
||||||
</el-form-item>
|
<el-input v-model="contactForm.email" maxlength="100" />
|
||||||
<el-form-item label="地址" prop="detailAddress">
|
</el-form-item>
|
||||||
<div class="contact-form__address">
|
<el-form-item label="地址" prop="detailAddress">
|
||||||
<el-input
|
<div class="contact-form__address">
|
||||||
v-model="contactForm.regionName"
|
<el-input
|
||||||
readonly
|
v-model="contactForm.regionName"
|
||||||
maxlength="100"
|
readonly
|
||||||
placeholder="行政区划自动带出"
|
maxlength="100"
|
||||||
/>
|
placeholder="行政区划自动带出"
|
||||||
<el-input
|
/>
|
||||||
v-model="contactForm.detailAddress"
|
<el-input
|
||||||
readonly
|
v-model="contactForm.detailAddress"
|
||||||
maxlength="255"
|
readonly
|
||||||
placeholder="点击后弹出地图组件"
|
maxlength="255"
|
||||||
suffix-icon="el-icon-location"
|
placeholder="点击后弹出地图组件"
|
||||||
@click="handleContactMapPick"
|
suffix-icon="el-icon-location"
|
||||||
/>
|
@click="handleContactMapPick"
|
||||||
</div>
|
/>
|
||||||
</el-form-item>
|
</div>
|
||||||
<el-form-item label="备注" prop="remark" class="contact-form__compact-field">
|
</el-form-item>
|
||||||
<el-input v-model="contactForm.remark" maxlength="200" />
|
<el-form-item label="备注" prop="remark" class="contact-form__compact-field">
|
||||||
</el-form-item>
|
<el-input v-model="contactForm.remark" maxlength="200" />
|
||||||
</el-form>
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</section-card>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="contact-dialog__footer-actions">
|
<div class="contact-dialog__footer-actions">
|
||||||
<el-button type="primary" @click="saveContact">保存</el-button>
|
<el-button type="primary" @click="saveContact">保存</el-button>
|
||||||
@@ -915,37 +920,39 @@
|
|||||||
class="receipt-dialog"
|
class="receipt-dialog"
|
||||||
@closed="resetReceipt"
|
@closed="resetReceipt"
|
||||||
>
|
>
|
||||||
<el-form
|
<section-card>
|
||||||
ref="receiptForm"
|
<el-form
|
||||||
:model="receiptForm"
|
ref="receiptForm"
|
||||||
:rules="receiptRules"
|
:model="receiptForm"
|
||||||
label-position="right"
|
:rules="receiptRules"
|
||||||
label-width="120px"
|
label-position="right"
|
||||||
class="receipt-form"
|
label-width="120px"
|
||||||
>
|
class="receipt-form"
|
||||||
<el-form-item label="收款单位名称" prop="accountName">
|
>
|
||||||
<el-input v-model="receiptForm.accountName" maxlength="100" />
|
<el-form-item label="收款单位名称" prop="accountName">
|
||||||
</el-form-item>
|
<el-input v-model="receiptForm.accountName" maxlength="100" />
|
||||||
<el-form-item label="开户人姓名" prop="accountHolderName">
|
</el-form-item>
|
||||||
<el-input v-model="receiptForm.accountHolderName" maxlength="50" />
|
<el-form-item label="开户人姓名" prop="accountHolderName">
|
||||||
</el-form-item>
|
<el-input v-model="receiptForm.accountHolderName" maxlength="50" />
|
||||||
<el-form-item label="开户行" prop="bankName">
|
</el-form-item>
|
||||||
<el-select v-model="receiptForm.bankName" filterable clearable>
|
<el-form-item label="开户行" prop="bankName">
|
||||||
<el-option
|
<el-select v-model="receiptForm.bankName" filterable clearable>
|
||||||
v-for="item in bankListOptions"
|
<el-option
|
||||||
:key="item.value"
|
v-for="item in bankListOptions"
|
||||||
:label="item.label"
|
:key="item.value"
|
||||||
:value="item.value"
|
:label="item.label"
|
||||||
/>
|
:value="item.value"
|
||||||
</el-select>
|
/>
|
||||||
</el-form-item>
|
</el-select>
|
||||||
<el-form-item label="收款账号" prop="bankAccount">
|
</el-form-item>
|
||||||
<el-input v-model="receiptForm.bankAccount" maxlength="50" />
|
<el-form-item label="收款账号" prop="bankAccount">
|
||||||
</el-form-item>
|
<el-input v-model="receiptForm.bankAccount" maxlength="50" />
|
||||||
<el-form-item label="备注" prop="remark">
|
</el-form-item>
|
||||||
<el-input v-model="receiptForm.remark" maxlength="200" />
|
<el-form-item label="备注" prop="remark">
|
||||||
</el-form-item>
|
<el-input v-model="receiptForm.remark" maxlength="200" />
|
||||||
</el-form>
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</section-card>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="receipt-dialog__footer-actions">
|
<div class="receipt-dialog__footer-actions">
|
||||||
<el-button type="primary" @click="saveReceipt">保存</el-button>
|
<el-button type="primary" @click="saveReceipt">保存</el-button>
|
||||||
@@ -1376,6 +1383,7 @@ import pdfWorkerSrc from 'pdfjs-dist/build/pdf.worker.mjs?url';
|
|||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
import NProgress from 'nprogress';
|
import NProgress from 'nprogress';
|
||||||
import 'nprogress/nprogress.css';
|
import 'nprogress/nprogress.css';
|
||||||
|
import SectionCard from '@/components/section-card/main.vue';
|
||||||
|
|
||||||
const createTimeRangeMap = {
|
const createTimeRangeMap = {
|
||||||
createTimeRange: ['createTimeStart', 'createTimeEnd'],
|
createTimeRange: ['createTimeStart', 'createTimeEnd'],
|
||||||
@@ -1394,6 +1402,7 @@ const qualificationViewerPlugins = [
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
SectionCard,
|
||||||
ArrowRight,
|
ArrowRight,
|
||||||
Location,
|
Location,
|
||||||
ElImageViewer,
|
ElImageViewer,
|
||||||
@@ -1809,7 +1818,11 @@ export default {
|
|||||||
this.initBusinessDictionaries();
|
this.initBusinessDictionaries();
|
||||||
this.initScoreQuantificationOptions();
|
this.initScoreQuantificationOptions();
|
||||||
if (this.isArchivePage) {
|
if (this.isArchivePage) {
|
||||||
this.openArchive(this.$route.query.id ? { id: this.$route.query.id } : null);
|
const readonly = this.$route.query.view === '1' || this.$route.query.view === 'true';
|
||||||
|
this.openArchive(
|
||||||
|
this.$route.query.id ? { id: this.$route.query.id } : null,
|
||||||
|
readonly
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -1827,24 +1840,10 @@ export default {
|
|||||||
return this.$route.path === '/vehicle/customer-archive/form';
|
return this.$route.path === '/vehicle/customer-archive/form';
|
||||||
},
|
},
|
||||||
archiveContainer() {
|
archiveContainer() {
|
||||||
return this.isArchivePage ? 'div' : 'el-dialog';
|
return 'div';
|
||||||
},
|
},
|
||||||
archiveContainerProps() {
|
archiveContainerProps() {
|
||||||
if (this.isArchivePage) {
|
return { class: 'archive-page-form' };
|
||||||
return { class: 'archive-page-form' };
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
title: this.dialogTitle,
|
|
||||||
appendToBody: true,
|
|
||||||
modelValue: this.archiveBox,
|
|
||||||
width: '92%',
|
|
||||||
top: '4vh',
|
|
||||||
modal: true,
|
|
||||||
showClose: true,
|
|
||||||
closeOnClickModal: true,
|
|
||||||
closeOnPressEscape: true,
|
|
||||||
class: 'archive-dialog',
|
|
||||||
};
|
|
||||||
},
|
},
|
||||||
regionCascaderProps() {
|
regionCascaderProps() {
|
||||||
return {
|
return {
|
||||||
@@ -3588,12 +3587,14 @@ export default {
|
|||||||
query: isEdit ? { id: row.id, name: '编辑客商档案' } : { name: '新增客商档案' },
|
query: isEdit ? { id: row.id, name: '编辑客商档案' } : { name: '新增客商档案' },
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
viewArchive(row) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/vehicle/customer-archive/form',
|
||||||
|
query: { id: row.id, name: '查看客商档案', view: '1' },
|
||||||
|
});
|
||||||
|
},
|
||||||
closeArchive() {
|
closeArchive() {
|
||||||
if (this.isArchivePage) {
|
this.$router.push('/vehicle/customer-archive');
|
||||||
this.$router.push('/vehicle/customer-archive');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.archiveBox = false;
|
|
||||||
},
|
},
|
||||||
openArchive(row, readonly = false) {
|
openArchive(row, readonly = false) {
|
||||||
this.readonly = readonly;
|
this.readonly = readonly;
|
||||||
@@ -4893,13 +4894,9 @@ export default {
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.archive-dialog .el-dialog__body) {
|
|
||||||
max-height: 72vh;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.archive-page-form {
|
.archive-page-form {
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
|
margin-bottom: 60px;
|
||||||
}
|
}
|
||||||
.archive-form__footer {
|
.archive-form__footer {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
Reference in New Issue
Block a user