location.vue 9.62 KB
<template>
  <el-container style="padding: 20px">
    <el-aside>
      <el-card :style="{ height: asideHeight }">
        <el-form label-width="80px">
          <el-form-item label="库位编号">
            <el-input
              v-model="locationCode"
              placeholder="请输入库位编号"
            ></el-input>
          </el-form-item>
          <el-form-item label="关联库位">
            <el-input
              v-model="associatedLocation"
              placeholder="请输入关联库位"
            ></el-input>
          </el-form-item>
          <el-form-item label="容器编码">
            <el-input
              v-model="containerCode"
              placeholder="请输入容器编码"
            ></el-input>
          </el-form-item>
          <el-form-item label="区域">
            <el-input v-model="area" placeholder="请输入区域"></el-input>
          </el-form-item>
          <el-form-item label="库位状态">
            <el-select v-model="locationStatus" placeholder="请选择库位状态">
              <el-option label="正常" value="normal"></el-option>
              <el-option label="禁用" value="disabled"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="仓库编码">
            <el-select v-model="warehouseCode" placeholder="请选择仓库编码">
              <el-option
                v-for="item in warehouseList"
                :key="item.code"
                :label="item.code"
                :value="item.code"
              ></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="容器状态">
            <el-select v-model="containerStatus" placeholder="请选择容器状态">
              <el-option label="全部" value="all"></el-option>
              <el-option label="有容器" value="available"></el-option>
              <el-option label="无容器" value="unavailable"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item>
            <el-row>
              <el-col :span="8">
                <el-button type="primary" size="small" @click="handleQuery"
                  >查询</el-button
                >
              </el-col>
              <el-col :span="8">
                <el-button type="success" size="small" @click="handleAdd"
                  >新增</el-button
                >
              </el-col>
            </el-row>
            <el-row style="margin-top: 5px">
              <el-col :span="8">
                <el-button type="warning" size="small" @click="handleEdit"
                  >编辑</el-button
                >
              </el-col>
              <el-col :span="8">
                <el-button type="danger" size="small" @click="handleDelete"
                  >删除</el-button
                >
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="8" :offset="2">
                <el-button type="success" size="small" @click="handleQuery"
                  >更改状态</el-button
                >
              </el-col>
            </el-row>
          </el-form-item>

          <el-form-item>
            <div style="margin-left: -80px">
              <el-card :style="{ width: '205px', margin: '0 auto' }">
                <template #header>
                  <div class="card-header">
                    <span>容器信息</span>
                  </div>
                </template>
                <el-form-item label="容器号">
                  <el-input
                    v-model="area"
                    placeholder="请输入容器号"
                  ></el-input>
                </el-form-item>
                <el-row style="display: flex">
                  <el-col style="padding-left: 16px">
                    <el-button
                      type="danger"
                      size="small"
                      @click="handleContainerDelete"
                      >删除</el-button
                    >
                  </el-col>
                  <el-col>
                    <el-button
                      type="warning"
                      size="small"
                      @click="handleContainerEdit"
                      >写入容器</el-button
                    >
                  </el-col>
                </el-row>
              </el-card>
            </div>
          </el-form-item>
        </el-form>
      </el-card>
    </el-aside>
    <el-main>
      <el-card>
        <el-table
          :data="tableData"
          style="width: 100%"
          :height="TableHeight"
          border
          stripe
          @selection-change="handleSelectionChange"
        >
          <el-table-column type="selection" width="55"></el-table-column>

          <el-table-column
            prop="locationCode"
            label="库位编码"
          ></el-table-column>
          <el-table-column
            prop="associatedLocation"
            label="关联库位"
          ></el-table-column>
          <el-table-column
            prop="containerCode"
            label="容器编码"
          ></el-table-column>
          <el-table-column prop="type" label="类型"></el-table-column>
          <el-table-column prop="row" label="行"></el-table-column>
          <el-table-column prop="column" label="列"></el-table-column>
          <el-table-column prop="layer" label="层"></el-table-column>
          <el-table-column prop="area" label="区域"></el-table-column>
          <el-table-column prop="aisle" label="巷道"></el-table-column>
          <el-table-column
            prop="stackerMark"
            label="堆垛机标记"
          ></el-table-column>
          <el-table-column
            prop="lowerRowIndex1"
            label="下位排索引1"
          ></el-table-column>
          <el-table-column
            prop="lowerRowIndex2"
            label="下位排索引2"
          ></el-table-column>
          <el-table-column prop="status" label="状态"></el-table-column>
          <el-table-column prop="warehouse" label="仓库"></el-table-column>
        </el-table>
        <el-pagination
          style="margin-top: 15px"
          align="center"
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="currentPage"
          :page-sizes="[10, 20, 50, 100]"
          :page-size="pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="this.tableData.length"
        />
      </el-card>
    </el-main>
  </el-container>
