upperClothTwo.vue 6.94 KB
<template>
	<div class="app-body">
		<Header title="长沙货叉预装台看板#P502" :sysInitTimeNum="sysTimeNum"></Header>
		<div class="dv-content-body">
			<div class="container">
				<!-- 左侧卡片 -->
				<div class="card">
					<div class="card-header">
						<div class="header-item">
							<div class="label">站台</div>
							<div class="value">P1001</div>
						</div>
						<div class="header-item">
							<div class="label">部件名称</div>
							<div class="value">顶升框架</div>
						</div>
						<div class="header-item">
							<div class="label">项目号</div>
							<div class="value">CSN250115PAD1</div>
						</div>
						<div class="header-item">
							<div class="label">图号</div>
							<div class="value">097462-0101-0304-0</div>
						</div>
					</div>
					<table>
						<thead>
							<tr>
								<th>#</th>
								<th>工序名称</th>
								<th>加工名称</th>
								<th>状态</th>
							</tr>
						</thead>
						<tbody>
							<tr>
								<td>1</td>
								<td>龙加</td>
								<td>龙加1</td>
								<td class="status-done">已完成</td>
							</tr>
							<tr>
								<td>2</td>
								<td>龙加</td>
								<td>龙加2</td>
								<td class="status-undone">未完成</td>
							</tr>
							<tr>
								<td>3</td>
								<td>龙加</td>
								<td>龙加2</td>
								<td class="status-undone">未完成</td>
							</tr>
							<tr>
								<td>4</td>
								<td>龙加</td>
								<td>龙加2</td>
								<td class="status-undone">未完成</td>
							</tr>
							<tr>
								<td>5</td>
								<td>龙加</td>
								<td>龙加2</td>
								<td class="status-undone">未完成</td>
							</tr>
						</tbody>
					</table>
				</div>

				<!-- 右侧卡片 -->
				<div class="card">
					<div class="card-header">
						<div class="header-item">
							<div class="label">站台</div>
							<div class="value">P1002</div>
						</div>
						<div class="header-item">
							<div class="label">部件名称</div>
							<div class="value">板</div>
						</div>
						<div class="header-item">
							<div class="label">项目号</div>
							<div class="value">CSN250115PAD</div>
						</div>
						<div class="header-item">
							<div class="label">图号</div>
							<div class="value">097462-0101-0304-01</div>
						</div>
					</div>
					<table>
						<thead>
							<tr>
								<th>#</th>
								<th>工序名称</th>
								<th>加工名称</th>
								<th>状态</th>
							</tr>
						</thead>
						<tbody>
							<tr>
								<td>1</td>
								<td>龙加</td>
								<td>龙加1</td>
								<td class="status-done">已完成</td>
							</tr>
							<tr>
								<td>2</td>
								<td>龙加</td>
								<td>龙加2</td>
								<td class="status-undone">未完成</td>
							</tr>
							<tr>
								<td>3</td>
								<td>龙加</td>
								<td>龙加2</td>
								<td class="status-undone">未完成</td>
							</tr>
							<tr>
								<td>4</td>
								<td>龙加</td>
								<td>龙加2</td>
								<td class="status-undone">未完成</td>
							</tr>
							<tr>
								<td>5</td>
								<td>龙加</td>
								<td>龙加2</td>
								<td class="status-undone">未完成</td>
							</tr>
						</tbody>
					</table>
				</div>
			</div>
		</div>
	</div>
</template>

<script>
import Header from '@/layout/appHead'

