Merge branch 'dev' of http://47.109.205.240:3000/Web/daimp-front into dev
@ -13,7 +13,7 @@ export const leftApps = [
|
|||||||
{
|
{
|
||||||
name: 'sub-operation-admin',
|
name: 'sub-operation-admin',
|
||||||
entry: VITE_APP_SUB_OA,
|
entry: VITE_APP_SUB_OA,
|
||||||
activeRule: '/sub-operation-admin',
|
activeRule: `${VITE_APP_VIST_URL}:82/login`,
|
||||||
title: '管理后台',
|
title: '管理后台',
|
||||||
icon: 'images/platform/icon-admin.png',
|
icon: 'images/platform/icon-admin.png',
|
||||||
},
|
},
|
||||||
@ -44,7 +44,7 @@ export const rightApps = [
|
|||||||
{
|
{
|
||||||
name: 'sub-government-admin',
|
name: 'sub-government-admin',
|
||||||
entry: VITE_APP_SUB_GAS,
|
entry: VITE_APP_SUB_GAS,
|
||||||
activeRule: '/sub-government-admin',
|
activeRule: `${VITE_APP_VIST_URL}:81/login`,
|
||||||
title: '管理后台',
|
title: '管理后台',
|
||||||
icon: 'images/platform/icon-admin.png',
|
icon: 'images/platform/icon-admin.png',
|
||||||
},
|
},
|
||||||
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 920 KiB After Width: | Height: | Size: 894 KiB |
Before Width: | Height: | Size: 805 KiB After Width: | Height: | Size: 770 KiB |
BIN
sub-operation-service/src/assets/images/back.png
Normal file
After Width: | Height: | Size: 816 B |
After Width: | Height: | Size: 385 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 940 B |
@ -533,6 +533,12 @@ export const constantRoutes = [
|
|||||||
name: 'logistics-match',
|
name: 'logistics-match',
|
||||||
meta: { title: '匹配' },
|
meta: { title: '匹配' },
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/sub-operation-service/logistics-dispatch',
|
||||||
|
component: () => import('@/views/warehouseLogistics/logistics/dispatch.vue'),
|
||||||
|
name: 'logistics-dispatch',
|
||||||
|
meta: { title: '用车派单' },
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -0,0 +1,222 @@
|
|||||||
|
<template>
|
||||||
|
<section>
|
||||||
|
<common>
|
||||||
|
<template #main>
|
||||||
|
<div class="warehouse-detail">
|
||||||
|
<div class="go-back" @click="toBack(-1)">
|
||||||
|
<img :src="getAssetsFile('images/back.png')" alt="map" />
|
||||||
|
</div>
|
||||||
|
<!-- 地图容器 -->
|
||||||
|
<div class="map-content">
|
||||||
|
<img :src="getAssetsFile('images/warehouseLogistics/logistics-map.png')" alt="map" draggable="false" />
|
||||||
|
</div>
|
||||||
|
<div v-show="dialogType == 1" class="left-content">
|
||||||
|
<div class="left-content-item">
|
||||||
|
<el-icon color="#FF4975" size="18"><Promotion /></el-icon>
|
||||||
|
<span style="color: #ff4975; font-size: 16px; margin: 0 20px 0 5px">运输中</span>
|
||||||
|
<img :src="getAssetsFile('images/warehouseLogistics/switch.png')" alt="map" draggable="false" @click="dialogType = 2" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-show="dialogType == 2" class="left-content-dialog">
|
||||||
|
<div class="dialog-title">
|
||||||
|
在线运输单
|
||||||
|
<img class="icon" :src="getAssetsFile('images/warehouseLogistics/switch.png')" alt="map" draggable="false" @click="dialogType = 1" />
|
||||||
|
</div>
|
||||||
|
<div class="dialog-content">
|
||||||
|
<div style="display: flex">
|
||||||
|
<div class="left-content-item" style="flex: 1">
|
||||||
|
<el-icon color="#FF4975" size="18"><Promotion /></el-icon>
|
||||||
|
<span style="color: #ff4975; font-size: 16px; margin: 0 20px 0 5px">运输中</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex-item">
|
||||||
|
<p class="dialog-escribe">运输物品</p>
|
||||||
|
<p class="dialog-text">西红柿</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex-item">
|
||||||
|
<p class="dialog-escribe">运输物品</p>
|
||||||
|
<p class="dialog-text">5吨</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-divider style="margin: 10px auto; width: 96%" />
|
||||||
|
<div style="display: flex; align-items: center">
|
||||||
|
<div class="flex-item" style="padding-right: 0; margin-right: 16px">
|
||||||
|
<p class="dialog-escribe" style="font-size: 16px">运输距离</p>
|
||||||
|
<p class="dialog-text" style="font-size: 18px">188Km</p>
|
||||||
|
<div style="height: 20px"></div>
|
||||||
|
</div>
|
||||||
|
<div class="flex-item" style="padding-right: 0">
|
||||||
|
<el-timeline style="max-width: 600px">
|
||||||
|
<el-timeline-item v-for="(activity, index) in activities" :key="index" :timestamp="activity.timestamp">
|
||||||
|
{{ activity.content }}
|
||||||
|
</el-timeline-item>
|
||||||
|
</el-timeline>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="order-info">订单编号:489942025460411456 <span class="copy-text">复制</span></div>
|
||||||
|
<div class="order-info">联系方式:18714454247</div>
|
||||||
|
<div class="order-info">提交时间:2025.01.0409:45:25</div>
|
||||||
|
</div>
|
||||||
|
<div class="right-center-card">
|
||||||
|
<img class="icon" :src="getAssetsFile('images/warehouseLogistics/right-center.png')" alt="map" draggable="false" />
|
||||||
|
</div>
|
||||||
|
<div class="right-bottom-card">
|
||||||
|
<img class="icon" :src="getAssetsFile('images/warehouseLogistics/right-bottom.png')" alt="map" draggable="false" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</common>
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import { ref, reactive, watch, onMounted } from 'vue';
|
||||||
|
import { getAssetsFile } from '@/utils';
|
||||||
|
import { useRoute, useRouter } from 'vue-router';
|
||||||
|
import Common from '../components/common.vue';
|
||||||
|
|
||||||
|
const route = useRoute();
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
|
const dialogType = ref(1);
|
||||||
|
const activities = [
|
||||||
|
{
|
||||||
|
content: '发车时间',
|
||||||
|
timestamp: '2025.01.01 10:00:00',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
content: '到达时间',
|
||||||
|
timestamp: '2025.01.01 17:30:00',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const toBack = (level) => {
|
||||||
|
router.go(level);
|
||||||
|
};
|
||||||
|
|
||||||
|
onMounted(() => {});
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.warehouse-detail {
|
||||||
|
border-radius: 14px;
|
||||||
|
background-color: #fff;
|
||||||
|
height: 100%;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.go-back {
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
position: absolute;
|
||||||
|
top: 20px;
|
||||||
|
left: 20px;
|
||||||
|
z-index: 10;
|
||||||
|
cursor: pointer;
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.map-content {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
border-radius: 14px;
|
||||||
|
img {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.left-content {
|
||||||
|
position: absolute;
|
||||||
|
left: 20px;
|
||||||
|
bottom: 20px;
|
||||||
|
z-index: 10;
|
||||||
|
padding: 10px 16px;
|
||||||
|
border-radius: 14px;
|
||||||
|
background-color: #fff;
|
||||||
|
box-shadow: 0px 8px 24px 0px rgba(0, 0, 0, 0.16);
|
||||||
|
}
|
||||||
|
.left-content-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
img {
|
||||||
|
width: 14px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.left-content-dialog {
|
||||||
|
position: absolute;
|
||||||
|
top: 100px;
|
||||||
|
left: 20px;
|
||||||
|
width: 300px;
|
||||||
|
min-height: 300px;
|
||||||
|
padding-bottom: 16px;
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 14px;
|
||||||
|
box-shadow: 0px 8px 24px 0px rgba(0, 0, 0, 0.16);
|
||||||
|
.dialog-title {
|
||||||
|
font-size: 20px;
|
||||||
|
text-align: center;
|
||||||
|
padding: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
position: relative;
|
||||||
|
.icon {
|
||||||
|
position: absolute;
|
||||||
|
top: 20px;
|
||||||
|
right: 12px;
|
||||||
|
width: 18px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.dialog-content {
|
||||||
|
margin: 0 10px 10px 10px;
|
||||||
|
padding: 10px 10px 0 10px;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
border-radius: 14px;
|
||||||
|
.flex-item {
|
||||||
|
text-align: left;
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
.dialog-escribe {
|
||||||
|
color: #999;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
.dialog-text {
|
||||||
|
color: #333;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.order-info {
|
||||||
|
color: #333;
|
||||||
|
font-size: 14px;
|
||||||
|
text-align: left;
|
||||||
|
padding-left: 12px;
|
||||||
|
line-height: 26px;
|
||||||
|
}
|
||||||
|
.copy-text {
|
||||||
|
color: #25bf82;
|
||||||
|
cursor: pointer;
|
||||||
|
float: right;
|
||||||
|
margin-right: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.right-center-card {
|
||||||
|
position: absolute;
|
||||||
|
top: 120px;
|
||||||
|
right: 160px;
|
||||||
|
border-radius: 14px;
|
||||||
|
overflow: hidden;
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
.right-bottom-card {
|
||||||
|
position: absolute;
|
||||||
|
right: 20px;
|
||||||
|
bottom: 20px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
</style>
|