Browse Source

新增详情页面

fix_bug_pro20231227
qb 1 year ago
parent
commit
d0c6a91879
  1. 2
      index.html
  2. 20
      src/router/page/index.js
  3. 2152
      src/views/basicdata/warehouse/warehouse/basicdataWarehouse.vue
  4. 392
      src/views/datadetail/todayData.vue
  5. 41
      src/views/distribution/inventory/distrilbutionBillLading.vue
  6. 4
      vite.config.js

2
index.html

@ -23,7 +23,7 @@
</script>
<script type="text/javascript"
src='https://webapi.amap.com/maps?v=2.0&key=f003ec4feb3fcc4cf0742e94f569fd33&plugin=AMap.PlaceSearch,AMap.Geocoder,Map3D,ElasticMarker,AMap.Driving,AMap.TruckDriving'></script>
src='https://webapi.amap.com/maps?v=1.4.11&key=f003ec4feb3fcc4cf0742e94f569fd33&plugin=AMap.PlaceSearch,AMap.Geocoder,Map3D,ElasticMarker,AMap.Driving,AMap.TruckDriving'></script>
<script src="//webapi.amap.com/ui/1.1/main.js"></script>
<script type="text/javascript"
src="https://api.map.baidu.com/api?v=1.0&type=webgl&ak=FpjVxjf9nGo47eLj9I0ZuUvSZm1wGGqr"></script>

20
src/router/page/index.js

