Junjie
2026-04-01 8bfe1168a42d4e3750a15b0c0fb0a7629d6cf91c
src/main/webapp/static/js/wrkMast/wrkMast.js
@@ -17,18 +17,26 @@
        { key: "dualCrnNo", prop: "dualCrnNo", label: "双工位堆垛机", minWidth: 120, sortable: true, align: "center" },
        { key: "batch", prop: "batch", label: "批次", minWidth: 120, sortable: true },
        { key: "batchSeq", prop: "batchSeq", label: "批次序列", width: 100, sortable: true, align: "center" },
        { key: "systemMsg", prop: "systemMsg", label: "系统消息", minWidth: 220, sortable: false, showOverflow: false }
        { key: "sendFailCount", prop: "sendFailCount", label: "失败次数", width: 96, sortable: true, align: "center" },
        { key: "errorTime$", prop: "errorTime$", label: "失败时间", minWidth: 168, sortable: true },
        { key: "errorMemo", prop: "errorMemo", label: "失败原因", minWidth: 220, sortable: false, showOverflow: false },
        { key: "systemMsg", prop: "systemMsg", label: "系统消息", minWidth: 320, sortable: false, showOverflow: false }
    ];
    var MANUAL_ROLLBACK_STATUSES = [6, 106, 506];
    function cloneSearchForm() {
        return {
            condition: "",
            wrk_no: "",
            wms_wrk_no: "",
            io_type: "",
            wrk_sts: "",
            loc_no: "",
            source_loc_no: "",
            crn_no: "",
            dual_crn_no: ""
            dual_crn_no: "",
            barcode: ""
        };
    }
@@ -65,6 +73,10 @@
                pageTotal: 0,
                tableHeight: 520,
                searchForm: cloneSearchForm(),
                filterOptions: {
                    ioTypes: [],
                    wrkStatuses: []
                },
                sortState: {
                    prop: "",
                    order: ""
@@ -86,6 +98,7 @@
            }
        },
        created: function () {
            this.loadFilterOptions();
            this.loadList();
        },
        mounted: function () {
@@ -100,6 +113,55 @@
            }
        },
        methods: {
            loadFilterOptions: function () {
                var vm = this;
                [
                    {
                        field: "wrkStatuses",
                        url: baseUrl + "/basWrkStatus/list/auth",
                        valueField: "wrkSts",
                        labelField: "wrkDesc"
                    },
                    {
                        field: "ioTypes",
                        url: baseUrl + "/basWrkIotype/list/auth",
                        valueField: "ioType",
                        labelField: "ioDesc"
                    }
                ].forEach(function (config) {
                    $.ajax({
                        url: config.url,
                        headers: { token: localStorage.getItem("token") },
                        method: "GET",
                        data: {
                            curr: 1,
                            limit: 200
                        },
                        success: function (res) {
                            if (res.code === 200) {
                                vm.$set(vm.filterOptions, config.field, ((res.data && res.data.records) || []).map(function (item) {
                                    return {
                                        value: item[config.valueField],
                                        label: item[config.labelField]
                                    };
                                }));
                                return;
                            }
                            if (res.code === 403) {
                                top.location.href = baseUrl + "/";
                            }
                        }
                    });
                });
            },
            displayCellValue: function (row, column) {
                var value;
                if (!row || !column) {
                    return "";
                }
                value = row[column.prop];
                return value === null || value === undefined || value === "" ? "" : value;
            },
            buildQueryParams: function () {
                var data = {
                    curr: this.currentPage,
@@ -229,7 +291,14 @@
                }
                if (command === "cancel") {
                    this.cancelTask(row);
                    return;
                }
                if (command === "manualRollback") {
                    this.manualRollbackTask(row);
                }
            },
            canManualRollback: function (row) {
                return !!row && MANUAL_ROLLBACK_STATUSES.indexOf(Number(row.wrkSts)) > -1;
            },
            completeTask: function (row) {
                var vm = this;
@@ -239,7 +308,7 @@
                    cancelButtonText: "取消"
                }).then(function () {
                    $.ajax({
                        url: baseUrl + "/openapi/completeTask",
                        url: baseUrl + "/wrkMast/complete/auth",
                        contentType: "application/json",
                        headers: { token: localStorage.getItem("token") },
                        data: JSON.stringify({ wrkNo: row.wrkNo }),
@@ -270,7 +339,7 @@
                    cancelButtonText: "取消"
                }).then(function () {
                    $.ajax({
                        url: baseUrl + "/openapi/cancelTask",
                        url: baseUrl + "/wrkMast/cancel/auth",
                        contentType: "application/json",
                        headers: { token: localStorage.getItem("token") },
                        data: JSON.stringify({ wrkNo: row.wrkNo }),
@@ -293,6 +362,41 @@
                    });
                }).catch(function () {});
            },
            manualRollbackTask: function (row) {
                var vm = this;
                if (!vm.canManualRollback(row)) {
                    vm.$message.warning("当前任务不处于待人工回滚状态");
                    return;
                }
                vm.$confirm("确定手动回滚该任务吗?回滚后任务会恢复为待执行状态。", "提示", {
                    type: "warning",
                    confirmButtonText: "确定",
                    cancelButtonText: "取消"
                }).then(function () {
                    $.ajax({
                        url: baseUrl + "/openapi/manualRollbackTask",
                        contentType: "application/json",
                        headers: { token: localStorage.getItem("token") },
                        data: JSON.stringify({ wrkNo: row.wrkNo }),
                        method: "POST",
                        success: function (res) {
                            if (res.code === 200) {
                                vm.$message.success("人工回滚成功");
                                vm.loadList();
                                return;
                            }
                            if (res.code === 403) {
                                top.location.href = baseUrl + "/";
                                return;
                            }
                            vm.$message.error(res.msg || "人工回滚失败");
                        },
                        error: function () {
                            vm.$message.error("人工回滚失败");
                        }
                    });
                }).catch(function () {});
            },
            updateTableHeight: function () {
                var viewport = window.innerHeight || document.documentElement.clientHeight || 860;
                this.tableHeight = Math.max(340, viewport - (this.advancedVisible ? 276 : 222));