Cbd.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829
  1. <template>
  2. <div>
  3. <el-breadcrumb separator-class="el-icon-arrow-right">
  4. <el-breadcrumb-item>测报系统</el-breadcrumb-item>
  5. <el-breadcrumb-item>虫情测报</el-breadcrumb-item>
  6. </el-breadcrumb>
  7. <search-bar
  8. @fun="getDisplayType"
  9. :displayType="displayType"
  10. @fun2="getIDName"
  11. @fun3="getIsOnline"
  12. >
  13. <template slot="search-box">
  14. <template v-if="role == 'admin'">
  15. <el-select
  16. v-model="queryInfo.dver"
  17. class="select01"
  18. clearable
  19. size="mini"
  20. placeholder="请选择设备版本"
  21. @change="searchChange()"
  22. >
  23. <el-option
  24. v-for="item in dverGather"
  25. :key="item.value"
  26. :label="item.label"
  27. :value="item.value"
  28. ></el-option>
  29. </el-select>
  30. </template>
  31. <!-- <template v-if="role=='admin'">
  32. <el-select
  33. v-model="queryInfo.selectUser"
  34. class="select01"
  35. clearable
  36. size="mini"
  37. filterable
  38. placeholder="请选择用户"
  39. @change="searchChange()"
  40. >
  41. <el-option v-for="item in userList" :key="item.value" :label="item.label" :value="item.value"></el-option>
  42. </el-select>
  43. </template> -->
  44. </template>
  45. </search-bar>
  46. <template v-if="displayType == 1">
  47. <el-row :gutter="10">
  48. <el-col
  49. :xs="24"
  50. :sm="24"
  51. :md="12"
  52. :lg="8"
  53. :xl="6"
  54. v-for="item in equipList"
  55. :key="item.imei"
  56. >
  57. <el-card class="box-card">
  58. <equip-item :is_online="item.device_status">
  59. <span
  60. v-show="userType == 1"
  61. slot="set"
  62. class="superOperate el-icon-setting"
  63. @click="
  64. equipOperation(item.d_id, item.device_id, item.device_name)
  65. "
  66. ></span>
  67. <span slot="title">虫情测报</span>
  68. <div slot="content" class="content">
  69. <p>
  70. <i class="iconfont icon-yonghu"></i>
  71. 设备ID:{{ item.device_id }}
  72. </p>
  73. <p>
  74. <i class="iconfont icon-biaoqian"></i>
  75. 设备名称:{{
  76. item.device_name == '' ? '无' : item.device_name
  77. }}
  78. </p>
  79. <p class="onlineState">
  80. <i class="iconfont icon-diannao"></i>在线状态:
  81. <span
  82. :class="{
  83. red: item.device_status == 0,
  84. green: item.device_status == 1
  85. }"
  86. >{{ item.device_status == 0 ? '离线' : '在线' }}</span
  87. >
  88. </p>
  89. <p>
  90. <i class="iconfont icon-shijian"></i>
  91. 最新上报时间 : {{ (item.status_time * 1000) | formatTime }}
  92. </p>
  93. <p>
  94. <i class="iconfont icon-dizhi"></i>
  95. 地址 : {{ item.address || '无' }}
  96. </p>
  97. <p class="btns">
  98. <i class="iconfont icon-yemiancaozuo"></i>
  99. <el-button
  100. size="mini"
  101. type="info"
  102. @click="viewPhotoDialog(item.device_id, item.d_id)"
  103. >查看图片</el-button
  104. >
  105. <el-button
  106. size="mini"
  107. type="warning"
  108. @click="
  109. EquipControl(item.d_id, item.device_id, item.device_name)
  110. "
  111. >设备控制</el-button
  112. >
  113. <el-button
  114. size="mini"
  115. type="success"
  116. @click="showTimeControlDialog(item.d_id,item.device_id,)"
  117. >害虫统计</el-button
  118. >
  119. <el-button
  120. size="mini"
  121. type="danger"
  122. @click="dataDetails(item.device_id, item.d_id)"
  123. >数据详情</el-button
  124. >
  125. </p>
  126. </div>
  127. </equip-item>
  128. </el-card>
  129. </el-col>
  130. </el-row>
  131. </template>
  132. <template v-if="displayType == 2">
  133. <el-card class="box-card">
  134. <el-table :data="equipList" stripe style="width: 100%">
  135. <el-table-column prop="device_id" label="设备ID" width="180">
  136. <template slot-scope="scope">{{ scope.row.device_id }}</template>
  137. </el-table-column>
  138. <el-table-column prop="device_name" label="设备名称" width="180">
  139. <template slot-scope="scope">{{
  140. scope.row.device_name == '' ? '无' : scope.row.device_name
  141. }}</template>
  142. </el-table-column>
  143. <el-table-column prop="device_status" label="在线状态">
  144. <template slot-scope="scope">
  145. <p style="color: #17bb89" v-if="scope.row.device_status == 1">
  146. 在线
  147. </p>
  148. <p style="color: #eb6765" v-if="scope.row.device_status == 0">
  149. 离线
  150. </p>
  151. </template>
  152. </el-table-column>
  153. <el-table-column prop="dver_num" label="设备版本"></el-table-column>
  154. <el-table-column prop="status_time" label="最新上报时间">
  155. <template slot-scope="scope">{{
  156. (scope.row.status_time * 1000) | formatTime
  157. }}</template>
  158. </el-table-column>
  159. <el-table-column label="操作" width="400">
  160. <template slot-scope="scope">
  161. <el-button
  162. size="mini"
  163. type="info"
  164. @click="viewPhotoDialog(scope.row.device_id, scope.row.d_id)"
  165. >查看图片</el-button
  166. >
  167. <el-button
  168. size="mini"
  169. type="warning"
  170. @click="
  171. EquipControl(
  172. scope.row.d_id,
  173. scope.row.device_id,
  174. scope.row.device_name
  175. )
  176. "
  177. >设备控制</el-button
  178. >
  179. <el-button
  180. size="mini"
  181. type="success"
  182. @click="showTimeControlDialog(scope.row.d_id,scope.row.device_id)"
  183. >害虫统计</el-button
  184. >
  185. <el-button
  186. size="mini"
  187. type="danger"
  188. @click="dataDetails(scope.row.device_id, scope.row.d_id)"
  189. >数据详情</el-button
  190. >
  191. </template>
  192. </el-table-column>
  193. </el-table>
  194. </el-card>
  195. </template>
  196. <!-- 暂无数据 -->
  197. <div
  198. class="expertDiagnosis_referral_units_not"
  199. v-if="equipList.length <= 0 && displayType == 1"
  200. >
  201. <img
  202. src="@/assets/images/expertDiagnosis/zanwu.png"
  203. alt
  204. class="expertDiagnosis_referral_units_notImg"
  205. />
  206. </div>
  207. <el-pagination
  208. v-if="equipList.length > 0"
  209. background
  210. :page-size="8"
  211. layout="prev, pager, next"
  212. :total="totalNum"
  213. :current-page="queryInfo.page"
  214. @current-change="changePage"
  215. ></el-pagination>
  216. <!-- 设备控制对话框 -->
  217. <el-dialog
  218. title="设备控制"
  219. :visible.sync="equipControlDialogVisible"
  220. @close="resetEquipControlDialogClosed"
  221. width="600px"
  222. >
  223. <div class="handAddForm">
  224. <el-form
  225. ref="equipContrlRef"
  226. :model="equipContrlForm"
  227. label-position="right"
  228. label-width="150px"
  229. >
  230. <el-form-item label="设备编号:">
  231. <el-input disabled v-model="equipInfo.device_id"></el-input>
  232. </el-form-item>
  233. <el-form-item label="设备名称:" v-if="equipInfo.device_name">
  234. <el-input disabled v-model="equipInfo.device_name"></el-input>
  235. </el-form-item>
  236. <el-form-item label="设备开关:" prop="ds">
  237. <el-select v-model="equipContrlForm.ds">
  238. <el-option label="开机" :value="1"></el-option>
  239. <el-option label="关机" :value="0"></el-option>
  240. </el-select>
  241. </el-form-item>
  242. <el-form-item label="工作模式:" prop="ws">
  243. <el-select
  244. v-model="ws"
  245. placeholder="请选择工作模式"
  246. @change="wsChange()"
  247. >
  248. <el-option label="节能" :value="0"></el-option>
  249. <el-option label="常规" :value="1"></el-option>
  250. <el-option label="加强" :value="2"></el-option>
  251. </el-select>
  252. </el-form-item>
  253. <el-form-item label="定时模式:" prop="ts">
  254. <el-select
  255. v-model="equipContrlForm.ts"
  256. placeholder="请选择定时模式"
  257. >
  258. <el-option label="光控" :value="0"></el-option>
  259. <el-option label="时控" :value="1"></el-option>
  260. </el-select>
  261. </el-form-item>
  262. <el-form-item v-if="equipContrlForm.ts == 1" label="开始结束时间:">
  263. <el-col :span="11">
  264. <el-time-select
  265. placeholder="起始时间"
  266. v-model="equipContrlForm.st"
  267. :picker-options="{
  268. start: '00:00',
  269. step: '01:00',
  270. end: '24:00'
  271. }"
  272. ></el-time-select>
  273. </el-col>
  274. <el-col class="line" :span="2">-</el-col>
  275. <el-col :span="11">
  276. <el-time-select
  277. placeholder="结束时间"
  278. v-model="equipContrlForm.et"
  279. :picker-options="{
  280. start: '00:00',
  281. step: '01:00',
  282. end: '24:00'
  283. }"
  284. ></el-time-select>
  285. </el-col>
  286. </el-form-item>
  287. <el-form-item
  288. v-if="equipContrlForm.ts != 1"
  289. label="定时时长(h):"
  290. prop="tt"
  291. >
  292. <div class="sliderParent">
  293. <div class="block">
  294. <el-slider
  295. v-model="equipContrlForm.tt"
  296. show-input
  297. :min="1"
  298. :max="10"
  299. ></el-slider>
  300. </div>
  301. </div>
  302. </el-form-item>
  303. <el-form-item label="落虫时间(min):" prop="collt">
  304. <div class="sliderParent">
  305. <div class="block">
  306. <el-slider
  307. v-model="equipContrlForm.collt"
  308. show-input
  309. :min="1"
  310. :max="20"
  311. ></el-slider>
  312. </div>
  313. </div>
  314. </el-form-item>
  315. <el-form-item label="加热时间(min):" prop="htim">
  316. <div class="sliderParent">
  317. <div class="block">
  318. <el-slider
  319. v-model="equipContrlForm.htim"
  320. show-input
  321. :min="1"
  322. :max="20"
  323. ></el-slider>
  324. </div>
  325. </div>
  326. </el-form-item>
  327. <el-form-item label="加热温度(℃):" prop="hst">
  328. <div class="sliderParent">
  329. <div class="block">
  330. <el-slider
  331. v-model="equipContrlForm.hst"
  332. show-input
  333. :min="75"
  334. :max="120"
  335. ></el-slider>
  336. </div>
  337. </div>
  338. </el-form-item>
  339. <el-form-item label="高温保护阈值(℃):" prop="tph">
  340. <div class="sliderParent">
  341. <div class="block">
  342. <el-slider
  343. v-model="equipContrlForm.tph"
  344. show-input
  345. :min="50"
  346. :max="70"
  347. ></el-slider>
  348. </div>
  349. </div>
  350. </el-form-item>
  351. <el-form-item label="低温保护阈值(℃):" prop="tpl">
  352. <div class="sliderParent">
  353. <div class="block">
  354. <el-slider
  355. v-model="equipContrlForm.tpl"
  356. show-input
  357. :min="1"
  358. :max="10"
  359. ></el-slider>
  360. </div>
  361. </div>
  362. </el-form-item>
  363. <el-form-item label="数据上传间隔(min):" prop="datt">
  364. <div class="sliderParent">
  365. <div class="block">
  366. <el-slider
  367. v-model="equipContrlForm.datt"
  368. :step="10"
  369. show-input
  370. :min="10"
  371. :max="60"
  372. ></el-slider>
  373. </div>
  374. </div>
  375. </el-form-item>
  376. <el-form-item label="图片分辨率:" prop="imgres">
  377. <el-select
  378. v-model="equipContrlForm.imgres"
  379. placeholder="请选择图片分辨率"
  380. >
  381. <el-option label="高" :value="0"></el-option>
  382. <el-option label="中" :value="1"></el-option>
  383. <el-option label="低" :value="2"></el-option>
  384. </el-select>
  385. </el-form-item>
  386. <el-form-item class="handAddFormBtn">
  387. <el-button type="primary" size="mini" @click="equipControlSubm()"
  388. >确定</el-button
  389. >
  390. <el-button size="mini" @click="equipControlDialogVisible = false"
  391. >取消</el-button
  392. >
  393. </el-form-item>
  394. </el-form>
  395. </div>
  396. </el-dialog>
  397. <!-- 管理员操作弹框 -->
  398. <el-dialog
  399. title="管理员操作"
  400. :visible.sync="operationDialogVisible"
  401. width="360px"
  402. >
  403. <div class="item">
  404. <span>设备编号 : </span><span>{{ equipInfo.device_id }}</span>
  405. </div>
  406. <div class="item" v-if="equipInfo.device_name">
  407. <span>设备名称 : </span><span>{{ equipInfo.device_name }}</span>
  408. </div>
  409. <div class="tit">联网模块</div>
  410. <el-button
  411. type="primary"
  412. size="mini"
  413. @click="equipBtnControl('dtu_update')"
  414. >升级</el-button
  415. >
  416. <el-button
  417. type="primary"
  418. size="mini"
  419. @click="equipBtnControl('dtu_reboot')"
  420. >重启</el-button
  421. >
  422. <div class="tit">板子设置</div>
  423. <el-row>
  424. <el-button type="primary" size="mini">查看原始imei</el-button>
  425. <el-button type="primary" size="mini">更改imei</el-button>
  426. </el-row>
  427. <div class="tit">强制操作</div>
  428. <el-row>
  429. <el-button
  430. type="danger"
  431. size="mini"
  432. @click="equipBtnControl('takephoto')"
  433. >拍照</el-button
  434. >
  435. <el-button type="danger" size="mini" @click="equipBtnControl('update')"
  436. >升级</el-button
  437. >
  438. <el-button type="danger" size="mini" @click="equipBtnControl('reboot')"
  439. >重启</el-button
  440. >
  441. <el-button
  442. type="danger"
  443. size="mini"
  444. @click="equipBtnControl('open_shake')"
  445. >震动开启</el-button
  446. >
  447. <el-button
  448. type="danger"
  449. size="mini"
  450. @click="equipBtnControl('close_shake')"
  451. >震动关闭</el-button
  452. >
  453. </el-row>
  454. </el-dialog>
  455. </div>
  456. </template>
  457. <script>
  458. import SearchBar from '@/components/SearchBar'
  459. import EquipItem from '@/components/EquipItem'
  460. export default {
  461. data() {
  462. return {
  463. //图表和表格切换
  464. displayType: '',
  465. //设备列表
  466. equipList: [],
  467. role: 'admin',
  468. dverGather: [
  469. { label: '全部', value: '' },
  470. { label: '版本1', value: '1' },
  471. { label: '版本2', value: '2' },
  472. { label: '版本3', value: '3' },
  473. { label: '版本4', value: '4' },
  474. { label: '版本5', value: '5' }
  475. ],
  476. userList: [
  477. { label: '用户1', value: '用户1' },
  478. { label: '用户2', value: '用户2' }
  479. ],
  480. d_id: '',
  481. device_id: '',
  482. ws: 0, //工作模式
  483. equipInfo: {
  484. //设备控制回显
  485. device_id: '',
  486. device_name: ''
  487. },
  488. equipContrlForm: {
  489. st: '',
  490. et: '',
  491. ts: 0,
  492. tt: null,
  493. collt: null,
  494. htim: null,
  495. hst: null,
  496. tph: null,
  497. tpl: null,
  498. datt: null,
  499. imgres: 0,
  500. ds:1
  501. },
  502. //参数
  503. queryInfo: {
  504. page: 1,
  505. is_online: null,
  506. dver: null,
  507. selectUser: '',
  508. f_id: '',
  509. ename: ''
  510. },
  511. totalNum: 0,
  512. //设备控制对话框
  513. equipControlDialogVisible: false,
  514. operationDialogVisible: false
  515. }
  516. },
  517. created() {
  518. this.displayType = String(localStorage.getItem('cbdListType') || '1')
  519. },
  520. mounted() {
  521. this.getEquipList()
  522. },
  523. computed: {
  524. userType: function () {
  525. //获取用户类型
  526. return sessionStorage.getItem('myuser_type')
  527. }
  528. },
  529. methods: {
  530. getIsOnline(data) {
  531. this.queryInfo.is_online = data
  532. this.queryInfo.page = 1
  533. this.getEquipList()
  534. },
  535. getIDName(data) {
  536. this.queryInfo.f_id = data.f_id
  537. this.queryInfo.ename = data.ename
  538. this.queryInfo.page = 1
  539. this.getEquipList()
  540. },
  541. getDisplayType(data) {
  542. this.displayType = String(data)
  543. localStorage.setItem('cbdListType', data)
  544. },
  545. //获取设备列表
  546. getEquipList() {
  547. this.$axios({
  548. method: 'POST',
  549. url: '/api/api_gateway?method=forecast.worm_lamp.lamp_list',
  550. data: this.qs.stringify({
  551. device_type_id: 3,
  552. page_size: 8,
  553. page: this.queryInfo.page,
  554. device_status: this.queryInfo.is_online,
  555. device_name: this.queryInfo.ename,
  556. device_id: this.queryInfo.f_id,
  557. dver_num: this.queryInfo.dver
  558. })
  559. }).then((res) => {
  560. if (res.data.message == '') {
  561. this.equipList = res.data.data.data
  562. this.totalNum = res.data.data.counts
  563. }
  564. })
  565. },
  566. //改变page
  567. changePage(val) {
  568. this.queryInfo.page = val
  569. this.getEquipList()
  570. },
  571. // 数据详情
  572. dataDetails(e_id, d_id) {
  573. this.device_id = e_id
  574. this.$router.push({ path: `/index/cbdDataDetails/${e_id}/${d_id}` })
  575. },
  576. // 查看图片
  577. viewPhotoDialog(id, d_id) {
  578. this.device_id = id
  579. this.$router.push({
  580. path: `/index/cbdDataPhotos/${id}`,
  581. query: { d_id: d_id }
  582. })
  583. },
  584. //设备控制
  585. EquipControl(d_id, device_id, device_name) {
  586. this.d_id = d_id
  587. this.equipInfo = { device_id, device_name }
  588. this.$axios({
  589. method: 'POST',
  590. url:
  591. '/api/api_gateway?method=forecast.send_control.device_control_info',
  592. data: this.qs.stringify({ d_id, get_type: 1 })
  593. }).then((res) => {
  594. if (Object.keys(res.data.data).length > 0) {
  595. let data = res.data.data
  596. data.ds=data.ds?data.ds:null
  597. data.st =
  598. data.st && data.st < 10 ? '0' + data.st + ':00' : data.st + ':00'
  599. data.et =
  600. data.et && data.et < 10 ? '0' + data.et + ':00' : data.et + ':00'
  601. this.equipContrlForm = data
  602. }
  603. this.equipControlDialogVisible = true
  604. })
  605. },
  606. //设备控制提交
  607. equipControlSubm() {
  608. let newForm = Object.assign({}, this.equipContrlForm) //深拷贝
  609. newForm.st =
  610. newForm.st && newForm.st.slice(0, 2).charAt(0) != '0'
  611. ? newForm.st.slice(0, 2)
  612. : newForm.st.slice(1, 2)
  613. newForm.et =
  614. newForm.et && newForm.et.slice(0, 2).charAt(0) != '0'
  615. ? newForm.et.slice(0, 2)
  616. : newForm.et.slice(1, 2)
  617. this.$axios({
  618. method: 'POST',
  619. url: '/api/api_gateway?method=forecast.send_control.device_control',
  620. data: this.qs.stringify({
  621. device_type_id: 3,
  622. d_id: this.d_id,
  623. config: JSON.stringify(newForm)
  624. })
  625. }).then((res) => {
  626. if (res.data.message=='') {
  627. this.$message.success('设备控制修改成功')
  628. } else {
  629. his.$message.error('设备控制修改失败')
  630. }
  631. this.equipControlDialogVisible = false
  632. })
  633. },
  634. resetEquipControlDialogClosed() {
  635. this.$refs.equipContrlRef.resetFields()
  636. this.ws = 0
  637. },
  638. //害虫统计
  639. showTimeControlDialog(d_id,id) {
  640. this.device_id = id
  641. this.$router.push(`/index/pestsStats/${d_id}/${id}`)
  642. },
  643. //设备控制->工作模式切换
  644. wsChange() {
  645. this.$confirm('确定修改工作模式?', '提示', {
  646. confirmButtonText: '确定',
  647. cancelButtonText: '取消',
  648. type: 'warning'
  649. })
  650. .then(() => {
  651. this.$axios({
  652. method: 'POST',
  653. url: '/api/api_gateway?method=forecast.send_control.device_control',
  654. data: this.qs.stringify({
  655. device_type_id: 3,
  656. d_id: this.d_id,
  657. work_type: this.ws
  658. })
  659. }).then((res) => {
  660. if (res.data.message == '') {
  661. this.$message({
  662. type: 'success',
  663. message: '修改成功!'
  664. })
  665. } else {
  666. this.$message({
  667. type: 'error',
  668. message: res.data.message
  669. })
  670. }
  671. })
  672. })
  673. .catch(() => {
  674. this.$message({
  675. type: 'info',
  676. message: '已取消修改'
  677. })
  678. })
  679. },
  680. equipOperation(d_id, device_id, device_name) {
  681. this.d_id = d_id
  682. this.equipInfo = { device_id, device_name }
  683. this.operationDialogVisible = true
  684. },
  685. equipBtnControl(cmd) {
  686. this.$axios({
  687. method: 'POST',
  688. url:
  689. '/api/api_gateway?method=forecast.send_control.admin_device_control',
  690. data: this.qs.stringify({
  691. cmd,
  692. device_type_id: 3,
  693. d_id: this.d_id
  694. })
  695. }).then((res) => {
  696. if (res.data.message == '') {
  697. this.$message.success('指令下发成功!')
  698. }
  699. })
  700. },
  701. // 设备版本、用户筛选
  702. searchChange() {
  703. console.log(this.queryInfo.selectUser)
  704. this.getEquipList()
  705. }
  706. },
  707. components: {
  708. SearchBar,
  709. EquipItem
  710. }
  711. }
  712. </script>
  713. <style lang="less" scoped>
  714. .handAddForm {
  715. /deep/.el-form-item {
  716. margin-bottom: 8px;
  717. }
  718. .handAddFormBtn {
  719. text-align: right;
  720. }
  721. }
  722. .sliderParent {
  723. display: flex;
  724. .block {
  725. flex: 1;
  726. margin-right: 10px;
  727. /deep/.el-slider__runway,
  728. /deep/.el-slider__bar {
  729. height: 10px;
  730. }
  731. }
  732. > span {
  733. width: 40px;
  734. }
  735. }
  736. .swi-box {
  737. text-align: center;
  738. padding: 10px 0;
  739. label {
  740. color: #333;
  741. margin-right: 8px;
  742. font-size: 14px;
  743. }
  744. i.el-icon-edit {
  745. margin-right: 8px;
  746. }
  747. }
  748. .real-time {
  749. display: flex;
  750. justify-content: left;
  751. align-items: center;
  752. padding: 20px 0;
  753. .left {
  754. margin-right: 10px;
  755. .icon-box {
  756. border-radius: 50%;
  757. width: 46px;
  758. height: 46px;
  759. padding: 5px;
  760. box-sizing: border-box;
  761. margin-bottom: 3px;
  762. img {
  763. width: 100%;
  764. height: auto;
  765. }
  766. }
  767. .aisle {
  768. text-align: center;
  769. font-size: 14px;
  770. color: #666;
  771. }
  772. }
  773. .right {
  774. color: #333;
  775. .num {
  776. font-weight: 600;
  777. font-size: 20px;
  778. margin-bottom: 3px;
  779. }
  780. .unit {
  781. font-size: 14px;
  782. color: #666;
  783. }
  784. }
  785. }
  786. .checkData {
  787. text-align: right;
  788. font-size: 14px;
  789. span {
  790. cursor: pointer;
  791. }
  792. }
  793. .red {
  794. color: rgb(235, 103, 101);
  795. }
  796. .green {
  797. color: rgb(23, 187, 137);
  798. }
  799. .el-date-editor--time-select {
  800. width: 100% !important;
  801. }
  802. .el-form .line {
  803. text-align: center;
  804. }
  805. .el-select {
  806. width: 100%;
  807. }
  808. // 暂无数据
  809. .expertDiagnosis_referral_units_not {
  810. width: 272px;
  811. margin: 0 auto;
  812. }
  813. .tit {
  814. font-weight: 800;
  815. margin: 15px 0 8px 0;
  816. }
  817. .item {
  818. margin-bottom: 10px;
  819. }
  820. .onlineState {
  821. margin: 0 3px 0 3px;
  822. }
  823. .onlineState .icon-diannao {
  824. margin: 0 19px 0 -2px !important;
  825. }
  826. </style>