|
|
|
@ -1361,9 +1361,17 @@ |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!-- 检验标准维护新增 --> |
|
|
|
<el-dialog title="新增检验标准" @close="refreshQcSpecList" :close-on-click-modal="false" v-drag :visible.sync="qcSpecAddFlag" width="1100px"> |
|
|
|
<div style="font-size: 12px"> |
|
|
|
<el-form :inline="true" label-position="top" :model="qcSpecSearchData"> |
|
|
|
<el-dialog |
|
|
|
title="新增检验标准" |
|
|
|
@close="refreshQcSpecList" |
|
|
|
:close-on-click-modal="false" |
|
|
|
v-drag |
|
|
|
:visible.sync="qcSpecAddFlag" |
|
|
|
width="1100px" |
|
|
|
custom-class="config-dialog"> |
|
|
|
<!-- 查询区域 --> |
|
|
|
<div class="search-section"> |
|
|
|
<el-form :inline="true" size="small"> |
|
|
|
<el-form-item label="检验类型"> |
|
|
|
<el-select v-model="qcSpecSearchData.inspectionTypeNo" placeholder="请选择" style="width: 120px"> |
|
|
|
<el-option label="全部" value=""></el-option> |
|
|
|
@ -1376,45 +1384,89 @@ |
|
|
|
<el-form-item label="项目名称"> |
|
|
|
<el-input v-model="qcSpecSearchData.itemDesc" clearable style="width: 200px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label=" "> |
|
|
|
<el-button type="primary" @click="getQcSpecItemList()">查询</el-button> |
|
|
|
<el-form-item> |
|
|
|
<el-button type="primary" icon="el-icon-search" @click="getQcSpecItemList()" size="small">查询</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
<el-container style="margin-top: 0px;"> |
|
|
|
<el-main style="width: 640px; padding: 1px"> |
|
|
|
<span style="font-size: 12px">可选项目:</span> |
|
|
|
<el-table height="400px" :data="qcSpecItemList1" border ref="qcSpecItemTable1" @row-click="qcSpecItemClickRow1" @selection-change="qcSpecSelectionItem1" highlight-current-row style="width: 100%"> |
|
|
|
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> |
|
|
|
<el-table-column prop="inspectionTypeName" header-align="center" align="left" min-width="80" label="检验类型"></el-table-column> |
|
|
|
|
|
|
|
<div class="item-operation-content"> |
|
|
|
<!-- 可选项目 --> |
|
|
|
<div class="item-panel available-panel"> |
|
|
|
<div class="panel-header"> |
|
|
|
<i class="el-icon-s-unfold"></i> |
|
|
|
<span class="panel-title">可选项目</span> |
|
|
|
<span class="item-count">({{ qcSpecItemList1.length }})</span> |
|
|
|
</div> |
|
|
|
<el-table |
|
|
|
height="420px" |
|
|
|
:data="qcSpecItemList1" |
|
|
|
ref="qcSpecItemTable1" |
|
|
|
@row-click="qcSpecItemClickRow1" |
|
|
|
@selection-change="qcSpecSelectionItem1" |
|
|
|
highlight-current-row |
|
|
|
class="operation-table" |
|
|
|
:header-cell-style="{background: '#f5f7fa', color: '#606266', fontWeight: '500'}"> |
|
|
|
<el-table-column type="selection" header-align="center" align="center" width="45"></el-table-column> |
|
|
|
<el-table-column prop="inspectionTypeName" header-align="center" align="left" min-width="60" label="检验类型"></el-table-column> |
|
|
|
<el-table-column prop="itemNo" header-align="center" align="left" min-width="100" label="项目编码"></el-table-column> |
|
|
|
<el-table-column prop="itemDesc" header-align="center" align="left" min-width="120" label="项目名称"></el-table-column> |
|
|
|
<el-table-column prop="defaultValue" header-align="center" align="center" min-width="100" label="标准值"></el-table-column> |
|
|
|
<el-table-column prop="itemDesc" header-align="center" align="left" min-width="120" label="项目名称" show-overflow-tooltip></el-table-column> |
|
|
|
<el-table-column prop="defaultValue" header-align="center" align="center" min-width="80" label="标准值"></el-table-column> |
|
|
|
<el-table-column prop="maxValue" header-align="center" align="right" min-width="60" label="最大值"></el-table-column> |
|
|
|
<el-table-column prop="minValue" header-align="center" align="right" min-width="60" label="最小值"></el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-main> |
|
|
|
<el-main style="width: 111px;padding: 1px"> |
|
|
|
<div style="margin-top: 182px;margin-left: 18px"> |
|
|
|
<el-button type="primary" @click="addQcSpecItem()">添加>></el-button> |
|
|
|
</div> |
|
|
|
<div style="margin-top: 15px;margin-left: 18px"> |
|
|
|
<el-button type="primary" @click="deleteQcSpecItem()">删除<<</el-button> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 操作按钮 --> |
|
|
|
<div class="operation-buttons"> |
|
|
|
<el-tooltip content="添加选中项目" placement="left"> |
|
|
|
<el-button |
|
|
|
type="primary" |
|
|
|
icon="el-icon-d-arrow-right" |
|
|
|
circle |
|
|
|
@click="addQcSpecItem" |
|
|
|
:disabled="!qcSpecItemSelections1 || qcSpecItemSelections1.length === 0"> |
|
|
|
</el-button> |
|
|
|
</el-tooltip> |
|
|
|
<el-tooltip content="移除选中项目" placement="right"> |
|
|
|
<el-button |
|
|
|
type="danger" |
|
|
|
icon="el-icon-d-arrow-left" |
|
|
|
circle |
|
|
|
@click="deleteQcSpecItem" |
|
|
|
:disabled="!qcSpecItemSelections2 || qcSpecItemSelections2.length === 0"> |
|
|
|
</el-button> |
|
|
|
</el-tooltip> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 已有项目 --> |
|
|
|
<div class="item-panel selected-panel"> |
|
|
|
<div class="panel-header"> |
|
|
|
<i class="el-icon-s-check"></i> |
|
|
|
<span class="panel-title">已有项目</span> |
|
|
|
<span class="item-count">({{ qcSpecItemList2.length }})</span> |
|
|
|
</div> |
|
|
|
</el-main> |
|
|
|
<el-main style="width: 420px;padding: 1px"> |
|
|
|
<span style="font-size: 12px">已有项目:</span> |
|
|
|
<el-table height="400px" :data="qcSpecItemList2" border ref="qcSpecItemTable2" @row-click="qcSpecItemClickRow2" @selection-change="qcSpecSelectionItem2" highlight-current-row style="width: 100%"> |
|
|
|
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> |
|
|
|
<el-table |
|
|
|
height="420px" |
|
|
|
:data="qcSpecItemList2" |
|
|
|
ref="qcSpecItemTable2" |
|
|
|
@row-click="qcSpecItemClickRow2" |
|
|
|
@selection-change="qcSpecSelectionItem2" |
|
|
|
highlight-current-row |
|
|
|
class="operation-table" |
|
|
|
:header-cell-style="{background: '#f5f7fa', color: '#606266', fontWeight: '500'}"> |
|
|
|
<el-table-column type="selection" header-align="center" align="center" width="45"></el-table-column> |
|
|
|
<el-table-column prop="inspectionTypeName" header-align="center" align="left" min-width="80" label="检验类型"></el-table-column> |
|
|
|
<el-table-column prop="itemNo" header-align="center" align="left" min-width="100" label="项目编码"></el-table-column> |
|
|
|
<el-table-column prop="itemDesc" header-align="center" align="left" min-width="150" label="项目名称"></el-table-column> |
|
|
|
<el-table-column prop="itemDesc" header-align="center" align="left" min-width="150" label="项目名称" show-overflow-tooltip></el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-main> |
|
|
|
</el-container> |
|
|
|
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|
|
|
<el-button type="primary" @click="qcSpecAddFlag = false">关闭</el-button> |
|
|
|
</el-footer> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 底部按钮 --> |
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
|
<el-button @click="qcSpecAddFlag = false" size="small" style="width: 80px;">关闭</el-button> |
|
|
|
</div> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<QcSpecUpload ref="qcSpecUpload" @refreshQcSpecList="refreshQcSpecList()" v-drag></QcSpecUpload> |
|
|
|
@ -4465,4 +4517,198 @@ |
|
|
|
.part-edit-dialog .dialog-content::-webkit-scrollbar-thumb:hover { |
|
|
|
background: #909399; |
|
|
|
} |
|
|
|
|
|
|
|
/* ==================== 检验标准维护配置对话框样式 ==================== */ |
|
|
|
/deep/ .config-dialog { |
|
|
|
border-radius: 8px; |
|
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12); |
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .config-dialog .el-dialog__header { |
|
|
|
background: linear-gradient(135deg, #9ac3d0 20%, #b6c7dd 80%); |
|
|
|
padding: 20px 24px; |
|
|
|
border-radius: 8px 8px 0 0; |
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .config-dialog .el-dialog__title { |
|
|
|
color: #ffffff; |
|
|
|
font-size: 18px; |
|
|
|
font-weight: 600; |
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .config-dialog .el-dialog__headerbtn .el-dialog__close { |
|
|
|
color: #ffffff; |
|
|
|
font-size: 20px; |
|
|
|
font-weight: bold; |
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .config-dialog .el-dialog__headerbtn .el-dialog__close:hover { |
|
|
|
color: #f0f0f0; |
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .config-dialog .el-dialog__body { |
|
|
|
padding: 0; |
|
|
|
background: #f5f7fa; |
|
|
|
} |
|
|
|
|
|
|
|
/* 查询区域 */ |
|
|
|
.search-section { |
|
|
|
padding: 16px 24px; |
|
|
|
background: #ffffff; |
|
|
|
border-bottom: 1px solid #e8e8e8; |
|
|
|
} |
|
|
|
|
|
|
|
.search-section .el-form { |
|
|
|
margin-bottom: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.search-section .el-form-item { |
|
|
|
margin-bottom: 0; |
|
|
|
} |
|
|
|
|
|
|
|
/* 项目操作容器 */ |
|
|
|
.item-operation-content { |
|
|
|
display: flex; |
|
|
|
gap: 16px; |
|
|
|
align-items: stretch; |
|
|
|
padding: 16px; |
|
|
|
} |
|
|
|
|
|
|
|
/* 面板样式 */ |
|
|
|
.item-panel { |
|
|
|
flex: 1; |
|
|
|
background: #ffffff; |
|
|
|
border-radius: 6px; |
|
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); |
|
|
|
overflow: hidden; |
|
|
|
transition: all 0.3s ease; |
|
|
|
} |
|
|
|
|
|
|
|
.item-panel:hover { |
|
|
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); |
|
|
|
} |
|
|
|
|
|
|
|
.available-panel { |
|
|
|
flex: 1.5; |
|
|
|
} |
|
|
|
|
|
|
|
.selected-panel { |
|
|
|
flex: 1; |
|
|
|
} |
|
|
|
|
|
|
|
/* 面板头部 */ |
|
|
|
.panel-header { |
|
|
|
padding: 8px 16px; |
|
|
|
background: linear-gradient(135deg, #9ac3d0 20%, #b6c7dd 80%); |
|
|
|
border-bottom: 2px solid #9ac3d0; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
gap: 8px; |
|
|
|
} |
|
|
|
|
|
|
|
.panel-header i { |
|
|
|
font-size: 18px; |
|
|
|
color: #ffffff; |
|
|
|
} |
|
|
|
|
|
|
|
.panel-title { |
|
|
|
font-size: 15px; |
|
|
|
font-weight: 600; |
|
|
|
color: #ffffff; |
|
|
|
flex: 1; |
|
|
|
} |
|
|
|
|
|
|
|
.item-count { |
|
|
|
font-size: 13px; |
|
|
|
color: #ffffff; |
|
|
|
background: rgba(255, 255, 255, 0.2); |
|
|
|
padding: 2px 10px; |
|
|
|
border-radius: 12px; |
|
|
|
font-weight: 500; |
|
|
|
} |
|
|
|
|
|
|
|
/* 表格样式 */ |
|
|
|
.operation-table { |
|
|
|
border: none; |
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .operation-table .el-table__body-wrapper { |
|
|
|
max-height: 420px; |
|
|
|
overflow-y: auto; |
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .operation-table .el-table__row { |
|
|
|
cursor: pointer; |
|
|
|
transition: background-color 0.2s ease; |
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .operation-table .el-table__row:hover { |
|
|
|
background-color: #f0f9ff !important; |
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .operation-table .current-row > td { |
|
|
|
background-color: #e6f7ff !important; |
|
|
|
} |
|
|
|
|
|
|
|
/* 操作按钮 */ |
|
|
|
.operation-buttons { |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
justify-content: center; |
|
|
|
align-items: center; |
|
|
|
gap: 20px; |
|
|
|
padding: 0 8px; |
|
|
|
} |
|
|
|
|
|
|
|
.operation-buttons .el-button { |
|
|
|
width: 48px; |
|
|
|
height: 48px; |
|
|
|
font-size: 20px; |
|
|
|
transition: all 0.3s ease; |
|
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); |
|
|
|
} |
|
|
|
|
|
|
|
.operation-buttons .el-button:hover { |
|
|
|
transform: scale(1.1); |
|
|
|
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2); |
|
|
|
} |
|
|
|
|
|
|
|
.operation-buttons .el-button.is-disabled { |
|
|
|
opacity: 0.4; |
|
|
|
cursor: not-allowed; |
|
|
|
} |
|
|
|
|
|
|
|
.operation-buttons .el-button--primary { |
|
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
|
|
|
border: none; |
|
|
|
} |
|
|
|
|
|
|
|
.operation-buttons .el-button--danger { |
|
|
|
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); |
|
|
|
border: none; |
|
|
|
} |
|
|
|
|
|
|
|
/* 底部按钮 */ |
|
|
|
.dialog-footer { |
|
|
|
text-align: center; |
|
|
|
padding: 16px 0 16px 0; |
|
|
|
} |
|
|
|
|
|
|
|
.dialog-footer .el-button { |
|
|
|
min-width: 100px; |
|
|
|
font-weight: 500; |
|
|
|
} |
|
|
|
|
|
|
|
/* 响应式优化 */ |
|
|
|
@media (max-width: 1300px) { |
|
|
|
.item-operation-content { |
|
|
|
gap: 12px; |
|
|
|
} |
|
|
|
|
|
|
|
.operation-buttons .el-button { |
|
|
|
width: 42px; |
|
|
|
height: 42px; |
|
|
|
font-size: 18px; |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |