Merge branch 'master' of https://gitee.com/nny_1/oilSystem
# Conflicts: # fuintAdmin_zt/.env.development # fuintBackend/configure/dev/application.properties # fuintBackend/fuint-application/src/main/resources/application.properties # gasStation-uni/config.js # gasStation-uni/pages/index/index.vue
@ -42,6 +42,7 @@
|
|||||||
"bignumber.js": "^9.1.2",
|
"bignumber.js": "^9.1.2",
|
||||||
"clipboard": "2.0.8",
|
"clipboard": "2.0.8",
|
||||||
"core-js": "3.25.3",
|
"core-js": "3.25.3",
|
||||||
|
"crypto-js": "^4.2.0",
|
||||||
"echarts": "4.9.0",
|
"echarts": "4.9.0",
|
||||||
"element-tiptap": "^1.27.1",
|
"element-tiptap": "^1.27.1",
|
||||||
"element-ui": "2.15.12",
|
"element-ui": "2.15.12",
|
||||||
|
@ -6,18 +6,21 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { getToken, setToken, removeToken } from '@/utils/auth'
|
||||||
|
import CryptoJS from "crypto-js";
|
||||||
export default {
|
export default {
|
||||||
name: 'FuintDoc',
|
name: 'FuintDoc',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// url: 'https://www.fuint.cn/docs/index/'
|
// url: 'https://www.fuint.cn/docs/index/'
|
||||||
url: 'http://192.168.0.181:82/#/homeindex?id=0'
|
url: ''
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
goto() {
|
goto() {
|
||||||
window.open(this.url)
|
console.log( getToken())
|
||||||
|
window.open('http://127.0.0.1:5500/index.html?id='+ getToken())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
mode="vertical"
|
mode="vertical"
|
||||||
style="margin-bottom: 80px;"
|
style="margin-bottom: 80px;"
|
||||||
>
|
>
|
||||||
|
|
||||||
<sidebar-item
|
<sidebar-item
|
||||||
v-for="(route, index) in sidebarRouters"
|
v-for="(route, index) in sidebarRouters"
|
||||||
:key="route.path + index"
|
:key="route.path + index"
|
||||||
|
@ -59,7 +59,7 @@
|
|||||||
</el-input>
|
</el-input>
|
||||||
</div>
|
</div>
|
||||||
<div class="login-code">
|
<div class="login-code">
|
||||||
<img :src="codeUrl" @click="getCode" class="login-code-img"/>
|
<img :src="codeUrl" @click="getCodeimg" class="login-code-img"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -132,22 +132,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- <div class="login-main">-->
|
|
||||||
<!-- <div class="caption">-->
|
|
||||||
<!-- <h4 class="caption-title">{{ systemName }}</h4>-->
|
|
||||||
<!-- <p class="caption-remark">欢迎使用 {{ systemName }},您的卡券、储值卡、计次卡等会员营销小管家!</p>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- <div class="login-form">-->
|
|
||||||
|
|
||||||
<!-- <div class="copy-right">-->
|
|
||||||
<!-- <span>Copyright © 2020-2023 <a class="link" href="https://www.fuint.cn">fuint.cn</a> All Rights Reserved.</span>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- </div>-->
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -15,4 +15,3 @@ VUE_APP_SERVER_URL = 'http://192.168.0.178:8008'
|
|||||||
|
|
||||||
# # cp端地址
|
# # cp端地址
|
||||||
# VUE_PC_SERVER_URL = 'http://192.168.1.6:82/'
|
# VUE_PC_SERVER_URL = 'http://192.168.1.6:82/'
|
||||||
|
|
||||||
|
BIN
fuintAdmin_zt/src/assets/images/backbbj.png
Normal file
After Width: | Height: | Size: 3.0 MiB |
BIN
fuintAdmin_zt/src/assets/images/box-left.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
fuintAdmin_zt/src/assets/images/henggang.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
fuintAdmin_zt/src/assets/images/jiantou.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
fuintAdmin_zt/src/assets/images/jybjj.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
fuintAdmin_zt/src/assets/images/kkx.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
fuintAdmin_zt/src/assets/images/loginback.png
Normal file
After Width: | Height: | Size: 226 KiB |
BIN
fuintAdmin_zt/src/assets/images/mjyx.png
Normal file
After Width: | Height: | Size: 876 KiB |
BIN
fuintAdmin_zt/src/assets/images/tjyl.png
Normal file
After Width: | Height: | Size: 951 KiB |
BIN
fuintAdmin_zt/src/assets/images/xfyl.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
fuintAdmin_zt/src/assets/images/xryl.png
Normal file
After Width: | Height: | Size: 1014 KiB |
BIN
fuintAdmin_zt/src/assets/images/zkyx.png
Normal file
After Width: | Height: | Size: 875 KiB |
@ -11,14 +11,14 @@ $panGreen: #30B08F;
|
|||||||
// 默认菜单主题风格
|
// 默认菜单主题风格
|
||||||
$base-menu-color:#ffffff;// 菜单全部字体颜色
|
$base-menu-color:#ffffff;// 菜单全部字体颜色
|
||||||
$base-menu-color-active:#ffffff;// 父级菜单激活的字体颜色
|
$base-menu-color-active:#ffffff;// 父级菜单激活的字体颜色
|
||||||
$base-menu-background:#1a5982;
|
$base-menu-background:#5a91ff;
|
||||||
$base-logo-title-color: #ffffff;
|
$base-logo-title-color: #ffffff;
|
||||||
|
|
||||||
$base-menu-light-color:#ffffff;
|
$base-menu-light-color:#ffffff;
|
||||||
$base-menu-light-background:#ffffff;
|
$base-menu-light-background:#ffffff;
|
||||||
$base-logo-light-title-color: #1a5982;
|
$base-logo-light-title-color: #1a5982;
|
||||||
|
|
||||||
$base-sub-menu-background:#18547a;//展开的背景色
|
$base-sub-menu-background: #4e77cc;//展开的背景色
|
||||||
$base-sub-menu-hover:#001528;
|
$base-sub-menu-hover:#001528;
|
||||||
|
|
||||||
$base-sidebar-width: 200px;
|
$base-sidebar-width: 200px;
|
||||||
|
@ -108,7 +108,7 @@ export default {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
position: relative;
|
position: relative;
|
||||||
background: #144a6e;
|
background: #144a6e;
|
||||||
background-image: url("../../assets/images/bolang.png") ;
|
background-image: url("../../assets/images/kkx.png") ;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
@ -1,17 +1,25 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="login">
|
<div class="login">
|
||||||
<div class="login-main">
|
<div class="box-center">
|
||||||
<div class="caption">
|
<div class="box-left">
|
||||||
<h4 class="caption-title">{{ systemName }}</h4>
|
<div class="bai-size">蓝鲸智慧加油站-中台</div>
|
||||||
<p class="caption-remark">欢迎使用 {{ systemName }},您的卡券、储值卡、计次卡等会员营销小管家!</p>
|
<div class="bact-box">
|
||||||
|
<div class="sanhh">活动营销</div>
|
||||||
|
<div class="sanhh">节省人力</div>
|
||||||
|
<div class="sanhh">精准定位</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="login-form">
|
<div class="box-right">
|
||||||
<el-form ref="loginForm" :model="loginForm" :rules="loginRules">
|
<div class="box-title">
|
||||||
<div class="title">
|
<div style="margin-right: 15px;cursor: pointer " v-for="(item,index) in dlyzm" :key="index" @click="actindex = item.type " >
|
||||||
<img class="logo" src="@/assets/logo/logo.png"/>
|
<div>{{item.text}}</div>
|
||||||
<span class="name">{{ systemName }}</span>
|
<div class="gangs" v-if="item.type == actindex " ></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" v-if="actindex == 0" >
|
||||||
|
|
||||||
|
|
||||||
<el-form-item prop="username">
|
<el-form-item prop="username">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="loginForm.username"
|
v-model="loginForm.username"
|
||||||
@ -36,18 +44,23 @@
|
|||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="captchaCode" v-if="captchaOnOff">
|
<el-form-item prop="captchaCode" v-if="captchaOnOff">
|
||||||
<el-input
|
<div style="display: flex;align-items: center">
|
||||||
v-model="loginForm.captchaCode"
|
|
||||||
auto-complete="off"
|
<div>
|
||||||
placeholder="请输入验证码"
|
<el-input
|
||||||
style="width: 63%"
|
v-model="loginForm.captchaCode"
|
||||||
clearable
|
auto-complete="off"
|
||||||
@keyup.enter.native="handleLogin"
|
placeholder="请输入验证码"
|
||||||
>
|
style="width: 90%"
|
||||||
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
|
clearable
|
||||||
</el-input>
|
@keyup.enter.native="handleLogin"
|
||||||
<div class="login-code">
|
>
|
||||||
<img :src="codeUrl" @click="getCode" class="login-code-img"/>
|
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
|
||||||
|
</el-input>
|
||||||
|
</div>
|
||||||
|
<div class="login-code">
|
||||||
|
<img :src="codeUrl" @click="getCodeimg" class="login-code-img"/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
|
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
|
||||||
@ -63,27 +76,91 @@
|
|||||||
<span v-else>登 录 中...</span>
|
<span v-else>登 录 中...</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div class="copy-right">
|
<!-- 验证码-->
|
||||||
<span>Copyright © 2020-2023 <a class="link" href="https://www.fuint.cn">fuint.cn</a> All Rights Reserved.</span>
|
|
||||||
</div>
|
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" v-if="actindex == 1" >
|
||||||
|
|
||||||
|
<el-form-item prop="username">
|
||||||
|
<el-input
|
||||||
|
v-model="loginForm.tel"
|
||||||
|
type="number"
|
||||||
|
auto-complete="off"
|
||||||
|
clearable
|
||||||
|
placeholder="手机号"
|
||||||
|
>
|
||||||
|
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item prop="captchaCode" v-if="captchaOnOff">
|
||||||
|
<div style="display: flex;align-items: center">
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<el-input
|
||||||
|
v-model="loginForm.telcode"
|
||||||
|
auto-complete="off"
|
||||||
|
placeholder="请输入验证码"
|
||||||
|
style="width: 90%"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleLogin"
|
||||||
|
>
|
||||||
|
<svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
|
||||||
|
</el-input>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span class="anniulan" v-show="show" @click="getCodet" >获取验证码</span>
|
||||||
|
<span style="cursor: pointer;color: #00aaff " v-show="!show" class="count">{{count}}s后重新获取</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
<el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
|
||||||
|
<el-form-item style="width:100%;">
|
||||||
|
<el-button
|
||||||
|
:loading="loading"
|
||||||
|
size="medium"
|
||||||
|
type="primary"
|
||||||
|
style="width:100%;line-height: 24px;font-size: 16px;"
|
||||||
|
@click.native.prevent="posttelcode()"
|
||||||
|
>
|
||||||
|
<span v-if="!loading">立即登录</span>
|
||||||
|
<span v-else>登 录 中...</span>
|
||||||
|
</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getCodeImg } from "@/api/login";
|
import {getCodeImg, gettelcode, gettellogin,} from "@/api/login";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import { encrypt, decrypt } from '@/utils/jsencrypt'
|
import { encrypt, decrypt } from '@/utils/jsencrypt'
|
||||||
|
import BalanceRecharge from "@/views/member/balanceRecharge.vue";
|
||||||
|
import {setToken} from "@/utils/auth";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Login",
|
name: "Login",
|
||||||
|
components: {BalanceRecharge},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
show: true,
|
||||||
|
count: '',
|
||||||
|
timer: null,
|
||||||
|
dlyzm:[
|
||||||
|
{text:'登录',type:'0'},
|
||||||
|
{text: "验证码",type:'1'}
|
||||||
|
],
|
||||||
|
actindex:0,
|
||||||
codeUrl: "",
|
codeUrl: "",
|
||||||
systemName : process.env.VUE_APP_TITLE,
|
systemName : process.env.VUE_APP_TITLE,
|
||||||
loginForm: {
|
loginForm: {
|
||||||
username: "fuint",
|
tel:null,
|
||||||
|
telcode:null,
|
||||||
|
username: "oil_admin",
|
||||||
password: "123456",
|
password: "123456",
|
||||||
rememberMe: false,
|
rememberMe: false,
|
||||||
captchaCode: "",
|
captchaCode: "",
|
||||||
@ -115,11 +192,44 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getCode();
|
this.getCodeimg();
|
||||||
this.getCookie();
|
this.getCookie();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getCode() {
|
|
||||||
|
getCodet() {
|
||||||
|
|
||||||
|
if(!this.loginForm.tel){
|
||||||
|
this.$message.error("手机号不能为空")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const TIME_COUNT = 60;
|
||||||
|
if (!this.timer) {
|
||||||
|
this.count = TIME_COUNT;
|
||||||
|
this.show = false;
|
||||||
|
this.timer = setInterval(() => {
|
||||||
|
if (this.count > 0 && this.count <= TIME_COUNT) {
|
||||||
|
this.count--;
|
||||||
|
} else {
|
||||||
|
this.show = true;
|
||||||
|
clearInterval(this.timer);
|
||||||
|
this.timer = null;
|
||||||
|
}
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
let data = {
|
||||||
|
mobile:this.loginForm.tel
|
||||||
|
}
|
||||||
|
gettelcode(data).then(res =>{
|
||||||
|
if(res.code == 200){
|
||||||
|
this.$message.success("操作成功")
|
||||||
|
}else{
|
||||||
|
this.$message.error("操作失败请稍后再试")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getCodeimg() {
|
||||||
const app = this
|
const app = this
|
||||||
getCodeImg().then(response => {
|
getCodeImg().then(response => {
|
||||||
app.codeUrl = response.data.captcha
|
app.codeUrl = response.data.captcha
|
||||||
@ -137,30 +247,44 @@ export default {
|
|||||||
uuid: this.loginForm.uuid
|
uuid: this.loginForm.uuid
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
posttelcode(){
|
||||||
|
const data = {
|
||||||
|
mobile:this.loginForm.tel,
|
||||||
|
code:this.loginForm.telcode
|
||||||
|
}
|
||||||
|
this.$store.dispatch("codeLogin", data).then(() => {
|
||||||
|
this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
|
||||||
|
}).catch(() => {
|
||||||
|
this.loading = false;
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
handleLogin() {
|
handleLogin() {
|
||||||
const app = this;
|
const app = this;
|
||||||
if (app.loading) {
|
if (app.loading) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
this.$refs.loginForm.validate(valid => {
|
this.$refs.loginForm.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
app.loading = true;
|
app.loading = true;
|
||||||
if (app.loginForm.rememberMe) {
|
if (app.loginForm.rememberMe) {
|
||||||
Cookies.set("username", this.loginForm.username, { expires: 30 });
|
Cookies.set("username", this.loginForm.username, { expires: 30 });
|
||||||
Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
|
Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });
|
||||||
Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
|
Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });
|
||||||
} else {
|
} else {
|
||||||
Cookies.remove("username");
|
Cookies.remove("username");
|
||||||
Cookies.remove("password");
|
Cookies.remove("password");
|
||||||
Cookies.remove('rememberMe');
|
Cookies.remove('rememberMe');
|
||||||
}
|
}
|
||||||
app.$store.dispatch("Login", this.loginForm).then(() => {
|
app.$store.dispatch("Login", this.loginForm).then(() => {
|
||||||
app.$router.push({ path: this.redirect || "/" }).catch(()=>{});
|
app.$router.push({ path: this.redirect || "/" }).catch(()=>{});
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
app.loading = false;
|
app.loading = false;
|
||||||
if (app.captchaOnOff) {
|
if (app.captchaOnOff) {
|
||||||
app.getCode();
|
app.getCode();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -171,100 +295,188 @@ export default {
|
|||||||
|
|
||||||
<style rel="stylesheet/scss" lang="scss">
|
<style rel="stylesheet/scss" lang="scss">
|
||||||
.login {
|
.login {
|
||||||
height: 100%;
|
height: 100vh;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
background-image: url("../assets/images/backbbj.png");
|
||||||
|
overflow: hidden;
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
.box-center{
|
||||||
|
width: 1000px;
|
||||||
|
height: 580px;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #FFFFFF;
|
||||||
|
box-shadow: 0px 4px 10px 0px rgba(20,61,129,0.1);
|
||||||
|
border-radius: 16px 16px 16px 16px;
|
||||||
|
opacity: 1;
|
||||||
|
margin: 150px auto;
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
}
|
||||||
|
.gangs{
|
||||||
|
width: 100%;
|
||||||
|
height: 5px;
|
||||||
|
background: #00aaff;
|
||||||
|
border-radius: 50px;
|
||||||
|
}
|
||||||
|
.box-left{
|
||||||
|
width: 50%;
|
||||||
|
height: 100%;
|
||||||
|
background: #00aaff;
|
||||||
|
background-image: url("../assets/images/box-left.png");
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
}
|
||||||
|
.box-right{
|
||||||
|
width: 50%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 80px;
|
||||||
|
}
|
||||||
|
.box-title{
|
||||||
|
width: 100%;
|
||||||
|
//text-align: center;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.bai-size{
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 40px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #FFFFFF;
|
||||||
|
margin-top: 65px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.bact-box{
|
||||||
|
width: 85%;
|
||||||
|
margin: 15px auto;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-top: 40px;
|
||||||
|
|
||||||
|
}
|
||||||
|
.sanhh{
|
||||||
|
width: 112px;
|
||||||
|
height: 34px;
|
||||||
|
background: linear-gradient(90deg, #E1EBFF 0%, #FFFFFF 100%);
|
||||||
|
border-radius: 2px 2px 2px 2px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: PingFang SC, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #1755D0;
|
||||||
|
}
|
||||||
|
|
||||||
.login-main {
|
.login-main {
|
||||||
background-image: url("../assets/images/login-bg.png");
|
background-image: url("../assets/images/login-bg.png");
|
||||||
position: fixed;
|
position: fixed;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 500px;
|
right: 500px;
|
||||||
top: 0;
|
top: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
-webkit-transform: translateZ(0);
|
-webkit-transform: translateZ(0);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
.caption {
|
.caption {
|
||||||
.caption-title {
|
.caption-title {
|
||||||
font-size: 30px;
|
font-size: 30px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
line-height: 0px;
|
line-height: 0px;
|
||||||
}
|
|
||||||
.caption-remark {
|
|
||||||
line-height: 0px;
|
|
||||||
}
|
|
||||||
background: rgba(0,0,0,.7);
|
|
||||||
color: #ffffff;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
padding: 30px 50px;
|
|
||||||
font-size: 14px;
|
|
||||||
z-index: 20;
|
|
||||||
font-weight: 300;
|
|
||||||
min-width: 680px;
|
|
||||||
}
|
}
|
||||||
|
.caption-remark {
|
||||||
|
line-height: 0px;
|
||||||
|
}
|
||||||
|
background: rgba(0,0,0,.7);
|
||||||
|
color: #ffffff;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
padding: 30px 50px;
|
||||||
|
font-size: 14px;
|
||||||
|
z-index: 20;
|
||||||
|
font-weight: 300;
|
||||||
|
min-width: 680px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.login-form {
|
.login-form {
|
||||||
width: 500px;
|
width: 500px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
float: right;
|
||||||
|
padding: 80px 60px;
|
||||||
|
background: #FFF;
|
||||||
|
.title {
|
||||||
|
text-align: left;
|
||||||
|
font-size: 24px;
|
||||||
|
color: #707070;
|
||||||
|
padding: 20px 20px 40px 0px;
|
||||||
|
.logo {
|
||||||
|
height: 24px;
|
||||||
|
width: 24px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.login-tip {
|
||||||
|
font-size: 13px;
|
||||||
|
text-align: center;
|
||||||
|
color: #bfbfbf;
|
||||||
|
}
|
||||||
|
.login-code {
|
||||||
|
width: 33%;
|
||||||
|
height: 38px;
|
||||||
float: right;
|
float: right;
|
||||||
padding: 80px 60px;
|
img {
|
||||||
background: #FFF;
|
cursor: pointer;
|
||||||
.title {
|
vertical-align: middle;
|
||||||
text-align: left;
|
|
||||||
font-size: 24px;
|
|
||||||
color: #707070;
|
|
||||||
padding: 20px 20px 40px 0px;
|
|
||||||
.logo {
|
|
||||||
height: 24px;
|
|
||||||
width: 24px;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
.name {
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.login-tip {
|
}
|
||||||
font-size: 13px;
|
.login-code-img {
|
||||||
text-align: center;
|
height: 45px;
|
||||||
color: #bfbfbf;
|
}
|
||||||
}
|
.el-input {
|
||||||
.login-code {
|
height: 45px;
|
||||||
width: 33%;
|
input {
|
||||||
height: 38px;
|
|
||||||
float: right;
|
|
||||||
img {
|
|
||||||
cursor: pointer;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.login-code-img {
|
|
||||||
height: 45px;
|
height: 45px;
|
||||||
}
|
}
|
||||||
.el-input {
|
}
|
||||||
height: 45px;
|
.input-icon {
|
||||||
input {
|
height: 45px;
|
||||||
height: 45px;
|
width: 14px;
|
||||||
}
|
margin-left: 2px;
|
||||||
}
|
}
|
||||||
.input-icon {
|
.copy-right {
|
||||||
height: 45px;
|
color: #888888;
|
||||||
width: 14px;
|
text-align: center;
|
||||||
margin-left: 2px;
|
font-size: 12px;
|
||||||
}
|
.link {
|
||||||
.copy-right {
|
color: #ff5b57;
|
||||||
color: #888888;
|
font-weight: bold;
|
||||||
text-align: center;
|
|
||||||
font-size: 12px;
|
|
||||||
.link {
|
|
||||||
color: #ff5b57;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.anniulan{
|
||||||
|
width: 100px;
|
||||||
|
height: 40px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
//border: 1px solid #00aaff;
|
||||||
|
border-radius: 6px;
|
||||||
|
color: #00aaff;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -123,4 +123,4 @@ weixin.subMessage.pointChange=[{'key':'amount', 'name':'\u53D8\u52A8\u6570\u91CF
|
|||||||
//1
|
//1
|
||||||
rocketmq.name-server=127.0.0.1:9876
|
rocketmq.name-server=127.0.0.1:9876
|
||||||
//2
|
//2
|
||||||
rocketmq.producer.group=provider
|
rocketmq.producer.group=provider
|
||||||
|
@ -1,2 +1,17 @@
|
|||||||
1、 transaction_id存储
|
1、 transaction_id存储
|
||||||
2、
|
2、
|
||||||
|
|
||||||
|
|
||||||
|
20231219
|
||||||
|
1.中台组织架构删除有遮挡
|
||||||
|
2.油站管理 滚动异样
|
||||||
|
3.VueX页面刷新丢失缓存
|
||||||
|
4.编辑油站 》 图片上传
|
||||||
|
5.支付通道查询
|
||||||
|
6.支付通道发布
|
||||||
|
7.注意 进入油站配置链接
|
||||||
|
8.进入油站错误提示
|
||||||
|
9.首页没对齐
|
||||||
|
10.门店二维码 收款二维码
|
||||||
|
11.门店信息保存按钮
|
||||||
|
12.角色组问题
|
@ -218,7 +218,6 @@ public class CardFuelRecordServiceImpl implements CardFuelRecordService {
|
|||||||
map.put("privateKey", merchantConfig.getPrivateKey());
|
map.put("privateKey", merchantConfig.getPrivateKey());
|
||||||
map.put("type", "CFR");
|
map.put("type", "CFR");
|
||||||
map.put("orderId", cardFuelRecordDTO.getId().toString());
|
map.put("orderId", cardFuelRecordDTO.getId().toString());
|
||||||
map.put("storeId", nowAccountInfo.getStoreId().toString());
|
|
||||||
// 调用支付接口
|
// 调用支付接口
|
||||||
try {
|
try {
|
||||||
fyPayService.pay(map);
|
fyPayService.pay(map);
|
||||||
@ -483,12 +482,21 @@ public class CardFuelRecordServiceImpl implements CardFuelRecordService {
|
|||||||
String refuelMoney = userBalance.getRefuelMoney();
|
String refuelMoney = userBalance.getRefuelMoney();
|
||||||
List<JSONObject> jsonObjectList = JSONArray.parseArray(refuelMoney, JSONObject.class);
|
List<JSONObject> jsonObjectList = JSONArray.parseArray(refuelMoney, JSONObject.class);
|
||||||
for (JSONObject jsonObject : jsonObjectList) {
|
for (JSONObject jsonObject : jsonObjectList) {
|
||||||
|
if (cardFuleOrders.getOilType().equals(jsonObject.getString("oilType"))){
|
||||||
|
double refuelMoney1 = jsonObject.getDouble("refuelMoney");
|
||||||
|
refuelMoney1 = (cardFuleOrders.getIncomeLitres() + refuelMoney1);
|
||||||
|
jsonObject.put("refuelMoney", refuelMoney1).toString();
|
||||||
|
|
||||||
|
}else {
|
||||||
|
JSONObject jsonObject1 = new JSONObject();
|
||||||
|
jsonObject1.put("type",cardFuleOrders.getType());
|
||||||
|
jsonObject1.put("oilType",cardFuleOrders.getOilType());
|
||||||
|
jsonObject1.put("incomeLitres",cardFuleOrders.getIncomeLitres());
|
||||||
|
jsonObjectList.add(jsonObject1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//String type = json.getString("type");
|
String userBnlancce = jsonObjectList.toString();
|
||||||
|
userBalance.setRefuelMoney(userBnlancce);
|
||||||
//afterLitres = userBalance.getRefuelMoney() + cardFuleOrders.getIncomeLitres();
|
|
||||||
//userBalance.setCardBalance(afterBalance);
|
|
||||||
}
|
}
|
||||||
userBalanceService.updateUserBalance(userBalance);
|
userBalanceService.updateUserBalance(userBalance);
|
||||||
}else {
|
}else {
|
||||||
|
@ -5,6 +5,7 @@ env.profile=dev
|
|||||||
env.properties.path=D:/code/oilSystem/fuintBackend/configure/
|
env.properties.path=D:/code/oilSystem/fuintBackend/configure/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# \u6570\u636E\u5E93\u914D\u7F6E
|
# \u6570\u636E\u5E93\u914D\u7F6E
|
||||||
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
|
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
|
||||||
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
|
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
|
||||||
@ -71,4 +72,4 @@ rocketmq.consumer.tags=anran-sync-tags,anran-async-tags
|
|||||||
#rocketmq.consumer.consumeThreadMin=20
|
#rocketmq.consumer.consumeThreadMin=20
|
||||||
#rocketmq.consumer.consumeThreadMax=64
|
#rocketmq.consumer.consumeThreadMax=64
|
||||||
##???????????????1?
|
##???????????????1?
|
||||||
#rocketmq.consumer.consumeMessageBatchMaxSize=1
|
#rocketmq.consumer.consumeMessageBatchMaxSize=1
|
||||||
|
@ -67,13 +67,16 @@
|
|||||||
height: 60px;
|
height: 60px;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0px;
|
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #666666;
|
color: #666666;
|
||||||
|
bottom: -30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.barbox {
|
.barbox {
|
||||||
@ -120,4 +123,4 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -4,6 +4,7 @@ module.exports = {
|
|||||||
// baseUrl: 'http://192.168.0.196:8081/',
|
// baseUrl: 'http://192.168.0.196:8081/',
|
||||||
// baseUrl: 'http://192.168.1.4:8080/',
|
// baseUrl: 'http://192.168.1.4:8080/',
|
||||||
baseUrl: 'http://localhost:8008/',
|
baseUrl: 'http://localhost:8008/',
|
||||||
|
|
||||||
// baseUrl: 'http://192.168.1.5:8002/cdJdc',
|
// baseUrl: 'http://192.168.1.5:8002/cdJdc',
|
||||||
|
|
||||||
imagesUrl: 'http://www.nuoyunr.com/lananRsc',
|
imagesUrl: 'http://www.nuoyunr.com/lananRsc',
|
||||||
|
@ -185,7 +185,9 @@
|
|||||||
if (query.q) {
|
if (query.q) {
|
||||||
let str = q.split("?")[1];
|
let str = q.split("?")[1];
|
||||||
let arr = str.split("&");
|
let arr = str.split("&");
|
||||||
|
|
||||||
let storeId = "12";
|
let storeId = "12";
|
||||||
|
|
||||||
let staffId = "";
|
let staffId = "";
|
||||||
arr.forEach(item => {
|
arr.forEach(item => {
|
||||||
if (item.includes("storeId")) {
|
if (item.includes("storeId")) {
|
||||||
@ -233,7 +235,6 @@
|
|||||||
url: 'business/indexBanner/list/' + uni.getStorageSync("storeId"),
|
url: 'business/indexBanner/list/' + uni.getStorageSync("storeId"),
|
||||||
method: 'get',
|
method: 'get',
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
console.log(res)
|
|
||||||
this.list1 = res.data
|
this.list1 = res.data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -201,11 +201,17 @@
|
|||||||
},
|
},
|
||||||
onLoad(option) {
|
onLoad(option) {
|
||||||
this.title = option.name
|
this.title = option.name
|
||||||
|
console.log(option.name);
|
||||||
this.getData(option.name);
|
this.getData(option.name);
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
goTopup() {
|
goTopup() {
|
||||||
|
// pagesMy/invite/invite
|
||||||
|
if (this.title == '推荐有礼活动') {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pagesMy/invite/invite'
|
||||||
|
})
|
||||||
|
}
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pagesHome/oilRecharge/oilRecharge'
|
url: '/pagesHome/oilRecharge/oilRecharge'
|
||||||
})
|
})
|
||||||
|
@ -43,8 +43,8 @@
|
|||||||
<!-- 底部 -->
|
<!-- 底部 -->
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
<view class="bottom-box" @click="addValueCarRecords()">
|
<view class="bottom-box">
|
||||||
<view class="anniu">
|
<view class="anniu" @click="addValueCarRecords()">
|
||||||
<text>立即充值</text>
|
<text>立即充值</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="dibu" @click="goRechargeRecords()">
|
<view class="dibu" @click="goRechargeRecords()">
|
||||||
@ -124,7 +124,7 @@
|
|||||||
<view class="anniu" @click="exchangeGift()">
|
<view class="anniu" @click="exchangeGift()">
|
||||||
<text>立即兑换</text>
|
<text>立即兑换</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="dibu" @click="goRechargeRecords()">
|
<view class="dibu" @click="golpk()">
|
||||||
<view class="">兑换记录</view>
|
<view class="">兑换记录</view>
|
||||||
<uni-icons type="right" color="#1678ff" size="14"></uni-icons>
|
<uni-icons type="right" color="#1678ff" size="14"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
@ -393,6 +393,12 @@
|
|||||||
console.log("columns", this.columns);
|
console.log("columns", this.columns);
|
||||||
|
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
golpk() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pagesHome/RechargeRecords/RechargeRecords'
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -115,7 +115,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import config from '@/config'
|
import config from '@/config'
|
||||||
import request from '../../utils/request'
|
import request from '../../utils/request'
|
||||||
import BigNumber from 'bignumber.js';
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
||||||
|
@ -29,7 +29,8 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="r-naniu">
|
<view class="r-naniu">
|
||||||
<u-icon name="share-fill" color="#E9312F" size="18"></u-icon>
|
<u-icon name="share-fill" color="#E9312F" size="18"></u-icon>
|
||||||
<text>分享给好友</text>
|
|
||||||
|
<button class="qiangzhi" open-type="share"><text>分享给好友</text></button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@ -79,12 +80,25 @@
|
|||||||
|
|
||||||
components: {
|
components: {
|
||||||
|
|
||||||
|
},
|
||||||
|
onShareAppMessage() {
|
||||||
|
return {
|
||||||
|
title: '来个油惠',
|
||||||
|
|
||||||
|
success() {
|
||||||
|
console.log('分享成功');
|
||||||
|
},
|
||||||
|
fail(err) {
|
||||||
|
console.error('分享失败', err);
|
||||||
|
}
|
||||||
|
};
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
this.getAllAmount();
|
this.getAllAmount();
|
||||||
this.getActiveRecommendRecords();
|
this.getActiveRecommendRecords();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
getAllAmount() {
|
getAllAmount() {
|
||||||
request({
|
request({
|
||||||
url: 'business/marketingActivity/activeRecommendRecords/selectAllAmount',
|
url: 'business/marketingActivity/activeRecommendRecords/selectAllAmount',
|
||||||
@ -312,4 +326,10 @@
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #999999;
|
color: #999999;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.qiangzhi {
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
box-shadow: 0px
|
||||||
|
}
|
||||||
</style>
|
</style>
|