update: 待出货接口对接
|
@ -12,7 +12,7 @@
|
|||
<script setup lang="ts">
|
||||
const getDetail = () => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/statistics/customer/detail", // 要跳转到的页面路径
|
||||
url: "/pagesStatistics/customer/detail", // 要跳转到的页面路径
|
||||
});
|
||||
}
|
||||
</script>
|
|
@ -25,7 +25,7 @@ const list = reactive([
|
|||
]);
|
||||
const getDetail = (item: any) => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/statistics/customer/billDetail", // 要跳转到的页面路径
|
||||
url: "/pagesStatistics/customer/billDetail", // 要跳转到的页面路径
|
||||
});
|
||||
};
|
||||
</script>
|
|
@ -31,7 +31,7 @@
|
|||
</template>
|
||||
<script setup lang="ts">
|
||||
|
||||
import CEcharts from "../../components/Echarts/echarts.vue";
|
||||
import CEcharts from "@/components/Echarts/echarts.vue";
|
||||
import ProductTypeDialog from './components/ProductTypeDialog.vue'
|
||||
const option = ref({
|
||||
tooltip: {
|
|
@ -23,8 +23,8 @@
|
|||
</Box>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import Box from "../../components/Box/index.vue";
|
||||
import Title from "../../components/Title/index.vue";
|
||||
import Box from "@/components/Box/index.vue";
|
||||
import Title from "@/components/Title/index.vue";
|
||||
const list = reactive([
|
||||
{
|
||||
title: "收货",
|
||||
|
@ -36,7 +36,7 @@ const list = reactive([
|
|||
title: "收货汇总",
|
||||
fn: (item: any) => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/statistics/receivePanel", // 要跳转到的页面路径
|
||||
url: "/pagesStatistics/receivePanel", // 要跳转到的页面路径
|
||||
})
|
||||
}
|
||||
},
|
||||
|
@ -47,7 +47,7 @@ const list = reactive([
|
|||
title: "供应商排行",
|
||||
fn: (item: any) => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/statistics/supplierRanking", // 要跳转到的页面路径
|
||||
url: "/pagesStatistics/supplierRanking", // 要跳转到的页面路径
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,7 @@ const list = reactive([
|
|||
title: "出货汇总",
|
||||
fn: (item: any) => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/statistics/shipmentPanel", // 要跳转到的页面路径
|
||||
url: "/pagesStatistics/shipmentPanel", // 要跳转到的页面路径
|
||||
})
|
||||
}
|
||||
},
|
||||
|
@ -75,7 +75,7 @@ const list = reactive([
|
|||
title: "客户排行",
|
||||
fn: (item: any) => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/statistics/customerRanking", // 要跳转到的页面路径
|
||||
url: "/pagesStatistics/customerRanking", // 要跳转到的页面路径
|
||||
})
|
||||
}
|
||||
},
|
||||
|
@ -91,7 +91,7 @@ const list = reactive([
|
|||
title: "经营概况",
|
||||
fn: (item: any) => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/statistics/businessOverview", // 要跳转到的页面路径
|
||||
url: "/pagesStatistics/businessOverview", // 要跳转到的页面路径
|
||||
})
|
||||
}
|
||||
},
|
||||
|
@ -102,7 +102,7 @@ const list = reactive([
|
|||
title: "供应商对账",
|
||||
fn: (item: any) => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/statistics/supplierChecking", // 要跳转到的页面路径
|
||||
url: "/pagesStatistics/supplierChecking", // 要跳转到的页面路径
|
||||
})
|
||||
}
|
||||
},
|
||||
|
@ -113,7 +113,7 @@ const list = reactive([
|
|||
title: "客户对账",
|
||||
fn: (item: any) => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/statistics/customerChecking", // 要跳转到的页面路径
|
||||
url: "/pagesStatistics/customerChecking", // 要跳转到的页面路径
|
||||
})
|
||||
}
|
||||
},
|
|
@ -12,7 +12,7 @@
|
|||
<script setup lang="ts">
|
||||
const getDetail = () => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/statistics/supplier/detail", // 要跳转到的页面路径
|
||||
url: "/pagesStatistics/supplier/detail", // 要跳转到的页面路径
|
||||
});
|
||||
}
|
||||
</script>
|
|
@ -25,7 +25,7 @@ const list = reactive([
|
|||
]);
|
||||
const getDetail = (item: any) => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/statistics/supplier/billDetail", // 要跳转到的页面路径
|
||||
url: "/pagesStatistics/supplier/billDetail", // 要跳转到的页面路径
|
||||
});
|
||||
};
|
||||
</script>
|
|
@ -31,7 +31,7 @@
|
|||
</template>
|
||||
<script setup lang="ts">
|
||||
|
||||
import CEcharts from "../../components/Echarts/echarts.vue";
|
||||
import CEcharts from "@/components/Echarts/echarts.vue";
|
||||
import ProductTypeDialog from './components/ProductTypeDialog.vue'
|
||||
const option = ref({
|
||||
tooltip: {
|
314
src/pages.json
|
@ -19,13 +19,6 @@
|
|||
"navigationBarTitleText": "工作台"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "pages/launch/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
// {
|
||||
// "path": "pages/index/index",
|
||||
// "style": {
|
||||
|
@ -33,12 +26,6 @@
|
|||
// "navigationBarTitleText": "工作台"
|
||||
// }
|
||||
// },
|
||||
{
|
||||
"path": "pages/index/grossWeight",
|
||||
"style": {
|
||||
"navigationBarTitleText": "待过毛重"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/index/shipmentSettlement",
|
||||
"style": {
|
||||
|
@ -88,130 +75,21 @@
|
|||
"navigationBarTitleText": "修改密码",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/statistics/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "数据统计"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/statistics/receivePanel",
|
||||
"style": {
|
||||
"navigationBarTitleText": "收货汇总"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/statistics/supplierRanking",
|
||||
"style": {
|
||||
"navigationBarTitleText": "供应商排行"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/statistics/shipmentPanel",
|
||||
"style": {
|
||||
"navigationBarTitleText": "出货汇总"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/statistics/customerRanking",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客户排行"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/statistics/businessOverview",
|
||||
"style": {
|
||||
"navigationBarTitleText": "经营概况"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/statistics/supplierChecking",
|
||||
"style": {
|
||||
"navigationBarTitleText": "供应商对账"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/statistics/customerChecking",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客户对账"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/statistics/supplier/billDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "供应商账单详情"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/statistics/supplier/detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "供应商详情"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/statistics/customer/billDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客户账单详情"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/statistics/customer/detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客户详情"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/app/receiveSpl",
|
||||
"style": {
|
||||
"navigationBarTitleText": "收货补单"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/app/shipmentSpl",
|
||||
"style": {
|
||||
"navigationBarTitleText": "出货补单"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/app/receiveDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "收货明细"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/app/shipmentDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "出货明细"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/app/receiveCl",
|
||||
"style": {
|
||||
"navigationBarTitleText": "收货作废"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/app/shipmentCl",
|
||||
"style": {
|
||||
"navigationBarTitleText": "出货作废"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/app/supplierMgt",
|
||||
"style": {
|
||||
"navigationBarTitleText": "供应商管理"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/app/customerMgt",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客户管理"
|
||||
}
|
||||
}
|
||||
//pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
|
||||
],
|
||||
"subPackages": [
|
||||
{
|
||||
"root": "pagesLaunch",
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"root": "pagesReceive",
|
||||
"pages": [
|
||||
|
@ -256,15 +134,39 @@
|
|||
"navigationBarTitleText": "待出货"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "grossWeight",
|
||||
"style": {
|
||||
"navigationBarTitleText": "待过毛重"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "shipmentSettlement",
|
||||
"style": {
|
||||
"navigationBarTitleText": "出货结算"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "review/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "结算审核"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "form/shipmentForm",
|
||||
"style": {
|
||||
"navigationBarTitleText": "待出货编辑"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "form/settlementForm",
|
||||
"style": {
|
||||
"navigationBarTitleText": "结算信息"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
},{
|
||||
},
|
||||
{
|
||||
"root": "pagesScenePhoto",
|
||||
"pages": [
|
||||
{
|
||||
|
@ -274,8 +176,148 @@
|
|||
}
|
||||
}
|
||||
]
|
||||
|
||||
},
|
||||
{
|
||||
"root": "pagesStatistics",
|
||||
"pages": [
|
||||
{
|
||||
"path": "index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "数据统计"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "receivePanel",
|
||||
"style": {
|
||||
"navigationBarTitleText": "收货汇总"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "supplierRanking",
|
||||
"style": {
|
||||
"navigationBarTitleText": "供应商排行"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "shipmentPanel",
|
||||
"style": {
|
||||
"navigationBarTitleText": "出货汇总"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "customerRanking",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客户排行"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "businessOverview",
|
||||
"style": {
|
||||
"navigationBarTitleText": "经营概况"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "supplierChecking",
|
||||
"style": {
|
||||
"navigationBarTitleText": "供应商对账"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "customerChecking",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客户对账"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "supplier/billDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "供应商账单详情"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "supplier/detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "供应商详情"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "customer/billDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客户账单详情"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "customer/detail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客户详情"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"root": "pagesApp",
|
||||
"pages": [
|
||||
{
|
||||
"path": "receiveSpl",
|
||||
"style": {
|
||||
"navigationBarTitleText": "收货补单"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "shipmentSpl",
|
||||
"style": {
|
||||
"navigationBarTitleText": "出货补单"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "receiveDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "收货明细"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "shipmentDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "出货明细"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "receiveCl",
|
||||
"style": {
|
||||
"navigationBarTitleText": "收货作废"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "shipmentCl",
|
||||
"style": {
|
||||
"navigationBarTitleText": "出货作废"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "supplierMgt",
|
||||
"style": {
|
||||
"navigationBarTitleText": "供应商管理"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "customerMgt",
|
||||
"style": {
|
||||
"navigationBarTitleText": "客户管理"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
// {
|
||||
// "root": "uni_modules",
|
||||
// "pages": [
|
||||
// {
|
||||
// "path": "lime-echart/components/l-echart/l-echart",
|
||||
// "style": {
|
||||
// "navigationBarTitleText": "echart"
|
||||
// }
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
],
|
||||
"globalStyle": {
|
||||
"navigationBarTextStyle": "black",
|
||||
|
|
|
@ -1,100 +0,0 @@
|
|||
<template>
|
||||
<view class="card-box">
|
||||
<view class="top-flex-box">
|
||||
<view>
|
||||
<view>
|
||||
<text class="address">上海奉贤两网融合</text>
|
||||
</view>
|
||||
<view>
|
||||
<text class="number">收货单号:SHD20230901132333</text>
|
||||
</view>
|
||||
<view>
|
||||
<text class="name">陡其成</text>
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<text class="btn" @click="handleScenePhoto">现场照片</text>
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<text class="desc">毛重时间:2023-09-01 13:23:33</text>
|
||||
</view>
|
||||
<view class="flex-box">
|
||||
<text>皮重:2510kg</text>
|
||||
</view>
|
||||
<view class="btn-box">
|
||||
<u-button
|
||||
text="点击作废"
|
||||
color="#E8E8E8"
|
||||
:customStyle="{ color: '#999' }"
|
||||
></u-button>
|
||||
<u-button type="primary" text="点击编辑"></u-button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
const handleScenePhoto = () => {
|
||||
uni.navigateTo({
|
||||
url: "/pagesScenePhoto/index", // 要跳转到的页面路径
|
||||
});
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.card-box {
|
||||
padding: 38rpx 50rpx;
|
||||
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12);
|
||||
border-radius: 13rpx;
|
||||
margin: 0rpx 25rpx;
|
||||
margin-top: 35rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #000000;
|
||||
line-height: 41rpx;
|
||||
.top-flex-box {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
line-height: 50rpx;
|
||||
.btn {
|
||||
border-radius: 24rpx;
|
||||
border: 1px solid #00dcee;
|
||||
padding: 10rpx 25rpx;
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #00dcee;
|
||||
line-height: 41rpx;
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
.desc {
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
margin-top: 30rpx;
|
||||
display: inline-block;
|
||||
}
|
||||
.name {
|
||||
font-size: 28rpx;
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.flex-box {
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #000000;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.btn-box {
|
||||
margin-top: 60rpx;
|
||||
display: flex;
|
||||
::v-deep button {
|
||||
border-radius: 43rpx;
|
||||
}
|
||||
::v-deep button + button {
|
||||
margin-left: 50rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -259,7 +259,7 @@ const shipmentList = reactive([
|
|||
num: 0,
|
||||
fn: () => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/index/grossWeight", // 要跳转到的页面路径
|
||||
url: "/pagesShipment/grossWeight", // 要跳转到的页面路径
|
||||
});
|
||||
},
|
||||
},
|
||||
|
@ -268,7 +268,7 @@ const shipmentList = reactive([
|
|||
num: 0,
|
||||
fn: () => {
|
||||
uni.navigateTo({
|
||||
url: "/pagesReceive/payReview", // 要跳转到的页面路径
|
||||
url: "/pagesShipment/shipmentSettlement?scaleStatus=2", // 要跳转到的页面路径
|
||||
});
|
||||
},
|
||||
},
|
||||
|
@ -277,7 +277,7 @@ const shipmentList = reactive([
|
|||
num: 0,
|
||||
fn: () => {
|
||||
uni.navigateTo({
|
||||
url: "/pagesReceive/payReview", // 要跳转到的页面路径
|
||||
url: "/pagesShipment/shipmentSettlement?scaleStatus=3", // 要跳转到的页面路径
|
||||
});
|
||||
},
|
||||
},
|
||||
|
@ -289,7 +289,7 @@ const appList = reactive([
|
|||
title: "收货补单",
|
||||
fn: () => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/app/receiveSpl", // 要跳转到的页面路径
|
||||
url: "/pagesApp/receiveSpl", // 要跳转到的页面路径
|
||||
});
|
||||
},
|
||||
},
|
||||
|
@ -298,7 +298,7 @@ const appList = reactive([
|
|||
title: "出货补单",
|
||||
fn: () => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/app/shipmentSpl", // 要跳转到的页面路径
|
||||
url: "/pagesApp/shipmentSpl", // 要跳转到的页面路径
|
||||
});
|
||||
},
|
||||
},
|
||||
|
@ -307,7 +307,7 @@ const appList = reactive([
|
|||
title: "收货明细",
|
||||
fn: () => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/app/receiveDetail", // 要跳转到的页面路径
|
||||
url: "/pagesApp/receiveDetail", // 要跳转到的页面路径
|
||||
});
|
||||
},
|
||||
},
|
||||
|
@ -316,7 +316,7 @@ const appList = reactive([
|
|||
title: "出货明细",
|
||||
fn: () => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/app/shipmentDetail", // 要跳转到的页面路径
|
||||
url: "/pagesApp/shipmentDetail", // 要跳转到的页面路径
|
||||
});
|
||||
},
|
||||
},
|
||||
|
@ -325,7 +325,7 @@ const appList = reactive([
|
|||
title: "收货作废",
|
||||
fn: () => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/app/receiveCl", // 要跳转到的页面路径
|
||||
url: "/pagesApp/receiveCl", // 要跳转到的页面路径
|
||||
});
|
||||
},
|
||||
},
|
||||
|
@ -334,7 +334,7 @@ const appList = reactive([
|
|||
title: "出货作废",
|
||||
fn: () => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/app/shipmentCl", // 要跳转到的页面路径
|
||||
url: "/pagesApp/shipmentCl", // 要跳转到的页面路径
|
||||
});
|
||||
},
|
||||
},
|
||||
|
@ -343,7 +343,7 @@ const appList = reactive([
|
|||
title: "供应商管理",
|
||||
fn: () => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/app/supplierMgt", // 要跳转到的页面路径
|
||||
url: "/pagesApp/supplierMgt", // 要跳转到的页面路径
|
||||
});
|
||||
},
|
||||
},
|
||||
|
@ -352,7 +352,7 @@ const appList = reactive([
|
|||
title: "客户管理",
|
||||
fn: () => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/app/customerMgt", // 要跳转到的页面路径
|
||||
url: "/pagesApp/customerMgt", // 要跳转到的页面路径
|
||||
});
|
||||
},
|
||||
},
|
||||
|
@ -364,7 +364,7 @@ const tabMenuList = reactive([
|
|||
title: "统计",
|
||||
fn: () => {
|
||||
uni.navigateTo({
|
||||
url: "/pages/statistics/index", // 要跳转到的页面路径
|
||||
url: "/pagesStatistics/index", // 要跳转到的页面路径
|
||||
});
|
||||
},
|
||||
},
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
>
|
||||
<swiper-item v-for="(item, index) in list" :key="index">
|
||||
<view class="image-box">
|
||||
<image :src="`/static/img/launch/${item.imgUrl}`"></image>
|
||||
<image :src="`./static/${item.imgUrl}`"></image>
|
||||
<view class="title">
|
||||
{{ item.title }}
|
||||
</view>
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 270 KiB |
Before Width: | Height: | Size: 237 KiB After Width: | Height: | Size: 237 KiB |
Before Width: | Height: | Size: 277 KiB After Width: | Height: | Size: 277 KiB |
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |
|
@ -0,0 +1,318 @@
|
|||
<template>
|
||||
<view class="c-card">
|
||||
<u-form
|
||||
labelPosition="left"
|
||||
:model="model1"
|
||||
:rules="rules"
|
||||
ref="form"
|
||||
:labelWidth="80"
|
||||
:labelStyle="{ padding: '0rpx 10rpx' }"
|
||||
>
|
||||
<u-form-item
|
||||
:prop="`order[${item.key}]`"
|
||||
:label="item.name"
|
||||
:required="item.required"
|
||||
v-for="(item, index) in formAttrList"
|
||||
:key="index"
|
||||
@click="item.fn"
|
||||
>
|
||||
<u-textarea
|
||||
v-if="item.type === 'textarea'"
|
||||
v-model="(model1.order as any)[(item.key as any)]"
|
||||
:placeholder="`请输入${item.name}`"
|
||||
></u-textarea>
|
||||
<u-input
|
||||
v-if="item.type === 'select' || item.type === 'input'"
|
||||
v-model="(model1.order as any)[(item.key as any)]"
|
||||
:placeholder="`请${item.type === 'select' ? '选择' : '输入'}${
|
||||
item.name
|
||||
}`"
|
||||
:clearable="true"
|
||||
:customStyle="{}"
|
||||
border="none"
|
||||
>
|
||||
<template #suffix>
|
||||
{{ item.unit }}
|
||||
</template>
|
||||
</u-input>
|
||||
<!-- @afterRead="afterRead"
|
||||
@delete="deletePic" -->
|
||||
<!-- <u-upload
|
||||
v-if="item.type === 'upload'"
|
||||
:fileList="[]"
|
||||
name="1"
|
||||
multiple
|
||||
:maxCount="10"
|
||||
></u-upload> -->
|
||||
<uni-file-picker
|
||||
v-if="item.type === 'upload'"
|
||||
v-model="model1.order.fileList"
|
||||
limit="10"
|
||||
title="最多可上传10张图片"
|
||||
:auto-upload="false"
|
||||
fileMediatype="image"
|
||||
mode="grid"
|
||||
ref="filesShipmentRef"
|
||||
></uni-file-picker>
|
||||
|
||||
<u-radio-group
|
||||
v-if="item.type === 'radio'"
|
||||
v-model="(model1.order as any)[(item.key as any)]"
|
||||
placement="row"
|
||||
>
|
||||
<u-radio activeColor="#00DCEE" label="送货" :name="0"></u-radio>
|
||||
|
||||
<u-radio activeColor="#00DCEE" label="自提" :name="1"></u-radio>
|
||||
</u-radio-group>
|
||||
<template #right v-if="item.type === 'select'">
|
||||
<u-icon name="arrow-right"></u-icon>
|
||||
</template>
|
||||
</u-form-item>
|
||||
</u-form>
|
||||
<u-action-sheet
|
||||
:actions="contrlModalParams.select.selectList"
|
||||
:title="contrlModalParams.select.title"
|
||||
:show="contrlModalParams.select.isShow"
|
||||
@select="contrlModalParams.select.isShow = false"
|
||||
@close="contrlModalParams.select.isShow = false"
|
||||
></u-action-sheet>
|
||||
</view>
|
||||
<view class="btn-box">
|
||||
<u-button type="primary" text="保存" @click="save()"></u-button>
|
||||
</view>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { PictureApi, ShipmentApi } from "@/services";
|
||||
import { ImagesType, OrderType, ScaleStatus } from "@/utils/enum";
|
||||
import { onLoad } from "@dcloudio/uni-app";
|
||||
const model1 = reactive<Shipment>({
|
||||
order: {
|
||||
id: 0,
|
||||
splTime: "",
|
||||
takeType: 1,
|
||||
fileList: [],
|
||||
},
|
||||
});
|
||||
const rules = ref({
|
||||
"userInfo.userName": {
|
||||
type: "string",
|
||||
required: true,
|
||||
message: "请输入手机号",
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
"userInfo.password": {
|
||||
type: "string",
|
||||
required: true,
|
||||
message: "请输入密码",
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
});
|
||||
const contrlModalParams = reactive({
|
||||
select: {
|
||||
isShow: false,
|
||||
title: "标题",
|
||||
selectList: [
|
||||
{
|
||||
name: "选项一",
|
||||
},
|
||||
{
|
||||
name: "选项二",
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
const formAttrList = reactive([
|
||||
{
|
||||
name: "客户",
|
||||
key: "userId",
|
||||
type: "select",
|
||||
required: true,
|
||||
unit: "",
|
||||
fn: () => {
|
||||
contrlModalParams.select.isShow = true;
|
||||
contrlModalParams.select.title = "客户";
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "出货产品",
|
||||
key: "productId",
|
||||
type: "select",
|
||||
required: true,
|
||||
unit: "",
|
||||
fn: () => {
|
||||
contrlModalParams.select.isShow = true;
|
||||
contrlModalParams.select.title = "出货产品";
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "数量",
|
||||
key: "number",
|
||||
type: "input",
|
||||
required: true,
|
||||
unit: "件",
|
||||
},
|
||||
{
|
||||
name: "毛重",
|
||||
key: "grossWeight",
|
||||
type: "input",
|
||||
required: true,
|
||||
unit: "KG",
|
||||
},
|
||||
{
|
||||
name: "提货方式",
|
||||
key: "deliveryMethod",
|
||||
required: true,
|
||||
type: "radio",
|
||||
},
|
||||
{
|
||||
name: "车辆信息",
|
||||
type: "text",
|
||||
},
|
||||
{
|
||||
name: "车牌号",
|
||||
key: "carNumber",
|
||||
type: "input",
|
||||
unit: "",
|
||||
},
|
||||
{
|
||||
name: "司机电话",
|
||||
key: "phone",
|
||||
type: "input",
|
||||
unit: "",
|
||||
},
|
||||
{
|
||||
name: "集装箱",
|
||||
type: "text",
|
||||
},
|
||||
{
|
||||
name: "箱号",
|
||||
key: "box",
|
||||
type: "input",
|
||||
unit: "",
|
||||
},
|
||||
{
|
||||
name: "封号",
|
||||
key: "title",
|
||||
type: "input",
|
||||
unit: "",
|
||||
},
|
||||
{
|
||||
name: "备注",
|
||||
key: "notes",
|
||||
type: "textarea",
|
||||
},
|
||||
{
|
||||
name: "上传照片",
|
||||
key: "photo",
|
||||
type: "upload",
|
||||
},
|
||||
]);
|
||||
const filesShipmentRef = ref();
|
||||
const handleUpload = () => {
|
||||
// console.log(event.tempFilePaths)
|
||||
const list = filesShipmentRef.value[0].filesList;
|
||||
return list.map((item: any) => {
|
||||
return new Promise((resolve) => {
|
||||
PictureApi.upload({
|
||||
files: item,
|
||||
path: item.path,
|
||||
}).then((res) => {
|
||||
if (res.code === 200) {
|
||||
resolve({
|
||||
...(res.data as any),
|
||||
businessId: model1.order.id,
|
||||
imagesType: ImagesType.NORMARL, // 普通资源
|
||||
orderType: OrderType.Shipment, // 入库单
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 点击保存 先执行upload接口
|
||||
* 上传成功后 保存图片资源 和更新订单数据
|
||||
*/
|
||||
const save = () => {
|
||||
Promise.all(handleUpload()).then((res) => {
|
||||
// 上传多个资源
|
||||
if (res.length > 0) {
|
||||
PictureApi.addListAnnex({ annexPos: res }).then((res1) => {
|
||||
if (res1.code === 200) {
|
||||
uni.showToast({
|
||||
title: "图片资源上传成功",
|
||||
icon: "success",
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// 更新出货单
|
||||
ShipmentApi.updateOrderIn({
|
||||
orderOutPos: [
|
||||
{ ...model1.order, scaleStatus: ScaleStatus.ToBeGrossWeight },
|
||||
],
|
||||
}).then((res) => {
|
||||
if (res.code === 200) {
|
||||
uni.showToast({
|
||||
title: "编辑成功",
|
||||
icon: "success",
|
||||
});
|
||||
uni.navigateTo({
|
||||
url: "/pagesShipment/grossWeight", // 要跳转到的页面路径
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
onLoad((option) => {
|
||||
model1.order.id = (option as any).id;
|
||||
if (model1.order.id) {
|
||||
ShipmentApi.getDetailById({ id: model1.order.id }).then((res) => {
|
||||
if (res.code === 200) {
|
||||
model1.order = res.data;
|
||||
}
|
||||
});
|
||||
PictureApi.getAnnex({
|
||||
businessId: model1.order.id,
|
||||
orderType: 1,
|
||||
imagesType: ImagesType.NORMARL,
|
||||
}).then((res) => {
|
||||
if (res.code === 200) {
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.c-card {
|
||||
background: #ffffff;
|
||||
// box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12);
|
||||
border-radius: 13rpx;
|
||||
margin: 30rpx 25rpx;
|
||||
padding: 10rpx 20rpx;
|
||||
::v-deep .u-form-item {
|
||||
height: auto;
|
||||
}
|
||||
::v-deep .u-form-item + .u-form-item {
|
||||
border-top: 1rpx solid rgba(233, 233, 233, 0.76);
|
||||
}
|
||||
}
|
||||
.btn-box {
|
||||
margin-top: 60rpx;
|
||||
display: flex;
|
||||
background: #ffffff;
|
||||
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 56, 93, 0.12);
|
||||
border-radius: 13rpx 13rpx 0rpx 0rpx;
|
||||
padding: 25rpx 50rpx;
|
||||
position: sticky;
|
||||
bottom: 0rpx;
|
||||
z-index: 999;
|
||||
::v-deep button {
|
||||
border-radius: 43rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -199,7 +199,7 @@ const formAttrList = reactive([
|
|||
},
|
||||
{
|
||||
name: "备注",
|
||||
key: "remark",
|
||||
key: "notes",
|
||||
type: "textarea",
|
||||
},
|
||||
{
|
||||
|
|
|
@ -0,0 +1,165 @@
|
|||
<template>
|
||||
<view class="card-box" v-for="(item, index) in pageList.list" :key="index">
|
||||
<view class="top-flex-box">
|
||||
<view>
|
||||
<view>
|
||||
<text class="address">{{ item.deviceName || "-" }}</text>
|
||||
</view>
|
||||
<view>
|
||||
<text class="number">出货单号:{{ item.orderNumber }}</text>
|
||||
</view>
|
||||
<view>
|
||||
<text class="name">{{ item.cardId }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<text class="btn" @click="handleScenePhoto((item.imagesId as number))"
|
||||
>现场照片</text
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<text class="desc">过磅时间:{{ item.grossTime || '-' }}</text>
|
||||
</view>
|
||||
<view class="flex-box">
|
||||
<text>皮重:{{ item.tare }}kg</text>
|
||||
</view>
|
||||
<view class="btn-box">
|
||||
<u-button
|
||||
text="点击作废"
|
||||
color="#E8E8E8"
|
||||
:customStyle="{ color: '#999' }"
|
||||
@click="handleModal(true, (item.id as any))"
|
||||
></u-button>
|
||||
<u-button
|
||||
type="primary"
|
||||
text="点击编辑"
|
||||
@click="pricingDetail((item.id as any))"
|
||||
></u-button>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<SmallModal
|
||||
:title="'确认作废吗?'"
|
||||
:content="'确认作废后,该订单不能恢复!'"
|
||||
:okText="'确认作废'"
|
||||
:isMain="true"
|
||||
:show="isShowCancelModal"
|
||||
@handleModal="(v:boolean) => {handleModal(v, deleteId)}"
|
||||
@handleOk="handleOk()"
|
||||
/>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ShipmentApi } from "@/services/index";
|
||||
import SmallModal from "@/components/Modal/smallModal.vue";
|
||||
|
||||
interface PageResult<T> {
|
||||
total: number;
|
||||
list: T[];
|
||||
pageNum: number;
|
||||
pageSize: number;
|
||||
}
|
||||
const pageList: PageResult<Shipment> = reactive({
|
||||
total: 0,
|
||||
list: [],
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
});
|
||||
const isShowCancelModal = ref(false);
|
||||
const deleteId = ref(0);
|
||||
const handleModal = (v: boolean, id: number) => {
|
||||
isShowCancelModal.value = v;
|
||||
deleteId.value = id;
|
||||
};
|
||||
const handleScenePhoto = (imagesId: number) => {
|
||||
uni.navigateTo({
|
||||
url: "/pagesScenePhoto/index?orderType=2&id=" + imagesId, // 要跳转到的页面路径
|
||||
});
|
||||
};
|
||||
const pricingDetail = (id: string) => {
|
||||
uni.navigateTo({
|
||||
url: "/pagesShipment/form/shipmentForm?id=" + id, // 要跳转到的页面路径
|
||||
});
|
||||
};
|
||||
const getOrderList = () => {
|
||||
ShipmentApi.getOrderPage({ pageNumber: 1, pageSize: 10, scaleStatus: 1 }).then((res) => {
|
||||
if (res.code === 200) {
|
||||
(pageList as any).list = res.data.list;
|
||||
}
|
||||
});
|
||||
};
|
||||
const handleOk = () => {
|
||||
console.log(deleteId.value);
|
||||
ShipmentApi.deleteOrder({ids:[deleteId.value]}).then((res) => {
|
||||
if (res.code === 200) {
|
||||
getOrderList();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
getOrderList();
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.card-box {
|
||||
padding: 38rpx 50rpx;
|
||||
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12);
|
||||
border-radius: 13rpx;
|
||||
margin: 0rpx 25rpx;
|
||||
margin-top: 35rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #000000;
|
||||
line-height: 41rpx;
|
||||
.top-flex-box {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.btn {
|
||||
border-radius: 24rpx;
|
||||
border: 1px solid #00dcee;
|
||||
padding: 10rpx 30rpx;
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #00dcee;
|
||||
line-height: 41rpx;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
.address {
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
.desc {
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
margin-top: 30rpx;
|
||||
display: inline-block;
|
||||
}
|
||||
.name {
|
||||
font-size: 26rpx;
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.flex-box {
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #000000;
|
||||
line-height: 41rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.btn-box {
|
||||
margin-top: 60rpx;
|
||||
display: flex;
|
||||
::v-deep button {
|
||||
border-radius: 43rpx;
|
||||
}
|
||||
::v-deep button + button {
|
||||
margin-left: 50rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,514 @@
|
|||
<template>
|
||||
<view class="c-card">
|
||||
<view class="box">
|
||||
<view class="base">
|
||||
<view>
|
||||
<view class="supplier"> {{ state.order.deviceName || "-" }} </view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-box1">
|
||||
<view class="type">{{ state.order.productName || "" }}</view>
|
||||
<view class="btn">
|
||||
<view
|
||||
><u-tag
|
||||
text="现场照片"
|
||||
plain
|
||||
shape="circle"
|
||||
:bgColor="'rgba(237, 254, 255, 1)'"
|
||||
@click="handleScenePhoto(state.order.imagesId as number)"
|
||||
></u-tag
|
||||
></view>
|
||||
<view
|
||||
><u-tag
|
||||
text="收货单作废"
|
||||
plain
|
||||
shape="circle"
|
||||
:borderColor="'rgba(255, 147, 68, 1) !important'"
|
||||
:bgColor="'rgba(255, 240, 229, 1)'"
|
||||
:color="'rgba(255, 157, 85, 1) !important'"
|
||||
@click="handleModal(true, state.order.id as string)"
|
||||
></u-tag
|
||||
></view>
|
||||
<!-- 待审核才会有编辑信息-->
|
||||
<view v-if="state.order.scaleStatus === 2"
|
||||
><u-tag
|
||||
text="编辑信息"
|
||||
plain
|
||||
shape="circle"
|
||||
:borderColor="'rgba(0, 238, 78, 1) !important'"
|
||||
:bgColor="'rgba(227, 255, 236, 1)'"
|
||||
:color="'rgba(0, 238, 78, 1) !important'"
|
||||
@click="handleUpdateOrder"
|
||||
></u-tag
|
||||
></view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 出库 过磅时间对应过皮时间 -->
|
||||
<view class="flex-box" v-if="state.order.scaleStatus === 2">
|
||||
<text>审核人:{{ state.order.pricingUserName || "-" }}</text>
|
||||
<text>过磅时间:{{ state.order.tareTime }}</text>
|
||||
</view>
|
||||
|
||||
<!-- <view class="flex-box" v-if="getIsShow()" style="border: none">
|
||||
<text>过磅时间:{{ state.order.grossTime || "-" }}</text>
|
||||
</view>
|
||||
<view class="flex-box" v-if="getIsShow()">
|
||||
<text>定价人:{{ state.order.pricingUserName || "-" }}</text>
|
||||
<text>审核人:{{ state.order.reviewerUserName || "-" }}</text>
|
||||
</view> -->
|
||||
|
||||
<view class="more">
|
||||
<view v-if="getIsShow()"> 出货单号:SHD20230901132333 </view>
|
||||
<view v-if="getIsShow()"></view>
|
||||
<view v-for="(item, index) in gridList1" :key="index">
|
||||
<text v-if="item.name">{{ item.name }}:</text
|
||||
><text
|
||||
>{{ item.isBefore ? item.unit : "" }}
|
||||
{{ item.num }}
|
||||
{{ item.isBefore ? "" : item.unit }}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- <u-gap height="10" bgColor="#F8F8F8"></u-gap> -->
|
||||
<view class="mt-30">
|
||||
<u-line></u-line>
|
||||
</view>
|
||||
<view class="more">
|
||||
<view v-for="(item, index) in gridList2" :key="index">
|
||||
<text v-if="item.name">{{ item.name }}:</text
|
||||
><text
|
||||
>{{ item.isBefore ? item.unit : "" }}
|
||||
{{ item.num }}
|
||||
{{ item.isBefore ? "" : item.unit }}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="op-btn">
|
||||
<view class="c-btn-review" v-if="state.order.scaleStatus === 2">
|
||||
<view @click="handleReviewNoPay"> 出货未结算 </view>
|
||||
<view class="active" @click="handleReviewPay"> 出货并结算 </view>
|
||||
</view>
|
||||
<view v-if="state.order.scaleStatus === 2">
|
||||
<u-button
|
||||
text="重新过毛"
|
||||
plain
|
||||
:customStyle="{
|
||||
color: 'rgba(0, 220, 238, 1)',
|
||||
border: '1px solid #00DCEE',
|
||||
'border-radius': '43rpx',
|
||||
}"
|
||||
></u-button>
|
||||
</view>
|
||||
<view v-if="state.order.scaleStatus === 3">
|
||||
<u-button
|
||||
text="确认支付"
|
||||
type="primary"
|
||||
:customStyle="{ 'border-radius': '43rpx' }"
|
||||
@click="handleReviewPay"
|
||||
></u-button>
|
||||
</view>
|
||||
<view>
|
||||
<u-button
|
||||
text="打印"
|
||||
type="primary"
|
||||
:customStyle="{ 'border-radius': '43rpx' }"
|
||||
></u-button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 支付方式 -->
|
||||
<block v-for="(item, index) in state.sheetList" :key="index">
|
||||
<u-action-sheet
|
||||
:actions="contrlModalParams[item.key].list"
|
||||
:title="contrlModalParams[item.key].title"
|
||||
:show="contrlModalParams[item.key].isShow"
|
||||
@select="(v: any) => handleSelect(item.key, v)"
|
||||
@close="contrlModalParams[item.key].isShow = false"
|
||||
:closeOnClickAction="true"
|
||||
></u-action-sheet>
|
||||
</block>
|
||||
<SmallModal
|
||||
:title="'确认作废吗?'"
|
||||
:content="'确认作废后,该订单不能恢复!'"
|
||||
:okText="'确认作废'"
|
||||
:isMain="true"
|
||||
:show="isShowCancelModal"
|
||||
@handleModal="(v:boolean) => {handleModal(v, deleteId)}"
|
||||
@handleOk="handleOk()"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ShipmentApi } from "@/services/index";
|
||||
import { onLoad } from "@dcloudio/uni-app";
|
||||
const keyword = ref("");
|
||||
const contrlModalParams = reactive<{ [attrName: string]: any }>({
|
||||
paySelect: {
|
||||
isShow: false,
|
||||
title: "请选择支付方式",
|
||||
// 1:现金支付,2:银行卡支付,3:线上支付(微信)4:支付宝
|
||||
list: [
|
||||
{
|
||||
name: "微信",
|
||||
key: 3,
|
||||
},
|
||||
{
|
||||
name: "现金",
|
||||
key: 1,
|
||||
},
|
||||
{
|
||||
name: "支付宝",
|
||||
key: 4,
|
||||
},
|
||||
{
|
||||
name: "转账",
|
||||
key: 2,
|
||||
},
|
||||
],
|
||||
},
|
||||
printSelect: {
|
||||
isShow: false,
|
||||
title: "请选择打印设备",
|
||||
list: [
|
||||
{
|
||||
name: "打印设备1",
|
||||
key: 1,
|
||||
},
|
||||
{
|
||||
name: "打印设备2",
|
||||
key: 2,
|
||||
},
|
||||
{
|
||||
name: "打印设备3",
|
||||
key: 3,
|
||||
},
|
||||
{
|
||||
name: "打印设备4",
|
||||
key: 4,
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
const state = reactive<{
|
||||
order: Shipment;
|
||||
[attrName: string]: any;
|
||||
}>({
|
||||
order: {},
|
||||
sheetList: [
|
||||
{
|
||||
key: "paySelect",
|
||||
},
|
||||
{
|
||||
key: "printSelect",
|
||||
},
|
||||
],
|
||||
scaleStatus: 2,
|
||||
});
|
||||
const gridList1 = reactive([
|
||||
{
|
||||
name: "毛重",
|
||||
enName: "grossWeight",
|
||||
num: "",
|
||||
unit: "KG",
|
||||
isBefore: false,
|
||||
},
|
||||
{
|
||||
name: "皮重",
|
||||
enName: "tare",
|
||||
num: "",
|
||||
unit: "KG",
|
||||
isBefore: false,
|
||||
},
|
||||
{
|
||||
name: "净重",
|
||||
enName: "netWeight",
|
||||
num: "",
|
||||
unit: "KG",
|
||||
isBefore: false,
|
||||
},
|
||||
]);
|
||||
const gridList2 = reactive([
|
||||
{
|
||||
name: "客户名称",
|
||||
enName: "userName",
|
||||
num: "",
|
||||
isBefore: false,
|
||||
},
|
||||
{},
|
||||
{
|
||||
name: "签收时间",
|
||||
enName: "signTime",
|
||||
num: "",
|
||||
isBefore: false,
|
||||
},
|
||||
{},
|
||||
{
|
||||
name: "毛重",
|
||||
enName: "signGrossWeight",
|
||||
num: "",
|
||||
unit: "KG",
|
||||
isBefore: false,
|
||||
},
|
||||
{
|
||||
name: "皮重",
|
||||
enName: "signTare",
|
||||
num: "",
|
||||
unit: "KG",
|
||||
isBefore: false,
|
||||
},
|
||||
{
|
||||
name: "结算重量",
|
||||
enName: "signWeight",
|
||||
num: "",
|
||||
unit: "KG",
|
||||
isBefore: false,
|
||||
},
|
||||
{
|
||||
name: "单价",
|
||||
enName: "unitPrice",
|
||||
num: "",
|
||||
unit: "元/KG",
|
||||
isBefore: false,
|
||||
},
|
||||
{
|
||||
name: "预估总价",
|
||||
enName: "estimatePrice",
|
||||
num: "",
|
||||
unit: "元",
|
||||
isBefore: false,
|
||||
},
|
||||
{
|
||||
name: "结算金额",
|
||||
enName: "totalPrice",
|
||||
num: "",
|
||||
unit: "元",
|
||||
isBefore: false,
|
||||
},
|
||||
{
|
||||
name: "运费",
|
||||
enName: "freight",
|
||||
num: "",
|
||||
unit: "元",
|
||||
isBefore: false,
|
||||
},
|
||||
{
|
||||
name: "杂费",
|
||||
enName: "incidentals",
|
||||
num: "",
|
||||
unit: "元",
|
||||
isBefore: false,
|
||||
},
|
||||
]);
|
||||
const getIsShow = () => {
|
||||
return state.order.scaleStatus === 2 || state.order.scaleStatus === 4;
|
||||
};
|
||||
const handleScenePhoto = (imagesId: number) => {
|
||||
uni.navigateTo({
|
||||
url: "/pagesScenePhoto/index?orderType=1&id=" + imagesId, // 要跳转到的页面路径
|
||||
});
|
||||
};
|
||||
// 出货未结算 // 先填写结算信息后更新状态为3
|
||||
const handleReviewNoPay = () => {
|
||||
uni.navigateTo({
|
||||
url: "/pagesShipment/form/settlementForm?id=" + state.order.id, // 要跳转到的页面路径
|
||||
});
|
||||
// ShipmentApi.updateOrderIn({ ...state.order, scaleStatus: 3 }).then((res) => {
|
||||
// if (res.code === 200) {
|
||||
// uni.navigateTo({
|
||||
// url: "/pagesShipment/shipmentSettlement?scaleStatus=3", // 要跳转到的页面路径
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
};
|
||||
// 审核立即支付
|
||||
const handleReviewPay = () => {
|
||||
contrlModalParams.paySelect.isShow = true;
|
||||
};
|
||||
|
||||
const handleSelect = (key: string, v: any) => {
|
||||
contrlModalParams[key].isShow = false;
|
||||
if (key === "paySelect") {
|
||||
// 修改订单状态
|
||||
// ShipmentApi.updateOne({
|
||||
// ...state.order,
|
||||
// scaleStatus: 4,
|
||||
// paymentMethod: v.key,
|
||||
// }).then((res) => {
|
||||
// if (res.code === 200) {
|
||||
// uni.showToast({
|
||||
// title: "支付成功",
|
||||
// icon: "success",
|
||||
// });
|
||||
// uni.navigateTo({
|
||||
// url: "/pagesReceive/payReview?scaleStatus=4", // 要跳转到的页面路径
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
} else if (key === "printSelect") {
|
||||
// 打印
|
||||
}
|
||||
};
|
||||
const isShowCancelModal = ref(false);
|
||||
const deleteId = ref("0");
|
||||
// 打开确认作废对话框
|
||||
const handleModal = (v: boolean, id: string) => {
|
||||
isShowCancelModal.value = v;
|
||||
deleteId.value = id;
|
||||
};
|
||||
const handleOk = () => {
|
||||
ShipmentApi.deleteOrder({ ids: [deleteId.value] }).then((res) => {
|
||||
if (res.code === 200) {
|
||||
uni.navigateTo({
|
||||
url: "/pagesShipment/shipmentSettlement?scaleStatus=2", // 要跳转到的页面路径
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
const handleUpdateOrder = () => {
|
||||
uni.navigateTo({
|
||||
url: "/pagesShipment/form/shipmentForm?id=" + state.order.id, // 要跳转到的页面路径
|
||||
});
|
||||
};
|
||||
onLoad((option) => {
|
||||
state.order.id = (option as any).id;
|
||||
state.scaleStatus = parseInt((option as any).scaleStatus);
|
||||
if (state.order.id) {
|
||||
ShipmentApi.getDetailById({ id: state.order.id }).then((res) => {
|
||||
if (res.code === 200) {
|
||||
state.order = res.data;
|
||||
// gridList1.map((item) => {
|
||||
// if (item.name === "扣杂" || item.name === "扣点") {
|
||||
// if (state.order.buttonType === 0) {
|
||||
// item.name = "扣杂";
|
||||
// item.enName = "buckleMiscellaneous";
|
||||
// item.unit = "KG";
|
||||
// } else if (state.order.buttonType === 1) {
|
||||
// item.name = "扣点";
|
||||
// item.enName = "points";
|
||||
// item.unit = "%";
|
||||
// }
|
||||
// }
|
||||
// item.num = state.order[item.enName as string];
|
||||
// });
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.c-card {
|
||||
margin: 30rpx 25rpx;
|
||||
.box {
|
||||
background: #ffffff;
|
||||
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12);
|
||||
border-radius: 13rpx;
|
||||
padding: 30rpx;
|
||||
.base {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #000000;
|
||||
.btn {
|
||||
border-radius: 24rpx;
|
||||
border: 1px solid #00dcee;
|
||||
padding: 10rpx 30rpx;
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #00dcee;
|
||||
line-height: 41rpx;
|
||||
}
|
||||
}
|
||||
.name {
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #000000;
|
||||
margin: 15rpx 0rpx;
|
||||
text {
|
||||
background-color: #ffaf75;
|
||||
font-weight: 500;
|
||||
font-size: 26rpx;
|
||||
color: #ffffff;
|
||||
padding: 5rpx 20rpx;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.flex-box1 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin: 20rpx 0rpx;
|
||||
.type {
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #ec0f3e;
|
||||
}
|
||||
.btn {
|
||||
display: flex;
|
||||
> view + view {
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.flex-box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
font-weight: 400;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
border-bottom: 1rpx solid rgba(233, 233, 233, 0.76);
|
||||
padding-bottom: 20rpx;
|
||||
}
|
||||
}
|
||||
.more {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
flex: 1;
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #000000;
|
||||
padding: 25rpx 0rpx 0rpx 0rpx;
|
||||
> view {
|
||||
line-height: 50rpx;
|
||||
width: max-content;
|
||||
}
|
||||
}
|
||||
.op-btn {
|
||||
width: 80%;
|
||||
margin: 0px auto;
|
||||
margin-top: 100rpx;
|
||||
.c-btn-review {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background: #f5f5f5;
|
||||
border-radius: 38rpx;
|
||||
text-align: center;
|
||||
margin-bottom: 80rpx;
|
||||
> view {
|
||||
width: 50%;
|
||||
text-align: center;
|
||||
font-weight: 500;
|
||||
font-size: 26rpx;
|
||||
color: #999999;
|
||||
}
|
||||
.active {
|
||||
background: #00dcee;
|
||||
border-radius: 38rpx;
|
||||
font-weight: 500;
|
||||
font-size: 26rpx;
|
||||
color: #ffffff;
|
||||
padding: 20rpx 30rpx;
|
||||
}
|
||||
}
|
||||
> view + view {
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,275 @@
|
|||
<template>
|
||||
<view class="search">
|
||||
<view v-if="!isShowSearch" @click="isShowSearch = true">
|
||||
<u-icon color="#C1C1C1" name="search"></u-icon
|
||||
><text>请输入客户名称</text>
|
||||
</view>
|
||||
<u-search
|
||||
v-else
|
||||
placeholder="请输入客户名称"
|
||||
v-model="keyword"
|
||||
:focus="true"
|
||||
bgColor="#fff"
|
||||
:clearabled="true"
|
||||
:showAction="false"
|
||||
placeholderColor="#C1C1C1"
|
||||
></u-search>
|
||||
</view>
|
||||
|
||||
<view class="card-box">
|
||||
<view class="c-tab">
|
||||
<text
|
||||
v-for="(item, index) in tabList"
|
||||
:key="index"
|
||||
:class="{ active: currentTab === item.key }"
|
||||
@click="handleTab(item)"
|
||||
>
|
||||
{{ item.name }}
|
||||
</text>
|
||||
</view>
|
||||
|
||||
<block v-for="(item, index) in pageList.list" :key="index">
|
||||
<view class="c-layout">
|
||||
<view
|
||||
><checkbox
|
||||
value="cb"
|
||||
:color="'#00D2E3'"
|
||||
:checked="state.checkMap[(item.id as number)]"
|
||||
style="transform: scale(0.5)"
|
||||
/></view>
|
||||
<view class="inner-box">
|
||||
<view class="top-flex-box">
|
||||
<view>
|
||||
<view>
|
||||
<text class="number">出货单号:{{ item.receiptNumber }}</text>
|
||||
</view>
|
||||
<view>
|
||||
<text class="name">{{ item.userName }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-flex-box">
|
||||
<view>
|
||||
<view>
|
||||
<text class="desc"
|
||||
>过磅总净重:{{ item.netWeight || 0 }}KG</text
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<text class="btn">
|
||||
<text
|
||||
v-if="currentTab === 2"
|
||||
@click="handleReview(item.id as number, 2)"
|
||||
>出货结算</text
|
||||
>
|
||||
<text v-if="currentTab === 3" @click="handleReview(item.id as number, 3)">去结算</text>
|
||||
<text v-if="currentTab === 4" @click="handleReview(item.id as number, 4)">查看</text>
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<u-gap
|
||||
height="10"
|
||||
bgColor="#f8f8f8"
|
||||
v-if="index < pageList.list.length - 1"
|
||||
></u-gap>
|
||||
</block>
|
||||
</view>
|
||||
<view class="btn-box" v-if="(currentTab === 2 || currentTab === 3) && pageList.list.length > 0">
|
||||
<u-button
|
||||
text="全选/取消"
|
||||
color="#fff"
|
||||
:customStyle="{ color: '#00DCEE', border: '1px solid #00DCEE' }"
|
||||
@click="handleSelect"
|
||||
></u-button>
|
||||
<u-button type="primary" :text="`${currentTab === 2 ? '批量审核' : '批量支付'}`"></u-button>
|
||||
</view>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ShipmentApi } from "@/services/index";
|
||||
import { onLoad } from "@dcloudio/uni-app";
|
||||
// scaleStatus
|
||||
interface PageResult<T> {
|
||||
total: number;
|
||||
list: T[];
|
||||
pageNum: number;
|
||||
pageSize: number;
|
||||
}
|
||||
const pageList: PageResult<Order> = reactive({
|
||||
total: 0,
|
||||
list: [],
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
});
|
||||
const keyword = ref();
|
||||
const isShowSearch = ref(false);
|
||||
const state = reactive<{
|
||||
[attrName: string]: any;
|
||||
}>({
|
||||
checkMap: {},
|
||||
isAll: false,
|
||||
});
|
||||
const tabList = reactive([
|
||||
{
|
||||
name: "待出货结算",
|
||||
key: 2,
|
||||
},
|
||||
{
|
||||
name: "已出未结算",
|
||||
key: 3,
|
||||
},
|
||||
{
|
||||
name: "已出已结算",
|
||||
key: 4,
|
||||
},
|
||||
]);
|
||||
const currentTab = ref(2);
|
||||
const handleTab = (item: any) => {
|
||||
currentTab.value = item.key;
|
||||
getOrderList();
|
||||
};
|
||||
const handleReview = (id: number, scaleStatus: number) => {
|
||||
uni.navigateTo({
|
||||
url: "/pagesShipment/review/index?id=" + id + `&scaleStatus=`+ scaleStatus, // 要跳转到的页面路径
|
||||
});
|
||||
};
|
||||
const handleSelect = () => {
|
||||
state.isAll = !state.isAll;
|
||||
Object.keys(state.checkMap).forEach((item) => {
|
||||
state.checkMap[item] = state.isAll;
|
||||
});
|
||||
};
|
||||
const getOrderList = () => {
|
||||
ShipmentApi.getOrderPage({ pageNumber: 1, pageSize: 10, scaleStatus: currentTab.value }).then(
|
||||
(res) => {
|
||||
if (res.code === 200) {
|
||||
(pageList as any).list = res.data.list;
|
||||
(res.data.list as any).forEach((item: any) => {
|
||||
state.checkMap[parseInt(item.id)] = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
onMounted(() => {
|
||||
getOrderList();
|
||||
});
|
||||
onLoad((option) => {
|
||||
currentTab.value = parseInt((option as any).scaleStatus);
|
||||
})
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.search {
|
||||
box-shadow: 0rpx 3rpx 16rpx 5rpx rgba(0, 0, 0, 0.2);
|
||||
border-radius: 28rpx;
|
||||
background: rgba(255, 255, 255, 0.86);
|
||||
width: 80%;
|
||||
margin: 0px auto;
|
||||
margin-top: 30rpx;
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #c1c1c1;
|
||||
> view {
|
||||
line-height: 60rpx;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
text {
|
||||
margin-left: 15rpx;
|
||||
}
|
||||
}
|
||||
.card-box {
|
||||
.c-tab {
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #999999;
|
||||
line-height: 41rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
border-bottom: 1rpx solid rgba(233, 233, 233, 0.76);
|
||||
text {
|
||||
padding: 16rpx;
|
||||
}
|
||||
.active {
|
||||
color: $u-primary;
|
||||
border-bottom: 5rpx solid $u-primary;
|
||||
border-radius: 5rpx;
|
||||
}
|
||||
}
|
||||
.c-layout {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 30rpx 25rpx 30rpx 0rpx;
|
||||
}
|
||||
.inner-box {
|
||||
width: 100%;
|
||||
// padding: 40rpx 40rpx;
|
||||
.bottom-flex-box {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.btn {
|
||||
border-radius: 24rpx;
|
||||
border: 1px solid #00dcee;
|
||||
padding: 10rpx 30rpx;
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #00dcee;
|
||||
line-height: 41rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12);
|
||||
border-radius: 13rpx;
|
||||
margin: 0rpx 25rpx;
|
||||
margin-top: 35rpx;
|
||||
font-family: Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
color: #000000;
|
||||
line-height: 41rpx;
|
||||
|
||||
.desc {
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
margin-top: 30rpx;
|
||||
display: inline-block;
|
||||
}
|
||||
.name {
|
||||
font-size: 26rpx;
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
}
|
||||
.flex-box {
|
||||
font-weight: bold;
|
||||
color: #000000;
|
||||
line-height: 41rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.btn-box {
|
||||
margin-top: 60rpx;
|
||||
display: flex;
|
||||
background: #ffffff;
|
||||
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 56, 93, 0.12);
|
||||
border-radius: 13rpx 13rpx 0rpx 0rpx;
|
||||
padding: 25rpx 50rpx;
|
||||
position: absolute;
|
||||
bottom: 0rpx;
|
||||
width: calc(100vw - 100rpx);
|
||||
::v-deep button {
|
||||
border-radius: 43rpx;
|
||||
}
|
||||
::v-deep button + button {
|
||||
margin-left: 50rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -3,7 +3,6 @@
|
|||
<view class="top-flex-box">
|
||||
<view>
|
||||
<view>
|
||||
{{ item.id }}
|
||||
<text class="address">{{ item.deviceName || "-" }}</text>
|
||||
</view>
|
||||
<view>
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
// 存放路径: src/services/home.ts
|
||||
|
||||
import { http } from '@/utils/http'
|
||||
|
||||
/**
|
||||
* 首页-广告区域-小程序
|
||||
* @param distributionSite 广告区域展示位置(投放位置 投放位置,1为首页,2为分类商品页) 默认是1
|
||||
*/
|
||||
export const getHomeBannerAPI = (distributionSite = 1) => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/home/banner',
|
||||
data: {
|
||||
distributionSite,
|
||||
},
|
||||
})
|
||||
}
|
||||
// services/home.ts
|
||||
/**
|
||||
* 首页-前台分类-小程序
|
||||
*/
|
||||
export const getHomeCategoryAPI = () => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/home/category/mutli',
|
||||
})
|
||||
}
|
||||
// services/home.ts
|
||||
/**
|
||||
* 首页-热门推荐-小程序
|
||||
*/
|
||||
export const getHomeHotAPI = () => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/home/hot/mutli',
|
||||
})
|
||||
}
|
||||
// src/services/home.ts
|
||||
/**
|
||||
* 猜你喜欢-小程序
|
||||
*/
|
||||
export const getHomeGoodsGuessLikeAPI = (data: any) => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/home/goods/guessLike',
|
||||
data,
|
||||
})
|
||||
}
|
|
@ -1,48 +0,0 @@
|
|||
// 存放路径: src/services/home.ts
|
||||
|
||||
import { http } from '@/utils/http'
|
||||
|
||||
/**
|
||||
* 首页-广告区域-小程序
|
||||
* @param distributionSite 广告区域展示位置(投放位置 投放位置,1为首页,2为分类商品页) 默认是1
|
||||
*/
|
||||
export const getHomeBannerAPI = (distributionSite = 1) => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/home/banner',
|
||||
data: {
|
||||
distributionSite,
|
||||
},
|
||||
})
|
||||
}
|
||||
// services/home.ts
|
||||
/**
|
||||
* 首页-前台分类-小程序
|
||||
*/
|
||||
export const getHomeCategoryAPI = () => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/home/category/mutli',
|
||||
})
|
||||
}
|
||||
// services/home.ts
|
||||
/**
|
||||
* 首页-热门推荐-小程序
|
||||
*/
|
||||
export const getHomeHotAPI = () => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/home/hot/mutli',
|
||||
})
|
||||
}
|
||||
// src/services/home.ts
|
||||
/**
|
||||
* 猜你喜欢-小程序
|
||||
*/
|
||||
export const getHomeGoodsGuessLikeAPI = (data: any) => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/home/goods/guessLike',
|
||||
data,
|
||||
})
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
import { http } from '@/utils/http'
|
||||
|
||||
// 设备信息新增
|
||||
export const addDevice = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/device/addDevice',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 设备信息修改
|
||||
export const editDevice = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/device/edit',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 设备信息逻辑删除
|
||||
export const deleteDevice = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/device/deleteDevice',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 设备信息根据id查询
|
||||
export const selectDeviceId = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/device/selectDeviceId',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 设备信息根据id查询
|
||||
export const getDeviceList = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/device/getDeviceList',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,181 @@
|
|||
import { http } from '@/utils/http'
|
||||
|
||||
// 收货分类新增
|
||||
export const getStockCardList = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/recategory/addReCategory',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 收货分类逻辑删除
|
||||
export const deleteReceiveCategory = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/recategory/deleteCategory',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 收货根据分类id查询
|
||||
export const selectReCyById = (data: any) => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/api/recategory/selectReCyById',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
//收货分类分页查询
|
||||
export const getPage = (data: any) => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/api/recategory/getPage',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 收货分类修改信息
|
||||
export const editReceiveCategory = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/recategory/edit',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 收货产品新增
|
||||
export const addReProducts = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/reproducts/addReProducts',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 收货产品编辑
|
||||
export const EditReceiveProduct = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/reproducts/edit',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 收货产品逻辑删除
|
||||
export const deleteReceiveProduct = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/reproducts/deleteCategory',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 收货产品根据产品id查询
|
||||
export const getReceiveProductById = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/reproducts/selectReCyById',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 收货产品分页查询
|
||||
export const getReceiveProductListByPage = (data: any) => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/api/reproducts/getPage',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 收货产品查询所有
|
||||
export const getReceiveProductList = (data: any) => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/api/reproducts/allReProducts',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 出货分类新增
|
||||
export const addShmCategory = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/shmcategory/addShmCategory',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 出货分类树显示
|
||||
export const getShipmentCategory = (data: any) => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/api/shmcategory/getChinaList',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 出货分类根据id查询
|
||||
export const getShipmentCategoryById = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/shmcategory/selectShCyById',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 出货分类根据id逻辑删除
|
||||
export const deleteById = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/shmcategory/deleteShmCategory',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 出货分类根据id编辑
|
||||
export const editShipmentCategory = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/shmcategory/edit',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 出货产品根据id查询
|
||||
export const getShipmentProductById = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/shmproducts/selectRePsById',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 出货产品新增
|
||||
export const addShipmentProduct = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/shmproducts/addShmProducts',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 出货产品分页查询
|
||||
export const getShipmentProductByPage = (data: any) => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/api/shmproducts/getPage',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 出货产品查询所有
|
||||
export const getShipmentProductList = (data: any) => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/api/shmproducts/allShmProducts',
|
||||
data,
|
||||
})
|
||||
}
|
|
@ -3,3 +3,6 @@ export * as ReceiveApi from './receive'
|
|||
export * as ShipmentApi from './shipment'
|
||||
export * as PictureApi from './picture'
|
||||
export * as ReceiveProductApi from './receiveProduct'
|
||||
export * as DeviceApi from './device'
|
||||
export * as StockCardApi from './stockCard'
|
||||
export * as GoodsApi from './goods'
|
|
@ -39,6 +39,16 @@ export const sendMsg = (data: { phone: string }) => {
|
|||
});
|
||||
};
|
||||
|
||||
|
||||
// 修改密码
|
||||
export const updateUserPwd = (data: any) => {
|
||||
return http({
|
||||
method: "POST",
|
||||
url: "/api/user/updateUserPwd",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
// 创建角色
|
||||
export const addRole = (data: { roleCode: string; roleName: string }) => {
|
||||
return http({
|
||||
|
@ -61,13 +71,14 @@ export const updateRole = (data: {
|
|||
});
|
||||
};
|
||||
|
||||
// 发送验证码
|
||||
// 查询角色列表
|
||||
export const getRoleList = () => {
|
||||
return http({
|
||||
method: "GET",
|
||||
url: "/api/role/getRoleList",
|
||||
});
|
||||
};
|
||||
|
||||
// 验证角色是否重复 1=code 2=名称 3=全部
|
||||
export const verifyRole = (data: {
|
||||
roleCode: string;
|
||||
|
@ -95,7 +106,95 @@ export const addMenusRole = (data: {
|
|||
});
|
||||
};
|
||||
|
||||
// 查询角色菜单权限
|
||||
export const getMenusRole = (data: any) => {
|
||||
return http({
|
||||
method: "GET",
|
||||
url: "/api/role/getMenusRole",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
// 查询分页菜单
|
||||
export const getMenuByPage = (data: any) => {
|
||||
return http({
|
||||
method: "GET",
|
||||
url: "/api/menus/getPage",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
// 创建菜单
|
||||
export const addMenus = (data: any) => {
|
||||
return http({
|
||||
method: "POST",
|
||||
url: "/api/menus/addMenus",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
// 查询菜单List
|
||||
export const getMenuList = (data: any) => {
|
||||
return http({
|
||||
method: "GET",
|
||||
url: "/api/menus/getList",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
// 修改菜单
|
||||
export const updateMenus = (data: any) => {
|
||||
return http({
|
||||
method: "POST",
|
||||
url: "/api/menus/updateMenus",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
// 查询省市区
|
||||
export const getProvinceList = (data: any) => {
|
||||
return http({
|
||||
method: "GET",
|
||||
url: "/api/user/getChinaList",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
// 添加用户
|
||||
export const addUser = (data: any) => {
|
||||
return http({
|
||||
method: "POST",
|
||||
url: "/api/user/addUser",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
// 查询用户分页
|
||||
export const getUserListByPage = (data: any) => {
|
||||
return http({
|
||||
method: "GET",
|
||||
url: "/api/user/getUserPage",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
// 获取用户信息
|
||||
export const getUserInfo = (data: any) => {
|
||||
return http({
|
||||
method: "GET",
|
||||
url: "/api/user/getUserInfo",
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
// 添加用户角色关系
|
||||
export const addUserRole = (data: any) => {
|
||||
return http({
|
||||
method: "POST",
|
||||
url: "/api/user/addUserRole",
|
||||
data
|
||||
});
|
||||
};
|
||||
// 查询用户列表
|
||||
export const getUserList = (data: {
|
||||
name?: string;
|
||||
|
|
|
@ -81,6 +81,25 @@ export const updateOne = (data: any) => {
|
|||
});
|
||||
};
|
||||
|
||||
// 收货汇总
|
||||
export const OrderInReceipt = () => {
|
||||
return http({
|
||||
method: "GET",
|
||||
url: "/api/orderIn/OrderInReceipt"
|
||||
});
|
||||
};
|
||||
|
||||
// 收货单排行榜
|
||||
export const OrderInRanking = () => {
|
||||
return http({
|
||||
method: "GET",
|
||||
url: "/api/orderIn/OrderInRanking"
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ type ShipmentSummary = {
|
|||
toBeSettled: number, // 待结算
|
||||
}
|
||||
// 根据id查询出货单
|
||||
export const getDetailById = (data: {id: number}) => {
|
||||
export const getDetailById = (data: {id: string}) => {
|
||||
return http<Shipment>({
|
||||
method: "GET",
|
||||
url: "/api/orderOut/getOne",
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
import { http } from '@/utils/http'
|
||||
|
||||
// 库存卡查询分页
|
||||
export const getStockCardList = (data: any) => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/api/card/getStockCardList',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 添加库存卡
|
||||
export const addStockCard = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/card/addStockCard',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 修改库存卡
|
||||
export const updateStockCard = (data: any) => {
|
||||
return http({
|
||||
method: 'POST',
|
||||
url: '/api/card/updateStockCard',
|
||||
data,
|
||||
})
|
||||
}
|
Before Width: | Height: | Size: 544 KiB |
|
@ -28,3 +28,6 @@ body {
|
|||
.l-h-28 {
|
||||
line-height: 28px;
|
||||
}
|
||||
.mt-30 {
|
||||
margin-top: 30rpx;
|
||||
}
|
|
@ -42,6 +42,33 @@ interface Order {
|
|||
isChecked?: boolean;
|
||||
[attrName: string]: any;
|
||||
}
|
||||
// 分页结构
|
||||
interface OrderPage<T> {
|
||||
total: number;
|
||||
list: T;
|
||||
pageNum: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
interface ReceiveSummary {
|
||||
totalReceipt: number; // 本月总出货
|
||||
totalExpenditure: number; // 本月总收入
|
||||
toBePriced: number; // 待收货
|
||||
toBeTare: number; // 待过皮重
|
||||
audit: number; // 付款审核
|
||||
toBePaid: number; // 待支付
|
||||
}
|
||||
|
||||
type PageParams = {
|
||||
pageNumber: number;
|
||||
pageSize: number;
|
||||
pricingUserId?: string; // 定价人
|
||||
userId?: string; // 供应商id
|
||||
productId?: string; // 产品id
|
||||
repairFlag?: boolean; // 是否为补单,true 是未补单,false是补单
|
||||
scaleStatus?: number; // 磅单状态:0:待定价1:待过皮2:待审核3:已审核待支付4:已支付
|
||||
};
|
||||
|
||||
interface Shipment {
|
||||
id?: string;
|
||||
userId?: number; //供应商id
|
||||
|
@ -84,29 +111,28 @@ interface Shipment {
|
|||
isDeleted?: string; //删除标识true删除,false未删除
|
||||
[attrName: string]: any;
|
||||
}
|
||||
// 分页结构
|
||||
interface OrderPage<T> {
|
||||
total: number;
|
||||
list: T;
|
||||
pageNum: number;
|
||||
pageSize: number;
|
||||
|
||||
// 出货单排行
|
||||
interface ShipmentRank {
|
||||
userId: number;
|
||||
userName: string;
|
||||
productId: number;
|
||||
productName: string; // 产品名称
|
||||
totalAmount: number; // 总收货量
|
||||
totalPayment: number; //总应付总额
|
||||
totalOrderNumber: number; // 收货单数量
|
||||
averagePrice: number; // 均价
|
||||
}
|
||||
|
||||
interface ReceiveSummary {
|
||||
totalReceipt: number; // 本月总出货
|
||||
totalExpenditure: number; // 本月总收入
|
||||
toBePriced: number; // 待收货
|
||||
toBeTare: number; // 待过皮重
|
||||
audit: number; // 付款审核
|
||||
toBePaid: number; // 待支付
|
||||
// 出库分类
|
||||
interface ShipmentTypeCount {
|
||||
totalAmount: number; // 收货汇总:审核过收货总量
|
||||
totalPayShipment: number; // 已支付的出货总量
|
||||
totalUnPayShipment: number; // 未支付的出货总量
|
||||
totalCollection: number; // 总收款
|
||||
totalPayCollection: number; // 已经收到的收款
|
||||
totalUnPayCollection: number; // 未收到的收款
|
||||
totalReceipt: number; // 收货单数量已审核的
|
||||
averagePrice: number; // 平均单价
|
||||
rankings: ShipmentRank[]; // 出货产品汇总
|
||||
}
|
||||
|
||||
type PageParams = {
|
||||
pageNumber: number;
|
||||
pageSize: number;
|
||||
pricingUserId?: string; // 定价人
|
||||
userId?: string; // 供应商id
|
||||
productId?: string; // 产品id
|
||||
repairFlag?: boolean; // 是否为补单,true 是未补单,false是补单
|
||||
scaleStatus?: number; // 磅单状态:0:待定价1:待过皮2:待审核3:已审核待支付4:已支付
|
||||
};
|
||||
|
|
|
@ -53,3 +53,9 @@ export enum UserType {
|
|||
Face = 0,
|
||||
Card = 1,
|
||||
}
|
||||
|
||||
// 提货方式:0:送货1:自提
|
||||
export enum DeliveryMethod {
|
||||
Deliver = 0,
|
||||
SelfPickup = 1
|
||||
}
|