@@ -70,7 +70,7 @@
<!-- 第二个位置 : 显示待合卷列表 -- >
< template v-else-if = "!readonly" >
< div class = "pending-list-title" > 待合卷钢卷列表 < / div >
< div class = "pending-coil-list" v-if = "renderPendingMergeList.length > 0" >
< div class = "pending-coil-list" >
< div class = "pending-coil-item" v-for = "pending in renderPendingMergeList" :key="pending.actionId"
@click ="selectPendingCoil(pending, index)" >
< div class = "pending-coil-no" > { { pending . currentCoilNo } } < / div >
@@ -79,10 +79,11 @@
< span class = "pending-value" > { { formatTime ( pending . updateTime ) } } < / span >
< / div >
< / div >
< / div >
< div v-else class = "empty-tip " >
< i class = "el-icon-info" > < / i >
暂无其他待合卷钢卷
< coil-selector @select ="selectCoil($event, index)" >
< div class = "pending-coil-item " >
选择其他钢卷
< / div >
< / coil-selector >
< / div >
< / template >
< / div >
@@ -116,116 +117,124 @@
< span > 新钢卷 < / span >
< / div >
< div class = "target-coil-body" >
< el-form size = "small" label -width = " 9 0px" >
< el-form-item label = "卷号 " >
< el-input v-model = "targetCoil.currentCoilNo" placeholder="输入目标卷号" :disabled="readonly" > < / el -input >
< current-coil-no :current-coil-no = "targetCoil.currentCoilNo" / >
< / el-form-item >
< el-form-item label = "班组" >
< el-select v-model = "targetCoil.team" placeholder="请选择班组" style="width: 100%" :disabled="readonly" >
< el-option key = "甲" label = "甲" value = "甲" / >
< el-option key = "乙 " label = "乙 " value = "乙 " / >
< / el-select >
< / el-form-item >
< el-form-item label = "材料类型" >
< el-select v-model = "targetCoil.materialType" placeholder="请选择材料类型" style="width: 100%"
:disabled = "readonly" @change ="handleMaterialTypeChange" >
< el -option label = "原料" value = "原料" / >
< el-option label = "成品" value = "成品" / >
< / el-select >
< / el-form-item >
< el-form-item :label = "getItemLabel" >
< raw-material-selector v-if = "targetCoil.materialType === '原料'" v-model="targetCoil.itemId"
placeholder = "请选择原料" style = "width: 100%" clearable : disabled = "readonly || !targetCoil.materialType" / >
< product-selector v-else-if = "targetCoil.materialType === '成品'" v-model="targetCoil.itemId"
placeholder = "请选择成品" style = "width: 100%" clearable : disabled = "readonly || !targetCoil.materialType" / >
< div v-else > 请先选择物料类型 < / div >
< / el -form -item >
< el-form size = "small" label -width = " 8 0px" >
< div c lass = "form-row " >
< el-form-item label = "卷号" class = "form-item-half" >
< el-input v-model = "targetCoil.currentCoilNo" placeholder="输入目标卷号" :disabled="readonly" > < / el -input >
< current-coil-no :current-coil-no = "targetCoil.currentCoilNo" / >
< / el-form-item >
< el-form-item label = "班组" class = "form-item-half" >
< el-select v-model = "targetCoil.team" placeholder="请选择班组" style="width: 100%" :disabled="readonly" >
< el -option key = "甲 " label = "甲 " value = "甲 " / >
< el-option key = "乙" label = "乙" value = "乙" / >
< / el-select >
< / el-form-item >
< / div >
< el-form-item label = "质量状态" prop = "qualityStatus " >
< el-select v-model = "targetCoil.qualityStatus" placeholder="请选择质量状态" style="width: 100%"
:disabled = "readonly" >
< el-option v-for = "item in dict.type.coil_quality_status" :key="item.value" :label="item.label "
:value = "item.value " / >
< / el-select >
< / el-form-item >
< div c lass = "form-row " >
< el-form-item label = "材料类型" class = "form-item-half" >
< el-select v-model = "targetCoil.materialType" placeholder="请选择材料类型" style="width: 100%"
:disabled = "readonly" @change ="handleMaterialTypeChange " >
< el -option label = "原料" value = "原料 " / >
< el-option label = "成品" value = "成品" / >
< / el-select >
< / el-form-item >
< el-form-item :label = "getItemLabel" class = "form-item-half" >
< raw-material-selector v-if = "targetCoil.materialType === '原料'" v-model="targetCoil.itemId"
placeholder = "请选择原料" style = "width: 100%" clearable
: disabled = "readonly || !targetCoil.materialType" / >
< product-selector v-else-if = "targetCoil.materialType === '成品'" v-model="targetCoil.itemId"
placeholder = "请选择成品" style = "width: 100%" clearable
: disabled = "readonly || !targetCoil.materialType" / >
< div v-else > 请先选择物料类型 < / div >
< / el -form -item >
< / div >
< el-form-item label = "切边要求" prop = "trimmingRequirement " >
< el-select v-model = "targetCoil.trimmingRequirement" placeholder="请选择切边要求" style="width: 100%"
:disabled = "readonly" >
< el-option label = "净边料" value = "净边料" / >
< el-option label = "毛边料" value = "毛边料" / >
< / el-select >
< / el-form-item >
< div c lass = "form-row " >
< el-form-item label = "质量状态" prop = "qualityStatus" class = "form-item-half" >
< el-select v-model = "targetCoil.qualityStatus" placeholder="请选择质量状态" style="width: 100%"
:disabled = "readonly" >
< el-option v-for = "item in dict.type.coil_quality_status" :key="item.value" :label="item.label"
:value = "item.value" / >
< / el-select >
< / el-form-item >
< el-form-item label = "切边要求" prop = "trimmingRequirement" class = "form-item-half" >
< el-select v-model = "targetCoil.trimmingRequirement" placeholder="请选择切边要求" style="width: 100%"
:disabled = "readonly" >
< el-option label = "净边料" value = "净边料" / >
< el-option label = "毛边料" value = "毛边料" / >
< / el-select >
< / el-form-item >
< / div >
< el-form-item label = "打包状态" prop = "packingStatus " >
< el-input v-model = "targetCoil.packingStatus" placeholder="请输入打包状态" :disabled="readonly" >
< / el -input >
< / el-form-item >
< div c lass = "form-row " >
< el-form-item label = "打包状态" prop = "packingStatus" class = "form-item-half" >
< el-input v-model = "targetCoil.packingStatus" placeholder="请输入打包状态" :disabled="readonly" >
< / el-input >
< / el-form-item >
< el-form-item label = "包装要求" prop = "packagingRequirement" class = "form-item-half" >
< el-select v-model = "targetCoil.packagingRequirement" placeholder="请选择包装要求" style="width: 100%"
:disabled = "readonly" >
< el-option label = "裸包" value = "裸包" / >
< el-option label = "普包" value = "普包" / >
< el-option label = "简包" value = "简包" / >
< / el-select >
< / el-form-item >
< / div >
< el-form-item label = "包装要求" prop = "packagingRequirement " >
< el-select v-model = "targetCoil.packagingRequirement" placeholder="请选择包装要求" style="width: 100%"
:disabled = "readonly" >
< el-option label = "裸包" value = "裸包" / >
< el-option label = "普包" value = "普包" / >
< el-option label = "简包" value = "简包" / >
< / el-select >
</ el-form-item >
< el-form-item label = "毛重(t)" >
< el-input-number precision = "3" :controls = "false" v-model = "targetCoil.grossWeight" placeholder="请输入毛重"
type = "number" :step = "0.01" :disabled = "readonly" >
< template slot = "append" > 吨 < / template >
< / el-input-number >
< / el-form-item >
< el-form-item label = "净重(t)" >
< el-input-number precision = "3" :controls = "false" v-model = "targetCoil.netWeight" placeholder="请输入净重"
type = "number" :step = "0.01" :disabled = "readonly " >
< template slot = "append" > 吨 < / template >
< / el-input-number >
< / el-form-i tem >
< el-form-item label = "长度(m)" >
< el-input-number :controls = "false" v-model = "targetCoil.length" placeholder="请输入长度" type="number"
:step = "0.01" :disabled = "readonly " >
< template slot = "append" > 米 < / template >
< / el-input-number >
< / el-form-i tem >
< el-form-item label = "实测长度(m)" prop = "actualLength" >
< el-input-number :controls = "false" v-model = "targetCoil.actualLength" placeholder="请输入实测长度" type="number"
:step = "0.01" :disabled = "readonly" >
< template slot = "append" > 米 < / template >
< / el-input-number >
</ el-form-item >
< el-form-item label = "实测宽度(m)" prop = "actualWidth" >
< el-input- number :controls = "false" v-model = "targetCoil.actualWidth" placeholder="请输入实测宽度" type="number"
:step = "0.01" :disabled = "readonly" >
< template slot = "append" > 米 < / template >
< / el-input-number >
</ el-form-item >
< el-form-item label = "调制度" prop = "temperGrade" >
< el-input v-model = "targetCoil.temperGrade" placeholder="请输入调制度" / >
< / el-form-item >
< el-form-item label = "镀层种类" prop = "coatingType" >
< MemoInput storageKey = "coatingType" v-model = "targetCoil.coatingType" placeholder="请输入镀层种类" / >
</ el-form-item >
< el-form-item label = "逻辑库区" >
< WarehouseSelect v-model = "targetCoil.warehouseId" placeholder="请选择逻辑库区" :disabled="readonly" / >
</ el-form-item >
< div c lass = "form-row " >
< el-form-item label = "毛重(t)" class = "form-item-half" >
< el-input-number precision = "3" :controls = "false" v-model = "targetCoil.grossWeight" placeholder="请输入毛重"
type = "number" :step = "0.01" :disabled = "readonly" >
< template slot = "append" > 吨 < / template >
< / el-input-number >
< / el-form-item >
< el-form-item label = "净重(t)" class = "form-item-half" >
< el-input-number precision = "3" :controls = "false" v-model = "targetCoil.netWeight" placeholder="请输入净重"
type = "number" :step = "0.01" :disabled = "readonly" >
< template slot = "append" > 吨 < / template >
< / el-input-number >
< / el-form-item >
< / div >
< div class = "form-row" >
< el-form-item label = "长度(m)" class = "form-item-half ">
< el-input-number :controls = "false" v-model = "targetCoil.length" placeholder="请输入长度" type="number"
:step = "0.01" :disabled = "readonly" >
< template slot = "append" > 米 < / templa te >
< / el-input-number >
< / el-form-item >
< el-form-item label = "实测长度(m)" prop = "actualLength" class = "form-item-half ">
< el-input-number :controls = "false" v-model = "targetCoil.actualLength" placeholder="请输入实测长度"
type = "number" :step = "0.01" :disabled = "readonly" >
< template slot = "append" > 米 < / templa te >
< / el-input-number >
< / el-form-item >
< / div >
< div class = "form-row" >
< el-form-item label = "实测宽度(m)" prop = "actualWidth" class = "form-item-half" >
< el-input-number :controls = "false" v-model = "targetCoil.actualWidth" placeholder="请输入实测宽度"
type = " number" :step = "0.01" :disabled = "readonly" >
< template slot = "append" > 米 < / template >
< / el-input-number >
< / el-form-item >
< el-form-item label = "调制度" prop = "temperGrade" class = "form-item-half" >
< el-input v-model = "targetCoil.temperGrade" placeholder="请输入调制度" / >
< / el-form-item >
< / div >
< div class = "form-row" >
< el-form-item label = "镀层种类" prop = "coatingType" class = "form-item-half" >
< MemoInput storageKey = "coatingType" v-model = "targetCoil.coatingType" placeholder="请输入镀层种类" / >
< / el-form-item >
< el-form-item label = "逻辑库区" class = "form-item-half" >
< WarehouseSelect v-model = "targetCoil.warehouseId" placeholder="请选择逻辑库区" :disabled="readonly" / >
< / el-form-item >
< / div >
< / el-form >
< / div >
< / div >
<!-- 合卷规则说明 -- >
<!-- < div class = "rule-card" >
< div class = "rule-title" >
< i class = "el-icon-warning-outline" > < / i >
合卷规则
< / div >
< ul class = "rule-list" >
< li > 至少需要2个源卷 < / li >
< li > 所有源卷的物品类型和物品ID应保持一致 < / li >
< li > 请确保录入正确的新钢卷号和班组信息 < / li >
< / ul >
< / div > -- >
< / div >
< / div >
< / div >
@@ -233,7 +242,7 @@
< script >
import { getMaterialCoil , mergeMaterialCoil } from '@/api/wms/coil' ;
import { listPendingAction , completeAction } from '@/api/wms/pendingAction' ;
import { listPendingAction , completeAction , addPendingAction } from '@/api/wms/pendingAction' ;
import CoilSelector from '@/components/CoilSelector' ;
import ActualWarehouseSelect from "@/components/KLPService/ActualWarehouseSelect" ;
import RawMaterialSelector from "@/components/KLPService/RawMaterialSelect" ;
@@ -255,6 +264,7 @@ export default {
const currentCoilNoPrefix = generateCoilNoPrefix ( )
return {
currentCoilNoPrefix ,
actionTypeCode : '' ,
// 源卷列表
sourceCoils : [ ] ,
// 目标卷信息
@@ -325,12 +335,18 @@ export default {
const coilId = this . $route . query . coilId ;
const actionId = this . $route . query . actionId ;
const readonly = this . $route . query . readonly ;
const actionTypeCode = this . $route . query . actionTypeCode ;
// 保存当前页面的待操作ID
if ( actionId ) {
this . actionId = actionId ;
}
// 保存当前页面的待操作类型
if ( actionTypeCode ) {
this . actionTypeCode = actionTypeCode ;
}
// 设置只读模式
if ( readonly === 'true' || readonly === true ) {
this . readonly = true ;
@@ -338,7 +354,7 @@ export default {
// 如果有coilId, 加载该钢卷作为第一个源卷
if ( coilId ) {
await this . loadFirstCoil ( coilId ) ;
await this . loadFirstCoil ( coilId , actionId );
// 加载其他待合卷的钢卷列表
await this . loadPendingMergeList ( ) ;
} else {
@@ -394,57 +410,53 @@ export default {
this . $set ( this . targetCoil , 'itemId' , undefined ) ;
} ,
// 加载第一个钢卷(从待操作进入时)
async loadFirstCoil ( coilId ) {
async loadFirstCoil ( coilId , actionId ) {
try {
this . loading = true ;
const response = await getMaterialCoil ( coilId ) ;
if ( response . code === 200 && response . data ) {
const data = response . data ;
const data = response . data ;
// 初始化源卷列表,第一个是当前钢卷
this . sourceCoils = [
{
coilId : data . coilId ,
enterCoilNo : data . enterCoilNo || '' ,
currentCoilNo : data . currentCoilNo || '' ,
itemType : data . itemType ,
itemId : data . itemId ,
warehouseName : data . warehouseName || ( data . warehouse ? data . warehouse . warehouseName : '' ) ,
actualWarehouseName : data . actualWarehouseName || ( data . actualWarehouse ? data . actualWarehouse . warehouseName : '' ) ,
materialName : data . materialName || ( data . rawMaterial ? data . rawMaterial . rawMaterialName : '' ) ,
productName : data . productName || ( data . product ? data . product . productName : '' ) ,
specification : data . rawMaterial ? . specification || data . product ? . specification || '' ,
bomItems : data . bomItemList || [ ] ,
grossWeight : data . grossWeight || null ,
netWeight : data . netWeight || null ,
length : data . length || null ,
} ,
{
coilId : null ,
enterC oilNo : '' ,
curr entCoilNo : '' ,
itemType : null ,
itemId : null ,
warehouseName : '' ,
actualW arehouseName : '' ,
material Name : '' ,
product Name : '' ,
specification : '' ,
bomItems : [ ] ,
grossWeight : null ,
net Weight : null ,
length : null ,
}
] ;
// 初始化源卷列表,第一个是当前钢卷
this . sourceCoils = [
{
coilId : data . coilId ,
enterCoilNo : data . enterCoilNo || '' ,
currentCoilNo : data . currentCoilNo || '' ,
itemType : data . itemType ,
itemId : data . itemId ,
warehouseName : data . warehouseName || ( data . warehouse ? data . warehouse . warehouseName : '' ) ,
actualWarehouseName : data . actualWarehouseName || ( data . actualWarehouse ? data . actualWarehouse . warehouseName : '' ) ,
materialName : data . materialName || ( data . rawMaterial ? data . rawMaterial . rawMaterialName : '' ) ,
productName : data . productName || ( data . product ? data . product . productName : '' ) ,
specification : data . rawMaterial ? . specification || data . product ? . specification || '' ,
bomItems : data . bomItemList || [ ] ,
grossWeight : data . grossWeight || null ,
netWeight : data . netWeight || null ,
length : data . length || null ,
actionId : actionId // 保存待操作ID, 用于后续完成操作
} ,
{
c oilId : null ,
enter CoilNo: '' ,
currentCoilNo : '' ,
itemType : null ,
itemId : null ,
w arehouseName: '' ,
actualWarehouse Name: '' ,
material Name: '' ,
productName : '' ,
specification : '' ,
bomItems : [ ] ,
gross Weight: null ,
netWeight : null ,
length : null ,
}
] ;
// 自动填充目标卷信息
this . targetCoil . itemType = data . itemType ;
this . targetCoil . itemId = data . itemId ;
this . targetCoil . warehouseId = data . warehouseId ;
// this.targetCoil.actualWarehouseId = data.actualWarehouseId;
// 不再预加载物品列表,改为实时搜索
}
// 自动填充目标卷信息
this . targetCoil . itemType = data . itemType ;
this . targetCoil . itemId = data . itemId ;
this . targetCoil . warehouseId = data . warehouseId ;
} catch ( error ) {
this . $message . error ( '加载钢卷信息失败' ) ;
console . error ( error ) ;
@@ -460,7 +472,7 @@ export default {
// 分别查询待处理和处理中的记录
const responses = await listPendingAction ( {
actionType : 200 , // 合卷操作
actionType : this . actionTypeCode , // 合卷操作
actionStatus : '-1' , // -1表示只查询不为2的记录
pageNum : 1 ,
pageSize : 1000
@@ -482,28 +494,27 @@ export default {
try {
this . loading = true ;
const response = await getMaterialCoil ( pending . coilId ) ;
if ( response . code === 200 && response . data ) {
const data = response . data ;
this . $set ( this . sourceCoils , index , {
coilId : data . coilId ,
enterCoilNo : data . enterCoilNo || '' ,
currentCoilNo : data . currentCoilNo || '' ,
itemType : data . itemType ,
itemId : data . itemId ,
warehouseName : data . warehouseName || ( data . warehouse ? data . warehouse . warehouseName : '' ) ,
actualWarehouseName : data . actualWarehouseName || ( data . actualWarehouse ? data . actualWarehouse . warehouseName : '' ) ,
materialName : data . materialName || ( data . rawMaterial ? data . rawMaterial . rawMaterialName : '' ) ,
productName : data . productName || ( data . product ? data . product . productName : '' ) ,
specification : data . rawMaterial ? . specification || data . product ? . specification || '' ,
grossWeight : data . grossWeight || null ,
netWeight : data . netWeight || null ,
length : data . length || null ,
bomItems : data . bomItemList || [ ] ,
actionId : pending . actionId // 保存待操作ID, 用于后续完成操作
} ) ;
this . $message . success ( '已添加到合卷列表' ) ;
}
const data = response . data ;
this . $set ( this . sourceCoils , index , {
coilId : data . coilId ,
enterCoilNo : data . enterCoilNo || '' ,
currentCoilNo : data . currentCoilNo || '' ,
itemType : data . itemType ,
itemId : data . itemId ,
warehouseName : data . warehouseName || ( data . warehouse ? data . warehouse . warehouseName : '' ) ,
actualWarehouseName : data . actualWarehouseName || ( data . actualWarehouse ? data . actualWarehouse . warehouseName : '' ) ,
materialName : data . materialName || ( data . rawMaterial ? data . rawMaterial . rawMaterialName : '' ) ,
productName : data . productName || ( data . product ? data . product . productName : '' ) ,
specification : data . rawMaterial ? . specification || data . product ? . specification || '' ,
grossWeight : data . grossWeight || null ,
netWeight : data . netWeight || null ,
length : data . length || null ,
bomItems : data . bomItemList || [ ] ,
actionId : pending . actionId // 保存待操作ID, 用于后续完成操作
} ) ;
this . $message . success ( '已添加到合卷列表' ) ;
} catch ( error ) {
this . $message . error ( '加载钢卷信息失败' ) ;
console . error ( error ) ;
@@ -640,21 +651,16 @@ export default {
text : '正在合卷,请稍后...' ,
background : 'rgba(0, 0, 0, 0.7)'
} ) ;
this . completeAllRelatedActions ( ) ;
await mergeMaterialCoil ( mergeData ) ;
const response = await mergeMaterialCoil ( mergeData ) ;
if ( response . code === 200 ) {
this . $message . success ( '合卷保存成功' ) ;
this . $message . success ( '合卷保存成功' ) ;
// 完成所有相关的待操作记录
await this . completeAllRelatedActions ( ) ;
// 延迟返回,让用户看到成功提示
setTimeout ( ( ) => {
this . $router . back ( ) ;
} , 100 ) ;
} else {
this . $message . error ( response . msg || '合卷保存失败' ) ;
}
// 延迟返回,让用户看到成功提示
setTimeout ( ( ) => {
this . $router . back ( ) ;
} , 100 ) ;
} catch ( error ) {
this . $message . error ( '合卷保存失败' ) ;
console . error ( error ) ;
@@ -666,27 +672,66 @@ export default {
}
} ,
async selectCoil ( coil , index ) {
console . log ( coil , index ) ;
const data = coil ;
this . $set ( this . sourceCoils , index , {
coilId : data . coilId ,
enterCoilNo : data . enterCoilNo || '' ,
currentCoilNo : data . currentCoilNo || '' ,
itemType : data . itemType ,
itemId : data . itemId ,
warehouseName : data . warehouseName || ( data . warehouse ? data . warehouse . warehouseName : '' ) ,
actualWarehouseName : data . actualWarehouseName || ( data . actualWarehouse ? data . actualWarehouse . warehouseName : '' ) ,
materialName : data . materialName || ( data . rawMaterial ? data . rawMaterial . rawMaterialName : '' ) ,
productName : data . productName || ( data . product ? data . product . productName : '' ) ,
specification : data . rawMaterial ? . specification || data . product ? . specification || '' ,
grossWeight : data . grossWeight || null ,
netWeight : data . netWeight || null ,
length : data . length || null ,
bomItems : data . bomItemList || [ ] ,
nc : true ,
actionId : pending . actionId // 保存待操作ID, 用于后续完成操作
} ) ;
} ,
// 完成所有相关的待操作记录
async completeAllRelatedActions ( ) {
try {
// 收集所有待操作ID
const actionIds = [ ] ;
const ncs = [ ] ;
// 当前页面的actionId( 从路由参数获取)
if ( this . actionId ) {
actionIds. push ( this . actionId) ;
}
// if (this.actionId) {
// actionIds.push(this. actionId);
// }
// 从待合卷列表中选择的钢卷的actionId
this . sourceCoils . forEach ( item => {
if ( item . actionId ) {
actionIds . push ( item . actionId ) ;
}
// 或许所有需要直接完成的
if ( item . nc ) {
ncs . push ( item ) ;
}
} ) ;
// 批量完成所有待操作
const promises = actionIds . map ( id => completeAction ( id ) ) ;
awai t P romise. all ( promises ) ;
const promises1 = actionIds . map ( id => completeAction ( id ) ) ;
cons t p romises2 = ncs . map ( item => {
addPendingAction ( {
actionType : this . actionTypeCode , // 合卷操作
actionStatus : '2' , // 2表示已完成
coilId : item . coilId ,
currentCoilNo : item . currentCoilNo || '' ,
priority : 0 ,
sourceType : 'manual' ,
} )
} ) ;
await Promise . all ( promises1 . concat ( promises2 ) ) ;
} catch ( error ) {
console . error ( '完成待操作失败:' , error ) ;
// 不影响主流程,只记录错误
@@ -743,9 +788,9 @@ export default {
/* 流程图容器 */
. flow - container {
display : flex ;
gap : 4 0px ;
gap : 2 0px ;
background : # fff ;
padding : 3 0px ;
padding : 2 0px ;
border - radius : 4 px ;
box - shadow : 0 2 px 4 px rgba ( 0 , 0 , 0 , 0.1 ) ;
min - height : 600 px ;
@@ -753,11 +798,11 @@ export default {
. flow - left {
flex : 1 ;
max - width : 35 0 px ;
min - width : 30 0 px ;
}
. flow - middle {
flex : 0 0 12 0px ;
flex : 0 0 8 0px ;
display : flex ;
flex - direction : column ;
align - items : center ;
@@ -767,7 +812,7 @@ export default {
. flow - right {
flex : 1 ;
max - width : 40 0px ;
min - width : 35 0px ;
}
. flow - section - title {
@@ -803,8 +848,9 @@ export default {
background : # fff ;
border : 1 px solid # e4e7ed ;
border - radius : 8 px ;
margin - bottom : 12 px ;
margin - bottom : 10 px ;
transition : all 0.3 s ;
overflow : hidden ;
& : hover {
border - color : # 0066 cc ;
@@ -813,23 +859,23 @@ export default {
}
. source - coil - header {
padding : 12 px 16 px ;
padding : 10 px 14 px ;
display : flex ;
align - items : center ;
gap : 12 px ;
gap : 10 px ;
border - bottom : 1 px solid # f5f7fa ;
}
. source - number {
width : 28 px ;
height : 28 px ;
width : 24 px ;
height : 24 px ;
border - radius : 50 % ;
background : # 0066 cc ;
color : # fff ;
display : flex ;
align - items : center ;
justify - content : center ;
font - size : 14 px ;
font - size : 12 px ;
font - weight : 600 ;
flex - shrink : 0 ;
}
@@ -843,16 +889,13 @@ export default {
font - size : 14 px ;
font - weight : 500 ;
color : # 303133 ;
margin - bottom : 4 px ;
}
. source - weight {
font - size : 13 px ;
color : # 909399 ;
white - space : nowrap ;
overflow : hidden ;
text - overflow : ellipsis ;
}
. source - coil - body {
padding : 12 px 16 px ;
padding : 10 px 14 px ;
& : empty {
text - align : center ;
@@ -861,13 +904,13 @@ export default {
. empty - tip {
text - align : center ;
color : # 909399 ;
font - size : 13 px ;
padding : 10 px 0 ;
font - size : 12 px ;
padding : 8 px 0 ;
i {
display : block ;
font - size : 24 px ;
margin - bottom : 5 px ;
font - size : 20 px ;
margin - bottom : 4 px ;
}
}
}
@@ -930,8 +973,8 @@ export default {
. source - detail - row {
display : flex ;
align - items : flex - start ;
margin - bottom : 8 px ;
font - size : 13 px ;
margin - bottom : 6 px ;
font - size : 12 px ;
& : last - child {
margin - bottom : 0 ;
@@ -939,7 +982,7 @@ export default {
. detail - label {
color : # 909399 ;
min - width : 9 0px ;
min - width : 8 0px ;
flex - shrink : 0 ;
}
@@ -951,27 +994,27 @@ export default {
}
. source - detail - divider {
margin : 10 px 0 8 px ;
padding : 5 px 0 ;
font - size : 12 px ;
margin : 8 px 0 6 px ;
padding : 4 px 0 ;
font - size : 11 px ;
font - weight : 500 ;
color : # 606266 ;
border - bottom : 1 px solid # e4e7ed ;
}
. source - bom - params {
margin - top : 8 px ;
margin - top : 6 px ;
}
. source - bom - item {
display : flex ;
align - items : center ;
margin - bottom : 6 px ;
font - size : 12 px ;
margin - bottom : 4 px ;
font - size : 11 px ;
. bom - key {
color : # 909399 ;
min - width : 6 0px ;
min - width : 5 0px ;
}
. bom - value {
@@ -1037,6 +1080,34 @@ export default {
padding : 20 px ;
}
/* 双列表单布局 */
. form - row {
display : flex ;
gap : 16 px ;
margin - bottom : 12 px ;
& : last - child {
margin - bottom : 0 ;
}
}
. form - item - half {
flex : 1 ;
min - width : 0 ;
}
/* 响应式布局 */
@ media screen and ( max - width : 768 px ) {
. form - row {
flex - direction : column ;
gap : 12 px ;
}
. form - item - half {
width : 100 % ;
}
}
/* 规则说明卡片 */
. rule - card {
background : # fff9f0 ;