@ -1,4 +1,5 @@
import Store from '@/store/';
import Layout from '@/page/index/index.vue';
export default [
{
@ -53,6 +54,25 @@ export default [
isAuth: false,
},
},
{
path: '/datadetail/todayData',
component: Layout,
redirect: '/reservation/order_listFrom',
children: [
{
path: '',
name: '今日数据',
meta: {
i18n: 'dict',
},
props: route => ({
name: route.query.name,
id: route.query.id,
}),
component: () => import('@/views/datadetail/todayData.vue'),
},
],
},
{
path: '/',
name: '主页',

2152
src/views/basicdata/warehouse/warehouse/basicdataWarehouse.vue

File diff suppressed because it is too large Load Diff

392
src/views/datadetail/todayData.vue

@ -0,0 +1,392 @@
<template>
<div class="todayDetail">
<!-- banner图 -->
<div class="todayDetail__banner mb8">
<div class="description">
<div class="title">智慧物流解决方案</div>
<p class="text">
针对物流行业仓储运输等场景提供物联LBS大数据安全管理人工智能等能力助力物流行业快速发展
</p>
</div>
</div>
<!-- 搜索控件 -->
<div class="todayDetail__searchControl mb8">
<!-- 日期 -->
<div class="date">
<div
:class="{ date__item: true, active: item.isActive }"
v-for="item in dateSearchList"
:key="item.label"
@click="changeDateItemState(item)"
>
{{ item.label }}
</div>
<!-- 日期选择器 -->
<div class="date-picker-container">
<div class="date-picker-title">时间</div>
<el-date-picker
v-model="datePickerValue"
type="daterange"
range-separator="To"
start-placeholder="开始日期"
end-placeholder="结束日期"
clear-icon="Delete"
/>
</div>
</div>
</div>
<!-- 干线数据 -->
<div class="todayDetail__dataCard mb8" v-for="item in dataList" :key="item.title">
<div class="title">{{ item.title }}</div>
<ul class="list">
<li class="listItem" v-for="value in item.data">
<div class="number">{{ value.num }}</div>
<div class="label">{{ value.label }}</div>
</li>
</ul>
</div>
<!-- 仓储和统计 -->
<div style="display: flex; justify-content: space-between">
<!-- 仓储 -->
<div class="todayDetail__dataCard storage">
<div class="title">仓储</div>
<ul class="list" style="flex-wrap: wrap">
<li class="listItem" v-for="value in storageData.data" :key="(value.label as any)">
<div class="number">{{ value.num }}</div>
<div class="label">{{ value.label }}</div>
</li>
</ul>
</div>
<!-- 统计 -->
<div class="todayDetail__dataCard" style="display: flex; flex-direction:column;">
<div class="title">统计</div>
<ul class="list" style="flex: 1; align-items: center;">
<li class="listItem" v-for="value in statisticsData.data" :key="(value.label as any)">
<div class="number">{{ value.num }}</div>
<div class="label">{{ value.label }}</div>
</li>
</ul>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { reactive, ref } from 'vue';
interface DateSearchItem {
/**
* 标题
*/
label: string;
/**
* 是否激活
*/
isActive: boolean;
}
type DateSearchList = DateSearchItem[];
//
const dateSearchList = reactive<DateSearchList>([
{ label: '今日', isActive: true },
{ label: '昨日', isActive: false },
{ label: '最近七天', isActive: false },
{ label: '最近30天', isActive: false },
{ label: '近365天', isActive: false },
]);
const changeDateItemState = (item: DateSearchItem): void => {
dateSearchList.forEach(val => {
val.isActive = false;
});
item.isActive = true;
};
//
const datePickerValue = ref('');
// 线 &&
const dataList = [
{
title: '干线',
data: [
{
label: '装车中车次数',
num: 168,
},
{
label: '在途车次数',
num: 168,
},
{
label: '作业中车次数',
num: 168,
},
{
label: '已卸车次数',
num: 168,
},
{
label: '已入库次数',
num: 168,
},
],
},
{
title: '配送',
data: [
{
label: '配送待装车次数',
num: 168,
},
{
label: '配送中车次数',
num: 168,
},
{
label: '已完成车次数',
num: 168,
},
{
label: '配送中签收件数',
num: 168,
},
{
label: '未入签收件数',
num: 0,
},
],
},
];
//
const storageData = {
title: '仓储',
data: [
{
label: '入库件数',
num: 168,
},
{
label: '出库总件数',
num: 168,
},
{
label: '待上架件数',
num: 168,
},
{
label: '库存总数',
num: 168,
},
{
label: '已用库位数',
num: 168,
},
{
label: '控制库位数',
num: 0,
},
],
};
//
const statisticsData = {
title: '统计',
data: [
{
label: '配送待装车次数',
num: 168,
},
{
label: '配送中车次数',
num: 168,
},
{
label: '配送中车次数',
num: 168,
},
],
};
</script>
<style scoped lang="scss">
//
$theme-colors: #d3832a;
// ul
ul {
list-style: none;
padding: 0;
margin: 0;
}
.todayDetail {
padding: 0 10px 10px 10px;
// banner
&__banner {
width: 100%;
height: 218px;
background: linear-gradient(135deg, #ffffff 0%, #ffe0be 0%, #fff2e4 100%);
border-radius: 5px;
color: $theme-colors;
display: flex;
align-items: center;
justify-content: center;
.title {
padding: 0 5px;
font-family: YouSheBiaoTiHei-Bold;
font-weight: 600;
font-size: 36px;
line-height: 47px;
width: fit-content;
border: 2px dashed #ccc;
font-style: italic;
}
.text {
width: 453px;
font-size: 16px;
line-height: 27px;
margin: 8px 0 0 0;
}
}
//
$searchHeight: 52px;
//
&__searchControl {
display: flex;
align-items: center;
padding-left: 55px;
height: $searchHeight;
background: #fff;
border-radius: 5px;
font-size: 16px;
white-space: nowrap;
//
.date {
height: 100%;
display: flex;
color: #000;
&__item {
line-height: $searchHeight;
margin-right: 24px;
cursor: pointer;
transition: all 0.5s;
}
}
}
//
&__dataCard {
box-sizing: border-box;
width: 100%;
background: #fff;
padding: 26px 20px 32px;
border-radius: 5px;
//
& .title {
font-size: 18px;
font-weight: bold;
margin-bottom: 29px;
}
& .list {
display: flex;
}
}
}
//
.date__item.active {
color: $theme-colors;
position: relative;
&::after {
content: '';
display: block;
width: 90%;
border: 1px solid $theme-colors;
left: 5%;
}
}
.date__item {
&:hover {
color: $theme-colors;
}
&::after {
content: '';
display: block;
width: 0;
position: absolute;
bottom: 0;
left: 50%;
transition: all 0.5s;
}
}
//
:deep(.el-range-editor.el-input__wrapper) {
width: 220px !important;
height: 32px !important;
}
.date-picker-container {
height: 100%;
display: flex;
align-items: center;
}
.date-picker-title {
margin-right: 16px;
}
// 8px
.mb8 {
margin-bottom: 8px;
}
//
.listItem {
flex: none;
width: 200px;
& .number {
font-weight: bold;
font-family: DIN-Bold;
font-size: 28px;
line-height: 34px;
margin-bottom: 13px;
}
& .label {
color: #afb4ba;
font-size: 14px;
}
}
//
.storage {
width: 750px;
margin-right: 20px;
flex: none;
}
</style>

41
src/views/distribution/inventory/distrilbutionBillLading.vue

@ -145,7 +145,7 @@
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="提货车牌号码" prop="pickUpPlate" label-width="98px">
<el-form-item label="提货车牌号码" prop="pickUpPlate" label-width="120px">
<el-input v-model="form.pickUpPlate" placeholder="请输入提货车牌" />
</el-form-item>
</el-col>
@ -1488,7 +1488,7 @@ export default {
fixed: false,
sortable: true,
head: false,
lessThanNum:'available'
lessThanNum: 'available',
},
{
prop: '',
@ -1509,9 +1509,9 @@ export default {
if (this.$route.query.type == '2') {
//
this.getDetailOen();
} else if (this.$route.query.type == '1'){
} else if (this.$route.query.type == '1') {
this.onLoad(this.page);
}else if (this.$route.query.type == '3'){
} else if (this.$route.query.type == '3') {
this.onLoadCj();
}
/**
@ -1597,9 +1597,9 @@ export default {
if (this.$route.query.type == '2') {
//
this.getDetailOen();
} else if (this.$route.query.type == '1'){
} else if (this.$route.query.type == '1') {
this.onLoad(this.page);
}else if (this.$route.query.type == '3'){
} else if (this.$route.query.type == '3') {
this.onLoadCj();
}
},
@ -1851,9 +1851,9 @@ export default {
},
//
callFordelivery(inde) {
if(this.selectionListStock.length === 0){
this.$message.warning("至少选择一条数据!");
return ;
if (this.selectionListStock.length === 0) {
this.$message.warning('至少选择一条数据!');
return;
}
let isa = false;
// console.log('');
@ -1869,11 +1869,14 @@ export default {
if (!a) {
// console.log("");
this.data.push(i);
}else if(a){
this.data.forEach( ii =>{
} else if (a) {
this.data.forEach(ii => {
// console.log("",ii);
if(ii.id == i.id && parseInt(ii.inventoryQuantity)+parseInt(i.inventoryQuantity) < ii.quantityStock){
ii.inventoryQuantity = parseInt(ii.inventoryQuantity)+parseInt(i.inventoryQuantity);
if (
ii.id == i.id &&
parseInt(ii.inventoryQuantity) + parseInt(i.inventoryQuantity) < ii.quantityStock
) {
ii.inventoryQuantity = parseInt(ii.inventoryQuantity) + parseInt(i.inventoryQuantity);
}
});
}
@ -2375,16 +2378,16 @@ export default {
onLoadList(page, params = {}) {
this.loading = true;
let a = {};
if(this.$route.query.type == '1'){
if (this.$route.query.type == '1') {
a = this.dataList[0];
// console.log("11111111111111");
}else if(this.$route.query.type == '3'){
} else if (this.$route.query.type == '3') {
a = this.dataOrder[0];
// console.log("2222222222222");
}
// let a = this.dataList[0];
console.log("aaa",a);
if(!!a.mallId){
console.log('aaa', a);
if (!!a.mallId) {
params.marketId = a.mallId;
getListStockList(page.currentPage, page.pageSize, params).then(res => {
const dataOwn = res.data.data;
@ -2396,9 +2399,9 @@ export default {
this.loading = false;
this.selectionClear();
});
}else{
} else {
this.loading = false;
this.pageStock.total =0;
this.pageStock.total = 0;
}
},
//

4
vite.config.js

@ -13,8 +13,8 @@ export default ({ mode, command }) => {
proxy: {
'/api': {
// target: 'http://192.168.10.126:8889',
target: 'http://192.168.10.123:8889',
// target: 'http://192.168.10.75:8777',
// target: 'http://192.168.10.123:8889',
target: 'http://192.168.10.75:8777',
// target: 'http://192.168.10.29:13000',
//target: 'http://test3.javablade.com',
changeOrigin: true,

Loading…
Cancel
Save