新增预订商城项目

This commit is contained in:
myTest383
2024-12-02 08:51:10 +08:00
parent 2e55bab308
commit dafca7a329
539 changed files with 98459 additions and 0 deletions

243
pages/index/BindPhone.vue Normal file
View File

@@ -0,0 +1,243 @@
<template>
<view>
<!-- 自定义导航栏 -->
<view class="navBarBox">
<!-- 状态栏占位 -->
<view class="statusBar" :style="{ paddingTop: statusBarHeight + 'px' }"></view>
<!-- 真正的导航栏内容 -->
<view class="navBar">
<view>绑定账号</view>
</view>
</view>
<view style="margin-top: 30rpx;">
<view class="inputRow">
<!-- <image src="../../static/baseIcon/username.png" mode="aspectFill" class="drawableLeft"></image> -->
<input type="number" maxlength="11" @input="phoneText" placeholder="请输入手机号" class="input" />
<SendCodeItem :phoneNum="page.mobile" url="/v1/wxuser/sendVerificationCode" @click="send"
ref="wxCodeItem"></SendCodeItem>
</view>
</view>
<!-- <view class="inputRow">
<image src="../../static/baseIcon/code.png" mode="aspectFill" class="drawableLeft"></image>
<input type="number" @input="codeText" maxlength="6" placeholder="请输入验证码" class="input" />
</view> -->
<view class="btn" @click="next">
<text class="btnText">绑定账号</text>
</view>
<view v-show="!isShow">
<view style="display: flex;flex-direction: column;justify-content: center;width: 100%;margin-top: 50px;">
<text style="width: 100%;text-align: center;font-size: 35px;color: #f00;">抱歉</text>
<text style="margin: 20px; text-align: center;font-size: 30px;color: #f00;">您的平台应用未被授权请联系工作人员</text>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
isShow: true,
// 状态栏高度
statusBarHeight: 0,
// 导航栏高度
navBarHeight: 82 + 11,
page: {
mobile: '',
openid: '',
code: '',
unionid: ""
}
};
},
//第一次加载时调用
created() {
//获取手机状态栏高度
this.statusBarHeight = uni.getSystemInfoSync()['statusBarHeight'];
},
onShow() {
/* #ifdef MP-WEIXIN */
wx.hideHomeButton();
/* #endif */
},
onLoad(options) {
console.log('=======', options)
this.page.openid = options.openid
this.page.unionid = options.unionid
console.log('this.page', this.page)
},
methods: {
next() {
var mobileLength = this.page.mobile.length;
var codeLength = this.page.code.length;
if (mobileLength == 0) {
uni.showToast({
icon: 'error',
title: '手机号不能为空'
})
return;
}
let _this = this
console.log('1111', _this.page)
_this.$api.wxBindMobile(_this.page).then((resp) => {
// if (resp.success) {
console.log('1111', resp)
getApp().globalData.sid = resp
// getApp().globalData.token = resp.token
// getApp().globalData.sid = resp.sid
// getApp().globalData.mobile = resp.mobile
// getApp().globalData.isLogin = true
// _this.WritePreference("sysUserSid", res.data)
// _this.WritePreference("isLogin", true)
// getApp().globalData.isLogin = true
// getApp().globalData.sysUserSid = res.data
uni.switchTab({
url: '/pages/card/card'
})
// uni.switchTab({
// url: '/pages/home/WorkFragment'
// });
}).catch(e => {
console.log('eeeee', e)
// uni.showModal({
// title: '温馨提示',
// content: '您的平台应用未被授权,请联系工作人员。',
// showCancel: false,
// success: function(res) {
// if (res.confirm) {
// } else {
// console.log('点击了取消')
// }
// }
// })
})
// this.HTTP({
// url: 'aos/v1/aosUser/wxBindMobile',
// data: {
// mobile: this.page.phone,
// sysUserWxAuthSid: this.page.sysUserWxAuthSid,
// code: this.page.code
// },
// method: 'POST',
// paramsType: "JSON",
// loading: true
// }).then((res) => {
// console.log('=======', res)
// if (res.code == 200) {
// // 保存
// _this.WritePreference("sysUserSid", res.data)
// _this.WritePreference("isLogin", true)
// getApp().globalData.isLogin = true
// getApp().globalData.sysUserSid = res.data
// console.log(
// '=======1111111111111111111111111111111sdfasdf;kjasdfjkasdklfkasdjf;asdddddddddddddd',
// res)
// // $emit 触发事件 主要返回给webviwew页面
// // uni.$emit('login', res.data.memberSid)
// uni.navigateBack({
// delta: 10
// });
// }
// });
},
phoneText(e) {
//手机号
this.page.mobile = e.detail.value;
},
send(e) { //发送验证码
console.log(e);
this.isShow = e.success
console.log("this.isShow", this.isShow);
},
codeText(e) {
//验证码
this.page.code = e.detail.value;
}
}
};
</script>
<style lang="scss">
.navBarBox {
background: #007AFF;
}
.navBarBox .statusBar {}
.navBarBox .navBar {
padding-top: 15px;
padding-bottom: 13px;
display: flex;
font-size: 13px;
flex-direction: row;
color: #ffffff;
justify-content: center;
align-items: center;
}
.inputRow {
display: flex;
margin-left: 30rpx;
margin-right: 30rpx;
margin-bottom: 10rpx;
margin-top: 10rpx;
padding-bottom: 10rpx;
border-bottom: 0.1px #F1F1F1 solid;
align-items: center;
.input {
margin-left: 20rpx;
height: 70rpx;
flex: 1;
font-size: 32rpx;
}
.drawableLeft {
width: 40rpx;
height: 40rpx;
margin: 20rpx;
}
}
.btn {
display: flex;
width: 90%;
height: 80rpx;
flex-direction: column;
background-color: #007AFF;
margin-top: 80rpx;
margin-left: auto;
margin-right: auto;
align-items: center;
justify-content: center;
border-radius: 10rpx;
.btnText {
color: #ffffff;
font-size: 33rpx;
}
}
</style>

