fix(ui): 统一文本中单位和符号的全角格式
- 将“里程(km)”、“耗时(ms)”、“得分率(%)”等标签中的括号改为中文全角括号 - 统一调整“万元”、“天”、“份”等单位的显示格式,使用全角符号增强一致性 - 业务合同管理及项目申请相关表单中字段标签规范化全角字符 - 客户档案页面联系人和收款信息模块使用section-card组件包裹,提高界面一致性 - 部分表格列标签中的单位如“吨”、“方”、“元”使用全角括号修正 - 优化项目申请模块路由跳转逻辑,调整部分弹窗标题显示 - 引入section-card组件用于多个功能区块,加强结构层次感和视觉统一性
This commit is contained in:
@@ -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 下分别点「重大项目补录 / 新增 / 编辑 / 查看 / 项目变更」应都进入独立页面,标题显示「重大项目补录 / 新增项目管理 / 编辑项目管理 / 查看项目管理 / 项目变更」。
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -578,7 +578,7 @@ export const option = {
|
||||
viewDisplay: false,
|
||||
},
|
||||
{
|
||||
label: '单价(计价单位)',
|
||||
label: '单价(计价单位)',
|
||||
prop: 'unitPrice',
|
||||
formatter: row => formatUnitPrice(row),
|
||||
minWidth: 140,
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -71,7 +71,7 @@ export const option = {
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
label: '核定载质量(KG)',
|
||||
label: '核定载质量(KG)',
|
||||
prop: 'approvedLoadKg',
|
||||
minWidth: 140,
|
||||
align: 'right',
|
||||
|
||||
@@ -154,7 +154,7 @@ export const option = {
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '评定(复核)单位',
|
||||
label: '评定(复核)单位',
|
||||
prop: 'assessmentUnit',
|
||||
minWidth: 160,
|
||||
overHidden: true,
|
||||
|
||||
@@ -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 },
|
||||
|
||||
@@ -892,7 +892,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
v-if="!isNonRoadTransport"
|
||||
label="里程(km)"
|
||||
label="里程(km)"
|
||||
class="business-crud-page__task-span-1"
|
||||
>
|
||||
<el-input
|
||||
@@ -1013,7 +1013,7 @@
|
||||
:disabled="dialogReadonly"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="里程(km)" class="business-crud-page__task-span-1">
|
||||
<el-form-item label="里程(km)" class="business-crud-page__task-span-1">
|
||||
<el-input
|
||||
v-model="form.mileage"
|
||||
placeholder="请输入"
|
||||
@@ -1474,7 +1474,7 @@
|
||||
</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="里程(km)">
|
||||
<el-form-item label="里程(km)">
|
||||
<el-input
|
||||
v-model="form.mileage"
|
||||
placeholder="请输入里程"
|
||||
@@ -1951,7 +1951,7 @@
|
||||
:disabled="dialogReadonly"
|
||||
@input="value => handleIntegerInput('copyCount', value)"
|
||||
/>
|
||||
<span>份</span>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1963,7 +1963,7 @@
|
||||
:disabled="dialogReadonly"
|
||||
@input="value => handleIntegerInput('paymentDays', value)"
|
||||
/>
|
||||
<span>天</span>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -2207,7 +2207,7 @@
|
||||
<el-table :data="paymentRatioRows" border>
|
||||
<el-table-column type="index" label="序号" width="80" align="center" />
|
||||
<el-table-column prop="paymentTerm" label="付款笔数" min-width="180" align="center" />
|
||||
<el-table-column label="付款比例上限" min-width="220" align="center">
|
||||
<el-table-column label="付款比例上限(%)" min-width="220" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-input-number
|
||||
v-model="row.ratioLimit"
|
||||
@@ -2217,7 +2217,7 @@
|
||||
:disabled="dialogReadonly"
|
||||
controls-position="right"
|
||||
/>
|
||||
<span class="business-crud-page__ratio-unit">%</span>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" min-width="220">
|
||||
@@ -2237,7 +2237,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-button v-if="!dialogReadonly" type="primary" plain @click="addPaymentRatioRow">
|
||||
<el-button v-if="!dialogReadonly" type="primary" plain @click="addPaymentRatioRow" style="margin-top: 12px">
|
||||
添加
|
||||
</el-button>
|
||||
</div>
|
||||
@@ -2858,7 +2858,7 @@
|
||||
v-if="waybillIsRoadTransport(detailRow) && !waybillIsCarrier(detailRow)"
|
||||
class="business-crud-page__waybill-detail-field"
|
||||
>
|
||||
<span>里程(km)</span><strong>{{ detailRow.mileage || '-' }}</strong>
|
||||
<span>里程(km)</span><strong>{{ detailRow.mileage || '-' }}</strong>
|
||||
</div>
|
||||
<div
|
||||
class="business-crud-page__waybill-detail-field business-crud-page__waybill-detail-field--remark"
|
||||
@@ -4347,7 +4347,7 @@
|
||||
{{ dispatchItemForm.quantityUnit || '吨' }}
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="里程(公里)" :required="dispatchItemForm.carrierType !== '承运商'">
|
||||
<el-form-item label="里程(公里)" :required="dispatchItemForm.carrierType !== '承运商'">
|
||||
<el-input
|
||||
v-model="dispatchItemForm.mileage"
|
||||
placeholder="请输入"
|
||||
@@ -4534,7 +4534,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
v-if="dispatchIsRoadTransport && dispatchItemForm.carrierType !== '承运商'"
|
||||
label="里程(km)"
|
||||
label="里程(km)"
|
||||
required
|
||||
>
|
||||
<el-input
|
||||
|
||||
@@ -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>
|
||||
<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>
|
||||
<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">{{ 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" />
|
||||
<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>
|
||||
@@ -30,15 +30,15 @@
|
||||
<el-table-column prop="cargoName" label="货物名称" min-width="150" />
|
||||
<el-table-column prop="cargoType" label="货物类型" min-width="130" />
|
||||
<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.volume ?? row.volumeCubic ?? '-' }}</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="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="deviceCode" label="设备编码" min-width="130" />
|
||||
<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 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>
|
||||
<el-empty v-if="!(master.goods || []).length" description="暂无货物信息" :image-size="56" />
|
||||
|
||||
@@ -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.cabinNo" placeholder="请输入" /></el-form-item></el-col>
|
||||
</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-row>
|
||||
</el-form>
|
||||
|
||||
@@ -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-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="一式"><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="回款账期"><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="一式(份)"><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" /></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>
|
||||
</section>
|
||||
@@ -56,7 +56,7 @@
|
||||
<el-table :data="paymentRatioRows" border class="change-table">
|
||||
<el-table-column type="index" label="序号" width="70" />
|
||||
<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="操作" width="100"><template #default="{ $index }"><el-link type="danger" @click="paymentRatioRows.splice($index, 1)">删除</el-link></template></el-table-column>
|
||||
</el-table>
|
||||
|
||||
@@ -868,7 +868,7 @@
|
||||
<el-form-item v-if="dialogForm.carrierType !== '承运商'" label="押运人手机号">
|
||||
<el-input v-model="dialogForm.escortPhone" clearable placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="里程(km)">
|
||||
<el-form-item label="里程(km)">
|
||||
<el-input
|
||||
v-model="dialogForm.mileage"
|
||||
clearable
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
@update:model-value="projectBox = $event"
|
||||
@closed="resetProjectDialog"
|
||||
>
|
||||
<div v-if="isProjectFormPage" class="project-apply-page__title">
|
||||
<div v-if="isProjectFormPage" class="archive-page-form__title">
|
||||
{{ projectDialogTitle }}
|
||||
</div>
|
||||
<el-form
|
||||
@@ -176,6 +176,7 @@
|
||||
<el-form-item label="承办部门" prop="undertakeDeptId">
|
||||
<el-cascader
|
||||
v-model="form.undertakeDeptId"
|
||||
style="width: 100%"
|
||||
placeholder="请选择承办部门"
|
||||
clearable
|
||||
filterable
|
||||
@@ -1084,17 +1085,26 @@ export default {
|
||||
return this.isAdmin || this.validData(this.permission && this.permission[code], false);
|
||||
},
|
||||
openProjectFormPage() {
|
||||
const type = this.$route.query.mode === 'edit' ? 'edit' : 'add';
|
||||
const type = this.$route.query.mode || 'add';
|
||||
const id = this.$route.query.id;
|
||||
this.dialogType = type;
|
||||
this.dialogReadonly = false;
|
||||
this.dialogReadonly = type === 'view';
|
||||
this.projectBox = true;
|
||||
if (type === 'add') {
|
||||
this.applyProjectDetail({ ...emptyForm(), projectType: '普通项目' });
|
||||
if (['add', 'majorSupplement'].includes(type)) {
|
||||
this.applyProjectDetail({
|
||||
...emptyForm(),
|
||||
projectType: type === 'majorSupplement' ? '重大项目' : '普通项目',
|
||||
});
|
||||
this.fillDefaultUsers();
|
||||
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() {
|
||||
if (this.isProjectFormPage) {
|
||||
@@ -1294,34 +1304,16 @@ export default {
|
||||
});
|
||||
},
|
||||
openProjectDialog(type, row = {}) {
|
||||
if (['add', 'edit'].includes(type)) {
|
||||
this.$router.push({
|
||||
path: '/business/project-apply/form',
|
||||
query:
|
||||
type === 'edit'
|
||||
? { mode: type, id: row.id, name: `编辑${this.config.title}` }
|
||||
: { mode: type, name: `新增${this.config.title}` },
|
||||
});
|
||||
return;
|
||||
const query = { mode: type };
|
||||
if (['edit', 'view', 'change'].includes(type)) {
|
||||
query.id = row.id;
|
||||
}
|
||||
this.dialogType = type;
|
||||
this.dialogReadonly = type === 'view';
|
||||
this.projectBox = true;
|
||||
if (type === 'add' || type === 'majorSupplement') {
|
||||
this.applyProjectDetail({
|
||||
...emptyForm(),
|
||||
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,
|
||||
});
|
||||
});
|
||||
if (type === 'add') query.name = `新增${this.config.title}`;
|
||||
else if (type === 'edit') query.name = `编辑${this.config.title}`;
|
||||
else if (type === 'view') query.name = `查看${this.config.title}`;
|
||||
else if (type === 'majorSupplement') query.name = '重大项目补录';
|
||||
else if (type === 'change') query.name = '项目变更';
|
||||
this.$router.push({ path: '/business/project-apply/form', query });
|
||||
},
|
||||
resetProjectDialog() {
|
||||
this.$refs.projectForm?.clearValidate();
|
||||
@@ -2094,28 +2086,11 @@ export default {
|
||||
|
||||
.project-apply-page-form {
|
||||
min-height: 100%;
|
||||
margin-bottom: 60px;
|
||||
//padding: 20px 24px 92px;
|
||||
//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 {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
|
||||
@@ -25,11 +25,11 @@
|
||||
<el-descriptions-item label="能源类型">{{
|
||||
vehicleDetail.energyType || '-'
|
||||
}}</el-descriptions-item>
|
||||
<el-descriptions-item label="外廓尺寸(mm)">{{ dimensions }}</el-descriptions-item>
|
||||
<el-descriptions-item label="核定载质量(KG)">{{
|
||||
<el-descriptions-item label="外廓尺寸(mm)">{{ dimensions }}</el-descriptions-item>
|
||||
<el-descriptions-item label="核定载质量(KG)">{{
|
||||
vehicleDetail.approvedLoadKg ?? '-'
|
||||
}}</el-descriptions-item>
|
||||
<el-descriptions-item label="准牵引总质量(KG)">{{
|
||||
<el-descriptions-item label="准牵引总质量(KG)">{{
|
||||
vehicleDetail.tractionMassKg ?? '-'
|
||||
}}</el-descriptions-item>
|
||||
<el-descriptions-item label="行驶证档案编号">{{
|
||||
|
||||
@@ -231,7 +231,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="外廓尺寸(毫米)">
|
||||
<el-form-item label="外廓尺寸(毫米)">
|
||||
<div class="dimension-group">
|
||||
<div class="dimension-group__item">
|
||||
<span class="dimension-group__label">长</span>
|
||||
@@ -263,7 +263,7 @@
|
||||
</el-row>
|
||||
<el-row :gutter="18">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="核定载质量(KG)" prop="approvedLoadKg">
|
||||
<el-form-item label="核定载质量(KG)" prop="approvedLoadKg">
|
||||
<el-input
|
||||
v-model="vehicleForm.approvedLoadKg"
|
||||
inputmode="numeric"
|
||||
@@ -272,7 +272,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="准牵引总质量(KG)" prop="tractionMassKg">
|
||||
<el-form-item label="准牵引总质量(KG)" prop="tractionMassKg">
|
||||
<el-input
|
||||
v-model="vehicleForm.tractionMassKg"
|
||||
inputmode="numeric"
|
||||
@@ -729,7 +729,7 @@ export default {
|
||||
return [
|
||||
['所属组织', 'organizationName'], ['车牌号', 'plateNo'], ['车牌颜色', 'plateColor'],
|
||||
['车辆类型', 'vehicleType'], ['外廓长度(mm)', 'outerLength'], ['外廓宽度(mm)', 'outerWidth'],
|
||||
['外廓高度(mm)', 'outerHeight'], ['核定载质量(KG)', 'approvedLoadKg'], ['准牵引总质量(KG)', 'tractionMassKg'],
|
||||
['外廓高度(mm)', 'outerHeight'], ['核定载质量(KG)', 'approvedLoadKg'], ['准牵引总质量(KG)', 'tractionMassKg'],
|
||||
['业务关系', 'businessRelation'], ['能源类型', 'energyType'], ['强制报废日期', 'compulsoryScrapDate'],
|
||||
['海关备案号', 'customsRecordNo'], ['行驶证档案编号', 'drivingLicenseNo'], ['行驶证有效期起', 'drivingLicenseStartDate'],
|
||||
['行驶证有效期止', 'drivingLicenseEndDate'], ['道路运输证号', 'roadTransportCertNo'], ['道路运输证有效期起', 'roadTransportCertStartDate'],
|
||||
|
||||
@@ -287,8 +287,8 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="得分率(%)" required>
|
||||
<div class="range-input standard-range-input">
|
||||
<el-form-item label="得分率(%)" required>
|
||||
<div class="range-input standard-range-input score-rate-range">
|
||||
<el-input
|
||||
v-model="standardForm.scoreRateLower"
|
||||
inputmode="numeric"
|
||||
@@ -316,22 +316,21 @@
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="额度增加" required>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="额度增加(万元)" required>
|
||||
<el-input
|
||||
v-model="standardForm.creditLimitIncrease"
|
||||
inputmode="decimal"
|
||||
@input="value => handleStandardNumberInput('creditLimitIncrease', value, 2)"
|
||||
>
|
||||
<template #suffix>万元</template>
|
||||
</el-input>
|
||||
class="credit-increase-input"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="最大资金使用额度(万元)" required>
|
||||
<div class="range-input standard-range-input">
|
||||
<el-form-item label="最大资金使用额度(万元)" required>
|
||||
<div class="range-input standard-range-input credit-limit-range">
|
||||
<el-input
|
||||
v-model="standardForm.creditLimitLower"
|
||||
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 {
|
||||
margin-left: 8px;
|
||||
color: #606266;
|
||||
|
||||
@@ -354,7 +354,7 @@
|
||||
<section-card title="财务/信用信息">
|
||||
<el-row :gutter="18">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="注册资金(万元)" prop="registeredCapital">
|
||||
<el-form-item label="注册资金(万元)" prop="registeredCapital">
|
||||
<el-input
|
||||
v-model="archiveForm.registeredCapital"
|
||||
maxlength="18"
|
||||
@@ -363,7 +363,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="开票税点(%)" prop="invoiceTaxRate">
|
||||
<el-form-item label="开票税点(%)" prop="invoiceTaxRate">
|
||||
<el-input
|
||||
v-model="archiveForm.invoiceTaxRate"
|
||||
maxlength="5"
|
||||
@@ -377,7 +377,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="最大资金使用额度(万元)" prop="maxCreditLimit">
|
||||
<el-form-item label="最大资金使用额度(万元)" prop="maxCreditLimit">
|
||||
<el-input
|
||||
v-model="archiveForm.maxCreditLimit"
|
||||
maxlength="18"
|
||||
@@ -387,7 +387,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<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-form-item>
|
||||
</el-col>
|
||||
@@ -439,17 +439,17 @@
|
||||
<span>{{ row.creditLevel }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column min-width="185" align="center">
|
||||
<el-table-column min-width="210" align="center">
|
||||
<template #header>
|
||||
<span>最大资金使用额度(万<br />元)</span>
|
||||
<span>最大资金使用额度(万元)</span>
|
||||
</template>
|
||||
<template #default="{ row }">
|
||||
<span>{{ formatScoreValue(row.maxCreditLimit) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column min-width="190" align="center">
|
||||
<el-table-column min-width="220" align="center">
|
||||
<template #header>
|
||||
<span>拟申请总资金使用额<br />度(万元)</span>
|
||||
<span>拟申请总资金使用额(万元)</span>
|
||||
</template>
|
||||
<template #default="{ row }">
|
||||
<span>{{ formatScoreValue(row.applyCreditLimit) }}</span>
|
||||
@@ -486,6 +486,7 @@
|
||||
>新增联系人</el-button
|
||||
>
|
||||
</div>
|
||||
<section-card>
|
||||
<el-table :data="contactTableData" border class="contact-table">
|
||||
<el-table-column label="序号" prop="__index" width="90" align="center" />
|
||||
<el-table-column label="联系人姓名" prop="contactName" min-width="150" />
|
||||
@@ -517,6 +518,8 @@
|
||||
@size-change="size => handleDetailSizeChange('contact', size)"
|
||||
@current-change="page => handleDetailCurrentChange('contact', page)"
|
||||
/>
|
||||
</section-card>
|
||||
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="收款信息" name="receiptAccounts">
|
||||
<div class="tab-table-toolbar" v-if="!readonly">
|
||||
@@ -808,6 +811,7 @@
|
||||
class="contact-dialog"
|
||||
@closed="resetContact"
|
||||
>
|
||||
<section-card>
|
||||
<el-form
|
||||
ref="contactForm"
|
||||
:model="contactForm"
|
||||
@@ -847,6 +851,7 @@
|
||||
<el-input v-model="contactForm.remark" maxlength="200" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</section-card>
|
||||
<template #footer>
|
||||
<div class="contact-dialog__footer-actions">
|
||||
<el-button type="primary" @click="saveContact">保存</el-button>
|
||||
@@ -906,6 +911,7 @@
|
||||
class="receipt-dialog"
|
||||
@closed="resetReceipt"
|
||||
>
|
||||
<section-card>
|
||||
<el-form
|
||||
ref="receiptForm"
|
||||
:model="receiptForm"
|
||||
@@ -937,6 +943,7 @@
|
||||
<el-input v-model="receiptForm.remark" maxlength="200" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</section-card>
|
||||
<template #footer>
|
||||
<div class="receipt-dialog__footer-actions">
|
||||
<el-button type="primary" @click="saveReceipt">保存</el-button>
|
||||
@@ -1367,6 +1374,7 @@ import pdfWorkerSrc from 'pdfjs-dist/build/pdf.worker.mjs?url';
|
||||
import { mapGetters } from 'vuex';
|
||||
import NProgress from 'nprogress';
|
||||
import 'nprogress/nprogress.css';
|
||||
import SectionCard from '@/components/section-card/main.vue';
|
||||
|
||||
const createTimeRangeMap = {
|
||||
createTimeRange: ['createTimeStart', 'createTimeEnd'],
|
||||
@@ -1385,6 +1393,7 @@ const qualificationViewerPlugins = [
|
||||
|
||||
export default {
|
||||
components: {
|
||||
SectionCard,
|
||||
ArrowRight,
|
||||
Location,
|
||||
ElImageViewer,
|
||||
@@ -4856,6 +4865,7 @@ export default {
|
||||
|
||||
.archive-page-form {
|
||||
min-height: 100%;
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
.archive-form__footer {
|
||||
display: flex;
|
||||
|
||||
Reference in New Issue
Block a user