TMRAppBle/pages/index.stml

1112 lines
28 KiB
Plaintext
Raw Permalink Normal View History

2023-10-19 15:00:17 +08:00
<template>
<view class="index_wrap">
<dxx-loading loadingtext="提交中" :show="loadingShow"></dxx-loading>
<view class="index_header">
<view class="header_left">
<picker class="picker" range={sbList} range-key="name" mode="selector" onChange={this.carsChange}>
<text style="font-weight:900">{carName}</text>
</picker>
<button type="button" class="header_btn" style="margin-left:25px;" @click="reloadPage">初始化</button>
<view class="header_led" @click="showZifuka">
<text class="header_led_text">WIFI:{{wifiName}}{{Rssi}}</text>
</view>
</view>
<view class="header_right">
<text class="left_text">机车手:</text>
<text class="left_text">{driveName}</text>
<button type="button" class="header_btn1" style="margin-left:35px;" @click="handleBackSys">退出登录</button>
<button type="button" class="header_btn" style="margin-left:5px;" @click="refreshDayPlan">更新配方</button>
</view>
</view>
<view class="index_section">
<scroll-view class="section_left" scroll-y>
<view v-for="(item,index) in carArr" class="left_item"
:style="{backgroundColor:index === currCarIndex?'#1482f0':'#ffffff'}">
<text class="left_item_text" @click="handleCarClick(index, item)"
:style="{color:index === currCarIndex?'#ffffff':'#000000'}">{item.name}</text>
</view>
</scroll-view>
<view class="section_right">
<scroll-view class="section_right_scroll" scroll-x>
<lanyun-steps :list="stepsList" :current="activeStepsNum" active-color="#1482f0" direction="row" />
</scroll-view>
<view class="right_operation">
<view class="operation_card">
<frame name="operationCard" v-bind:url="url"></frame>
</view>
<view class="opera_item_btn">
<view class="card_col_name">
<text class="card_col_name_text">{{batchName}},</text>
<text class="card_col_name_text">{{feedName}}:</text>
<text class="card_col_name_text">{{plan}}kg</text>
</view>
<view class="next_btn" @click="handleNext" v-if="feedStatus">
<image src="../image/loading.gif" v-show="isImgLoading" />
<text class="next_btn_text">下一步</text>
</view>
</view>
</view>
</view>
</view>
<view class="index_footer">
<text> V{{version}}</text>
<view v-for="(item,index) in classArr" class="footer_item"
:style="{backgroundColor:index === currClassIndex?'#1482f0':'#ffffff'}"
@click="handleClassClick(index,item)">
<text :style="{color:index === currClassIndex?'#ffffff':'#000000'}"
class="footer_text_one">{item.name}({item.time})</text>
</view>
</view>
<dialog id="dialog" class='dialog'>
<view class='d-area'>
<text class='title'>温馨提示</text>
<scroll-view class="content">
<text>是否退出当前账号?</text>
</scroll-view>
<view class='nav'>
<button class="btn" @click="handldeConfirmBtn('0')">取消</button>
<button class="btn" style='margin-left:40px;' @click="handldeConfirmBtn('1')">确定</button>
</view>
</view>
</dialog>
</view>
</template>
<script>
//步骤条
import "../components/lanyun-steps.stml"
//loading
import "../components/dxx-loading.stml"
import { POST, GET } from '../script/req.js'
import { socketUtil } from '../script/module/socket.js'
import { bmLocationUtil } from '../script/module/location.js'
import { Util } from '../script/util.js'
import { TTSUtil } from '../script/module/tts.js'
import { Permission } from '../script/permission.js'
import '../script/api.js'
export default {
name: 'index',
data() {
return {
wifiName: '',
Rssi: '',
weightStatus: false,
version: '',
ledStatus: true,
//机车手
driveName: '',
ifchanche: false,
templateName: '',
templetType: '',
sbId: '',
sbList: [],
// 设备名称
carName: '',
// 是否饲喂模式中
feedStatus: true,
//显示loading图标
isImgLoading: false,
//当前饲料名称
feedName: '',
batchName: '',
// 计划重量
plan: null,
// 装载重量
feed: 0,
// 当前车总重量
planTotal: 0,
total: 0,
//班次数据
classArr: [],
//当前班次
currClassIndex: 0,
//车次数据
carArr: [],
// 当前车次
currCarIndex: 0,
//当前的步骤状态值
activeStepsNum: 0,
//计划装料列表
stepsList: [],
url: '',
//局部操作loading
loadingShow: false,
gpsList: [],
refresh: true,
socketManager: null,
socketServerClient: null,
resultInterval:null,
}
},
methods: {
apiready() {
// socketManager = api.require('socketManager');
// socketServerClient = api.require('socketServerClient');
this.initPage()
api.addEventListener({
name : 'keyback'
}, function(ret, err) {
console.log('监听到返回按键');
});
// if (api.systemVersion > 10) {
// this.data.ifchanche = true
// this.startServer()
// }else{
// this.data.ifchanche = false
// }
},
startServer() {
let _this = this
// 平板服务
socketServerClient.startServer(
{
port: 2223,
heart: {
heartTime: 3,
heartMsg: '',
receiveMsg: ''
},
send: {
head: '',
end: 'ff',
outTime: 5,
sendByLength: {
length: 8
}
},
receive: {
head: '',
end: 'ff',
outTime: 5,
sendByLength: {
length: 8
}
}
}, function (ret, err) {
if (ret.status && ret.receiveMsg) {
console.log(api.deviceName + '' + ret.receiveMsg)
}
}
);
},
// 主机连接
clientConnect() {
let _this = this;
socketManager.createSocket({
host: '192.168.2.11',
port: 2223
}, function (ret, err) {
if (ret.state == 102) {
_this.writeMsg(ret.sid)
}
});
},
writeMsg(sid) {
var msg = Number(Math.random() * 10000).toFixed(2)
let _this = this;
socketManager.write({
sid: sid,
data: msg + 'ff'
}, function (ret, err) {
if (ret.status) {
_this.closeSocket(sid)
}
});
},
closeSocket(sid) {
socketManager.closeSocket({
sid: sid
}, function (ret, err) {
if (ret.status) {
// console.log(JSON.stringify(ret));
} else {
// console.log(JSON.stringify(err));
}
});
},
reloadPage() {
let _this = this;
api.confirm({
title: '提醒',
msg: '确认重新初始化页面么?',
buttons: ['确认', '取消']
}, function (ret, err) {
if (1 == ret.buttonIndex) {
_this.initPage()
}
});
},
//初始化页面
initPage() {
let _this = this
clearInterval(_this.data.resultInterval)
_this.data.resultInterval = setInterval(function () {
var feedListCache = []
var cacheList = api.getPrefs({ sync: true, key: 'feedListCache' })
// 存在
if (cacheList && cacheList!='' && cacheList!='[]') {
feedListCache = JSON.parse(cacheList)
POST('resultUpload', feedListCache[0], {}).then(ret => {
if (ret.code === 200) {
feedListCache.splice(0,1);
api.setPrefs({
key: 'feedListCache',
value: feedListCache
});
}
}).catch(err => {
api.toast({
msg: JSON.stringify(err)
})
})
}else{
}
}, 10000);
_this.resetData()
Util.appOpen()
_this.data.wifiName = ''
_this.data.Rssi = ''
var wifi = api.require('bgnWiFi');
wifi.getWifiInfo(function (ret, err) {
if (ret.status && ret.info) {
_this.data.wifiName = ret.info.SSID
}
});
_this.data.version = api.appVersion
api.clearCache(function() {
console.log("清除完成");
});
// 稳定状态false
api.setGlobalData({ key: 'wendin', value: false });
// 定时查询是否稳定
// setInterval(function () {
// var state = api.getGlobalData({ key: 'wendin' });
// if (state) {
// _this.handleNext()
// api.setGlobalData({ key: 'wendin', value: false });
// }
// }, 2000)
// 是否开启定位
// _this.ifHasLocation()
var classArr = api.getPrefs({
sync: true,
key: 'classArr'
});
if (classArr) {
_this.data.classArr = JSON.parse(classArr)
}
var carArr = api.getPrefs({
sync: true,
key: 'carArr'
});
if (carArr) {
_this.data.carArr = JSON.parse(carArr)
}
var sbList = api.getPrefs({
sync: true,
key: 'sbList'
});
if (sbList) {
_this.data.sbList = JSON.parse(sbList)
_this.data.sbId = JSON.parse(sbList)[0].sbId;
_this.data.carName = JSON.parse(sbList)[0].name;
}
// 获取登录信息
var loginUser = api.getPrefs({ sync: true, key: 'loginUser' })
var obj = JSON.parse(loginUser);
_this.data.driveName = obj.nickName
// 查询设备列表
_this.getSbList()
// 初始化班次
_this.initTime();
// 初始化语音播报
TTSUtil.initTTS()
},
//下一步
handleNext() {
let _this = this;
var json = _this.data.stepsList;
var date = new Date()
// 获取echarts页面饲喂结果
var feedJson = api.getGlobalData({ key: 'feedJson' });
if (!_this.data.isImgLoading) {
_this.data.isImgLoading = true;
_this.resultUpload(date, json, feedJson)
}
},
/**
* 查询设备列表
*/
getSbList() {
let that = this;
GET('sbList?sourceCow=' + api.getPrefs({ sync: true, key: 'sourceCow' })).then(ret => {
that.data.sbId = ret.data[0].sbId;
api.setGlobalData({ key: 'sbId', value: that.data.sbId });
that.data.carName = ret.data[0].name;
// that.initCamera(ret.data[0])
that.data.sbList = ret.data;
api.setPrefs({
key: 'sbList',
value: that.data.sbList
});
}).catch(err => {
api.toast({
msg: JSON.stringify(err)
})
})
},
/**
* 初始化班次
*/
initTime() {
let that = this
that.data.classArr = []
GET('time?sourceCow=' + api.getPrefs({ sync: true, key: 'sourceCow' })).then(ret => {
ret.data.forEach(e => {
var json = { name: e.name, time: e.start + '-' + e.end, batch: e.batch }
that.data.classArr.push(json)
})
api.setPrefs({
key: 'classArr',
value: that.data.classArr
});
var param = {
classCode: that.data.classArr[0].batch,
sbId: that.data.sbId,
sourceCow: api.getPrefs({ sync: true, key: 'sourceCow' }),
dateOf: Util.getDateStr(new Date())
}
this.initTrain(param);
}).catch(err => {
api.toast({
msg: JSON.stringify(err)
})
})
},
/**
* 初始化当前班次所有车次
*/
initTrain(param) {
let that = this;
that.data.feedStatus = true
that.data.carArr = []
that.data.feedName = '';
that.data.batchName = '';
that.data.plan = '';
that.data.stepsList = []
POST('planDay', param, {}).then(ret => {
if (ret.data.length == 0) {
api.toast({
msg: "该班次暂无车次信息"
})
var path = '../html/echarts_circle.html?id=0&plan=0&total=0&beforeWeight=0&type=1'
that.data.url = path
} else if (ret.data.length > 0) {
ret.data.forEach(e => {
let json = { id: e.id, name: '第' + e.trainNumber + '车(' + e.templetName + ')', trainNumber: e.trainNumber, classCode: e.classCode };
that.data.carArr.push(json)
})
api.setPrefs({
key: 'carArr',
value: that.data.carArr
});
var param = {
classCode: that.data.carArr[0].classCode,
sbId: that.data.sbId,
trainNumber: that.data.carArr[0].trainNumber,
sourceCow: api.getPrefs({ sync: true, key: 'sourceCow' }),
dateOf: Util.getDateStr(new Date())
}
this.initOne(param)
}
}).catch(err => {
api.toast({
msg: JSON.stringify(err)
})
})
},
/**
* 初始化当前班次每一车
*/
initOne(param) {
let that = this;
POST('planDay', param, {}).then(ret => {
if (ret.data.length == 0) {
api.toast({
msg: '该车次暂无计划信息',
location: 'middle'
})
}
ret.data.forEach(e => {
// 饲料
let feedJson = e.feedJson;
// 合并饲料和圈舍圈舍存入步骤stepsList
let json = [...e.feedJson, ...e.cowshedJson]
that.data.stepsList = json;
// 获取当前步骤下标
var index = that.data.activeStepsNum;
// 根据步骤下标取stepsList的值
// 饲料名称
that.data.feedName = json[index].name
// 班次名称
that.data.batchName = that.data.classArr[that.data.currClassIndex].name + that.data.carArr[that.data.currCarIndex].trainNumber
// 计划
that.data.plan = json[index].weight.toFixed(0)
// 获取当前车次总重量,配方名称,配方类型设备id
that.data.planTotal = e.total
that.data.templateName = e.templetName
that.data.templetType = e.templetType
that.data.sbId = e.sbId
// 设备id存入缓存
api.setGlobalData({ key: 'sbId', value: that.data.sbId });
// 清空之前所有feedJson
api.setGlobalData({ key: 'feedJson', value: {} });
// 设置下一个饲料搅拌开始时间和当前饲料名称到缓存
api.setGlobalData({ key: 'startTime', value: Util.currTimeFn(new Date()) });
api.setGlobalData({ key: 'feedName', value: that.data.feedName });
// 刷新echarts图表传入饲料id计划重量当前车次计划总重量之前重量未知,装料类型
// 判断是否圈舍
var batchRation = json[index].batchRation
var path = '';
if (undefined != batchRation) {
path = '../html/echarts_circle.html?id=' + json[index].id + '&plan=' + that.data.plan + '&total=' + that.data.planTotal + '&type=2&isFirst=true&allow=' + json[index].allow
} else {
path = '../html/echarts_circle.html?id=' + json[index].id + '&plan=' + that.data.plan + '&total=' + that.data.planTotal + '&type=1&isFirst=true&allow=' + json[index].allow
}
that.data.url = path
})
}).catch(err => {
api.toast({
msg: JSON.stringify(err)
})
})
},
initCamera(data) {
let _this = this;
if (!data.cameraAccessToken) {
api.alert({ msg: "该设备暂无摄像头信息,请检查配置" });
} else {
api.openFrame({
name: 'video',
scaleEnabled: false,
url: '../html/index.html',
rect: {
x: 555,
y: 80,
w: 220,
h: 180,
},
pageParam: {
data: data
}
});
}
},
resultUpload(date, json, feedJson) {
var dateOf = Util.getDateStr(date);
var dateTime = Util.currTimeFn(date)
let _this = this;
var param = {
dateOf: dateOf,
name: _this.data.feedName,
planWeight: feedJson.plan,
rationCowAmount: json[_this.data.activeStepsNum].cow,
batchRation: json[_this.data.activeStepsNum].batchRation,
feedWeight: feedJson.feed,
feedId: feedJson.id,
driver: _this.data.driveName,
type: feedJson.type,
sourceCow: api.getPrefs({ sync: true, key: 'sourceCow' }),
classCode: _this.data.currClassIndex + 1,
trainNumber: _this.data.currCarIndex + 1,
templet: _this.data.templateName,
templetType: _this.data.templetType,
sbId: _this.data.sbId,
createBy: _this.data.driveName,
start: api.getGlobalData({ key: 'startTime' }),
end: Util.currTimeFn(date),
time: Util.currTimeFn(date)
}
// 数据上传
_this.data.loadingShow = true;
var feedListCache = []
var cacheList = api.getPrefs({ sync: true, key: 'feedListCache' })
// 存在
if (cacheList && cacheList!='' && cacheList!='[]') {
feedListCache = JSON.parse(cacheList)
feedListCache.push(param)
api.setPrefs({
key: 'feedListCache',
value: feedListCache
});
}else{
feedListCache.push(param)
api.setPrefs({
key: 'feedListCache',
value: feedListCache
});
}
_this.data.isImgLoading = false;
_this.data.loadingShow = false;
// 设置下一个饲料开始时间
api.setGlobalData({ key: 'startTime', value: Util.currTimeFn(new Date()) });
// 读取下一个饲料信息
var data = _this.data.stepsList[_this.data.activeStepsNum + 1];
if (data == undefined) {
_this.data.refresh = true
// 计算本车此剩料
var remainWeight = api.getGlobalData({ key: 'totalWeight' }) - api.getGlobalData({ key: 'beforeWeight' })
var str = "";
if (remainWeight > 0) {
str = "剩料" + str + remainWeight + "kg";
// console.log("************************************当前车次剩料******************************" + remainWeight);
var remainData = {
cowAmount: json[_this.data.activeStepsNum].cowAmount,
cowshedId: feedJson.id,
dateOf: dateOf,
remain: remainWeight,
cowshedName: _this.data.feedName,
sourceCow: api.getPrefs({ sync: true, key: 'sourceCow' }),
createBy: "app上传"
}
POST('resultRemainUpload', remainData, {}).then(ret => {
// _this.data.isImgLoading = false;
})
}
// TTSUtil.readStr({ str: "本车饲喂完成" + str, voice: "xiaoyan" })
if (_this.data.currCarIndex + 1 == _this.data.carArr.length) {
// TTSUtil.readStr({ str: "本班次饲喂完成", voice: "xiaoyan" })
_this.data.feedStatus = false
} else {
_this.data.currCarIndex = _this.data.currCarIndex + 1
_this.data.activeStepsNum = 0
var param = {
classCode: _this.data.carArr[_this.data.currCarIndex].classCode,
sbId: _this.data.sbId,
trainNumber: _this.data.carArr[_this.data.currCarIndex].trainNumber,
sourceCow: api.getPrefs({ sync: true, key: 'sourceCow' }),
dateOf: dateOf
}
_this.initOne(param);
}
} else {
_this.data.refresh = false
_this.data.activeStepsNum += 1;
// 下一个index语音播报
var index = _this.data.activeStepsNum;
_this.data.feedName = json[index].name
_this.data.batchName = _this.data.classArr[_this.data.currClassIndex].name + _this.data.carArr[_this.data.currCarIndex].trainNumber
_this.data.plan = json[index].weight.toFixed(0)
_this.data.feed = 0;
// TTSUtil.readStr({ str: _this.data.feedName + _this.data.plan + "kg", voice: "xiaoyan" })
// setTimeout(() => {
// TTSUtil.readStr({ str: _this.data.feedName + _this.data.plan + "kg", voice: "xiaoyan" })
// }, 200);
// 清空之前所有feedJson
api.setGlobalData({ key: 'feedJson', value: {} });
// 设置下一个饲料搅拌开始时间和当前饲料名称到缓存
api.setGlobalData({ key: 'startTime', value: dateTime });
api.setGlobalData({ key: 'feedName', value: _this.data.feedName });
_this.data.url = ''
// 是否是圈舍
var batchRation = json[index].batchRation
if (undefined != batchRation) {
var path = '../html/echarts_circle.html?id=' + json[index].id + '&plan=' + _this.data.plan + '&total=' + _this.data.planTotal + '&beforeWeight=' + feedJson.beforeWeight + '&type=2&isFirst=false&allow=' + json[index].allow
} else {
var path = '../html/echarts_circle.html?id=' + json[index].id + '&plan=' + _this.data.plan + '&total=' + _this.data.planTotal + '&beforeWeight=' + feedJson.beforeWeight + '&type=1&isFirst=false&allow=' + json[index].allow
}
_this.data.url = path
}
// POST('resultUpload', param, {}).then(ret => {
// }).catch(err => {
// api.toast({
// msg: JSON.stringify(err)
// })
// })
},
// gps数据上报
startGpsService(timeInterval) {
let that = this;
bmLocationUtil.initLoc();
setInterval(function () {
bmLocationUtil.singleLocation({}, function (ret) {
if (that.data.gpsList.length < 10) {
that.data.gpsList.push(ret.location)
} else if (that.data.gpsList.length >= 10) {
console.log("*********************GPS信息上报*********************");
var data = {
sbId: that.data.sbId,
gpsList: that.data.gpsList,
}
that.gpsUpload(data)
that.data.gpsList = []
}
})
}, timeInterval)
},
/**
* 定位数据上报
*/
gpsUpload(data) {
POST('gpsUpload', data, {}).then(ret => {
}).catch(err => {
api.toast({
msg: JSON.stringify(err)
})
})
},
//选择饲喂车
carsChange(e) {
this.data.sbId = this.data.sbList[e.detail.value].sbId;
api.setGlobalData({ key: 'sbId', value: this.data.sbId });
this.data.carName = this.data.sbList[e.detail.value].name;
this.initTime();
// this.initCamera(this.data.sbList[e.detail.value])
},
//左侧车次点击事件
handleCarClick(index, item) {
this.data.isImgLoading = false;
this.data.activeStepsNum = 0
this.data.currCarIndex = index;
var param = {
classCode: item.classCode,
sbId: this.data.sbId,
trainNumber: item.trainNumber,
sourceCow: api.getPrefs({ sync: true, key: 'sourceCow' }),
dateOf: Util.getDateStr(new Date())
}
this.initOne(param)
},
//班次点击事件
handleClassClick(index, item) {
this.data.isImgLoading = false;
this.data.currCarIndex = 0
this.data.activeStepsNum = 0
this.data.feedStatus = true
var param = {
classCode: item.batch,
sbId: this.data.sbId,
sourceCow: api.getPrefs({ sync: true, key: 'sourceCow' }),
dateOf: Util.getDateStr(new Date())
}
this.initTrain(param);
this.data.currClassIndex = index;
},
// 字符卡配置信息
showZifuka() {
var size = 0;
var cacheList = api.getPrefs({ sync: true, key: 'feedListCache' })
// 存在
if (cacheList && cacheList!='' && cacheList!='[]') {
var feedListCache = JSON.parse(cacheList)
size = feedListCache.length
}
var msg = "字符卡配置 " + api.getGlobalData({ key: 'zfkTcp' }) + '字符卡地址' + api.getGlobalData({ key: 'addrList' })
msg += ", 称重配置 " + api.getGlobalData({ key: 'weightTcp' }) + ',未上传数据'+size+'条'
api.alert({ msg: msg });
},
// imgUpload(date){
// let _this = this;
// ezopenUtil.capPicture(function (ret) {
// api.ajax({
// url: 'http://192.168.0.107:8088/app/tmr/imgUpload',
// method: 'post',
// data: {
// values: {
// name: _this.data.feedName+date.getTime()
// },
// files: {
// file: ret.path
// }
// }
// },function(ret,err){
// });
// })
// },
//退出登录
handleBackSys() {
$('#dialog').show();
},
//确认退出
handldeConfirmBtn(type) {
$('#dialog').close();
if (type === '1') {
//跳转到login.stml
api.closeWin();
api.removePrefs({
key: 'token'
});
api.removePrefs({
key: 'loginUser'
});
api.removePrefs({
key: 'sourceCow'
});
api.clearCache(function() {
console.log("清除完成");
});
// api.removePrefs({
// key: 'feedListCache'
// });
}
},
/**
* 更新配方
*/
refreshDayPlan() {
api.clearCache(function() {
console.log("清除完成");
});
if (this.data.refresh) {
// this.resetData()
// // 获取登录信息
// var loginUser = api.getPrefs({ sync: true, key: 'loginUser' })
// var obj = JSON.parse(loginUser);
// this.data.driveName = obj.nickName
// // 查询设备列表
// this.getSbList()
var param = {
sourceCow: api.getPrefs({ sync: true, key: 'sourceCow' }),
dateOf: Util.getDateStr(new Date())
}
POST('planDayInit', param, {}).then(ret => {
this.initPage();
}).catch(err => {
api.toast({
msg: JSON.stringify(err)
})
})
} else {
console.log("**********************饲喂过程中禁止刷新**********************");
}
},
/**
* 重置数据
*/
resetData() {
this.data.version= '',
this.data.ifchanche= false,
this.data.wifiName= ''
this.data.Rssi= ''
this.data.total = 0,
this.data.weightStatus = false
this.data.ledStatus = true
this.data.driveName = ''
this.data.templateName = ''
this.data.templetType = ''
this.data.sbId = ''
this.data.sbList = []
this.data.carName = ''
this.data.feedStatus = true
this.data.isImgLoading = false
this.data.feedName = ''
this.data.batchName = ''
this.data.plan = null
this.data.feed = 0
this.data.planTotal = 0
this.data.total = 0
this.data.classArr = []
this.data.currClassIndex = 0
this.data.carArr = []
this.data.currCarIndex = 0
this.data.activeStepsNum = 0
this.data.stepsList = []
this.data.url = ''
this.data.loadingShow = false
this.data.gpsList = []
this.data.refresh = true
},
ifHasLocation() {
var statusJson = Permission.hasPermission('location');
if (statusJson[0].granted == true) {
// this.startGpsService(600000);
} else {
api.confirm({
title: '提醒',
msg: '需要开启定位权限,去设置?',
buttons: ['确认', '取消']
}, function (ret, err) {
if (1 == ret.buttonIndex) {
Permission.reqPermission('location', function (ret, err) {
if (ret) {
if (ret.never == true) {
return;
} else {
if (ret.list[0].granted == true) {
// this.startGpsService(600000);
} else {
return;
}
}
}
});
}
});
}
},
}
}
</script>
<style>
.index_wrap {
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 1%;
position: relative;
}
.index_header {
width: 100%;
height: 8vh;
box-sizing: border-box;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 0 30px;
}
.header_left {
width: 50%;
display: flex;
flex-direction: row;
align-items: center;
}
.header_led {
display: flex;
flex-direction: row;
align-items: center;
margin-left: 10px;
}
.header_led_text {
font-size: 14px;
font-weight: 900;
color: #0616f8;
}
.header_led_circle {
width: 20px;
height: 20px;
border-radius: 50%;
background-color: rgb(160, 158, 158);
}
.header_btn {
background-color: #407ae6;
color: #ffffff;
/*平板 */
/* font-size: 20px;
height: 40px; */
/*手机 */
font-size: 12px;
height: 30px;
font-weight: 900;
width: 26%;
}
.header_btn1 {
/*平板 */
/* font-size: 20px;
height: 40px; */
/*手机 */
font-size: 12px;
height: 30px;
background-color: #e60d0d;
color: #ffffff;
font-weight: 900;
}
.header_right {
width: 50%;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.left_text {
/* 平板 */
/* font-size: 26px; */
/* 手机 */
font-size: 16px;
font-weight: 900;
}
.index_section {
width: 100%;
height: 86vh;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
box-sizing: border-box;
}
.section_left {
width: 20%;
height: 100%;
box-sizing: border-box;
border: 1px solid #a3caef;
}
.left_item {
box-sizing: border-box;
padding: 20px 0;
text-align: center;
}
.left_item_text {
/*平板 */
/* font-size: 26px; */
/*手机 */
font-size: 16px;
font-weight: 900;
}
.section_right {
width: 80%;
height: 100%;
box-sizing: border-box;
padding: 10px;
border-right: 1px solid #a3caef;
border-top: 1px solid #a3caef;
border-bottom: 1px solid #a3caef;
border-top-right-radius: 8px;
border-bottom-right-radius: 8px;
}
.section_right_scroll {
width: 100%;
height: 15vh;
}
.right_operation {
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 10px;
}
.operation_card {
width: 100%;
height: 80%;
box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: center;
}
.card_col_name {
width: 100%;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.opera_item_btn {
width: 100%;
height: 20%;
text-align: right;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.next_btn {
background-color: #407ae6;
/* height: 70px; */
height: 100%;
width: 30%;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
border-radius: 4px;
}
.next_btn_text {
color: #ffffff;
/* font-size:35px; */
font-size: 25px;
font-weight: 900;
}
.card_col_name_text {
/* font-size: 75px; */
font-size: 25px;
font-weight: 900;
}
.index_footer {
width: 100%;
height: 7vh;
box-sizing: border-box;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
margin-top: 10px;
}
.footer_item {
width: 24%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
box-sizing: border-box;
border-radius: 4px;
margin-left: 10px;
border: 1px solid #1482f0;
}
.footer_text_one {
/* font-size: 26px; */
font-size: 14px;
font-weight: 900;
}
/* 弹窗样式 --start */
.dialog {
position: absolute;
top: 30%;
left: 50%;
transform: translateX(-50%);
height: 40%;
width: 30%;
border: 1px solid #ccc;
background-color: rgb(255, 255, 255);
}
.d-area {
height: 100%;
}
.title {
height: 40px;
font-weight: 900;
background-color: #ccc;
line-height: 40px;
padding-left: 8px;
}
.content {
flex: 1;
padding: 10px;
font-weight: 900;
}
.nav {
height: 45px;
flex-direction: row;
padding: 0px 30px;
justify-content: center;
align-items: center;
border-top: 1px solid #ccc;
}
.btn {
width: 100px;
height: 35px;
margin: 8px;
}
/* 弹窗样式 --end */
</style>