123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- <template>
- <div class="centerRight2">
- <div class="bg-color-black">
- <div class="d-flex pt-2 pl-2">
- <span>
- <i class="iconfont icon-vector" />
- </span>
- <div class="d-flex">
- <span class="fs-xl text mx-2">任务完成排行榜</span>
- </div>
- </div>
- <div class="d-flex mt-1 jc-center body-box">
- <dv-scroll-board
- ref="scrollBoard"
- class="dv-scr-board"
- :config="config"
- />
- </div>
- </div>
- </div>
- </template>
- <script>
- export default {
- data() {
- return {
- config: {
- header: ["托盘号","批次号", "起始位置", "终止位置", "任务状态"],
- data: [
- ["数据加载中..."," ", " ", " ", " "],
- [" ", " ", " ", " "," "],
- [" ", " ", " ", " "," "],
- [" ", " ", " ", " "," "],
- [" ", " ", " ", " "," "],
- [" ", " ", " ", " "," "],
- [" ", " ", " ", " "," "],
- ],
- rowNum: 7,
- headerHeight: 35,
- headerBGC: "#0f1325",
- oddRowBGC: "#0f1325",
- evenRowBGC: "#171c33",
- index: true,
- columnWidth: [5,75,150],
- align: ["center", "center", "center", "center", "center"],
- },
- intervalId: null,
- token: "PDA1",
- };
- },
- mounted() {
- this.fetchData();
- // 每分钟刷新一次数据
- this.intervalId = setInterval(this.fetchData, 60000);
- },
- beforeUnmount() {
- // 清除定时器
- clearInterval(this.intervalId);
- },
- methods: {
- async fetchData() {
- try {
- const headers = new Headers({
- Accept: "application/json, text/plain, */*",
- token: this.token,
- });
- const url = "http://192.168.18.200:8008/container/wcs_task/";
- // const url = "http://192.168.18.200:8008/container/wcs_task/";
- const response = await fetch(url, {
- method: "GET",
- headers: headers,
- });
- if (!response.ok) {
- throw new Error(
- `网络错误: ${response.status} ${response.statusText}`
- );
- }
- const jsonData = await response.json();
- console.log("数据获取成功:", jsonData);
- const tableData = jsonData.results.map((item) => [
- item.container,
- item.batch_code,
- item.current_location,
- item.target_location,
- item.message,
- ]);
- // 应用平台主题色
- const statusColors = {
- 进行中: "#ffb638", // 橘黄色
- 任务已完成: "#2ed47a", // 绿色
- 等待出库: "#3c9aff", // 蓝色
- };
- while (tableData.length < 7) {
- tableData.push(["-", "-", "-", "-", "-"]);
- }
- const formattedData = tableData.map((row) => {
- const status = row[4];
- return [
- `<span style="color: #fff">${row[0]}</span>`,
- `<span style="color: #c0e4ff">${row[1]}</span>`,
- `<span style="color: #c0e4ff">${row[2]}</span>`,
- `<span style="color: #c0e4ff">${row[3]}</span>`,
- `<span style="color: ${
- statusColors[status] || "#fff"
- }; font-weight: 500">${status}</span>`,
- ];
- });
- this.config.data =
- tableData.length > 0 ? formattedData : [["暂无数据", "", "", ""]];
- console.log("数据处理成功:", this.config.data);
- this.$refs["scrollBoard"].updateRows(this.config.data);
- } catch (error) {
- console.error("数据获取失败:", error);
- const errorMessage = `加载失败: ${error.message}`;
- this.config.data = [
- [errorMessage, "", "", ""],
- ["请检查网络连接", "", "", ""],
- ["或服务地址是否正确", "", "", ""],
- ["Token: " + this.token, "", "", ""],
- ];
- }
- },
- },
- };
- </script>
- <style lang="scss" scoped>
- $box-height: 410px;
- $box-width: 100%;
- .centerRight2 {
- padding: 16px;
- padding-top: 20px;
- height: $box-height;
- width: $box-width;
- border-radius: 5px;
- .bg-color-black {
- height: $box-height - 30px;
- border-radius: 10px;
- }
- .text {
- color: #c3cbde;
- }
- .body-box {
- border-radius: 10px;
- overflow: hidden;
- .dv-scr-board {
- width: 98%;
- height: 340px;
- }
- }
- }
- </style>
|