|
@@ -71,7 +71,7 @@
|
|
|
<button class="add-btn" @click="verify(-1)">一键核销</button>
|
|
<button class="add-btn" @click="verify(-1)">一键核销</button>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
- <scroll-view class="list-container" scroll-y="true" @scrolltolower="loadMore" v-if="currentTab>1">
|
|
|
|
|
|
|
+ <scroll-view class="list-container" scroll-y="true" @scrolltolower="loadMore" v-if="currentTab>1 && currentTab<4">
|
|
|
<view v-if="recordList.length === 0 && loadStatus !== 'loading'" class="empty-list">
|
|
<view v-if="recordList.length === 0 && loadStatus !== 'loading'" class="empty-list">
|
|
|
<text>暂无相关记录</text>
|
|
<text>暂无相关记录</text>
|
|
|
</view>
|
|
</view>
|
|
@@ -88,19 +88,19 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="card-body">
|
|
<view class="card-body">
|
|
|
- <view class="detail-row">
|
|
|
|
|
- <text class="detail-label">业务员名称</text>
|
|
|
|
|
- <text class="detail-value">{{ record.ywyName }}</text>
|
|
|
|
|
- </view>
|
|
|
|
|
|
|
+<!-- <view class="detail-row">-->
|
|
|
|
|
+<!-- <text class="detail-label">业务员名称</text>-->
|
|
|
|
|
+<!-- <text class="detail-value">{{ record.ywyName }}</text>-->
|
|
|
|
|
+<!-- </view>-->
|
|
|
<view class="detail-row" >
|
|
<view class="detail-row" >
|
|
|
- <text class="detail-label">申请时间</text>
|
|
|
|
|
|
|
+ <text class="detail-label">提交时间</text>
|
|
|
<text class="detail-value">{{ record. dealerApplyTime }}</text>
|
|
<text class="detail-value">{{ record. dealerApplyTime }}</text>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
- <view class="detail-row" v-if="record.status === 1">
|
|
|
|
|
- <text class="detail-label">审核时间</text>
|
|
|
|
|
- <text class="detail-value">{{ record.finishTime }}</text>
|
|
|
|
|
- </view>
|
|
|
|
|
|
|
+<!-- <view class="detail-row" v-if="record.status === 1">-->
|
|
|
|
|
+<!-- <text class="detail-label">审核时间</text>-->
|
|
|
|
|
+<!-- <text class="detail-value">{{ record.finishTime }}</text>-->
|
|
|
|
|
+<!-- </view>-->
|
|
|
<view class="detail-row">
|
|
<view class="detail-row">
|
|
|
<text class="detail-label">商品总数</text>
|
|
<text class="detail-label">商品总数</text>
|
|
|
<text class="detail-value">{{ record.writeOffNum }}</text>
|
|
<text class="detail-value">{{ record.writeOffNum }}</text>
|
|
@@ -118,14 +118,41 @@
|
|
|
|
|
|
|
|
<uni-load-more :status="loadStatus"></uni-load-more>
|
|
<uni-load-more :status="loadStatus"></uni-load-more>
|
|
|
</scroll-view>
|
|
</scroll-view>
|
|
|
|
|
+ <view v-if="currentTab == 4" style="
|
|
|
|
|
+ padding-top: 17px;
|
|
|
|
|
+ padding-right: 17px;">
|
|
|
|
|
+
|
|
|
|
|
+ <view class="query-btn" style="width: 25%;float: right" @click="toHistory()">
|
|
|
|
|
+ <view class="query-btn-icon">
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="query-btn-text">详情记录</view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <scroll-view v-if="currentTab == 4">
|
|
|
|
|
+ <view class="data-display-container">
|
|
|
|
|
+ <view class="header-row">
|
|
|
|
|
+ <view class="header-item">项目</view>
|
|
|
|
|
+ <view class="header-item">已核销</view>
|
|
|
|
|
+ <view class="header-item">未核销</view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ <view class="data-body">
|
|
|
|
|
+ <view class="data-row" v-for="(item, index) in hexiaoList" :key="index">
|
|
|
|
|
+ <view class="data-cell item-column">{{ item.itemName }}</view>
|
|
|
|
|
+ <view class="data-cell">{{ item.writeOffCount }}</view>
|
|
|
|
|
+ <view class="data-cell">{{ item.waitWriteOffCount }}</view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </scroll-view>
|
|
|
<u-calendar min-date="2025-07-01" max-date="2030-07-01" @close="timeShow = false" :show="timeShow" :mode="mode" @confirm="confirm"></u-calendar>
|
|
<u-calendar min-date="2025-07-01" max-date="2030-07-01" @close="timeShow = false" :show="timeShow" :mode="mode" @confirm="confirm"></u-calendar>
|
|
|
|
|
|
|
|
</view>
|
|
</view>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
-import {queryJxsAddRecord,doCommitToJxs,doCommitToChang, queryHexiaoRecord} from "@/api/hexiao";
|
|
|
|
|
-import {queryPendingWriteOffRecord} from "../../../api/hexiao";
|
|
|
|
|
|
|
+import {queryJxsAddRecord,doCommitToJxs,doCommitToChang, queryHexiaoRecord,queryPendingWriteOffRecord,queryWriteOffDetailByItem} from "@/api/hexiao";
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
data() {
|
|
data() {
|
|
@@ -138,11 +165,13 @@ export default {
|
|
|
searchQuery: '',
|
|
searchQuery: '',
|
|
|
tabs: [
|
|
tabs: [
|
|
|
{ name: '待审核', key: 'pending',id: 1 },
|
|
{ name: '待审核', key: 'pending',id: 1 },
|
|
|
- { name: '核销中', key: 'verifying', id: 2},
|
|
|
|
|
- { name: '已核销', key: 'verified' , id :3},
|
|
|
|
|
|
|
+ // { name: '核销中', key: 'verifying', id: 2},
|
|
|
|
|
+ { name: '已提交', key: 'verified' , id :3},
|
|
|
|
|
+ { name: '我的账户', key: 'zhanghu' , id :4},
|
|
|
],
|
|
],
|
|
|
currentTab: 1,
|
|
currentTab: 1,
|
|
|
recordList: [],
|
|
recordList: [],
|
|
|
|
|
+ hexiaoList:[],
|
|
|
pendingList:[],
|
|
pendingList:[],
|
|
|
pagination: { page: 1, limit: 10 },
|
|
pagination: { page: 1, limit: 10 },
|
|
|
loadStatus: 'more', // 'more', 'loading', 'noMore'
|
|
loadStatus: 'more', // 'more', 'loading', 'noMore'
|
|
@@ -156,6 +185,9 @@ export default {
|
|
|
this.fetchRecords(true);
|
|
this.fetchRecords(true);
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ toHistory(){
|
|
|
|
|
+ uni.navigateTo({ url: `/pages/hexiao/jxs/hexiao_record_history`});
|
|
|
|
|
+ },
|
|
|
confirm(e) {
|
|
confirm(e) {
|
|
|
this.startTime = e[0];
|
|
this.startTime = e[0];
|
|
|
this.endTime = e[e.length-1];
|
|
this.endTime = e[e.length-1];
|
|
@@ -170,14 +202,14 @@ export default {
|
|
|
const statusMap = {
|
|
const statusMap = {
|
|
|
1: 'pending',
|
|
1: 'pending',
|
|
|
2: 'verifying',
|
|
2: 'verifying',
|
|
|
- 3: 'verified'
|
|
|
|
|
|
|
+ 3: 'verified',
|
|
|
};
|
|
};
|
|
|
return statusMap[status] || '';
|
|
return statusMap[status] || '';
|
|
|
},
|
|
},
|
|
|
getStatusText(status) {
|
|
getStatusText(status) {
|
|
|
const statusMap = {
|
|
const statusMap = {
|
|
|
0: '核销中',
|
|
0: '核销中',
|
|
|
- 1: '已核销'
|
|
|
|
|
|
|
+ 1: '已提交'
|
|
|
};
|
|
};
|
|
|
return statusMap[status] || '未知';
|
|
return statusMap[status] || '未知';
|
|
|
},
|
|
},
|
|
@@ -187,6 +219,10 @@ export default {
|
|
|
if(this.currentTab ==1){
|
|
if(this.currentTab ==1){
|
|
|
this.getReadyData(true);
|
|
this.getReadyData(true);
|
|
|
}else{
|
|
}else{
|
|
|
|
|
+ if(this.currentTab == 4){
|
|
|
|
|
+ this.itemByDetail();
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
this.fetchRecords(true); // 切换tab时重新加载数据
|
|
this.fetchRecords(true); // 切换tab时重新加载数据
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
@@ -276,6 +312,11 @@ export default {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
+ },
|
|
|
|
|
+ itemByDetail() {
|
|
|
|
|
+ queryWriteOffDetailByItem({}).then(res=>{
|
|
|
|
|
+ this.hexiaoList = res.data;
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -462,4 +503,94 @@ export default {
|
|
|
line-height: 90rpx;
|
|
line-height: 90rpx;
|
|
|
&::after { border: none; }
|
|
&::after { border: none; }
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+.data-display-container {
|
|
|
|
|
+ padding: 30rpx;
|
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
|
+ color: #333;
|
|
|
|
|
+ min-height: 100vh; /* 确保内容撑满整个视口高度 */
|
|
|
|
|
+ box-sizing: border-box; /* 边框和内边距包含在元素的总宽度和高度内 */
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.card {
|
|
|
|
|
+ background-color: #ffffff;
|
|
|
|
|
+ border-radius: 16rpx;
|
|
|
|
|
+ box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.08); /* 更柔和的阴影 */
|
|
|
|
|
+ overflow: hidden; /* 确保圆角显示 */
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ max-height: calc(100vh - 60rpx); /* 卡片最大高度,留出上下padding */
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.header-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: row;
|
|
|
|
|
+ background-color: #4A90E2; /* 品牌蓝色 */
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ padding: 24rpx 0; /* 上下内边距增加 */
|
|
|
|
|
+ border-bottom: 1rpx solid rgba(255, 255, 255, 0.2); /* 浅色边框 */
|
|
|
|
|
+ position: sticky; /* 头部固定 */
|
|
|
|
|
+ top: 0;
|
|
|
|
|
+ z-index: 10;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.header-item {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ padding: 0 10rpx; /* 左右内边距 */
|
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.data-body-scroll {
|
|
|
|
|
+ flex: 1; /* 占据剩余空间 */
|
|
|
|
|
+ overflow-y: auto; /* 允许滚动 */
|
|
|
|
|
+ -webkit-overflow-scrolling: touch; /* iOS 平滑滚动 */
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.data-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: row;
|
|
|
|
|
+ align-items: center; /* 垂直居中对齐 */
|
|
|
|
|
+ padding: 20rpx 0; /* 上下内边距 */
|
|
|
|
|
+ border-bottom: 1rpx solid #f0f0f0; /* 更细的分割线 */
|
|
|
|
|
+ transition: background-color 0.2s ease; /* 鼠标悬停或点击的平滑过渡 */
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.data-row:last-child {
|
|
|
|
|
+ border-bottom: none; /* 最后一行没有底部边框 */
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.data-row.even-row {
|
|
|
|
|
+ background-color: #f9f9f9; /* 隔行变色 */
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.data-row:hover {
|
|
|
|
|
+ background-color: #eef7ff; /* 悬停效果 */
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.data-cell {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ padding: 0 10rpx; /* 左右内边距 */
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ font-size: 26rpx; /* 数据字体略小 */
|
|
|
|
|
+ color: #555;
|
|
|
|
|
+ word-break: break-word; /* 允许长文本在任何地方换行 */
|
|
|
|
|
+ line-height: 1.4; /* 增加行高 */
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.item-column {
|
|
|
|
|
+ text-align: left;
|
|
|
|
|
+ padding-left: 20rpx; /* 品项左边距 */
|
|
|
|
|
+ color: #333;
|
|
|
|
|
+ font-weight: 500;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.no-data {
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ padding: 40rpx;
|
|
|
|
|
+ color: #999;
|
|
|
|
|
+ font-size: 30rpx;
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|