261
pages/index/auditReport.vue Normal file
View File

@@ -0,0 +1,261 @@
<template>
<view style="margin-left: 20px; margin-right: 20px;padding-bottom: 50px">
<view style="display: flex;width: 100%;">
<view style="flex: 1;"></view>
<text style="size: 25px;font-family: sans-serif;font-weight: 600;color: white;
margin-top: 10px;margin-right: 5px;border: none; padding: 5px 15px;
border-radius: 5px 5px;
background: #0498FD;" @click="download">
下载
</text>
</view>
<view
style="display: flex;width: 100%;justify-content: center;size: 25px;font-family: sans-serif;font-weight: 600;margin-top: 10px;">
每日回款审核报告
</view>
<view style="margin-top: 20px;font-family: sans-serif;font-weight: 600;">石家庄汇融农村合作银行振头支行</view>
<view style=" line-height: 30px; margin-top: 10px;text-indent:2em;">
<text style="font-family: sans-serif;font-weight: 600;">{{info.companyName}}</text>
<text>昨日销售及今日回款情况如下昨日销售总计</text>
<text style="font-family: sans-serif;font-weight: 600;">{{info.totalSales}}</text>
<text> 今日应回款</text>
<text style="font-family: sans-serif;font-weight: 600;">{{info.collection}}</text>
<text> 今日实际回款</text>
<text style="font-family: sans-serif;font-weight: 600;">{{info.actualCollection}}</text>
<text> 回款差额</text>
<text style="font-family: sans-serif;font-weight: 600;">{{info.difference}}</text>
<text> 未回款原因平台扣除手续费服务费等具体原因详见附件今日回款明细</text>
<view>
<text>截至</text>
<text style="font-family: sans-serif;font-weight: 600;">{{info.endTime}}</text>
<text>今日支付完毕款项后账户余额为</text>
<text style="font-family: sans-serif;font-weight: 600;">{{info.balance}}</text>
<text> </text>
</view>
</view>
<view style="display: flex;flex-direction: column;margin-top: 15px; line-height: 30px;">
<text style="size: 25px;font-family: sans-serif;font-weight: 600;">审核结果</text>
<text style="text-indent:2em;">{{info.auditResult}}</text>
<!-- <view>
<text
style="margin-top: 10px;text-indent:2em;">实际回款资金已按要求回到{{info.companyName}}{{info.account}}账号为</text>
<text style="font-family: sans-serif;font-weight: 600;">{{info.accountNumber}}</text>
<text></text>
</view> -->
</view>
<view style="display: flex;flex-direction: column;width: 100%;align-items: flex-end; margin-top: 30px;">
<text style="font-family: sans-serif;font-weight: 600;">{{info.reviewedBy}}</text>
<text style="margin-top:10px ; font-family: sans-serif;font-weight: 600;">{{info.date}}</text>
</view>
<view style="margin-top: 50px; display: flex; flex-direction: column;">
<text style="size: 25px;font-family: sans-serif;font-weight: 600;padding-bottom: 10px;">附件今日回款明细</text>
<uni-table ref="table1" border stripe emptyText="暂无更多数据">
<uni-tr>
<uni-th align="center">销售日期</uni-th>
<uni-th align="center">支付渠道</uni-th>
<uni-th align="center">金额</uni-th>
<uni-th align="center">对应公司主体</uni-th>
<uni-th align="center">回款金额</uni-th>
<uni-th align="center">回款差额</uni-th>
<uni-th align="center">备注</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData1" :key="index">
<uni-td align="center">{{ item.salesDate }}</uni-td>
<uni-td align="center">{{ item.payChannels }}</uni-td>
<uni-td align="center">{{ item.money }}</uni-td>
<uni-td align="center">{{ item.mainBody }}</uni-td>
<uni-td align="center">{{ item.collection }}</uni-td>
<uni-td align="center">{{ item.different }}</uni-td>
<uni-td align="center">{{ item.notes }}</uni-td>
</uni-tr>
</uni-table>
</view>
<view style="margin-top: 30px; display: flex; flex-direction: column;">
<text style="size: 25px;font-family: sans-serif;font-weight: 600;padding-bottom: 10px;">附件昨日销售报表</text>
<uni-table ref="table2" border stripe emptyText="暂无更多数据">
<uni-tr>
<uni-th align="center">支付渠道</uni-th>
<uni-th align="center">金额</uni-th>
<uni-th align="center">对应公司主体</uni-th>
<uni-th align="center">到账周期</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData2" :key="index">
<uni-td align="center">{{ item.payChannels }}</uni-td>
<uni-td align="center">{{ item.money }}</uni-td>
<uni-td align="center">{{ item.mainBody }}</uni-td>
<uni-td align="center">{{ item.cycle }}</uni-td>
</uni-tr>
</uni-table>
</view>
</view>
</template>
<script>
export default {
data() {
return {
queryParams: {
dataDate: "2023-06-14",
companyName: "河北源蜂惠民科技集团有限公司"
},
loading1: false,
loading2: false,
info: {
companyName: "",
totalSales: "",
collection: "",
actualCollection: "",
different: "",
endTime: "",
balance: "",
account: "",
accountNumber: "",
reviewedBy: "",
date: "",
},
tableData1: [
// {
// "salesDate": "2023年6月7日",
// "payChannels": "批发-京东",
// "money": "397.09",
// "mainBody": "源蜂-汇融",
// "collection": "357.87",
// "different": "39.22",
// "notes": "6.7回小时购150.12"
// },
],
tableData2: [
// {
// "payChannels": "现金",
// "money": "63094.88",
// "mainBody": "-",
// "cycle": "每月19号归集"
// },
],
fileUrl: ""
};
},
onLoad(option) {
// this.queryParams = {
// dataDate: option.dataDate,
// companyName: option.companyName
// }
console.log('1111', this.queryParams)
this.getData()
},
onShow() {
wx.hideHomeButton()
},
methods: {
download() {
if (this.fileUrl == '') {
uni.showToast({
title: "下载地址错误,请重新进入页面。",
duration: 5000
})
return
}
uni.downloadFile({
url: this.fileUrl, // 网络文档地址
success: (data) => {
if (data.statusCode === 200) {
uni.saveFile({
tempFilePath: data.tempFilePath, //临时路径
success: function(res) {
// 保存路径
uni.showToast({
title: "文件已保存:" + res.savedFilePath,
duration: 5000
})
setTimeout(() => {
//打开文档查看
uni.openDocument({
filePath: res.savedFilePath,
showMenu: true, //右上角是否有可以转发分享的功能
success: function(res) {
console.log('打开文档成功')
}
})
}, 3000);
}
});
}
},
fail: (err) => {
uni.showToast({
title: '失败请重新下载'
});
},
});
},
getData() {
console.log('getData', this.queryParams)
this.$api.getReportInfo(this.queryParams).then((resp) => {
console.log('1111>>>>>>', resp)
this.fileUrl = resp.downloadUrl
this.info = resp
}).catch(e => {
console.log('eeeee', e)
})
this.$api.getCsmReportTodayByComSid(this.queryParams).then((resp) => {
console.log('2222>>>>>>', resp)
this.loading1 = true
this.tableData1 = resp
}).catch(e => {
console.log('eeeee', e)
})
this.$api.getCsmReportYesterdayByComSid(this.queryParams).then((resp) => {
console.log('3333>>>>>>', resp)
this.loading2 = true
this.tableData2 = resp
}).catch(e => {
console.log('eeeee', e)
})
},
}
}
</script>
<style>
</style>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,284 @@
<template>
<view class="pages">
<uni-card title="36524快消品动产质押项目" :isFull="true" extra="点击下载Excel文件" :thumbnail="avatar"
style="padding-top: 10px;">
<template v-slot:title>
<uni-section :title="logInfo.title" title-font-size="25" type="line">
<template v-slot:decoration>
<uni-icons type="location-filled" size="18" color="green"></uni-icons>
</template>
<template v-slot:right> <uni-tag :inverted="true" text="下载Excel文件" type="primary"
@click="onClick" /> </template>
</uni-section>
</template>
<view style="display: flex;flex-direction: row;">
<view style="flex: 1;">
<text>上报日期</text>
<text>{{logInfo.reportTime}}</text>
</view>
<view style="flex: 1;">
<text>货值总计</text>
<text>{{logInfo.countAmount}}</text>
</view>
</view>
<!-- <uni-list>
<uni-list-item title="上报日期:" :rightText="logInfo.reportTime"></uni-list-item>
<uni-list-item title="货值总计:" :right-text="logInfo.countAmount"></uni-list-item>
</uni-list> -->
<view v-for="(item, index) in tableData1" style="margin-top: 10px;">
<view>
<uni-title type="h3" :title="item.storeType" color="#444"></uni-title>
<uni-row>
<uni-col :span="8">
<view class="table-header tleft"><text>仓库数量</text></view>
</uni-col>
<uni-col :span="8">
<view class="table-header"><text>品种数量</text></view>
</uni-col>
<uni-col :span="8">
<view class="table-header"><text>品种货值</text></view>
</uni-col>
</uni-row>
<uni-row>
<uni-col :span="8">
<view class="table-body tleft"><text>{{item.storeNumber}}</text></view>
</uni-col>
<uni-col :span="8">
<view class="table-body"><text>{{item.productCountNumber}}</text></view>
</uni-col>
<uni-col :span="8">
<view class="table-body"><text>{{item.productAmount}}</text></view>
</uni-col>
</uni-row>
</view>
</view>
</uni-card>
<uni-collapse style="margin-top: 10px;">
<uni-collapse-item title="仓库库存明细表" style="font-size: 18px;" :open="true">
<view style="display: flex;flex-direction: row;margin-left: 16px;">
<view style="flex: 1;">
<text>商品数量合计</text>
<text>{{logInfo2.countProductNumber}}</text>
</view>
<view style="flex: 1;">
<text>商品货值合计</text>
<text>{{logInfo2.countAmount}}</text>
</view>
</view>
<view class="ttbale"style="margin-top: 10px;" >
<uni-row>
<uni-col :span="8">
<view class="table-header tleft"><text>序号</text></view>
</uni-col>
<uni-col :span="16">
<view class="table-header"><text>仓库名称</text></view>
</uni-col>
</uni-row>
<uni-row>
<uni-col :span="8">
<view class="table-header tleft"><text>商品数量</text></view>
</uni-col>
<uni-col :span="8">
<view class="table-header"><text>商品品种数量</text></view>
</uni-col>
<uni-col :span="8">
<view class="table-header"><text>货值</text></view>
</uni-col>
</uni-row>
</view>
<view v-for="(item, index) in tableData2" >
<view class="ttbale">
<uni-row>
<uni-col :span="8">
<view class="table-body tleft"><text>{{index+1}}</text></view>
</uni-col>
<uni-col :span="16">
<view class="table-body"><text>{{item.storeCodeName}}</text></view>
</uni-col>
</uni-row>
<uni-row>
<uni-col :span="8">
<view class="table-body tleft"><text>{{ item.productCountNumber}}</text></view>
</uni-col>
<uni-col :span="8">
<view class="table-body"><text>{{item.typeNumber}}</text></view>
</uni-col>
<uni-col :span="8">
<view class="table-body"><text>{{item.productAmount}}</text></view>
</uni-col>
</uni-row>
</view>
</view>
</uni-collapse-item>
</uni-collapse>
</view>
</template>
<script>
export default {
components: {},
data() {
return {
date: "2023-06-25",
tableData1: [],
logInfo: {
title: "",
reportTime: "",
countAmount: "",
},
tableData2: [],
logInfo2: {
countProductNumber: "",
countAmount: "",
},
tableData3: [],
logInfo3: {
countProductNumber: "",
countAmount: "",
},
}
},
onLoad(option) {
// this.date = option.orderDate
// console.log('1111', this.queryParams)
this.getData()
},
methods: {
onClick(e) {
uni.showToast({
title: '点击下载文件',
duration: 2000
});
console.log(e)
},
actionsClick(text) {
uni.showToast({
title: text,
icon: 'none'
})
},
getData() {
console.log('getData', this.date)
this.$api.getReportInventoryDayGather(this.date).then((resp) => {
console.log('1111>>>>>>', resp)
this.fileUrl = resp.downloadUrl
this.tableData1 = resp.list
this.logInfo = {
title: resp.title,
reportTime: resp.orderDate,
countAmount: resp.countAmount,
}
}).catch(e => {
console.log('eeeee', e)
})
this.$api.getReportInventoryDayStore(this.date).then((resp) => {
console.log('2222>>>>>>', resp)
this.tableData2 = resp.list
this.logInfo2 = {
countProductNumber: resp.countProductNumber,
countAmount: resp.countAmount,
}
}).catch(e => {
console.log('eeeee', e)
})
// this.$api.getReportInventoryDayToStore(this.date).then((resp) => {
// console.log('3333>>>>>>', resp)
// this.tableData3 = resp.list
// this.logInfo3 = {
// countProductNumber: resp.countProductNumber,
// countAmount: resp.countAmount,
// }
// }).catch(e => {
// console.log('eeeee', e)
// })
},
}
}
</script>
<style lang="scss">
.pages {}
$uni-success: #18bc37 !default;
.table-header {
text-align: center;
border: 0.5px solid #ccc;
font-weight: bold;
font-size: 15px;
border-left: 0.0px;
padding: 5px;
}
.table-body {
text-align: center;
border: 0.5px solid #ccc;
font-size: 13px;
padding: 5px;
border-left: 0.0px;
border-top: 0.0px;
}
.tleft {
border-left: 0.5px solid #ccc;
}
.ttbale {
margin: 0px 10px 0px 10px;
// border-bottom: 1px solid #ccc;
}
.uni-wrap {
flex-direction: column;
/* #ifdef H5 */
height: calc(100vh - 44px);
/* #endif */
/* #ifndef H5 */
height: 100vh;
/* #endif */
flex: 1;
}
.mb-10 {
margin-bottom: 10px;
}
.decoration {
width: 8px;
height: 8px;
margin-right: 4px;
border-radius: 50%;
background-color: $uni-success;
}
</style>

