2024-12-19 12:41:30 +08:00
|
|
|
|
<template>
|
2024-12-24 18:59:07 +08:00
|
|
|
|
<custom-nav-bar :left="true" title="虫情"></custom-nav-bar>
|
2025-01-13 18:30:46 +08:00
|
|
|
|
|
|
|
|
|
<view class="header-section">
|
|
|
|
|
<view class="card" style="margin-top: 0; ">
|
|
|
|
|
<view class="cards-title">
|
|
|
|
|
<view>
|
|
|
|
|
<view>
|
|
|
|
|
<view>运行模式</view>
|
2024-12-19 12:41:30 +08:00
|
|
|
|
</view>
|
2025-01-13 18:30:46 +08:00
|
|
|
|
<view style="margin-left: 10px;">
|
|
|
|
|
<u-button :text="`${itemProperty.m == '1'? '自动':'手动'}`"
|
|
|
|
|
:type="`${itemProperty.m == '1'? 'success':'warning'}`"
|
|
|
|
|
@click="controlHeadSwitch(item,itemProperty.m,'m')"></u-button>
|
2024-12-19 12:41:30 +08:00
|
|
|
|
</view>
|
2025-01-13 18:30:46 +08:00
|
|
|
|
</view>
|
|
|
|
|
<view class="title-r">
|
|
|
|
|
<view class="iconfont icon-lishijilu icon" @click="openH(item)"></view>
|
|
|
|
|
</view>
|
2024-12-19 12:41:30 +08:00
|
|
|
|
</view>
|
2025-01-13 18:30:46 +08:00
|
|
|
|
<view class="content">
|
|
|
|
|
<view class="cards-content">
|
|
|
|
|
<view class="txt-list" @click="taskdetails">
|
2025-01-16 18:46:15 +08:00
|
|
|
|
<view class="list2">
|
2025-01-13 18:30:46 +08:00
|
|
|
|
<view>
|
2025-01-21 10:02:24 +08:00
|
|
|
|
<image src="/static/images/head/worm_rain.png"></image>
|
2025-01-17 14:24:40 +08:00
|
|
|
|
<text>降雨:</text>{{itemProperty.rs ===null? "--": (itemProperty.rs === "0"?"无雨":"降雨") }}
|
2025-01-13 18:30:46 +08:00
|
|
|
|
</view>
|
2025-01-17 14:24:40 +08:00
|
|
|
|
<view>
|
2025-01-21 10:02:24 +08:00
|
|
|
|
<image src="/static/images/head/worm_illu.png"></image>
|
2025-01-17 14:24:40 +08:00
|
|
|
|
<text>光照度:</text>{{itemProperty.il===null?"--":itemProperty.il}}Lux
|
2025-01-13 18:30:46 +08:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2024-12-19 12:41:30 +08:00
|
|
|
|
</view>
|
2025-01-13 18:30:46 +08:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-01-17 14:24:40 +08:00
|
|
|
|
<view class="content-section">
|
|
|
|
|
<view class="grid">
|
|
|
|
|
<view>
|
|
|
|
|
<text class="text">诱虫灯</text>
|
|
|
|
|
<u-button type="success" :text="`${itemProperty.aw === '1'? '打开':'关闭'}`" :class="[itemProperty.aw === '1' ? 'bg-green':'bg-red']"
|
|
|
|
|
@click="controlHeadSwitch(item,itemProperty.aw,'aw')" />
|
|
|
|
|
</view>
|
|
|
|
|
<view>
|
|
|
|
|
<text class="text">震动装置</text>
|
|
|
|
|
<u-button type="success" :text="`${itemProperty.sk === '1'? '打开':'关闭'}`" :class="[itemProperty.sk === '1' ? 'bg-green':'bg-red']"
|
|
|
|
|
@click="controlHeadSwitch(item,itemProperty.sk,'sk')" />
|
|
|
|
|
</view>
|
|
|
|
|
<view>
|
|
|
|
|
<text class="text">虫雨挡板</text>
|
|
|
|
|
<u-button type="success" :text="`${itemProperty.rf === '1'? '打开':'关闭'}`" :class="[itemProperty.rf === '1' ? 'bg-green':'bg-red']"
|
|
|
|
|
@click="controlHeadSwitch(item,itemProperty.rf,'rf')" />
|
|
|
|
|
</view>
|
|
|
|
|
<view>
|
|
|
|
|
<text class="text">补光灯</text>
|
|
|
|
|
<u-button type="success" :text="`${itemProperty.fl === '1'? '打开':'关闭'}`" :class="[itemProperty.fl === '1' ? 'bg-green':'bg-red']"
|
|
|
|
|
@click="controlHeadSwitch(item,itemProperty.fl,'fl')" />
|
|
|
|
|
</view>
|
|
|
|
|
<view>
|
|
|
|
|
<text class="text">杀虫挡板</text>
|
|
|
|
|
<u-button type="success" :text="`${itemProperty.wf === '1'? '打开':'关闭'}`" :class="[itemProperty.wf === '1' ? 'bg-green':'bg-red']"
|
|
|
|
|
@click="controlHeadSwitch(item,itemProperty.wf,'wf')" />
|
|
|
|
|
</view>
|
|
|
|
|
<view>
|
|
|
|
|
<text class="text">杀虫控制</text>
|
|
|
|
|
<u-button type="success" :text="`${itemProperty.itc === '1'? '打开':'关闭'}`" :class="[itemProperty.itc === '1' ? 'bg-green':'bg-red']"
|
|
|
|
|
@click="controlHeadSwitch(item,itemProperty.itc,'itc')" />
|
|
|
|
|
</view>
|
|
|
|
|
<view>
|
|
|
|
|
<text class="text">烘干挡板</text>
|
|
|
|
|
<u-button type="success" :text="`${itemProperty.df === '1'? '打开':'关闭'}`" :class="[itemProperty.df === '1' ? 'bg-green':'bg-red']"
|
|
|
|
|
@click="controlHeadSwitch(item,itemProperty.df,'df')" />
|
|
|
|
|
</view>
|
|
|
|
|
<view>
|
|
|
|
|
<text class="text">烘干控制</text>
|
|
|
|
|
<u-button type="success" :text="`${itemProperty.d === '1'? '打开':'关闭'}`" :class="[itemProperty.d === '1' ? 'bg-green':'bg-red']"
|
|
|
|
|
@click="controlHeadSwitch(item,itemProperty.d,'d')" />
|
|
|
|
|
</view>
|
|
|
|
|
<view>
|
|
|
|
|
<text class="text">移虫装置</text>
|
|
|
|
|
<u-button type="success" :text="`${itemProperty.mw === '1'? '打开':'关闭'}`" :class="[itemProperty.mw === '1'? 'bg-green':'bg-red']"
|
|
|
|
|
@click="controlHeadSwitch(item,itemProperty.mw,'mw')" />
|
|
|
|
|
</view>
|
|
|
|
|
<view>
|
|
|
|
|
<text class="text">摄像头</text>
|
|
|
|
|
<u-button type="success" text="拍照" @click="controlHeadSwitch(item,0,'car')" />
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="rowheadstyle" v-if="itemProperty.aal!=null">
|
|
|
|
|
<u-button text="分析" size="large" type="primary" @click="analysis(item,itemProperty.aal)"></u-button>
|
|
|
|
|
</view>
|
2025-01-13 18:30:46 +08:00
|
|
|
|
<u-popup :show="showDeviceLog" mode="center">
|
|
|
|
|
<view class="dialog-container">
|
|
|
|
|
<view class="dialog-title">
|
|
|
|
|
<text>虫情历史记录</text>
|
|
|
|
|
<u-icon name="reload" size="20" class="reload-btn" @click="reload"></u-icon>
|
|
|
|
|
<u-icon name="close" size="20" class="close-btn" @click="closeLog"></u-icon>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="dialog-body">
|
|
|
|
|
<view class="logs-data-box" style="width:90vw">
|
|
|
|
|
<view class="logs-container">
|
|
|
|
|
<view class="logs-item" v-for="itemHistory in listData" :key="item.id">
|
|
|
|
|
<view class="row">
|
|
|
|
|
<view class="full-line">
|
|
|
|
|
<text class="label">设备编号:</text>
|
|
|
|
|
<text class="text">{{ itemHistory.deviceCode }}</text>
|
2024-12-19 18:12:16 +08:00
|
|
|
|
</view>
|
2025-01-13 18:30:46 +08:00
|
|
|
|
</view>
|
|
|
|
|
<view class="row">
|
|
|
|
|
<view class="full-line">
|
|
|
|
|
<text class="label">记录时间:</text>
|
|
|
|
|
<text class="text">{{ itemHistory.createTime }}</text>
|
2024-12-19 18:12:16 +08:00
|
|
|
|
</view>
|
2025-01-13 18:30:46 +08:00
|
|
|
|
</view>
|
|
|
|
|
<view class="charge">
|
|
|
|
|
<view class="flex item charge-item">
|
|
|
|
|
<view>{{ itemHistory.historyContent || "-" }}</view>
|
2024-12-19 18:12:16 +08:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-01-13 18:30:46 +08:00
|
|
|
|
<uni-pagination :pageCount="query.pageSize" :curPageNum="query.pageNum" :totalNum="total"
|
|
|
|
|
@pageClick="pageTurning"></uni-pagination>
|
2024-12-19 12:41:30 +08:00
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-01-13 18:30:46 +08:00
|
|
|
|
</view>
|
|
|
|
|
</u-popup>
|
|
|
|
|
<u-popup :show="showAnalysis" mode="center">
|
|
|
|
|
<view class="dialog-container">
|
|
|
|
|
<view class="dialog-title">
|
|
|
|
|
<text>虫情分析</text>
|
|
|
|
|
<u-icon name="close" size="20" class="close-btn" @click="closeLogAnalysis"></u-icon>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="dialog-body">
|
|
|
|
|
<uni-row class="rowstyle">
|
|
|
|
|
<uni-col :span="24">
|
|
|
|
|
<uni-row class="col1"><uni-col :span="24">
|
|
|
|
|
<view class="text2">分析图片</view>
|
|
|
|
|
</uni-col></uni-row>
|
|
|
|
|
<uni-row class="col2"><uni-col :span="24" style="text-align: center;"><u-image
|
|
|
|
|
:src="analysisImgstr1" :lazy-load="true" style="width: 50%;height: 50%;"
|
|
|
|
|
shape="square"></u-image></uni-col></uni-row>
|
|
|
|
|
</uni-col>
|
|
|
|
|
</uni-row>
|
|
|
|
|
<uni-row class="rowstyle">
|
|
|
|
|
<uni-col :span="24">
|
|
|
|
|
<uni-row class="col1"><uni-col :span="24">
|
|
|
|
|
<view class="text2">分析时间</view>
|
|
|
|
|
</uni-col></uni-row>
|
|
|
|
|
<uni-row class="col2"><uni-col :span="24" style="text-align: center;">
|
|
|
|
|
<view class="text2">{{analysisTime}}</view>
|
|
|
|
|
</uni-col></uni-row>
|
|
|
|
|
</uni-col>
|
|
|
|
|
</uni-row>
|
|
|
|
|
<view v-for="itemanalyse in analyseData" :key="itemanalyse.name">
|
2024-12-19 12:41:30 +08:00
|
|
|
|
<uni-row class="rowstyle">
|
|
|
|
|
<uni-col :span="24">
|
|
|
|
|
<uni-row class="col1"><uni-col :span="24">
|
2025-01-13 18:30:46 +08:00
|
|
|
|
<view class="text2">{{itemanalyse.name}}</view>
|
2024-12-19 12:41:30 +08:00
|
|
|
|
</uni-col></uni-row>
|
|
|
|
|
<uni-row class="col2"><uni-col :span="24" style="text-align: center;">
|
2025-01-13 18:30:46 +08:00
|
|
|
|
<view class="text2">{{itemanalyse.num}}</view>
|
2024-12-19 12:41:30 +08:00
|
|
|
|
</uni-col></uni-row>
|
|
|
|
|
</uni-col>
|
|
|
|
|
</uni-row>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-01-13 18:30:46 +08:00
|
|
|
|
</view>
|
|
|
|
|
</u-popup>
|
|
|
|
|
|
2024-12-19 12:41:30 +08:00
|
|
|
|
</template>
|
2024-12-19 18:12:16 +08:00
|
|
|
|
<script>
|
|
|
|
|
import plugin from "@/plugins"
|
2024-12-19 12:41:30 +08:00
|
|
|
|
import {
|
2024-12-19 18:12:16 +08:00
|
|
|
|
controlHeadSwitch
|
|
|
|
|
} from "@/api/controlHeadInterface"
|
2024-12-19 12:41:30 +08:00
|
|
|
|
import {
|
2024-12-19 18:12:16 +08:00
|
|
|
|
getOutDeviceHistoryList
|
|
|
|
|
} from "@/api/system/device_agricultural"
|
|
|
|
|
export default {
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
item: {},
|
|
|
|
|
itemProperty: {},
|
|
|
|
|
showDeviceLog: false,
|
|
|
|
|
passParams: {},
|
|
|
|
|
showAnalysis: false,
|
|
|
|
|
analysisImgstr1: "",
|
|
|
|
|
analysisTime: "",
|
|
|
|
|
analyseData: [],
|
|
|
|
|
total: 0,
|
|
|
|
|
listData: [],
|
|
|
|
|
query: {
|
|
|
|
|
pageNum: 1,
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
deviceCode: null
|
2024-12-19 22:23:23 +08:00
|
|
|
|
},
|
|
|
|
|
mqttConnected: false, // mqtt链接状态
|
|
|
|
|
topics: []
|
2024-12-19 18:12:16 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onLoad(option) {
|
|
|
|
|
if (option.item != null) {
|
|
|
|
|
this.item = JSON.parse(decodeURIComponent(option.item));
|
|
|
|
|
if (this.item) {
|
|
|
|
|
this.itemProperty = this.item.deviceData;
|
|
|
|
|
this.query.deviceCode = this.item.deviceCode;
|
2024-12-19 22:23:23 +08:00
|
|
|
|
let topic = "jsy/iot/push/outProduct/" + this.item.deviceCode;
|
|
|
|
|
this.topics.push(topic);
|
|
|
|
|
this.mqttSubscribes(this.topics);
|
2025-01-07 10:02:41 +08:00
|
|
|
|
getApp().on("mqtt", "mqtt_head", function(e) {
|
2024-12-19 22:23:23 +08:00
|
|
|
|
if (e.type == "state") {
|
2025-01-03 13:09:20 +08:00
|
|
|
|
this.mqttConnected = e.connected;
|
2024-12-19 22:23:23 +08:00
|
|
|
|
} else if (e.type == "msg") {
|
|
|
|
|
this.itemProperty = e.data;
|
|
|
|
|
}
|
|
|
|
|
});
|
2024-12-19 18:12:16 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-12-19 22:23:23 +08:00
|
|
|
|
onUnload() {
|
|
|
|
|
this.mqttUnSubscribes(this.topics);
|
2025-01-07 10:02:41 +08:00
|
|
|
|
getApp().off("mqtt", "mqtt_head")
|
2024-12-19 22:23:23 +08:00
|
|
|
|
},
|
2024-12-19 18:12:16 +08:00
|
|
|
|
methods: {
|
2024-12-19 22:23:23 +08:00
|
|
|
|
mqttSubscribes(topics) {
|
|
|
|
|
getApp().mqttSubscribes(topics);
|
|
|
|
|
},
|
|
|
|
|
mqttUnSubscribes(topics) {
|
|
|
|
|
getApp().mqttUnsubscribes(topics);
|
|
|
|
|
},
|
2024-12-19 18:12:16 +08:00
|
|
|
|
queryList(str) {
|
|
|
|
|
if (str == "into") {
|
|
|
|
|
this.query.pageNum = 1;
|
|
|
|
|
}
|
|
|
|
|
if (str == "pre") {
|
|
|
|
|
this.query.pageNum = this.query.pageNum - 1
|
|
|
|
|
}
|
|
|
|
|
if (str == "next") {
|
|
|
|
|
this.query.pageNum = this.query.query.pageNum + 1
|
|
|
|
|
}
|
|
|
|
|
getOutDeviceHistoryList(this.query).then(res => {
|
|
|
|
|
this.listData = res.rows;
|
|
|
|
|
this.total = res.total;
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
//打开历史界面
|
|
|
|
|
openH(item) {
|
|
|
|
|
this.showDeviceLog = true
|
|
|
|
|
this.queryList("into");
|
|
|
|
|
},
|
|
|
|
|
reload() {
|
|
|
|
|
uni.$emit("reloadlogs")
|
|
|
|
|
},
|
|
|
|
|
//关闭历史记录
|
|
|
|
|
closeLog() {
|
|
|
|
|
this.showDeviceLog = false;
|
|
|
|
|
},
|
|
|
|
|
//控制按钮
|
|
|
|
|
controlHeadSwitch(item, e, k) {
|
|
|
|
|
if (this.itemProperty.s === "offline") {
|
|
|
|
|
plugin.modal.msgError("设备离线,不能操作!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (k === "car" && this.itemProperty.m === "1") {
|
|
|
|
|
plugin.modal.msgError("自动模式不能拍照!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (k === "car" && this.itemProperty.fl === "0") {
|
|
|
|
|
plugin.modal.msgError("请先打开补光灯!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
let par = {
|
|
|
|
|
controlKey: k,
|
|
|
|
|
deviceTypeId: 7,
|
|
|
|
|
operationType: 11,
|
|
|
|
|
deviceCode: item.deviceCode,
|
|
|
|
|
controlValve: e == 1 ? 0 : 1
|
|
|
|
|
};
|
|
|
|
|
controlHeadSwitch(par).then(res => {})
|
|
|
|
|
},
|
|
|
|
|
//打开分析弹出页
|
|
|
|
|
analysis(item, e) {
|
|
|
|
|
if (!e) {
|
|
|
|
|
plugin.modal.msgError("没有可以分析的数据!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
let data = JSON.parse(e);
|
|
|
|
|
this.showAnalysis = true;
|
|
|
|
|
this.analysisImgstr1 = data.analyseCoordUrl;
|
|
|
|
|
this.analysisTime = this.formatDate(data.verifyTime, "-");
|
|
|
|
|
this.analyseData = JSON.parse(data.analyseData);
|
|
|
|
|
},
|
|
|
|
|
//关闭分析弹出页
|
|
|
|
|
closeLogAnalysis() {
|
|
|
|
|
this.showAnalysis = false;
|
|
|
|
|
},
|
|
|
|
|
//时间戳转换时间
|
|
|
|
|
formatDate(value, spe) {
|
|
|
|
|
let data = new Date(value);
|
|
|
|
|
let year = data.getFullYear();
|
|
|
|
|
let month = data.getMonth() + 1;
|
|
|
|
|
let day = data.getDate();
|
|
|
|
|
let h = data.getHours();
|
|
|
|
|
let mm = data.getMinutes();
|
|
|
|
|
let s = data.getSeconds();
|
|
|
|
|
month = month > 9 ? month : "0" + month;
|
|
|
|
|
day = day > 9 ? day : "0" + day;
|
|
|
|
|
h = h > 9 ? h : "0" + h;
|
|
|
|
|
mm = mm > 9 ? mm : "0" + mm;
|
|
|
|
|
s = s > 9 ? s : "0" + s;
|
|
|
|
|
return `${year}${spe}${month}${spe}${day} ${h}:${mm}:${s}`;
|
|
|
|
|
},
|
|
|
|
|
pageTurning(flag) {
|
|
|
|
|
if (flag === 0) {
|
|
|
|
|
if (this.query.pageNum - 1 === 0) return
|
|
|
|
|
this.queryList("pre")
|
|
|
|
|
}
|
|
|
|
|
if (flag === 1) {
|
|
|
|
|
if (this.query.pageNum + 1 > Math.ceil(this.total / this.query.pageSize)) return
|
|
|
|
|
this.queryList("next")
|
2024-12-19 12:41:30 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-12-19 18:12:16 +08:00
|
|
|
|
}
|
2024-12-19 12:41:30 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
2025-01-13 18:30:46 +08:00
|
|
|
|
<style lang="scss" scoped>
|
2025-01-17 14:24:40 +08:00
|
|
|
|
.header-section {
|
|
|
|
|
width: 100%;
|
2025-01-13 18:30:46 +08:00
|
|
|
|
padding: 10px 0px 30px 0px;
|
|
|
|
|
background-color: #39ac4f;
|
|
|
|
|
border-radius: 0 0 30px 30px;
|
2024-12-19 12:41:30 +08:00
|
|
|
|
}
|
2025-01-17 14:24:40 +08:00
|
|
|
|
|
2025-01-14 18:24:36 +08:00
|
|
|
|
.content-section {
|
|
|
|
|
position: relative;
|
2025-01-17 14:24:40 +08:00
|
|
|
|
top: -35px;
|
|
|
|
|
}
|
2024-12-19 12:41:30 +08:00
|
|
|
|
|
2025-01-17 14:24:40 +08:00
|
|
|
|
.cards-title {
|
|
|
|
|
border: none;
|
|
|
|
|
}
|
2024-12-19 12:41:30 +08:00
|
|
|
|
|
2025-01-17 14:24:40 +08:00
|
|
|
|
.rowheadstyle {width: 80%; margin: 0 auto;
|
|
|
|
|
height: 40px;
|
2024-12-19 12:41:30 +08:00
|
|
|
|
|
2025-01-17 14:24:40 +08:00
|
|
|
|
}
|
2025-01-21 10:02:24 +08:00
|
|
|
|
.txt-list .list2>view {line-height: 30px;}
|
2024-12-19 12:41:30 +08:00
|
|
|
|
|
|
|
|
|
// 弹窗
|
|
|
|
|
.dialog-container {
|
|
|
|
|
width: 90vw;
|
|
|
|
|
height: 90vh;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
|
|
|
|
.dialog-title {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 34px;
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
line-height: 34px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
border-bottom: 1px solid #999;
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
.reload-btn {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 50%;
|
|
|
|
|
right: 56px;
|
|
|
|
|
transform: translateY(-50%);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.close-btn {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 50%;
|
|
|
|
|
right: 10px;
|
|
|
|
|
transform: translateY(-50%);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-19 18:12:16 +08:00
|
|
|
|
|
|
|
|
|
.logs-item {
|
|
|
|
|
margin: 4px 10px;
|
|
|
|
|
padding: 6px;
|
|
|
|
|
background: white;
|
|
|
|
|
border-radius: 10px;
|
|
|
|
|
border: 1px solid #eee;
|
|
|
|
|
|
|
|
|
|
.row {
|
|
|
|
|
line-height: 22px;
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
.left {
|
|
|
|
|
width: 50%;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right {
|
|
|
|
|
width: 50%;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.full-line {
|
|
|
|
|
width: 100%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.label {
|
|
|
|
|
color: gray;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.text {
|
|
|
|
|
color: black;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.charge {
|
|
|
|
|
background: white;
|
|
|
|
|
margin: 10px 10px;
|
|
|
|
|
padding: 20px 10px;
|
|
|
|
|
border-radius: 10px;
|
|
|
|
|
box-shadow: 1px 1px 2px 2px rgba(0, 0, 0, 0.05);
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
.charge-item {
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.call {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 20px;
|
|
|
|
|
right: 20px;
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-12-19 12:41:30 +08:00
|
|
|
|
}
|
|
|
|
|
</style>
|