feat(wms盘库): 完成多项功能升级与体验优化
1. 新增仓库选择组件多选支持,适配批量库区操作 2. 售后单新增自动生成编号与当前日期填充 3. 盘点计划新增流程审批操作按钮,支持驳回与审批通过 4. 优化库区绑定页面,支持编辑删除已绑定库区 5. 替换人员选择为可搜索下拉框,支持多选参与人 6. 新增驳回审批弹窗,提供快捷驳回理由 7. 优化表单提交逻辑,适配多库区数据格式
This commit is contained in:
@@ -46,6 +46,26 @@
|
||||
|
||||
<el-divider v-if="currentRow.planStatus === 0" />
|
||||
|
||||
<!-- 计划待审批 (1) 操作 -->
|
||||
<div v-if="currentRow.planStatus === 1" class="section-title">
|
||||
<span>流程操作 <span class="en-sub">· Actions</span></span>
|
||||
</div>
|
||||
<div class="flow-actions" v-if="currentRow.planStatus === 1">
|
||||
<el-button type="danger" size="small" icon="el-icon-close" @click="$emit('reject')">驳回</el-button>
|
||||
<el-button type="primary" size="small" icon="el-icon-check" @click="$emit('approve')">审批通过</el-button>
|
||||
</div>
|
||||
<el-divider v-if="currentRow.planStatus === 1" />
|
||||
|
||||
<!-- 差异审批中 (3) 操作 -->
|
||||
<div v-if="currentRow.planStatus === 3" class="section-title">
|
||||
<span>流程操作 <span class="en-sub">· Actions</span></span>
|
||||
</div>
|
||||
<div class="flow-actions" v-if="currentRow.planStatus === 3">
|
||||
<el-button type="danger" size="small" icon="el-icon-close" @click="$emit('reject')">驳回</el-button>
|
||||
<el-button type="primary" size="small" icon="el-icon-check" @click="$emit('diff-approve')">审批通过</el-button>
|
||||
</div>
|
||||
<el-divider v-if="currentRow.planStatus === 3" />
|
||||
|
||||
<div class="section-title">库区盘点明细 <span class="en-sub">· Warehouses</span>
|
||||
<el-button v-if="currentRow.planStatus === 0" size="mini" type="primary" plain icon="el-icon-plus" style="margin-left:8px;" @click="$emit('bind-warehouse')">绑定库区</el-button>
|
||||
</div>
|
||||
@@ -53,12 +73,11 @@
|
||||
<WarehouseDetailPanel ref="whPanel"
|
||||
:planId="currentRow.planId"
|
||||
:planStatus="currentRow.planStatus"
|
||||
@approve="$emit('approve')"
|
||||
@diff-approve="$emit('diff-approve')"
|
||||
@reject="$emit('reject')"
|
||||
@archive="$emit('archive')"
|
||||
@process-disc="$emit('process-disc', $event)"
|
||||
@submit-disc-approval="$emit('submit-disc-approval')"
|
||||
@edit-warehouse="$emit('edit-warehouse', $event)"
|
||||
@delete-warehouse="$emit('delete-warehouse', $event)"
|
||||
/>
|
||||
|
||||
<div class="section-gap" />
|
||||
|
||||
@@ -96,6 +96,10 @@
|
||||
<span class="wh-detail-label">出入库查询截止</span>
|
||||
<span class="wh-detail-value">{{ wh.ioEndTime ? formatTime(wh.ioEndTime) : '-' }}</span>
|
||||
</div>
|
||||
<div v-if="planStatus === 0" class="wh-detail-actions">
|
||||
<el-button size="mini" type="primary" plain icon="el-icon-edit" @click="$emit('edit-warehouse', wh)">编辑</el-button>
|
||||
<el-button size="mini" type="danger" plain icon="el-icon-delete" @click="$emit('delete-warehouse', wh)">删除</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -130,18 +134,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ===== 计划待审批 (1) 操作 ===== -->
|
||||
<div v-if="planStatus === 1" style="text-align:right;margin-bottom:8px;">
|
||||
<el-button size="small" type="danger" icon="el-icon-close" @click="$emit('reject')">驳回</el-button>
|
||||
<el-button size="small" type="primary" icon="el-icon-check" @click="$emit('approve')">审批通过</el-button>
|
||||
</div>
|
||||
|
||||
<!-- ===== 差异审批中 (3) 操作 ===== -->
|
||||
<div v-if="planStatus === 3" style="text-align:right;margin-bottom:8px;">
|
||||
<el-button size="small" type="danger" icon="el-icon-close" @click="$emit('reject')">驳回</el-button>
|
||||
<el-button size="small" type="primary" icon="el-icon-check" @click="$emit('diff-approve')">审批通过</el-button>
|
||||
</div>
|
||||
|
||||
<!-- ===== 差异处理中 (4) 操作 ===== -->
|
||||
<div v-if="planStatus === 4" style="text-align:right;margin-bottom:8px;">
|
||||
<el-button size="small" type="success" icon="el-icon-circle-check" @click="$emit('archive')">归档封存</el-button>
|
||||
@@ -461,9 +453,9 @@ export default {
|
||||
async doGenSnapshot(wh) {
|
||||
if (!wh) return;
|
||||
var p = { dataType: 1, status: 0 };
|
||||
if (wh.warehouseId) p.warehouseId = String(wh.warehouseId);
|
||||
if (wh.actualWarehouseId) p.actualWarehouseId = String(wh.actualWarehouseId);
|
||||
if (!p.warehouseId && !p.actualWarehouseId) { this.$message.warning('无库区条件'); return; }
|
||||
if (wh.warehouseIds) p.warehouseIds = String(wh.warehouseIds);
|
||||
if (wh.actualWarehouseIds) p.actualWarehouseIds = String(wh.actualWarehouseIds);
|
||||
if (!p.warehouseIds && !p.actualWarehouseIds) { this.$message.warning('无库区条件'); return; }
|
||||
this.genLoading = true;
|
||||
try {
|
||||
var resp = await exportCoilWithAll(p);
|
||||
@@ -622,6 +614,7 @@ export default {
|
||||
.wh-detail-row:last-child { border-bottom: none; }
|
||||
.wh-detail-label { width: 120px; flex-shrink: 0; color: #606266; font-weight: 500; }
|
||||
.wh-detail-value { color: #303133; }
|
||||
.wh-detail-actions { display: flex; gap: 6px; padding: 8px 14px; border-top: 1px solid #f0ece6; justify-content: flex-end; }
|
||||
.doc-tabs-header { display: flex; border-bottom: 1px solid #d4d0c8; margin-bottom: 12px; }
|
||||
.doc-tab-item { padding: 8px 16px; cursor: pointer; color: #8c8c8c; font-size: 13px; font-weight: 500; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: color 0.2s, border-color 0.2s; display: flex; align-items: center; gap: 6px; user-select: none; }
|
||||
.doc-tab-item:hover { color: #1a3c6e; }
|
||||
|
||||
Reference in New Issue
Block a user