diff --git a/.workbuddy/memory/2026-08-24.md b/.workbuddy/memory/2026-08-24.md
new file mode 100644
index 0000000..ace16c3
--- /dev/null
+++ b/.workbuddy/memory/2026-08-24.md
@@ -0,0 +1,8 @@
+# 2026-08-24
+
+## project-apply.vue:弹窗改独立页(与新增项目管理一致)
+- 将「重大项目补录 / 查看 / 项目变更」三种打开方式从 `el-dialog` 改为路由跳转独立页 `/business/project-apply/form?mode=...`,与已有的「新增 / 编辑」独立页统一。
+- `openProjectDialog` 全部 type 统一走 `$router.push`;`openProjectFormPage` 按 `route.query.mode`(add/edit/view/majorSupplement/change)加载详情或空表单。
+- 独立页标题改用全局 `archive-page-form__title`(自带 4px 主色竖条),删除原本地 `.project-apply-page__title` scoped 样式。
+- 仅改 1 个文件 `src/views/business/project-apply.vue`(约 +25 / -18 行);路由、API、全局样式未动。footer 逻辑(保存/提交/返回)沿用既有 `isProjectFormPage` 分支,无需改。
+- 验证:dev localhost:2889 下分别点「重大项目补录 / 新增 / 编辑 / 查看 / 项目变更」应都进入独立页面,标题显示「重大项目补录 / 新增项目管理 / 编辑项目管理 / 查看项目管理 / 项目变更」。
diff --git a/src/option/business/contract-manage.js b/src/option/business/contract-manage.js
index f1dafee..4db040c 100644
--- a/src/option/business/contract-manage.js
+++ b/src/option/business/contract-manage.js
@@ -80,8 +80,8 @@ export const config = {
['signDate', '签订日期'],
['contractFormat', '合同格式'],
['legalSealFlag', '是否需要加盖法人章'],
- ['copyCount', '一式'],
- ['paymentDays', '回款账期'],
+ ['copyCount', '一式(份)'],
+ ['paymentDays', '回款账期(天)'],
['remark', '备注', 2],
],
},
@@ -175,7 +175,7 @@ export const config = {
},
{
action: 'startChange',
- label: '发起变更',
+ label: '变更',
statusProp: 'approvalStatus',
status: ['approved'],
stage: ['formal'],
@@ -184,7 +184,7 @@ export const config = {
},
{
action: 'startChange',
- label: '再次发起变更',
+ label: '变更',
statusProp: 'approvalStatus',
status: ['change_approved'],
stage: ['formal'],
@@ -476,7 +476,7 @@ export const option = createCrudOption([
rules: selectRule('是否需要加盖法人章'),
},
{
- label: '一式',
+ label: '一式(份)',
prop: 'copyCount',
labelWidth: '72px',
formslot: true,
@@ -485,7 +485,7 @@ export const option = createCrudOption([
minWidth: 110,
},
{
- label: '回款账期',
+ label: '回款账期(天)',
prop: 'paymentDays',
formslot: true,
hide: true,
diff --git a/src/option/business/project-apply.js b/src/option/business/project-apply.js
index 6feeb97..9b3168f 100644
--- a/src/option/business/project-apply.js
+++ b/src/option/business/project-apply.js
@@ -219,7 +219,7 @@ export const option = createCrudOption([
minWidth: 120,
},
{
- label: '项目资金使用额度(万元)',
+ label: '项目资金使用额度(万元)',
prop: 'fundLimit',
type: 'number',
precision: 2,
@@ -228,7 +228,7 @@ export const option = createCrudOption([
rules: amountRules('项目资金使用额度'),
},
{
- label: '项目应收账款额度(万元)',
+ label: '项目应收账款额度(万元)',
prop: 'receivableLimit',
type: 'number',
precision: 2,
@@ -237,7 +237,7 @@ export const option = createCrudOption([
rules: amountRules('项目应收账款额度'),
},
{
- label: '应收账款回款期限(天)',
+ label: '应收账款回款期限(天)',
prop: 'receivableDays',
type: 'number',
hide: true,
@@ -245,7 +245,7 @@ export const option = createCrudOption([
rules: [{ required: true, message: '请输入应收账款回款期限', trigger: 'blur' }],
},
{
- label: '回款账期(天)',
+ label: '回款账期(天)',
prop: 'paymentDays',
type: 'number',
hide: true,
@@ -311,7 +311,7 @@ export const option = createCrudOption([
minWidth: 130,
},
{
- label: '项目规模(万元)',
+ label: '项目规模(万元)',
prop: 'projectScale',
type: 'number',
precision: 2,
@@ -320,7 +320,7 @@ export const option = createCrudOption([
rules: [nonNegativeRule('项目规模')],
},
{
- label: '预计利润(万元)',
+ label: '预计利润(万元)',
prop: 'estimatedProfit',
type: 'number',
precision: 2,
@@ -329,7 +329,7 @@ export const option = createCrudOption([
rules: [nonNegativeRule('预计利润')],
},
{
- label: '资金需求(万元)',
+ label: '资金需求(万元)',
prop: 'fundDemand',
type: 'number',
precision: 2,
diff --git a/src/option/business/waybill-manage.js b/src/option/business/waybill-manage.js
index 4805f93..352c40f 100644
--- a/src/option/business/waybill-manage.js
+++ b/src/option/business/waybill-manage.js
@@ -578,7 +578,7 @@ export const option = {
viewDisplay: false,
},
{
- label: '单价(计价单位)',
+ label: '单价(计价单位)',
prop: 'unitPrice',
formatter: row => formatUnitPrice(row),
minWidth: 140,
diff --git a/src/option/job/jobinfo.js b/src/option/job/jobinfo.js
index 3930f0b..7ab14b9 100644
--- a/src/option/job/jobinfo.js
+++ b/src/option/job/jobinfo.js
@@ -8,11 +8,11 @@ export const timeExpressionTypeDic = [
value: 2,
},
{
- label: '固定频率(毫秒)',
+ label: '固定频率(毫秒)',
value: 3,
},
{
- label: '固定延迟(毫秒)',
+ label: '固定延迟(毫秒)',
value: 4,
},
{
@@ -428,14 +428,14 @@ export default {
value: 0,
},
{
- label: '最低内存(GB)',
+ label: '最低内存(GB)',
labelTip: '可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制',
prop: 'minMemorySpace',
type: 'number',
value: 0,
},
{
- label: '最低磁盘空间(GB)',
+ label: '最低磁盘空间(GB)',
labelTip: '可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制',
prop: 'minDiskSpace',
type: 'number',
@@ -475,14 +475,14 @@ export default {
value: 0,
},
{
- label: '统计窗口(s)',
+ label: '统计窗口(s)',
labelTip: '统计的窗口长度(s),0代表不限制',
prop: 'statisticWindowLen',
type: 'number',
value: 0,
},
{
- label: '沉默窗口(s)',
+ label: '沉默窗口(s)',
labelTip: '沉默时间窗口(s),0代表不限制',
prop: 'silenceWindowLen',
type: 'number',
diff --git a/src/option/transportCapacity/transport-vehicle.js b/src/option/transportCapacity/transport-vehicle.js
index 320d3a4..03d14fa 100644
--- a/src/option/transportCapacity/transport-vehicle.js
+++ b/src/option/transportCapacity/transport-vehicle.js
@@ -71,7 +71,7 @@ export const option = {
align: 'center',
},
{
- label: '核定载质量(KG)',
+ label: '核定载质量(KG)',
prop: 'approvedLoadKg',
minWidth: 140,
align: 'right',
diff --git a/src/option/vehicle/annual-inspection-record.js b/src/option/vehicle/annual-inspection-record.js
index e017adf..771e5f7 100644
--- a/src/option/vehicle/annual-inspection-record.js
+++ b/src/option/vehicle/annual-inspection-record.js
@@ -154,7 +154,7 @@ export const option = {
],
},
{
- label: '评定(复核)单位',
+ label: '评定(复核)单位',
prop: 'assessmentUnit',
minWidth: 160,
overHidden: true,
diff --git a/src/views/authority/apikey.vue b/src/views/authority/apikey.vue
index 5a0fc1c..c89d7da 100644
--- a/src/views/authority/apikey.vue
+++ b/src/views/authority/apikey.vue
@@ -512,7 +512,7 @@ export default {
{ label: '请求接口', prop: 'requestUri', search: true, slot: true },
{ label: '请求方法', prop: 'method', slot: true, width: 85 },
{ label: '调用IP', prop: 'remoteIp', search: true, width: 140 },
- { label: '耗时(ms)', prop: 'time', width: 85 },
+ { label: '耗时(ms)', prop: 'time', width: 85 },
{ label: '日志时间', prop: 'createTime',
sortable: true, span: 24, width: 180 },
{ label: '用户代理', prop: 'userAgent', span: 24, hide: true },
diff --git a/src/views/business/components/business-crud-page.vue b/src/views/business/components/business-crud-page.vue
index 0a2d4f8..68bd9c4 100644
--- a/src/views/business/components/business-crud-page.vue
+++ b/src/views/business/components/business-crud-page.vue
@@ -892,7 +892,7 @@
-
+
-
+
handleIntegerInput('copyCount', value)"
/>
- 份
+
@@ -1963,7 +1963,7 @@
:disabled="dialogReadonly"
@input="value => handleIntegerInput('paymentDays', value)"
/>
- 天
+
@@ -2207,7 +2207,7 @@
-
+
- %
+
@@ -2237,7 +2237,7 @@
-
+
添加
@@ -2858,7 +2858,7 @@
v-if="waybillIsRoadTransport(detailRow) && !waybillIsCarrier(detailRow)"
class="business-crud-page__waybill-detail-field"
>
- 里程(km){{ detailRow.mileage || '-' }}
+ 里程(km){{ detailRow.mileage || '-' }}