225 lines
6.4 KiB
Vue
225 lines
6.4 KiB
Vue
<template>
|
||
<view>
|
||
<z-paging ref="pagingRef" class="container" v-model="listArr" :default-page-size="queryParams.pageSize" @query="queryList">
|
||
<template #top>
|
||
|
||
<view style="margin-bottom: 20rpx;display: flex;align-items: center;justify-content: space-between;">
|
||
<view>
|
||
<text v-show="queryParams.status == 0">当前正常数据</text>
|
||
<text v-show="queryParams.status == 1">未扫描到,数据库里有数据</text>
|
||
<text v-show="queryParams.status == 2">已扫描到,数据库里无数据</text>
|
||
共:{{ total }}条。
|
||
</view>
|
||
<!-- <uni-icons @tap="exportArr" type="cloud-download-filled" size="30" style="color: #007aff;"></uni-icons> -->
|
||
</view>
|
||
<uv-tabs :list="tabList" @change="tabChange"></uv-tabs>
|
||
</template>
|
||
|
||
|
||
<view class="list-item" v-for="(item, index) in listArr" :key="index">
|
||
<view class="item-top">
|
||
<view class="item-name"><text v-show="queryParams.status !== 2">存放位置:</text>{{ item.rkPcode }}</view>
|
||
<view class="status1 status" v-if="queryParams.status == 1">未扫到</view>
|
||
<view class="status2 status" v-else-if="queryParams.status == 2">无数据</view>
|
||
<view class="status3 status" v-else>正常数据</view>
|
||
</view>
|
||
<view class="item-name" v-show="queryParams.status !== 2">数量:{{ item.realQty }}</view>
|
||
<!-- <view class="item-name">{{ item.des_pro }}</view>
|
||
<view class="item-desc" v-show="item.des_mat">{{ item.des_mat }}</view>
|
||
<view class="item-time" v-show="item.tme">{{ item.tme }}</view> -->
|
||
</view>
|
||
|
||
</z-paging>
|
||
</view>
|
||
</template>
|
||
|
||
<script setup>
|
||
import { ref } from "vue";
|
||
import { onLoad } from "@dcloudio/uni-app";
|
||
import { getScanResult } from "@/api/inventory";
|
||
|
||
|
||
|
||
const listArr = ref([])
|
||
const pagingRef = ref(null)
|
||
// 获取列表
|
||
const queryParams = ref({
|
||
pageNum: 1,
|
||
pageSize: 10,
|
||
status: 0,
|
||
taskId: ''
|
||
})
|
||
const total = ref(0)
|
||
// const dbExtra = ref(0) // 未扫描到,数据库里有
|
||
// const requestExtra = ref(0) // 扫描到,数据库里没有
|
||
const current = ref(0) // tab切换
|
||
const tabList = ref([
|
||
{name: '正常'},
|
||
{name: '未扫到'},
|
||
{name: '无数据'}
|
||
|
||
]) // tab切换
|
||
|
||
|
||
|
||
// 初始化请求
|
||
onLoad((e) => {
|
||
console.log(e)
|
||
queryParams.value.taskId = e.taskId
|
||
// queryParams.value.taskName = "手持08.10"
|
||
// 可以在这里进行数据请求、初始化操作等
|
||
});
|
||
|
||
// 切换tab
|
||
const tabChange = (e) => {
|
||
console.log(e)
|
||
queryParams.value.status = e.index
|
||
pagingRef.value.reload()
|
||
}
|
||
|
||
// 获取列表
|
||
const queryList = (pageNo, pageSize) => {
|
||
queryParams.value.pageNum = pageNo
|
||
console.log(pageNo, pageSize)
|
||
getScanResult(queryParams.value).then(res => {
|
||
console.log(res, "RES")
|
||
// historyData.value = res.data.rows
|
||
// if (queryParams.value.status == 2) {
|
||
// res.data.rows.forEach(e => {
|
||
// e.pcde = e.pcdeGroup
|
||
// });
|
||
// }
|
||
total.value = res.total
|
||
pagingRef.value.complete(res.rows)
|
||
}).catch(res => {
|
||
pagingRef.value.complete(false)
|
||
})
|
||
}
|
||
|
||
|
||
|
||
// 导出
|
||
const exportArr = function () {
|
||
exportByData(listArr.value).then(res => {
|
||
uni.showLoading({
|
||
title: '下载中'
|
||
})
|
||
console.log("数据", res)
|
||
uni.downloadFile({
|
||
url: res.data,
|
||
success: (downloadResult) => {
|
||
console.log("downloadResult", downloadResult)
|
||
if (downloadResult.statusCode === 200) {
|
||
// 保存文件
|
||
uni.saveFile({
|
||
tempFilePath: downloadResult.tempFilePath,
|
||
success: (saveResult) => {
|
||
uni.hideLoading();
|
||
console.log('文件保存成功,保存路径:', saveResult.savedFilePath);
|
||
const oldFilePath = saveResult.savedFilePath;
|
||
const fileExtension = oldFilePath.split('.').pop();
|
||
|
||
// 创建一个Date对象
|
||
const now = new Date();
|
||
|
||
// 获取当前的年、月、日
|
||
const year = now.getFullYear();
|
||
const month = now.getMonth() + 1; // 月份是从0开始的,需要加1
|
||
const date = now.getDate();
|
||
|
||
const hours = now.getHours().toString().padStart(2, '0');
|
||
const minutes = now.getMinutes().toString().padStart(2, '0');
|
||
const seconds = now.getSeconds().toString().padStart(2, '0');
|
||
|
||
const newFileName = year + "-" + month + "-" + date + " " + hours + ":" + minutes + ":" + seconds + '_盘点结果.xls'; // 新的文件名
|
||
const newFilePath = oldFilePath.replace(/[^\/]*$/, newFileName);
|
||
|
||
uni.showToast({
|
||
icon: 'none',
|
||
mask: true,
|
||
title: `文件已保存`, //保存路径
|
||
duration: 3000,
|
||
});
|
||
console.log("newFilePath", oldFilePath, newFilePath)
|
||
plus.io.resolveLocalFileSystemURL(oldFilePath, entry => {
|
||
entry.getParent(_oldFile => {
|
||
entry.moveTo(_oldFile, '/' + newFileName, newFilePath => {
|
||
console.log('newFilePath', newFilePath.fullPath)
|
||
})
|
||
})
|
||
})
|
||
},
|
||
fail: (saveError) => {
|
||
console.error('文件保存失败:', saveError);
|
||
}
|
||
});
|
||
} else {
|
||
console.error('文件下载失败,状态码:', downloadResult.statusCode);
|
||
}
|
||
},
|
||
fail: (downloadError) => {
|
||
console.error('文件下载失败:', downloadError);
|
||
}
|
||
});
|
||
})
|
||
}
|
||
</script>
|
||
|
||
<style scoped lang="scss">
|
||
.container {
|
||
padding: 32rpx;
|
||
|
||
.list-item {
|
||
padding: 20rpx 10rpx;
|
||
border-bottom: 1rpx solid #eee;
|
||
|
||
.item-top {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
|
||
.status {
|
||
padding: 8rpx 15rpx;
|
||
background: #E5E5E5;
|
||
border-radius: 10rpx;
|
||
font-size: 18rpx;
|
||
}
|
||
|
||
.status1 {
|
||
background: #748041;
|
||
color: white;
|
||
}
|
||
|
||
.status2 {
|
||
background: #88413c;
|
||
color: white;
|
||
}
|
||
}
|
||
|
||
.item-name {
|
||
font-size: 32rpx;
|
||
color: #3b4144;
|
||
font-weight: 400;
|
||
}
|
||
|
||
.item-desc {
|
||
color: #999;
|
||
font-size: 28rpx;
|
||
font-weight: 400;
|
||
}
|
||
|
||
.item-time {
|
||
color: #999;
|
||
font-size: 24rpx;
|
||
font-weight: 400;
|
||
text-align: right;
|
||
margin-top: 10rpx;
|
||
}
|
||
}
|
||
|
||
.page {
|
||
padding: 40rpx 80rpx;
|
||
}
|
||
}
|
||
</style>
|