View File

@@ -0,0 +1,247 @@
<template>
<view class="charts-box" style="padding-bottom: 50px;">
<view class="top" style="margin-top: 15px;">
<text>企业名称</text>
<text>{{queryParams.businessName}}</text>
</view>
<view class="top">
<text>核查日期</text>
<text>{{queryParams.executionTime}}</text>
</view>
<view class="top">
<text>核查结果</text>
<text>{{result}}</text>
</view>
<view v-show="isShow">
<view class="top">
<text>异常信息详情</text>
</view>
<block v-for="item in list" :key="item.index">
<!-- 包裹图片+两行文字 id="{{index}}"是给按下了那个item记录-->
<view class="view_tupian_wenzi" @click="clickData(item.index)">
<!-- 包裹两行文字 -->
<view class="view_wenzi2">
<view class="top2">
<text>列入日期</text>
<text>{{item.addDate}}</text>
</view>
<view class="top2">
<text>列入经营异常名录原因</text>
<text>{{item.addReason}}</text>
</view>
<view class="top2">
<text>作出决定机关</text>
<text>{{item.decisionOffice}}</text>
</view>
<view class="top2">
<text>移出日期</text>
<text>{{item.removeDate}}</text>
</view>
<view class="top2">
<text>移出经营异常名录原因</text>
<text>{{item.romoveReason}}</text>
</view>
<view class="top2">
<text>移出决定机关</text>
<text>{{item.removeDecisionOffice}}</text>
</view>
</view>
</view>
</block>
</view>
</view>
</template>
<script>
export default {
data() {
return {
title: "",
result: "",
isShow: false,
queryParams: {
businessName: "",
executionTime: ""
},
list: [],
fileUrl:"",
};
},
onLoad(option) {
// var data = JSON.stringify(option)
this.queryParams = {
businessName: option.businessName,
executionTime: option.executionTime
}
console.log('1111', this.queryParams)
// this.setData({
// queryParams: JSON.stringify(option)
// })
// console.log('setData', this.queryParams)
this.getData()
// console.log('App onLoad', JSON.stringify(option))
// this.title = JSON.stringify(option)
// wx.showToast({
// title: 'onLoad成功>>>>>' + JSON.stringify(option),
// icon: 'none',
// duration: 5000 //持续的时间
// })
},
onShow() {
wx.hideHomeButton()
},
methods: {
download() {
uni.downloadFile({
url: this.fileUrl,// 网络文档地址
success: (data) => {
if (data.statusCode === 200) {
uni.saveFile({
tempFilePath: data.tempFilePath, //临时路径
success: function(res) {
// 保存路径
uni.showToast({ title: "文件已保存:"+res.savedFilePath,duration:5000 })
setTimeout(()=>{
//打开文档查看
uni.openDocument({
filePath:res.savedFilePath,
showMenu: true,//右上角是否有可以转发分享的功能
success:function(res){
console.log('打开文档成功')
}
})
}, 3000);
}
});
}
},
fail: (err) => {
uni.showToast({
title: '失败请重新下载'
});
},
});
},
getData() {
console.log('getData', this.queryParams)
this.$api.selectBusinessRiskInfo(this.queryParams).then((resp) => {
console.log('1111>>>>>>', resp)
this.list = resp
console.log('2222>>>>>>', this.list.length)
this.result = this.list.length == 0 ? "无异常信息" : "共有" + this.list.length + "条异常信息"
this.isShow = this.list.length == 0 ? false : true
}).catch(e => {
console.log('eeeee', e)
})
},
clickData(e) {
console.log("按了:", e.currentTarget.id)
}
},
};
</script>
<style lang="scss">
.top {
margin-left: 25px;
margin-top: 5px;
}
/* 包裹图片和两行文字 */
.view_tupian_wenzi {
display: flex;
flex-direction: row;
align-items: center;
/* 圆角 */
border-radius: 20rpx;
/* 边 */
border: 3rpx solid #E0E3DA;
box-shadow: 5rpx 5rpx 5rpx 5rpx #E0E3DA;
background-color: #ffffff;
margin: 30rpx;
/* padding使得文字和图片不至于贴着边框 */
padding: 30rpx;
}
/* 图片 */
.image_1 {
width: 100rpx;
height: 100rpx;
}
/* 包裹两行文字 */
.view_wenzi2 {
width: 100%;
margin-left: 25rpx;
display: flex;
flex-direction: column;
.top2 {
margin-top: 5px;
}
.text1 {
font-size: 15px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.text2 {
flex: 1;
margin-top: 5px;
font-size: 12px;
}
}
/* 小字 */
.text_small {
font-size: 30rpx;
word-break: break-all;
color: #7a7878;
margin-top: 10rpx
}
.text_small2 {
font-size: 25rpx;
color: #f00;
margin-top: 10rpx
}
</style>

176
pages/index/index.vue Normal file
View File

@@ -0,0 +1,176 @@
<template>
<view class="charts-box">
<view style="display: flex;justify-content: center; width: 100%; ">
<text style="padding-top: 10px;padding-bottom: 10px;color: blue;margin-left: 20px;" @click="jump(1)">1</text>
<text style="padding-top: 10px;padding-bottom: 10px;color: blue;margin-left: 20px;" @click="jump(2)">2</text>
<text style="padding-top: 10px;padding-bottom: 10px;color: blue;margin-left: 20px;" @click="jump(3)">3</text>
</view>
<view style="margin-top: 20px;margin-left: 20px;">
<text>当日数据1</text>
<text style="margin-left: 10px;">{{newDate}}</text>
</view>
<view style="margin-top: 15px;margin-left: 10px;margin-right: 10px;">
<qiun-data-charts type="column" :opts="opts" :chartData="chartData" />
</view>
<view style="margin-top: 25px;margin-left: 15px;margin-right: 15px;">
<uni-table ref="table" :border="true" stripe type="" emptyText="暂无更多数据">
<uni-tr>
<uni-th align="center">现金流量-经营活动产生的现金流量()</uni-th>
<uni-th align="center">总额</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData" :key="index">
<uni-td align="center">{{ item.name }}</uni-td>
<uni-td align="center">{{ item.price }}</uni-td>
</uni-tr>
</uni-table>
</view>
<view style="margin-top: 25px;margin-left: 15px;margin-right: 15px;">
<uni-table ref="table" :border="true" stripe type="" emptyText="暂无更多数据">
<uni-tr>
<uni-th width="200" align="center">销售渠道类别</uni-th>
<uni-th align="center">总额</uni-th>
<uni-th align="center">应收帐款</uni-th>
<uni-th align="center">扣除应收</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData2" :key="index">
<uni-td align="center">{{ item.name }}</uni-td>
<uni-td align="center">{{ item.totalAmount }}</uni-td>
<uni-td align="center">{{ item.accountsReceivable }}</uni-td>
<uni-td align="center">{{ item.deductionAccountsReceivable }}</uni-td>
</uni-tr>
</uni-table>
</view>
<navigator url="enterpriseRisk?businessName=aaaabbbb&executionTime=2023-03-15" hover-class="navigator-hover">
<button type="default" style="margin-top: 20px;">测试企业经营页面</button>
</navigator>
</view>
</template>
<script>
export default {
data() {
return {
newDate: new Date().getFullYear() + "-" + (new Date().getMonth() + 1) + "-" + new Date().getDate(),
tableData: [{
name: "销售商品收到的现金(元)",
price: "2000000",
},
{
name: "收到其他与经营活动有关的现金(元)",
price: "28700",
},
{
name: "本项合计",
price: "123456",
},
],
tableData2: [{
name: "销售商品收到的现金(元)",
totalAmount: "2000000",
accountsReceivable: "31914",
deductionAccountsReceivable: "35793"
},
{
name: "连锁内加盟",
totalAmount: "2000000",
accountsReceivable: "31914",
deductionAccountsReceivable: "35793"
},
{
name: "配送中心",
totalAmount: "2000000",
accountsReceivable: "31914",
deductionAccountsReceivable: "35793",
}, {
name: "连锁外加盟",
totalAmount: "2000000",
accountsReceivable: "31914",
deductionAccountsReceivable: "35793",
}
],
chartData: {},
opts: {
xAxis: {
disableGrid: true
},
yAxis: {
data: [{
min: 0
}]
},
extra: {
column: {
type: "group"
}
}
}
};
},
onLoad() {
this.getServerData();
},
methods: {
getServerData() {
setTimeout(() => {
//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
let res = {
categories: ["2016", "2017", "2018", "2019", "2020", "2021"],
series: [{
name: "分销商进货额",
data: [35, 36, 31, 33, 13, 34]
},
{
name: "实际发货额",
data: [18, 27, 21, 24, 6, 28]
}
]
};
this.chartData = JSON.parse(JSON.stringify(res));
}, 100);
},
jump(index) {
console.log("index>>", index)
switch (index) {
case 1:
break;
case 2:
uni.navigateTo({
url: 'index2'
});
break;
case 3:
uni.navigateTo({
url: 'index3'
});
break;
}
}
}
};
</script>
<style scoped>
/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
.charts-box {
width: 100%;
height: 300px;
}
</style>

179
pages/index/index2.vue Normal file
View File

@@ -0,0 +1,179 @@
<template>
<view class="charts-box">
<view style="display: flex;justify-content: center; width: 100%; ">
<text style="padding-top: 10px;padding-bottom: 10px;color: blue;margin-left: 20px;"
@click="jump(1)">1</text>
<text style="padding-top: 10px;padding-bottom: 10px;color: blue;margin-left: 20px;"
@click="jump(2)">2</text>
<text style="padding-top: 10px;padding-bottom: 10px;color: blue;margin-left: 20px;"
@click="jump(3)">3</text>
</view>
<view style="margin-top: 20px;margin-left: 20px;">
<text>2当日数据</text>
<text style="margin-left: 10px;">{{newDate}}</text>
</view>
<view style="margin-top: 15px;margin-left: 10px;margin-right: 10px;">
<qiun-data-charts type="pie" :opts="opts" :chartData="chartData" />
</view>
<view style="margin-top: 25px;margin-left: 15px;margin-right: 15px;">
<text>到货时间预警表</text>
</view>
<view style="margin-top: 20px;margin-left: 15px;margin-right: 15px;">
<uni-table ref="table" :border="true" stripe type="" emptyText="暂无更多数据">
<uni-tr>
<uni-th width="50" align="center">序号</uni-th>
<uni-th width="280" align="center">供应商名称</uni-th>
<uni-th align="center">到货日期</uni-th>
<uni-th align="center">是否延期</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData2" :key="index">
<uni-td align="center">{{ index+1 }}</uni-td>
<uni-td align="center">{{ item.supplierName }}</uni-td>
<uni-td align="center">{{ item.allArrivedDate }}</uni-td>
<uni-td align="center">{{ item.isDelay }}</uni-td>
</uni-tr>
</uni-table>
</view>
</view>
</template>
<script>
export default {
data() {
return {
newDate: new Date().getFullYear() + "-" + (new Date().getMonth() + 1) + "-" + new Date().getDate(),
tableData2: [{
supplierName: "中粮可口可乐饮料(河北)有限公司",
allArrivedDate: "2022.12.29",
isDelay: "是",
},
{
supplierName: "中顺洁柔纸业股份有限公司",
allArrivedDate: "2022.12.29",
isDelay: "是",
},
{
supplierName: "今麦郎食品股份有限公司石家庄分公司",
allArrivedDate: "2022.12.29",
isDelay: "是",
}, {
supplierName: "农夫山泉股份有限公司",
allArrivedDate: "2022.12.29",
isDelay: "是",
}, {
supplierName: "北京百事可乐饮料有限公司",
allArrivedDate: "2022.12.29",
isDelay: "是",
}, {
supplierName: "今麦郎食品股份有限公司石家庄分公司",
allArrivedDate: "2022.12.29",
isDelay: "是",
}, {
supplierName: "农夫山泉股份有限公司",
allArrivedDate: "2022.12.29",
isDelay: "是",
}, {
supplierName: "北京百事可乐饮料有限公司",
allArrivedDate: "2022.12.29",
isDelay: "是",
}
],
chartData: {},
opts: {
color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
"#ea7ccc"
],
padding: [5, 5, 5, 5],
enableScroll: false,
extra: {
pie: {
activeOpacity: 0.5,
activeRadius: 10,
offsetAngle: 0,
labelWidth: 15,
border: true,
borderWidth: 3,
borderColor: "#FFFFFF",
linearType: "custom"
}
}
}
};
},
onLoad() {
this.getServerData();
},
methods: {
getServerData() {
//模拟从服务器获取数据时的延时
setTimeout(() => {
//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
let res = {
series: [{
data: [{
"name": "一班",
"value": 50
}, {
"name": "二班",
"value": 30
}, {
"name": "三班",
"value": 20
}, {
"name": "四班",
"value": 18
}, {
"name": "五班",
"value": 8
}]
}]
};
this.chartData = JSON.parse(JSON.stringify(res));
}, 500);
},
jump(index) {
console.log("index>>2",index)
switch (index) {
case 1:
uni.navigateTo({
url: 'index'
});
break;
case 2:
break;
case 3:
uni.navigateTo({
url: 'index3'
});
break;
}
}
},
}
</script>
<style scoped>
/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
.charts-box {
width: 100%;
height: 300px;
}
</style>

