StorageInfo.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624
  1. <template>
  2. <view class="storage-item">
  3. <view class="container">
  4. <view class="container-header">
  5. <view class="battery" :class="showCode ==0?'showCodeActive':''" @click="actshowCode(0)">
  6. {{StateNum}}
  7. </view>
  8. <view class="a-gun battery" :class="showCode ==1?'showCodeActive':''" @click="actshowCode(1)">
  9. A枪
  10. </view>
  11. <view class="b-gun battery" :class="showCode ==2?'showCodeActive':''" @click="actshowCode(2)">
  12. B枪
  13. </view>
  14. </view>
  15. <view class="container-code">
  16. <view class="container-code-one" :class="statustext[1]" v-if="showCode== 0">
  17. {{statustext[0]}}
  18. </view>
  19. <view class="container-code-one" :class="statustextA[1]" v-if="showCode== 1">
  20. {{statustextA[0]}}
  21. </view>
  22. <view class="container-code-one" :class="statustextB[1]" v-if="showCode== 2">
  23. {{statustextB[0]}}
  24. </view>
  25. <view class="container-code-two" v-if="showCode== 0">
  26. <image src="../../../static/equipment/d5.png" mode="" v-if="chargerInfoVo.chgState === 2"
  27. @click="sendCharger('断电')"></image>
  28. <image src="../../../static/equipment/c1.png" mode=""
  29. v-if="chargerInfoVo.chgState === 0 || chargerInfoVo.chgState === 3" @click="sendCharger('充电')">
  30. </image>
  31. <image src="../../../static/equipment/d6.png" mode="" v-if="chargerInfoVo.chgState !== 2"></image>
  32. <image src="../../../static/equipment/c2.png" mode=""
  33. v-if="chargerInfoVo.chgState !== 0 && chargerInfoVo.chgState !== 3"></image>
  34. </view>
  35. <view class="container-code-two" v-if="showCode== 1">
  36. <image src="../../../static/equipment/d5.png" mode="" v-if="chargerInfoOneVo.chgState === 2"
  37. @click="sendChargerOut('断电',batInfoOneVo.gunCode,chargerInfoOneVo.chargerCode)">
  38. </image>
  39. <image src="../../../static/equipment/c1.png" mode="" v-if="chargerInfoOneVo.chgState === 0 || chargerInfoOneVo.chgState === 3"
  40. @click="sendChargerOut('充电',batInfoOneVo.gunCode,chargerInfoOneVo.chargerCode)"></image>
  41. <image src="../../../static/equipment/d6.png" mode="" v-if="chargerInfoOneVo.chgState !== 2">
  42. </image>
  43. <image src="../../../static/equipment/c2.png" mode=""
  44. v-if="chargerInfoOneVo.chgState !== 0 && chargerInfoOneVo.chgState !== 3"></image>
  45. </view>
  46. <view class="container-code-two" v-if="showCode== 2">
  47. <image src="../../../static/equipment/d5.png" mode="" v-if="chargerInfoTwoVo.chgState === 2"
  48. @click="sendChargerOut('断电',batInfoTwoVo.gunCode,chargerInfoTwoVo.chargerCode)">
  49. </image>
  50. <image src="../../../static/equipment/c1.png" mode="" v-if="chargerInfoTwoVo.chgState === 0 || chargerInfoTwoVo.chgState === 3"
  51. @click="sendChargerOut('充电',batInfoTwoVo.gunCode,chargerInfoTwoVo.chargerCode)"></image>
  52. <image src="../../../static/equipment/d6.png" mode="" v-if="chargerInfoTwoVo.chgState !== 2">
  53. </image>
  54. <image src="../../../static/equipment/c2.png" mode=""
  55. v-if="chargerInfoTwoVo.chgState !== 0 && chargerInfoTwoVo.chgState !== 3"></image>
  56. </view>
  57. </view>
  58. <BatteryStatus :storeCode="storeCode" :comState="comState" :sn="sn" :soc="soc"
  59. :chgEstimatedTime="chgEstimatedTime" :showCode="showCode" v-if="showCode== 0"></BatteryStatus>
  60. <BatteryStatus :storeCode="batInfoOneVo.storeCode" :comState="chargerInfoOneVo.comState"
  61. :sn="batInfoOneVo.sn" :soc="batInfoOneVo.soc" :chgEstimatedTime="chargerInfoOneVo.chgEstimatedTime"
  62. :showCode="showCode" v-if="showCode== 1"></BatteryStatus>
  63. <BatteryStatus :storeCode="batInfoTwoVo.storeCode" :comState="chargerInfoTwoVo.comState"
  64. :sn="batInfoTwoVo.sn" :soc="batInfoTwoVo.soc" :chgEstimatedTime="chargerInfoTwoVo.chgEstimatedTime"
  65. :showCode="showCode" v-if="showCode== 2"></BatteryStatus>
  66. <view class="battery-info">
  67. <view class="vim" v-if="showCode == 1">
  68. <text>vin码</text><text>{{batInfoOneVo.vin ||'-'}}</text>
  69. </view>
  70. <view class="vim" v-if="showCode == 2">
  71. <text>vin码</text><text>{{batInfoTwoVo.vin ||'-'}}</text>
  72. </view>
  73. <BatteryInfo :num="current" unit="A" text="电流" v-if="showCode == 0"></BatteryInfo>
  74. <BatteryInfo :num="batInfoOneVo.current" unit="A" text="电流" v-if="showCode ==1"></BatteryInfo>
  75. <BatteryInfo :num="batInfoTwoVo.current" unit="A" text="电流" v-if="showCode == 2"></BatteryInfo>
  76. <BatteryInfo :num="voltage" unit="V" text="电压" v-if="showCode == 0"></BatteryInfo>
  77. <BatteryInfo :num="batInfoOneVo.voltage" unit="V" text="电压" v-if="showCode == 1"></BatteryInfo>
  78. <BatteryInfo :num="batInfoTwoVo.voltage" unit="V" text="电压" v-if="showCode == 2"></BatteryInfo>
  79. <BatteryInfo :num="soh" unit="%" text="SOH" v-if="showCode == 0"></BatteryInfo>
  80. <view class="info-right" :style="chargerColor" v-if="showCode == 0">
  81. <image class="s1" :src="require('../../../static/equipment/'+`s${chargerState[0]}`+'.png')">
  82. <text>{{chargerState[1]}}</text>
  83. </view>
  84. <view class="info-right" :style="chargerColorA" v-if="showCode == 1">
  85. <image class="s1" :src="require('../../../static/equipment/'+`s${chargerStateA[0]}`+'.png')">
  86. <text>{{chargerStateA[1]}}</text>
  87. </view>
  88. <view class="info-right" :style="chargerColorB" v-if="showCode == 2">
  89. <image class="s1" :src="require('../../../static/equipment/'+`s${chargerStateB[0]}`+'.png')">
  90. <text>{{chargerStateB[1]}}</text>
  91. </view>
  92. <!-- <BatteryInfo :num="minTemperature" unit="℃" text="最低温度"></BatteryInfo>
  93. <BatteryInfo :num="maxTemperature" unit="℃" text="最高温度"></BatteryInfo>
  94. <BatteryInfo :num="maxCellVoltage" unit="V" text="最高单体电压"></BatteryInfo>
  95. <BatteryInfo :num="minCellVoltage" unit="V" text="最低单体电压"></BatteryInfo>
  96. <view class="info-right">
  97. <image class="s1" src="../../../static/equipment/s1.png"><text class="text">{{StateNum}}</text>
  98. </view>
  99. -->
  100. </view>
  101. <view class="battery-charger">
  102. <BatteryCharger :chargerCode="chargerInfoVo.chargerCode" :comState="chargerInfoVo.comState"
  103. v-if="chargerInfoVo.chargerCode &&showCode ==0"></BatteryCharger>
  104. <BatteryCharger :chargerCode="chargerInfoOneVo.chargerCode" :comState="chargerInfoOneVo.comState"
  105. v-if="chargerInfoOneVo.chargerCode &&showCode ==1"></BatteryCharger>
  106. <BatteryCharger :chargerCode="chargerInfoTwoVo.chargerCode" :comState="chargerInfoTwoVo.comState"
  107. v-if="chargerInfoTwoVo.chargerCode &&showCode ==2"></BatteryCharger>
  108. <view class="battery-info" v-if="chargerInfoVo.chargerCode && showCode ==0">
  109. <BatteryInfo :num="chargerInfoVo.demandCurrent" unit="A" text="需求电流"></BatteryInfo>
  110. <BatteryInfo :num="chargerInfoVo.demandVoltage" unit="V" text="需求电压"></BatteryInfo>
  111. <BatteryInfo :num="chargerInfoVo.chgCurrent" unit="A" text="充电电流"></BatteryInfo>
  112. <BatteryInfo :num="chargerInfoVo.chgVoltage" unit="V" text="充电电压"></BatteryInfo>
  113. <BatteryInfo :num="chargerInfoVo.chgCapacity" unit="kWh" text="累计充电电量"></BatteryInfo>
  114. </view>
  115. <view class="battery-info" v-if="chargerInfoOneVo.chargerCode && showCode ==1">
  116. <BatteryInfo :num="chargerInfoOneVo.demandCurrent" unit="A" text="需求电流"></BatteryInfo>
  117. <BatteryInfo :num="chargerInfoOneVo.demandVoltage" unit="V" text="需求电压"></BatteryInfo>
  118. <BatteryInfo :num="chargerInfoOneVo.chgCurrent" unit="A" text="充电电流"></BatteryInfo>
  119. <BatteryInfo :num="chargerInfoOneVo.chgVoltage" unit="V" text="充电电压"></BatteryInfo>
  120. <BatteryInfo :num="chargerInfoOneVo.chgCapacity" unit="kWh" text="累计充电电量"></BatteryInfo>
  121. </view>
  122. <view class="battery-info" v-if="chargerInfoTwoVo.chargerCode && showCode ==2">
  123. <BatteryInfo :num="chargerInfoTwoVo.demandCurrent" unit="A" text="需求电流"></BatteryInfo>
  124. <BatteryInfo :num="chargerInfoTwoVo.demandVoltage" unit="V" text="需求电压"></BatteryInfo>
  125. <BatteryInfo :num="chargerInfoTwoVo.chgCurrent" unit="A" text="充电电流"></BatteryInfo>
  126. <BatteryInfo :num="chargerInfoTwoVo.chgVoltage" unit="V" text="充电电压"></BatteryInfo>
  127. <BatteryInfo :num="chargerInfoTwoVo.chgCapacity" unit="kWh" text="累计充电电量"></BatteryInfo>
  128. </view>
  129. <view class="battery-charger-btn">
  130. <view class="Plug-gun-charging" @click="ChargingMode(chgType)">
  131. {{chgType == 0 ?'插枪充电':'线束充电'}}
  132. </view>
  133. <view class="Settings Plug-gun-charging" @click="set">
  134. 设置
  135. </view>
  136. </view>
  137. <image src="../../../static/equipment/nodata.png" class="nodata" v-show="!chargerInfoVo.chargerCode">
  138. </view>
  139. </view>
  140. </view>
  141. </template>
  142. <script>
  143. import BatteryInfo from "./BatteryInfo.vue";
  144. import BatteryStatus from "./BatteryStatus.vue";
  145. import BatteryCharger from "./BatteryCharger.vue"
  146. export default {
  147. name: "StorageInfo",
  148. props: [
  149. 'storeCode',
  150. 'comState',
  151. 'sn',
  152. 'soc',
  153. 'chgEstimatedTime',
  154. 'current',
  155. 'voltage',
  156. 'minTemperature',
  157. 'maxTemperature',
  158. 'maxCellVoltage',
  159. 'minCellVoltage',
  160. 'soh',
  161. 'storeState',
  162. 'chargerInfoVo',
  163. 'chgType',
  164. 'batInfoOneVo',
  165. 'batInfoTwoVo',
  166. 'chargerInfoOneVo',
  167. 'chargerInfoTwoVo',
  168. 'showCodeNum'
  169. ],
  170. components: {
  171. BatteryInfo,
  172. BatteryStatus,
  173. BatteryCharger
  174. },
  175. data() {
  176. return {
  177. showCode: 0, //0电池1A枪2B枪
  178. Markers: 0, //标记 0代表没点击过 1代表点击过
  179. }
  180. },
  181. mounted() {
  182. this.showCode = this.showCodeNum; //根据后端返的数据动态渲染当前状态
  183. },
  184. watch: {
  185. showCodeNum(newshowCodeNum, oldshowCodeNum) {
  186. if (this.Markers == 0) {
  187. this.showCode = newshowCodeNum //没点击过 根据后端数据实时渲染不同的数据
  188. }
  189. }
  190. },
  191. methods: {
  192. //页面切换
  193. actshowCode(code) {
  194. this.showCode = code;
  195. this.Markers = 1
  196. },
  197. //打开弹窗
  198. set() {
  199. this.$emit('drawer')
  200. },
  201. //切换仓内仓外
  202. ChargingMode(chgType) {
  203. //停止充电后才能切换
  204. let data = {
  205. "chargerId": this.chargerInfoVo.chargerCode,
  206. "chargerWay": chgType == 1 ? '1' : '2',
  207. "controlPriority": 0,
  208. "powerControl": 0,
  209. "powerToggle": 0
  210. }
  211. if (chgType == 0 && this.chargerInfoVo.chgState == 2) { //仓内充电 充电时不允许切换
  212. return
  213. } else if (chgType == 1 && this.chargerInfoOneVo.chgState == 2 || this.chargerInfoTwoVo.chgState == 2) {
  214. return
  215. } else {
  216. this.$http.gettoggleChargeWay(data).then(res => {
  217. this.$emit('ExchangeMessage', res.code === 0 ? 'success' : 'error',
  218. res.code === 0 ? '切换成功!' : '切换失败!')
  219. })
  220. }
  221. },
  222. //仓内充电、断电操作
  223. sendCharger(name) {
  224. let params = {}
  225. if (this.chargerInfoVo.chgState === 0 || this.chargerInfoVo.chgState === 3) {
  226. params = {
  227. chargerId: this.chargerInfoVo.chargerCode * 1,
  228. sn: this.sn
  229. }
  230. } else if (this.chargerInfoVo.chgState === 2) {
  231. params = {
  232. chargerId: this.chargerInfoVo.chargerCode * 1
  233. }
  234. }
  235. let that = this
  236. uni.showModal({
  237. title: `确认发起${name}`,
  238. content: '',
  239. success: function(res) {
  240. if (res.confirm) { //点击确定
  241. //充电操作
  242. if (that.chargerInfoVo.chgState === 0 || that.chargerInfoVo.chgState === 3) {
  243. that.$emit('ExchangeMessage', 'success', '充电指令已下发')
  244. that.$http.startCharge(params)
  245. .then(res => {
  246. that.$emit('ExchangeMessage', res.code === 0 ? 'success' : 'error',
  247. res.code === 0 ? '充电成功' : '充电失败')
  248. }).catch(err => {
  249. console.error(err)
  250. })
  251. }
  252. //断电操作
  253. else if (that.chargerInfoVo.chgState === 2) {
  254. that.$emit('ExchangeMessage', 'success', '断电指令已下发')
  255. that.$http.stopCharge(params)
  256. .then(res => {
  257. that.$emit('ExchangeMessage', res.code === 0 ? 'success' : 'error',
  258. res.code === 0 ? '断电成功' : '断电失败')
  259. }).catch(err => {
  260. console.error(err)
  261. })
  262. }
  263. } else if (res.cancel) {
  264. return false
  265. //用户点击取消按钮触发
  266. }
  267. }
  268. })
  269. },
  270. //仓外充电·断电操作
  271. sendChargerOut(name, guncode, chargerId) {
  272. let params = {}
  273. if (this.chargerInfoOneVo.chgState === 0 || this.chargerInfoOneVo.chgState === 3 ||
  274. this.chargerInfoTwoVo.chgState === 0 || this.chargerInfoTwoVo.chgState === 3) {
  275. params = {
  276. "chargerId": chargerId * 1,
  277. "gunNo": guncode,
  278. "strategy": 4,
  279. "strategyParam": 0
  280. }
  281. } else if (this.chargerInfoOneVo.chgState === 2 || this.chargerInfoTwoVo.chgState === 2) {
  282. params = {
  283. "chargerId": chargerId * 1,
  284. "gunNo": guncode,
  285. }
  286. }
  287. let that = this
  288. uni.showModal({
  289. title: `确认发起${name}`,
  290. content: '',
  291. success: function(res) {
  292. if (res.confirm) { //点击确定
  293. //断电操作
  294. if (that.chargerInfoOneVo.chgState === 2 || that.chargerInfoTwoVo.chgState === 2) {
  295. that.$emit('ExchangeMessage', 'success', '断电指令已下发')
  296. that.$http.getgunStopCharge(params)
  297. .then(res => {
  298. that.$emit('ExchangeMessage', res.code === 0 ? 'success' : 'error',
  299. res.code === 0 ? '断电成功' : '断电失败')
  300. }).catch(err => {
  301. console.error(err)
  302. })
  303. }else if(that.chargerInfoOneVo.chgState === 0 || that.chargerInfoOneVo.chgState === 3 ||
  304. that.chargerInfoTwoVo.chgState === 0 || that.chargerInfoTwoVo.chgState === 3){
  305. //充电操作
  306. that.$emit('ExchangeMessage', 'success', '充电指令已下发')
  307. that.$http.getgunStartCharge(params)
  308. .then(res => {
  309. that.$emit('ExchangeMessage', res.code === 0 ? 'success' : 'error',
  310. res.code === 0 ? '充电成功' : '充电失败')
  311. }).catch(err => {
  312. console.error(err)
  313. })
  314. }
  315. } else if (res.cancel) {
  316. return false
  317. //用户点击取消按钮触发
  318. }
  319. }
  320. })
  321. }
  322. },
  323. computed: {
  324. statustext() {
  325. if (this.comState === 1) {
  326. return ['通讯正常', 'success']
  327. } else {
  328. return ['通讯异常', 'warning']
  329. }
  330. },
  331. statustextA() {
  332. if (this.chargerInfoOneVo.comState === 1) {
  333. return ['已连接', 'success']
  334. } else {
  335. return ['未连接', 'warning']
  336. }
  337. },
  338. statustextB() {
  339. if (this.chargerInfoTwoVo.comState === 1) {
  340. return ['已连接', 'success']
  341. } else {
  342. return ['未连接', 'warning']
  343. }
  344. },
  345. chargerState() {
  346. if (this.chargerInfoVo.chgState === 1) {
  347. return [3, ' 准备充电']
  348. } else if (this.chargerInfoVo.chgState === 2) {
  349. return [1, ' 充电中']
  350. } else if (this.chargerInfoVo.chgState === 3) {
  351. return [2, ' 充电完成']
  352. } else if (this.chargerInfoVo.chgState === 4) {
  353. return [8, ' 充电失败']
  354. } else if (this.chargerInfoVo.chgState === 5) {
  355. return [6, ' 预约']
  356. } else if (this.chargerInfoVo.chgState === 6) {
  357. return [5, ' 故障']
  358. } else if (this.chargerInfoVo.chgState === 0) {
  359. return [7, ' 空闲']
  360. } else {
  361. return [4, ' 无法获取']
  362. }
  363. },
  364. chargerStateA() {
  365. if (this.chargerInfoOneVo.chgState === 1) {
  366. return [3, ' 准备充电']
  367. } else if (this.chargerInfoOneVo.chgState === 2) {
  368. return [1, ' 充电中']
  369. } else if (this.chargerInfoOneVo.chgState === 3) {
  370. return [2, ' 充电完成']
  371. } else if (this.chargerInfoOneVo.chgState === 4) {
  372. return [8, ' 充电失败']
  373. } else if (this.chargerInfoOneVo.chgState === 5) {
  374. return [6, ' 预约']
  375. } else if (this.chargerInfoOneVo.chgState === 6) {
  376. return [5, ' 故障']
  377. } else if (this.chargerInfoOneVo.chgState === 0) {
  378. return [7, ' 空闲']
  379. } else {
  380. return [4, ' 无法获取']
  381. }
  382. },
  383. chargerStateB() {
  384. if (this.chargerInfoTwoVo.chgState === 1) {
  385. return [3, ' 准备充电']
  386. } else if (this.chargerInfoTwoVo.chgState === 2) {
  387. return [1, ' 充电中']
  388. } else if (this.chargerInfoTwoVo.chgState === 3) {
  389. return [2, ' 充电完成']
  390. } else if (this.chargerInfoTwoVo.chgState === 4) {
  391. return [8, ' 充电失败']
  392. } else if (this.chargerInfoTwoVo.chgState === 5) {
  393. return [6, ' 预约']
  394. } else if (this.chargerInfoTwoVo.chgState === 6) {
  395. return [5, ' 故障']
  396. } else if (this.chargerInfoTwoVo.chgState === 0) {
  397. return [7, ' 空闲']
  398. } else {
  399. return [4, ' 无法获取']
  400. }
  401. },
  402. chargerColor() {
  403. if (this.chargerInfoVo.chgState === 3) {
  404. return 'background-color:rgb(19,33,39,0.9);border:#477c62 solid 1px'
  405. } else if (this.chargerInfoVo.chgState === 1 || this.chargerInfoVo.chgState === 5) {
  406. return 'background-color:rgb(20,38,50,0.9);border:#4a9dab solid 1px'
  407. } else if (this.chargerInfoVo.chgState === 2 || this.chargerInfoVo.chgState === 0) {
  408. return ''
  409. } else {
  410. return 'background-color:rgb(32,25,36,0.9);border:#94494d solid 1px'
  411. }
  412. },
  413. chargerColorA() {
  414. if (this.chargerInfoOneVo.chgState === 3) {
  415. return 'background-color:rgb(19,33,39,0.9);border:#477c62 solid 1px'
  416. } else if (this.chargerInfoOneVo.chgState === 1 || this.chargerInfoOneVo.chgState === 5) {
  417. return 'background-color:rgb(20,38,50,0.9);border:#4a9dab solid 1px'
  418. } else if (this.chargerInfoOneVo.chgState === 2 || this.chargerInfoOneVo.chgState === 0) {
  419. return ''
  420. } else {
  421. return 'background-color:rgb(32,25,36,0.9);border:#94494d solid 1px'
  422. }
  423. },
  424. chargerColorB() {
  425. if (this.chargerInfoTwoVo.chgState === 3) {
  426. return 'background-color:rgb(19,33,39,0.9);border:#477c62 solid 1px'
  427. } else if (this.chargerInfoTwoVo.chgState === 1 || this.chargerInfoTwoVo.chgState === 5) {
  428. return 'background-color:rgb(20,38,50,0.9);border:#4a9dab solid 1px'
  429. } else if (this.chargerInfoTwoVo.chgState === 2 || this.chargerInfoTwoVo.chgState === 0) {
  430. return ''
  431. } else {
  432. return 'background-color:rgb(32,25,36,0.9);border:#94494d solid 1px'
  433. }
  434. },
  435. StateNum() {
  436. if (this.storeState === 0) {
  437. return '电池(无)'
  438. } else if (this.storeState === 1) {
  439. return '电池(有)'
  440. } else {
  441. return '异常'
  442. }
  443. }
  444. }
  445. };
  446. </script>
  447. <style lang="scss" scoped>
  448. .storage-item {
  449. width: 347px;
  450. background-color: #0a101c;
  451. height: 598px;
  452. margin-right: 22px;
  453. border: 1px solid #0a101c;
  454. .container {
  455. padding: 20px 24px;
  456. color: #404a63;
  457. font-size: 14px;
  458. .container-header {
  459. display: flex;
  460. .battery {
  461. width: 112px;
  462. height: 32px;
  463. background: #1C263A;
  464. color: #DEEFF9;
  465. line-height: 32px;
  466. text-align: center;
  467. margin-bottom: 10px;
  468. }
  469. .a-gun {
  470. width: 78px;
  471. margin-left: 12px;
  472. }
  473. .b-gun {
  474. width: 78px;
  475. margin-left: 12px;
  476. }
  477. .showCodeActive {
  478. background-color: #636C97;
  479. }
  480. }
  481. .container-code {
  482. display: flex;
  483. margin-bottom: 10px;
  484. justify-content: space-between;
  485. .container-code-one {
  486. font-size: 16px;
  487. color: #91FDB9;
  488. }
  489. .success {
  490. color: #92fdb9;
  491. }
  492. .warning {
  493. color: #ff4d4f;
  494. }
  495. .container-code-two {
  496. display: flex;
  497. image {
  498. width: 60px;
  499. height: 24px;
  500. }
  501. image:first-child {
  502. margin-right: 20px;
  503. }
  504. }
  505. }
  506. .battery-info {
  507. display: flex;
  508. margin-top: 16px;
  509. justify-content: space-between;
  510. flex-wrap: wrap;
  511. margin-bottom: 20px;
  512. min-height: 116px;
  513. .vim {
  514. width: 100%;
  515. margin: 0px 0px 12px 0px;
  516. text {
  517. font-size: 14px;
  518. color: #414A63;
  519. }
  520. text:last-child {
  521. display: inline-block;
  522. margin-left: 10px;
  523. font-weight: 600;
  524. color: #fff;
  525. }
  526. }
  527. .info-right {
  528. width: 46%;
  529. height: 32px;
  530. line-height: 30px;
  531. text-align: center;
  532. font-size: 14px;
  533. font-weight: 500;
  534. color: white;
  535. background-color: #0e1f31;
  536. border: #1b71a4 solid 1px;
  537. .s1 {
  538. vertical-align: middle;
  539. width: 18px;
  540. height: 18px;
  541. }
  542. }
  543. .info-warning {
  544. width: 46%;
  545. background-color: #201823;
  546. border: #834246 solid 1px;
  547. height: 34px;
  548. line-height: 32px;
  549. text-align: center;
  550. font-size: 14px;
  551. font-weight: 500;
  552. color: white;
  553. // img{
  554. // vertical-align: middle;
  555. // }
  556. }
  557. }
  558. .battery-charger {
  559. width: 100%;
  560. min-height: 228px;
  561. .nodata {
  562. position: relative;
  563. left: calc(50% - 33px);
  564. margin-top: 6vh;
  565. width: 66px;
  566. height: 66px;
  567. }
  568. }
  569. }
  570. .battery-charger-btn {
  571. display: flex;
  572. position: absolute;
  573. bottom: 20px;
  574. .Plug-gun-charging {
  575. width: 135px;
  576. height: 32px;
  577. background: #69B889;
  578. text-align: center;
  579. line-height: 32px;
  580. font-size: 16px;
  581. font-family: PingFang SC-Medium, PingFang SC;
  582. font-weight: 500;
  583. color: #DEEFF9;
  584. }
  585. .Settings {
  586. background: #636C97;
  587. margin-left: 20px;
  588. }
  589. }
  590. }
  591. </style>