|
@@ -10,47 +10,131 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="d-flex mt-1 jc-center body-box">
|
|
|
- <dv-scroll-board class="dv-scr-board" :config="config" />
|
|
|
+ <dv-scroll-board
|
|
|
+ ref="scrollBoard"
|
|
|
+ class="dv-scr-board"
|
|
|
+ :config="config"
|
|
|
+ />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { defineComponent, reactive } from 'vue'
|
|
|
-export default defineComponent({
|
|
|
- setup() {
|
|
|
- const config = reactive({
|
|
|
- header: ['组件', '分支', '覆盖率'],
|
|
|
- data: [
|
|
|
- ['组件1', 'dev-1', "<span class='colorGrass'>↑75%</span>"],
|
|
|
- ['组件2', 'dev-2', "<span class='colorRed'>↓33%</span>"],
|
|
|
- ['组件3', 'dev-3', "<span class='colorGrass'>↑100%</span>"],
|
|
|
- ['组件4', 'rea-1', "<span class='colorGrass'>↑94%</span>"],
|
|
|
- ['组件5', 'rea-2', "<span class='colorGrass'>↑95%</span>"],
|
|
|
- ['组件6', 'fix-2', "<span class='colorGrass'>↑63%</span>"],
|
|
|
- ['组件7', 'fix-4', "<span class='colorGrass'>↑84%</span>"],
|
|
|
- ['组件8', 'fix-7', "<span class='colorRed'>↓46%</span>"],
|
|
|
- ['组件9', 'dev-2', "<span class='colorRed'>↓13%</span>"],
|
|
|
- ['组件10', 'dev-9', "<span class='colorGrass'>↑76%</span>"]
|
|
|
- ],
|
|
|
- rowNum: 7, //表格行数
|
|
|
- headerHeight: 35,
|
|
|
- headerBGC: '#0f1325', //表头
|
|
|
- oddRowBGC: '#0f1325', //奇数行
|
|
|
- evenRowBGC: '#171c33', //偶数行
|
|
|
- index: true,
|
|
|
- columnWidth: [50],
|
|
|
- align: ['center']
|
|
|
- })
|
|
|
- return { config }
|
|
|
- }
|
|
|
-})
|
|
|
+
|
|
|
+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.31.105: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: 300px;
|
|
|
+$box-width: 100%;
|
|
|
.centerRight2 {
|
|
|
padding: 16px;
|
|
|
padding-top: 20px;
|
|
@@ -68,7 +152,7 @@ $box-width: 300px;
|
|
|
border-radius: 10px;
|
|
|
overflow: hidden;
|
|
|
.dv-scr-board {
|
|
|
- width: 270px;
|
|
|
+ width: 98%;
|
|
|
height: 340px;
|
|
|
}
|
|
|
}
|