qinchulong
2025-05-27 c020f31a67fc5aa5644511bddff075f7ecc85234
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/extension/basic/extend/GetLocationStatus.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,261 @@
<template>
    <div>
        <vol-box v-model="showDetialBox" :lazy="true" width="1500px" :padding="15" title="入库单据明细">
            <div class="box-table" style="margin-top: 1%">
                <el-table ref="singleTable" :data="tableData" style="width: 100%; height: 100%" highlight-current-row
                    @row-click="handleRowClick" height="500px" @selection-change="handleSelectionChange">
                    >
                    <el-table-column type="selection" width="55"> </el-table-column>
                    <el-table-column label="序号" type="index" fixed="left" width="55" align="center"></el-table-column>
                    <el-table-column v-for="(item, index) in tableColumns.filter((x) => !x.hidden)" :key="index"
                        :prop="item.field" :label="item.title" :width="item.width" align="center">
                        <template #default="scoped">
                            <div v-if="item.type == 'icon'">
                                <el-tooltip class="item" effect="dark" :content="item.title"
                                    placement="bottom"><el-button type="text"
                                        @click="tableButtonClick(scoped.row, item)"><i :class="item.icon"
                                            style="font-size: 22px"></i></el-button></el-tooltip>
                            </div>
                            <div v-else-if="item.type == 'tag'">
                                <el-tag size="small">
                                    {{ getDictionary(scoped.row, item) }}
                                </el-tag>
                            </div>
                        </template>
                    </el-table-column>
                </el-table>
            </div>
        </vol-box>
    </div>
</template>
<script>
import VolBox from "@/components/basic/VolBox.vue";
export default {
    components: { VolBox },
    data() {
        return {
            showDetialBox: false,
            row: null,
            tableData: [],
            tableColumns: [
                {
                    field: "locationId",
                    title: "货位主键",
                    type: "string",
                    width: 90,
                    align: "left",
                },
                {
                    field: "locationCode",
                    title: "货位编号",
                    type: "string",
                    width: 160,
                    align: "left",
                },
                {
                    field: "beforeStatus",
                    title: "变动前货位状态",
                    type: "tag",
                    width: 150,
                    align: "left",
                    bindKey: "locationStatusEnum"
                },
                {
                    field: "afterStatus",
                    title: "变动后货位状态",
                    type: "tag",
                    width: 150,
                    align: "left",
                    bindKey: "locationStatusEnum"
                },
                {
                    field: "changeType",
                    title: "变动类型",
                    type: "tag",
                    width: 100,
                    align: "left",
                    bindKey: "stockChangeType",
                },
                {
                    field: "orderId",
                    title: "单据主键",
                    type: "string",
                    width: 90,
                    align: "left",
                    hidden: true,
                },
                {
                    field: "orderNo",
                    title: "单据编号",
                    type: "int",
                    width: 160,
                    align: "left",
                },
                {
                    field: "orderDetailId",
                    title: "单据明细主键",
                    type: "string",
                    width: 200,
                    align: "left",
                    hidden: true,
                },
                {
                    field: "taskNum",
                    title: "任务号",
                    type: "string",
                    width: 180,
                    align: "left",
                },
                {
                    field: "creater",
                    title: "创建人",
                    type: "string",
                    width: 90,
                    align: "left",
                },
                {
                    field: "createDate",
                    title: "创建时间",
                    type: "datetime",
                    width: 160,
                    align: "left",
                    sort: true,
                },
                {
                    field: "modifier",
                    title: "修改人",
                    type: "string",
                    width: 100,
                    align: "left",
                    hidden: true,
                },
                {
                    field: "modifyDate",
                    title: "修改时间",
                    type: "datetime",
                    width: 160,
                    align: "left",
                    hidden: true,
                    sort: true,
                },
                {
                    field: "remark",
                    title: "备注",
                    type: "string",
                    width: 100,
                    align: "left",
                    hidden: true,
                },
            ],
            paginations: {
                sort: "CreateDate",
                order: "desc",
                Foots: "",
                total: 0,
                // 2020.08.29增加自定义分页条大小
                sizes: [30, 60, 100, 120],
                size: 30, // é»˜è®¤åˆ†é¡µå¤§å°
                Wheres: [],
                page: 1,
                rows: 30,
            },
            dictionaryList: null,
        };
    },
    methods: {
        open(row) {
            this.row = row;
            this.showDetialBox = true;
            this.getDetailData();
            this.getDictionaryData();
        },
        getDetailData() {
            this.http
                .post(
                    "/api/LocationStatusChangeRecord/GetLocationState?id=" + this.row.id,
                    {},
                    true
                )
                .then((x) => {
                    if (!x.status) return this.$message.error(x.message);
                    this.tableData = x.data;
                });
        },
        getDictionaryData() {
            if (this.dictionaryList) {
                return;
            }
            var param = [];
            this.tableColumns.forEach((x) => {
                if (x.type == "tag" && x.bindKey != "") {
                    param.push(x.bindKey);
                }
            });
            this.http
                .post("api/Sys_Dictionary/GetVueDictionary", param, "查询中")
                .then((x) => {
                    if (x.length > 0) {
                        this.dictionaryList = x;
                    }
                });
        },
        getDictionary(row, column) {
            if (this.dictionaryList) {
                var item = this.dictionaryList.find((x) => x.dicNo == column.bindKey);
                if (item) {
                    var dicItem = item.data.find((x) => x.key == row[column.field]);
                    console.log(dicItem);
                    if (dicItem) {
                        return dicItem.value;
                    }
                    else {
                        return row[column.field];
                    }
                } else {
                    return row[column.field];
                }
            }
        },
    },
    created() { },
};
</script>
<style scoped>
.el-col {
    border-radius: 4px;
}
.grid-content {
    border-radius: 4px;
    min-height: 36px;
}
.content-text {
    display: flex;
    align-items: center;
    justify-content: center;
}
.right-text {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}
</style>
<style>
.el-table .warning-row {
    background: #e6a23c;
}
.el-table .success-row {
    background: #f0f9eb;
}
.el-table .error-row {
    background: #f56c6c;
}
</style>