|
|
|
@ -23,64 +23,78 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 工单物料信息 --> |
|
|
|
<div class="work-order-list" v-if="workOrderNo && componentPartNo"> |
|
|
|
<div class="work-order-card"> |
|
|
|
<div class="card-title"> |
|
|
|
<span class="title-label">工单号:{{ workOrderNo }} 行号:{{itemNo}}</span> |
|
|
|
</div> |
|
|
|
<!-- 是否部分勾选框 --> |
|
|
|
<div class="partial-checkbox-container"> |
|
|
|
<el-checkbox v-model="isPartial" :disabled="scannedLabels.length > 0">是否部分领料</el-checkbox> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 物料描述单独一行 --> |
|
|
|
<div class="part-desc-row"> |
|
|
|
<span class="desc-text">物料编码:{{ componentPartNo }}</span> |
|
|
|
</div> |
|
|
|
<div class="part-desc-row"> |
|
|
|
<span class="desc-text">物料名称:{{ componentPartDesc }}</span> |
|
|
|
</div> |
|
|
|
<!-- 统一滚动容器 --> |
|
|
|
<div class="scrollable-content"> |
|
|
|
<!-- 工单物料信息 --> |
|
|
|
<div class="work-order-list" v-if="workOrderNo && componentPartNo"> |
|
|
|
<div class="work-order-card"> |
|
|
|
<div class="card-title"> |
|
|
|
<span class="title-label">工单号:{{ workOrderNo }} 行号:{{itemNo}}</span> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="card-details"> |
|
|
|
<div class="detail-item"> |
|
|
|
<div class="detail-label">需求数量</div> |
|
|
|
<div class="detail-value">{{ requiredQty }}</div> |
|
|
|
<!-- 物料描述单独一行 --> |
|
|
|
<div class="part-desc-row"> |
|
|
|
<span class="desc-text">物料编码:{{ componentPartNo }}</span> |
|
|
|
</div> |
|
|
|
<div class="detail-item"> |
|
|
|
<div class="detail-label">已发数量</div> |
|
|
|
<div class="detail-value">{{ issuedQty }}</div> |
|
|
|
<div class="part-desc-row"> |
|
|
|
<span class="desc-text">物料名称:{{ componentPartDesc }}</span> |
|
|
|
</div> |
|
|
|
<div class="detail-item"> |
|
|
|
<div class="detail-label">本次</div> |
|
|
|
<div class="detail-value">{{ totalScannedQty }}</div> |
|
|
|
|
|
|
|
<div class="card-details"> |
|
|
|
<div class="detail-item"> |
|
|
|
<div class="detail-label">需求数量</div> |
|
|
|
<div class="detail-value">{{ requiredQty }}</div> |
|
|
|
</div> |
|
|
|
<div class="detail-item"> |
|
|
|
<div class="detail-label">已发数量</div> |
|
|
|
<div class="detail-value">{{ issuedQty }}</div> |
|
|
|
</div> |
|
|
|
<div class="detail-item"> |
|
|
|
<div class="detail-label">本次</div> |
|
|
|
<div class="detail-value">{{ totalScannedQty }}</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="section-title"> |
|
|
|
<div class="title-left"> |
|
|
|
<i class="el-icon-circle-check"></i> |
|
|
|
<span>出库信息确认</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 标签列表 --> |
|
|
|
<div class="label-list"> |
|
|
|
<div class="list-header"> |
|
|
|
<div class="col-no">NO.</div> |
|
|
|
<div class="col-label">标签条码</div> |
|
|
|
<div class="col-batch">库位</div> |
|
|
|
<div class="col-batch">批次号</div> |
|
|
|
<div class="col-qty">数量</div> |
|
|
|
<div class="section-title"> |
|
|
|
<div class="title-left"> |
|
|
|
<i class="el-icon-circle-check"></i> |
|
|
|
<span>出库信息确认</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="list-body"> |
|
|
|
<div v-for="(label, index) in scannedLabels" :key="label.id" class="list-item"> |
|
|
|
<div class="col-no">{{ index+1 }}</div> |
|
|
|
<div class="col-label">{{ label.labelCode }}</div> |
|
|
|
<div class="col-batch">{{label.locationId}}</div> |
|
|
|
<div class="col-batch">{{ label.batchNo }}</div> |
|
|
|
<div class="col-qty">{{ label.quantity }}</div> |
|
|
|
<!-- 标签列表 --> |
|
|
|
<div class="label-list"> |
|
|
|
<div class="list-header"> |
|
|
|
<div class="col-no">NO.</div> |
|
|
|
<div class="col-label">标签条码</div> |
|
|
|
<div class="col-batch">库位</div> |
|
|
|
<div class="col-batch">批次号</div> |
|
|
|
<div v-if="isPartial" class="col-qty">剩余高</div> |
|
|
|
<div class="col-qty">数量</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div v-if="scannedLabels.length === 0" class="empty-labels"> |
|
|
|
<p>暂无扫描标签</p> |
|
|
|
<div class="list-body"> |
|
|
|
<div v-for="(label, index) in scannedLabels" :key="label.id" class="list-item" |
|
|
|
:class="{ 'clickable': isPartial }" @click="isPartial ? handleLabelClick(label, index) : null"> |
|
|
|
<div class="col-no">{{ index+1 }}</div> |
|
|
|
<div class="col-label">{{ label.labelCode }}</div> |
|
|
|
<div class="col-batch">{{label.locationId}}</div> |
|
|
|
<div class="col-batch">{{ label.batchNo }}</div> |
|
|
|
<div v-if="isPartial" class="col-qty">{{ label.height.toFixed(3) }}</div> |
|
|
|
<div class="col-qty"> |
|
|
|
<span class="quantity-display">{{ label.quantity }}</span> |
|
|
|
<i v-if="isPartial" class="el-icon-edit edit-icon"></i> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div v-if="scannedLabels.length === 0" class="empty-labels"> |
|
|
|
<p>暂无扫描标签</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -97,6 +111,47 @@ |
|
|
|
取消 |
|
|
|
</button> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 修改数量弹框 --> |
|
|
|
<div v-if="quantityDialogVisible" class="edit-overlay" @click.self="quantityDialogVisible = false"> |
|
|
|
<div class="edit-modal"> |
|
|
|
<div class="modal-header"> |
|
|
|
<span class="modal-title">修改数量</span> |
|
|
|
<i class="el-icon-close close-btn" @click="quantityDialogVisible = false"></i> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="modal-body"> |
|
|
|
<div class="form-group"> |
|
|
|
<label class="form-label">标签条码</label> |
|
|
|
<el-input v-model="currentEditLabel.labelCode" disabled class="form-input" /> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="form-group"> |
|
|
|
<label class="form-label">当前数量</label> |
|
|
|
<el-input v-model="currentEditLabel.quantity" disabled class="form-input" /> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="form-group"> |
|
|
|
<label class="form-label">剩余高度(mm) <span class="required">*</span></label> |
|
|
|
<el-input-number v-model="editHeight" :min="0.001" :precision="3" :step="0.001" class="form-input" |
|
|
|
style="width: 100%;" :controls="false"> |
|
|
|
</el-input-number> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="form-group"> |
|
|
|
<label class="form-label">修改数量 <span class="required">*</span></label> |
|
|
|
<el-input-number v-model="editQuantity" :min="0.0001" :precision="4" :step="0.0001" class="form-input" |
|
|
|
style="width: 100%;" :controls="false"> |
|
|
|
</el-input-number> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="modal-footer"> |
|
|
|
<button class="btn-cancel" @click="quantityDialogVisible = false">取消</button> |
|
|
|
<button class="btn-confirm" @click="confirmQuantityChange">确定</button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
</template> |
|
|
|
@ -113,6 +168,7 @@ export default { |
|
|
|
return { |
|
|
|
scanCode: '', |
|
|
|
isRemoveMode: false, |
|
|
|
isPartial: false, |
|
|
|
scannedLabels: [], |
|
|
|
workOrderNo: '', |
|
|
|
componentPartNo: '', |
|
|
|
@ -121,12 +177,19 @@ export default { |
|
|
|
issuedQty: 0, |
|
|
|
itemNo: '', |
|
|
|
loading: false, |
|
|
|
issueInfo:{} |
|
|
|
issueInfo: {}, |
|
|
|
quantityDialogVisible: false, |
|
|
|
currentEditLabel: {}, |
|
|
|
currentEditIndex: -1, |
|
|
|
editQuantity: 0, |
|
|
|
editHeight: 0, |
|
|
|
} |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
totalScannedQty() { |
|
|
|
return this.scannedLabels.reduce((sum, l) => sum + (l.quantity || 0), 0) |
|
|
|
const total = this.scannedLabels.reduce((sum, l) => sum + (l.quantity || 0), 0) |
|
|
|
// 处理浮点数精度问题,保留4位小数 |
|
|
|
return Math.round(total * 10000) / 10000 |
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
@ -163,7 +226,7 @@ export default { |
|
|
|
this.$message.error('标签物料编码与选择的材料不匹配') |
|
|
|
return |
|
|
|
} */ |
|
|
|
this.scannedLabels.push({ |
|
|
|
const newLabel = { |
|
|
|
id: Date.now(), |
|
|
|
labelCode, |
|
|
|
componentPartNo: data.labelInfo.partNo, |
|
|
|
@ -171,12 +234,22 @@ export default { |
|
|
|
batchNo: data.labelInfo.batchNo, |
|
|
|
warehouseId: data.labelInfo.warehouseId, |
|
|
|
locationId: data.labelInfo.locationId, |
|
|
|
height: data.labelInfo.height || 0, |
|
|
|
wdrNo: data.labelInfo.wdrNo, |
|
|
|
engChgLevel: data.labelInfo.engChgLevel, |
|
|
|
}) |
|
|
|
console.log(this.scannedLabels); |
|
|
|
|
|
|
|
} |
|
|
|
this.scannedLabels.push(newLabel) |
|
|
|
console.log(this.scannedLabels) |
|
|
|
|
|
|
|
this.$message.success('扫描成功') |
|
|
|
|
|
|
|
// 如果勾选了"是否部分",添加后直接弹出修改数量弹框 |
|
|
|
if (this.isPartial) { |
|
|
|
const newIndex = this.scannedLabels.length - 1 |
|
|
|
this.$nextTick(() => { |
|
|
|
this.handleLabelClick(newLabel, newIndex) |
|
|
|
}) |
|
|
|
} |
|
|
|
} else { |
|
|
|
this.$message.error(data.msg || '标签验证失败') |
|
|
|
} |
|
|
|
@ -223,7 +296,6 @@ export default { |
|
|
|
this.$message.warning('请先扫描材料标签') |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const params = { |
|
|
|
site: localStorage.getItem('site'), |
|
|
|
@ -231,8 +303,9 @@ export default { |
|
|
|
componentPartNo: this.componentPartNo, |
|
|
|
operatorName: localStorage.getItem('userName'), |
|
|
|
itemNo: this.itemNo, |
|
|
|
releaseNo:this.issueInfo.releaseNo, |
|
|
|
sequenceNo:this.issueInfo.sequenceNo, |
|
|
|
releaseNo: this.issueInfo.releaseNo, |
|
|
|
sequenceNo: this.issueInfo.sequenceNo, |
|
|
|
isPartial: this.isPartial, |
|
|
|
selectedMaterials: this.scannedLabels.map((l, i) => ({ |
|
|
|
labelCode: l.labelCode, |
|
|
|
issueQty: l.quantity, |
|
|
|
@ -241,6 +314,7 @@ export default { |
|
|
|
locationId: l.locationId, |
|
|
|
materialCode: l.materialCode, |
|
|
|
wdrNo: l.wdrNo, |
|
|
|
height: l.height, |
|
|
|
engChgLevel: l.engChgLevel, |
|
|
|
})), |
|
|
|
} |
|
|
|
@ -259,7 +333,8 @@ export default { |
|
|
|
}) |
|
|
|
.catch(() => { |
|
|
|
this.$message.error('发料失败') |
|
|
|
}).finally(()=>{ |
|
|
|
}) |
|
|
|
.finally(() => { |
|
|
|
this.loading = false |
|
|
|
}) |
|
|
|
}, |
|
|
|
@ -275,7 +350,7 @@ export default { |
|
|
|
sequenceNo: this.$route.query.sequenceNo, |
|
|
|
requiredQty: Number(this.$route.query.requiredQty || 0), |
|
|
|
issuedQty: Number(this.$route.query.issuedQty || 0), |
|
|
|
partDesc: this.$route.query.partDesc || '' |
|
|
|
partDesc: this.$route.query.partDesc || '', |
|
|
|
} |
|
|
|
|
|
|
|
/* if (!this.workOrderNo || !this.materialCode) { |
|
|
|
@ -289,6 +364,35 @@ export default { |
|
|
|
sessionStorage.setItem('directIssue_shouldRestore', 'true') |
|
|
|
this.$router.back() |
|
|
|
}, |
|
|
|
// 处理标签点击事件 |
|
|
|
handleLabelClick(label, index) { |
|
|
|
if (!this.isPartial) return |
|
|
|
this.currentEditLabel = { ...label } |
|
|
|
this.currentEditIndex = index |
|
|
|
this.editHeight = label.height |
|
|
|
this.editQuantity = label.quantity |
|
|
|
this.quantityDialogVisible = true |
|
|
|
}, |
|
|
|
// 确认修改数量 |
|
|
|
confirmQuantityChange() { |
|
|
|
if (this.editHeight < 0) { |
|
|
|
this.$message.warning('高度不能小于0') |
|
|
|
return |
|
|
|
} |
|
|
|
if (this.editQuantity <= 0) { |
|
|
|
this.$message.warning('数量必须大于0') |
|
|
|
return |
|
|
|
} |
|
|
|
if ( |
|
|
|
this.currentEditIndex >= 0 && |
|
|
|
this.currentEditIndex < this.scannedLabels.length |
|
|
|
) { |
|
|
|
this.scannedLabels[this.currentEditIndex].quantity = this.editQuantity |
|
|
|
this.scannedLabels[this.currentEditIndex].height = this.editHeight |
|
|
|
this.$message.success('数量修改成功') |
|
|
|
this.quantityDialogVisible = false |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
this.initFromRoute() |
|
|
|
@ -364,6 +468,17 @@ export default { |
|
|
|
.custom-switch { |
|
|
|
transform: scale(1.3); |
|
|
|
} |
|
|
|
.partial-checkbox-container { |
|
|
|
padding: 8px 16px; |
|
|
|
background: white; |
|
|
|
border-top: 1px solid #f0f0f0; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
} |
|
|
|
.partial-checkbox-container ::v-deep .el-checkbox__label { |
|
|
|
font-size: 14px; |
|
|
|
color: #333; |
|
|
|
} |
|
|
|
.switch-text { |
|
|
|
position: absolute; |
|
|
|
left: 25%; |
|
|
|
@ -410,9 +525,15 @@ export default { |
|
|
|
width: 60px; |
|
|
|
height: 28px; |
|
|
|
} |
|
|
|
/* 统一滚动容器 */ |
|
|
|
.scrollable-content { |
|
|
|
flex: 1; |
|
|
|
overflow-y: auto; |
|
|
|
min-height: 0; |
|
|
|
} |
|
|
|
|
|
|
|
/* 工单列表 */ |
|
|
|
.work-order-list { |
|
|
|
overflow-y: auto; |
|
|
|
padding: 12px 16px; |
|
|
|
} |
|
|
|
|
|
|
|
@ -420,7 +541,6 @@ export default { |
|
|
|
.work-order-card { |
|
|
|
background: white; |
|
|
|
border-radius: 8px; |
|
|
|
margin-bottom: 12px; |
|
|
|
padding: 16px; |
|
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); |
|
|
|
cursor: pointer; |
|
|
|
@ -467,7 +587,7 @@ export default { |
|
|
|
justify-content: space-between; |
|
|
|
padding: 6px 8px; |
|
|
|
background: white; |
|
|
|
margin: 0 16px; |
|
|
|
margin: 0 8px; |
|
|
|
margin-top: 4px; |
|
|
|
border-radius: 8px 8px 0 0; |
|
|
|
border-bottom: 2px solid #17b3a3; |
|
|
|
@ -522,7 +642,6 @@ export default { |
|
|
|
overflow: hidden; |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
max-height: calc(100vh - 320px); |
|
|
|
} |
|
|
|
.list-header { |
|
|
|
display: flex; |
|
|
|
@ -535,7 +654,6 @@ export default { |
|
|
|
flex-shrink: 0; |
|
|
|
} |
|
|
|
.list-body { |
|
|
|
overflow-y: auto; |
|
|
|
flex: 1; |
|
|
|
min-height: 0; |
|
|
|
} |
|
|
|
@ -547,12 +665,22 @@ export default { |
|
|
|
color: #333; |
|
|
|
align-items: flex-start; |
|
|
|
min-height: 40px; |
|
|
|
transition: background-color 0.2s; |
|
|
|
} |
|
|
|
.list-item:last-child { |
|
|
|
border-bottom: none; |
|
|
|
} |
|
|
|
.list-item.clickable { |
|
|
|
cursor: pointer; |
|
|
|
} |
|
|
|
.list-item.clickable:hover { |
|
|
|
background-color: #f5f5f5; |
|
|
|
} |
|
|
|
.list-item.clickable:active { |
|
|
|
background-color: #e8e8e8; |
|
|
|
} |
|
|
|
.col-no { |
|
|
|
width: 20px; |
|
|
|
width: 10px; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
.col-label { |
|
|
|
@ -567,6 +695,7 @@ export default { |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
.col-qty { |
|
|
|
flex: 0.6; |
|
|
|
width: 60px; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
@ -600,6 +729,165 @@ export default { |
|
|
|
.action-btn:active { |
|
|
|
transform: scale(0.98); |
|
|
|
} |
|
|
|
/* 编辑弹框样式 */ |
|
|
|
.edit-overlay { |
|
|
|
position: fixed; |
|
|
|
top: 0; |
|
|
|
left: 0; |
|
|
|
right: 0; |
|
|
|
bottom: 0; |
|
|
|
background: rgba(0, 0, 0, 0.5); |
|
|
|
z-index: 9999; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: center; |
|
|
|
padding: 20px; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal { |
|
|
|
background: white; |
|
|
|
border-radius: 12px; |
|
|
|
width: 100%; |
|
|
|
max-width: 400px; |
|
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); |
|
|
|
overflow: hidden; |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .modal-header { |
|
|
|
background: #17b3a3; |
|
|
|
color: white; |
|
|
|
padding: 12px 16px; |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
align-items: center; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .modal-title { |
|
|
|
font-size: 16px; |
|
|
|
font-weight: 500; |
|
|
|
margin: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .close-btn { |
|
|
|
font-size: 16px; |
|
|
|
cursor: pointer; |
|
|
|
color: white; |
|
|
|
transition: color 0.2s ease; |
|
|
|
padding: 4px; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: center; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .close-btn:hover { |
|
|
|
color: #e0e0e0; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .modal-body { |
|
|
|
padding: 20px; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .form-group { |
|
|
|
margin-bottom: 16px; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .form-group:last-child { |
|
|
|
margin-bottom: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .form-label { |
|
|
|
display: block; |
|
|
|
font-size: 14px; |
|
|
|
color: #333; |
|
|
|
margin-bottom: 6px; |
|
|
|
font-weight: 500; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .required { |
|
|
|
color: #ff4949; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .form-input { |
|
|
|
width: 100%; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .form-input ::v-deep .el-input__inner { |
|
|
|
height: 40px; |
|
|
|
border: 2px solid #dcdfe6; |
|
|
|
border-radius: 6px; |
|
|
|
font-size: 14px; |
|
|
|
padding: 0 12px; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .form-input ::v-deep .el-input__inner:focus { |
|
|
|
border-color: #17b3a3; |
|
|
|
outline: none; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .form-input ::v-deep .el-input__inner:disabled { |
|
|
|
background: #f5f7fa; |
|
|
|
color: #c0c4cc; |
|
|
|
border-color: #e4e7ed; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .form-input ::v-deep .el-input-number { |
|
|
|
width: 100%; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .form-input ::v-deep .el-input-number .el-input__inner { |
|
|
|
height: 40px; |
|
|
|
border: 2px solid #dcdfe6; |
|
|
|
border-radius: 6px; |
|
|
|
font-size: 14px; |
|
|
|
padding: 0 12px; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .form-input ::v-deep .el-input-number .el-input__inner:focus { |
|
|
|
border-color: #17b3a3; |
|
|
|
outline: none; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .modal-footer { |
|
|
|
padding: 16px 20px; |
|
|
|
display: flex; |
|
|
|
gap: 12px; |
|
|
|
justify-content: flex-end; |
|
|
|
border-top: 1px solid #f0f0f0; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .btn-cancel { |
|
|
|
padding: 10px 20px; |
|
|
|
border-radius: 6px; |
|
|
|
font-size: 14px; |
|
|
|
cursor: pointer; |
|
|
|
transition: all 0.2s; |
|
|
|
border: 1px solid #dcdfe6; |
|
|
|
background: white; |
|
|
|
color: #606266; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .btn-cancel:hover { |
|
|
|
background: #f5f7fa; |
|
|
|
border-color: #c0c4cc; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .btn-confirm { |
|
|
|
padding: 10px 20px; |
|
|
|
border-radius: 6px; |
|
|
|
font-size: 14px; |
|
|
|
cursor: pointer; |
|
|
|
transition: all 0.2s; |
|
|
|
border: 1px solid #17b3a3; |
|
|
|
background: #17b3a3; |
|
|
|
color: white; |
|
|
|
} |
|
|
|
|
|
|
|
.edit-modal .btn-confirm:hover { |
|
|
|
background: #13998c; |
|
|
|
border-color: #13998c; |
|
|
|
} |
|
|
|
@media (max-width: 360px) { |
|
|
|
.header-bar { |
|
|
|
padding: 8px 12px; |
|
|
|
@ -623,7 +911,7 @@ export default { |
|
|
|
min-width: 50px; |
|
|
|
} |
|
|
|
.label-list { |
|
|
|
margin: 0 12px 8px; |
|
|
|
margin: 0 8px 8px; |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |
|
|
|
|