|
|
|
|
@ -3,365 +3,397 @@
|
|
|
|
|
<head>
|
|
|
|
|
<th:block th:include="include :: header('轮胎详情')" />
|
|
|
|
|
<style>
|
|
|
|
|
body {
|
|
|
|
|
background: #f3f3f4;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.detail-shell {
|
|
|
|
|
padding: 15px;
|
|
|
|
|
padding: 14px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.summary-card,
|
|
|
|
|
.info-card,
|
|
|
|
|
.timeline-card {
|
|
|
|
|
.summary-panel,
|
|
|
|
|
.info-panel,
|
|
|
|
|
.life-panel {
|
|
|
|
|
background: #fff;
|
|
|
|
|
border-radius: 10px;
|
|
|
|
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
|
|
|
|
|
margin-bottom: 16px;
|
|
|
|
|
border: 1px solid #e7eaec;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
margin-bottom: 14px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.summary-card {
|
|
|
|
|
padding: 20px 24px;
|
|
|
|
|
.summary-panel {
|
|
|
|
|
padding: 18px 20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.summary-title {
|
|
|
|
|
.summary-main {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: flex-start;
|
|
|
|
|
gap: 16px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.summary-name {
|
|
|
|
|
font-size: 34px;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
color: #2f4050;
|
|
|
|
|
line-height: 1.2;
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
font-size: 26px;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
line-height: 1.25;
|
|
|
|
|
word-break: break-all;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.summary-meta {
|
|
|
|
|
color: #666;
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
line-height: 1.9;
|
|
|
|
|
.summary-sub {
|
|
|
|
|
margin-top: 8px;
|
|
|
|
|
color: #676a6c;
|
|
|
|
|
line-height: 1.8;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.summary-link {
|
|
|
|
|
.summary-status {
|
|
|
|
|
min-width: 118px;
|
|
|
|
|
text-align: right;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.status-pill {
|
|
|
|
|
display: inline-block;
|
|
|
|
|
margin-top: 14px;
|
|
|
|
|
padding: 6px 12px;
|
|
|
|
|
border-radius: 16px;
|
|
|
|
|
color: #1c84c6;
|
|
|
|
|
border-bottom: 2px solid #1c84c6;
|
|
|
|
|
padding-bottom: 4px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.info-card {
|
|
|
|
|
padding: 18px 20px 10px;
|
|
|
|
|
background: #e8f4fb;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.section-title {
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
padding: 14px 16px;
|
|
|
|
|
border-bottom: 1px solid #edf1f2;
|
|
|
|
|
color: #2f4050;
|
|
|
|
|
margin-bottom: 14px;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.section-title i {
|
|
|
|
|
margin-right: 6px;
|
|
|
|
|
color: #666;
|
|
|
|
|
color: #1c84c6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.info-table {
|
|
|
|
|
width: 100%;
|
|
|
|
|
border-collapse: collapse;
|
|
|
|
|
table-layout: fixed;
|
|
|
|
|
margin-bottom: 16px;
|
|
|
|
|
.info-grid {
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
|
|
|
border-top: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.info-table th,
|
|
|
|
|
.info-table td {
|
|
|
|
|
border: 1px solid #edf1f2;
|
|
|
|
|
padding: 12px 14px;
|
|
|
|
|
.info-cell {
|
|
|
|
|
min-height: 68px;
|
|
|
|
|
padding: 10px 12px;
|
|
|
|
|
border-right: 1px solid #edf1f2;
|
|
|
|
|
border-bottom: 1px solid #edf1f2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.info-cell:nth-child(4n) {
|
|
|
|
|
border-right: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.info-label {
|
|
|
|
|
margin-bottom: 6px;
|
|
|
|
|
color: #8a9199;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.info-value {
|
|
|
|
|
color: #2f4050;
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
line-height: 1.5;
|
|
|
|
|
word-break: break-all;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.info-table th {
|
|
|
|
|
width: 20%;
|
|
|
|
|
color: #7a8590;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
background: #fafbfc;
|
|
|
|
|
.life-panel {
|
|
|
|
|
padding-bottom: 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.info-table td {
|
|
|
|
|
color: #2f4050;
|
|
|
|
|
background: #fff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.timeline-card {
|
|
|
|
|
padding: 18px 18px 12px;
|
|
|
|
|
min-height: 320px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.timeline-header {
|
|
|
|
|
.life-summary {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: center;
|
|
|
|
|
margin-bottom: 18px;
|
|
|
|
|
gap: 10px;
|
|
|
|
|
padding: 12px 16px 4px;
|
|
|
|
|
color: #676a6c;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.timeline-header .title {
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
color: #2f4050;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.mini-tip {
|
|
|
|
|
.life-count {
|
|
|
|
|
padding: 5px 10px;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
background: #f8fafb;
|
|
|
|
|
border: 1px solid #edf1f2;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #999;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.life-section {
|
|
|
|
|
padding: 8px 16px 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.life-section-title {
|
|
|
|
|
margin: 8px 0 12px;
|
|
|
|
|
color: #2f4050;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.life-list {
|
|
|
|
|
position: relative;
|
|
|
|
|
list-style: none;
|
|
|
|
|
padding: 0;
|
|
|
|
|
margin: 0;
|
|
|
|
|
position: relative;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.life-list:before {
|
|
|
|
|
content: "";
|
|
|
|
|
position: absolute;
|
|
|
|
|
left: 22px;
|
|
|
|
|
top: 8px;
|
|
|
|
|
bottom: 8px;
|
|
|
|
|
left: 13px;
|
|
|
|
|
width: 2px;
|
|
|
|
|
background: #e4e7ea;
|
|
|
|
|
background: #e7eaec;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.life-item {
|
|
|
|
|
position: relative;
|
|
|
|
|
padding-left: 54px;
|
|
|
|
|
margin-bottom: 22px;
|
|
|
|
|
min-height: 58px;
|
|
|
|
|
padding: 0 0 16px 42px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.life-dot {
|
|
|
|
|
position: absolute;
|
|
|
|
|
left: 14px;
|
|
|
|
|
top: 4px;
|
|
|
|
|
top: 3px;
|
|
|
|
|
left: 5px;
|
|
|
|
|
width: 18px;
|
|
|
|
|
height: 18px;
|
|
|
|
|
border: 3px solid #d7ebf8;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
background: #1c84c6;
|
|
|
|
|
border: 3px solid #d7ebf8;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.life-time {
|
|
|
|
|
color: #909399;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
margin-bottom: 4px;
|
|
|
|
|
.life-item.is-out .life-dot {
|
|
|
|
|
border-color: #f8e7c6;
|
|
|
|
|
background: #f8ac59;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.life-item.is-install .life-dot {
|
|
|
|
|
border-color: #d8f0df;
|
|
|
|
|
background: #1ab394;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.life-item.is-uninstall .life-dot {
|
|
|
|
|
border-color: #f7d8dd;
|
|
|
|
|
background: #ed5565;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.life-title-row {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
gap: 12px;
|
|
|
|
|
margin-bottom: 6px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.life-title {
|
|
|
|
|
color: #2f4050;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
margin-bottom: 6px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.life-body {
|
|
|
|
|
color: #666;
|
|
|
|
|
line-height: 1.7;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.text-muted-dash {
|
|
|
|
|
.life-time {
|
|
|
|
|
color: #999;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@media (max-width: 991px) {
|
|
|
|
|
.summary-title {
|
|
|
|
|
.life-meta {
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
|
|
|
gap: 6px 14px;
|
|
|
|
|
color: #676a6c;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
line-height: 1.6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.life-remark {
|
|
|
|
|
grid-column: 1 / -1;
|
|
|
|
|
color: #8a6d3b;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.empty-life {
|
|
|
|
|
padding: 48px 16px;
|
|
|
|
|
color: #999;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@media (max-width: 900px) {
|
|
|
|
|
.summary-main,
|
|
|
|
|
.life-title-row {
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.summary-status {
|
|
|
|
|
text-align: left;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.info-grid,
|
|
|
|
|
.life-meta {
|
|
|
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.info-cell:nth-child(4n) {
|
|
|
|
|
border-right: 1px solid #edf1f2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.info-cell:nth-child(2n) {
|
|
|
|
|
border-right: 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
</head>
|
|
|
|
|
<body class="gray-bg">
|
|
|
|
|
<div class="wrapper wrapper-content detail-shell">
|
|
|
|
|
<div class="summary-card">
|
|
|
|
|
<div class="summary-title">
|
|
|
|
|
<body>
|
|
|
|
|
<div class="detail-shell"
|
|
|
|
|
th:with="resultBase=${resultMap['resultBase']},
|
|
|
|
|
recordWarehousingList=${resultMap['recordWarehousingList']},
|
|
|
|
|
recordTyreInstallList=${resultMap['recordTyreInstallList']}">
|
|
|
|
|
<div class="summary-panel">
|
|
|
|
|
<div class="summary-main">
|
|
|
|
|
<div>
|
|
|
|
|
<div class="summary-name" th:text="'胎号:' + ${tyre.tyreNo}">胎号:-</div>
|
|
|
|
|
<div class="summary-meta">
|
|
|
|
|
<div th:text="'所在车辆:' + ${#strings.isEmpty(tyre.carNo) ? '-' : tyre.carNo}">所在车辆:-</div>
|
|
|
|
|
<div th:text="'所属公司:' + ${#strings.isEmpty(tyre.company) ? '-' : tyre.company}">所属公司:-</div>
|
|
|
|
|
<div th:text="'所属修理厂:' + ${#strings.isEmpty(tyre.team) ? '-' : tyre.team}">所属修理厂:-</div>
|
|
|
|
|
<div th:text="'所属车队:' + ${#strings.isEmpty(tyre.carTeam) ? '-' : tyre.carTeam}">所属车队:-</div>
|
|
|
|
|
<div class="summary-name" th:text="${#strings.isEmpty(resultBase.tyreNo) ? '胎号:-' : '胎号:' + resultBase.tyreNo}">胎号:-</div>
|
|
|
|
|
<div class="summary-sub">
|
|
|
|
|
<span th:text="${#strings.isEmpty(resultBase.tyreEpc) ? 'RFID:-' : 'RFID:' + resultBase.tyreEpc}">RFID:-</span>
|
|
|
|
|
<span> / </span>
|
|
|
|
|
<span th:text="${#strings.isEmpty(resultBase.selfNo) ? '自编号:-' : '自编号:' + resultBase.selfNo}">自编号:-</span>
|
|
|
|
|
</div>
|
|
|
|
|
<span class="summary-link" th:text="${tyre.tyreNo}">-</span>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- <div>-->
|
|
|
|
|
<!-- <a class="btn btn-white btn-sm" href="javascript:void(0)" onclick="editTyre()" th:if="${@permission.hasPermi('tyre:tyre:edit')}">编辑</a>-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
<div class="summary-status">
|
|
|
|
|
<span class="status-pill" th:text="${#strings.isEmpty(resultBase.carNo) ? '在库/待入库' : '在车'}">在库/待入库</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-lg-9 col-md-8 col-sm-12">
|
|
|
|
|
<div class="info-card">
|
|
|
|
|
<div class="section-title"><i class="fa fa-bookmark"></i>基本信息</div>
|
|
|
|
|
<table class="info-table">
|
|
|
|
|
<tr>
|
|
|
|
|
<th>胎号</th>
|
|
|
|
|
<td th:text="${#strings.isEmpty(tyre.tyreNo) ? '-' : tyre.tyreNo}">-</td>
|
|
|
|
|
<th>轮胎自编号</th>
|
|
|
|
|
<td th:text="${#strings.isEmpty(tyre.selfNo) ? '-' : tyre.selfNo}">-</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<tr>
|
|
|
|
|
<!-- <th>轮胎自编号二</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<th>RFID标签</th>
|
|
|
|
|
<td th:text="${#strings.isEmpty(tyre.tyreEpc) ? '-' : tyre.tyreEpc}">-</td>
|
|
|
|
|
<th>轮胎品牌</th>
|
|
|
|
|
<td th:text="${#strings.isEmpty(tyre.tyreBrand) ? '-' : tyre.tyreBrand}">-</td>
|
|
|
|
|
</tr>
|
|
|
|
|
<!-- <tr>-->
|
|
|
|
|
<!-- <th>供应商</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- </tr>-->
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<th>轮胎花纹</th>
|
|
|
|
|
<td th:text="${#strings.isEmpty(tyre.tyrePattern) ? '-' : tyre.tyrePattern}">-</td>
|
|
|
|
|
<th>轮胎层级</th>
|
|
|
|
|
<td th:text="${#strings.isEmpty(tyre.tyreLevel) ? '-' : tyre.tyreLevel}">-</td>
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
<!-- <th>DOT</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<th>轮胎规格</th>
|
|
|
|
|
<td th:text="${#strings.isEmpty(tyre.tyreModel) ? '-' : tyre.tyreModel}">-</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
<div class="info-panel">
|
|
|
|
|
<div class="section-title"><i class="fa fa-bookmark"></i>基础档案</div>
|
|
|
|
|
<div class="info-grid">
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">轮胎品牌</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.tyreBrand) ? '-' : resultBase.tyreBrand}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="info-card">
|
|
|
|
|
<div class="section-title"><i class="fa fa-bookmark"></i>状态信息</div>
|
|
|
|
|
<table class="info-table">
|
|
|
|
|
<!-- <tr>-->
|
|
|
|
|
<!-- <th>轮胎状态</th>-->
|
|
|
|
|
<!-- <td th:text="${tyreStatusText}">在库</td>-->
|
|
|
|
|
<!-- </tr>-->
|
|
|
|
|
<tr>
|
|
|
|
|
<th>轮胎类别</th>
|
|
|
|
|
<td th:text="${#strings.isEmpty(tyre.tyreType) ? '-' : @dict.getLabel('tyre_type', tyre.tyreType)}">-</td>
|
|
|
|
|
<th>初始花纹深度(mm)</th>
|
|
|
|
|
<td th:text="${#strings.isEmpty(tyre.patternDepth) ? '-' : tyre.patternDepth}">-</td>
|
|
|
|
|
<!-- <th>剩余花纹深度(mm)</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
</tr>
|
|
|
|
|
<!-- <tr>-->
|
|
|
|
|
<!-- <th>行驶时长(h)</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- <th>花纹磨损(h/mm)</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- </tr>-->
|
|
|
|
|
<!-- <tr>-->
|
|
|
|
|
<!-- <th>GPS里程(km)</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- <th>轮胎里程(km)</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- </tr>-->
|
|
|
|
|
<!-- <tr>-->
|
|
|
|
|
<!-- <th>预计时长(h)</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- <th>单耗里程(km/mm)</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- </tr>-->
|
|
|
|
|
<!-- <tr>-->
|
|
|
|
|
<!-- <th>是否试验胎</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- <th>保行里程(km)</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- </tr>-->
|
|
|
|
|
<tr>
|
|
|
|
|
<th>当前车辆</th>
|
|
|
|
|
<td th:text="${#strings.isEmpty(tyre.carNo) ? '-' : tyre.carNo}">-</td>
|
|
|
|
|
<th>当前轮位</th>
|
|
|
|
|
<td th:text="${#strings.isEmpty(tyre.wheelPostion) ? '-' : tyre.wheelPostion}">-</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">轮胎规格</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.tyreModel) ? '-' : resultBase.tyreModel}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">轮胎层级</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.tyreLevel) ? '-' : resultBase.tyreLevel}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">轮胎花纹</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.tyrePattern) ? '-' : resultBase.tyrePattern}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">轮胎类别</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.tyreType) ? '-' : @dict.getLabel('tyre_type', resultBase.tyreType)}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">初始花纹深度</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.patternDepth) ? '-' : resultBase.patternDepth + ' mm'}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">标准气压</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.pressure) ? '-' : resultBase.pressure}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">建档时间</div>
|
|
|
|
|
<div class="info-value" th:text="${resultBase.createTime == null ? '-' : #dates.format(resultBase.createTime, 'yyyy-MM-dd HH:mm:ss')}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="info-card">
|
|
|
|
|
<div class="section-title"><i class="fa fa-bookmark"></i>其他</div>
|
|
|
|
|
<table class="info-table">
|
|
|
|
|
<!-- <tr>-->
|
|
|
|
|
<!-- <th>来源</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- <th>订单编号</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- </tr>-->
|
|
|
|
|
<tr>
|
|
|
|
|
<th>RFID</th>
|
|
|
|
|
<td th:text="${#strings.isEmpty(tyre.tyreEpc) ? '-' : tyre.tyreEpc}">-</td>
|
|
|
|
|
<th>入库时间</th>
|
|
|
|
|
<td th:text="${tyre.createTime == null ? '-' : #dates.format(tyre.createTime, 'yyyy-MM-dd HH:mm:ss')}">-</td>
|
|
|
|
|
<!-- <th>TKPH</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
</tr>
|
|
|
|
|
<!-- <tr>-->
|
|
|
|
|
<!-- <th>建议公里</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- <th>补气次数</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- </tr>-->
|
|
|
|
|
<!-- <tr>-->
|
|
|
|
|
<!-- <th>修补次数</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- <th>翻新次数</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- </tr>-->
|
|
|
|
|
<!-- <tr>-->
|
|
|
|
|
<!-- <th>SKU编码</th>-->
|
|
|
|
|
<!-- <td>-</td>-->
|
|
|
|
|
<!-- </tr>-->
|
|
|
|
|
<tr>
|
|
|
|
|
<th>备注</th>
|
|
|
|
|
<td colspan="3" th:text="${#strings.isEmpty(tyre.remark) ? '-' : tyre.remark}">-</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-lg-3 col-md-4 col-sm-12">
|
|
|
|
|
<div class="timeline-card">
|
|
|
|
|
<div class="timeline-header">
|
|
|
|
|
<span class="title">生命周期</span>
|
|
|
|
|
<span class="mini-tip">按时间倒序展示</span>
|
|
|
|
|
<div class="info-panel">
|
|
|
|
|
<div class="section-title"><i class="fa fa-truck"></i>当前位置</div>
|
|
|
|
|
<div class="info-grid">
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">所属公司</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.company) ? '-' : resultBase.company}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<ul class="life-list" th:if="${!#lists.isEmpty(timelineItems)}">
|
|
|
|
|
<li class="life-item" th:each="item : ${timelineItems}">
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">修理厂</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.team) ? '-' : resultBase.team}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">车队</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.carTeam) ? '-' : resultBase.carTeam}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">当前车辆</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.carNo) ? '-' : resultBase.carNo}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">当前轮位</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.wheelPostion) ? '-' : resultBase.wheelPostion}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="info-cell">
|
|
|
|
|
<div class="info-label">创建人</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.createBy) ? '-' : resultBase.createBy}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="info-cell" style="grid-column: span 2;">
|
|
|
|
|
<div class="info-label">备注</div>
|
|
|
|
|
<div class="info-value" th:text="${#strings.isEmpty(resultBase.remark) ? '-' : resultBase.remark}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="life-panel">
|
|
|
|
|
<div class="section-title"><i class="fa fa-history"></i>生命周期</div>
|
|
|
|
|
<div class="life-summary">
|
|
|
|
|
<span class="life-count" th:text="${'出入库记录:' + (#lists.isEmpty(recordWarehousingList) ? 0 : #lists.size(recordWarehousingList))}">出入库记录:0</span>
|
|
|
|
|
<span class="life-count" th:text="${'装卸车记录:' + (#lists.isEmpty(recordTyreInstallList) ? 0 : #lists.size(recordTyreInstallList))}">装卸车记录:0</span>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="life-section" th:if="${!#lists.isEmpty(recordWarehousingList)}">
|
|
|
|
|
<div class="life-section-title">出入库流转</div>
|
|
|
|
|
<ul class="life-list">
|
|
|
|
|
<li class="life-item" th:each="item : ${recordWarehousingList}" th:classappend="${item.type == '1'} ? ' is-out' : ''">
|
|
|
|
|
<span class="life-dot"></span>
|
|
|
|
|
<div class="life-time" th:text="${item.time == null ? '-' : #dates.format(item.time, 'yyyy-MM-dd HH:mm:ss')}">-</div>
|
|
|
|
|
<div class="life-title" th:text="${item.title}">轮胎入库</div>
|
|
|
|
|
<div class="life-body" th:text="${#strings.isEmpty(item.detail) ? '-' : item.detail}">-</div>
|
|
|
|
|
<div class="life-title-row">
|
|
|
|
|
<div class="life-title" th:text="${item.type == '1' ? '轮胎出库' : '轮胎入库'}">轮胎入库</div>
|
|
|
|
|
<div class="life-time" th:text="${item.createTime == null ? '-' : #dates.format(item.createTime, 'yyyy-MM-dd HH:mm:ss')}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="life-meta">
|
|
|
|
|
<div th:text="${#strings.isEmpty(item.createBy) ? '操作人:-' : '操作人:' + item.createBy}">操作人:-</div>
|
|
|
|
|
<div th:text="${#strings.isEmpty(item.tyreRfid) ? 'RFID:-' : 'RFID:' + item.tyreRfid}">RFID:-</div>
|
|
|
|
|
<div th:text="${#strings.isEmpty(item.tyreBrand) ? '品牌:-' : '品牌:' + item.tyreBrand}">品牌:-</div>
|
|
|
|
|
<div th:text="${#strings.isEmpty(item.tyreModel) ? '规格:-' : '规格:' + item.tyreModel}">规格:-</div>
|
|
|
|
|
<div class="life-remark" th:if="${!#strings.isEmpty(item.remark)}" th:text="${'备注:' + item.remark}">备注:-</div>
|
|
|
|
|
</div>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<div class="text-center text-muted-dash" style="padding: 60px 0;" th:if="${#lists.isEmpty(timelineItems)}">
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="life-section" th:if="${!#lists.isEmpty(recordTyreInstallList)}">
|
|
|
|
|
<div class="life-section-title">装卸车流转</div>
|
|
|
|
|
<ul class="life-list">
|
|
|
|
|
<li class="life-item"
|
|
|
|
|
th:each="item : ${recordTyreInstallList}"
|
|
|
|
|
th:classappend="${item.type == '1'} ? ' is-uninstall' : ' is-install'">
|
|
|
|
|
<span class="life-dot"></span>
|
|
|
|
|
<div class="life-title-row">
|
|
|
|
|
<div class="life-title" th:text="${item.type == '1' ? '轮胎卸下' : '轮胎安装'}">轮胎安装</div>
|
|
|
|
|
<div class="life-time" th:text="${item.createTime == null ? '-' : #dates.format(item.createTime, 'yyyy-MM-dd HH:mm:ss')}">-</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="life-meta">
|
|
|
|
|
<div th:text="${#strings.isEmpty(item.createBy) ? '操作人:-' : '操作人:' + item.createBy}">操作人:-</div>
|
|
|
|
|
<div th:text="${#strings.isEmpty(item.carNo) ? '车辆:-' : '车辆:' + item.carNo}">车辆:-</div>
|
|
|
|
|
<div th:text="${#strings.isEmpty(item.wheelPostion) ? '轮位:-' : '轮位:' + item.wheelPostion}">轮位:-</div>
|
|
|
|
|
<div th:text="${item.mileage == null ? '里程:-' : '里程:' + item.mileage + ' km'}">里程:-</div>
|
|
|
|
|
<div th:text="${#strings.isEmpty(item.patternDepth) ? '花纹深度:-' : '花纹深度:' + item.patternDepth + ' mm'}">花纹深度:-</div>
|
|
|
|
|
<div th:text="${#strings.isEmpty(item.carTeam) ? '车队:-' : '车队:' + item.carTeam}">车队:-</div>
|
|
|
|
|
<div class="life-remark" th:if="${!#strings.isEmpty(item.remark)}" th:text="${'备注:' + item.remark}">备注:-</div>
|
|
|
|
|
</div>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="empty-life" th:if="${#lists.isEmpty(recordWarehousingList) and #lists.isEmpty(recordTyreInstallList)}">
|
|
|
|
|
暂无生命周期记录
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<th:block th:include="include :: footer" />
|
|
|
|
|
<script th:inline="javascript">
|
|
|
|
|
var prefix = ctx + "tyre/tyre";
|
|
|
|
|
var tyreId = [[${tyre.tyreId}]];
|
|
|
|
|
|
|
|
|
|
function editTyre() {
|
|
|
|
|
var url = prefix + "/edit/" + tyreId;
|
|
|
|
|
$.modal.open("编辑轮胎", url, "900", "700");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
$(function() {
|
|
|
|
|
// 兜底:关闭父窗口 tab 的 loading 遮罩
|
|
|
|
|
// 若 iframe 在 index.js 绑定 load 事件前就已加载完毕,遮罩不会自动关闭
|
|
|
|
|
if (window.parent && window.parent !== window && window.parent.$ && window.parent.$.modal) {
|
|
|
|
|
window.parent.$.modal.closeLoading();
|
|
|
|
|
}
|
|
|
|
|
|