Browse Source

2025-11-07

优化
master
fengyuan_yang 2 months ago
parent
commit
2d14daba65
  1. 682
      src/views/modules/base/maintainProductRouting.vue

682
src/views/modules/base/maintainProductRouting.vue

@ -1,93 +1,194 @@
<template> <template>
<div class="mod-config"> <div class="mod-config">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item>
<span slot="label" style="" @click="getSearchModal()"><a herf="#">{{ labels.partNo }}</a></span>
<el-input v-model="mainData.partNo" readonly style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="labels.spec">
<el-input v-model="mainData.spec" readonly style="width: 274px"></el-input>
</el-form-item>
<el-form-item :label="labels.status">
<el-input v-model="mainData.status" readonly style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="labels.site">
<el-input v-model="mainData.site" readonly style="width: 130px"></el-input>
<el-button @click="getPartDetail()" type="primary" style="margin-left: 2px;margin-top: 0px">
{{ buttons.getPartDetail }}
</el-button>
<el-button @click="changeStatus()" type="primary" style="margin-left: 2px;margin-top: 0px">
{{ buttons.changeStatus }}
<!-- 条件查询 -->
<el-card :class="['search-card', { 'collapsed': !searchExpanded }]" shadow="hover">
<div slot="header" class="search-header">
<div class="header-left">
<i class="el-icon-search"></i>
<span class="header-title">工艺路线查询</span>
</div>
<div class="header-right">
<el-button
type="text"
size="small"
@click="toggleSearchExpand"
class="collapse-btn">
<i :class="searchExpanded ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"></i>
{{ searchExpanded ? '收起' : '展开' }}
</el-button> </el-button>
</div>
</div>
<el-form
:model="searchForm"
label-width="110px"
class="search-form"
@keyup.enter.native="searchMaterialList">
<!-- 所有查询条件 - 可展开/收起 -->
<template v-if="searchExpanded">
<!-- 第一行 -->
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="物料编码">
<el-input
v-model="searchForm.partNo"
placeholder="请输入物料编码"
clearable
prefix-icon="el-icon-goods">
</el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item :label="labels.routingType">
<el-input v-model="mainData.routingType" readonly style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="labels.revNo">
<el-input v-model="mainData.revNo" readonly style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="labels.phaseInDate">
<el-input v-model="mainData.phaseInDate" readonly style="width: 130px"></el-input>
</el-col>
<el-col :span="6">
<el-form-item label="物料名称">
<el-input
v-model="searchForm.partName"
placeholder="请输入物料名称"
clearable
prefix-icon="el-icon-document">
</el-input>
</el-form-item> </el-form-item>
<el-form-item :label="labels.phaseOutDate">
<el-input v-model="mainData.phaseOutDate" readonly style="width: 130px"></el-input>
</el-col>
<el-col :span="6">
<el-form-item label="状态">
<el-select v-model="searchForm.status" placeholder="请选择状态" clearable style="width: 100%">
<el-option label="试验" value="试验"></el-option>
<el-option label="投产" value="投产"></el-option>
<el-option label="停用" value="停用"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item :label="labels.umid">
<el-input v-model="mainData.umid" readonly style="width: 130px"></el-input>
<el-button @click="tongBuOrder()" type="primary" style="margin-left: 2px;margin-top: 0px">
{{ buttons.tongBuOrder }}
</el-button>
</el-col>
<el-col :span="6">
<el-form-item label="工艺路线类型">
<el-input
v-model="searchForm.routingType"
placeholder="请输入工艺路线类型"
clearable>
</el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item :label="labels.remark">
<el-input v-model="mainData.remark" readonly style="width: 417px"></el-input>
<!-- <el-checkbox style="margin-left: 20px" disabled v-model="mainData.defaultflag">默认</el-checkbox>-->
<!-- <el-checkbox style="margin-left: 80px" disabled v-model="mainData.repairFlag">修复版本</el-checkbox>-->
</el-col>
</el-row>
<!-- 第二行 -->
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="版本号">
<el-input
v-model="searchForm.revNo"
placeholder="请输入版本号"
clearable>
</el-input>
</el-form-item> </el-form-item>
<el-form-item :label="labels.defaultflag">
<el-checkbox style="margin-left: 0px" disabled v-model="mainData.defaultflag"></el-checkbox>
</el-col>
<el-col :span="6">
<el-form-item label="计量单位">
<el-input
v-model="searchForm.umid"
placeholder="请输入计量单位"
clearable>
</el-input>
</el-form-item> </el-form-item>
<el-form-item :label="labels.repairFlag" style="margin-left: 20px">
<el-checkbox style="margin-left: 0px" disabled v-model="mainData.repairFlag"></el-checkbox>
<el-button @click="setDefault()" type="primary" style="margin-left: 58px;margin-top: 0px">
{{ buttons.setDefault }}
</el-button>
<el-button @click="copyRouting()" type="primary" style="margin-left: 2px;margin-top: 0px">
{{ buttons.copyRouting }}
</el-button>
<el-button @click="addRoutingHeaderModel()" :disabled="authAdd" type="primary"
style="margin-left: 2px;margin-top: 0px">{{ buttons.addPart }}
</el-button>
</el-col>
<el-col :span="6">
<el-form-item label="启用日期">
<el-date-picker
v-model="searchForm.phaseInDate"
type="date"
placeholder="选择启用日期"
value-format="yyyy-MM-dd"
style="width: 100%">
</el-date-picker>
</el-form-item> </el-form-item>
</el-col>
</el-row>
</template>
<!-- 操作按钮区域 -->
<div class="search-actions">
<div class="action-left">
<el-button type="primary" @click="searchMaterialList" icon="el-icon-search">查询</el-button>
<el-button @click="resetSearch" icon="el-icon-refresh-left">重置</el-button>
<el-button type="primary" @click="addRoutingHeaderModel()" :disabled="authAdd" icon="el-icon-plus">新增物料</el-button>
</div>
</div>
</el-form> </el-form>
<el-tabs v-model="activeName">
<el-tab-pane :label="labels.detail" name="first">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-button @click="addRoutingDetail()" type="primary" :disabled="authAdd"
style="margin-left: 2px;margin-top: 0px">{{ buttons.add }}
</el-button>
<el-button @click="editRoutingDetail()" type="primary" :disabled="authEdit"
style="margin-left: 2px;margin-top: 0px">{{ buttons.update }}
</el-button>
<el-button @click="copyItemRouting()" type="primary" :disabled="authEdit"
style="margin-left: 2px;margin-top: 0px">{{ '复制' }}
</el-button>
<el-button @click="deleteRoutingDetail()" type="primary" :disabled="authDelete"
style="margin-left: 2px;margin-top: 0px">{{ buttons.delete }}
</el-button>
<el-button @click="jumpWorkCenter()" type="primary" :disabled="!jumpFlag"
style="margin-left: 2px;margin-top: 0px">{{ buttons.workCenter }}
</el-button>
<el-button @click="getResourceModel()" type="primary" style="margin-left: 2px;margin-top: 0px">
{{ buttons.availableResource }}
</el-button>
</el-form>
</el-card>
<!-- 展示列表 -->
<el-table <el-table
:height="height" :height="height"
:data="materialList"
border
v-loading="materialListLoading"
@row-click="handleMaterialRowClick"
@current-change="changeCurrentRow"
style="width: 100%;">
<el-table-column prop="partNo" label="物料编码" width="120" align="center"></el-table-column>
<el-table-column prop="spec" label="物料名称/规格" width="200" align="left" show-overflow-tooltip></el-table-column>
<el-table-column prop="status" label="状态" width="80" align="center"></el-table-column>
<el-table-column prop="routingType" label="工艺路线类型" width="120" align="center"></el-table-column>
<el-table-column prop="revNo" label="版本号" width="100" align="center"></el-table-column>
<el-table-column prop="phaseInDate" label="启用日期" width="120" align="center"></el-table-column>
<el-table-column prop="phaseOutDate" label="失效日期" width="120" align="center"></el-table-column>
<el-table-column prop="umid" label="计量单位" width="100" align="center"></el-table-column>
<el-table-column label="默认" width="80" align="center">
<template slot-scope="scope">
<span>{{ scope.row.defaultflag === 'Y' ? '✓' : '×' }}</span>
</template>
</el-table-column>
<el-table-column label="修复版本" width="100" align="center">
<template slot-scope="scope">
<span>{{ scope.row.repairFlag === 'Y' ? '✓' : '×' }}</span>
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" min-width="150" align="left" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" width="160" align="center" fixed="right">
<template slot-scope="scope">
<el-link style="cursor: pointer" @click.stop="editRoutingHeaderModel(scope.row)">编辑</el-link>
<el-link style="cursor: pointer" @click.stop="deleteRoutingHeaderData(scope.row)">删除</el-link>
<el-dropdown @command="(command) => handleMoreCommand(command, scope.row)" trigger="click">
<el-link style="cursor: pointer">
更多 <i class="el-icon-arrow-down el-icon--right"></i>
</el-link>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="detail">获取详情</el-dropdown-item>
<el-dropdown-item command="changeStatus">修改状态</el-dropdown-item>
<el-dropdown-item command="syncOrder">同步工单</el-dropdown-item>
<el-dropdown-item divided command="setDefault">设置默认</el-dropdown-item>
<el-dropdown-item command="copyRouting">复制路线</el-dropdown-item>
<el-dropdown-item command="addVersion">新增版本</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<!-- 分页栏 -->
<el-pagination
style="margin-top: 0px"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pageIndex"
:page-sizes="[20, 50, 100, 200, 500]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 页签 -->
<el-tabs v-model="activeName" style="width: 100%" :style="{height: secondHeight + 'px'}" type="border-card" @tab-click="handleTabClick" class="customer-tab">
<el-tab-pane label="明细" name="first">
<el-form label-position="top" style="margin-left: 2px;">
<el-button @click="addRoutingDetail()" type="primary" :disabled="authAdd" icon="el-icon-plus">新增</el-button>
<el-button @click="editRoutingDetail()" type="primary" :disabled="authEdit" icon="el-icon-edit">修改</el-button>
<el-button @click="copyItemRouting()" type="primary" :disabled="authEdit" icon="el-icon-document-copy">复制</el-button>
<el-button @click="deleteRoutingDetail()" type="primary" :disabled="authDelete" icon="el-icon-delete">删除</el-button>
<el-button @click="jumpWorkCenter()" type="primary" :disabled="!jumpFlag">加工中心</el-button>
<el-button @click="getResourceModel()" type="primary">可用机台</el-button>
</el-form>
<el-table
:data="dataList2" :data="dataList2"
:height="secondHeight - 68"
border border
@row-click="clickData" @row-click="clickData"
highlight-current-row highlight-current-row
@ -111,24 +212,16 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="labels.toolDetail" name="second">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-button @click="addRoutingTool()" type="primary" :disabled="authAdd"
style="margin-left: 2px;margin-top: 0px">{{ buttons.add }}
</el-button>
<el-button @click="editRoutingTool()" type="primary" :disabled="authEdit"
style="margin-left: 2px;margin-top: 0px">{{ buttons.update }}
</el-button>
<el-button @click="deleteRoutingTool()" type="primary" :disabled="authDelete"
style="margin-left: 2px;margin-top: 0px">{{ buttons.delete }}
</el-button>
<el-button @click="jumpToolInfo()" type="primary" :disabled="!jumpFlag2"
style="margin-left: 2px;margin-top: 0px">{{ buttons.toolDetail }}
</el-button>
<el-tab-pane label="工具清单" name="second">
<el-form label-position="top" style="margin-left: 2px;">
<el-button @click="addRoutingTool()" type="primary" :disabled="authAdd" icon="el-icon-plus">新增</el-button>
<el-button @click="editRoutingTool()" type="primary" :disabled="authEdit" icon="el-icon-edit">修改</el-button>
<el-button @click="deleteRoutingTool()" type="primary" :disabled="authDelete" icon="el-icon-delete">删除</el-button>
<el-button @click="jumpToolInfo()" type="primary" :disabled="!jumpFlag2">工具信息</el-button>
</el-form> </el-form>
<el-table <el-table
:height="height"
:data="dataList3" :data="dataList3"
:height="secondHeight - 68"
border border
@row-click="clickData2" @row-click="clickData2"
highlight-current-row highlight-current-row
@ -153,12 +246,13 @@
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<el-dialog :title="labels.dataList" :close-on-click-modal="false" v-drag :visible.sync="modelFlag" width="680px">
<!-- 物料选择对话框已不再需要但保留作为备用 -->
<el-dialog :title="labels.dataList" :close-on-click-modal="false" v-drag :visible.sync="modelFlag" width="680px" style="display: none;">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;"> <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
<el-form-item :label="labels.partNo"> <el-form-item :label="labels.partNo">
<el-input v-model="searchPartNo" style="width: 130px"></el-input> <el-input v-model="searchPartNo" style="width: 130px"></el-input>
<el-button @click="searchRoutingWithPartNo()" type="primary">{{ buttons.search }}</el-button> <el-button @click="searchRoutingWithPartNo()" type="primary">{{ buttons.search }}</el-button>
<!-- <el-button @click="addRoutingHeaderModel()" :disabled="authAdd" type="primary">{{ buttons.add }}</el-button>-->
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table
@ -614,6 +708,25 @@ export default {
}, },
data() { data() {
return { return {
//
searchForm: {
partNo: '',
partName: '',
status: '',
routingType: '',
revNo: '',
umid: '',
phaseInDate: ''
},
searchExpanded: true,
materialList: [],
materialListLoading: false,
currentMaterial: null,
pageIndex: 1,
pageSize: 20,
totalPage: 0,
allMaterialData: [],
secondHeight: 200,
labels: { labels: {
site: '工厂编号:', site: '工厂编号:',
partNo: '物料编码:', partNo: '物料编码:',
@ -1635,10 +1748,177 @@ export default {
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.height = window.innerHeight - 310;
this.height = window.innerHeight / 2 - 100;
/*第二个表格高度的动态调整*/
this.secondHeight = window.innerHeight - this.height - 170;
}) })
//
this.searchMaterialList();
}, },
methods: { methods: {
// ==================== ====================
// /
toggleSearchExpand() {
this.searchExpanded = !this.searchExpanded;
},
//
changeCurrentRow(currentRow) {
this.currentMaterial = currentRow;
},
//
searchMaterialList() {
this.materialListLoading = true;
let params = {
partNo: this.searchForm.partNo,
spec: this.searchForm.partName,
status: this.searchForm.status,
routingType: this.searchForm.routingType,
revNo: this.searchForm.revNo,
umid: this.searchForm.umid,
phaseInDate: this.searchForm.phaseInDate,
site: this.$store.state.user.site
};
searchRoutingWithPartNo(params).then(({data}) => {
this.materialListLoading = false;
if (data && data.rows) {
//
const allData = data.rows;
this.totalPage = allData.length;
//
const startIndex = (this.pageIndex - 1) * this.pageSize;
const endIndex = startIndex + this.pageSize;
this.materialList = allData.slice(startIndex, endIndex);
// 使
this.allMaterialData = allData;
} else {
this.materialList = [];
this.totalPage = 0;
this.allMaterialData = [];
}
}).catch((error) => {
this.materialListLoading = false;
this.materialList = [];
this.totalPage = 0;
this.allMaterialData = [];
console.error('查询物料列表失败:', error);
});
},
//
resetSearch() {
this.searchForm = {
partNo: '',
partName: '',
status: '',
routingType: '',
revNo: '',
umid: '',
phaseInDate: ''
};
this.pageIndex = 1;
this.searchMaterialList();
},
//
handleMaterialRowClick(row) {
this.currentMaterial = JSON.parse(JSON.stringify(row));
this.mainData = {
partNo: row.partNo,
spec: row.spec,
status: row.status,
site: row.site,
routingType: row.routingType,
revNo: row.revNo,
phaseInDate: row.phaseInDate,
phaseOutDate: row.phaseOutDate,
umid: row.umid,
remark: row.remark,
defaultflag: row.defaultflag === 'Y',
repairFlag: row.repairFlag === 'Y',
};
//
let data1 = {
site: row.site,
partNo: row.partNo,
revNo: row.revNo,
};
searchRoutingDetailData(data1).then(({data}) => {
this.dataList2 = data.rows || [];
});
//
searchRoutingToolData(data1).then(({data}) => {
this.dataList3 = data.rows || [];
});
},
//
handleMoreCommand(command, row) {
this.currentMaterial = JSON.parse(JSON.stringify(row));
this.handleMaterialRowClick(row);
switch(command) {
case 'detail':
this.getPartDetail();
break;
case 'changeStatus':
this.changeStatus();
break;
case 'syncOrder':
this.tongBuOrder();
break;
case 'setDefault':
this.setDefault();
break;
case 'copyRouting':
this.copyRouting();
break;
case 'addVersion':
// addRoutingHeaderModel
this.addRoutingHeaderModel();
break;
}
},
//
handleTabClick(tab) {
//
console.log('Tab clicked:', tab.name);
},
//
handleSizeChange(val) {
this.pageSize = val;
this.pageIndex = 1;
// 使
if (this.allMaterialData && this.allMaterialData.length > 0) {
const startIndex = (this.pageIndex - 1) * this.pageSize;
const endIndex = startIndex + this.pageSize;
this.materialList = this.allMaterialData.slice(startIndex, endIndex);
} else {
this.searchMaterialList();
}
},
handleCurrentChange(val) {
this.pageIndex = val;
// 使
if (this.allMaterialData && this.allMaterialData.length > 0) {
const startIndex = (this.pageIndex - 1) * this.pageSize;
const endIndex = startIndex + this.pageSize;
this.materialList = this.allMaterialData.slice(startIndex, endIndex);
} else {
this.searchMaterialList();
}
},
// ==================== ====================
// //
copyItemRouting() { copyItemRouting() {
if (!this.currentRow) { if (!this.currentRow) {
@ -1751,11 +2031,19 @@ export default {
saveRoutingHeaderData(this.routingHeaderData).then(({data}) => { saveRoutingHeaderData(this.routingHeaderData).then(({data}) => {
if (data && data.code == 200) { if (data && data.code == 200) {
this.routingHeaderModelFlag = false; this.routingHeaderModelFlag = false;
//
this.searchPartNo = this.routingHeaderData.partNo;
this.tableHanddle(this.routingHeaderData);
//this.searchRoutingWithPartNo(); 2022-12-26
this.$message.success(this.labels.doYes) this.$message.success(this.labels.doYes)
//
this.searchMaterialList();
// /
this.$nextTick(() => {
let targetRow = this.materialList.find(item =>
item.partNo === this.routingHeaderData.partNo &&
item.revNo === this.routingHeaderData.revNo
);
if (targetRow) {
this.handleMaterialRowClick(targetRow);
}
});
} else { } else {
this.$alert(data.msg, this.labels.error, { this.$alert(data.msg, this.labels.error, {
confirmButtonText: this.labels.true confirmButtonText: this.labels.true
@ -1776,7 +2064,13 @@ export default {
} }
deleteRoutingHeaderData(inData).then(({data}) => { deleteRoutingHeaderData(inData).then(({data}) => {
if (data && data.code == 200) { if (data && data.code == 200) {
this.searchRoutingWithPartNo();
this.$message.success(this.labels.doYes)
//
this.searchMaterialList();
//
this.dataList2 = [];
this.dataList3 = [];
this.currentMaterial = null;
} else { } else {
this.$alert(data.msg, this.labels.error, { this.$alert(data.msg, this.labels.error, {
confirmButtonText: this.labels.true confirmButtonText: this.labels.true
@ -2727,5 +3021,195 @@ export default {
</script> </script>
<style scoped> <style scoped>
/* ============ 查询卡片样式 (完全参考interfaceLog) ============ */
.search-card {
margin-bottom: 10px;
border-radius: 4px;
}
.search-card /deep/ .el-card__header {
background: #f5f7fa;
border-bottom: 1px solid #EBEEF5;
padding: 12px 20px;
}
.search-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.header-left {
display: flex;
align-items: center;
font-size: 14px;
color: #303133;
font-weight: 500;
}
.header-left i {
margin-right: 8px;
font-size: 16px;
color: #409EFF;
}
.header-title {
font-weight: 500;
}
.header-right {
display: flex;
align-items: center;
}
.collapse-btn {
color: #606266;
padding: 0;
font-size: 13px;
}
.collapse-btn:hover {
color: #409EFF;
transform: translateY(-1px);
}
.collapse-btn i {
margin-right: 4px;
transition: transform 0.3s ease;
}
/* 搜索表单样式 */
.search-form {
padding: 10px 0;
min-height: 0;
}
/* 卡片主体样式 */
.search-card /deep/ .el-card__body {
padding: 10px;
transition: all 0.3s ease;
}
/* 收起时的样式 */
.search-card.collapsed /deep/ .el-card__body {
padding: 10px 20px;
}
.search-form /deep/ .el-form-item {
margin-bottom: 18px;
}
.search-form /deep/ .el-form-item__label {
font-weight: 500;
color: #606266;
padding-bottom: 6px;
}
.search-form /deep/ .el-input__inner,
.search-form /deep/ .el-textarea__inner {
border-radius: 6px;
border: 1px solid #DCDFE6;
transition: all 0.3s ease;
}
.search-form /deep/ .el-input__inner:focus,
.search-form /deep/ .el-textarea__inner:focus {
border-color: #667eea;
box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.1);
}
.search-form /deep/ .el-select {
width: 100%;
}
.search-form /deep/ .el-date-editor.el-input {
width: 100%;
}
/* 操作按钮区域 */
.search-actions {
display: flex;
justify-content: space-between;
align-items: center;
padding: 8px 0 2px 0;
}
/* 展开时显示上边框 */
.search-card:not(.collapsed) .search-actions {
border-top: 1px solid #f0f0f0;
margin-top: 8px;
}
/* 收起时不显示上边框和上边距 */
.search-card.collapsed .search-actions {
border-top: none;
margin-top: 0;
padding-top: 0;
}
.action-left,
.action-right {
display: flex;
gap: 8px;
}
.search-actions .el-button {
border-radius: 4px;
padding: 5px 10px;
font-size: 12px;
font-weight: 500;
transition: all 0.3s ease;
}
.search-actions .el-button:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.search-actions .el-button--primary {
background: #60aeff;
border-color: #60aeff;
}
.search-actions .el-button--primary:hover {
background: #7dbdff;
border-color: #7dbdff;
}
/* ============ 表格样式 (参考outboundNotification) ============ */
.el-table /deep/ .cell {
height: auto;
line-height: 1.5;
}
/* ============ 页签样式 (参考outboundNotification) ============ */
/deep/ .customer-tab .el-tabs__content {
padding: 5px !important;
}
/* ============ 分页器样式 ============ */
.el-pagination {
margin-top: 10px;
text-align: right;
}
/* ============ 响应式布局 ============ */
@media (max-width: 1200px) {
.search-actions {
flex-direction: column;
gap: 10px;
}
.action-left,
.action-right {
width: 100%;
justify-content: center;
}
}
@media screen and (max-width: 1366px) {
.search-form /deep/ .el-col-6 {
width: 50%;
}
}
</style> </style>
Loading…
Cancel
Save