Browse Source

Merge remote-tracking branch 'origin/master'

master
wangpengfei 2 years ago
parent
commit
56121c9188
  1. BIN
      yxt-portal-ui/src/assets/loginImg/001.jpg
  2. BIN
      yxt-portal-ui/src/assets/loginImg/002.jpg
  3. BIN
      yxt-portal-ui/src/assets/loginImg/003.jpg
  4. 249
      yxt-portal-ui/src/views/login/login.vue
  5. 1
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/api/Zhj/inquireStatistics/index.js
  6. 45
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/api/Zhj/parameterSet/index.js
  7. 2
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/views/inquireStatistics/index.vue
  8. 172
      yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/views/parameterSet/footSet.vue

BIN
yxt-portal-ui/src/assets/loginImg/001.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
yxt-portal-ui/src/assets/loginImg/002.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

BIN
yxt-portal-ui/src/assets/loginImg/003.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

249
yxt-portal-ui/src/views/login/login.vue

@ -1,33 +1,49 @@
<template>
<div class="login">
<div class="logoTitle">
<img src="../../assets/loginImg/logo.png"><span>汇融银行</span>
<p class="title">供应链贷后监管平台</p>
<span>汇融云眼</span>
<p class="title">贷后监管系统</p>
</div>
<div class="images">
<img class="one" src="../../assets/loginImg/001.jpg" alt="" />
<img class="two" src="../../assets/loginImg/002.jpg" alt="" />
<img class="three" src="../../assets/loginImg/003.jpg" alt="" />
</div>
<div class="main">
<div class="content">
<el-form ref="loginForm" :model="loginForm" class="login-form">
<h3 class="title1">用户登录</h3>
<h3 class="title1">管理后台</h3>
<el-form-item>
<el-input v-model="loginForm.userName" autocomplete="off" placeholder="请输入账号" prefix-icon="el-icon-user" />
<el-input
v-model="loginForm.userName"
autocomplete="off"
placeholder="请输入账号"
prefix-icon="el-icon-user"
/>
</el-form-item>
<el-form-item>
<el-input v-model="loginForm.password" autocomplete="off" placeholder="请输入密码" prefix-icon="el-icon-lock" show-password />
<span class="nopsw register" @click="handleforgetPwd">忘记密码 </span>
<el-input
v-model="loginForm.password"
autocomplete="off"
placeholder="请输入密码"
prefix-icon="el-icon-lock"
show-password
/>
<span class="nopsw register" @click="handleforgetPwd"
>忘记密码 </span
>
</el-form-item>
<el-form-item v-show="showMsg" style="margin-bottom:0;">
<el-form-item v-show="showMsg" style="margin-bottom: 0">
<span class="text-danger">提示用户名或密码错误请重试</span>
</el-form-item>
<el-form-item>
<el-popover
placement="top"
width="400"
trigger="click"
<el-button
v-loading="loading"
type="primary"
class="login-btn"
@click="login"
> </el-button
>
<!-- <imgCodeRole @login="login" ref="imgCodeRole"></imgCodeRole>-->
<!-- <el-button slot="reference" type="primary" class="login-btn" v-loading="loading"> </el-button>-->
<el-button slot="reference" v-loading="loading" type="primary" class="login-btn" @click="login"> </el-button>
</el-popover>
<!--<router-link :to="{name: 'registUser'}" target="_blank" tag="a" class="register fl">个人注册</router-link>
<router-link :to="{name: 'registOrg'}" target="_blank" tag="a" class="register fr">单位注册</router-link>-->
</el-form-item>
@ -35,7 +51,11 @@
</div>
</div>
<el-dialog title="忘记密码" :visible.sync="forgetPwd" :close-on-click-modal="false">
<el-dialog
title="忘记密码"
:visible.sync="forgetPwd"
:close-on-click-modal="false"
>
<el-form :model="nopassword">
<el-form-item label="手机号">
<el-input v-model="nopassword.userPhone" autocomplete="off" />
@ -49,39 +69,35 @@
<el-button type="primary" @click="reGetPwd()"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
login,
imgCode
} from '@/api/user.js'
import user from '@/api/User/login.js'
import { setToken, getToken, setSession } from '@/utils/auth'
import imgCodeRole from '@/components/imgCodeRole/index.vue'
import { login, imgCode } from "@/api/user.js";
import user from "@/api/User/login.js";
import { setToken, getToken, setSession } from "@/utils/auth";
import imgCodeRole from "@/components/imgCodeRole/index.vue";
export default {
components: { imgCodeRole },
data() {
return {
loginForm: {
userName: '',
password: '',
verifyCode: '',
uuid: ''
userName: "",
password: "",
verifyCode: "",
uuid: "",
},
imgCode: '',
imgCode: "",
loading: false,
loginCode: false,
showMsg: false,
forgetPwd: false,
nopassword: {
userPhone: '',
userName: ''
}
}
userPhone: "",
userName: "",
},
};
},
mounted() {
// window.loginIt = this.loginIt;
@ -91,54 +107,69 @@ export default {
// alert(data);
// },
login(data) {
this.loading = true
this.loginForm.verifyCode = data.verifyCode
this.loginForm.uuid = data.uuid
this.$store.dispatch('user/login', this.loginForm).then((res) => {
this.loading = true;
this.loginForm.verifyCode = data.verifyCode;
this.loginForm.uuid = data.uuid;
this.$store
.dispatch("user/login", this.loginForm)
.then((res) => {
// this.$store.dispatch('user/getInfo')
this.$router.push({ path: '/home' })
this.loading = false
}).catch(e => {
console.log('11111', e)
this.loading = false
// this.$refs.imgCodeRole.getCodeImage()
this.$router.push({ path: "/home" });
this.loading = false;
})
.catch((e) => {
console.log("11111", e);
this.loading = false;
// this.$refs.imgCodeRole.getCodeImage()
});
},
codeShow() {
if (this.loginForm.password == '' || this.loginForm.userName == '') {
this.loginCode = false
this.showMsg = true
return
if (this.loginForm.password == "" || this.loginForm.userName == "") {
this.loginCode = false;
this.showMsg = true;
return;
}
this.$refs.imgCodeRole.getCodeImage()
this.$refs.imgCodeRole.getCodeImage();
},
handleforgetPwd() {
this.forgetPwd = true
this.forgetPwd = true;
this.nopassword = {
userPhone: '',
userName: ''
}
userPhone: "",
userName: "",
};
},
reGetPwd() {
if (this.nopassword.userPhone === '') {
this.$message({ showClose: true, type: 'error', message: '手机号不能为空' })
return
if (this.nopassword.userPhone === "") {
this.$message({
showClose: true,
type: "error",
message: "手机号不能为空",
});
return;
}
if (this.nopassword.userName === '') {
this.$message({ showClose: true, type: 'error', message: '姓名不能为空' })
return
if (this.nopassword.userName === "") {
this.$message({
showClose: true,
type: "error",
message: "姓名不能为空",
});
return;
}
user.reGetPwd(this.nopassword).then((res) => {
if (res.success) {
this.$message({ showClose: true, type: 'success', message: '新密码已发送至手机,请查看短信' })
this.forgetPwd = false
this.$message({
showClose: true,
type: "success",
message: "新密码已发送至手机,请查看短信",
});
this.forgetPwd = false;
} else {
this.$message({ showClose: true, type: 'error', message: res.msg })
}
})
}
}
this.$message({ showClose: true, type: "error", message: res.msg });
}
});
},
},
};
</script>
<style lang="scss">
@ -150,40 +181,58 @@ export default {
background-image: url(../../assets/loginImg/bgImg.png);
background-position: center;
overflow: hidden;
.logoTitle {
margin: 30px;
img {
padding-top: 25px;
width: 70px;
height: 60px;
.images {
position: relative;
margin-top: 290px;
margin-left: 70px;
.one {
width: 210px;
position: absolute;
}
.two {
width: 104px;
position: absolute;
top: 41px;
}
.three {
width: 280px;
position: absolute;
left: 104px;
top: 41px;
}
}
.logoTitle {
position: absolute;
top: 200px;
left: 70px;
span {
float: left;
font-size: 36px;
color: #FFFFFF;
color: #ffffff;
}
.title {
float: left;
font-size: 25px;
font-family: Source Han Sans CN;
font-weight: 500;
color: #FFFFFF;
margin: 0;
margin-left: 60px;
color: #ffffff;
margin-top: 8px;
}
}
.main {
width: 30%;
/*height: 640px;*/
background: #FFFFFF;
width: 32%;
height: 340px;
background: #ffffff;
box-shadow: 0px 13px 12px 0px rgba(0, 0, 0, 0.15);
opacity: 0.9;
border-radius: 20px;
position: absolute;
right: 10%;
right: 7%;
top: 200px;
.content {
position: relative;
/*.title-h3{
@ -202,21 +251,26 @@ export default {
.login-form {
padding: 30px 50px;
background-color: #bbd4e0;
height: 360px;
border-radius: 15px;
.title1 {
margin: 0px auto 30px auto;
text-align: center;
font-size: 20px;
color: #191919;
font-size: 23px;
font-weight: 500;
}
.el-input {
border: none;
background-color: transparent;
// border-color: transparent;
background-color: #ffffff;
height: 40px;
border-radius: 5px;
}
.el-input__icon{
font-size: 20px;
color:#1b64f7
}
.code {
position: absolute;
top: 3px;
@ -226,18 +280,17 @@ export default {
cursor: pointer;
z-index: 9;
}
.nopsw {
position: absolute;
bottom: -30px;
right: 5px;
color: #018ad2;
left: 250px;
top: 50px;
color: #000;
font-size: 15px;
line-height: 30px;
}
.register {
color: #018ad2;
color: #000;
}
.register:hover,
@ -250,14 +303,16 @@ export default {
}
.text-danger {
color: #F56C6C;
color: #f56c6c;
}
.login-btn {
margin: 10px 0 10px 0;
width: 100%;
background-color: #007fff;
border: 0;
margin-left: 30px;
width: 85%;
background-color: #0a59f7;
border-radius: 10px;
font-size: 20px;
}
.login-btn:hover {
@ -276,7 +331,7 @@ export default {
}
.el-loading-mask {
background-color: rgba(255, 255, 255, .6);
background-color: rgba(255, 255, 255, 0.6);
}
}
</style>

1
yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/api/Zhj/inquireStatistics/index.js

@ -1,5 +1,4 @@
import request from '@/utils/request'
import qs from 'qs'
// 查询
export function listPage(data) {
return request({

45
yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/api/Zhj/parameterSet/index.js

@ -0,0 +1,45 @@
import request from '@/utils/request'
// 查询
export function selectConfBrandProportion(data) {
return request({
url: '/dbCenter/proportion/selectConfBrandProportion',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 添加占比
export function save(data) {
return request({
url: '/dbCenter/proportion/save ',
data: data,
method: 'post',
headers: {
'Content-Type': 'application/json'
}
})
}
// 修改占比
export function alterBrandProportion(data) {
return request({
url: 'dbCenter/proportion/alterBrandProportion ',
data: data,
method: 'post',
headers: {
'Content-Type': 'application/json'
}
})
}
// 删除占比
export function deleteConfBrandProportion(data) {
return request({
url: `/dbCenter/proportion/deleteConfBrandProportion/${data.id}`,
data: data,
method: 'post',
headers: {
'Content-Type': 'application/json'
}
})
}

2
yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/views/inquireStatistics/index.vue

@ -409,12 +409,14 @@ export default {
}else if(this.ruleForm.data.salesAmount || this.ruleForm.data.purchase || this.ruleForm.data.salesDishes){
this.captrue=false
handCrawl(this.ruleForm).then((res)=>{
if(res.code==200){
this.$message({
message: '抓取成功',
type: 'success'
});
this.resetForm()
this.getPageList();
}
})
}else{
this.$message({

172
yxt-supervise-dbcenter/yxt-supervise-dbcenter-ui/src/views/parameterSet/footSet.vue

@ -1,23 +1,25 @@
<template>
<div class="app-container">
<div class="listconadd" style="padding: 20px;">
<el-table v-loading="tableLoading" :default-sort = "{prop: 'date', order: 'descending'}" :data="tableData" border style="width: 100%" >
<el-table :data="tableData" border style="width: 100%" >
<el-table-column label="序号" width="55px" type="index" align="center"></el-table-column>
<el-table-column prop="enpName" label="厂家" align="center">
</el-table-column>
<el-table-column prop="name" label="品牌" align="center" >
</el-table-column>
<el-table-column prop="enpName" label="厂家" align="center">
</el-table-column>
<el-table-column fixed="right" width="200px" label="明细信息" align="center">
<el-table-column prop="confBrandProportionList" label="占比详情" align="center">
<template slot-scope="scope">
<el-button
type="primary"
size="mini"
@click="purchase(scope.row)"
>
修改
查看详情
</el-button>
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button
type="primary"
size="mini"
@ -29,6 +31,34 @@
</el-table-column>
</el-table>
</div>
<!-- 查看占比 -->
<el-dialog
:title="dialogTitle + '食品占比'"
:visible.sync="entey"
width="40%"
>
<el-table :data="foodList" border style="width: 100%" >
<el-table-column label="序号" width="55px" type="index" align="center"></el-table-column>
<el-table-column prop="brandName" label="品牌名称" align="center" >
</el-table-column>
<el-table-column prop="typeName" label="占比名称" align="center" >
</el-table-column>
<el-table-column prop="proportion" label="占比百分比" align="center" >
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button
type="primary"
size="mini"
@click="modify(scope.row)"
>
修改
</el-button>
<el-button type="danger" size="mini" @click="modfood(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
<!-- 添加食品占比 -->
<el-dialog
:title="dialogTitle + '食品占比'"
@ -69,18 +99,62 @@
<el-button type="primary" @click="save()">添加</el-button>
</div>
</el-dialog>
<!-- 修改食品占比 -->
<el-dialog
:title="dialogTitle + '食品占比'"
:visible.sync="modifyFood"
width="40%"
>
<table class="e-table" cellspacing="0">
<tr>
<td>品牌名称</td>
<td>
<el-input
v-model="makeUp.brandName"
style="width: 300px"
disabled
></el-input>
</td>
</tr>
<tr>
<td>占比名称</td>
<td>
<el-input
v-model="makeUp.typeName"
style="width: 300px"
></el-input>
</td>
</tr>
<tr>
<td>占比百分比</td>
<td>
<el-input
v-model="makeUp.proportion"
style="width: 300px"
></el-input>
</td>
</tr>
</table>
<div style="margin-top: 20px; text-align: center">
<el-button type="primary" @click="modifys()">修改</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {selectBrandList,save} from '@/api/Zhj/inquireStatistics/index.js'
import {selectConfBrandProportion,save,alterBrandProportion,deleteConfBrandProportion} from '@/api/Zhj/parameterSet/index.js'
export default {
data() {
return {
tableLoading: false,
dialogTitle: "",
tableData: [],
foodList: [],
editDialog:false,
modifyFood:false,
entey:false,
makeUp:{
brandSid:'',
brandName:'',
@ -98,45 +172,87 @@ export default {
};
},
mounted() {
selectBrandList().then((res)=>{
this.ListName = res.data
this.tableData=res.data
})
},
created() {
this.getPageList()
this.getPagelist()
},
methods: {
resetSearch() {
//
this.queryParams = {
total: 0, //
current: 1, //
size: 10, //
params: {
StoreName: "",
this.makeUp = {
brandSid:'',
brandName:'',
fromTime: "",
endTime: "",
},
typeName:'',
proportion:'',
};
this.getPageList();
},
getPageList() {
getPagelist(){
selectConfBrandProportion().then((res)=>{
this.ListName = res.data
this.tableData=res.data
})
},
save(){
if(this.makeUp.proportion>100 || this.makeUp.proportion<0){
this.$message({
message: '输入的占比不符合规则',
type: 'warning'
});
}else{
save(this.makeUp).then((res)=>{
this.editDialog = false;
this.$message({
message: res.msg,
type: "success",
});
this.resetSearch()
this.getPagelist()
})
}
},
modifys(){
alterBrandProportion(this.makeUp).then((res)=>{
this.modifyFood = false;
this.$message({
message: res.msg,
type: "success",
});
this.resetSearch()
this.getPagelist()
})
},
addList(row){
this.dialogTitle = "销售";
this.resetSearch()
this.dialogTitle = "添加";
this.editDialog = true;
console.log(row);
this.makeUp.brandName = row.name
this.makeUp.brandSid = row.sid
},
purchase(row){
this.dialogTitle = "查看";
this.entey = true;
this.foodList=row.confBrandProportionList
},
modify(row){
this.dialogTitle = "修改";
this.entey = false;
this.modifyFood = true;
this.makeUp = Object.assign({}, row);
},
modfood(row){
this.$confirm("确定要删除该占比吗, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
deleteConfBrandProportion({ id: row.id }).then((res) => {
this.entey = false;
this.getPagelist()
this.$message({
type: 'success',
message: '删除成功!'
})
})
})
},
resetForm() {
this.ruleForm= {
time: '',

Loading…
Cancel
Save