分支自 SuZhouGuanHong/TaiYuanTaiZhong

huanghongfeng
2024-05-11 93ec721282fb2ef08d74d5f136809f24fcc9768b
库位平面图
已修改4个文件
183 ■■■■■ 文件已修改
代码管理/WMS/WMS_Client/src/views/Home.vue 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/IServices/system/Partial/Idt_stationinfoService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_stationinfoController.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WMS/WMS_Client/src/views/Home.vue
@@ -1,24 +1,157 @@
<template>
  <div class="title">Welcome To WMS!</div>
  <div>
    <el-button type="success" style="width: 10%;height: 50px;" v-on:click="selList()">刷新</el-button>
  </div>
  <div v-for="(index,inst) in datalist.length" :key="inst" style="padding: 10px;">
    <h1 style="border-bottom: 1px dashed silver; padding: 5px;;height: 52px;">
      <span v-if="inst==0">叠盘区</span>
      <span v-else-if="inst==1">上料区</span>
      <span v-else-if="inst==2">下料区</span>
      <span v-else-if="inst==3">外协区</span>
      <span v-else-if="inst==4">托盘叠放区</span>
      <span v-else>{{inst-3}}库区</span>
      <span style="margin-left: 40px;">
        <el-button  circle style="background-color: #409eff;color: #000;">有货</el-button>
        <el-button  circle style="background-color: lightgreen;color: #000;">空货位</el-button>
        <el-button  circle style="background-color: yellow;color: #000;">出入库占用</el-button>
        <el-button  circle style="background-color: red;color: #000;">异常</el-button>
        <el-button  circle style="background-color: #C0C4CC;color: #000;">禁用</el-button>
      </span>
    </h1>
  <div class="table-container">
    <div class="scrollable-table">
      <table class="one_tal">
        <tr v-for="(item, k) in datalist[inst].item2" :key="k">
          <td v-for="items in filteredItems(datalist[inst].item1, k+1)" :key="items.stationCode"
          :style="{ 'background-color': getBackgroundColor(items.enable,items.location_state) }">
            <el-tooltip class="item" effect="dark" placement="right" >
              <template #content v-if="items.stationType!=='' && items.bindSN !== '' && items.stationType!==null && items.bindSN !== null">
                <div>物料类型(图号): {{ items.stationType }}</div>
                <div>炉号: {{ items.heatNumber }}</div>
                <div>车轮SN号:{{ items.bindSN }}</div>
              </template>
              <template #content v-else>
                <div>目前暂无信息</div>
              </template>
              <template #content v-if="items.area==11">
                <div>小托盘</div>
                <div>数量:{{ items.quantity }}</div>
              </template>
              <template #content v-if="items.area==10">
                <div>大托盘</div>
                <div>数量:{{ items.quantity }}</div>
              </template>
              <template #content v-if="items.area==12">
                <div v-if="item.tray_type=='SmallTray'">小托盘</div>
                <div v-else>大托盘</div>
                <div>数量:{{ items.quantity }}</div>
              </template>
              <div>{{ items.stationCode}}</div>
            </el-tooltip>
          </td>
        </tr>
      </table>
    </div>
  </div>
  </div>
</template>
<script>
import { ref, reactive } from 'vue'
export default {
  setup() {
  data() {
    return {
      visible: false,
      datalist:[]
    };
  },
  mounted() {
    this.$nextTick(() => {
      this.selList();
    });
  },
  methods: {
    selList(){
      this.http.post("/api/dt_stationinfo/dt_stationinfolist").then(x => {
        this.datalist = x.data;
        console.log(this.datalist)
                  })
      .catch(error => {
        console.error('请求出错:', error);
      });
    },
    getBackgroundColor(enable,locationState) {
      if (enable=='0') {
          return '#C0C4CC';
      }
      else{
        switch (locationState) {
        case 'Stroge':
        return '#409eff';
        case 'Empty':
          return 'lightgreen';
        case 'InBusy':
          return 'yellow';
        case 'OutBusy':
          return 'yellow';
        case 'Abnormal':
          return 'red';
        default:
          return 'transparent';
      }
      }
    }
  },
  computed: {
    filteredItems() {
      return (itemList, line) => {
        return itemList.filter(item => item.line === line);
      };
    }
  }
}
};
</script>
<style scoped>
.title {
  line-height: 70vh;
.table-container {
  overflow-x: auto;
}
.scrollable-table {
  width: 100%;
}
.one_tal {
  margin-top: 10px;
  padding: 5px;
  white-space: nowrap;
  border-spacing: 10px;
  padding-right: 500px;
}
.one_tal tr{
  margin-top: 10px;
  margin-bottom: 10px;
}
.one_tal td {
  width: 200px;
  height: 40px;
  background-color: rgb(36, 227, 241);
  text-align: center;
  font-size: 28px;
  color: orange;
  border-radius: 10px;
}
.table-container::-webkit-scrollbar {
  width: 1px;
  height: 15px;
}
.table-container::-webkit-scrollbar-track {
  background: transparent;
}
.table-container::-webkit-scrollbar-thumb {
  background-color: #ccc;
}
</style>
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/IServices/system/Partial/Idt_stationinfoService.cs
@@ -11,5 +11,6 @@
    {
        WebResponseContent SetStationEnable(object parm);
        WebResponseContent SendAGVTask(object parm);
        WebResponseContent dt_stationinfolist();
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Services/system/Partial/dt_stationinfoService.cs
@@ -23,6 +23,8 @@
using WIDESEA_Core.ManageUser;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using static System.Collections.Specialized.BitVector32;
using WIDESEA_Core.EFDbContext;
using WIDESEA_WMS.Repositories;
namespace WIDESEA_WMS.Services
{
@@ -172,5 +174,23 @@
            return webResponse;
        }
        public WebResponseContent dt_stationinfolist()
        {
            WebResponseContent content = new WebResponseContent();
            VOLContext volContext = new VOLContext();
            Idt_stationinfoRepository dsta = new dt_stationinfoRepository(volContext);
            string[] stationCodes = { "DD","S", "X", "W","A", "B", "C", "D01" };
            List<Tuple<List<dt_stationinfo>, int>> responseData = new List<Tuple<List<dt_stationinfo>, int>>();
            foreach (string code in stationCodes)
            {
                var data = dsta.Find(_ => true).Where(a => a.stationCode.Contains(code)).OrderBy(a => a.stationCode).ToList();
                int inst = dsta.Find(_ => true).Where(a => a.stationCode.Contains(code)).GroupBy(a => a.line).Count();
                responseData.Add(Tuple.Create(data, inst));
            }
            content.Data = responseData;
            return content;
        }
    }
}
´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WebApi/Controllers/WIDESEA_WMS/Partial/dt_stationinfoController.cs
@@ -52,5 +52,16 @@
        {
            return dt_stationinfoService.Instance.SendAGVTask(parm);
        }
        /// <summary>
        /// å±•示平面图数据
        /// </summary>
        /// <param name="parm"></param>
        /// <returns></returns>
        [HttpPost, Route("dt_stationinfolist")]
        public object dt_stationinfolist()
        {
            return dt_stationinfoService.Instance.dt_stationinfolist();
        }
    }
}