style(payment): 优化票据搜索条件交互和标签宽度统一

- 票据账册搜索改用 el-check-tag 实现快捷筛选,提升用户交互体验
- 查询按钮增加图标,重置按钮同样添加图标及文字说明
- 调整票据搜索表单标签宽度由160px统一为88px,优化界面一致性
- 全站多处搜索栏表单标签宽度由160px改为88px,涵盖多页面及组件
- 修复业务组件内el-autocomplete输入框宽度适配,避免placeholder被裁剪
- 业务页面货物名称表格列宽由150调整为240,改善显示效果
- 修正系统部门操作列宽度避免按钮竖排溢出问题
- 修改多个表单页和搜索板块样式,确保标签宽度和对齐一致
- 调整表单按钮等样式,提升整体页面美观性和操作友好度
This commit is contained in:
2026-08-26 11:59:49 +08:00
parent dc5a2235eb
commit 899a8c1c2b
29 changed files with 193 additions and 86 deletions
+54
View File
@@ -0,0 +1,54 @@
# 2026-08-26
## el-table 内嵌 el-autocomplete 撑满列宽(全局规则补充)
**问题**: `business/transport-plan/form?mode=add` 独立表单页"货物信息"表格,
「货物名称」列 placeholder `请输入货物名称` 只显示 `请输入货物名…`
**根因**: `element-ui.scss` 兜底规则只覆盖 `.el-input`,而 `<el-autocomplete>` 在 Element Plus 中
根节点是 `.el-autocomplete` 包装层,内部才是 `.el-input`,中间多了一层导致选择器不命中,
autocomplete 没有拉满 cell,placeholder 被内边距 / clear 图标挤压截断。
**修复**:
- `src/styles/element-ui.scss` 第 663 行兜底规则追加:
- `.cell > .el-autocomplete` `width:100%`
- `.cell > .el-autocomplete > .el-input` `width:100%`
- `.cell > .el-autocomplete .el-input__wrapper` `width:100%`
- `src/views/business/components/business-crud-page.vue:1520` 独立表单页
"货物名称"列 `min-width="150"``240`(与 1544 行「货物类型」cascader 列一致)。
其它内嵌 `<el-select>` / `<el-input>` / `<el-cascader>` 不受影响(选择器依旧命中),
3626 行(调度明细「货物名称」用的是 el-select)未做改动。
## 全站搜索栏 label 宽度统一 88px
**问题**: 主人反馈 `business/master-order` 搜索区 label 宽度 160px,要求全站统一改成 88px,
参考 `business/shipping-template`(已经是 88px)。
**调研**:
- `src/styles/element-ui.scss:133-136` 已有 `.avue-crud__search .el-form-item__label { min-width: 88px; }`,
全站 Avue 自动搜索栏视觉上就是 88px。
- shipping-template 走 `<business-crud-page>`(Avue),所以 label 是 88px。
- 但是项目里有 18 个文件,22 处直接手写 `<el-form ... label-width="160px">`,不走 `.avue-crud__search`,
视觉就是 160px。这些都是**搜索/筛选** `<el-form>`(顶层 query 或子表单),不是表单 dialog 内填表。
**改动**: 全部 22 处 `label-width="160px"``label-width="88px"`
涉及文件:
- business: master-order.vue, voucher-manage.vue(3 处), loading-manage.vue
- payment: invoice-application, invoice-receipt, receipt-flow, receipt-claim-record,
payment-application, components/bill-ledger-search, components/bill-payment-search
- settlement: settlement-adjustment, receivable-payable-detail, pre-settlement,
formal-settlement, transport-reconciliation, components/transport-reconciliation-editor,
components/formal-settlement-editor(3 处,都是子筛选)
- transit: risk-disposal, exception-disposal
**遗漏补丁**: `transit/exception-disposal.vue` 搜索区不走 Avue,而是在 scoped 样式里用
`:deep(.el-form-item__label) { min-width: 160px }` 写死,盖过了全局 88px。
已改为 `min-width: 88px`(文件第 443 行)。`risk-disposal.vue` 无此 scoped 覆盖,本来就是 88px。
**未做改动**: 表单 dialog 内填写项(`shipping-template-dialog` /
`transport-plan-dialog` / `waybill-manage-dialog` 等)走专门的 dialogCustomClass + labelWidth:100,
不受本规则影响。
其余残留 160px 均非搜索栏: project-apply.vue:2095(表单详情弹窗 label,故意留 6 汉字)、
customer-archive.vue:4980(按钮 min-width)、cargo-type.vue:604(选择器拼错不生效,设 50px)。
+5
View File
@@ -660,13 +660,18 @@
// 全站统一:el-table 表格列内嵌控件默认拉满 cell(不撞表头)
// 适用场景:可编辑表、弹窗内表格(如 pre-settlement-editor 结算明细调整、transport-reconciliation/formal-settlement/settlement-adjustment editor 等)。
// 排除 .el-form-item__content 上下文,与表单内 250px 规则互不冲突。
// 注意:el-autocomplete 根节点是 .el-autocomplete 包装层,内部才是 .el-input,
// 直接选 .el-input 会被包装层阻断导致 input 收缩、placeholder 被截断。
.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-autocomplete,
.el-table .el-table__body td.el-table__cell .cell > .el-autocomplete > .el-input,
.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-autocomplete .el-input__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%;
@@ -1517,7 +1517,7 @@
empty-text="暂无货物信息"
>
<el-table-column type="index" label="序号" width="70" align="center" fixed="left" />
<el-table-column label="货物名称" min-width="150" align="center">
<el-table-column label="货物名称" min-width="240" align="center">
<template #default="{ row }">
<el-autocomplete
v-model="row.cargoName"
+2 -2
View File
@@ -424,7 +424,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
v-model="row.ratioLimit"
@@ -706,7 +706,7 @@
<el-table :data="detailPaymentRatioRows" 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 }">{{
detailObjectUnitValue(row, 'ratioLimit', '%')
}}</template>
+1 -1
View File
@@ -1,7 +1,7 @@
<template>
<basic-container class="master-order-page">
<template v-if="mode === 'list'">
<el-form :model="query" class="master-search" label-width="160px" @submit.prevent>
<el-form :model="query" class="master-search" label-width="88px" @submit.prevent>
<el-row :gutter="16">
<el-col v-for="field in primaryFields" :key="field.prop" :span="6"
><el-form-item :label="field.label"
@@ -816,7 +816,6 @@ export default {
width: 180px !important;
}
.el-form-item--default .el-form-item__label {
min-height: 30px;
height: auto !important;
}
</style>
+3 -3
View File
@@ -1,7 +1,7 @@
<template>
<basic-container class="voucher-manage-page">
<section class="voucher-manage-page__search">
<el-form :model="query" label-position="right" label-width="160px">
<el-form :model="query" label-position="right" label-width="88px">
<div class="voucher-manage-page__search-grid">
<el-form-item label="凭证批次号"
><el-input v-model="query.voucherBatchNo" clearable placeholder="请输入"
@@ -290,7 +290,7 @@
<el-form
:model="batchQuery"
label-position="right"
label-width="160px"
label-width="88px"
class="voucher-manage-page__batch-search"
><el-row :gutter="20"
><el-col :span="12"
@@ -365,7 +365,7 @@
@opened="loadProgress"
>
<section-card class="voucher-manage-page__progress-search">
<el-form :model="progressQuery" label-position="right" label-width="160px"
<el-form :model="progressQuery" label-position="right" label-width="88px"
><div class="voucher-manage-page__search-grid">
<el-form-item label="凭证批次号"
><el-input
+6 -1
View File
@@ -48,6 +48,7 @@
<el-col :span="6">
<el-form-item label="本次使用" prop="usedAmount">
<el-input-number
class="used-amount-input"
v-model="form.usedAmount"
:disabled="readonly"
:min="0"
@@ -388,12 +389,16 @@ export default {
.bill-payment-form-page__remark :deep(.el-form-item__content) {
margin-left: 0 !important;
}
// 本次使用 input-number 默认文字居中,改为居左
.used-amount-input :deep(.el-input__inner) {
text-align: left;
}
.bill-payment-form-page__uploader {
margin-top: 12px;
}
.bill-payment-form-page__actions {
display: flex;
justify-content: flex-start;
justify-content: flex-end;
gap: 8px;
padding: 16px 0 8px;
}
@@ -1,6 +1,6 @@
<template>
<section class="bill-ledger-search">
<el-form :model="query" label-position="right" label-width="160px" @submit.prevent>
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="bill-ledger-search__grid">
<el-form-item label="票据编号">
<el-input v-model="query.billNo" clearable placeholder="请输入" />
@@ -43,25 +43,40 @@
</el-select>
</el-form-item>
</div>
<div class="bill-ledger-search__shortcut-row">
<span class="bill-ledger-search__shortcut-label">到期快捷筛选</span>
<el-segmented v-model="query.expiryShortcut" :options="shortcutOptions" />
</div>
<div class="bill-ledger-search__actions">
<el-button type="primary" :loading="loading" @click="$emit('search')">查询</el-button>
<el-button @click="$emit('reset')">重置</el-button>
<div class="bill-ledger-search__actions-left">
<el-check-tag
v-for="item in shortcutOptions"
:key="item.value"
:checked="query.expiryShortcut === item.value"
@change="handleShortcutChange(item.value)"
>
{{ item.label }}
</el-check-tag>
</div>
<div class="bill-ledger-search__actions-right">
<el-button type="primary" :loading="loading" @click="$emit('search')">
<el-icon><Search /></el-icon>
<span>搜索</span>
</el-button>
<el-button @click="$emit('reset')">
<el-icon><Delete /></el-icon>
<span>重置</span>
</el-button>
<el-tooltip :content="expanded ? '折叠' : '展开'" placement="top">
<el-button text @click="expanded = !expanded">
<el-icon><component :is="expanded ? ArrowUp : ArrowDown" /></el-icon>
<span>{{ expanded ? '折叠' : '展开' }}</span>
</el-button>
</el-tooltip>
</div>
</div>
</el-form>
</section>
</template>
<script>
import { ArrowDown, ArrowUp } from '@element-plus/icons-vue';
import { ArrowDown, ArrowUp, Delete, Search } from '@element-plus/icons-vue';
import { billTypeOptions, maturityStatusOptions } from '@/api/payment/billLedger';
export default {
@@ -76,6 +91,8 @@ export default {
return {
ArrowDown,
ArrowUp,
Delete,
Search,
expanded: false,
billTypeOptions,
maturityStatusOptions,
@@ -91,6 +108,12 @@ export default {
];
},
},
methods: {
handleShortcutChange(value) {
this.query.expiryShortcut = value;
this.$emit('search');
},
},
};
</script>
@@ -113,37 +136,36 @@ export default {
.bill-ledger-search :deep(.el-date-editor) {
width: 100%;
}
.bill-ledger-search__shortcut-row {
display: flex;
align-items: center;
min-height: 40px;
}
.bill-ledger-search__shortcut-label {
width: 160px;
padding-right: 12px;
color: var(--el-text-color-regular);
text-align: right;
white-space: nowrap;
}
.bill-ledger-search__shortcut-row :deep(.el-segmented) {
--el-segmented-item-selected-bg-color: #409eff;
--el-segmented-item-selected-color: #fff;
}
.bill-ledger-search__actions {
display: flex;
justify-content: flex-end;
align-items: center;
justify-content: space-between;
gap: 8px;
margin-bottom: 8px;
}
.bill-ledger-search__actions-left {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 8px;
}
.bill-ledger-search__actions-right {
display: flex;
align-items: center;
gap: 8px;
}
.bill-ledger-search__actions-left :deep(.el-check-tag) {
margin: 0;
white-space: nowrap;
}
.bill-ledger-search__actions-left :deep(.el-check-tag.is-checked),
.bill-ledger-search__actions-left :deep(.el-check-tag.is-checked:hover) {
background-color: #409eff;
color: #fff;
}
@media (max-width: 1200px) {
.bill-ledger-search__grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.bill-ledger-search__shortcut-row {
align-items: flex-start;
}
.bill-ledger-search__shortcut-row :deep(.el-segmented) {
max-width: calc(100% - 160px);
}
}
</style>
@@ -1,6 +1,6 @@
<template>
<section class="bill-payment-search">
<el-form :model="query" label-position="right" label-width="160px" @submit.prevent>
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="bill-payment-search__grid">
<el-form-item label="单据号">
<el-input v-model="query.paymentNo" clearable placeholder="请输入" />
+6 -2
View File
@@ -1,7 +1,7 @@
<template>
<basic-container class="invoice-page">
<section class="invoice-page__search">
<el-form :model="query" label-position="right" label-width="160px" @submit.prevent>
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="invoice-page__search-grid">
<el-form-item label="单据号">
<el-input v-model="query.applicationNo" clearable placeholder="请输入" />
@@ -12,7 +12,7 @@
<el-form-item label="所属组织">
<el-input v-model="query.deptName" clearable placeholder="请输入" />
</el-form-item>
<el-form-item label="金蝶单据状态">
<el-form-item class="invoice-kingdee-item" label="金蝶单据状态">
<el-select v-model="query.kingdeeStatus" clearable placeholder="请选择">
<el-option
v-for="item in kingdeeStatusOptions"
@@ -423,6 +423,10 @@ export default {
.invoice-page__search :deep(.el-select) {
width: 100%;
}
// 金蝶单据状态 label 6 个汉字去掉 EP 默认 line-height:32px避免与控件行高不对齐
.invoice-page__search .invoice-kingdee-item :deep(.el-form-item__label) {
line-height: normal;
}
.invoice-page__search-actions {
display: flex;
justify-content: flex-end;
+1 -1
View File
@@ -1,7 +1,7 @@
<template>
<basic-container class="receipt-page">
<section class="receipt-page__search">
<el-form :model="query" label-position="right" label-width="160px" @submit.prevent>
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="receipt-page__search-grid">
<el-form-item label="发票号码">
<el-input v-model="query.invoiceNo" clearable placeholder="请输入" />
+1 -1
View File
@@ -1,7 +1,7 @@
<template>
<basic-container class="payment-page">
<section class="payment-page__search">
<el-form :model="query" label-position="right" label-width="160px">
<el-form :model="query" label-position="right" label-width="88px">
<div class="payment-page__search-grid">
<el-form-item label="单据号"
><el-input v-model="query.paymentNo" clearable
+2 -2
View File
@@ -1,7 +1,7 @@
<template>
<basic-container class="claim-record-page">
<section-card class="claim-record-page__search">
<el-form :model="query" label-position="right" label-width="160px" @submit.prevent>
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="claim-record-page__search-grid">
<el-form-item label="认领通知单">
<el-input v-model="query.receiptNoticeNo" clearable placeholder="请输入" />
@@ -255,7 +255,7 @@ export default {
<style scoped lang="scss">
.claim-record-page__search {
padding: 12px 12px 4px;
//padding: 12px 12px 4px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.claim-record-page__search-grid {
+1 -1
View File
@@ -1,7 +1,7 @@
<template>
<basic-container class="receipt-flow-page">
<section class="receipt-flow-page__search">
<el-form :model="query" label-position="right" label-width="160px" @submit.prevent>
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="receipt-flow-page__search-grid">
<el-form-item label="认领通知单">
<el-input v-model="query.receiptNoticeNo" clearable placeholder="请输入" />
@@ -185,7 +185,7 @@
:model="detailQuery"
inline
label-position="right"
label-width="160px"
label-width="88px"
class="formal-editor__detail-filter"
@submit.prevent
>
@@ -360,7 +360,7 @@
:model="candidate.query"
inline
label-position="right"
label-width="160px"
label-width="88px"
class="formal-editor__candidate-search"
>
<el-form-item label="预结算单号"
@@ -419,7 +419,7 @@
:model="detailCandidate.query"
inline
label-position="right"
label-width="160px"
label-width="88px"
class="formal-editor__detail-search"
>
<el-form-item label="批次号"
@@ -239,7 +239,7 @@
</template>
<el-dialog v-model="formalDialog.visible" title="选择正式结算单" width="84%" append-to-body>
<el-form :model="formalDialog.query" inline label-position="right" label-width="160px">
<el-form :model="formalDialog.query" inline label-position="right" label-width="88px">
<el-form-item label="正式结算单号"
><el-input v-model="formalDialog.query.keyword" clearable
/></el-form-item>
+1 -1
View File
@@ -1,7 +1,7 @@
<template>
<basic-container class="formal-page">
<section class="formal-page__search">
<el-form :model="query" label-position="right" label-width="160px" @submit.prevent>
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="formal-page__search-grid">
<el-form-item v-for="field in visibleSearchFields" :key="field.prop" :label="field.label">
<el-date-picker
+1 -1
View File
@@ -1,7 +1,7 @@
<template>
<basic-container class="pre-settlement-page">
<section class="pre-settlement-page__search">
<el-form :model="query" label-position="right" label-width="160px" @submit.prevent>
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="pre-settlement-page__search-grid">
<template v-for="field in visibleSearchFields" :key="field.prop">
<el-form-item :label="field.label">
@@ -1,7 +1,7 @@
<template>
<basic-container class="settlement-detail-page">
<section class="settlement-detail-page__search">
<el-form :model="query" label-position="right" label-width="160px" @submit.prevent>
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="settlement-detail-page__search-grid">
<template v-for="field in visibleSearchFields" :key="field.prop">
<el-form-item :label="field.label">
@@ -1779,7 +1779,6 @@ export default {
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
:deep(.el-form-item__label) {
min-width: 160px;
white-space: nowrap;
}
}
@@ -1,7 +1,7 @@
<template>
<basic-container class="settlement-adjustment-page">
<section class="settlement-adjustment-page__search">
<el-form :model="query" label-position="right" label-width="160px" @submit.prevent>
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="settlement-adjustment-page__search-grid">
<el-form-item v-for="field in visibleSearchFields" :key="field.prop" :label="field.label">
<el-date-picker
@@ -1,7 +1,7 @@
<template>
<basic-container class="reconciliation-page">
<section class="reconciliation-page__search">
<el-form :model="query" label-position="right" label-width="160px" @submit.prevent>
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="reconciliation-page__search-grid">
<el-form-item v-for="field in visibleSearchFields" :key="field.prop" :label="field.label">
<el-select
+10 -4
View File
@@ -730,16 +730,22 @@ export default {
margin-top: 12px;
}
/* 操作列兜底:确保「查看 / 编辑 / 删除 / 新增子项」横向排列并保留 8px 间距,
避免退化成 block 导致操作项竖排错位。全局样式已统一处理,此处为双保险。 */
/* 操作列布局修正:
1) 全局样式对 .cell.avue-crud__menu 设了 width:auto !important + overflow:visible(为避免 tooltip 裁切),
会覆盖 Avue menuWidth 导致列宽塌陷、flex-wrap 把 4 个按钮压成竖排并溢出列边界。
2) 此处用更具体的选择器 + !important 恢复固定宽度,确保按钮在操作列内横向排列。 */
:deep(.avue-crud .el-table__body-wrapper .cell.avue-crud__menu) {
width: 320px !important;
overflow: hidden;
text-overflow: clip;
}
: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,
+16 -2
View File
@@ -1,7 +1,11 @@
<template>
<basic-container>
<div class="avue-crud">
<el-row :hidden="!search" style="padding: 6px 18px">
<el-card
:hidden="!search"
class="avue-crud__search param-page__search"
shadow="never"
>
<!-- 查询模块 -->
<el-form :inline="true" :model="query">
<el-form-item label="参数名:">
@@ -16,7 +20,7 @@
<el-button icon="el-icon-delete" @click="searchReset()"> </el-button>
</el-form-item>
</el-form>
</el-row>
</el-card>
<el-row>
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
@@ -414,3 +418,13 @@ export default {
},
};
</script>
<style lang="scss" scoped>
.param-page__search {
margin-bottom: 8px;
:deep(.el-card__body) {
padding: 12px 12px 4px;
}
}
</style>
+2 -2
View File
@@ -1,7 +1,7 @@
<template>
<basic-container class="exception-disposal-page">
<section class="exception-disposal-page__search">
<el-form :model="query" label-position="right" label-width="160px" @submit.prevent>
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="exception-disposal-page__search-grid">
<el-form-item v-for="field in visibleSearchFields" :key="field.prop" :label="field.label">
<el-date-picker
@@ -440,7 +440,7 @@ export default {
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
:deep(.el-form-item__label) {
min-width: 160px;
min-width: 88px;
white-space: nowrap;
}
}
+1 -1
View File
@@ -1,7 +1,7 @@
<template>
<basic-container class="risk-disposal-page">
<section class="risk-disposal-page__search">
<el-form :model="query" label-position="right" label-width="160px" @submit.prevent>
<el-form :model="query" label-position="right" label-width="88px" @submit.prevent>
<div class="risk-disposal-page__search-grid">
<el-form-item v-for="field in searchFields" :key="field.prop" :label="field.label">
<el-select
@@ -1388,7 +1388,6 @@ export default {
padding-right: 10px;
color: #606266;
font-size: 14px;
line-height: 32px;
}
:deep(.el-input),
+13 -13
View File
@@ -50,26 +50,26 @@ export default ({
__VUE_I18N_LEGACY_API__: true,
__INTLIFY_PROD_DEVTOOLS__: false,
},
server: {
port: 2888,
proxy: {
'/api': {
target: 'http://localhost',
//target: 'https://saber3.bladex.cn/api',
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, ''),
},
},
},
// server: {
// port: 2889,
// port: 2888,
// proxy: {
// '/api': {
// target: 'http://172.16.203.228:8000',
// target: 'http://localhost',
// //target: 'https://saber3.bladex.cn/api',
// changeOrigin: true,
// rewrite: path => path.replace(/^\/api/, ''),
// },
// },
// },
server: {
port: 2889,
proxy: {
'/api': {
target: 'http://172.16.203.228:8000',
changeOrigin: true,
},
},
},
resolve: {
alias: {
'~': resolve(__dirname, './'),