Compare commits

...

2 Commits

Author SHA1 Message Date
admin 798f4389d3 update: 对接常用应用接口 2024-03-14 11:14:12 +08:00
admin 871f42fda7 update: 更新出货明细 2024-03-13 16:24:08 +08:00
20 changed files with 475 additions and 187 deletions

View File

@ -8,10 +8,10 @@
<view v-for="(child, index) in item.child" :key="index" @click="(child as any).fn(child)"> <view v-for="(child, index) in item.child" :key="index" @click="(child as any).fn(child)">
<view> <view>
<up-image <up-image
:src="`/static/img/statistic/${child.icon}`" :src="`/PagesStatistics/static/${child.icon}`"
:width="child.width"
:height="child.height"
mode="aspectFill" mode="aspectFill"
width="60rpx"
height="60rpx"
></up-image> ></up-image>
</view> </view>
<view>{{ child.title }}</view> <view>{{ child.title }}</view>
@ -30,9 +30,7 @@ const list = reactive([
title: "收货", title: "收货",
child: [ child: [
{ {
icon: "1-1.png", icon: "01.png",
width: "42.31rpx",
height: "50rpx",
title: "收货汇总", title: "收货汇总",
fn: (item: any) => { fn: (item: any) => {
uni.navigateTo({ uni.navigateTo({
@ -41,9 +39,7 @@ const list = reactive([
} }
}, },
{ {
icon: "1-2.png", icon: "02.png",
width: "44.23rpx",
height: "44.23rpx",
title: "供应商排行", title: "供应商排行",
fn: (item: any) => { fn: (item: any) => {
uni.navigateTo({ uni.navigateTo({
@ -58,9 +54,7 @@ const list = reactive([
title: "出货", title: "出货",
child: [ child: [
{ {
icon: "2-1.png", icon: "03.png",
width: "42.31rpx",
height: "50rpx",
title: "出货汇总", title: "出货汇总",
fn: (item: any) => { fn: (item: any) => {
uni.navigateTo({ uni.navigateTo({
@ -69,9 +63,7 @@ const list = reactive([
} }
}, },
{ {
icon: "2-2.png", icon: "04.png",
width: "46.15rpx",
height: "46.15rpx",
title: "客户排行", title: "客户排行",
fn: (item: any) => { fn: (item: any) => {
uni.navigateTo({ uni.navigateTo({
@ -85,9 +77,7 @@ const list = reactive([
title: "账本", title: "账本",
child: [ child: [
{ {
icon: "3-1.png", icon: "05.png",
width: "46.15rpx",
height: "46.79rpx",
title: "经营概况", title: "经营概况",
fn: (item: any) => { fn: (item: any) => {
uni.navigateTo({ uni.navigateTo({
@ -96,9 +86,7 @@ const list = reactive([
} }
}, },
{ {
icon: "3-2.png", icon: "06.png",
width: "48.08rpx",
height: "44.23rpx",
title: "供应商对账", title: "供应商对账",
fn: (item: any) => { fn: (item: any) => {
uni.navigateTo({ uni.navigateTo({
@ -107,9 +95,7 @@ const list = reactive([
} }
}, },
{ {
icon: "3-3.png", icon: "07.png",
width: "43.59rpx",
height: "43.59rpx",
title: "客户对账", title: "客户对账",
fn: (item: any) => { fn: (item: any) => {
uni.navigateTo({ uni.navigateTo({
@ -124,15 +110,15 @@ const list = reactive([
<style lang="scss" scoped> <style lang="scss" scoped>
.title { .title {
line-height: 80rpx; line-height: 80rpx;
padding: 0rpx 19.87rpx; padding: 0rpx 20rpx;
} }
.box-content { .box-content {
display: flex; display: flex;
margin: 21rpx 0rpx; margin: 22rpx 0rpx;
padding: 0rpx 19.87rpx; padding: 0rpx 20rpx;
> view { > view {
width: 141rpx; width: 142rpx;
height: 141rpx; height: 142rpx;
background: #f9f9f9; background: #f9f9f9;
border-radius: 26rpx; border-radius: 26rpx;
// text-align: center; // text-align: center;
@ -140,7 +126,7 @@ const list = reactive([
// display: grid; // display: grid;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 400; font-weight: 400;
font-size: 24rpx; font-size: 26rpx;
color: #000000; color: #000000;
display: flex; display: flex;
align-items: center; align-items: center;
@ -153,7 +139,7 @@ const list = reactive([
} }
} }
> view + view { > view + view {
margin-left: 32.05rpx; margin-left: 32rpx;
} }
::v-deep .u-transition { ::v-deep .u-transition {
align-items: center; align-items: center;

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -12,7 +12,7 @@ const props = defineProps<{
.title { .title {
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 500; font-weight: 500;
font-size: 27rpx; font-size: 28rpx;
color: #000000; color: #000000;
} }
</style> </style>

View File

@ -11,96 +11,119 @@
></u-search> ></u-search>
</view> </view>
<view class="box" v-for="item in 10" :key="item"> <view class="box" v-for="(item, index) in pageList.list" :key="index">
<view class="base"> <view class="base">
<view> <view>
<view class="no"> 收货单号SHD20230901132333 </view> <view class="no"> 收货单号{{ item.receiptNumber }} </view>
<view class="supplier"> 上海奉贤两网融合大磅 </view> <view class="supplier"> {{ item.deviceName }} </view>
</view> </view>
<view> <view>
<text class="btn" @click="handleScenePhoto(1)">现场照片</text> <text class="btn" @click="handleScenePhoto(item.imagesId as number)"
>现场照片</text
>
</view> </view>
</view> </view>
<view class="name">吴小勇</view> <view class="name">{{ item.userName }}</view>
<view class="type">轻二</view> <view class="type">{{ item.productName }}</view>
<view class="flex-box"> <view class="flex-box">
<text>定价人谭兵</text> <text>定价人{{ item.pricingUserName }}</text>
<text>过磅时间2023-09-01 13:23:33</text> <text>过磅时间{{ item.tareTime }}</text>
</view> </view>
<view class="more"> <view class="more">
<view v-for="(item, index) in gridList1" :key="index" :style="item.isCustomStyle ? 'font-size: 22rpx;color:#999' : ''"> <view
<text v-if="item.name">{{ item.name }}</text v-for="(cItem, index) in gridList1"
><text :key="index"
>{{ item.isBefore ? item.unit : "" }} :style="cItem.isCustomStyle ? 'font-size: 22rpx;color:#999' : ''"
{{ item.num }} >
{{ item.isBefore ? "" : item.unit }} <block v-if="cItem.name === '扣杂'">
<text v-if="cItem.name">
{{ item.buttonType === 0 ? "扣杂" : "扣点" }} </text
><text>
{{
item.buttonType === 0
? item[cItem.enName as string]
: item["points"]
}}
{{ item.buttonType === 0 ? cItem.unit : "%" }}
</text> </text>
</block>
<block v-if="cItem.name !== '扣杂'">
<text v-if="cItem.name">{{ cItem.name }}</text
><text
>{{ cItem.isBefore ? cItem.unit : "" }}
{{ item[cItem.enName as string] }}
{{ cItem.isBefore ? "" : cItem.unit }}
</text>
</block>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ReceiveApi } from "@/services";
const keyword = ref(""); const keyword = ref("");
const gridList1 = reactive([ const gridList1 = reactive([
{ {
name: "毛重", name: "毛重",
num: "4080.00", enName: "grossWeight",
num: 0,
unit: "KG", unit: "KG",
isBefore: false, isBefore: false,
}, },
{ {
name: "皮重", name: "皮重",
num: "3450.00", enName: "tare",
unit: "KG", unit: "KG",
isBefore: false, isBefore: false,
}, },
{ {
name: "扣杂", name: "扣杂",
num: "640.00", enName: "buckleMiscellaneous",
unit: "KG", unit: "KG",
isBefore: false, isBefore: false,
}, },
{}, {},
{ {
name: "净重", name: "净重",
num: "640.00", enName: "netWeight",
unit: "KG", unit: "KG",
isBefore: false, isBefore: false,
}, },
{ {
name: "单价", name: "单价",
num: "2.48", enName: "price",
unit: "元/千克", unit: "元/千克",
isBefore: false, isBefore: false,
}, },
{ {
name: "结算总价", name: "结算总价",
num: "2.48", enName: "balanceTotalPrice",
unit: "元", unit: "元",
isBefore: false, isBefore: false,
}, },
{ {
name: "实际总价", name: "实际总价",
num: "2.48", enName: "totalPrice",
unit: "元", unit: "元",
isBefore: false, isBefore: false,
}, },
{ {
name: "作废人", name: "作废人",
num: "谭兵", enName: "updateUserName",
unit: "", unit: "",
isBefore: false, isBefore: false,
isCustomStyle: true isCustomStyle: true,
}, },
{ {
name: "过皮", name: "过皮",
num: "2023-09-01 13:23:33", enName: "tareTime",
unit: "", unit: "",
isBefore: false, isBefore: false,
isCustomStyle: true isCustomStyle: true,
}, },
]); ]);
const handleScenePhoto = (imagesId: number) => { const handleScenePhoto = (imagesId: number) => {
@ -108,6 +131,34 @@ const handleScenePhoto = (imagesId: number) => {
url: "/pagesScenePhoto/index?orderType=1&id=" + imagesId, // url: "/pagesScenePhoto/index?orderType=1&id=" + imagesId, //
}); });
}; };
interface PageResult<T> {
total: number;
list: T[];
pageNum: number;
pageSize: number;
}
const pageList: PageResult<Order> = reactive({
total: 0,
list: [],
pageNum: 1,
pageSize: 10,
});
const getOrderList = () => {
ReceiveApi.getOrderPage({
pageNumber: 1,
pageSize: 10,
isDeleted: true,
}).then((res) => {
if (res.code === 200) {
(pageList as any).list = res.data.list;
}
});
};
onMounted(() => {
getOrderList();
});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.c-card { .c-card {
@ -125,12 +176,12 @@ const handleScenePhoto = (imagesId: number) => {
justify-content: space-between; justify-content: space-between;
.no { .no {
font-weight: 400; font-weight: 400;
font-size: 21rpx; font-size: 26rpx;
color: #000000; color: #000000;
} }
.supplier { .supplier {
font-weight: 400; font-weight: 400;
font-size: 24rpx; font-size: 26rpx;
color: #000000; color: #000000;
} }
.btn { .btn {
@ -138,20 +189,20 @@ const handleScenePhoto = (imagesId: number) => {
border: 1px solid #00dcee; border: 1px solid #00dcee;
padding: 10rpx 30rpx; padding: 10rpx 30rpx;
font-weight: 500; font-weight: 500;
font-size: 24rpx; font-size: 26rpx;
color: #00dcee; color: #00dcee;
line-height: 41rpx; line-height: 41rpx;
} }
} }
.name { .name {
font-weight: 400; font-weight: 400;
font-size: 27rpx; font-size: 28rpx;
color: #000000; color: #000000;
margin: 15rpx 0rpx; margin: 15rpx 0rpx;
text { text {
background-color: #ffaf75; background-color: #ffaf75;
font-weight: 500; font-weight: 500;
font-size: 16rpx; font-size: 24rpx;
color: #ffffff; color: #ffffff;
padding: 5rpx 20rpx; padding: 5rpx 20rpx;
margin-left: 20rpx; margin-left: 20rpx;
@ -159,7 +210,7 @@ const handleScenePhoto = (imagesId: number) => {
} }
.type { .type {
font-weight: 400; font-weight: 400;
font-size: 27rpx; font-size: 28rpx;
color: #ec0f3e; color: #ec0f3e;
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
@ -168,7 +219,7 @@ const handleScenePhoto = (imagesId: number) => {
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
font-weight: 400; font-weight: 400;
font-size: 24rpx; font-size: 26rpx;
color: #999999; color: #999999;
border-bottom: 1rpx solid rgba(233, 233, 233, 0.76); border-bottom: 1rpx solid rgba(233, 233, 233, 0.76);
padding-bottom: 20rpx; padding-bottom: 20rpx;
@ -179,7 +230,7 @@ const handleScenePhoto = (imagesId: number) => {
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
flex: 1; flex: 1;
font-weight: 400; font-weight: 400;
font-size: 24rpx; font-size: 26rpx;
color: #000000; color: #000000;
padding: 25rpx 0rpx 0rpx 0rpx; padding: 25rpx 0rpx 0rpx 0rpx;
> view { > view {

View File

@ -11,35 +11,35 @@
></u-search> ></u-search>
</view> </view>
<view class="box" v-for="item in 10" :key="item"> <view class="box" v-for="(item, index) in pageList.list" :key="index">
<view class="base"> <view class="base">
<view> <view>
<view class="no"> 出货单号SHD20230901132333 </view> <view class="no"> 出货单号{{ item.orderNumber }} </view>
<view class="supplier"> 上海奉贤两网融合大磅 </view> <view class="supplier"> {{ item.deviceName }} </view>
</view> </view>
<view> <view>
<text class="btn" @click="handleScenePhoto">现场照片</text> <text class="btn" @click="handleScenePhoto((item as any).id)">现场照片</text>
</view> </view>
</view> </view>
<view class="name">吴小勇 <text>未结算</text></view> <view class="name">{{ item.userName }} <text>{{ getScaleStatus((item as any).scaleStatus) }}</text></view>
<view class="type">轻二</view> <view class="type">{{ item.productName }}</view>
<view class="more"> <view class="more">
<view <view
v-for="(item, index) in gridList1" v-for="(cItem, index) in gridList1"
:key="index" :key="index"
:style="{ :style="{
width: `${item.name === '创建时间' ? 'max-content' : ''}`, width: `${cItem.name === '创建时间' ? 'max-content' : ''}`,
'font-size': `${item.isCustomStyle ? '22rpx' : ''}`, 'font-size': `${cItem.isCustomStyle ? '22rpx' : ''}`,
color: `${item.isCustomStyle ? '#999' : ''}`, color: `${cItem.isCustomStyle ? '#999' : ''}`,
}" }"
> >
<text v-if="item.name">{{ item.name }}</text <text v-if="cItem.name">{{ cItem.name }}</text
><text ><text
>{{ item.isBefore ? item.unit : "" }} >{{ cItem.isBefore ? cItem.unit : "" }}
{{ item.num }} {{ cItem.num }}
{{ item.isBefore ? "" : item.unit }} {{ cItem.isBefore ? "" : cItem.unit }}
</text> </text>
</view> </view>
</view> </view>
@ -47,116 +47,148 @@
</view> </view>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ShipmentApi } from '@/services';
import { ScaleStatus } from '@/utils/enum';
const keyword = ref(""); const keyword = ref("");
const gridList1 = reactive([ const gridList1 = reactive([
{ {
name: "卡号", name: "卡号",
num: "123123", enName: "cardNumber",
}, },
{}, {},
{ {
name: "创建时间", name: "创建时间",
num: "2023-09-01 13:23:33", enName: "createTime",
}, },
{}, {},
{ {
name: "车牌号", name: "车牌号",
num: "123", enName: "carNumber",
isBefore: false, isBefore: false,
}, },
{ {
name: "送货方式", name: "送货方式",
num: "自提", enName: "deliveryMethod",
isBefore: false, isBefore: false,
}, },
{ {
name: "毛重", name: "毛重",
num: "4080.00", enName: "grossWeight",
num: "0",
unit: "KG", unit: "KG",
isBefore: false, isBefore: false,
}, },
{ {
name: "皮重", name: "皮重",
num: "3450.00", enName: "tare",
unit: "KG", unit: "KG",
isBefore: false, isBefore: false,
}, },
{ {
name: "净重", name: "净重",
num: "640.00", enName: "netWeight",
unit: "KG", unit: "KG",
isBefore: false, isBefore: false,
}, },
{ {
name: "数量", name: "数量",
num: "1", enName: "number",
isBefore: false, isBefore: false,
}, },
{ {
name: "过毛", name: "过毛",
num: "2023-09-01 13:23:33", enName: "grossTime",
unit: "", unit: "",
isBefore: false, isBefore: false,
isCustomStyle: true, isCustomStyle: true,
}, },
{ {
name: "过皮", name: "过皮",
num: "2023-09-01 13:23:33", enName: "tareTime",
unit: "", unit: "",
isBefore: false, isBefore: false,
isCustomStyle: true, isCustomStyle: true,
}, },
{ {
name: "结算重量", name: "结算重量",
num: "640.00", enName: "settlementWeight",
unit: "KG", unit: "KG",
isBefore: false, isBefore: false,
}, },
{ {
name: "单价", name: "单价",
num: "2.48", enName: "unitPrice",
unit: "元/千克", unit: "元/千克",
isBefore: false, isBefore: false,
}, },
{ {
name: "结算总价", name: "结算总价",
num: "2.48", enName: "estimatePrice",
unit: "元", unit: "元",
isBefore: false, isBefore: false,
}, },
{ {
name: "实结金额", name: "实结金额",
num: "2.48", enName: "totalPrice",
unit: "元", unit: "元",
isBefore: false, isBefore: false,
}, },
{
name: "应收金额",
num: "2.48",
unit: "元",
isBefore: false,
},
{},
{ {
name: "作废人", name: "作废人",
num: "谭兵", enName: "updateUserName",
unit: "", unit: "",
isBefore: false, isBefore: false,
isCustomStyle: true, isCustomStyle: true,
}, },
{ {
name: "过皮", name: "过皮",
num: "2023-09-01 13:23:33", enName: "tareTime",
unit: "", unit: "",
isBefore: false, isBefore: false,
isCustomStyle: true, isCustomStyle: true,
}, },
]); ]);
const handleScenePhoto = () => { const handleScenePhoto = (id: string) => {
uni.navigateTo({ uni.navigateTo({
url: "/pagesScenePhoto/index", // url: "/pagesScenePhoto/index?orderType=1&id=" + id, //
}); });
}; };
interface PageResult<T> {
total: number;
list: T[];
pageNum: number;
pageSize: number;
}
const pageList: PageResult<Shipment> = reactive({
total: 0,
list: [],
pageNum: 1,
pageSize: 10,
});
const getOrderList = () => {
ShipmentApi.getOrderPage({ pageNumber: 1, pageSize: 10, isDeleted: true,}).then((res) => {
if (res.code === 200) {
(pageList as any).list = res.data.list;
}
});
};
const getScaleStatus = (type: number) => {
if (type === ScaleStatus.ToBeShipment) {
return "待出货";
} else if (type === ScaleStatus.ToBeGrossWeight) {
return "待过毛";
} else if (type === ScaleStatus.ToBeShipmentReview) {
return "待审核";
} else if (type === ScaleStatus.ToBeShipmentPay) {
return "待支付";
} else if (type === ScaleStatus.ShipmentPaid) {
return "已支付";
}
};
onMounted(() => {
getOrderList();
});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.c-card { .c-card {
@ -170,7 +202,7 @@ const handleScenePhoto = () => {
border-radius: 24rpx; border-radius: 24rpx;
border: 1px solid #00dcee; border: 1px solid #00dcee;
font-weight: 500; font-weight: 500;
font-size: 24rpx; font-size: 26rpx;
color: #ffffff; color: #ffffff;
margin-left: 50rpx; margin-left: 50rpx;
padding: 6rpx 30rpx; padding: 6rpx 30rpx;
@ -188,12 +220,12 @@ const handleScenePhoto = () => {
justify-content: space-between; justify-content: space-between;
.no { .no {
font-weight: 400; font-weight: 400;
font-size: 21rpx; font-size: 26rpx;
color: #000000; color: #000000;
} }
.supplier { .supplier {
font-weight: 400; font-weight: 400;
font-size: 24rpx; font-size: 26rpx;
color: #000000; color: #000000;
} }
.btn { .btn {
@ -201,20 +233,20 @@ const handleScenePhoto = () => {
border: 1px solid #00dcee; border: 1px solid #00dcee;
padding: 10rpx 30rpx; padding: 10rpx 30rpx;
font-weight: 500; font-weight: 500;
font-size: 24rpx; font-size: 26rpx;
color: #00dcee; color: #00dcee;
line-height: 41rpx; line-height: 41rpx;
} }
} }
.name { .name {
font-weight: 400; font-weight: 400;
font-size: 27rpx; font-size: 28rpx;
color: #000000; color: #000000;
margin: 15rpx 0rpx; margin: 15rpx 0rpx;
text { text {
background-color: #ffaf75; background-color: #ffaf75;
font-weight: 500; font-weight: 500;
font-size: 16rpx; font-size: 24rpx;
color: #ffffff; color: #ffffff;
padding: 5rpx 20rpx; padding: 5rpx 20rpx;
margin-left: 20rpx; margin-left: 20rpx;
@ -222,7 +254,7 @@ const handleScenePhoto = () => {
} }
.type { .type {
font-weight: 400; font-weight: 400;
font-size: 27rpx; font-size: 28rpx;
color: #ec0f3e; color: #ec0f3e;
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
@ -232,7 +264,7 @@ const handleScenePhoto = () => {
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
flex: 1; flex: 1;
font-weight: 400; font-weight: 400;
font-size: 24rpx; font-size: 26rpx;
color: #000000; color: #000000;
> view { > view {
line-height: 50rpx; line-height: 50rpx;

View File

@ -9,145 +9,287 @@
:borderColor="'rgba(0, 0, 0, 0.1)'" :borderColor="'rgba(0, 0, 0, 0.1)'"
:placeholderColor="'#C1C1C1'" :placeholderColor="'#C1C1C1'"
></u-search> ></u-search>
<view class="btn"> 创建 </view> <view class="btn" @click="handleAdd()"> 创建 </view>
</view> </view>
<view class="filter"> <view class="filter">
<!-- -->
<view><text>本月</text><u-icon name="arrow-down"></u-icon></view> <view><text>本月</text><u-icon name="arrow-down"></u-icon></view>
<view><text>单据状态</text><u-icon name="arrow-down"></u-icon></view> <view @click="state.isShowStatus = true"
<view><text>排序</text><u-icon name="arrow-down"></u-icon></view> ><text>单据状态</text><u-icon name="arrow-down"></u-icon
></view>
<view @click="state.isShowSort = true"
><text>排序</text><u-icon name="arrow-down"></u-icon
></view>
<view class="btn">筛选</view> <view class="btn">筛选</view>
</view> </view>
<view class="time">2024-01-01</view> <view class="time">2024-01-01</view>
<view class="box" v-for="item in 10" :key="item"> <view class="box" v-for="(item, index) in pageList.list" :key="index">
<view class="base"> <view class="base">
<view> <view>
<view class="no"> 出货单号SHD20230901132333 </view> <view class="no"> 出货单号{{ item.orderNumber }} </view>
<view class="supplier"> 上海奉贤两网融合大磅 </view> <view class="supplier"> {{ item.deviceName || "-" }} </view>
</view> </view>
<view> <view>
<text class="btn" @click="handleScenePhoto">现场照片</text> <text class="btn" @click="handleScenePhoto((item as any).id)"
>现场照片</text
>
</view> </view>
</view> </view>
<view class="name">吴小勇 <text>已结算</text></view> <view class="name"
<view class="type">轻二</view> >{{ item.userName }}
<text>{{ getScaleStatus((item as any).scaleStatus) }}</text>
<text v-if="item.repairTime">补单</text>
</view>
<view class="type">{{ item.productName }}</view>
<view class="flex-box">
<text>定价人{{ item.userName }}</text>
<text>创建时间{{ item.createTime }}</text>
</view>
<view class="more"> <view class="more">
<view <view
v-for="(item, index) in gridList1" v-for="(cItem, index) in gridList1"
:key="index" :key="index"
:style="{'width': `${item.name === '创建时间' ? 'max-content' : ''}`, 'font-size': `${item.isCustomStyle ? '22rpx': ''}`, 'color': `${item.isCustomStyle ? '#999': ''}`}" :style="cItem.isCustomStyle ? 'font-size: 22rpx;color:#999' : ''"
> >
<text v-if="item.name">{{ item.name }}</text <block v-if="cItem.name === '扣杂'">
><text <text v-if="cItem.name">
>{{ item.isBefore ? item.unit : "" }} {{ item.buttonType === 0 ? "扣杂" : "扣点" }} </text
{{ item.num }} ><text>
{{ item.isBefore ? "" : item.unit }} {{
item.buttonType === 0
? item[cItem.enName as string]
: item["points"]
}}
{{ item.buttonType === 0 ? cItem.unit : "%" }}
</text> </text>
</block>
<block v-if="cItem.name !== '扣杂'">
<text v-if="cItem.name">{{ cItem.name }}</text
><text
>{{ cItem.isBefore ? cItem.unit : "" }}
{{ item[cItem.enName as string] }}
{{ cItem.isBefore ? "" : cItem.unit }}
</text>
</block>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<u-action-sheet
:closeOnClickOverlay="true"
:closeOnClickAction="true"
:actions="state.statusList"
:title="'单据状态'"
:show="state.isShowStatus"
@select="handleSelectStatus"
></u-action-sheet>
<u-action-sheet
:closeOnClickOverlay="true"
:closeOnClickAction="true"
:actions="state.sortList"
:title="'排序'"
:show="state.isShowSort"
@select="handleSelectSort"
></u-action-sheet>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ShipmentApi } from "@/services";
import { ScaleStatus } from "@/utils/enum";
const state = reactive({
currentScaleStatus: undefined,
currentSortName: undefined,
isShowStatus: false,
statusList: [
{
name: "待出货",
key: 0,
},
{
name: "待过毛",
key: 1,
},
{
name: "待审核",
key: 2,
},
{
name: "已审未付",
key: 3,
},
{
name: "已审已付",
key: 4,
},
],
isShowSort: false,
sortList: [
{
name: "按创建时间降序",
key: "create_time",
},
{
name: "按更新时间降序",
key: "update_time",
},
],
});
const handleSelectStatus = (v: any) => {
state.isShowStatus = false;
state.currentScaleStatus = v.key;
getOrderList();
};
const handleSelectSort = (v: any) => {
state.isShowSort = false;
state.currentSortName = v.key;
getOrderList();
};
const keyword = ref(""); const keyword = ref("");
const gridList1 = reactive([ const gridList1 = reactive([
{ {
name: "卡号", name: "卡号",
num: "123123", enName: "cardNumber",
}, },
{}, {},
{ {
name: "创建时间", name: "创建时间",
num: "2023-09-01 13:23:33", enName: "createTime",
}, },
{}, {},
{ {
name: "车牌号", name: "车牌号",
num: "123", enName: "carNumber",
isBefore: false, isBefore: false,
}, },
{ {
name: "送货方式", name: "送货方式",
num: "自提", enName: "deliveryMethod",
isBefore: false, isBefore: false,
}, },
{ {
name: "毛重", name: "毛重",
num: "4080.00", enName: "grossWeight",
num: 0,
unit: "KG", unit: "KG",
isBefore: false, isBefore: false,
}, },
{ {
name: "皮重", name: "皮重",
num: "3450.00", enName: "tare",
num: 0,
unit: "KG", unit: "KG",
isBefore: false, isBefore: false,
}, },
{ {
name: "净重", name: "净重",
num: "640.00", enName: "netWeight",
unit: "KG", unit: "KG",
isBefore: false, isBefore: false,
}, },
{ {
name: "数量", name: "数量",
num: "1", enName: "number",
unit: "件",
isBefore: false, isBefore: false,
}, },
{ {
name: "过毛", name: "过毛",
num: "2023-09-01 13:23:33", enName: "grossTime",
unit: "", unit: "",
isBefore: false, isBefore: false,
isCustomStyle: true, isCustomStyle: true,
}, },
{ {
name: "过皮", name: "过皮",
num: "2023-09-01 13:23:33", enName: "tareTime",
unit: "", unit: "",
isBefore: false, isBefore: false,
isCustomStyle: true, isCustomStyle: true,
}, },
{ {
name: "结算重量", name: "结算重量",
num: "640.00", enName: "settlementWeight",
unit: "KG", unit: "KG",
isBefore: false, isBefore: false,
}, },
{ {
name: "单价", name: "结算单价",
num: "2.48", enName: "unitPrice",
unit: "元/千克", unit: "元/千克",
isBefore: false, isBefore: false,
}, },
{ {
name: "结算总价", name: "结算总价",
num: "2.48", enName: "estimatePrice",
unit: "元", unit: "元",
isBefore: false, isBefore: false,
}, },
{ {
name: "实际金额", name: "实际金额",
num: "2.48", enName: "totalPrice",
unit: "元", unit: "元",
isBefore: false, isBefore: false,
}, },
{
name: "实收金额",
num: "2.48",
unit: "元",
isBefore: false,
},
]); ]);
const handleScenePhoto = () => { const handleScenePhoto = (id: string) => {
uni.navigateTo({ uni.navigateTo({
url: "/pagesScenePhoto/index", // url: "/pagesScenePhoto/index?orderType=1&id=" + id, //
}); });
}; };
const getScaleStatus = (type: number) => {
if (type === ScaleStatus.ToBeShipment) {
return "待出货";
} else if (type === ScaleStatus.ToBeGrossWeight) {
return "待过毛";
} else if (type === ScaleStatus.ToBeShipmentReview) {
return "待审核";
} else if (type === ScaleStatus.ToBeShipmentPay) {
return "待支付";
} else if (type === ScaleStatus.ShipmentPaid) {
return "已支付";
}
};
const handleAdd = () => {
uni.navigateTo({
url: "/pagesApp/shipmentSpl", //
});
};
interface PageResult<T> {
total: number;
list: T[];
pageNum: number;
pageSize: number;
}
const pageList: PageResult<Order> = reactive({
total: 0,
list: [],
pageNum: 1,
pageSize: 10,
});
const getOrderList = () => {
let params: any = { pageNumber: 1, pageSize: 10 };
if (state.currentScaleStatus !== undefined) {
params.scaleStatus = state.currentScaleStatus;
}
if (state.currentSortName !== undefined) {
params.sortName = state.currentSortName;
}
ShipmentApi.getOrderPage(params).then((res) => {
if (res.code === 200) {
(pageList as any).list = res.data.list;
}
});
};
onMounted(() => {
getOrderList();
});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.c-card { .c-card {
@ -161,7 +303,7 @@ const handleScenePhoto = () => {
border-radius: 24rpx; border-radius: 24rpx;
border: 1px solid #00dcee; border: 1px solid #00dcee;
font-weight: 500; font-weight: 500;
font-size: 24rpx; font-size: 26rpx;
color: #ffffff; color: #ffffff;
margin-left: 50rpx; margin-left: 50rpx;
padding: 6rpx 30rpx; padding: 6rpx 30rpx;
@ -174,7 +316,7 @@ const handleScenePhoto = () => {
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
font-weight: 400; font-weight: 400;
font-size: 27rpx; font-size: 26rpx;
color: #000000; color: #000000;
> view { > view {
display: inline-block; display: inline-block;
@ -185,13 +327,13 @@ const handleScenePhoto = () => {
} }
} }
.btn { .btn {
font-size: 27rpx; font-size: 26rpx;
color: #00dcee; color: #00dcee;
} }
} }
.time { .time {
font-weight: 400; font-weight: 400;
font-size: 22rpx; font-size: 26rpx;
color: #000000; color: #000000;
margin: 30rpx 0rpx; margin: 30rpx 0rpx;
} }
@ -209,12 +351,12 @@ const handleScenePhoto = () => {
justify-content: space-between; justify-content: space-between;
.no { .no {
font-weight: 400; font-weight: 400;
font-size: 21rpx; font-size: 26rpx;
color: #000000; color: #000000;
} }
.supplier { .supplier {
font-weight: 400; font-weight: 400;
font-size: 24rpx; font-size: 26rpx;
color: #000000; color: #000000;
} }
.btn { .btn {
@ -229,23 +371,35 @@ const handleScenePhoto = () => {
} }
.name { .name {
font-weight: 400; font-weight: 400;
font-size: 27rpx; font-size: 26rpx;
color: #000000; color: #000000;
margin: 15rpx 0rpx; margin: 15rpx 0rpx;
text { text {
background-color: #ffaf75; background-color: #ffaf75;
font-weight: 500; font-weight: 500;
font-size: 16rpx; font-size: 24rpx;
color: #ffffff; color: #ffffff;
padding: 5rpx 20rpx; padding: 5rpx 20rpx;
margin-left: 20rpx; margin-left: 20rpx;
border-radius: 10rpx;
} }
} }
.type { .type {
font-weight: 400; font-weight: 400;
font-size: 27rpx; font-size: 26rpx;
color: #ec0f3e; color: #ec0f3e;
margin-bottom: 20rpx; margin-bottom: 20rpx;
font-weight: bold;
}
.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 { .more {
@ -253,8 +407,9 @@ const handleScenePhoto = () => {
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
flex: 1; flex: 1;
font-weight: 400; font-weight: 400;
font-size: 24rpx; font-size: 26rpx;
color: #000000; color: #000000;
padding: 25rpx 0rpx 0rpx 0rpx;
> view { > view {
line-height: 50rpx; line-height: 50rpx;
} }

View File

@ -3,31 +3,58 @@
<view class="search"> <view class="search">
<u-search <u-search
placeholder="请输入供应商名称" placeholder="请输入供应商名称"
v-model="keyword" v-model="state.name"
:showAction="false" :showAction="false"
:bgColor="'#fff'" :bgColor="'#fff'"
:borderColor="'rgba(0, 0, 0, 0.1)'" :borderColor="'rgba(0, 0, 0, 0.1)'"
:placeholderColor="'#C1C1C1'" :placeholderColor="'#C1C1C1'"
@search="handleSearch()"
></u-search> ></u-search>
<view class="btn"> 新增 </view> <view class="btn"> 新增 </view>
</view> </view>
<view class="box"> <view class="box" v-for="(item, index) in pageList.list" :key="index">
<view> <view>
<view> <view>
<view>供应商名称</view> <view>{{ item.name }}</view>
<view>卡号235466566</view> <view>卡号{{ item.cardCode }}</view>
</view> </view>
<view class="btn"> 删除 </view> <view class="btn"> 删除 </view>
</view> </view>
<view>
<view> 送货员111 </view>
<view class="btn_text"> 详情 </view>
</view>
</view> </view>
</view> </view>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
const keyword = ref(""); import { ProfileApi } from "@/services";
import { UsersType } from "@/utils/enum";
const state = reactive({
name: "",
});
const pageList: PageResult<User> = reactive({
total: 0,
list: [],
pageNum: 1,
pageSize: 10,
});
const handleSearch = () => {
getUserList()
};
const getUserList = () => {
ProfileApi.getInventoryUserPage({
pageSize: 10,
pageNum: 1,
userType: UsersType.Purchaser,
name: state.name,
}).then((res) => {
if (res.code === 200) {
if (res.code === 200) {
(pageList as any).list = (res.data as any).list;
}
}
});
};
onMounted(() => {
getUserList();
});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.c-card { .c-card {
@ -41,7 +68,7 @@ const keyword = ref("");
border-radius: 24rpx; border-radius: 24rpx;
border: 1px solid #00dcee; border: 1px solid #00dcee;
font-weight: 500; font-weight: 500;
font-size: 24rpx; font-size: 26rpx;
color: #ffffff; color: #ffffff;
margin-left: 50rpx; margin-left: 50rpx;
padding: 6rpx 30rpx; padding: 6rpx 30rpx;
@ -53,7 +80,7 @@ const keyword = ref("");
border-radius: 13rpx; border-radius: 13rpx;
padding: 10rpx 25rpx; padding: 10rpx 25rpx;
font-weight: 400; font-weight: 400;
font-size: 22rpx; font-size: 26rpx;
color: #000000; color: #000000;
line-height: 41rpx; line-height: 41rpx;
margin-top: 30rpx; margin-top: 30rpx;
@ -66,7 +93,7 @@ const keyword = ref("");
background: #ff9d55; background: #ff9d55;
border-radius: 24rpx; border-radius: 24rpx;
font-weight: 500; font-weight: 500;
font-size: 24rpx; font-size: 26rpx;
color: #ffffff; color: #ffffff;
padding: 6rpx 30rpx; padding: 6rpx 30rpx;
} }

View File

@ -54,12 +54,6 @@
import { ReceiveApi } from "@/services/index"; import { ReceiveApi } from "@/services/index";
import SmallModal from "@/components/Modal/smallModal.vue"; import SmallModal from "@/components/Modal/smallModal.vue";
interface PageResult<T> {
total: number;
list: T[];
pageNum: number;
pageSize: number;
}
const pageList: PageResult<Order> = reactive({ const pageList: PageResult<Order> = reactive({
total: 0, total: 0,
list: [], list: [],

View File

@ -41,7 +41,7 @@
<view class="top-flex-box"> <view class="top-flex-box">
<view> <view>
<view> <view>
<text class="number">出货单号{{ item.receiptNumber }}</text> <text class="number">出货单号{{ item.orderNumber }}</text>
</view> </view>
<view> <view>
<text class="name">{{ item.userName }}</text> <text class="name">{{ item.userName }}</text>

View File

@ -171,7 +171,7 @@ export const addUser = (data: any) => {
// 查询用户分页 // 查询用户分页
export const getUserListByPage = (data: any) => { export const getUserListByPage = (data: any) => {
return http({ return http<User>({
method: "GET", method: "GET",
url: "/api/user/getUserPage", url: "/api/user/getUserPage",
data data
@ -206,3 +206,12 @@ export const getUserList = (data: {
data, data,
}); });
}; };
// 供应商 客户分页
export const getInventoryUserPage = (data: any) => {
return http<User>({
method: "GET",
url: "/api/user/getInventoryUserPage",
data
});
};

View File

@ -35,6 +35,7 @@ type PageParams = {
pageSize: number; pageSize: number;
startTime?: string; // 开始时间 startTime?: string; // 开始时间
endTime?: string; // 结束时间 endTime?: string; // 结束时间
isDeleted?: boolean;
}; };
// 根据条件获取出库单,并且进行分页 // 根据条件获取出库单,并且进行分页

13
src/types/order.d.ts vendored
View File

@ -1,3 +1,9 @@
interface PageResult<T> {
total: number;
list: T[];
pageNum: number;
pageSize: number;
}
interface Order { interface Order {
id?: number; id?: number;
deviceId?: number; //设备id deviceId?: number; //设备id
@ -67,6 +73,7 @@ type PageParams = {
productId?: string; // 产品id productId?: string; // 产品id
repairFlag?: boolean; // 是否为补单,true 是未补单false是补单 repairFlag?: boolean; // 是否为补单,true 是未补单false是补单
scaleStatus?: number; // 磅单状态:0待定价1待过皮2待审核3已审核待支付4已支付 scaleStatus?: number; // 磅单状态:0待定价1待过皮2待审核3已审核待支付4已支付
isDeleted?:boolean
}; };
interface Shipment { interface Shipment {
@ -99,9 +106,9 @@ interface Shipment {
points?: string; //扣点 points?: string; //扣点
buckleMiscellaneous?: string; //扣杂 buckleMiscellaneous?: string; //扣杂
unitPrice?: string; //结算单价 unitPrice?: string; //结算单价
estimatePrice?: string; //预估金额 estimatePrice?: string; //预估金额 结算总价
totalPrice?: string; //结算金额 totalPrice?: string; //结算金额 实际金额
realIncome?: string; //实际收入 realIncome?: string; //实际收入 实际收入 实收金额
errorPrice?: string; //误差金额 errorPrice?: string; //误差金额
repairTime?: string; //补单时间 repairTime?: string; //补单时间
createTime?: string; //undefined createTime?: string; //undefined

20
src/types/user.d.ts vendored
View File

@ -1,2 +1,22 @@
interface User { interface User {
name: string;
gender: number; // 性别1=男2=女
phone: string;
factoryName: string; // 货场名称
factoryAddress: string; //货场详细地址
provinceId: number;
areaId: number;
citiyId: number;
userType: number;
userName: string;
password: string;
state: number; // 状态 1=有效 0=无效
updateTime: string;
createTime: string;
createUserId: number;
createUserName: string;
updateUserId: number;
updateUserName: string;
isDeleted: boolean;
cardCode?: string; // 卡号
} }

View File

@ -61,6 +61,12 @@ export enum UserType {
Card = 1, Card = 1,
} }
export enum UsersType {
Staff = 1,
Purchaser = 2,
Customer = 3,
}
// 提货方式:0:送货1:自提 // 提货方式:0:送货1:自提
export enum DeliveryMethod { export enum DeliveryMethod {
Deliver = 0, Deliver = 0,