export default {
	data() {
		return {
			baseUrlOff: 'http://172.16.30.219:5221/api/Index/GetWebFWSInfo',
			// baseUrlOff: 'http://127.0.0.1:6001/api/BulletinBoard/Mes/V1/ReadData1',
			baseUrlOnLine: window.appConfig.baseUrlintTwo,
			sysData: {},
			sysInitTimeNum: 20,
			sysTimeNum: 20,
		}
	},
	components: {
		Header,
	},

	methods: {
		getAGVDataOne() {
			let opt = {
				urlSuffix: window.baseOnLineOrOff ? this.baseUrlOnLine : this.baseUrlOff,
				logTitle: 'AGV-路线信息',
				isUrlALL: true,
				headers: window.baseOnLineOrOff,
				header: window.baseOnLineOrOff,
				// isHanderAjaxSuccessActionLoad: true,
				// type: 'post',
			}
			let callBackFn = (res) => {
				if (!this.ajaxSuccessDataBefore(res, opt.logTitle)) return

				setTimeout(() => {
					this.$refs.headLeft.sed(res.data.data)
					this.$refs.headCenter.getData(res.data.data)
					this.$refs.headRight.sed(res.data.data)
					this.$refs.footerLeft.sed(res.data.data)
					this.$refs.footerRight.sed(res.data.data)
				}, 300)
			}
			''.ajax(this, opt, callBackFn)
		},
		ajaxSuccessDataBefore(res, title) {
			if (res.data.data == null || res.data.data.length == 0) {
				this.sysData = []
				''.Log(title + '无数据', 'getData')
				return false
			}
			return true
		},
		intInterval: function() {
			''.intInterval(this, this.sysInitTimeNum, () => {
				this.getAGVDataOne()
			})
		},
		setData() {
			const data1 = {
				x: ['01-15'],
				running: [450],
			}
			this.$refs.footerLeft.getwarehouseHealthbar(data1)

			const data2 = {
				x: ['01-08', '01-09', '01-10', '01-11', '01-12', '01-13', '01-14'],
				running: [650, 750, 850, 900, 800, 700, 800, 800],
			}
			this.$refs.footerLeft.getwarehouseHealthbar2(data2)

			const data4 = [
				['1号焊机', '电流过大', '01-09 15:33/1'],
				['4号焊机', '电压过冲', '01-09 13:08/1'],
				['7号焊机', '电压过冲', '01-09 10:54/1'],
				['带锯床', '未匹配到该管径信息', '01-09 09:22/0'],
			]
			// this.$refs.footerRight.sed(data4)

			const data5 = {
				x: ['01-15'],
				running: [850],
			}
			this.$refs.bodyLeft.getwarehouseHealthbar(data5)

			const data3 = {
				x: ['01-08', '01-09', '01-10', '01-11', '01-12', '01-13', '01-14'],
				running: [800, 900, 650, 750, 850, 900, 750, 650],
			}
			this.$refs.bodyLeft.getwarehouseHealthbar2(data3)

			const data7 = {
				x: ['焊机', '带锯床', '切坡一体机'],
				running: [36, 1, 1],
				error: [0, 0, 0],
			}
			this.$refs.bodyRight.getwarehouseHealthbar(data7)
		},
	},
	mounted() {
		debugger
		// this.setData()
		// this.getAGVDataOne()
		// this.intInterval()
	},
}
</script>

<style lang="scss" scoped>
.app-body {
	height: 100%;
	width: 100%;
}

.dv-content-body {
	height: 90%;
	width: 100%;
}

.container {
	display: flex;
	width: 99vw;
	height: 42vw;
	margin-left: 0.5vw;
}
.card {
	flex: 1;
	background-color: rgba(10, 26, 58, 0.8);
	border: 1px solid #00bfff;
	border-radius: 0.5vw;
	padding: 1vw;
}
.card-header {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1vw;
	margin-bottom: 2vw;
}
.header-item {
	background-color: rgba(0, 60, 120, 0.6);
	border: 1px solid #00bfff;
	border-radius: 0.3vw;
	padding: 1vw;
	text-align: center;
}
.header-item .label {
	font-size: 1.2vw;
	color: #b0e0ff;
}
.header-item .value {
	font-size: 1.8vw;
	font-weight: bold;
	color: #00ccff;
}
table {
	width: 100%;
	border-collapse: collapse;
}
th,
td {
	border: 1px solid #00bfff;
	padding: 1vw;
	text-align: center;
	font-size: 1.6vw;
}
th {
	background-color: #007acc;
	color: #fff;
}
tr:nth-child(odd) {
	background-color: rgba(0, 40, 80, 0.6);
}
tr:nth-child(even) {
	background-color: rgba(0, 60, 100, 0.6);
}
.status-done {
	color: #00ff88;
}
.status-undone {
	color: #ffff66;
}
</style>