refactor(wms/mes/cost): 优化多页面表单与表格交互逻辑
1. 调整质检任务表单的任务类型与入场卷号展示顺序,根据任务类型动态显示入场卷号字段并优化校验规则 2. 替换wms报表页面的pendingAction接口为轻量版listLightPendingAction 3. 给成本综合页面的表格拖拽排序功能新增置于最上/最下按钮,完善拖拽交互与样式
This commit is contained in:
@@ -66,7 +66,7 @@
|
||||
<el-button size="mini" plain @click="openCopyCfg">复制配置</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-table :data="allCols" border stripe size="mini" highlight-current-row @current-change="curIdx = allCols.indexOf($event)" @selection-change="selCol=$event">
|
||||
<el-table :data="allCols" border stripe size="mini" highlight-current-row @dragover.native.prevent @drop.native="onNativeDrop" @current-change="curIdx = allCols.indexOf($event)" @selection-change="selCol=$event">
|
||||
<el-table-column type="selection" width="40" />
|
||||
<el-table-column label="序号" type="index" width="50" align="center" />
|
||||
<el-table-column label="类型" width="60" align="center">
|
||||
@@ -90,17 +90,19 @@
|
||||
<el-table-column label="分班次" width="70" align="center">
|
||||
<template slot-scope="s"><el-checkbox v-model="s.row.isShift" /></template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="140" align="center">
|
||||
<el-table-column label="操作" width="175" align="center">
|
||||
<template slot-scope="s">
|
||||
<span style="display:inline-flex;align-items:center"
|
||||
@dragover.prevent @dragenter.prevent
|
||||
@drop.stop="onDragDrop(s.$index)">
|
||||
<el-button size="mini" type="text" icon="el-icon-rank"
|
||||
style="cursor:grab;font-size:14px" title="拖拽排序"
|
||||
draggable="true"
|
||||
@dragstart.stop="dragIdx=s.$index" />
|
||||
<span style="display:inline-flex;align-items:center">
|
||||
<span class="drag-handle" title="拖拽排序"
|
||||
:draggable="true"
|
||||
@dragstart.stop="onDragStart(s.$index)"
|
||||
@dragend="onDragEnd">
|
||||
<i class="el-icon-rank" />
|
||||
</span>
|
||||
<el-button size="mini" type="text" icon="el-icon-d-arrow-left" :disabled="s.$index===0" title="置于最上" @click="moveColToEdge(s.$index,'top')" />
|
||||
<el-button size="mini" type="text" icon="el-icon-top" :disabled="s.$index===0" @click="moveCol(s.$index,-1)" />
|
||||
<el-button size="mini" type="text" icon="el-icon-bottom" :disabled="s.$index===allCols.length-1" @click="moveCol(s.$index,1)" />
|
||||
<el-button size="mini" type="text" icon="el-icon-d-arrow-right" :disabled="s.$index===allCols.length-1" title="置于最下" @click="moveColToEdge(s.$index,'bottom')" />
|
||||
<el-button size="mini" type="text" icon="el-icon-delete" @click="allCols.splice(s.$index,1)" />
|
||||
</span>
|
||||
</template>
|
||||
@@ -328,6 +330,21 @@ export default {
|
||||
/* column config */
|
||||
async openColCfg() { await this.loadItems(); await this.restoreAllCols(); this.colOpen = true },
|
||||
moveCol(idx, dir) { const arr = this.allCols; const t = idx + dir; if (t >= 0 && t < arr.length) { const item = arr.splice(idx, 1)[0]; arr.splice(t, 0, item) } },
|
||||
moveColToEdge(idx, edge) { const arr = this.allCols; const item = arr.splice(idx, 1)[0]; edge === 'top' ? arr.unshift(item) : arr.push(item) },
|
||||
onDragStart(idx) {
|
||||
this.dragIdx = idx
|
||||
},
|
||||
onDragEnd() {
|
||||
this.dragIdx = -1
|
||||
},
|
||||
onNativeDrop(e) {
|
||||
if (this.dragIdx < 0) return
|
||||
const tr = e.target.closest('tr')
|
||||
if (!tr) return
|
||||
const rows = Array.from(tr.parentElement.querySelectorAll('tr'))
|
||||
const targetIdx = rows.indexOf(tr)
|
||||
if (targetIdx >= 0) this.onDragDrop(targetIdx)
|
||||
},
|
||||
onDragDrop(targetIdx) {
|
||||
if (this.dragIdx < 0 || targetIdx < 0 || this.dragIdx === targetIdx) return
|
||||
const arr = this.allCols
|
||||
@@ -592,4 +609,7 @@ export default {
|
||||
.vars-tag:hover { opacity: 0.8; }
|
||||
.var-sys { background: #ecf5ff; border-color: #d9ecff; color: #409eff; }
|
||||
.var-mtr { background: #f0f9eb; border-color: #e1f3d8; color: #67c23a; }
|
||||
.drag-handle { cursor: grab; font-size: 14px; color: #909399; padding: 2px; display: inline-flex; align-items: center; }
|
||||
.drag-handle:active { cursor: grabbing; }
|
||||
.drag-handle:hover { color: #409eff; }
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user