236
pages/index/index3.vue Normal file
View File

@@ -0,0 +1,236 @@
<template>
<view class="charts-box">
<view style="display: flex;justify-content: center; width: 100%; ">
<text style="padding-top: 10px;padding-bottom: 10px;color: blue;margin-left: 20px;"
@click="jump(1)">1</text>
<text style="padding-top: 10px;padding-bottom: 10px;color: blue;margin-left: 20px;"
@click="jump(2)">2</text>
<text style="padding-top: 10px;padding-bottom: 10px;color: blue;margin-left: 20px;"
@click="jump(3)">3</text>
</view>
<view style="margin-top: 20px;margin-left: 20px;">
<text>3当日数据</text>
<text style="margin-left: 10px;">{{newDate}}</text>
</view>
<view style="margin-top: 15px;margin-left: 10px;">
<qiun-data-charts type="mix" :opts="opts" :chartData="chartData" />
</view>
<view style="margin-top: 25px;margin-left: 15px;margin-right: 15px;">
<uni-table ref="table" :border="true" stripe type="" emptyText="暂无更多数据">
<uni-tr>
<uni-th align="center">现金流量-经营活动产生的现金流量()</uni-th>
<uni-th align="center">总额</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData" :key="index">
<uni-td align="center">{{ item.name }}</uni-td>
<uni-td align="center">{{ item.price }}</uni-td>
</uni-tr>
</uni-table>
</view>
<view style="margin-top: 25px;margin-left: 15px;margin-right: 15px;">
<uni-table ref="table" :border="true" stripe type="" emptyText="暂无更多数据">
<uni-tr>
<uni-th width="200" align="center">销售渠道类别</uni-th>
<uni-th align="center">总额</uni-th>
<uni-th align="center">应收帐款</uni-th>
<uni-th align="center">扣除应收</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData2" :key="index">
<uni-td align="center">{{ item.name }}</uni-td>
<uni-td align="center">{{ item.totalAmount }}</uni-td>
<uni-td align="center">{{ item.accountsReceivable }}</uni-td>
<uni-td align="center">{{ item.deductionAccountsReceivable }}</uni-td>
</uni-tr>
</uni-table>
</view>
</view>
</template>
<script>
export default {
data() {
return {
newDate: new Date().getFullYear() + "-" + (new Date().getMonth() + 1) + "-" + new Date().getDate(),
tableData: [{
name: "销售商品收到的现金(元)",
price: "2000000",
},
{
name: "收到其他与经营活动有关的现金(元)",
price: "28700",
},
{
name: "本项合计",
price: "123456",
},
],
tableData2: [{
name: "销售商品收到的现金(元)",
totalAmount: "2000000",
accountsReceivable: "31914",
deductionAccountsReceivable: "35793"
},
{
name: "连锁内加盟",
totalAmount: "2000000",
accountsReceivable: "31914",
deductionAccountsReceivable: "35793"
},
{
name: "配送中心",
totalAmount: "2000000",
accountsReceivable: "31914",
deductionAccountsReceivable: "35793",
}, {
name: "连锁外加盟",
totalAmount: "2000000",
accountsReceivable: "31914",
deductionAccountsReceivable: "35793",
}
],
chartData: {},
opts: {
color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
"#ea7ccc"
],
padding: [15, 15, 0, 15],
enableScroll: false,
legend: {},
xAxis: {
disableGrid: true,
title: ""
},
yAxis: {
disabled: false,
disableGrid: false,
splitNumber: 5,
gridType: "dash",
dashLength: 4,
gridColor: "#CCCCCC",
padding: 10,
showTitle: true,
data: [{
position: "left",
title: "折线"
},
{
position: "right",
min: 0,
max: 200,
title: "柱状图",
textAlign: "left"
},
]
},
extra: {
mix: {
column: {
width: 20
}
}
}
}
};
},
onLoad() {
this.getServerData();
},
methods: {
getServerData() {
//模拟从服务器获取数据时的延时
setTimeout(() => {
//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
let res = {
categories: ["2018", "2019", "2020", "2021", "2022", "2023"],
series: [{
name: "仓库货值",
index: 1,
type: "column",
data: [40, {
"value": 30,
"color": "#f04864"
}, 55, 110, 24, 58]
},
{
name: "在途货值",
index: 1,
type: "column",
data: [50, 20, 75, 60, 34, 38]
}, {
name: "门店货值",
index: 1,
type: "column",
data: [50, 20, 75, 60, 34, 38]
}, {
name: "账户余额",
index: 1,
type: "column",
data: [50, 20, 75, 60, 34, 38]
}, {
name: "应收账款",
index: 1,
type: "column",
data: [50, 20, 75, 60, 34, 38]
}, {
name: "借款金额",
index: 1,
type: "column",
data: [50, 20, 75, 60, 34, 38]
},
{
name: "折线",
type: "line",
color: "#D33682",
data: [120, 140, 105, 170, 95, 160]
},
]
};
this.chartData = JSON.parse(JSON.stringify(res));
}, 500);
},
jump(index) {
console.log("index>>3", index)
switch (index) {
case 1:
uni.navigateTo({
url: 'index'
});
break;
case 2:
uni.navigateTo({
url: 'index2'
});
break;
case 3:
break;
}
}
},
};
</script>
<style scoped>
/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
.charts-box {
width: 100%;
height: 300px;
}
</style>

