fix(inventory): 解决生成发货单表单数据残留问题

- 在 GenerateDeliveryForm.vue 中打开表单时清空已选SN列表
- 修复表格初始化加载时的选择状态清理逻辑
- 修正收票单详情页面显示的编号字段错误
- 更新项目管理日志标题为会审相关
- 添加项目订单文件修改权限相关注释说明
dev_1.0.0
chenhao 2026-01-08 13:47:50 +08:00
parent 602d06aafc
commit d1e23c58ef
5 changed files with 10 additions and 4 deletions

View File

@ -63,7 +63,7 @@
<ApproveLayout ref="approveLayout" title="收票单详情">
<invoice-receipt-detail :data="form"></invoice-receipt-detail>
<template #footer>
<span>收票编号: {{ form.receiptBillCode }}</span>
<span>收票编号: {{ form.invoiceBillCode }}</span>
</template>
</ApproveLayout>
</div>

View File

@ -77,7 +77,7 @@
<ApproveLayout ref="approveLayout" title="收票单详情">
<invoice-receipt-detail :data="form"></invoice-receipt-detail>
<template #footer>
<span>收票编号: {{ form.ticketBillCode }}</span>
<span>收票编号: {{ form.invoiceBillCode }}</span>
</template>
</ApproveLayout>
</div>

View File

@ -146,6 +146,7 @@ export default {
},
methods: {
open(productRow, outerForm) {
this.selectedSnList.length=0;
this.reset();
this.productData = productRow;
this.outerData = outerForm;
@ -166,12 +167,13 @@ export default {
this.snList = response.rows;
this.total = response.total;
if (this.isInitialLoad) {
this.isInitialLoad = false;
this.$nextTick(() => {
if (this.$refs.snTable) {
this.$refs.snTable.clearSelection();
this.$refs.snTable.toggleAllSelection();
}
});
this.isInitialLoad = false;
}
});
},

View File

@ -105,7 +105,7 @@ public class VueProjectInfoController extends BaseController {
return toAjax(projectInfoService.updateProjectInfo(projectInfo));
}
@RequiresPermissions("sip:project:edit")
@Log(title = "项目管理", businessType = BusinessType.UPDATE)
@Log(title = "会审", businessType = BusinessType.UPDATE)
@PutMapping("/joinTrial")
public AjaxResult editJoinTrial(@RequestBody ProjectInfo projectInfo) {
return toAjax(projectInfoService.editJoinTrial(projectInfo));

View File

@ -83,6 +83,7 @@ public class VueProjectOrderInfoController extends BaseController {
ProjectOrderInfo projectOrderInfo = projectOrderInfoService.selectProjectOrderInfoById(id);
mmap.put("projectOrderInfo", projectOrderInfo);
mmap.put("user", ShiroUtils.getSysUser());
//是否可修改文件
mmap.put("canUpdate", ProjectOrderInfo.OrderStatus.WAIT_COMMIT.getCode().equals(projectOrderInfo.getOrderStatus()) ||ProjectOrderInfo.OrderStatus.APPROVE_REJECT.getCode().equals(projectOrderInfo.getOrderStatus()));
// boolean showFileFlag=!ProjectOrderInfo.OrderStatus.WAIT_COMMIT.getCode().equals(projectOrderInfo.getOrderStatus())
// && !ProjectOrderInfo.OrderStatus.APPROVE_REJECT.getCode().equals(projectOrderInfo.getOrderStatus())
@ -92,15 +93,18 @@ public class VueProjectOrderInfoController extends BaseController {
ProjectOrderFileLog fileLog = new ProjectOrderFileLog();
fileLog.setOrderId(projectOrderInfo.getId());
fileLog.setFileType(ProjectOrderFileLog.FileTypeEnum.CONTRACT_BAK.getCode());
//信息备份数据
mmap.put("orderBakFile", projectOrderFileLogService.mapBakFile(fileLog));
Todo todo = new Todo();
todo.setBusinessKey(projectOrderInfo.getOrderCode());
List<Todo> todoCompletedList = todoService.selectTodoCompletedList(todo);
//审批历史
mmap.put("approveLog", todoCompletedList);
//判断商务角色 并且是产品或自己审批
boolean updateFlag = CollUtil.isNotEmpty(todoCompletedList) && ProjectOrderInfo.OrderStatus.WAIT_APPROVE.getCode().equals(projectOrderInfo.getOrderStatus()) ?
("产品经理".equals(todoCompletedList.get(0).getTaskName()) || "售前".equals(todoCompletedList.get(0).getTaskName()))
: (boolean) mmap.get("canUpdate");
//是否可修改文件
mmap.put("updateFile", (ShiroUtils.getSubject().hasRole("sale_assistant")||ShiroUtils.getSubject().hasRole("business")||ShiroUtils.getSubject().hasRole("marketing_promotion") ||ShiroUtils.getSysUser().isAdmin()) && updateFlag);
mmap.put("uploadFinalFile", (ShiroUtils.getSubject().hasRole("business") || ShiroUtils.getSysUser().isAdmin()) &&
ProjectOrderInfo.OrderStatus.APPROVE_COMPLETE.getCode().equals(projectOrderInfo.getOrderStatus()));