This commit is contained in:
zhaohengkun 2024-10-16 16:17:42 +08:00
commit 7b926e3713
18 changed files with 829 additions and 442 deletions

View File

@ -2,7 +2,7 @@
<div class="home-index">
<el-carousel height="230px">
<el-carousel-item v-for="(item,index) in bannerList" :key="index">
<div class="bannser">-
<div class="bannser">
<img :src="imagePath+item.productImage" alt="">
</div>
</el-carousel-item>
@ -48,14 +48,11 @@
<div class="left-box-t">
<div class="d-s">
<div class="h-tt" style="margin-right: 15px">数据看板</div>
<el-dropdown placement="bottom-start" @command="editColor">
<div class="h-anniu" :class="{'q-anniu' : dataTimeShow == false}" @click="dataTimeShow = false ">近一周 <i
<el-dropdown placement="bottom-start " @command="sjkbStoreAmount">
<div class="h-anniu" :class="{'q-anniu' : dataTimeShow == false}" @click="dataTimeShow = false ">{{sjkbTitle}} <i
class="el-icon-arrow-down el-icon--right"></i></div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="今日" index="4">今日</el-dropdown-item>
<el-dropdown-item command="昨日" index="4">昨日</el-dropdown-item>
<el-dropdown-item command="近一周" index="4">近一周</el-dropdown-item>
<el-dropdown-item command="近一月" index="4">近一月</el-dropdown-item>
<el-dropdown-menu slot="dropdown" >
<el-dropdown-item v-for="(item,index) in amountList" :key="index" :command="item">{{item}} </el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<div class="h-anniu" :class="{'q-anniu' : dataTimeShow == true}" @click="dataTimeShow = true"> 自定义
@ -145,13 +142,15 @@
<div class="left-box-t">
<div class="d-s" style="margin-bottom: 10px">
<div class="h-tt" style="margin-right: 15px">油品交易分析</div>
<el-dropdown placement="bottom-start" @command="editColor">
<div class="h-anniu" :class="{'q-anniu' : showTimeShow == false}" @click="showTimeShow = false ">近一周 <i
<el-dropdown placement="bottom-start" @command="editShow">
<div class="h-anniu" :class="{'q-anniu' : showTimeShow == false}" @click="showTimeShow = false ">{{ypjyTitle}} <i
class="el-icon-arrow-down el-icon--right"></i></div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="近一周" index="2">近一周</el-dropdown-item>
<el-dropdown-item command="近一月" index="2">近一月</el-dropdown-item>
<el-dropdown-item command="近一年" index="2">近一年</el-dropdown-item>
<!-- <el-dropdown-item command="近一周" index="2">近一周</el-dropdown-item>-->
<!-- <el-dropdown-item command="近一月" index="2">本月</el-dropdown-item>-->
<!-- <el-dropdown-item command="近一年" index="2">本季度</el-dropdown-item>-->
<!-- <el-dropdown-item command="近一年" index="2">本年</el-dropdown-item>-->
<el-dropdown-item v-for="(item,index) in amountList" :key="index" :command="item">{{item}} </el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<div class="h-anniu" :class="{'q-anniu' : showTimeShow == true}" @click="showTimeShow = true"> 自定义
@ -174,12 +173,10 @@
<div class="right-box-t">
<div style="font-size: 16px;font-weight: bold"><span style="margin-right: 15px">员工排行</span>
<el-dropdown placement="bottom-start" @command="editColor">
<div class="h-anniu" :class="{'q-anniu' : timeShow == false}" @click="timeShow = false ">近一周 <i
<div class="h-anniu" :class="{'q-anniu' : timeShow == false}" @click="timeShow = false ">{{ygphTitle}} <i
class="el-icon-arrow-down el-icon--right"></i></div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="近一周" index="3">近一周</el-dropdown-item>
<el-dropdown-item command="近一月" index="3">近一月</el-dropdown-item>
<el-dropdown-item command="近一年" index="3">近一年</el-dropdown-item>
<el-dropdown-item v-for="(item,index) in amountList" :key="index" :command="item">{{item}} </el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
@ -217,13 +214,16 @@
<div class="bottom_">
<div class="d-s">
<div class="h-tt" style="margin-right: 15px">数据统计</div>
<el-dropdown placement="bottom-start" @command="editColor">
<div class="h-anniu" :class="{'q-anniu' : countTimeShow == false}" @click="countTimeShow = false ">近一周 <i
<el-dropdown placement="bottom-start" @command="editCount">
<div class="h-anniu" :class="{'q-anniu' : countTimeShow == false}" @click="countTimeShow = false ">{{sjtjTitle}} <i
class="el-icon-arrow-down el-icon--right"></i></div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="近一周" index="1">近一周</el-dropdown-item>
<el-dropdown-item command="近一月" index="1">近一月</el-dropdown-item>
<el-dropdown-item command="近一年" index="1">近一年</el-dropdown-item>
<!-- <el-dropdown-item command="近一周" index="1">近一周</el-dropdown-item>-->
<!-- <el-dropdown-item command="近一月" index="1">本月</el-dropdown-item>-->
<!-- <el-dropdown-item command="近一年" index="1">本季度</el-dropdown-item>-->
<!-- <el-dropdown-item command="近一年" index="1">本年</el-dropdown-item>-->
<el-dropdown-item v-for="(item,index) in amountList" :key="index" :command="item">{{item}} </el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<div class="h-anniu" :class="{'q-anniu' : countTimeShow == true}" @click="countTimeShow = true"> 自定义
@ -265,6 +265,19 @@ export default {
props: ["accountId"],
data() {
return {
amountList:[
// "" ,
// "" ,
"近一周" ,
"本月" ,
"本季度" ,
"本年"
],
sjkbTitle: "近一周",
ypjyTitle: "近一周",
ygphTitle: "近一周",
sjtjTitle: "近一周",
xShow: false,
timeShow: false,
dataTimeShow : false,
@ -335,7 +348,7 @@ export default {
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.value2 = [start, new Date()];
this.value2 = [parseTime(oneWeekAgo), parseTime(nowDate)]
this.getStoreList()
this.getHardwareList()
this.getNoticeList()
@ -351,84 +364,227 @@ export default {
},
methods: {
goList() {
this.$router.push('/notificationList/index')
},
editColor(command,index){
// console.log("command",command)
// console.log("index",index.$attrs.index)
index = index.$attrs.index
// this.timeIndex = command
this.disabled = true
sjkbStoreAmount(e){
console.log(e)
this.sjkbTitle = e
let command = e
if (command=='今日'){
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
if (index == "1"){
this.countValue = [start,new Date()]
}else if (index == "2") {
this.showValue = [start,new Date()]
}else if (index == "3") {
this.value2 = [start,new Date()]
}else if (index == "4") {
this.value1 = [start,new Date()];
}
this.value1 = [parseTime(new Date()),parseTime(new Date())]
}else if (command=='昨日'){
let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getTime() - 1 * 24 * 60 * 60 * 1000)
this.value1 = [parseTime(oneWeekAgo),parseTime(oneWeekAgo)]
} else if (command=='近一周'){
let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000)
if (index == "1"){
this.countValue = [parseTime(oneWeekAgo),parseTime(nowDate)]
}else if (index == "2") {
this.showValue = [parseTime(oneWeekAgo),parseTime(nowDate)]
}else if (index == "3") {
this.value2 = [parseTime(oneWeekAgo),parseTime(nowDate)]
}else if (index == "4") {
this.value1 = [parseTime(oneWeekAgo),parseTime(nowDate)]
}
} else if (command=='近一月'){
let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getTime() - 30 * 24 * 60 * 60 * 1000)
if (index == "1"){
this.countValue = [parseTime(oneWeekAgo),parseTime(nowDate)]
}else if (index == "2") {
this.showValue = [parseTime(oneWeekAgo),parseTime(nowDate)]
}else if (index == "3") {
this.value2 = [parseTime(oneWeekAgo),parseTime(nowDate)]
}else if (index == "4") {
this.value1 = [parseTime(oneWeekAgo),parseTime(nowDate)]
}
} else if (command=='近一年'){
let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getFullYear() - 1, nowDate.getMonth(), nowDate.getDate())
this.value1 = [parseTime(oneWeekAgo),parseTime(nowDate)]
if (index == "1"){
this.countValue = [parseTime(oneWeekAgo),parseTime(nowDate)]
}else if (index == "2") {
this.showValue = [parseTime(oneWeekAgo),parseTime(nowDate)]
}else if (index == "3") {
this.value2 = [parseTime(oneWeekAgo),parseTime(nowDate)]
}else if (index == "4") {
this.value1 = [parseTime(oneWeekAgo),parseTime(nowDate)]
}
} else if (command=='本月'){
const [startTime, endTime] = this.getMonthStartAndToday();
this.value1 = [parseTime(startTime),parseTime(endTime)]
}else if (command=='本季度'){
const [startTime, endTime] = this.getQuarterStartAndEnd();
this.value1 = [parseTime(startTime), parseTime(endTime)];
} else if (command=='本年'){
const [startTime, endTime] = this.getYearStartAndEnd();
this.value1 = [parseTime(startTime),parseTime(endTime)]
}else if (command=='自定义'){
this.disabled = false
}
if (index == "1") {
this.getDataCount()
}else if (index == "2") {
this.getDataShow()
}else if (index == "3") {
this.getStoreList()
}else if (index == "4") {
this.getStoreAmount()
this.getStoreAmount()
},
goList() {
this.$router.push('/notificationList/index')
},
editShow(e){
this.disabled = true
console.log(e)
this.ypjyTitle = e
let command = e
if (command=='今日'){
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.showValue = [parseTime(new Date()),parseTime(new Date())]
}else if (command=='昨日'){
let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getTime() - 1 * 24 * 60 * 60 * 1000)
this.showValue = [parseTime(oneWeekAgo),parseTime(oneWeekAgo)]
} else if (command=='近一周'){
let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000)
this.showValue = [parseTime(oneWeekAgo),parseTime(nowDate)]
} else if (command=='本月'){
let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getTime() - 30 * 24 * 60 * 60 * 1000)
const [startTime, endTime] = this.getMonthStartAndToday();
this.showValue = [parseTime(startTime),parseTime(endTime)]
}else if (command=='本季度'){
const [startTime, endTime] = this.getQuarterStartAndEnd();
this.showValue = [parseTime(startTime), parseTime(endTime)];
} else if (command=='本年'){
const [startTime, endTime] = this.getYearStartAndEnd();
this.showValue = [parseTime(startTime),parseTime(endTime)]
}else if (command=='自定义'){
this.disabled = false
}
this.getDataShow()
},
editCount(e){
this.disabled = true
this.sjtjTitle = e
console.log("e",e)
let command = e
if (command=='今日'){
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
// this.countValue = [start,new Date()]
this.countValue = [parseTime(new Date()),parseTime(new Date())]
}else if (command=='昨日'){
let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getTime() - 1 * 24 * 60 * 60 * 1000)
this.countValue = [parseTime(oneWeekAgo),parseTime(oneWeekAgo)]
} else if (command=='近一周'){
let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000)
this.countValue = [parseTime(oneWeekAgo),parseTime(nowDate)]
} else if (command=='本月'){
let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getTime() - 30 * 24 * 60 * 60 * 1000)
const [startTime, endTime] = this.getMonthStartAndToday();
this.countValue = [parseTime(startTime),parseTime(endTime)]
}else if (command=='本季度'){
const [startTime, endTime] = this.getQuarterStartAndEnd();
this.countValue = [parseTime(startTime), parseTime(endTime)];
} else if (command=='本年'){
const [startTime, endTime] = this.getYearStartAndEnd();
this.countValue = [parseTime(startTime),parseTime(endTime)]
}else if (command=='自定义'){
this.disabled = false
}
this.getDataCount()
},
editColor(command){
this.disabled = true
this.ygphTitle = command
if (command=='今日'){
let start = new Date();
start.setHours(0)
start.setMinutes(0)
start.setSeconds(0)
start.setMilliseconds(0)
this.value2 = [start,new Date()]
} else if (command=='近一周'){
let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getTime() - 6 * 24 * 60 * 60 * 1000)
this.value2 = [parseTime(oneWeekAgo),parseTime(nowDate)]
} else if (command=='本月'){
let nowDate = new Date();
let oneWeekAgo = new Date(nowDate.getTime() - 30 * 24 * 60 * 60 * 1000)
const [startTime, endTime] = this.getMonthStartAndToday();
this.value2 = [parseTime(startTime),parseTime(endTime)]
}else if (command=='本季度'){
const [startTime, endTime] = this.getQuarterStartAndEnd();
this.value2 = [parseTime(startTime), parseTime(endTime)];
} else if (command=='本年'){
const [startTime, endTime] = this.getYearStartAndEnd();
this.value2 = [parseTime(startTime),parseTime(endTime)]
}else if (command=='自定义'){
this.disabled = false
}
this.getEmployeList()
},
getMonthStartAndToday() {
const now = new Date();
const year = now.getFullYear();
const month = now.getMonth();
//
const monthStart = new Date(year, month, 1);
//
const monthEnd = new Date(year, month + 1, 0);
//
const format = (date) => {
const year = date.getFullYear();
const month = ('0' + (date.getMonth() + 1)).slice(-2);
const day = ('0' + date.getDate()).slice(-2);
return `${year}-${month}-${day}`;
};
const startTime = format(monthStart);
const endTime = format(monthEnd);
return [startTime, endTime];
},
getQuarterStartAndEnd() {
const now = new Date();
const year = now.getFullYear();
const month = now.getMonth();
//
const quarterStartMonth = Math.floor(month / 3) * 3;
//
const quarterStart = new Date(year, quarterStartMonth, 1);
//
const quarterEnd = new Date(year, quarterStartMonth + 3, 0);
//
const format = (date) => {
const year = date.getFullYear();
const month = ('0' + (date.getMonth() + 1)).slice(-2);
const day = ('0' + date.getDate()).slice(-2);
return `${year}-${month}-${day}`;
};
const startTime = format(quarterStart);
const endTime = format(quarterEnd);
return [startTime, endTime];
},
getYearStartAndEnd() {
const now = new Date();
const year = now.getFullYear();
//
const yearStart = new Date(year, 0, 1);
//
const yearEnd = new Date(year, 11, 31);
//
const format = (date) => {
const year = date.getFullYear();
const month = ('0' + (date.getMonth() + 1)).slice(-2);
const day = ('0' + date.getDate()).slice(-2);
return `${year}-${month}-${day}`;
};
const startTime = format(yearStart);
const endTime = format(yearEnd);
return [startTime, endTime];
},
//
getEmployeList() {
this.employeLoading = true
employeeSalesApi().then(res => {
let data = {
startTime: this.value2[0],
endTime: this.value2[1]
}
employeeSalesApi(data).then(res => {
if (res.code == 200) {
if (res.data.length >= 10) {
this.employeList = res.data.slice(0, 10);
@ -591,53 +747,41 @@ export default {
//
const times = this.dataCount.oilData.map(item => item.time);
const count = [];
for (let i = 0; i < this.dataCount.oilNames.length; i++) {
let a = {
name: this.dataCount.oilNames[i],
color: color[i],
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value;
}
},
barWidth: 13,
itemStyle: {
normal: {
barBorderRadius: [50, 50, 0, 0]
}
},
barGap: '60%',
data: this.dataCount.oilData.map(item => item.money[i])
let c = ['product', ...this.dataCount.oilNames]
let countType = []
count.push(c)
this.dataCount.oilNames.forEach(item => {
let type={
type: 'bar'
}
countType.push(type)
})
this.dataCount.oilData.forEach(item => {
let a =[item.time, ...item.money]
count.push(a)
}
})
//
const showTimes = this.dataShows.oilData.map(item => item.day);
const showCount = [];
for (let i = 0; i < this.dataShows.oilNames.length; i++) {
let a = {
name: this.dataShows.oilNames[i],
color: color[i],
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value;
}
},
barWidth: 13,
itemStyle: {
normal: {
barBorderRadius: [50, 50, 0, 0]
}
},
barGap: '60%',
data: this.dataShows.oilData.map(item => item.oilPrices[i])
// data: oilAmountList
let cshow = ['product', ...this.dataShows.oilNames]
showCount.push(cshow)
let showCountType = []
console.log("看看执行")
this.dataShows.oilNames.forEach(item => {
let type={
type: 'bar'
}
showCountType.push(type)
})
console.log(this.dataShows.oilData)
this.dataShows.oilData.forEach(item => {
let a =[item.day, ...item.oilPrices]
showCount.push(a)
}
console.log("showCount",a)
})
console.log("showCount",showCount)
console.log("showCountType",showCountType)
const option = {
color: [
@ -677,18 +821,6 @@ export default {
name: '',
type: 'pie',
radius: '80%',
// data: [
// // { value: 28, name: '28%' },
// // { value: 72, name: '72%' },
// {
// value: this.countPercentage(Number(this.storeAmount.oilNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.noOilNum)),
// name: ""
// },
// {
// value: this.countPercentage(Number(this.storeAmount.noOilNum), Number(this.storeAmount.oilNum) + Number(this.storeAmount.noOilNum)),
// name: ""
// },
//
// ],
data: this.dataAnalysisIfOilList,
emphasis: {
@ -774,6 +906,10 @@ export default {
data: times,
axisPointer: {
type: 'shadow'
},
axisLabel: {
interval: 0,
// rotate: 30
}
}
],
@ -790,8 +926,11 @@ export default {
}
],
dataset: {
source: count
},
series: count,
series: countType,
grid: {
left: '3%',
right: '3%',
@ -817,10 +956,13 @@ export default {
xAxis: [
{
type: 'category',
// data: ['广1', '广2', '广3', '广4', '广5', '广6', '广7'],
data: showTimes,
axisPointer: {
type: 'shadow'
},
axisLabel: {
interval: 0,
// rotate: 30
}
}
],
@ -828,15 +970,15 @@ export default {
{
type: 'value',
name: '金额(元)',
// min: 0,
// max: 10000,
// interval: 2000,
axisLabel: {
formatter: '{value}'
}
}
],
series: showCount,
dataset: {
source: showCount
},
series: showCountType,
grid: {
left: '3%',
right: '3%',

View File

@ -93,7 +93,7 @@ public class FleetInfoController extends BaseController {
*/
@GetMapping("/getFleetInfoByStoreId")
public ResponseObject getFleetInfoByStoreId(@Param("storeId")Integer storeId){
return getSuccessResult(fleetInfoService.queryByStoreId(storeId));
return getSuccessResult(fleetInfoService.queryByStoreId(storeId,null));
}
/**

View File

@ -92,6 +92,16 @@ public class FleetMemberController extends BaseController {
public ResponseObject add(@RequestBody FleetMember fleetMember) {
return getSuccessResult(fleetMemberService.insert(fleetMember));
}
/**
* 新增数据小程序
*
* @param fleetMember 实体
* @return 新增结果
*/
@PostMapping("addUni")
public ResponseObject addUni(@RequestBody FleetMember fleetMember) {
return getSuccessResult(fleetMemberService.insertUni(fleetMember));
}
/**
* 编辑数据

View File

@ -68,7 +68,7 @@ public interface FleetInfoService {
* @param storeId
* @return
*/
List<FleetInfoUniVo> queryByStoreId(Integer storeId);
List<FleetInfoUniVo> queryByStoreId(Integer storeId,Integer userId);
/**
* 新增车队信息(小程序)

View File

@ -49,6 +49,13 @@ public interface FleetMemberService {
* @return 实例对象
*/
int insert(FleetMember fleetMember);
/**
* 新增数据
*
* @param fleetMember 实例对象
* @return 实例对象
*/
int insertUni(FleetMember fleetMember);
/**
* 新增数据

View File

@ -212,7 +212,7 @@ public class FleetInfoServiceImpl extends ServiceImpl<FleetInfoMapper, FleetInfo
fleetInfo.setGiveAmount(fleetInfo1.getGiveAmount() + fleetInfo.getGiveAmount1());
fleetInfo.setTotalBalance(fleetInfo1.getTotalBalance() + fleetInfo.getRechargeAmount1() + fleetInfo.getGiveAmount1());
}
return baseMapper.updateById(fleetInfo);
return baseMapper.updateById(fleetInfo);
}
/**
@ -233,12 +233,15 @@ public class FleetInfoServiceImpl extends ServiceImpl<FleetInfoMapper, FleetInfo
* @return
*/
@Override
public List<FleetInfoUniVo> queryByStoreId(Integer storeId) {
public List<FleetInfoUniVo> queryByStoreId(Integer storeId, Integer userId) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
if (ObjectUtil.isEmpty(userId)) {
userId = nowAccountInfo.getId();
}
//查询当前登录人的车队信息
List<FleetMember> fleetMembers = fleetMemberMapper.selectList(new LambdaQueryWrapper<FleetMember>()
.eq(FleetMember::getStoreId, storeId)
.eq(FleetMember::getUserId, nowAccountInfo.getId()));
.eq(FleetMember::getUserId, userId));
//获取所在车队的id集合
List<Integer> fleetIds = fleetMembers.stream().map(FleetMember::getFleetId).collect(Collectors.toList());
if (CollUtil.isEmpty(fleetIds)) {
@ -383,7 +386,7 @@ public class FleetInfoServiceImpl extends ServiceImpl<FleetInfoMapper, FleetInfo
int i = baseMapper.updateById(fleetInfo);
if (i > 0) {
return fleetInfo.getId();
}else {
} else {
throw new RuntimeException("编辑失败");
}
}
@ -415,6 +418,7 @@ public class FleetInfoServiceImpl extends ServiceImpl<FleetInfoMapper, FleetInfo
public int payFleet(String orderId, Double money) {
AllOrderInfo allOrderInfo = allOrderInfoMapper.selectOne(new LambdaQueryWrapper<AllOrderInfo>()
.eq(AllOrderInfo::getId, orderId));
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
if (ObjectUtil.isEmpty(allOrderInfo)) {
throw new RuntimeException("订单不存在");
}
@ -424,12 +428,24 @@ public class FleetInfoServiceImpl extends ServiceImpl<FleetInfoMapper, FleetInfo
if (ObjectUtil.isEmpty(fleetConsumeRecord)) {
throw new RuntimeException("车队订单不存在");
}
//根据用户id查询车队信息
//查找车队成员
FleetMember fleetMember = fleetMemberMapper.selectOne(new LambdaQueryWrapper<FleetMember>()
.eq(FleetMember::getUserId, allOrderInfo.getUserId())
.orderBy(true, true, FleetMember::getCreateTime)
.last("limit 1"));
// 获取当前车队卡
FleetInfo fleetInfo = baseMapper.selectOne(new LambdaQueryWrapper<FleetInfo>()
.eq(FleetInfo::getId, fleetConsumeRecord.getFleetId()));
.eq(FleetInfo::getId, fleetMember.getFleetId()));
//判断支付金额是否超过当前余额
if (money > fleetInfo.getTotalBalance()){
throw new RuntimeException("支付金额超过当前余额");
if (money > fleetInfo.getTotalBalance()) {
throw new RuntimeException("支付金额超过当前车队余额");
}
//判断成员的余额是否足够支付
if (money > fleetMember.getRemainingCreditLimit()) {
throw new RuntimeException("支付金额超过当前剩余额度");
}
//更新时间
@ -444,13 +460,22 @@ public class FleetInfoServiceImpl extends ServiceImpl<FleetInfoMapper, FleetInfo
fleetInfo.setRechargeAmount(fleetInfo.getRechargeAmount() - (money * recharge));
fleetInfo.setGiveAmount(fleetInfo.getGiveAmount() - (money * give));
fleetInfo.setUpdateTime(now);
fleetInfo.setUpdateBy(nowAccountInfo.getId().toString());
//更新车队卡余额
baseMapper.updateById(fleetInfo);
//计算车队成员剩余额度和已用额度
fleetMember.setRemainingCreditLimit(fleetMember.getRemainingCreditLimit() - money);
fleetMember.setUsedCreditLimit(fleetMember.getUsedCreditLimit() + money);
fleetMember.setUpdateTime(now);
fleetMember.setUpdateBy(nowAccountInfo.getId().toString());
fleetMemberMapper.updateById(fleetMember);
//更新订单状态
allOrderInfo.setStatus("paid");
allOrderInfo.setPayTime(now);
allOrderInfo.setUpdateTime(now);
allOrderInfo.setUpdateBy(nowAccountInfo.getId().toString());
allOrderInfoMapper.updateById(allOrderInfo);
@ -458,6 +483,7 @@ public class FleetInfoServiceImpl extends ServiceImpl<FleetInfoMapper, FleetInfo
fleetConsumeRecord.setOrderStatus("paid");
fleetConsumeRecord.setPaymentTime(now);
fleetConsumeRecord.setUpdateTime(now);
fleetConsumeRecord.setUpdateBy(nowAccountInfo.getId().toString());
//计算扣完款后的余额
fleetConsumeRecord.setAfterTheChange(fleetInfo.getTotalBalance());
@ -484,27 +510,33 @@ public class FleetInfoServiceImpl extends ServiceImpl<FleetInfoMapper, FleetInfo
if (ObjectUtil.isEmpty(fleetConsumeRecord)) {
throw new RuntimeException("车队订单不存在");
}
if ("paid".equals(fleetConsumeRecord.getOrderStatus())) {
//退款金额
Double refundMoney = fleetConsumeRecord.getNetReceiptsAmount();
//获取当前车队卡
FleetInfo fleetInfo = baseMapper.selectOne(new LambdaQueryWrapper<FleetInfo>()
.eq(FleetInfo::getId, fleetConsumeRecord.getFleetId()));
//计算赠送金额与充值金额比例
double recharge = fleetInfo.getRechargeAmount() / fleetInfo.getTotalBalance();
double give = fleetInfo.getGiveAmount() / fleetInfo.getTotalBalance();
fleetInfo.setTotalBalance(fleetInfo.getTotalBalance() + refundMoney);
fleetInfo.setRechargeAmount(fleetInfo.getRechargeAmount() + (refundMoney * recharge));
fleetInfo.setGiveAmount(fleetInfo.getGiveAmount() + (refundMoney * give));
//将退款金额修改回去
baseMapper.updateById(fleetInfo);
//将车队订单表改为退款
fleetConsumeRecord.setOrderStatus("refund");
fleetConsumeRecord.setUpdateTime(DateUtil.date());
fleetConsumeRecord.setUpdateBy(nowAccountInfo.getStaffId().toString());
return fleetConsumeRecordMapper.updateById(fleetConsumeRecord);
}
return 0;
//退款金额
Double refundMoney = fleetConsumeRecord.getNetReceiptsAmount();
//获取当前车队卡
FleetInfo fleetInfo = baseMapper.selectOne(new LambdaQueryWrapper<FleetInfo>()
.eq(FleetInfo::getId, fleetConsumeRecord.getFleetId()));
//计算赠送金额与充值金额比例
double recharge = fleetInfo.getRechargeAmount() / fleetInfo.getTotalBalance();
double give = fleetInfo.getGiveAmount() / fleetInfo.getTotalBalance();
fleetInfo.setTotalBalance(fleetInfo.getTotalBalance() + refundMoney);
fleetInfo.setRechargeAmount(fleetInfo.getRechargeAmount() + (refundMoney * recharge));
fleetInfo.setGiveAmount(fleetInfo.getGiveAmount() + (refundMoney * give));
//将退款金额修改回去
baseMapper.updateById(fleetInfo);
//修改车队成员的余额
FleetMember fleetMember = fleetMemberMapper.selectOne(new LambdaQueryWrapper<FleetMember>()
.eq(FleetMember::getUserId, allOrderInfo.getUserId()));
fleetMember.setRemainingCreditLimit(fleetMember.getRemainingCreditLimit() + refundMoney);
fleetMember.setUsedCreditLimit(fleetMember.getUsedCreditLimit() - refundMoney);
fleetMember.setUpdateBy(nowAccountInfo.getStaffId().toString());
fleetMember.setUpdateTime(DateUtil.date());
//更新余额
fleetMemberMapper.updateById(fleetMember);
//将车队订单表改为退款
fleetConsumeRecord.setOrderStatus("refund");
fleetConsumeRecord.setUpdateTime(DateUtil.date());
fleetConsumeRecord.setUpdateBy(nowAccountInfo.getStaffId().toString());
return fleetConsumeRecordMapper.updateById(fleetConsumeRecord);
}

View File

@ -128,18 +128,17 @@ public class FleetMemberServiceImpl extends ServiceImpl<FleetMemberMapper, Fleet
// if (ObjectUtil.isNotEmpty(fleetInfoUniVo) && (fleetInfoUniVo.getUserId() != nowAccountInfo.getId())) {
// throw new RuntimeException("请由车队负责人进行此操作");
// }
//判断用户是否存在选择的车队
//判断用户是否加入车队
FleetMember fleetMember2 = baseMapper.selectOne(new LambdaQueryWrapper<FleetMember>()
.eq(FleetMember::getMobile, fleetMember.getMobile())
.eq(FleetMember::getFleetId, fleetMember.getFleetId())
.last("limit 1"));
if (ObjectUtil.isNotEmpty(fleetMember2)) {
throw new RuntimeException("该用户已加入该车队");
throw new RuntimeException("该用户已绑定车队");
}
// if (ObjectUtil.isNotEmpty(fleetMember1)) {
// return 0;
// }
// LJUserVo user = userService.selectUserByMobileAndChantStoreId(fleetMember.getMobile());
//判断当前车队成员否存在账号
MtUser mtUser = mtUserMapper.selectOne(new LambdaQueryWrapper<MtUser>()
.eq(MtUser::getMobile, fleetMember.getMobile())
@ -168,6 +167,49 @@ public class FleetMemberServiceImpl extends ServiceImpl<FleetMemberMapper, Fleet
return baseMapper.insert(fleetMember);
}
/**
* 新增数据
*
* @param fleetMember 实例对象
* @return 实例对象
*/
@Override
public int insertUni(FleetMember fleetMember) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
//判断用户是否加入车队
FleetMember fleetMember2 = baseMapper.selectOne(new LambdaQueryWrapper<FleetMember>()
.eq(FleetMember::getMobile, fleetMember.getMobile())
.last("limit 1"));
if (ObjectUtil.isNotEmpty(fleetMember2)) {
// throw new RuntimeException("该用户已绑定车队");
return 0;
}
//判断当前车队成员否存在账号
MtUser mtUser = mtUserMapper.selectOne(new LambdaQueryWrapper<MtUser>()
.eq(MtUser::getMobile, fleetMember.getMobile())
.last("limit 1"));
if (ObjectUtil.isEmpty(mtUser)) {
//注册用户
mtUser = new MtUser();
mtUser.setUserNo(editUserNo());
mtUser.setMobile(fleetMember.getMobile());
mtUser.setName(fleetMember.getName());
mtUser.setDescription("车队成员自动注册");
mtUser.setCreateTime(DateUtil.date());
mtUserMapper.insert(mtUser);
createVaseInfo(mtUser, nowAccountInfo.getStoreId().toString(), null, null);
}
fleetMember.setUserId(mtUser.getId());
fleetMember.setCarNum(mtUser.getCarNo());
fleetMember.setStoreId(nowAccountInfo.getStoreId());
fleetMember.setChainStoreId(nowAccountInfo.getChainStoreId());
return baseMapper.insert(fleetMember);
}
@Override
public int insertFleetMember(FleetMemberVo fleetMember) {
FleetMember fleetMember1 = queryByMobile(fleetMember);

View File

@ -38,7 +38,7 @@ public interface LJStaffMapper extends BaseMapper<LJStaff> {
*/
int auditPrem(@Param("id")Integer id,@Param("auditPrem") String auditPrem);
List<Map<String,String>> employeeSales(@Param("storeId") Integer storeId);
List<Map<String,String>> employeeSales(@Param("storeId") Integer storeId,@Param("startTime") String startTime, @Param("endTime") String endTime);
List<Map<String,String>> employeeSalesMongth(@Param("storeId") Integer storeId);
LJStaff selectStaffById(@Param("id") Integer id);

View File

@ -61,7 +61,7 @@
LEFT JOIN (
SELECT staff_id, COALESCE(SUM(pay_amount), 0) AS pay_amount
FROM oil_order
WHERE order_status = 'paid'
WHERE order_status = 'paid' and create_time between #{startTime} and #{endTime}
GROUP BY staff_id
) oo ON ms.id = oo.staff_id
LEFT JOIN (
@ -69,13 +69,13 @@
COALESCE(SUM(CASE WHEN payment_type = 'CASH' THEN amount ELSE 0 END), 0) as recharge_balance
FROM card_value_record
WHERE pay_status = 'paid'
WHERE pay_status = 'paid' and create_time between #{startTime} and #{endTime}
GROUP BY mt_staff_id
) cvr ON ms.id = cvr.mt_staff_id
LEFT JOIN (
SELECT mt_staff_id, COALESCE(SUM(recharge_balance), 0) as recharge_balance
FROM card_fuel_record
WHERE pay_status = 'paid'
WHERE pay_status = 'paid' and create_time between #{startTime} and #{endTime}
GROUP BY mt_staff_id
) cfr ON ms.id = cfr.mt_staff_id
WHERE

View File

@ -253,8 +253,8 @@ public class OilOrderController extends BaseController {
}
// 员工销售
@GetMapping("employeeSales")
public ResponseObject employeeSales() {
return getSuccessResult(orderService.employeeSales());
public ResponseObject employeeSales(String startTime, String endTime) {
return getSuccessResult(orderService.employeeSales(startTime, endTime));
}
// 储值卡销售额

View File

@ -158,7 +158,7 @@ public interface OilOrderService extends IService<OilOrder> {
// 流水统计
Map<String, Double> turnoverStatistics();
List<Map<String, String>> employeeSales();
List<Map<String, String>> employeeSales(String startTime, String endTime);
List<Map<String, String>> prepaidCardSales();
List<Map<String, String>> tunFuelCardSales();
List<Map<String, String>> merchandiseSales();

View File

@ -1873,12 +1873,19 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
List<OilNumber> oilNumbers = oilNumberMapper.selectAllOil(nowAccountInfo.getStoreId());
List<String> oilNames = oilNumbers.stream().map(oil -> oil.getOilNames() + oil.getOilType()).collect(Collectors.toList());
homeDataShowVo.setOilNames(oilNames);
//判断开始时间减去结束时间是否大于等于一年
//判断开始时间减去结束时间是否大于等于60天
List<String> days = getAllDatesBetween(startTime, endTime);
Integer type = 0;
if (DateUtil.between(DateUtil.parse(startTime), DateUtil.parse(endTime), DateUnit.DAY) >= 60) {
days = getAllDatesBetweenYear(startTime, endTime);
type = 1;
//判断是否小于等于1天
} else if (DateUtil.between(DateUtil.parse(startTime), DateUtil.parse(endTime), DateUnit.DAY) <= 1) {
days = getAllDatesBetweenDay(DateUtil.beginOfDay(DateUtil.parse(startTime)).toString(), DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
type = 2;
} else if (DateUtil.between(DateUtil.parse(startTime), DateUtil.parse(endTime), DateUnit.DAY) >= 30) {
days = getAllDatesBetweenMonth(DateUtil.beginOfDay(DateUtil.parse(startTime)).toString(), DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
type = 3;
}
//根据开始时间与结束时间获取所有天数
//查询所有订单
@ -1898,6 +1905,16 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
mapData.put("day", parse.toString("yyyy-MM"));
dateTime = DateUtil.beginOfMonth(parse);
dateTime1 = DateUtil.endOfMonth(parse);
} else if (type == 2) {
DateTime parse = DateUtil.parse(day);
mapData.put("day", parse.toString("MM-dd HH:mm"));
dateTime = DateUtil.beginOfHour(DateUtil.parse(day));
dateTime1 = DateUtil.endOfHour(dateTime);
}else if (type == 3) {
DateTime parse = DateUtil.parse(day);
mapData.put("day", parse.toString("yyyy-MM-dd"));
dateTime = DateUtil.beginOfDay(parse);
dateTime1 = DateUtil.endOfDay(DateUtil.offsetDay(dateTime, 3));
} else {
mapData.put("day", day);
dateTime = DateUtil.beginOfDay(DateUtil.parse(day));
@ -1946,12 +1963,43 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
List<String> dateList = new ArrayList<>();
while (!startDate.isAfter(endDate)) {
dateList.add(startDate.format(formatter));
startDate = startDate.plusDays(30);
startDate = startDate.plusMonths(1);
}
return dateList;
}
public List<String> getAllDatesBetweenDay(String startTime, String endTime) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime startDate = LocalDateTime.parse(startTime, formatter);
LocalDateTime endDate = LocalDateTime.parse(endTime, formatter);
List<String> dateList = new ArrayList<>();
while (!startDate.isAfter(endDate)) {
dateList.add(startDate.format(formatter));
startDate = startDate.plusHours(1);
}
return dateList;
}
public List<String> getAllDatesBetweenMonth(String startTime, String endTime) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime startDate = LocalDateTime.parse(startTime, formatter);
LocalDateTime endDate = LocalDateTime.parse(endTime, formatter);
List<String> dateList = new ArrayList<>();
while (!startDate.isAfter(endDate)) {
dateList.add(startDate.format(formatter));
startDate = startDate.plusDays(3);
}
return dateList;
}
/**
* 计算指定支付时间范围和油品名称下的累计支付金额
*
@ -2085,6 +2133,12 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
if (DateUtil.between(DateUtil.parse(startTime), DateUtil.parse(endTime), DateUnit.DAY) >= 60) {
allDatesBetween = getAllDatesBetweenYear(startTime, endTime);
type = 1;
} else if (DateUtil.between(DateUtil.parse(startTime), DateUtil.parse(endTime), DateUnit.DAY) <= 1) {
allDatesBetween = getAllDatesBetweenDay(DateUtil.beginOfDay(DateUtil.parse(startTime)).toString(), DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
type = 2;
} else if (DateUtil.between(DateUtil.parse(startTime), DateUtil.parse(endTime), DateUnit.DAY) >= 30) {
allDatesBetween = getAllDatesBetweenMonth(DateUtil.beginOfDay(DateUtil.parse(startTime)).toString(), DateUtil.endOfDay(DateUtil.parse(endTime)).toString());
type = 3;
}
List<String> oilNames = new ArrayList<>();
@ -2105,6 +2159,16 @@ public class AllOrderInfoServiceImpl extends ServiceImpl<AllOrderInfoMapper, All
params.put("time", parse.toString("yyyy-MM"));
dateTime = DateUtil.beginOfMonth(parse);
dateTime1 = DateUtil.endOfMonth(parse);
} else if (type == 2) {
DateTime parse = DateUtil.parse(time);
params.put("time", parse.toString("MM-dd HH:mm"));
dateTime = DateUtil.beginOfHour(parse);
dateTime1 = DateUtil.endOfHour(dateTime);
} else if (type == 3) {
DateTime parse = DateUtil.parse(time);
params.put("time", parse.toString("yyyy-MM-dd"));
dateTime = DateUtil.beginOfDay(parse);
dateTime1 = DateUtil.endOfDay(DateUtil.offsetDay(dateTime, 3));
} else {
params.put("time", time);
dateTime = DateUtil.beginOfDay(DateUtil.parse(time));

View File

@ -22,6 +22,7 @@ import com.fuint.business.convenienceSore.entity.LJGoods;
import com.fuint.business.convenienceSore.entity.SaleDetail;
import com.fuint.business.convenienceSore.service.LJGoodsService;
import com.fuint.business.convenienceSore.service.SaleDetailService;
import com.fuint.business.fleet.service.FleetInfoService;
import com.fuint.business.integral.service.IntegralSettingsService;
import com.fuint.business.marketingActivity.activeDiscount.entity.ActiveDiscountChild;
import com.fuint.business.marketingActivity.activeDiscount.service.ActiveDiscountService;
@ -198,6 +199,8 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
private IMtUserFuelService userFuelService;
@Autowired
private CardValueRuleService cardValueRuleService;
@Autowired
private FleetInfoService fleetInfoService;
@Override
public IPage<OilOrder> selectOilOrderList(Page page, OilOrder order) {
@ -487,7 +490,8 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
MerchantConfig merchantConfig = merchantConfigService.selectMeChByIdIsUse(storeId, transactionType, oilGunId);
if (ObjectUtil.isEmpty(merchantConfig) && !payType.equals("CASH") && !payType.equals("after_pay") &&
!map.get("allAmount").equals("0")) {
!map.get("allAmount").equals("0") && !payType.equals("card_value") && !payType.equals("fule_card")
&& !payType.equals("car_card_value")) {
orders.put("error", "请先配置支付通道");
return orders;
}
@ -1927,11 +1931,11 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
// 员工统计
@Override
public List<Map<String, String>> employeeSales() {
public List<Map<String, String>> employeeSales(String startTime, String endTime) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
Integer storeId = nowAccountInfo.getStoreId();
// 员工统计油品
List<Map<String, String>> maps = ljStaffMapper.employeeSales(storeId);
List<Map<String, String>> maps = ljStaffMapper.employeeSales(storeId, startTime, endTime);
return maps;
}

View File

@ -350,7 +350,7 @@ public class LJUserServiceImpl extends ServiceImpl<LJUserMapper, LJUser> impleme
List<MtUserFuel> list = userFuelService.list(queryWrapper);
ljUserVo.setUserFuels(list);
//判断当前用户是否存在车队
List<FleetInfoUniVo> fleetInfoUniVos = fleetInfoService.queryByStoreId(storeId);
List<FleetInfoUniVo> fleetInfoUniVos = fleetInfoService.queryByStoreId(storeId,null);
if (CollUtil.isNotEmpty(fleetInfoUniVos)) {
ljUserVo.setFleetInfoUniVos(fleetInfoUniVos);
}
@ -381,6 +381,11 @@ public class LJUserServiceImpl extends ServiceImpl<LJUserMapper, LJUser> impleme
queryWrapper.eq(MtUserFuel::getStoreId,nowAccountInfo.getStoreId()).eq(MtUserFuel::getMtUserId,it.getId());
List<MtUserFuel> list = userFuelService.list(queryWrapper);
it.setUserFuels(list);
//判断当前用户是否存在车队
List<FleetInfoUniVo> fleetInfoUniVos = fleetInfoService.queryByStoreId(nowAccountInfo.getStoreId(),it.getId());
if (CollUtil.isNotEmpty(fleetInfoUniVos)) {
it.setFleetInfoUniVos(fleetInfoUniVos);
}
});
return ljUserVos;
}

View File

@ -15,10 +15,12 @@
placement="bottom"
trigger="hover">
<div> 储值卡{{ chooseVipUser.cardBalance || 0 }}</div>
<div> 储值卡1000.00</div>
<div> 储值卡1000.00</div>
<div> 储值卡1000.00</div>
<div> 储值卡1000.00</div>
<div v-if="chooseVipUser.userFuels">
<div v-for="(item,index) in chooseVipUser.userFuels" :key="index"> 囤油卡{{ item.fuelAmount }}</div>
</div>
<div v-if="chooseVipUser.fleetInfoUniVos">
<div v-for="(item,index) in chooseVipUser.fleetInfoUniVos" :key="index"> 车队卡{{ item.totalBalance }}</div>
</div>
<img slot="reference" src="./imgs/kbao.png" style="width: 24px;height: 24px;margin-right: 10px">
</el-popover>
@ -533,6 +535,18 @@
</el-dialog>
<!-- 车队卡支付-->
<el-dialog
title="车队卡支付"
:visible.sync="dialogVisible"
width="30%">
<carCard :fleetList="chooseVipUser.fleetInfoUniVos"></carCard>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="dialogVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
@ -543,6 +557,7 @@ import pickUp from './newHomeComponents/pickUpTheOrder.vue'
import accountPending from './newHomeComponents/accountPending.vue'
import memberRecharge from './newHomeComponents/memberRecharge.vue'
import refuelingAmount from './newHomeComponents/refuelingAmount.vue'
import carCard from "./newHomeComponents/carCard.vue";
import {
cashRegisterList,
cashRegisterGoodsList,
@ -569,6 +584,7 @@ export default {
dicts: ['CardCoupon_type'],
data() {
return {
dialogVisible:false,
isClickable: false, //
payForm: {
realyPayBills: 0.00,
@ -787,7 +803,8 @@ export default {
pickUp,
accountPending,
memberRecharge,
refuelingAmount
refuelingAmount,
carCard
},
created() {
//

View File

@ -0,0 +1,55 @@
<template>
<div>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="80px" class="demo-ruleForm">
<el-form-item label="车队卡名称" prop="unitName">
<el-select v-model="ruleForm.value" placeholder="请选择车队卡" style="width: 100%">
<el-option
v-for="item in unitList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<div class="hui-size">车队卡支付时必须选择车队卡名称后才能进行支付</div>
</el-form-item>
<el-form-item label="车队卡余额" prop="residueCreditLimit">
<el-input v-model="ruleForm.residueCreditLimit" disabled>
<template slot="append"></template>
</el-input>
</el-form-item>
<el-form-item label="支付金额" prop="amount">
<el-input v-model="ruleForm.amount" disabled>
<template slot="append"></template>
</el-input>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
props:["fleetList"],
data(){
return{
ruleForm: {},
unitList:[],
rules: {
unitName: [
{required: true, message: '请输入挂账单位名称', trigger: 'blur'},
],
amount: [
{required: true, message: '请输入活动名称', trigger: 'blur'},
],
}
}
},
created() {
this.unitList = this.fleetList
},
methods:{}
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -5,8 +5,8 @@ module.exports = {
// baseUrl: 'https://www.tuofeng.cc/oilAdmin/',
// baseUrl: 'https://oilapi.youkerr.com/oilAdmin/',
// baseUrl: 'https://8q4f124343.yicp.fun/',
baseUrl: 'http://47.94.122.58:8080/',
// baseUrl: 'http://localhost:8080/',
// baseUrl: 'http://47.94.122.58:8080/',
baseUrl: 'http://localhost:8080/',
// baseUrl: 'http://192.168.1.5:8002/cdJdc',
imagesUrl: 'http://www.nuoyunr.com/lananRsc',
// 应用信息

View File

@ -1,272 +1,281 @@
<template>
<view class="content">
<view class="container">
<view class="box-hang">
<view class=""><span style="color: red;">*</span>姓名</view>
<view class="dis">
<input v-model="memberInfo.name" style="text-align: right;" placeholder="请输入"></input>
</view>
</view>
<view class="box-hang">
<view class=""><span style="color: red;">*</span>手机号</view>
<view class="dis">
<input v-model="memberInfo.mobile" style="text-align: right;" placeholder="请输入"></input>
</view>
</view>
<view class="box-hang">
<view class="">会员卡号</view>
<view class="dis">
<input v-model="memberInfo.userCardNum" style="text-align: right;" placeholder="请输入"></input>
</view>
</view>
<view class="box-hang">
<view class="">车牌号</view>
<view class="dis" @click="show1 = !show1">
<input v-model="memberInfo.carNum" style="text-align: right;" placeholder="请输入"></input>
</view>
</view>
<view class="box-hang">
<view class=""><span style="color: red;">*</span>副卡类型</view>
<view class="dis" @click="show = !show">
<text v-if="memberInfo.secondaryCardType==1">共享副卡-不限额</text>
<text v-if="memberInfo.secondaryCardType==2">共享副卡-限额</text>
<text v-if="memberInfo.secondaryCardType==3">独立副卡</text>
<uni-icons type="right" size="16"></uni-icons>
</view>
</view>
<view class="box-hang" style="margin-top: 10px;">
<view class=""><span style="color: red;">*</span>是否开启消费通知</view>
<view class="dis">
<u-switch v-model="memberInfo.isOpenNotice" :activeValue='0' :inactiveValue='1' activeColor="#6DD400"
inactiveColor="rgb(230, 230, 230)"></u-switch>
</view>
</view>
<view class="box-hang">
<view class=""><span style="color: red;">*</span>是否启用</view>
<view class="dis">
<u-switch v-model="memberInfo.status" activeValue='qy' inactiveValue='jy' activeColor="#6DD400"
inactiveColor="rgb(230, 230, 230)"></u-switch>
</view>
</view>
<view class="box-end">
<view style="display: flex;">
<view style="height: 14px;margin-right: 5px;"><u-icon name="info-circle"></u-icon></view>
<view></view>
</view>
<view>
<view>共享副卡-不限额副卡与主卡共享钱包同步余额</view>
<view>共享副卡-限额副卡与主卡共享钱包副卡可设置限额</view>
<view>独立副卡副卡与主卡独立钱包独立余额</view>
</view>
</view>
<view class="content">
<view class="container">
<view class="box-hang">
<view class=""><span style="color: red;">*</span>姓名</view>
<view class="dis">
<input v-model="memberInfo.name" style="text-align: right;" placeholder="请输入"></input>
</view>
</view>
<view class="box-hang">
<view class=""><span style="color: red;">*</span>手机号</view>
<view class="dis">
<input v-model="memberInfo.mobile" style="text-align: right;" placeholder="请输入"></input>
</view>
</view>
<view class="box-hang">
<view class="">会员卡号</view>
<view class="dis">
<input v-model="memberInfo.userCardNum" style="text-align: right;" placeholder="请输入"></input>
</view>
</view>
<view class="box-hang">
<view class="">车牌号</view>
<view class="dis" @click="show1 = !show1">
<input v-model="memberInfo.carNum" style="text-align: right;" placeholder="请输入"></input>
</view>
</view>
<view class="box-hang">
<view class=""><span style="color: red;">*</span>副卡类型</view>
<view class="dis" @click="show = !show">
<text v-if="memberInfo.secondaryCardType==1">共享副卡-不限额</text>
<text v-if="memberInfo.secondaryCardType==2">共享副卡-限额</text>
<text v-if="memberInfo.secondaryCardType==3">独立副卡</text>
<uni-icons type="right" size="16"></uni-icons>
</view>
</view>
<view class="box-hang" style="margin-top: 10px;">
<view class=""><span style="color: red;">*</span>是否开启消费通知</view>
<view class="dis">
<u-switch v-model="memberInfo.isOpenNotice" :activeValue='0' :inactiveValue='1' activeColor="#6DD400"
inactiveColor="rgb(230, 230, 230)"></u-switch>
</view>
</view>
<view class="box-hang">
<view class=""><span style="color: red;">*</span>是否启用</view>
<view class="dis">
<u-switch v-model="memberInfo.status" activeValue='qy' inactiveValue='jy' activeColor="#6DD400"
inactiveColor="rgb(230, 230, 230)"></u-switch>
</view>
</view>
<view class="box-end">
<view style="display: flex;">
<view style="height: 14px;margin-right: 5px;">
<u-icon name="info-circle"></u-icon>
</view>
<view></view>
</view>
<view>
<view>共享副卡-不限额副卡与主卡共享钱包同步余额</view>
<view>共享副卡-限额副卡与主卡共享钱包副卡可设置限额</view>
<view>独立副卡副卡与主卡独立钱包独立余额</view>
</view>
</view>
<view class="but-sub" @click="submitFrom()">保存</view>
<view class="but-sub" @click="submitFrom()">保存</view>
<u-picker :show="show" :columns="columns" @cancel="cancel" @confirm="confirm"></u-picker>
<u-keyboard ref="uKeyboard" mode="car" @change="valChange" @backspace="backspace" :show="show1"
@confirm="confirm1" @cancel="cancel1" :overlay="false"></u-keyboard>
</view>
<u-picker :show="show" :columns="columns" @cancel="cancel" @confirm="confirm"></u-picker>
<u-keyboard ref="uKeyboard" mode="car" @change="valChange" @backspace="backspace" :show="show1"
@confirm="confirm1" @cancel="cancel1" :overlay="false"></u-keyboard>
</view>
</view>
</view>
</template>
<script>
import request from '../../utils/request';
export default {
data() {
return {
title: '',
List: [],
pageNo: 1,
pageSize: 10,
totalPage: '',
value: "",
value1: true,
value2: true,
show: false,
show1: false,
columns: [
['共享副卡-不限额', '共享副卡-限额', '独立副卡']
],
memberInfo: {
carNum: '',
isOpenNotice: '0',
status: 'qy',
secondaryCardType: 1
},
fleetId: '',
memberId: '',
}
},
onLoad(e) {
if (e.fleetId) {
this.fleetId = e.fleetId
this.memberInfo.fleetId = e.fleetId
}
if (e.memberId){
this.memberId = e.memberId
this.getInfo()
}
},
onPullDownRefresh() {
//
import request from '../../utils/request';
},
onReachBottom() {
//
if (this.pageNo >= this.totalPage) {
export default {
data() {
return {
title: '',
List: [],
pageNo: 1,
pageSize: 10,
totalPage: '',
value: "",
value1: true,
value2: true,
show: false,
show1: false,
columns: [
['共享副卡-不限额', '共享副卡-限额', '独立副卡']
],
memberInfo: {
carNum: '',
isOpenNotice: '0',
status: 'qy',
secondaryCardType: 1
},
fleetId: '',
memberId: '',
}
},
onLoad(e) {
if (e.fleetId) {
this.fleetId = e.fleetId
this.memberInfo.fleetId = e.fleetId
}
if (e.memberId) {
this.memberId = e.memberId
this.getInfo()
}
},
onPullDownRefresh() {
//
} else {
this.pageNo++
},
onReachBottom() {
//
if (this.pageNo >= this.totalPage) {
}
},
} else {
this.pageNo++
components: {
}
},
},
methods: {
getInfo() {
request({
url: '/fleetMember/' + this.memberId,
method: 'get',
}).then(res => {
this.memberInfo = res.data
})
},
submitFrom() {
if (!this.memberInfo.name) {
uni.showToast({
title: '姓名不能为空',
icon: 'none'
})
return
}
if (!this.memberInfo.mobile) {
uni.showToast({
title: '手机号不能为空',
icon: 'none'
})
return
}
if (this.memberInfo.id){
request({
url: '/fleetMember',
method: 'put',
data: this.memberInfo
}).then(res => {
uni.navigateBack()
})
}else{
request({
url: '/fleetMember',
method: 'post',
data: this.memberInfo
}).then(res => {
uni.navigateBack()
})
}
},
// (退)
valChange(val) {
// value+=
this.memberInfo.carNum += val
},
// 退
backspace() {
// value
if (this.memberInfo.carNum.length) this.memberInfo.carNum = this.memberInfo.carNum.substr(0, this
.memberInfo.carNum.length - 1);
},
cancel1() {
this.show1 = false
},
confirm1() {
this.show1 = false
},
cancel() {
this.show = false
},
confirm(e) {
this.memberInfo.secondaryCardType = e.indexs[0] + 1
this.show = false
},
goback() {
uni.navigateBack()
}
}
}
components: {},
methods: {
getInfo() {
request({
url: '/fleetMember/' + this.memberId,
method: 'get',
}).then(res => {
this.memberInfo = res.data
})
},
submitFrom() {
if (!this.memberInfo.name) {
uni.showToast({
title: '姓名不能为空',
icon: 'none'
})
return
}
if (!this.memberInfo.mobile) {
uni.showToast({
title: '手机号不能为空',
icon: 'none'
})
return
}
if (this.memberInfo.id) {
request({
url: '/fleetMember',
method: 'put',
data: this.memberInfo
}).then(res => {
uni.navigateBack()
})
} else {
request({
url: '/fleetMember/addUni',
method: 'post',
data: this.memberInfo
}).then(res => {
if (res.data == 0) {
uni.showToast({
title: '该用户已绑定车队',
icon: 'none'
})
}else {
uni.navigateBack()
}
})
}
},
// (退)
valChange(val) {
// value+=
this.memberInfo.carNum += val
},
// 退
backspace() {
// value
if (this.memberInfo.carNum.length) this.memberInfo.carNum = this.memberInfo.carNum.substr(0, this
.memberInfo.carNum.length - 1);
},
cancel1() {
this.show1 = false
},
confirm1() {
this.show1 = false
},
cancel() {
this.show = false
},
confirm(e) {
this.memberInfo.secondaryCardType = e.indexs[0] + 1
this.show = false
},
goback() {
uni.navigateBack()
}
}
}
</script>
<style scoped lang="scss">
.content {
background: #f4f5f6;
}
.content {
background: #f4f5f6;
}
.container {
width: 100%;
height: 100vh;
box-sizing: border-box;
padding-top: 10px;
}
.container {
width: 100%;
height: 100vh;
box-sizing: border-box;
padding-top: 10px;
}
.my-header {
width: 100%;
height: 88px;
background: #ffffff;
display: flex;
align-items: center;
justify-content: space-between;
color: #000;
box-sizing: border-box;
padding: 0px 15px;
padding-top: 40px;
z-index: 99999;
.my-header {
width: 100%;
height: 88px;
background: #ffffff;
display: flex;
align-items: center;
justify-content: space-between;
color: #000;
box-sizing: border-box;
padding: 0px 15px;
padding-top: 40px;
z-index: 99999;
.my-icons {
width: 20px;
.my-icons {
width: 20px;
}
}
position: fixed;
top: 0px;
}
position: fixed;
top: 0px;
}
.box-hang {
background-color: white;
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 15px 15px;
border-bottom: 1px solid #f4f5f6;
}
.box-hang {
background-color: white;
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 15px 15px;
border-bottom: 1px solid #f4f5f6;
}
.dis {
color: #a69999;
}
.dis {
color: #a69999;
}
.box-end {
margin-top: 10px;
display: flex;
color: #999999;
font-size: 12px;
padding: 0 15px;
}
.box-end {
margin-top: 10px;
display: flex;
color: #999999;
font-size: 12px;
padding: 0 15px;
}
.but-sub {
width: 305px;
height: 40px;
line-height: 40px;
margin: 0 auto;
background-color: #FF9655;
color: white;
border-radius: 50px;
text-align: center;
position: absolute;
bottom: 40px;
left: 11%;
}
</style>
.but-sub {
width: 305px;
height: 40px;
line-height: 40px;
margin: 0 auto;
background-color: #FF9655;
color: white;
border-radius: 50px;
text-align: center;
position: absolute;
bottom: 40px;
left: 11%;
}
</style>