View File

@@ -0,0 +1,268 @@
<template>
<view style="margin-left: 20px; margin-right: 20px;padding-bottom: 50px">
<view style="display: flex;width: 100%;">
<view style="flex: 1;"></view>
<text style="size: 25px;font-family: sans-serif;font-weight: 600;color: white;
margin-top: 10px;margin-right: 5px;border: none; padding: 5px 15px;
border-radius: 5px 5px;
background: #0498FD;" @click="download">
下载
</text>
</view>
<view
style="display: flex; width: 100%;justify-content: center; size: 25px;font-family: sans-serif;font-weight: 600;margin: 10px;">
{{date}}
</view>
<view style="margin-top: 20px; display: flex; flex-direction: column;">
<text style="size: 25px;font-family: sans-serif;font-weight: 600;padding-bottom: 10px;">库存日报汇总表</text>
<text>编号:{{logInfo.serialNumber}}</text>
<text>上报时间:{{logInfo.reportTime}}</text>
<text style="margin-bottom: 10px;">货值合计:{{logInfo.countAmount}}</text>
<uni-table ref="table1" border stripe emptyText="暂无更多数据">
<uni-tr>
<!-- <uni-th align="center">序号</uni-th> -->
<uni-th align="center" width="180">仓库类型</uni-th>
<uni-th align="center" width="80">仓库数量</uni-th>
<uni-th align="center" width="80">品种数量</uni-th>
<uni-th align="center" width="100">品种货值</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData1" :key="index">
<!-- <uni-td align="center">{{ index+1}}</uni-td> -->
<uni-td align="center">{{ item.storeType }}</uni-td>
<uni-td align="center">{{ item.storeNumber }}</uni-td>
<uni-td align="center">{{ item.productCountNumber }}</uni-td>
<uni-td align="center">{{ item.productAmount }}</uni-td>
</uni-tr>
</uni-table>
</view>
<view style="margin-top: 50px; display: flex; flex-direction: column;">
<text style="size: 25px;font-family: sans-serif;font-weight: 600;padding-bottom: 10px;">仓库库存明细表</text>
<text>商品数量合计:{{logInfo2.countProductNumber}}</text>
<text style="margin-bottom: 10px;">商品货值合计:{{logInfo2.countAmount}}</text>
<uni-table ref="table1" border stripe emptyText="暂无更多数据">
<uni-tr>
<!-- <uni-th align="center" width="50">序号</uni-th> -->
<uni-th align="center" width="180">仓库名称</uni-th>
<uni-th align="center" width="80">商品数量</uni-th>
<uni-th align="center" width="100">商品货值</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData2" :key="index">
<!-- <uni-td align="center">{{ index+1 }}</uni-td> -->
<uni-td align="center">{{ item.storeCodeName }}</uni-td>
<uni-td align="center">{{ item.productCountNumber }}</uni-td>
<uni-td align="center">{{ item.productAmount }}</uni-td>
</uni-tr>
</uni-table>
</view>
<view style="margin-top: 50px; display: flex; flex-direction: column;">
<text style="size: 25px;font-family: sans-serif;font-weight: 600;padding-bottom: 10px;">烟草库存明细表</text>
<text>商品数量合计:{{logInfo3.countProductNumber}}</text>
<text style="margin-bottom: 10px;">商品货值合计:{{logInfo3.countAmount}}</text>
<uni-table ref="table1" border stripe emptyText="暂无更多数据">
<uni-tr>
<!-- <uni-th align="center">序号</uni-th> -->
<uni-th align="center" width="180">仓库名称</uni-th>
<uni-th align="center" width="80">品种数量</uni-th>
<uni-th align="center" width="100">品种货值</uni-th>
</uni-tr>
<uni-tr v-for="(item, index) in tableData3" :key="index">
<!-- <uni-td align="center">{{ index+1 }}</uni-td> -->
<uni-td align="center">{{ item.storeCodeName }}</uni-td>
<uni-td align="center">{{ item.productCountNumber }}</uni-td>
<uni-td align="center">{{ item.productAmount }}</uni-td>
</uni-tr>
</uni-table>
</view>
</view>
</template>
<script>
export default {
data() {
return {
date: "2023-07-26",
logInfo: {
serialNumber: "",
reportTime: "",
countAmount: "",
},
logInfo2: {
countProductNumber: "",
countAmount: "",
},
logInfo3: {
countProductNumber: "",
countAmount: "",
},
tableData1: [],
tableData2: [],
tableData3: [],
tempFilePath: "",
// fileUrl:"https://desk-fd.zol-img.com.cn/t_s960x600c5/g5/M00/01/0F/ChMkJlbKwtmINC3iAAx4ozyK5jAAALGuAMGw3cADHi7853.jpg"
fileUrl: ""
};
},
onLoad(option) {
// this.date = option.orderDate
// console.log('1111', this.queryParams)
this.getData()
},
onShow() {
wx.hideHomeButton()
},
methods: {
download() {
if (this.fileUrl == '') {
uni.showToast({
title: "下载地址错误,请重新进入页面。",
duration: 5000
})
return
}
uni.downloadFile({
url: this.fileUrl, // 网络文档地址
success: (data) => {
if (data.statusCode === 200) {
uni.saveFile({
tempFilePath: data.tempFilePath, //临时路径
success: function(res) {
// 保存路径
uni.showToast({
title: "文件已保存:" + res.savedFilePath,
duration: 5000
})
setTimeout(() => {
//打开文档查看
uni.openDocument({
filePath: res.savedFilePath,
showMenu: true, //右上角是否有可以转发分享的功能
success: function(res) {
console.log('打开文档成功')
}
})
}, 3000);
}
});
}
},
fail: (err) => {
uni.showToast({
title: '失败请重新下载'
});
},
});
},
getData() {
console.log('getData', this.date)
this.$api.getReportInventoryDayGather(this.date).then((resp) => {
console.log('1111>>>>>>', resp)
this.fileUrl = resp.downloadUrl
this.tableData1 = resp.list
this.logInfo = {
serialNumber: resp.serialNumber,
reportTime: resp.reportTime,
countAmount: resp.countAmount,
}
}).catch(e => {
console.log('eeeee', e)
})
this.$api.getReportInventoryDayStore(this.date).then((resp) => {
console.log('2222>>>>>>', resp)
this.tableData2 = resp.list
this.logInfo2 = {
countProductNumber: resp.countProductNumber,
countAmount: resp.countAmount,
}
}).catch(e => {
console.log('eeeee', e)
})
this.$api.getReportInventoryDayToStore(this.date).then((resp) => {
console.log('3333>>>>>>', resp)
this.tableData3 = resp.list
this.logInfo3 = {
countProductNumber: resp.countProductNumber,
countAmount: resp.countAmount,
}
}).catch(e => {
console.log('eeeee', e)
})
},
}
}
</script>
<style lang="scss">
.title {
width: 100%;
height: 100rpx;
background: white;
display: flex;
align-items: center;
justify-content: space-around;
}
.titleSel {
color: #5f6fee;
font-size: 32rpx;
display: flex;
flex-direction: column;
align-items: center;
}
.headerLineSel {
background: #5f6fee;
height: 6rpx;
width: 220rpx;
margin-top: 10rpx;
}
.headerLineUnsel {
background: #fff;
height: 6rpx;
width: 40rpx;
position: relative;
margin-top: 10rpx;
}
.swiper {
width: 100%;
flex: 1;
height: 100vh;
overflow: scroll;
}
.recordItem {
margin-top: 10rpx;
background-color: white;
padding-bottom: 20rpx;
padding-top: 20rpx;
}
</style>