This commit is contained in:
xvv 2024-09-17 17:43:44 +08:00
parent c2f8720cbb
commit 66db7bf32b
8 changed files with 257 additions and 290 deletions

View File

@ -11,7 +11,7 @@ VUE_APP_BASE_API = '/dev-api'
VUE_APP_PUBLIC_PATH = '/'
# 后端接口地址
VUE_APP_SERVER_URL = 'http://127.0.0.1:8081/'
VUE_APP_SERVER_URL = 'http://192.168.31.178:8080/'
# http://192.168.0.121:8080/

View File

@ -1,232 +1,82 @@
<template>
<div class="app-container">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>积分设置</span>
<div class="app-conr">
<div class="tab-box">
<div class="f-box" v-for="(item,index) in tablist" :key="index" @click="activeindex=index" :class="{ 'active' :activeindex==index}">{{item.name}}</div>
</div>
<div>
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="加油返积分" name="first">
<div>
<el-form :model="dataForm" ref="dataForm" :rules="rules" size="small" :inline="true" label-width="100px">
<el-row>
<el-form-item label="积分规则" prop="refuelPointsRules" >
<el-radio-group v-model="dataForm.refuelPointsRules">
<el-radio :label='0'>默认规则</el-radio>
<el-radio :label='1'>积分活动规则</el-radio>
</el-radio-group>
<span style="display: block; width: 800px; color: rgb(128, 128, 128);font-size: 10px;">
默认规则:使用当前页面简版设置,适用于对积分规则要求不高的油站积分活动规则:积分获取按照积分活动(活动营销-积分活动)进行处理,积分活动功能可实现指定日期指定油品指定周指定等级等使用不同积分规则</span>
</el-form-item>
</el-row>
<template v-if="dataForm.refuelPointsRules == 1">
<span style="color: red;border-left: 40px;padding-left: 100px;">请前往活动营销-积分活动页面创建积分规则</span>
</template>
<template v-if="dataForm.refuelPointsRules == 0">
<el-row>
<el-form-item label="积分功能" prop="refuelPointsFunction" >
<el-radio-group v-model="dataForm.refuelPointsFunction">
<el-radio :label='0'>启用</el-radio>
<el-radio :label='1'>禁用</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="场景类型" prop="refuelSceneType" >
<el-radio-group v-model="dataForm.refuelSceneType">
<el-radio :label='0'>按金额</el-radio>
<el-radio :label='1'>实付金额</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<div class="cor">
<div class="bai-box" v-if="activeindex == 0">
<template v-if="dataForm.refuelSceneType == 0">
<el-row>
<el-form-item label="金额类型" prop="refuelAmountType" >
<el-radio-group v-model="dataForm.refuelAmountType">
<el-radio :label='0'>订单金额</el-radio>
<el-radio :label='1'>实付金额</el-radio>
</el-radio-group>
<span style="display: block; width: 800px; color: rgb(128, 128, 128);font-size: 10px;">
计算积分的金额类型 </span>
</el-form-item>
</el-row>
<el-row v-if="dataForm.refuelAmountType == 1">
<el-form-item label="储值参与" prop="refuelValueParticipation" >
<el-radio-group v-model="dataForm.refuelValueParticipation">
<el-radio :label='0'>储值金额不参与</el-radio>
<el-radio :label='1'>储值金额参与</el-radio>
</el-radio-group>
<span style="display: block; width: 800px; color: rgb(128, 128, 128);font-size: 10px;">
按照实付金额计算积分,实付金额是否包含储值卡付款金额部分 如参与 则实付金额 = 储值金额+其它实际付款金额
</span>
</el-form-item>
</el-row>
</template>
<div class="qizhi">
<div class="left-icon">i</div>
<div>
<div class="bigsize">每日积分签到</div>
<div class="smallsize">签到规则为连续签到如中途漏签一天将重置从第一天开始</div>
</div>
</div>
<el-form :model="dataForm" ref="dataForm" :rules="rules" size="small" :inline="true" label-width="100px">
<el-row :gutter="24">
<el-col :span="15">
<el-form-item label="签到功能" prop="signInFunction" >
<el-radio-group v-model="dataForm.signInFunction">
<el-radio :label='0'>启用</el-radio>
<el-radio :label='1'>禁用</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="15">
<el-form-item label="适用规则" prop="" >
<el-radio-group v-model="dataForm.u">
<el-radio :label='0'>不限制</el-radio>
<el-radio :label='1'>按签到周期</el-radio>
</el-radio-group>
</el-form-item>
<el-select v-model="value" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-col>
</el-row>
<div style="width: 100%; ">
<el-row>
<el-form-item label="场景规则" prop="refuelSceneRules" >
<el-radio-group v-model="dataForm.refuelSceneRules" @click="abc($event)">
<el-radio :label='0'>通用规则</el-radio>
<el-radio :label='1'>油品区分</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-form-item style="width: 24%" v-for="item,index in dataForm.pointsObtained" :key="index" :prop="'pointsObtained' + index" :label="item.day">
<el-input v-model.number="item.integral" placeholder="">
<template slot="append">积分</template>
</el-input>
</el-form-item>
</div>
<el-form-item label="签到规则" prop="signInRules" >
<el-input :rows="3" style="width: 1600px;" type="textarea" v-model="dataForm.signInRules"></el-input>
</el-form-item>
<template v-if="dataForm.refuelSceneRules == 0">
<el-row>
<el-form-item label="消费金额" prop="refuelFuelAmount" label-width="90px">
<el-input style="width: 500px;" v-model="dataForm.refuelFuelAmount" placeholder="">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="积多少分" prop="refuelPoints" label-width="90px">
<el-input style="width: 500px;" v-model.number="dataForm.refuelPoints" placeholder="">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-row>
</template>
<template v-if="dataForm.refuelSceneRules == 1">
<div class="conten-bottom">
<div v-for="(item, index) in dataForm.refuelConsumptionAmount" class="cardbox">
<div style="height:40px; ">
<span>{{ item.oilName }}</span>
</div>
<div style=" width: 99%;height: 99%;">
<el-form-item label="消费金额" prop="amount" label-width="90px">
<el-input style="width: 200px;" v-model="item.amount" placeholder="">
<!-- {{ item.amount }} -->
<template slot="append"></template>
</el-input>
</el-form-item>
<el-form-item label="积多少分" prop="points" label-width="90px">
<el-input style="width: 200px;" v-model.number="item.integral" placeholder="">
<!-- {{ parseInt(item.integral) }} -->
<template slot="append">积分</template>
</el-input>
</el-form-item>
</div>
</div>
</div>
</template>
</el-form>
<div style="width: 1600px; margin-top: 150px; display: flex;justify-content: center ">
<el-button type="primary" @click="submit" >保存</el-button>
</div>
</div>
<div class="bai-box" v-else>
<el-form :model="dataForm" ref="dataForm" :rules="rules" size="small" :inline="true" label-width="100px">
<el-form-item label="积分说明" prop="desc">
<el-input type="textarea" v-model="dataForm.pointsRules" style="width: 1600px"></el-input>
</el-form-item>
</template>
</el-form>
</div>
</el-tab-pane>
<!-- <el-tab-pane label="充值积分" name="second">
<div>
<el-alert
title="充值赠送积分详细规则请在充值活动对应规则内配置"
type="warning"
show-icon>
</el-alert>
<el-form :model="dataForm" ref="dataForm" :rules="rules" size="small" :inline="true" label-width="100px">
<el-row>
<el-form-item label="充值赠送" prop="rechargeGive" >
<el-radio-group v-model="dataForm.rechargeGive">
<el-radio :label='0'>启用</el-radio>
<el-radio :label='1'>禁用</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
</el-form>
</div>
</el-tab-pane> -->
<el-tab-pane label="邀请用户" name="third">
<div>
<el-alert
title="邀请用户为推荐有礼活动赠送积分规则、邀请新人后将获得的积分"
type="info"
show-icon>
</el-alert>
<el-form :model="dataForm" ref="dataForm" :rules="rules" size="small" :inline="true" label-width="100px">
<el-row>
<el-form-item label="邀请赠送" prop="inviteGive" >
<el-radio-group v-model="dataForm.inviteGive">
<el-radio :label='0'>启用</el-radio>
<el-radio :label='1'>禁用</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="充值赠送" prop="rechargeGive" >
<el-input v-model.number="dataForm.rechargeGive" placeholder="">
<template slot="prepend">每邀请一人赠送</template>
<template slot="append">积分</template>
</el-input>
</el-form-item>
</el-row>
</el-form>
</div>
</el-tab-pane>
<el-tab-pane label="每日签到" name="fourth">
<div>
<el-alert
title="每日积分签到"
type="info"
description="签到规则为连续签到、如中途漏签一天将重置从第一天开始"
show-icon>
</el-alert>
<el-form :model="dataForm" ref="dataForm" :rules="rules" size="small" :inline="true" label-width="100px">
<div style="width: 100%; margin-top: 20px;">
<el-form-item style="width: 24%" v-for="item, index in dataForm.pointsObtained" :key="index" :prop="'pointsObtained' + index" :label="item.day">
<el-input v-model.number="item.integral" placeholder="">
<template slot="append">积分</template>
</el-input>
</el-form-item>
</div>
<el-row :gutter="24">
<el-col :span="23">
<el-form-item label="签到规则" prop="signInRules" >
<el-input style="width: 900px;" :rows="3" type="textarea" v-model="dataForm.signInRules"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="15">
<el-form-item label="签到功能" prop="signInFunction" >
<el-radio-group v-model="dataForm.signInFunction">
<el-radio :label='0'>启用</el-radio>
<el-radio :label='1'>禁用</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</el-tab-pane>
<el-tab-pane label="积分规则" name="five">
<div>
<el-form :model="dataForm" ref="dataForm" :rules="rules" size="small" :inline="true" label-width="100px">
<!-- <el-row> -->
<span style="margin-bottom: 20px;">积分说明</span>
<editor style="margin-top: 20px;" @input="handleChildValue" :value.default="dataForm.pointsRules" :height.default="500"></editor>
<!-- </el-row> -->
</el-form>
</div>
</el-tab-pane>
</el-tabs>
<div style="float: right;margin-top: 20px; margin-bottom: 20px;">
<el-button type="primary" @click="submit"
v-hasPermi="['integral:settings:index']"
> </el-button>
</el-form>
<div style="width: 1600px; margin-top: 150px; display: flex;justify-content: center ">
<el-button type="primary" @click="submit" >保存</el-button>
</div>
</div>
</el-card>
</div>
</div>
</template>
@ -251,12 +101,23 @@ export default {
}
};
return {
tablist: [
{
name: '每日签到',
},
{
name: '积分规则',
},
],
activeindex: 0,
activeName: 'first',
rules:{
desc: [
{ required: true, message: '不能为空', trigger: 'blur' }
],
refuelPointsRules:[
{ required: true, message: '请选择积分规则', trigger: 'change' }
],
@ -367,7 +228,23 @@ export default {
pointsRules: ''
},
options: [{
value: '选项1',
label: '黄金糕'
}, {
value: '选项2',
label: '双皮奶'
}, {
value: '选项3',
label: '蚵仔煎'
}, {
value: '选项4',
label: '龙须面'
}, {
value: '选项5',
label: '北京烤鸭'
}],
value: ''
}
@ -454,4 +331,77 @@ export default {
background-color: #f9f9f9;
border: 1px solid rgb(196, 196, 196)
}
.tab-box {
width: 100%;
background: #fff;
display: flex;
box-sizing: border-box;
padding: 0px 50px;
}
.f-box {
height: 40px;
color: #999999;
margin-right: 50px;
display: flex;
align-items: center;
}
.active {
color: #FF9655 !important;
border-bottom: 2px solid #FF9655 !important;
}
.container {
background: #F4F5F9;
box-sizing: border-box;
//padding: 20px;
}
.tabder-box {
width: 85%;
}
.cor{
box-sizing: border-box;
padding: 15px;
background: #f9f9f9;
}
.bai-box{
border-radius: 10px;
background: #fff;
box-sizing: border-box;
padding: 10px;
height: 85vh;
}
.qizhi{
width: 100%;
border-radius: 8px;
padding: 20px;
color: #FF9655;
font-size: 16px;
background: rgba(255,150,85,0.15);
align-items: center;
display: flex;
margin-bottom: 30px;
}
.left-icon{
width: 45px;
height: 45px;
border-radius: 50%;
background: #FF9655;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 40px;
font-weight: bold;
margin-right: 25px;
}
.bigsize{
font-size: 24px;
margin-bottom: 15px;
}
</style>

View File

@ -14,7 +14,7 @@ VUE_APP_PUBLIC_PATH = '/'
VUE_APP_SERVER_URL = 'http://127.0.0.1:8081/'
VUE_APP_SERVER_URL = 'http://192.168.31.178:8080/'
# cp端地址

View File

@ -48,7 +48,7 @@
<!-- </el-card>-->
<!-- &lt;!&ndash; 列表信息&ndash;&gt;-->
<!-- <el-card style="margin-top: 20px" >-->
<div style="height: 65vh;overflow: auto">
<div >
<el-table :data="tableData" style="width: 100%" border>
<el-table-column align="center" type="index" label="序号"></el-table-column>
@ -95,7 +95,7 @@
</div>
<el-dialog :title="title" :close-on-click-modal="false" :visible.sync="open" width="50%" append-to-body>
<el-dialog :title="title" :close-on-click-modal="false" :visible.sync="open" width="300px" append-to-body>
<el-form :model="form" label-width="120px">
<!-- 通知名称 -->
<el-form-item label="通知名称" :required="true">

View File

@ -51,7 +51,7 @@
<!-- &lt;!&ndash; &ndash;&gt;-->
<!-- &lt;!&ndash; 列表信息&ndash;&gt;-->
<!-- <el-card style="margin-top: 20px" >-->
<div style="height: 65vh;overflow: auto">
<div >
<el-table :data="tableData" style="width: 100%" border>
<el-table-column align="center" type="index" label="序号"></el-table-column>
<el-table-column align="center" prop="notificationName" label="通知名称"></el-table-column>

View File

@ -90,8 +90,8 @@
{
"path": "QRcode/QRcode",
"style": {
"navigationBarTitleText": "二维码",
"navigationStyle": "custom"
"navigationBarTitleText": "储值卡付款码"
}
},
{
@ -153,7 +153,7 @@
{
"path": "Pointsdetail/Pointsdetail",
"style": {
"navigationBarTitleText": "积分规则",
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
},
@ -355,4 +355,4 @@
"backgroundColor": "#F8F8F8"
},
"uniIdRouter": {}
}
}

