Merge remote-tracking branch 'websoft/master'

This commit is contained in:
2026-08-07 13:15:44 +08:00
60 changed files with 463 additions and 208 deletions

View File

@@ -321,7 +321,7 @@ export default {
height: 'auto',
calcHeight: 32,
dialogWidth: 700,
menuWidth: 160,
menuWidth: 180,
tip: false,
searchShow: true,
searchMenuSpan: 24,
@@ -500,7 +500,7 @@ export default {
editBtn: false,
addBtn: false,
delBtn: false,
menuWidth: 160,
menuWidth: 180,
dialogType: 'drawer',
dialogWidth: 800,
column: [

View File

@@ -164,7 +164,7 @@ export default {
selection: true,
labelWidth: 'auto',
searchLabelWidth: 160,
menuWidth: 160,
menuWidth: 180,
dialogWidth: 900,
dialogClickModal: false,
column: [
@@ -275,7 +275,7 @@ export default {
editBtn: false,
addBtn: false,
delBtn: false,
menuWidth: 160,
menuWidth: 180,
dialogClickModal: false,
column: [
{
@@ -336,7 +336,7 @@ export default {
viewBtn: true,
selection: true,
labelWidth: 'auto',
menuWidth: 160,
menuWidth: 180,
dialogWidth: 900,
dialogClickModal: false,
column: [

View File

@@ -165,7 +165,7 @@ export default {
selection: true,
labelWidth: 'auto',
searchLabelWidth: 160,
menuWidth: 160,
menuWidth: 180,
dialogWidth: 900,
dialogClickModal: false,
column: [
@@ -312,7 +312,7 @@ export default {
editBtn: false,
addBtn: false,
delBtn: false,
menuWidth: 160,
menuWidth: 180,
dialogClickModal: false,
column: [
{
@@ -375,7 +375,7 @@ export default {
viewBtn: true,
selection: true,
labelWidth: 'auto',
menuWidth: 160,
menuWidth: 180,
dialogWidth: 900,
dialogClickModal: false,
column: [

View File

@@ -211,7 +211,7 @@ export default {
index: true,
viewBtn: true,
selection: true,
menuWidth: 160,
menuWidth: 180,
dialogClickModal: false,
column: [
{
@@ -366,7 +366,7 @@ export default {
editBtn: false,
addBtn: false,
delBtn: false,
menuWidth: 160,
menuWidth: 180,
dialogType: 'drawer',
dialogWidth: 800,
column: [

View File

@@ -250,7 +250,7 @@ export default {
viewBtn: true,
labelWidth: 'auto',
searchLabelWidth: 160,
menuWidth: 320,
menuWidth: 240,
dialogWidth: 600,
dialogClickModal: false,
column: [

View File

@@ -253,7 +253,7 @@ export default {
editBtn: false,
selection: true,
dialogClickModal: false,
menuWidth: 160,
menuWidth: 180,
column: [
{
label: '编码',

View File

@@ -170,7 +170,7 @@ export default {
editBtn: false,
selection: true,
dialogClickModal: false,
menuWidth: 160,
menuWidth: 180,
menuFixed: 'right',
column: [
{

View File

@@ -101,7 +101,7 @@ export default {
editBtn: false,
selection: true,
dialogClickModal: false,
menuWidth: 160,
menuWidth: 180,
column: [
{
label: '中文名称',

View File

@@ -141,7 +141,7 @@ export default {
editBtn: false,
selection: false,
dialogClickModal: false,
menuWidth: 160,
menuWidth: 180,
column: [
{
label: '费用类型',

View File

@@ -387,7 +387,7 @@ export default {
editBtn: false,
selection: true,
dialogClickModal: false,
menuWidth: 160,
menuWidth: 180,
column: [
{
label: '编码',

View File

@@ -219,7 +219,7 @@ export default {
editBtn: false,
selection: true,
dialogClickModal: false,
menuWidth: 160,
menuWidth: 180,
column: [
{
label: '编码',

View File

@@ -1,5 +1,5 @@
<template>
<business-crud-page :api="api" :config="config" :crud-option="option" />
<business-crud-page :api="api" :config="config" :crud-option="option" :menu-width="250" />
</template>
<script>

View File

@@ -99,7 +99,7 @@ export default {
editBtn: false,
addBtn: false,
delBtn: false,
menuWidth: 160,
menuWidth: 180,
labelWidth: 'auto',
dialogType: 'drawer',
column: [

View File

@@ -59,6 +59,7 @@ export default {
height: 'auto',
calcHeight: 32,
dialogWidth: 950,
menuWidth: 180,
tip: false,
searchShow: true,
searchMenuSpan: 24,

View File

@@ -73,7 +73,7 @@ export default {
addBtn: false,
viewBtn: false,
dialogWidth: 900,
menuWidth: 160,
menuWidth: 180,
dialogClickModal: false,
column: [
{

View File

@@ -156,7 +156,7 @@ export default {
viewBtn: false,
delBtn: false,
dialogWidth: 900,
menuWidth: 160,
menuWidth: 180,
dialogClickModal: false,
column: [
{

View File

@@ -213,7 +213,7 @@ export default {
viewBtn: false,
delBtn: false,
dialogWidth: 900,
menuWidth: 160,
menuWidth: 180,
dialogClickModal: false,
size: 'default',
searchSize: 'default',

View File

@@ -51,7 +51,7 @@ export default {
editBtn: false,
addBtn: false,
delBtn: false,
menuWidth: 160,
menuWidth: 180,
dialogType: 'drawer',
column: [
{

View File

@@ -51,7 +51,7 @@ export default {
editBtn: false,
addBtn: false,
delBtn: false,
menuWidth: 160,
menuWidth: 180,
dialogType: 'drawer',
column: [
{

View File

@@ -51,7 +51,7 @@ export default {
editBtn: false,
addBtn: false,
delBtn: false,
menuWidth: 160,
menuWidth: 180,
dialogType: 'drawer',
column: [
{

View File

@@ -92,7 +92,7 @@ export default {
viewBtn: true,
selection: true,
grid: true,
menuWidth: 160,
menuWidth: 180,
labelWidth: 'auto',
dialogWidth: 880,
dialogClickModal: false,

View File

@@ -91,7 +91,7 @@ export default {
viewBtn: true,
selection: true,
grid: true,
menuWidth: 160,
menuWidth: 180,
labelWidth: 'auto',
dialogWidth: 880,
dialogClickModal: false,

View File

@@ -729,4 +729,23 @@ export default {
justify-content: flex-end;
margin-top: 12px;
}
/* 操作列兜底:确保「查看 / 编辑 / 删除 / 新增子项」横向排列并保留 8px 间距,
避免退化成 block 导致操作项竖排错位。全局样式已统一处理,此处为双保险。 */
:deep(.avue-crud__menu) {
display: inline-flex !important;
flex-wrap: wrap;
gap: 8px;
align-items: center;
justify-content: flex-start;
width: 100%;
text-align: left;
> .el-button,
> .el-link,
> .el-dropdown {
flex-shrink: 0;
display: inline-flex;
}
}
</style>

View File

@@ -88,7 +88,7 @@ export default {
index: true,
selection: true,
viewBtn: true,
menuWidth: 320,
menuWidth: 220,
dialogClickModal: false,
column: [
{

View File

@@ -81,7 +81,7 @@
</el-table-column>
</template>
<!-- 操作栏模块 -->
<el-table-column prop="menu" label="操作" :width="220" align="center">
<el-table-column prop="menu" label="操作" :width="180" align="center">
<template #="{ row }">
<el-link
v-if="this.permissionList.viewBtn"

View File

@@ -237,7 +237,7 @@ export default {
selection: true,
addBtn: false,
viewBtn: true,
menuWidth: 160,
menuWidth: 240,
dialogWidth: 900,
dialogClickModal: false,
column: [

View File

@@ -171,7 +171,7 @@ export default {
index: true,
viewBtn: true,
selection: true,
menuWidth: 160,
menuWidth: 180,
dialogWidth: 900,
dialogClickModal: false,
column: [

View File

@@ -1343,7 +1343,6 @@ export default {
.driver-page {
&__identity {
display: flex;
flex-direction: column;
gap: 4px;
line-height: 20px;
}

View File

@@ -72,7 +72,7 @@ export default {
index: true,
selection: true,
viewBtn: true,
menuWidth: 160,
menuWidth: 180,
dialogWidth: 880,
column: [
{

View File

@@ -119,7 +119,7 @@ export default {
index: true,
selection: true,
viewBtn: true,
menuWidth: 160,
menuWidth: 180,
dialogWidth: 880,
column: [
{

View File

@@ -124,7 +124,7 @@ export default {
selection: true,
viewBtn: true,
height: 300,
menuWidth: 160,
menuWidth: 180,
dialogWidth: 880,
column: [
{

View File

@@ -429,7 +429,7 @@ export default {
editBtn: false,
selection: true,
dialogClickModal: false,
menuWidth: 160,
menuWidth: 180,
column: [
{
label: '评分表名称',
@@ -1022,8 +1022,8 @@ export default {
}
.base-form {
max-width: 1080px;
margin: 10px auto 28px;
max-width: 60%;
padding: 24px;
}
.section-head {

View File

@@ -151,9 +151,7 @@
:disabled="readonly"
class="archive-form"
>
<div class="section-title dialog-section-title">基本信息</div>
<div class="archive-form__group">
<div class="dialog-section-title archive-form__group-title">工商信息</div>
<section-card title="工商信息">
<el-row :gutter="18">
<el-col :span="6">
<el-form-item label="客商编号" prop="customerCode">
@@ -297,10 +295,9 @@
</el-form-item>
</el-col>
</el-row>
</div>
</section-card>
<div class="archive-form__group">
<div class="dialog-section-title archive-form__group-title">联系信息</div>
<section-card title="联系信息">
<el-row :gutter="18">
<el-col :span="8">
<el-form-item label="客商负责人" prop="principal">
@@ -329,10 +326,9 @@
</el-form-item>
</el-col>
</el-row>
</div>
</section-card>
<div class="archive-form__group">
<div class="dialog-section-title archive-form__group-title">财务/信用信息</div>
<section-card title="财务/信用信息">
<el-row :gutter="18">
<el-col :span="6">
<el-form-item label="注册资金(万元)" prop="registeredCapital">
@@ -377,10 +373,9 @@
</el-form-item>
</el-col>
</el-row>
</div>
</section-card>
<div class="archive-form__group">
<div class="dialog-section-title archive-form__group-title">其他信息</div>
<section-card title="其他信息">
<el-row :gutter="18">
<el-col :span="24">
<el-form-item label="备注" prop="remark">
@@ -393,18 +388,18 @@
</el-form-item>
</el-col>
</el-row>
</div>
</section-card>
</el-form>
<el-tabs v-model="activeTab" class="archive-tabs">
<el-tab-pane label="评分表" name="scores">
<div class="section-head">
<span></span>
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="addScore">
添加评分记录
</el-button>
</div>
<el-table :data="scoreTableData" border class="score-list-table">
<section-card>
<template #extra>
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="addScore">
添加评分记录
</el-button>
</template>
<el-table :data="scoreTableData" border class="score-list-table">
<el-table-column label="序号" width="90" align="center">
<template #default="{ row }">
<span>{{ row.__index }}</span>
@@ -470,15 +465,16 @@
@size-change="handleScoreSizeChange"
@current-change="handleScoreCurrentChange"
/>
</section-card>
</el-tab-pane>
<el-tab-pane label="联系人" name="contacts">
<div class="section-head">
<span></span>
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="openContact()">
新增联系人
</el-button>
</div>
<el-table :data="contactTableData" border class="contact-table">
<section-card>
<template #extra>
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="openContact()">
新增联系人
</el-button>
</template>
<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" />
<el-table-column label="联系人电话" prop="contactPhone" min-width="150" />
@@ -509,15 +505,16 @@
@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="section-head">
<span></span>
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="openReceipt()">
新增收款信息
</el-button>
</div>
<el-table :data="receiptTableData" border class="receipt-table">
<section-card>
<template #extra>
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="openReceipt()">
新增收款信息
</el-button>
</template>
<el-table :data="receiptTableData" border class="receipt-table">
<el-table-column label="序号" prop="__index" width="90" align="center" />
<el-table-column label="收款单位名称" prop="accountName" min-width="180" />
<el-table-column label="开户人姓名" prop="accountHolderName" min-width="150" />
@@ -539,15 +536,16 @@
@size-change="size => handleDetailSizeChange('receipt', size)"
@current-change="page => handleDetailCurrentChange('receipt', page)"
/>
</section-card>
</el-tab-pane>
<el-tab-pane label="发票信息" name="invoices">
<div class="section-head">
<span></span>
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="openInvoice()">
新增发票信息
</el-button>
</div>
<el-table :data="invoiceTableData" border class="invoice-table">
<section-card>
<template #extra>
<el-button type="primary" icon="el-icon-plus" v-if="!readonly" @click="openInvoice()">
新增发票信息
</el-button>
</template>
<el-table :data="invoiceTableData" border class="invoice-table">
<el-table-column label="序号" prop="__index" width="90" align="center" />
<el-table-column label="收票方名称" prop="invoiceTitle" min-width="180" />
<el-table-column label="纳税人识别号" prop="taxNo" min-width="180" />
@@ -575,12 +573,12 @@
@size-change="size => handleDetailSizeChange('invoice', size)"
@current-change="page => handleDetailCurrentChange('invoice', page)"
/>
</section-card>
</el-tab-pane>
</el-tabs>
<div class="customer-material-section">
<div class="section-head">
<div class="section-title dialog-section-title">客商材料</div>
<section-card title="客商材料">
<template #extra>
<div v-if="!readonly" class="section-actions">
<el-button icon="el-icon-download" @click="downloadAttachments">批量下载</el-button>
<el-button type="primary" icon="el-icon-plus" @click="addAttachment"
@@ -590,7 +588,7 @@
OCR上传识别
</el-button>
</div>
</div>
</template>
<el-alert
type="info"
:closable="false"
@@ -657,17 +655,16 @@
</template>
</el-table-column>
</el-table>
</div>
</section-card>
<div class="change-record-section">
<div class="section-title dialog-section-title">变更记录</div>
<section-card title="变更记录">
<el-table :data="archiveForm.changeRecords" border>
<el-table-column label="序号" type="index" width="90" align="center" />
<el-table-column label="变更日期" prop="changeTime" min-width="170" />
<el-table-column label="变更内容" prop="changeContent" min-width="260" />
<el-table-column label="变更账号" prop="changeUserName" min-width="160" />
</el-table>
</div>
</section-card>
<template #footer>
<el-button @click="archiveBox = false">{{ readonly ? '关闭' : '取消' }}</el-button>
@@ -838,8 +835,8 @@
label-width="120px"
class="invoice-form"
>
<div class="invoice-form__section-title">发票信息</div>
<el-row :gutter="34">
<section-card title="发票信息">
<el-row :gutter="34">
<el-col :span="12">
<el-form-item label="纳税人识别号" prop="taxNo">
<el-input v-model="invoiceForm.taxNo" maxlength="30" />
@@ -887,8 +884,10 @@
</el-form-item>
</el-col>
</el-row>
<div class="invoice-form__section-title">邮寄信息</div>
<el-row :gutter="34">
</section-card>
<section-card title="邮寄信息">
<el-row :gutter="34">
<el-col :span="12">
<el-form-item label="收件人姓名" prop="receiverName">
<el-input v-model="invoiceForm.receiverName" maxlength="30" />
@@ -917,6 +916,7 @@
</el-form-item>
</el-col>
</el-row>
</section-card>
</el-form>
<template #footer>
<div class="invoice-dialog__footer-actions">
@@ -1105,9 +1105,8 @@
</el-table-column>
</el-table>
<div class="score-material-section">
<div class="score-material-section__head">
<div class="dialog-section-title">证明材料</div>
<section-card title="证明材料" class="score-material-card">
<template #extra>
<vehicle-attachment-upload
v-if="!readonly"
v-model="scoreAttachmentFiles"
@@ -1116,7 +1115,7 @@
:show-tip="false"
@success="handleScoreAttachmentUploadSuccess"
/>
</div>
</template>
<el-table :data="scoreAttachmentFiles" border class="score-material-table">
<el-table-column label="序号" type="index" width="90" align="center" />
<el-table-column label="文件名" prop="name" min-width="220" />
@@ -1144,7 +1143,7 @@
</template>
</el-table-column>
</el-table>
</div>
</section-card>
<template #footer>
<el-button type="primary" v-if="!readonly" @click="saveScoreDetail">保存</el-button>
@@ -1431,7 +1430,7 @@ export default {
editBtn: false,
selection: true,
dialogClickModal: false,
menuWidth: 320,
menuWidth: 260,
column: [
{
label: '客商编号',
@@ -3477,30 +3476,7 @@ export default {
}
}
.archive-form__group {
padding: 16px 20px;
margin-bottom: 16px;
background-color: #f0f2f5;
border-radius: 8px;
.dialog-section-title {
margin: 0 0 12px;
font-size: 14px;
font-weight: 500;
color: #303133;
}
// 内层白色卡片:字段区域白底,浮于灰色分组块之上
> .el-row {
margin: 0;
padding: 18px 16px 4px;
background-color: #fff;
border-radius: 6px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
}
.business-term-field,
business-term-field,
.archive-form__address {
display: flex;
align-items: center;
@@ -3532,24 +3508,6 @@ export default {
}
}
.section-title {
margin: 16px 0 12px;
font-size: 18px;
font-weight: 700;
color: #303133;
}
.section-head {
display: flex;
align-items: center;
justify-content: space-between;
margin: 18px 0 12px;
.section-title {
margin: 0;
}
}
.section-actions {
display: flex;
flex-wrap: wrap;
@@ -3687,13 +3645,7 @@ export default {
}
}
.customer-material-section {
margin-top: 18px;
}
.change-record-section {
margin-top: 18px;
}
// 客商材料、变更记录已改用全局 <section-card> 组件,无需额外 margin-top
.score-list-table,
.contact-table,
@@ -3720,25 +3672,6 @@ export default {
.invoice-form {
max-width: none;
&__section-title {
display: flex;
align-items: center;
justify-content: center;
gap: 16px;
margin: 8px 0 20px;
font-size: 16px;
font-weight: 700;
color: #303133;
&::before,
&::after {
flex: 1;
height: 1px;
content: '';
background-color: #dcdfe6;
}
}
}
.contact-form__address {
@@ -3849,20 +3782,7 @@ export default {
}
}
.score-material-section {
margin: 26px 36px 0;
}
.score-material-section__head {
display: flex;
align-items: center;
gap: 18px;
margin-bottom: 16px;
.dialog-section-title {
margin: 0;
}
.score-material-card {
:deep(.vehicle-attachment-upload) {
width: auto;
}

View File

@@ -107,7 +107,7 @@ export default {
viewBtn: false,
delBtn: false,
dialogWidth: 900,
menuWidth: 160,
menuWidth: 180,
dialogClickModal: false,
column: [
{

View File

@@ -101,7 +101,7 @@ export default {
viewBtn: false,
delBtn: false,
dialogWidth: 900,
menuWidth: 160,
menuWidth: 180,
dialogClickModal: false,
column: [
{

View File

@@ -104,7 +104,7 @@ export default {
viewBtn: false,
delBtn: false,
dialogWidth: 900,
menuWidth: 160,
menuWidth: 180,
dialogClickModal: false,
column: [
{

View File

@@ -116,7 +116,7 @@ export default {
addBtn: false,
viewBtn: false,
delBtn: false,
menuWidth: 160,
menuWidth: 180,
dialogWidth: 900,
dialogClickModal: false,
column: [

View File

@@ -107,7 +107,7 @@ export default {
viewBtn: false,
delBtn: false,
dialogWidth: 900,
menuWidth: 160,
menuWidth: 180,
dialogClickModal: false,
column: [
{