</template>

<script>
export default {
  name: "location",
  data() {
    return {
      // 修改仓库编码为库位编号
      locationCode: "",
      // 新增关联库位
      associatedLocation: "",
      // 新增容器编码
      containerCode: "",
      // 新增区域
      area: "",
      // 新增库位状态
      locationStatus: "",
      // 新增选中的仓库编码
      warehouseCode: "",
      // 新增仓库列表
      warehouseList: [
        { code: "WH001", name: "主仓库" },
        { code: "WH002", name: "分仓库" },
        { code: "WH003", name: "临时仓库" },
      ],
      currentPage: 1,
      total: 0,
      pageSize: 10,
      selectedItems: [],
      tableData: [
        {
          id: 1,
          locationCode: "LC001",
          associatedLocation: "LC002",
          containerCode: "CC001",
          type: "类型1",
          row: "1",
          column: "1",
          layer: "1",
          aisle: "A1",
          stackerMark: "SM001",
          lowerRowIndex1: "1",
          lowerRowIndex2: "2",
          status: "正常",
          warehouse: "主仓库",
          remark: "主要存储货物的仓库",
          created: "2023-01-01 10:00:00",
          createdBy: "admin",
          updated: "2023-01-02 14:30:00",
          updatedBy: "admin",
        },
        {
          id: 2,
          warehouseCode: "WH002",
          warehouseName: "分仓库",
          remark: "辅助存储货物的仓库",
          created: "2023-01-01 10:00:00",
          createdBy: "admin",
          updated: "2023-01-03 09:15:00",
          updatedBy: "admin",
        },
        {
          id: 3,
          warehouseCode: "WH003",
          warehouseName: "临时仓库",
          remark: "临时存储货物的仓库",
          created: "2023-01-01 10:00:00",
          createdBy: "admin",
          updated: "2023-01-04 16:45:00",
          updatedBy: "admin",
        },
      ],
      // 新增容器状态
      containerStatus: "all",
    };
  },
  computed: {
    TableHeight() {
      return `calc(100vh - 220px )`;
    },
    asideHeight() {
      return `calc(100vh - 150px)`;
    },
  },
  methods: {
    handleSelectionChange(val) {
      this.selectedItems = val;
      // console.log("选中的行数据:", this.selectedItems);
    },
    handleSizeChange(val) {
      this.pageSize = val;
      this.currentPage = 1;
      this.handleQuery();
    },

    handleCurrentChange(val) {
      this.currentPage = val;
      this.handleQuery();
    },
    handleQuery() {
      // 查询逻辑
    },
    handleAdd() {
      // 新增逻辑
    },
    handleEdit() {
      // 编辑逻辑
    },
    handleDelete() {
      // 删除逻辑
    },
    // 新增容器删除方法
    handleContainerDelete() {
      // 容器删除逻辑
    },
    // 新增容器编辑方法
    handleContainerEdit() {
      // 容器编辑逻辑
    },
  },
};
</script>

<style scoped>
.el-card__body,
.el-main {
  padding: 0 10px 0 10px;
}
::v-deep.el-table thead {
  color: #101010;
  font-weight: 600;
}
.card-header {
  height: 21px;
  text-align: center;
}
.el-card__header {
  padding: 2px 20px !important;
}
.el-form-item {
  margin-bottom: 18px;
}

/* 样式定义 */
</style>