View File

@ -3,7 +3,7 @@
<view class="card_" @click="goDetails()">
<view class="top_card">
<view class="">储值卡</view>
<view class="">
<view class="" @click="goCode()">
<image src="../../static/new/rwm.png" style="width: 25px; height: 25px; "></image>
</view>
</view>
@ -20,7 +20,8 @@
<view class="card_1">
<view class="top_card">
<view class="">囤油卡</view>
<view class="">
<view style="display: flex;">
<view style="margin-right: 5px;">汽油92# 7.28/L</view>
<image src="../../static/new/rwm.png" style="width: 25px; height: 25px; "></image>
</view>
</view>
@ -82,6 +83,11 @@
this.getUserBalance()
},
methods: {
goCode() {
uni.navigateTo({
url: '/pagesHome/QRcode/QRcode'
})
},
gocard(id) {
uni.navigateTo({
url: '/pagesHome/oilRecharge/oilRecharge?id=' + id
@ -352,4 +358,4 @@
text-align: right;
}
</style>
</style>

View File

@ -1,17 +1,19 @@
<template>
<view class="content">
<view class="container">
<view class="my-header">
<!-- <view class="my-header">
<view class="my-icons" @click="goback"> <uni-icons type="left" color="#ffffff" size="16"></uni-icons>
</view>
<view class="my-text">二维码</view>
<view class="my-icons"></view>
</view>
</view> -->
<!-- 顶部区域 -->
<view class="title_">付款码</view>
<view class="size_">结账时请出示</view>
<view class="cen-box">
<view class="box-top">
<!-- <view class="box-top">
请出示此码给加油员
</view>
</view> -->
<view class="code-top">
<w-barcode :options="option"></w-barcode>
</view>
@ -24,40 +26,20 @@
<w-qrcode :options="options"></w-qrcode>
</view>
<view class="dis-size">
<u-icon name="reload" @click="refresh" color="#2979ff" size="18"></u-icon>
<u-icon name="reload" @click="refresh" color="#E02020" size="18"></u-icon>
<!-- <u-count-down :timestamp="timestamp"></u-count-down> -->
<text style="margin-left: 10px;">
{{timestamp}}秒后自动刷新
{{timestamp}}刷新请勿截屏以免影响正常使用
</text>
</view>
<view class="bottom-box">
<view style="display: flex;align-items: center;">
<uni-icons type="wallet-filled" color="#2979ff" size="30"></uni-icons>
<view style="margin-left: 10px;">
<view class="">优先使用囤油卡付款</view>
<view style="font-size: 14px; color: #666666;">若囤油卡升数不足以进行支付则会与储值卡组合付款</view>
<!-- <view style="font-size: 14px; color: #666666;">根据账户自动识别的付款方式</view> -->
</view>
</view>
<!-- <view class="">
<u-icon name="arrow-right"></u-icon>
</view> -->
</view>
<!-- <view class="bottom-box" @click="bottomShow()">
<view style="display: flex;align-items: center;">
<uni-icons type="wallet-filled" color="#2979ff" size="30"></uni-icons>
<view style="margin-left: 10px;">
<view class="">{{value}}</view>
<view style="font-size: 14px; color: #666666;">优先使用此付款方式</view>
<view style="font-size: 14px; color: #666666;">根据账户自动识别的付款方式</view>
</view>
</view>
<view class="">
<u-icon name="arrow-right"></u-icon>
<view class="h_siz">储值卡</view>
<view class="">余额42222.00</view>
</view>
</view> -->
<view class="">充值</view>
</view>
</view>
<view class="v-bottom-box">
@ -71,7 +53,8 @@
<view class="title">请选择用户类型</view>
<view class="hui-size">如果付款失败尝试使用其他方式完成付款</view>
</view>
<view class="bottom-box" v-for="(item,index) in deduction" :key="index" @click="choosePayMethod(item.value)">
<view class="bottom-box" v-for="(item,index) in deduction" :key="index"
@click="choosePayMethod(item.value)">
<view style="display: flex;align-items: center;">
<uni-icons type="wallet-filled" color="#2979ff" size="30"></uni-icons>
<view style="margin-left: 10px;">
@ -119,14 +102,19 @@
code: 'https://qm.qq.com/cgi-bin/qm/qr?k=LKqML292dD2WvwQfAJXBUmvgbiB_TZWF&noverify=0', //
size: 460, // 460460rpx
},
deduction:[
{key:"balance",value:"储值卡扣款"},
{key:"oilStorageCard",value:"囤油卡扣款"},
deduction: [{
key: "balance",
value: "储值卡扣款"
},
{
key: "oilStorageCard",
value: "囤油卡扣款"
},
],
value:"储值卡扣款",
barCode:"",
isLook:false,
timer:{},
value: "储值卡扣款",
barCode: "",
isLook: false,
timer: {},
}
},
onLoad() {
@ -139,52 +127,54 @@
},
methods: {
//
lookNumber(){
if (this.isLook){
this.barCode = this.option.code.slice(0,4) + " **** **** " + this.option.code.slice(this.option.code.length-5,this.option.code.length-1)
lookNumber() {
if (this.isLook) {
this.barCode = this.option.code.slice(0, 4) + " **** **** " + this.option.code.slice(this.option.code
.length - 5, this.option.code.length - 1)
this.isLook = false
}else{
} else {
this.barCode = this.option.code.replace(/(.{4})/g, '$1 ')
this.isLook = true
}
},
//
countdown(){
countdown() {
let _this = this
_this.timer = setInterval(() => {
// countdown1
_this.timestamp--;
// 0
if(_this.timestamp === 0) {
// countdown1
_this.timestamp--;
// 0
if (_this.timestamp === 0) {
_this.getBarCode()
_this.getQrCode()
_this.timestamp = 60
}
}
}, 1000);
},
//
refresh(){
refresh() {
this.getBarCode()
this.getQrCode()
this.timestamp = 60
},
//
choosePayMethod(val){
choosePayMethod(val) {
this.value = val
this.show = false
},
//
getBarCode(){
getBarCode() {
request({
url: 'business/qrCode/createBarCode',
method: 'get',
}).then(res => {
this.option.code = res.data
this.barCode = res.data.slice(0,4) + " **** **** " + res.data.slice(res.data.length-5,res.data.length-1)
this.barCode = res.data.slice(0, 4) + " **** **** " + res.data.slice(res.data.length - 5, res
.data.length - 1)
})
},
//
getQrCode(){
getQrCode() {
request({
url: 'business/qrCode/createQrCode',
method: 'get',
@ -220,14 +210,14 @@
width: 100%;
height: 100vh;
box-sizing: border-box;
padding-top: 88px;
background-color: #1678ff;
// padding-top: 88px;
background-color: #ff9655;
}
.my-header {
width: 100%;
height: 88px;
background: #1678ff;
background: #ff9655;
display: flex;
align-items: center;
justify-content: space-between;
@ -344,4 +334,25 @@
color: #666666;
font-size: 14px;
}
.title_ {
font-size: 16px;
color: #fff;
text-align: center;
}
.size_ {
font-size: 14px;
color: #FFFFFF;
text-align: center;
}
.h_siz {
color: #666666;
}
.x_sz {
font-size: 14px;
color: #333333;
}
</style>