rescue-driver/pages/index/index.vue

1260 lines
30 KiB
Vue
Raw Normal View History

2024-08-28 22:02:00 +08:00
<template>
<view class="content">
<view class="c-top">
<view class="t-title">接单大厅</view>
<view class="dis-b" style="margin-top: 16px;">
<view class="t-left">
<!-- <view class="touxiang" v-if="userInfo.avatar != ''">
</view> -->
<view class="touxiang">
2024-09-20 17:00:33 +08:00
<image :src="baseImageUrl + uesrInfo.avatar" mode=""></image>
2024-08-28 22:02:00 +08:00
</view>
<view>
<view class="t-zi1">{{uesrInfo.realName || '用户昵称'}}</view>
<view class="t-biao">{{uesrInfo.avgScore || 5.0}} <uni-icons type="star-filled" size="18"
color="#fffff"></uni-icons> </view>
</view>
</view>
<view class="t-right">
<view style="margin-bottom: 10px;">
<u-switch v-model="checkedindex" @change="getcheckedindex()" color="#1243cb"
style="transform:scale(0.7)" />
</view>
<view class="t-zi2" v-if="checkedindex==false">暂停</view>
<view class="t-zi2" v-if="checkedindex==true">工作</view>
</view>
</view>
<view class="t-bottom">
<view class="top-box">
<view class="t-lan">{{uesrInfo.dqrNum || 0}}</view>
<view class="t-hui">待确认</view>
</view>
<view class="top-box">
<view class="t-lan">{{uesrInfo.jxNum || 0 }}</view>
<view class="t-hui">进行中</view>
</view>
<view class="top-box" style="border: none;">
<view class="t-lan">{{uesrInfo.wcNum || 0 }}</view>
<view class="t-hui">已完成</view>
</view>
</view>
</view>
<view class="t-ybr">
<view class="ybr-box" v-for="(item,index) in topdata" :key="index" @click="gettab(index,item.id)">
<text class="hui-text" :class="{'indexhei' : tabindex == index}">{{item.text}}</text>
<view class="gang" :class="{'indexlan' : tabindex == index}"></view>
</view>
</view>
<view class="mubu">
<view class="hui-content">
<view class="jsy" v-if="singleList.length == 0">
<image src="http://www.nuoyunr.com/lananRsc/detection/qs.png" mode=""></image>
</view>
<view class="content-box" v-for="(item,index) in singleList" :key="index">
<view class="dis-bb">
<view class="changimg" v-if="item.rescueTypeStr == '拖车' ">
<image src="../../static/images/tche.png" mode=""></image>
</view>
<view class="changimg" v-if="item.rescueTypeStr == '扣车' ">
<image src="../../static/images/kouche.png" mode=""></image>
</view>
<view class="changimg" v-if="item.rescueTypeStr == '送油' ">
<image src="../../static/images/syou.png" mode=""></image>
</view>
<view class="changimg" v-if="item.rescueTypeStr == '搭电' ">
<image src="../../static/images/ddian.png" mode=""></image>
</view>
<view class="changimg" v-if="item.rescueTypeStr == '换胎' ">
<image src="../../static/images/htai.png" mode=""></image>
</view>
<view class="ja-you">{{item.rescuePosition || ''}}</view>
2024-12-23 12:30:58 +08:00
2024-08-28 22:02:00 +08:00
</view>
<view class="dix" style="margin: 10px auto;">
<view class="htzit">
<view class="shiwuimg">
<image src="../../static/images/lxr.png" mode=""></image>
</view>
<text>联系人</text>
</view>
<text class="xshui">{{item.connectionName || '' }}</text>
</view>
<view class="dix" style="margin: 10px auto;">
<view class="htzit">
<view class="shiwuimg">
<image src="../../static/images/cllx.png" mode=""></image>
</view>
<text>车辆信息</text>
</view>
<text class="xshui">{{item.carTypeStr||''}} {{item.licenseNum || ''}}</text>
</view>
<view class="dix" style="margin: 10px auto;">
<view class="htzit">
<view class="shiwuimg">
<image src="../../static/images/fqsj.png" mode=""></image>
</view>
<text>救援时间</text>
</view>
<text class="xshui">{{item.rescueTime || ''}}</text>
</view>
<view class="dis-tt" v-if="rescueStatus == 2">
<view class="inanniu" @click="dialogToggle(item.rescueDriverId)">
<uni-icons type="checkmarkempty" color="#3CBC6F" size="20"></uni-icons>
<text>接受</text>
</view>
<view class="caanniu" @click="inputDialogToggle(item.rescueDriverId)">
<uni-icons type="closeempty" color="#e43d33" size="20"></uni-icons>
<text>拒绝</text>
</view>
<view class="anniua" @click="GOdetails(item.id)">
<view class="shiwuimg">
<image src="../../static/images/cldd.png" mode=""></image>
</view>
<text>查看详情</text>
</view>
</view>
<view class="dis-tt" v-if="rescueStatus == 3">
<view class="inanniu" @click="diyshow(item.id)">
<uni-icons type="location" color="#3CBC6F" size="20"></uni-icons>
<text>记录</text>
</view>
<view class="caanniu" v-if="!item.setMoney&&(!item.emptyNum||item.emptyNum==0)"
@click="diyshow1(item.id)">
<uni-icons type="wallet" color="#e43d33" size="20"></uni-icons>
<text>收费</text>
</view>
<view class="inanniu" v-if="item.setMoney||(item.emptyNum||item.emptyNum>0)"
@click="diyshow2(item.id)">
<uni-icons type="checkmarkempty" color="#3CBC6F" size="20"></uni-icons>
<text>完成</text>
</view>
<view class="anniua" @click="GOdetails(item.id)">
<view class="shiwuimg">
<image src="../../static/images/cldd.png" mode=""></image>
</view>
<text>查看详情</text>
</view>
2024-12-23 12:30:58 +08:00
</view>
<view class="dis-tt" v-if="rescueStatus == 5">
<view class="caanniu" @click="GOrepair(item)" v-if="item.isWeiXiu!=='1'">
<uni-icons type="wallet" color="#e43d33" size="20"></uni-icons>
<text>转维修</text>
</view>
<view class="anniua" @click="GOdetails(item.id)" >
<view class="shiwuimg">
<image src="../../static/images/cldd.png" mode=""></image>
</view>
<text>查看详情</text>
</view>
2024-08-28 22:02:00 +08:00
</view>
</view>
</view>
<view style="width: 100%; height: 50px;"></view>
</view>
<uni-popup ref="alertDialog" type="dialog">
<uni-popup-dialog :type="msgType" cancelText="关闭" confirmText="同意" title="通知" content="您是否同意接单"
@confirm="dialogConfirm" @close="dialogClose"></uni-popup-dialog>
</uni-popup>
<uni-popup ref="inputDialog" type="dialog">
<uni-popup-dialog ref="inputClose" mode="input" title="拒绝原由" :value="evalue" placeholder="请输入拒绝原由"
@confirm="dialogInputConfirm"></uni-popup-dialog>
</uni-popup>
<u-popup :show="show" mode="center" :round="10" @close="close2" @open="open">
<view class="popup-box">
<view class="p-title">描述</view>
<!-- <view class="p-hui">已经到达救援现场</view> -->
<!-- <view class="wrap-du">
<view class="wrap-div" v-for="(item,index) in dulist " :key="index">
<text>{{item.dictLabel}}</text>
</view>
</view> -->
<view class="huinput" @click="gettype">
<text>类型</text>
<text class="tshe">{{ dictLabel}}</text>
</view>
<view class="huinput">
<text>现场情况</text>
<u--textarea v-model="remark" placeholder="请输入备注" border="bottom" autoHeight></u--textarea>
</view>
<view class="p-title">现场图片</view>
<view class="huinput">
<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple
:maxCount="5"></u-upload>
</view>
<view class="qzanniu" @click="getdaoda()">
<text>确认</text>
</view>
</view>
</u-popup>
<u-popup :show="show1" mode="center" :round="10" @close="close" @open="open">
<view class="popup-box">
<view class="p-title">金额</view>
<view class="huinput">
<u--input type="number " v-model="setMoney" placeholder="请输金额" border="surround"
clearable></u--input>
</view>
<view class="qzanniu" @click="getjine()">
<text>确认</text>
</view>
</view>
</u-popup>
<u-popup :show="show2" mode="center" :round="10" @close="close1" @open="open">
<view class="popup-box">
<view class="p-title" style="width: 100%;text-align: center; margin: 20px auto;">您确认完成吗</view>
<view class="qzanniu" @click="yesitis()">
<text>确认</text>
</view>
</view>
</u-popup>
2024-08-31 01:22:19 +08:00
<u-picker :show="show3" :columns="columns" keyName="label" @cancel="cancels()"
2024-08-28 22:02:00 +08:00
@confirm="confirms"></u-picker>
<tabBar :msg="msg "></tabBar>
</view>
</template>
<script>
import request from '../../utils/request';
import tabBar from '../../components/tabBar/tabBar.vue'
import upload from '@/utils/upload.js'
import {
getToken
} from '@/utils/auth'
const keepAlivePlugin = uni.requireNativePlugin('Ba-KeepAlive')
const jyJPush = uni.requireNativePlugin('JY-JPush');
export default {
data() {
return {
msgSocket: this.$msgSocket,
id: '',
value5: '',
baseUrl: this.$baseUrl,
2024-09-20 17:00:33 +08:00
baseImageUrl: this.$baseImageUrl,
2024-08-28 22:02:00 +08:00
fileList1: [],
uesrInfo: {},
show: false,
show1: false,
show2: false,
show3: false,
type: 'center',
msgType: 'success',
messageText: '这是一条成功提示',
msg: '1',
dictValue: '',
dictLabel: '请选择类型',
topdata: [{
text: '待确认',
id: 2
},
{
text: '进行中',
id: 3
},
{
text: '已完成',
id: 5
}
],
columns: [],
evalue: '',
singleList: [],
images: [],
remark: '',
longitude: '',
latitude: '',
tabindex: 0,
rescueId: 0,
setMoney: '',
title: 'user',
checkedindex: false,
pageNum: 1, //第几页
pageSize: 10, //一页多少张
totalPages: 0, //总数
rescueStatus: 2,
dulist: [],
nowPageInterval: null,
keepLive: {
channelId: 'Ba-KeepAlive',
channelName: "Ba-KeepAlive",
title: "蓝安救援司机端正在运行",
content: "蓝安救援司机端正在运行",
dataResult: "",
type: undefined
}
}
},
onLoad() {
this.$startSocketConnect(uni.getStorageSync('driverInfo'))
this.$startMsgSocket(uni.getStorageSync('userId'))
// #ifdef APP
this.register()
this.jyPushStart()
// #endif
if (!this.nowPageInterval) {
this.nowPageInterval = setInterval(() => {
this.msgSocket = this.$msgSocket
}, 3000);
}
setTimeout(() => {
this.msgInfo()
}, 2000);
},
watch: {
msgSocket(newVal, oldVal) {
this.msgInfo()
},
deep: true,
},
onReachBottom() {
if (this.pageNum >= this.totalPages) {
uni.showToast({
title: '没有下一页数据',
icon: 'none'
})
} else {
this.pageNum++
this.driverRescuePage()
}
},
onShow() {
this.permissions()
this.getthreelist()
this.getStatus()
this.pageNum = 1
this.singleList = []
this.driverRescuePage()
},
components: {
tabBar,
},
2024-12-23 12:30:58 +08:00
methods: {
GOrepair(item){
let data ={
id: item.id
}
request({
url: '/app/rescueInfo/toRepair',
method: 'post',
params: data
}).then((res) => {
if (res.code == 200) {
uni.showToast({
title: '操作成功'
})
this.singleList = []
this.driverRescuePage()
}
})
},
2024-08-28 22:02:00 +08:00
jyPushStart() {
// 暂时只有安卓支持
jyJPush.registerSDKCallBack(sdkCallBack => {
// 这里会返回regid
console.log("sdk Callback 结果 " + JSON.stringify(sdkCallBack));
})
// 此处只是演示 授权实际应该弹出自己的隐私授权页面或者用uniapp提供的隐私协议
setTimeout(function() {
jyJPush.setAuth({
auth: "1"
}, res => {
console.log("auth 结果 " + JSON.stringify(res));
if (res.errorCode == 0) {
// 安卓需要单独调用
if (uni.getSystemInfoSync().platform == 'android') {
jyJPush.android_init(initRes => {
console.log("init 结果 " + JSON.stringify(initRes));
jyJPush.deleteJYJPushAlias({
// 可以不用传值进去,但是需要配置这项数据
}, result => {
jyJPush.setJYJPushAlias({
userAlias: uni.getStorageSync('userId')
}, result => {
// 设置成功或者失败都会通过这个result回调返回数据数据格式保持极光返回的安卓/iOS数据一致
// 注:若没有返回任何数据,考虑是否初始化完成
console.log('setJYJPushAlias', result);
jyJPush.getJYJPushAlias({
// 可以不用传值进去,但是需要配置这项数据
}, result => {
console.log(
'getJYJPushAlias',
result);
});
});
});
})
}
}
})
}, 5000);
},
msgInfo() {
if (this.msgSocket) {
this.msgSocket.onMessage(res => {
console.log('触发首页的消息回调');
this.singleList = []
this.getthreelist()
this.driverRescuePage()
})
}
},
register() { //注册
console.log(keepAlivePlugin, 'keepAlive');
keepAlivePlugin.register({
channelId: this.keepLive.channelId,
channelName: this.keepLive.channelName,
title: this.keepLive.title,
content: this.keepLive.content,
},
(res) => {
console.log('保活注册', res);
});
},
isRunning() { //是否正在运行
keepAlive.isRunning((res) => {
console.log('保活服务验证', res);
});
},
restart() { //重启
keepAlive.restart((res) => {
console.log('重启保活服务', res);
})
},
driverRescuePage() {
let data = {
rescueStatus: this.rescueStatus,
pageSize: this.pageSize,
pageNum: this.pageNum
}
this.getthreelist()
request({
url: '/app/driver/driverRescuePage',
method: 'get',
params: data
}).then((res) => {
if (res.code == 200) {
this.singleList = this.singleList.concat(res.rows)
let total = res.total
this.totalPages = Math.ceil(total / this.pageSize);
console.log('this.singleList', this.singleList);
}
})
},
gettype() {
this.columns = []
this.newrecord()
this.show3 = true
},
confirms(e) {
2024-08-31 01:22:19 +08:00
this.dictValue = e.value[0].value
this.dictLabel = e.value[0].label
2024-08-28 22:02:00 +08:00
// console.log(zhi);
this.show3 = false
},
cancels() {
this.show3 = false
},
newrecord() {
request({
url: '/rescue/dict/data/type/rescue_driver_record_type',
method: 'get',
}).then((res) => {
let arr = res.data
arr.shift();
this.columns.push(arr)
console.log(res);
})
2024-09-04 14:36:17 +08:00
2024-08-28 22:02:00 +08:00
// request({
// url: '/system/dict-data/page?pageNo=1&pageSize=100&dictType=rescue_driver_record_type',
// method: 'get'
// }).then(res => {
// console.log('res: ',res);
// if (res.data && res.data.list && res.data.list.length > 0) {
// const data = res.data.list.map(m => {
// return {
// dictValue: m.value,
// dictLabel: m.label
// }
// })
// data.shift();
// this.columns.push(data)
// }
// })
},
open() {
},
close2() {
this.show = false
},
close() {
this.show1 = false
},
close1() {
this.show2 = false
},
getdaoda() {
console.log(this.images);
if (!this.dictValue) {
uni.showToast({
title: '类型不能有空',
icon: 'none'
})
return
}
2024-10-01 10:51:06 +08:00
if (!this.images) {
2024-08-28 22:02:00 +08:00
uni.showToast({
title: '请上传图片再完成',
icon: 'none'
})
return
}
let tempImage = JSON.parse(JSON.stringify(this.images))
let data = {
rescueInfoId: this.rescueId,
title: 1,
images: tempImage.join(","),
remark: this.remark,
type: this.dictValue,
}
uni.getLocation({
isHighAccuracy: true,
success: (res) => {
console.log('获取经纬度', res);
data.lng = res.longitude
data.lat = res.latitude
},
fail: (error) => {},
complete: (msgdata) => {
console.log("完成", msgdata);
}
});
console.log("发出请求s");
request({
url: '/app/driver/uploadDetailByDriver',
method: 'post',
data: data
}).then((res) => {
if (res.code == 200) {
this.images = [],
this.remark = '',
this.dictLabel = '请选择类型',
this.dictValue = '',
this.fileList1 = [],
uni.showToast({
title: '提交成功',
})
this.show = false
}
})
},
diyshow(id) {
this.rescueId = id
this.show = true
},
diyshow1(id) {
this.rescueId = id
this.show1 = true
},
diyshow2(id) {
this.rescueId = id
this.show2 = true
},
yesitis() {
let data = {
rescueId: this.rescueId,
}
request({
url: '/app/driver/endRescue',
method: 'post',
params: data
}).then((res) => {
if (res.code == 200) {
uni.showToast({
title: '提交成功',
})
this.singleList = []
this.driverRescuePage()
this.show2 = false
}
})
},
getjine() {
if (this.setMoney == '') {
uni.showToast({
title: '弹窗不能有空',
icon: 'none'
})
return
}
let data = {
rescueId: this.rescueId,
setMoney: this.setMoney,
}
request({
url: '/app/driver/setOrderMoney',
method: 'post',
params: data
}).then((res) => {
if (res.code == 200) {
uni.showToast({
title: '提交成功',
})
this.singleList = []
this.driverRescuePage()
this.show1 = false
}
})
},
getthreelist() {
request({
url: '/app/driver/driverInfoStatistics?driverId=' + uni.getStorageSync(
'driverInfo'),
method: 'get',
}).then((res) => {
this.uesrInfo = res.data
})
},
getList() {
request({
url: '/app/driver/driverRescueList',
method: 'get',
}).then((res) => {
console.log('列表', res);
this.singleList = res.data
})
},
GOdetails(id) {
uni.navigateTo({
url: '/pages/orderDetails/details?id=' + id
})
},
getStatus() {
request({
url: '/app/driver/getStatus?driverId=' + uni.getStorageSync('driverInfo'),
method: 'get',
}).then((res) => {
console.log(res);
if (res.msg == 2) {
this.checkedindex = false
} else {
this.checkedindex = true
}
})
},
dialogToggle(id) {
this.id = id
this.$refs.alertDialog.open()
},
inputDialogToggle(id) {
this.id = id
this.$refs.inputDialog.open()
},
dialogConfirm() {
let data = {
rescueDriverId: this.id,
choose: 1,
}
request({
url: '/app/driver/driverAccept',
method: 'post',
params: data
}).then((res) => {
console.log(res);
this.getList()
this.getthreelist()
})
},
dialogClose() {
console.log('点击关闭')
},
dialogInputConfirm(val) {
console.log(val);
let data = {
rescueDriverId: this.id,
choose: 0,
rejectReason: val
}
request({
url: '/app/driver/driverAccept',
method: 'post',
params: data
}).then((res) => {
console.log(res);
this.getList()
this.$refs.inputDialog.close()
2024-08-31 01:22:19 +08:00
this.getthreelist()
2024-08-28 22:02:00 +08:00
})
},
getnaiv() {
uni.navigateTo({
url: '/pages/rescue/rescue'
})
},
getcheckedindex() {
let data = {
driverId: uni.getStorageSync('driverInfo')
}
request({
url: '/app/driver/updateWork',
method: 'post',
params: data
}).then((res) => {}).finally(() => {
this.getStatus()
})
},
gettab(index, id) {
this.pageNum = 1
this.singleList = []
this.rescueStatus = id
this.tabindex = index
if (index == 0) {
this.driverRescuePage(2)
}
if (index == 1) {
this.driverRescuePage(3)
}
if (index == 2) {
this.driverRescuePage(5)
}
},
deletePic(event) {
this[`fileList${event.name}`].splice(event.index, 1)
},
// 新增图片
async afterRead(event) {
// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
let lists = [].concat(event.file)
let fileListLen = this[`fileList${event.name}`].length
lists.map((item) => {
this[`fileList${event.name}`].push({
...item,
})
})
for (let i = 0; i < lists.length; i++) {
const result = await this.uploadFilePromise(lists[i].url)
let item = this[`fileList${event.name}`][fileListLen]
this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
status: 'success',
message: '',
url: result
}))
fileListLen++
}
},
uploadFilePromise(url) {
upload({
2024-08-31 01:22:19 +08:00
url: '/infra/file/upload',
2024-08-28 22:02:00 +08:00
filePath: url,
}).then((res) => {
2024-10-01 10:51:06 +08:00
console.log('images', res.data);
this.images.push(res.data)
2024-08-28 22:02:00 +08:00
})
},
permissions() {
2024-09-04 14:36:17 +08:00
// #ifdef APP-PLUS
2024-08-28 22:02:00 +08:00
if (plus.os.name == 'Android') { // 判断是Android
console.log('1212');
var main = plus.android.runtimeMainActivity();
var pkName = main.getPackageName();
var uid = main.getApplicationInfo().plusGetAttribute("uid");
var NotificationManagerCompat = plus.android.importClass(
"android.support.v4.app.NotificationManagerCompat");
if (NotificationManagerCompat == null) {
NotificationManagerCompat = plus.android.importClass(
"androidx.core.app.NotificationManagerCompat");
}
console.log(NotificationManagerCompat, 'NotificationManagerCompat');
console.log('areNotificationsEnabled12');
var areNotificationsEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled();
2024-09-04 14:36:17 +08:00
// 未开通‘允许通知’权限,则弹窗提醒开通,并点击确认后,跳转到系统设置页面进行设置
2024-08-28 22:02:00 +08:00
console.log(areNotificationsEnabled, 'areNotificationsEnabled');
if (!areNotificationsEnabled) {
uni.showModal({
title: '通知权限开启提醒',
content: '您还没有开启通知权限,无法接受到消息通知,是否前往设置?',
success: function(res) {
if (res.confirm) {
var Intent = plus.android.importClass('android.content.Intent');
var Build = plus.android.importClass("android.os.Build");
2024-09-04 14:36:17 +08:00
//android 8.0引导
2024-08-28 22:02:00 +08:00
if (Build.VERSION.SDK_INT >= 26) {
var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
intent.putExtra('android.provider.extra.APP_PACKAGE', pkName);
2024-09-04 14:36:17 +08:00
} else if (Build.VERSION.SDK_INT >= 21) { //android 5.0-7.0
2024-08-28 22:02:00 +08:00
var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
intent.putExtra("app_package", pkName);
intent.putExtra("app_uid", uid);
2024-09-04 14:36:17 +08:00
} else { //(<21)其他--跳转到该应用管理的详情页
2024-08-28 22:02:00 +08:00
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
var uri = Uri.fromParts("package", mainActivity.getPackageName(),
null);
intent.setData(uri);
}
2024-09-04 14:36:17 +08:00
// 跳转到该应用的系统通知设置页
2024-08-28 22:02:00 +08:00
main.startActivity(intent);
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
} else if (plus.os.name == 'iOS') { // 判断是ISO
var isOn = undefined;
var types = 0;
var app = plus.ios.invoke('UIApplication', 'sharedApplication');
var settings = plus.ios.invoke(app, 'currentUserNotificationSettings');
if (settings) {
types = settings.plusGetAttribute('types');
plus.ios.deleteObject(settings);
} else {
types = plus.ios.invoke(app, 'enabledRemoteNotificationTypes');
}
plus.ios.deleteObject(app);
isOn = (0 != types);
if (isOn == false) {
uni.showModal({
title: '通知权限开启提醒',
content: '您还没有开启通知权限,无法接受到消息通知,是否前往设置?',
success: function(res) {
if (res.confirm) {
var app = plus.ios.invoke('UIApplication', 'sharedApplication');
var setting = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:');
plus.ios.invoke(app, 'openURL:', setting);
plus.ios.deleteObject(setting);
plus.ios.deleteObject(app);
}
},
})
}
}
2024-09-04 14:36:17 +08:00
// #endif
2024-08-28 22:02:00 +08:00
}
}
}
</script>
<style scoped lang="scss">
.tshe {
color: #0D2E8D;
font-size: 16px;
}
.wrap-du {
display: flex;
width: 100%;
flex-wrap: wrap;
}
.wrap-div {
margin: 5px 10px;
font-size: 14px;
box-sizing: border-box;
padding: 5px;
// dbackground: #E1E7FB;
border-radius: 3px 3px 3px 3px;
opacity: 1;
border: 1px solid #DDDDDD;
color: #333333;
}
.content {
box-sizing: border-box;
padding-top: 40px;
// background: #F4F4F4;
width: 100%;
// height: calc(100vh);
}
.dix {
display: flex;
align-items: center;
}
.htzit {
display: flex;
align-items: center;
font-size: 15px;
color: #999999;
}
.xshui {
font-size: 15px;
font-weight: 400;
color: #333333;
}
.changimg {
width: 58px;
height: 20px;
margin-right: 5px;
image {
width: 100%;
height: 100%;
}
}
.shiwuimg {
width: 15px;
height: 15px;
margin-right: 5px;
image {
width: 100%;
height: 100%;
}
}
.inanniu {
width: 30%;
height: 38px;
border-radius: 19px 19px 19px 19px;
border: 1px solid #3CBC6F;
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
color: #3CBC6F;
}
.caanniu {
width: 30%;
height: 38px;
border-radius: 19px 19px 19px 19px;
border: 1px solid #e43d33;
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
color: #e43d33;
}
.lanniu {
width: 30%;
height: 38px;
border-radius: 19px 19px 19px 19px;
border: 1px solid #3C9CFF;
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
color: #3C9CFF;
}
.anniua {
width: 30%;
height: 38px;
border-radius: 19px 19px 19px 19px;
border: 1px solid #0D2E8D;
display: flex;
align-items: center;
justify-content: center;
font-size: 15px;
background: #0D2E8D;
color: #ffffff;
}
.dis-bb {
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding-bottom: 15px;
border-bottom: 1px solid #EEEEEE;
}
.dis-tt {
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding-top: 15px;
border-top: 1px solid #EEEEEE;
}
.c-top {
width: 100%;
height: 150px;
background: #0D2E8D;
box-sizing: border-box;
padding: 15px;
}
.t-title {
font-size: 18px;
font-weight: bold;
color: #FFFFFF;
}
.dis-b {
display: flex;
justify-content: space-between;
}
.t-left {
display: flex;
.touxiang {
width: 60px;
height: 60px;
border-radius: 50%;
overflow: hidden;
// background-color: #E3E3E3;
border: 1px solid white;
margin-right: 15px;
image {
width: 100%;
height: 100%;
}
}
}
.t-zi1 {
font-size: 16px;
font-weight: bold;
color: white;
margin-bottom: 10px;
}
.t-biao {
width: 60px;
border-radius: 11px 11px 11px 0px;
background: linear-gradient(90deg, #EE8342 0%, #EA3942 100%);
color: white;
text-align: center;
}
.t-right {}
.t-zi2 {
font-size: 14px;
font-weight: bold;
color: white;
text-align: center;
}
.t-bottom {
// height: 77px;
background: #FFFFFF;
box-shadow: 0px 4px 4px 0px rgba(13, 46, 141, 0.15);
border-radius: 8px;
margin-top: 10px;
box-sizing: border-box;
padding: 16px;
display: flex;
justify-content: space-between;
z-index: 99;
}
.top-box {
width: 33%;
height: 100%;
border-right: 1px solid #EEEEEE;
text-align: center;
}
.t-lan {
font-size: 28px;
font-weight: bold;
color: #0D2E8D;
}
.t-hui {
font-size: 14px;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #999999;
}
.t-ybr {
width: 100%;
z-index: -99;
height: 120px;
box-sizing: border-box;
padding-top: 90px;
display: flex;
justify-content: space-around;
// background-color: white;
}
.anniu {
width: 95%;
height: 44%;
border-radius: 6px;
background-color: #0D2E8D;
color: white;
display: flex;
justify-content: center;
align-items: center;
}
.gang {
width: 24px;
height: 4px;
background: #ffffff;
border-radius: 4px 4px 4px 4px;
margin: 2px auto;
}
.hui-content {
width: 100%;
// height: calc(60vh);
background-color: #f4f4f4;
box-sizing: border-box;
padding: 10px 15px;
}
.content-box {
width: 100%;
box-sizing: border-box;
padding: 15px;
// height: 222px;
background: #FFFFFF;
border-radius: 8px 8px 8px 8px;
margin-bottom: 10px;
}
.hui-text {
font-size: 16px;
font-weight: 400;
color: #666666;
}
.indexhei {
color: #333333 !important;
font-weight: bold !important;
}
.indexlan {
background: #0D2E8D !important;
}
.mubu {
width: 100%;
height: calc(60vh);
background-color: #f4f4f4;
}
.jsy {
margin: 10px auto;
width: 90%;
image {
width: 100%;
}
}
.ja-you {
2024-12-23 12:30:58 +08:00
width: 80%;
2024-08-28 22:02:00 +08:00
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.popup-box {
width: 320px;
box-sizing: border-box;
padding: 15px;
background-color: white;
border-radius: 10px;
}
.p-title {
font-size: 20px;
color: rgb(26, 26, 26);
font-weight: bold;
}
.p-hui {
color: rgb(156, 156, 156);
font-size: 14px;
margin: 15px auto;
}
.p-hei {
color: rgb(26, 26, 26);
font-family: 思源黑体;
font-size: 14px;
}
.huinput {
width: 100%;
box-sizing: border-box;
// padding: 10px;
// background: rgb(246, 246, 246);
display: flex;
align-items: center;
border-radius: 8px;
margin: 15px auto;
}
.qzanniu {
width: 100%;
height: 40px;
border-radius: 6px;
// background: linear-gradient(270.00deg, rgb(3, 163, 128) 0.028%,rgb(0, 204, 126) 100%);
background: #0D2E8D !important;
display: flex;
align-items: center;
justify-content: center;
color: rgb(255, 255, 255);
font-size: 16px;
font-weight: 700;
}
2024-09-04 14:36:17 +08:00
</style>