|
|
@@ -1,72 +1,47 @@
|
|
|
<template>
|
|
|
<!-- <Water></Water> -->
|
|
|
<view class="nav" :style="{ paddingTop: statusBarHeight + 'px' }">
|
|
|
- <text
|
|
|
- class="nav-back"
|
|
|
- :style="{ top: statusBarHeight + 'px' }"
|
|
|
- @click="onBack"
|
|
|
- ></text>
|
|
|
+ <text class="nav-back" :style="{ top: statusBarHeight + 'px' }" @click="onBack"></text>
|
|
|
<view class="nav-title">{{ title }}</view>
|
|
|
</view>
|
|
|
<view class="page">
|
|
|
- <view class="tip">点击“上游客户”名称展开详细表格</view>
|
|
|
- <view
|
|
|
- class="list-container"
|
|
|
- :style="{ paddingTop: statusBarHeight + 60 + 'px' }"
|
|
|
- >
|
|
|
- <view
|
|
|
- class="card product-card"
|
|
|
- v-for="(prd, i) in products"
|
|
|
- :key="'prd-' + i"
|
|
|
- >
|
|
|
- <view
|
|
|
- class="customer-row"
|
|
|
- v-for="(c, j) in prd.customers"
|
|
|
- :key="'cust-' + j"
|
|
|
- >
|
|
|
- <text class="customer-label">上游客户:</text>
|
|
|
- <text class="customer-name" @click.stop="toggleCustomer(i, j)">{{
|
|
|
- c.name
|
|
|
- }}</text>
|
|
|
- <text class="expand-tag" @click.stop="toggleCustomer(i, j)">{{
|
|
|
- c.expanded ? "收起" : "展开"
|
|
|
- }}</text>
|
|
|
- </view>
|
|
|
- <view
|
|
|
- class="table-card"
|
|
|
- v-for="(c, j) in prd.customers"
|
|
|
- :key="'tbl-' + j"
|
|
|
- v-show="c.expanded"
|
|
|
- >
|
|
|
- <scroll-view scroll-x="true" class="table-scroll">
|
|
|
- <view class="blk-table">
|
|
|
- <view class="blk-header">
|
|
|
- <view class="th col-region">货源片区</view>
|
|
|
- <view class="th col-qty">数量</view>
|
|
|
- <view class="th col-batch">批号</view>
|
|
|
- <view class="th col-sample">监管码样本(抽样)</view>
|
|
|
- <view class="th col-terminal">终端到达数量</view>
|
|
|
- </view>
|
|
|
- <view class="blk-body">
|
|
|
- <view
|
|
|
- class="blk-row"
|
|
|
- v-for="(row, idx) in c.details"
|
|
|
- :key="'row-' + idx"
|
|
|
- >
|
|
|
- <view class="td col-region">{{ row.region }}</view>
|
|
|
- <view class="td col-qty">{{ row.quantity }}</view>
|
|
|
- <view class="td col-batch">{{ row.batchNo }}</view>
|
|
|
- <view class="td col-sample">{{ row.sample }}</view>
|
|
|
- <view class="td col-terminal">{{ row.arrivalQty }}</view>
|
|
|
+ <view class="list-container" :style="{ paddingTop: statusBarHeight + 60 + 'px' }">
|
|
|
+ <view class="tip">点击客户名称展开详细表格</view>
|
|
|
+ <view v-for="(prd, i) in products" :key="'prd-' + i">
|
|
|
+ <view class="section-title">感冒灵</view>
|
|
|
+ <view class="card product-card">
|
|
|
+ <view class="customer-row" v-for="(c, j) in prd.customers" :key="'cust-' + j">
|
|
|
+ <text class="customer-label">上游客户:</text>
|
|
|
+ <text class="customer-name" @click.stop="toggleCustomer(i, j)">{{
|
|
|
+ c.name
|
|
|
+ }}</text>
|
|
|
+ <text class="expand-tag" @click.stop="toggleCustomer(i, j)">{{
|
|
|
+ c.expanded ? "收起" : "展开"
|
|
|
+ }}</text>
|
|
|
+ </view>
|
|
|
+ <view class="table-card" v-for="(c, j) in prd.customers" :key="'tbl-' + j" v-show="c.expanded">
|
|
|
+ <scroll-view scroll-x="true" class="table-scroll">
|
|
|
+ <view class="blk-table">
|
|
|
+ <view class="blk-header">
|
|
|
+ <view class="th col-region">货源片区</view>
|
|
|
+ <view class="th col-qty">数量</view>
|
|
|
+ <view class="th col-batch">批号</view>
|
|
|
+ <view class="th col-sample">监管码样本(抽样)</view>
|
|
|
+ <view class="th col-terminal">终端到达数量</view>
|
|
|
+ </view>
|
|
|
+ <view class="blk-body">
|
|
|
+ <view class="blk-row" v-for="(row, idx) in c.details" :key="'row-' + idx">
|
|
|
+ <view class="td col-region">{{ row.region }}</view>
|
|
|
+ <view class="td col-qty">{{ row.quantity }}</view>
|
|
|
+ <view class="td col-batch">{{ row.batchNo }}</view>
|
|
|
+ <view class="td col-sample">{{ row.sample }}</view>
|
|
|
+ <view class="td col-terminal">{{ row.arrivalQty }}</view>
|
|
|
+ </view>
|
|
|
+ <view v-if="!c.details || c.details.length === 0" class="empty-row">暂无数据</view>
|
|
|
</view>
|
|
|
- <view
|
|
|
- v-if="!c.details || c.details.length === 0"
|
|
|
- class="empty-row"
|
|
|
- >暂无数据</view
|
|
|
- >
|
|
|
</view>
|
|
|
- </view>
|
|
|
- </scroll-view>
|
|
|
+ </scroll-view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
@@ -98,7 +73,7 @@ export default {
|
|
|
onBack() {
|
|
|
try {
|
|
|
uni.navigateBack();
|
|
|
- } catch (e) {}
|
|
|
+ } catch (e) { }
|
|
|
},
|
|
|
toggleCustomer(i, j) {
|
|
|
const cur = this.products[i].customers[j];
|
|
|
@@ -147,11 +122,13 @@ export default {
|
|
|
justify-content: center;
|
|
|
z-index: 10;
|
|
|
}
|
|
|
+
|
|
|
.nav-title {
|
|
|
font-size: 36rpx;
|
|
|
color: #fff;
|
|
|
font-weight: 700;
|
|
|
}
|
|
|
+
|
|
|
.nav-back {
|
|
|
position: absolute;
|
|
|
left: 40rpx;
|
|
|
@@ -165,19 +142,42 @@ export default {
|
|
|
margin-left: 40rpx;
|
|
|
margin-top: -6rpx;
|
|
|
}
|
|
|
+
|
|
|
.page {
|
|
|
min-height: 100vh;
|
|
|
background: #f3f6f9;
|
|
|
}
|
|
|
+
|
|
|
+.section-title {
|
|
|
+ position: relative;
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #2c69ff;
|
|
|
+ margin-left: 24rpx;
|
|
|
+}
|
|
|
+
|
|
|
+.section-title::after {
|
|
|
+ content: "";
|
|
|
+ position: absolute;
|
|
|
+ left: -20rpx;
|
|
|
+ bottom: 11rpx;
|
|
|
+ width: 8rpx;
|
|
|
+ height: 50%;
|
|
|
+ background: #2c69ff;
|
|
|
+ border-radius: 10px;
|
|
|
+}
|
|
|
+
|
|
|
.tip {
|
|
|
font-size: 24rpx;
|
|
|
color: #999;
|
|
|
padding: 24rpx;
|
|
|
}
|
|
|
+
|
|
|
.list-container {
|
|
|
padding: 0 24rpx 24rpx;
|
|
|
box-sizing: border-box;
|
|
|
}
|
|
|
+
|
|
|
.card {
|
|
|
margin: 24rpx;
|
|
|
background: #fff;
|
|
|
@@ -185,51 +185,62 @@ export default {
|
|
|
font-size: 30rpx;
|
|
|
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);
|
|
|
}
|
|
|
+
|
|
|
.product-card {
|
|
|
padding: 24rpx;
|
|
|
}
|
|
|
+
|
|
|
.product-title {
|
|
|
font-size: 32rpx;
|
|
|
font-weight: bold;
|
|
|
color: #333;
|
|
|
margin-bottom: 16rpx;
|
|
|
}
|
|
|
+
|
|
|
.customer-row {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
padding: 12rpx 0;
|
|
|
border-bottom: 1rpx solid #f0f0f0;
|
|
|
}
|
|
|
+
|
|
|
.customer-row:last-child {
|
|
|
border-bottom: none;
|
|
|
}
|
|
|
+
|
|
|
.customer-label {
|
|
|
font-size: 28rpx;
|
|
|
color: #666;
|
|
|
margin-right: 10rpx;
|
|
|
}
|
|
|
+
|
|
|
.customer-name {
|
|
|
font-size: 28rpx;
|
|
|
color: #2c69ff;
|
|
|
}
|
|
|
+
|
|
|
.expand-tag {
|
|
|
margin-left: auto;
|
|
|
font-size: 26rpx;
|
|
|
color: #2c69ff;
|
|
|
}
|
|
|
+
|
|
|
.table-card {
|
|
|
padding: 0;
|
|
|
overflow: hidden;
|
|
|
margin-top: 16rpx;
|
|
|
}
|
|
|
+
|
|
|
.table-scroll {
|
|
|
width: 100%;
|
|
|
}
|
|
|
+
|
|
|
.blk-table {
|
|
|
- min-width: 1200rpx;
|
|
|
+ min-width: 1060rpx;
|
|
|
border-top: 1rpx solid #eee;
|
|
|
border-left: 1rpx solid #eee;
|
|
|
}
|
|
|
+
|
|
|
.blk-header {
|
|
|
display: flex;
|
|
|
background: #f5f7fa;
|
|
|
@@ -237,14 +248,17 @@ export default {
|
|
|
font-weight: bold;
|
|
|
color: #333;
|
|
|
}
|
|
|
+
|
|
|
.blk-body {
|
|
|
font-size: 26rpx;
|
|
|
color: #666;
|
|
|
}
|
|
|
+
|
|
|
.blk-row {
|
|
|
display: flex;
|
|
|
border-bottom: 1rpx solid #eee;
|
|
|
}
|
|
|
+
|
|
|
.th,
|
|
|
.td {
|
|
|
padding: 16rpx 10rpx;
|
|
|
@@ -257,26 +271,33 @@ export default {
|
|
|
box-sizing: border-box;
|
|
|
flex-shrink: 0;
|
|
|
}
|
|
|
+
|
|
|
.th {
|
|
|
border-bottom: 1rpx solid #eee;
|
|
|
}
|
|
|
+
|
|
|
.empty-row {
|
|
|
padding: 30rpx;
|
|
|
text-align: center;
|
|
|
color: #999;
|
|
|
}
|
|
|
+
|
|
|
.col-region {
|
|
|
width: 200rpx;
|
|
|
}
|
|
|
+
|
|
|
.col-qty {
|
|
|
width: 140rpx;
|
|
|
}
|
|
|
+
|
|
|
.col-batch {
|
|
|
width: 200rpx;
|
|
|
}
|
|
|
+
|
|
|
.col-sample {
|
|
|
width: 300rpx;
|
|
|
}
|
|
|
+
|
|
|
.col-terminal {
|
|
|
width: 220rpx;
|
|
|
}
|