freight-web/src/pagesApp/receiveCl.vue

279 lines
6.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="c-card">
<view class="search">
<u-search
placeholder="请输入供应商名称"
v-model="keyword"
:showAction="false"
:bgColor="'#fff'"
:borderColor="'rgba(0, 0, 0, 0.1)'"
:placeholderColor="'#C1C1C1'"
@search="handleSearch()"
@clear="handleSearch()"
></u-search>
</view>
<page-view
@loadList="
(v) => {
getList(v);
}
"
:noMoreData="pageList.noMoreData"
:list="pageList.list"
:height="100"
:isLoading="pageList.isLoading"
>
<view class="box" v-for="(item, index) in pageList.list" :key="index">
<view class="base">
<view>
<view class="no"> 收货单号{{ item.receiptNumber }} </view>
<view class="supplier"> {{ item.deviceName }} </view>
</view>
<view>
<text class="btn" @click="handleScenePhoto(item.id as any)"
>现场照片</text
>
</view>
</view>
<view class="name">{{ item.userName }}</view>
<view class="type">{{ item.productName }}</view>
<view class="flex-box">
<text>定价人{{ isNullV(item.pricingUserName) }}</text>
<!-- 过毛时间 -->
<text>过磅时间{{ item.grossTime }}</text>
</view>
<view class="more">
<view
v-for="(cItem, index) in gridList1"
:key="index"
:style="cItem.isCustomStyle ? 'font-size: 22rpx;color:#999' : ''"
>
<block v-if="cItem.name === '扣杂'">
<text v-if="cItem.name">
{{ item.buttonType === 0 ? "扣杂" : "扣点" }} </text
><text>
{{
item.buttonType === 0
? isNullV(item[cItem.enName as string])
: isNullV(item["points"])
}}
{{ item.buttonType === 0 ? cItem.unit : "%" }}
</text>
</block>
<block v-if="cItem.name !== '扣杂'">
<text v-if="cItem.name">{{ cItem.name }}</text
><text
>{{ cItem.isBefore ? cItem.unit : "" }}
{{ isNullV(item[cItem.enName as string]) }}
{{ cItem.isBefore ? "" : cItem.unit }}
</text>
</block>
</view>
</view>
</view>
</page-view>
</view>
</template>
<script setup lang="ts">
import { ReceiveApi } from "@/services";
import PageView from "@/components/PageView/index.vue";
import {isNullV} from '@/utils/index'
const keyword = ref("");
const gridList1 = reactive([
{
name: "毛重",
enName: "grossWeight",
num: 0,
unit: "KG",
isBefore: false,
},
{
name: "皮重",
enName: "tare",
unit: "KG",
isBefore: false,
},
{
name: "扣杂",
enName: "buckleMiscellaneous",
unit: "KG",
isBefore: false,
},
{},
{
name: "净重",
enName: "netWeight",
unit: "KG",
isBefore: false,
},
{
name: "单价",
enName: "price",
unit: "/千克",
isBefore: false,
},
{
name: "结算总价",
enName: "balanceTotalPrice",
unit: "",
isBefore: false,
},
{
name: "实际总价",
enName: "totalPrice",
unit: "",
isBefore: false,
},
{
name: "作废人",
enName: "updateName",
unit: "",
isBefore: false,
isCustomStyle: true,
},
{
name: "过皮",
enName: "tareTime",
unit: "",
isBefore: false,
isCustomStyle: true,
},
]);
const handleScenePhoto = (id: string) => {
uni.navigateTo({
url: "/pagesScenePhoto/index?orderType=1&imagesType=1&id=" + id, // 要跳转到的页面路径
});
};
const pageList: PageResult<Order> = reactive({
isLoading: false,
noMoreData: false,
total: 0,
list: [],
pageNum: 1,
pageSize: 100,
});
const resetPageList = () => {
pageList.noMoreData = false;
pageList.total = 0;
pageList.list = [];
pageList.pageNum = 1;
pageList.pageSize = 100;
};
const handleSearch = () => {
resetPageList();
getList();
};
const getList = (v?: boolean) => {
if (v) {
if (Math.ceil(pageList.total / pageList.pageSize) > pageList.pageNum) {
pageList.pageNum++;
} else {
pageList.noMoreData = true;
return;
}
}
pageList.isLoading = true;
ReceiveApi.getOrderPage({
pageSize: pageList.pageSize,
pageNumber: pageList.pageNum,
userName: keyword.value,
isDeleted: true,
}).then((res) => {
if (res.code === 200) {
pageList.isLoading = false;
(pageList as any).list = pageList.list.concat(
res.data.list
);
pageList.total = (res.data as any).total;
}
});
};
onMounted(() => {
getList();
});
</script>
<style lang="scss" scoped>
.c-card {
margin: 30rpx 25rpx;
.box {
margin-top: 30rpx;
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;
.no {
font-weight: 400;
font-size: 26rpx;
color: #000000;
}
.supplier {
font-weight: 400;
font-size: 26rpx;
color: #000000;
}
.btn {
border-radius: 24rpx;
border: 1px solid #00dcee;
padding: 10rpx 30rpx;
font-weight: 500;
font-size: 26rpx;
color: #00dcee;
line-height: 41rpx;
}
}
.name {
font-weight: 400;
font-size: 28rpx;
color: #000000;
margin: 15rpx 0rpx;
text {
background-color: #ffaf75;
font-weight: 500;
font-size: 24rpx;
color: #ffffff;
padding: 5rpx 20rpx;
margin-left: 20rpx;
}
}
.type {
font-weight: 400;
font-size: 28rpx;
color: #ec0f3e;
margin-bottom: 20rpx;
}
.flex-box {
display: flex;
align-items: center;
justify-content: space-between;
font-weight: 400;
font-size: 26rpx;
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;
}
}
}
</style>