Commit 9ed13435 authored by 杨硕's avatar 杨硕

添加小票记录

parent aa7013a1
<template>
<view class="aboutMy">
<!-- 注册隐私保护协议 -->
<view class="registration" @click="toDetail">
<view class="registration" @click="toDetail(0)">
<view class="icon">
<image :src="img" style="width: 20px; height: 20px;" :mode="mode"></image>
</view>
......@@ -11,7 +11,7 @@
</view>
</view>
<!-- 会员服务协议 -->
<view class="registration" @click="toDetail">
<view class="registration" @click="toDetail(1)">
<view class="icon">
<image :src="img" style="width: 20px; height: 20px;" :mode="mode"></image>
</view>
......@@ -21,7 +21,7 @@
</view>
</view>
<!-- 简介 -->
<view class="registration" @click="toDetail">
<view class="registration" @click="toDetail(2)">
<view class="icon">
<image :src="img" style="width: 20px; height: 20px;" :mode="mode"></image>
</view>
......@@ -38,13 +38,56 @@
data(){
return{
mode: 'aspectFill',
img: 'http://192.144.239.97:20043/file/banner/20230605/6F749760FE1148369C4081EBD3248C6C.jpeg'
img: 'http://192.144.239.97:20043/file/banner/20230605/6F749760FE1148369C4081EBD3248C6C.jpeg',
pdfList: []
}
},
onShow() {
this.getPdf()
},
methods:{
toDetail(){
uni.navigateTo({
url:'/moreFunction/about/agreementDetail/index'
toDetail(index){
const baseUrl = 'https://qf.91isoft.com/cshopFile/upload/'
// uni.navigateTo({
// url:'/moreFunction/about/agreementDetail/index'
// })
const pdfUrl = baseUrl + this.pdfList[index].name
console.log("pdf地址",pdfUrl)
// pdf预览
if (pdfUrl) {
uni.showLoading({
title: '文件下载中',
mask: true
})
uni.downloadFile({
url: pdfUrl,
success(res) {
if (res.statusCode === 200) {
var filePath = res.tempFilePath
uni.openDocument({
filePath: filePath,
success:function(res){
console.log('成功打开文档')
}
})
}
uni.hideLoading()
},
fail: function() {
console.log('打开失败');
uni.hideLoading()
}
})
} else {
console.log('暂无模板');
// this.url = null
}
},
// 获取pdf链接
getPdf(){
const dictName = 'pdf'
this.$u.get('/moblie/dict/getDicts/'+ dictName).then(res=>{
this.pdfList = res
})
}
}
......
<template>
<view class="complaint">
<view class="complaint-form">
<u-form labelWidth="160" :model="form" ref="uForm" class="complaint-form" :rules="rules">
<u-form labelWidth="160" :model="form" ref="uForm" :rules="rules">
<u-form-item label="投诉标题" prop="title" borderBottom required="true" labelWidth="160"
labelPosition="top">
<u-input placeholder="请输入投诉标题" :maxlength="30" v-model="form.title" border="none"></u-input>
......@@ -15,6 +15,10 @@
labelPosition="top">
<u-input placeholder="请输入投诉内容" :maxlength="30" v-model="form.details" border="none"></u-input>
</u-form-item>
<u-form-item label="联系人" prop="contact" borderBottom required="true" labelWidth="160"
labelPosition="top">
<u-input placeholder="请输入联系人" :maxlength="11" v-model="form.contact" border="none"></u-input>
</u-form-item>
<u-form-item label="联系方式" prop="phone" borderBottom required="true" labelWidth="160"
labelPosition="top">
<u-input placeholder="请输入联系方式" :maxlength="11" v-model="form.phone" border="none"></u-input>
......@@ -111,11 +115,12 @@
tenantId: this.tenantId,
title: this.form.title,
details: this.form.details,
phone: this.form.phone
phone: this.form.phone,
contact: this.form.contact
}).then(res => {
console.log('res',res)
uni.showToast({
title: '投诉建议成功',
title: '提交成功',
icon: 'success'
})
uni.navigateTo({
......
......@@ -21,15 +21,18 @@
<view class="title">积分明细</view>
<!-- 列表 -->
<view class="list">
<view class="list-item" @click="toDetail">
<view class="left">
<view class="title1">新注册的会员赠200积分</view>
<view class="title2">天津复悦里 新会员福利</view>
<view class="title2">2023-07-05 09:29:54</view>
</view>
<view class="right">
<view class="integral">+200</view>
</view>
<view class="list-item" @click="toDetail" v-for="item in integralList">
<view class="left">
<view class="title1">{{item.remarks}}</view>
<view class="title2">{{businessMessage.name}} {{item.styleName}}</view>
<view class="title2">{{item.createTime}}</view>
</view>
<view class="right">
<view class="integral">
<span v-if="item.type === 0">+{{item.integral}}</span>
<span v-if="item.type === 1">-{{item.integral}}</span>
</view>
</view>
</view>
</view>
</view>
......@@ -37,22 +40,71 @@
</template>
<script>
export default{
data(){
return{
export default {
data() {
return {
// 总积分
total: '200'
total: 0,
businessMessage: {},
query: {
page: 1,
limit: 20
},
integralList: []
}
},
methods:{
toDetail(){
onShow() {
this.getMessage()
},
methods: {
//获取商圈信息
getMessage() {
const that = this
uni.getStorage({
key: 'business',
success: function(res) {
// that.ishaveBusiness = true
that.businessMessage = res.data
console.log("商圈数据", that.businessMessage)
}
})
this.$nextTick(() => {
this.init()
}, 1000)
},
init() {
this.getIntegralList()
this.getIntegralNum()
},
getIntegralNum() {
this.$u.get('/user/tenantUser/mobile/get?tenantId=' + this.businessMessage.id).then(res => {
console.log("积分总数", res)
if (res) {
this.total = res.integral
} else {
this.total = 0
}
})
},
getIntegralList() {
this.$u.get('/user/tenantUser/mobile/userIntegralList?tenantId=' + this.businessMessage.id + '&page=' +
this.query.page + '&limit=' + this.query.limit).then(res => {
console.log("积分列表", res)
if (res) {
this.integralList = res.records
}
})
},
toDetail() {
uni.navigateTo({
url:'/my/myIntegral/detail/index'
url: '/my/myIntegral/detail/index'
})
},
toRecord(){
toRecord() {
uni.navigateTo({
url:'/my/myIntegral/receiptRecord/index'
url: '/my/myIntegral/receiptRecord/index'
})
}
}
......@@ -60,72 +112,83 @@
</script>
<style lang="scss" scoped>
.myIntegral{
.myIntegral {
background-color: #eeeeee;
min-height: 100vh;
.main{
.main {
display: flex;
margin-left: 4%;
width: 92%;
width: 92%;
height: 14vh;
background-color: #fff;
border-radius: 12px;
.left{
margin-top: 30rpx;
margin-left: 30rpx;
.title{
margin-bottom: 18rpx;
font-weight: 700;
}
.number{
font-size: 44rpx;
font-weight: 700;
}
.left {
margin-top: 30rpx;
margin-left: 30rpx;
.title {
margin-bottom: 18rpx;
font-weight: 700;
}
.number {
font-size: 44rpx;
font-weight: 700;
}
}
.right{
.right {
display: flex;
margin-top: 30rpx;
position: absolute;
right: 58rpx;
}
}
.boby{
.boby {
margin-top: 30rpx;
.title{
.title {
margin-left: 30rpx;
margin-bottom: 30rpx;
}
.list{
.list-item{
display: flex;
margin-left: 4%;
width: 92%;
height: 14vh;
background-color: #fff;
border-radius: 12px;
.left{
.title1{
font-weight: 700;
font-size: 32rpx;
margin-top: 30rpx;
margin-left: 30rpx;
.list {
.list-item {
display: flex;
margin-left: 4%;
width: 92%;
height: 14vh;
background-color: #fff;
border-radius: 12px;
margin-bottom: 40rpx;
.left {
.title1 {
font-weight: 700;
font-size: 32rpx;
margin-top: 30rpx;
margin-left: 30rpx;
}
.title2 {
margin-left: 30rpx;
}
}
.title2{
margin-left: 30rpx;
.right {
.integral {
position: absolute;
right: 59rpx;
color: red;
display: flex;
height: 12%;
align-items: center;
font-size: 33rpx;
}
}
}
.right{
.integral{
position: absolute;
right: 59rpx;
color: red;
display: flex;
height: 12%;
align-items: center;
font-size: 33rpx;
}
}
}
}
}
}
}
......
<template>
<view class="myTicket">
<view class="element">
<img src="http://192.144.239.97:20043/file/banner/20230605/6F749760FE1148369C4081EBD3248C6C.jpeg" >
<view class="element" v-if="noteList.length === 0">
<img src="http://192.144.239.97:20043/file/banner/20230605/6F749760FE1148369C4081EBD3248C6C.jpeg">
<view class="text">上传消费小票即可获得积分哦</view>
<view class="button">立即上传小票</view>
<view class="button" @click="gotopage">立即上传小票</view>
</view>
<view v-else class="noteList" v-for="item in noteList">
<view class="note-left">
<view style="font-size: 28rpx;">{{businessMessage.name}}</view>
<view style="font-size: 26rpx;color: #666;">{{item.shop.name}}</view>
<view style="font-size: 22rpx;color: #999;">{{item.createTime}}</view>
</view>
<view class="note-right">
<view style="text-align: right;" v-if="item.status === 0">待审核</view>
<view style="text-align: right;" v-if="item.status === 1">已通过</view>
<view style="text-align: right;" v-if="item.status === 2">已拒绝</view>
<view style="font-size: 22rpx;color: #999;" v-if="item.status === 1">小票审核通过</view>
<view style="font-size: 22rpx;color: #999;" v-if="item.status === 2">小票审核拒绝</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
noteList: [],
businessMessage: {}
}
},
onLoad() {
this.getMessage()
},
methods: {
//获取商圈信息
getMessage() {
const that = this
uni.getStorage({
key: 'business',
success: function(res) {
// that.ishaveBusiness = true
that.businessMessage = res.data
console.log("商圈数据", that.businessMessage)
}
})
this.$nextTick(() => {
this.getNote()
}, 1000)
},
// 获取小票列表
getNote() {
this.$u.get('/user/receipt/mobile/list?tenantId=' + this.businessMessage.id).then(res => {
console.log("小票列表", res)
// if (res) {
// this.total = res.integral
// } else {
// this.total = 0
// }
this.noteList = res.records
})
},
// 跳转页面
gotopage() {
uni.navigateTo({
url: '/homePage/filmReceipt/index'
})
}
}
}
</script>
<style lang="scss" scoped>
.myTicket{
.myTicket {
min-height: 100vh;
background-color: #eeeeee;
display: flex;
align-items: center;
justify-content: center;
.element{
display: flex;
flex-direction: column;
align-items: center;
margin-top: 20px;
margin-left: 20px;
margin-right: 20px;
.text{
font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
color: #333333;
font-size: 15px;
margin:5px 5px 5px 5px;
text-align: center;
}
.button{
width: 130px;
height: 35px;
background-color: white;
border: 2px solid #bd0000;
color: #bd0000;
font-weight: bold;
border-radius: 60rpx;
display: flex;
align-items: center;
justify-content: center;
}
padding-top: 34rpx;
// display: flex;
// align-items: center;
// justify-content: center;
.element {
height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
// margin-top: 20px;
// margin-left: 20px;
// margin-right: 20px;
.text {
font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
color: #333333;
font-size: 15px;
margin: 5px 5px 5px 5px;
text-align: center;
}
.button {
width: 130px;
height: 35px;
background-color: white;
border: 2px solid #bd0000;
color: #bd0000;
font-weight: bold;
border-radius: 60rpx;
display: flex;
align-items: center;
justify-content: center;
}
}
.noteList{
margin: 0 34rpx 34rpx 34rpx;
display: flex;
justify-content: space-between;
align-items: center;
background-color: #fff;
border-radius: 12px;
padding: 34rpx 26rpx;
}
}
</style>
\ No newline at end of file
{
"name": "邻家小铺",
"name": "商圈plus",
"version": "1.0.0",
"description": "<p align=\"center\">\r <img alt=\"logo\" src=\"https://uviewui.com/common/logo.png\" width=\"120\" height=\"120\" style=\"margin-bottom: 10px;\">\r </p>\r <h3 align=\"center\" style=\"margin: 30px 0 30px;font-weight: bold;font-size:40px;\">uView</h3>\r <h3 align=\"center\">多平台快速开发的UI框架</h3>",
"main": "main.js",
......
......@@ -47,15 +47,33 @@
arr: [],
scrollRightTop: 0, // 右边栏目scroll-view的滚动条高度
timer: null, // 定时器
baseApi: this.baseApi,
businessMessage:{} // 商圈数据
}
},
onLoad() {
this.init()
this.getMessage()
// this.init()
},
methods: {
getMessage(){
const that = this
uni.getStorage({
key:'business',
success:function(res){
// that.ishaveBusiness = true
that.businessMessage = res.data
console.log("商圈数据",that.businessMessage)
}
})
this.$nextTick(()=>{
this.init()
},1000)
},
init() {
this.$u.get('category/list').then(res => {
this.$u.get('category/list?tenantId='+this.businessMessage.id).then(res => {
this.tabbar = res
this.getMenuItemTop()
})
......
......@@ -34,6 +34,7 @@
idCategory: undefined
},
total: 0,
businessMessage: {},
status: 'loadmore',
loadText: {
loadmore: '轻轻上拉',
......@@ -44,13 +45,29 @@
},
onLoad(option) {
this.idCategory = option.idCategory
this.init()
this.getMessage()
// this.init()
},
onReachBottom() {
this.listQuery.page = this.listQuery.page + 1
this.getGoods(this.idCategory)
},
methods: {
getMessage(){
const that = this
uni.getStorage({
key:'business',
success:function(res){
// that.ishaveBusiness = true
that.businessMessage = res.data
console.log("商圈数据",that.businessMessage)
}
})
this.$nextTick(()=>{
this.init()
},1000)
},
init() {
this.getGoods(this.idCategory)
},
......@@ -66,7 +83,7 @@
const page = this.listQuery.page
const limit = this.listQuery.limit
const baseApi = this.baseApi;
this.$u.get('goods/queryGoods?page=' + page + '&limit=' + limit + '&idCategory=' + idCategory).then(res => {
this.$u.get('goods/queryGoods?page=' + page + '&limit=' + limit + '&idCategory=' + idCategory+'&tenantId='+this.businessMessage.id).then(res => {
let list = res.records
this.total = res.total
if (list.length < limit) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment