assets.vue 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960
  1. <template>
  2. <div id="allocation">
  3. <div class="head">
  4. <div class="searchbox">
  5. <img src="../../assets/image/search.png" class="searchbox_img">
  6. <input type="text" v-model="keyWord" class="searchbox_text" />
  7. <button v-on:click="searchKeyword()" class="searchbox_button">搜索</button>
  8. </div>
  9. <div class="btn_body">
  10. <img v-on:click.stop="showList()" class="btn_img" src="../../assets/image/add.png">
  11. <div class="btn_list" v-show="popupVisible">
  12. <div v-if="power.indexOf('registered_assets') > -1" v-on:click="register()"><img src="../../assets/image/register.png">登记资产</div>
  13. <div v-if="tagId != -2 && tagId != -3" v-on:click="exportExcel()"><img src="../../assets/image/export.png">导出报表</div>
  14. </div>
  15. </div>
  16. <div class="searchkey">
  17. <div class="searchkey_word">
  18. <a v-for="(item,index) in labels" :id="'tag' + item.id" v-bind:class="{'active':item.id==tagId}" v-on:click="chooseTag(item.id,1)">{{item.name}}</a>
  19. </div>
  20. <div class="searchkey_btn">
  21. <img v-on:click="showFilter()" src="../../assets/image/pull_down.png">
  22. </div>
  23. </div>
  24. </div>
  25. <section class="_sorting-address">
  26. <ul class="address_first">
  27. <li v-for="(item,index) in labels" :id="'btn'+item.id" v-bind:class="{'active':item.id==tagId}" v-on:click="chooseTag(item.id,0)">{{item.name}}</li>
  28. </ul>
  29. </section>
  30. <div class="body">
  31. <!-- <div class="noList" v-if="list.length==0">
  32. <img src="../../assets/image/noList.png">
  33. </div> v-else -->
  34. <ul v-infinite-scroll="loadMore" infinite-scroll-disabled="loading" infinite-scroll-distance="10" :class="tagId==-2||tagId==-3?'isFrame':''">
  35. <li v-if="tagId != -2 && tagId != -3" v-for="item in list" v-on:click="jumpTo(item.id)">
  36. <div class="item_img">
  37. <img v-if="item.pic != null" v-lazy="item.pic">
  38. <img v-else src="../../assets/image/noPic.png">
  39. </div>
  40. <div class="text item_name">{{item.name}}</div>
  41. <div class="text item_int">{{item.modelNumber}}</div>
  42. <div class="text item_num">{{item.goodsNos.length}}{{item.unit}}</div>
  43. </li>
  44. <li v-if="tagId == -2" v-for="item in list" class="one_frame" v-on:click="jumpToFrame(item.id)">
  45. <div class="frame_title">
  46. <span>{{item.name}}</span>
  47. <span>
  48. <mt-button v-if="item.doorStatus==0" size="small" type="primary" v-on:click.native.stop="openDoor(item.id)">开门</mt-button>
  49. <span v-else style="color:red">已开门</span>
  50. </span>
  51. </div>
  52. <div class="frame_number">{{item.modelNumber}}</div>
  53. <div class="frame_label">
  54. <span><span>机架ID:</span>{{item.rackId}}</span>
  55. <span><span>温度:</span>{{item.temp}}</span>
  56. <span><span>湿度:</span>{{item.hum}}</span>
  57. </div>
  58. <div class="frame_detail"> 查看详情 > </div>
  59. </li>
  60. <li v-if="tagId == -3" v-for="item in list" class="one_device">
  61. <mt-cell-swipe :id="'dev' + item.id" v-if="item.goodsId == null" title=""
  62. :right="[{ content: '上架', style: { background: '#2680EB', color: '#fff' }, handler: () => chooseDevice(item.id) }]">
  63. <div style="width: 100%;">
  64. <div class="new_title">
  65. <span>{{item.deviceName}}</span>
  66. <span>{{item.modelNo}}</span>
  67. <span>{{item.currentState==0?'禁止':'运行'}}</span>
  68. </div>
  69. <div class="new_label">
  70. <span><span>标签ID:</span>{{item.labelId}}</span>
  71. <span><span>模块ID:</span>{{item.modelId}}</span>
  72. <span><span>U位号:</span>{{item.ubitNum}}</span>
  73. <!-- <span><span>机架ID:</span>{{item.rackId}}</span> -->
  74. </div>
  75. </div>
  76. </mt-cell-swipe>
  77. <mt-cell-swipe :id="'dev' + item.id" v-else title=""
  78. :right="[{ content: '下架', style: { background: 'red', color: '#fff' }, handler: () => handle(item.id) }]">
  79. <div style="width: 100%;">
  80. <div class="new_title">
  81. <span>{{item.deviceName}}</span>
  82. <span>{{item.modelNo}}</span>
  83. <span>{{item.currentState==0?'禁止':'运行'}}</span>
  84. </div>
  85. <div class="new_label">
  86. <span><span>标签ID:</span>{{item.labelId}}</span>
  87. <span><span>模块ID:</span>{{item.modelId}}</span>
  88. <span><span>U位号:</span>{{item.ubitNum}}</span>
  89. <span><span>机架ID:</span>{{item.rackId}}</span>
  90. </div>
  91. </div>
  92. </mt-cell-swipe>
  93. </li>
  94. <div class="order" v-if="haveMore">
  95. <span class="line"></span>
  96. <span class="txt">没有更多了</span>
  97. <span class="line"></span>
  98. </div>
  99. </ul>
  100. </div>
  101. </div>
  102. </template>
  103. <script>
  104. import util from '../../common/js/util'
  105. import { MessageBox } from 'mint-ui';
  106. export default {
  107. data() {
  108. return {
  109. keyWord: "",
  110. power: sessionStorage.getItem("power"),
  111. list: [],
  112. labels: [],
  113. pageNum: 1,
  114. pages: 1,
  115. tagId: sessionStorage.assetsTab==null?-1:sessionStorage.assetsTab,
  116. popupVisible: false,
  117. loading: false,
  118. haveMore: false,
  119. }
  120. },
  121. methods: {
  122. // 资产列表
  123. getList() {
  124. this.$indicator.open();
  125. var tagId = this.tagId==-1?"":this.tagId;
  126. if(tagId == -2) {
  127. tagId = -1
  128. } else if(tagId == -3) {
  129. tagId = -2
  130. }
  131. this.http.post(this.port.assets.list, {
  132. 'keyName': this.keyWord,
  133. 'tagId': tagId,
  134. 'pageNum': 1
  135. } ,
  136. res => {
  137. this.$indicator.close();
  138. if (res.code == "ok") {
  139. this.list = res.data.list;
  140. this.pages = res.data.pages==0?1:res.data.pages;
  141. document.querySelector("#tag"+this.tagId).scrollIntoView(true);
  142. } else {
  143. this.$toast({
  144. message: res.msg,
  145. duration: 2000
  146. });
  147. }
  148. }, error => {
  149. this.$indicator.close();
  150. this.$toast({
  151. message: error,
  152. duration: 2000
  153. });
  154. })
  155. },
  156. loadMore() {
  157. if(this.pageNum == this.pages) {
  158. this.haveMore = true;
  159. } else if(this.pageNum < this.pages) {
  160. this.$indicator.open();
  161. var tagId = this.tagId==-1?"":this.tagId;
  162. if(tagId == -2) {
  163. tagId = -1
  164. } else if(tagId == -3) {
  165. tagId = -2
  166. }
  167. this.http.post(this.port.assets.list, {
  168. 'keyName': this.keyWord,
  169. 'tagId': tagId,
  170. 'pageNum': ++this.pageNum
  171. } ,
  172. res => {
  173. this.$indicator.close();
  174. if (res.code == "ok") {
  175. this.pages = res.data.pages==0?1:res.data.pages;
  176. if(res.data.list.length != 0) {
  177. for(var i in res.data.list) {
  178. this.list.push(res.data.list[i]);
  179. }
  180. }
  181. } else {
  182. this.$toast({
  183. message: res.msg,
  184. duration: 2000
  185. });
  186. }
  187. }, error => {
  188. this.$indicator.close();
  189. this.$toast({
  190. message: error,
  191. duration: 2000
  192. });
  193. })
  194. }
  195. },
  196. // 标签列表
  197. getLabels() {
  198. this.http.post(this.port.label.list, {} ,
  199. res => {
  200. if (res.code == "ok") {
  201. this.getList();
  202. var array = [{"id":-1 , "name": "全部"},{"id":-2,"name":"机架"},{"id":-3,"name":"机架设备"}];
  203. for(var i in res.data) {
  204. array.push(res.data[i]);
  205. }
  206. this.labels = array;
  207. } else {
  208. this.$toast({
  209. message: res.msg,
  210. duration: 2000
  211. });
  212. }
  213. }, error => {
  214. this.$toast({
  215. message: error,
  216. duration: 2000
  217. });
  218. })
  219. },
  220. // 关键词搜索
  221. searchKeyword() {
  222. this.getList();
  223. },
  224. // 右上角按钮
  225. showList() {
  226. this.popupVisible = !this.popupVisible;
  227. },
  228. // 标签筛选
  229. showFilter() {
  230. $("._sorting-medical").removeClass("fixed-top");
  231. if($("._sorting-address").hasClass("fixed-top")){
  232. $(".searchkey_btn img").removeClass("rotate")
  233. $(".searchkey_btn img").addClass("rotate1")
  234. $(this).removeClass("current");
  235. $("._sorting-address").removeClass("fixed-top");
  236. $('._navbar').attr('style','position: fixed;top:0;');
  237. }else{
  238. $(".searchkey_btn img").removeClass("rotate1")
  239. $(".searchkey_btn img").addClass("rotate")
  240. $("._sorting-address").addClass("fixed-top");
  241. $(this).addClass("current");
  242. $("._current-medical").removeClass("current");
  243. $('._navbar').attr('style','position: fixed;top:0;');
  244. }
  245. },
  246. // 标签选择
  247. chooseTag(id,type) {
  248. $("#"+id).addClass("active").siblings("a").removeClass("active");
  249. $("#btn"+id).addClass("active").siblings().removeClass("active");
  250. // location.href = "#" + id;
  251. document.querySelector("#tag"+id).scrollIntoView(true);
  252. sessionStorage.assetsTab = id;
  253. $("._sorting-medical").removeClass("fixed-top");
  254. $(".searchkey_btn img").removeClass("rotate")
  255. $(".searchkey_btn img").addClass("rotate1")
  256. $(this).removeClass("current");
  257. $("._sorting-address").removeClass("fixed-top");
  258. $('._navbar').attr('style','position: fixed;top:0;');
  259. this.pages = 1;
  260. this.tagId = id;
  261. this.getList();
  262. },
  263. // 开关门
  264. openDoor(id) {
  265. MessageBox.confirm('', { 
  266. message: '是否打开机柜?', 
  267. title: '', 
  268. confirmButtonText: '确定', 
  269. cancelButtonText: '取消' 
  270.  }).then(action => { 
  271. if (action == 'confirm') {     //确认的回调
  272. this.http.post(this.port.assets.openDoor, {
  273. 'goodsId': id,
  274. 'doorStatus': 1
  275. } ,
  276. res => {
  277. if (res.code == "ok") {
  278. this.$toast({
  279. message: "开门成功",
  280. duration: 2000
  281. });
  282. this.pageNum = 1;
  283. this.getLabels();
  284. } else {
  285. this.$toast({
  286. message: res.msg,
  287. duration: 2000
  288. });
  289. }
  290. }, error => {
  291. this.$toast({
  292. message: error,
  293. duration: 2000
  294. });
  295. })
  296. }
  297.  }).catch(err => { 
  298.  });
  299. },
  300. // 上架
  301. chooseDevice(id) {
  302. var _this = this;
  303. this.http.post(this.port.assets.rackList, {
  304. 'tagId': -1
  305. } ,
  306. res => {
  307. if (res.code == "ok") {
  308. var list = res.data;
  309. var data = [];
  310. for(var i in list) {
  311. data.push({
  312. 'id': list[i].id,
  313. 'name': list[i].name
  314. })
  315. }
  316. var pickerDiv = document.getElementById("dev"+id);
  317. var pickerView = new PickerView({
  318. bindElem: pickerDiv,
  319. data: data,
  320. title: "机架列表",
  321. leftText: "取消",
  322. rightText: "确定",
  323. rightFn: function(selectArr) {
  324. _this.setDevice(id,selectArr[0].id,selectArr[0].name);
  325. }
  326. });
  327. } else {
  328. this.$toast({
  329. message: res.msg,
  330. duration: 2000
  331. });
  332. }
  333. }, error => {
  334. this.$toast({
  335. message: error,
  336. duration: 2000
  337. });
  338. })
  339. },
  340. setDevice(id,goodsId,name) {
  341. MessageBox.confirm('', { 
  342. message: '是否上架至 "'+ name +'" 设备?', 
  343. title: '', 
  344. confirmButtonText: '确定', 
  345. cancelButtonText: '取消' 
  346.  }).then(action => { 
  347. if (action == 'confirm') {     //确认的回调
  348. this.http.post(this.port.assets.upMold, {
  349. 'id': id,
  350. 'goodsId': goodsId
  351. } ,
  352. res => {
  353. if (res.code == "ok") {
  354. this.$toast({
  355. message: "上架成功",
  356. duration: 2000
  357. });
  358. this.getList();
  359. } else {
  360. this.$toast({
  361. message: res.msg,
  362. duration: 2000
  363. });
  364. }
  365. }, error => {
  366. this.$toast({
  367. message: error,
  368. duration: 2000
  369. });
  370. })
  371. }
  372. }).catch(err => { 
  373. });
  374. },
  375. // 下架设备
  376. handle(id) {
  377. MessageBox.confirm('', { 
  378. message: '是否下架该设备?', 
  379. title: '', 
  380. confirmButtonText: '确定', 
  381. cancelButtonText: '取消' 
  382.  }).then(action => { 
  383. if (action == 'confirm') {     //确认的回调
  384. this.http.post(this.port.assets.upMold, {
  385. 'id': id
  386. } ,
  387. res => {
  388. if (res.code == "ok") {
  389. this.$toast({
  390. message: "下架成功",
  391. duration: 2000
  392. });
  393. this.getList();
  394. } else {
  395. this.$toast({
  396. message: res.msg,
  397. duration: 2000
  398. });
  399. }
  400. }, error => {
  401. this.$toast({
  402. message: error,
  403. duration: 2000
  404. });
  405. })
  406. }
  407.  }).catch(err => { 
  408.  });
  409. },
  410. // 路由跳转
  411. jumpTo(id) {
  412. this.$router.push("/detail/" + id);
  413. },
  414. jumpToFrame(id) {
  415. this.$router.push("/detailFrame/" + id);
  416. },
  417. register() {
  418. this.$router.push("/assetsRegister");
  419. },
  420. // 导出
  421. exportExcel() {
  422. this.$indicator.open();
  423. this.http.downloadFile(this.port.assets.listExcel, {
  424. 'keyName': this.keyWord,
  425. 'tagId': this.tagId==-1?"":this.tagId,
  426. } ,
  427. res => {
  428. this.$indicator.close();
  429. let url = window.URL.createObjectURL(new Blob([res]))
  430. let link = document.createElement('a')
  431. link.style.display = 'none'
  432. link.href = url
  433. link.setAttribute('download', '资产报表.xlsx')
  434. document.body.appendChild(link)
  435. link.click()
  436. }, error => {
  437. this.$indicator.close();
  438. this.$toast({
  439. message: error,
  440. duration: 2000
  441. });
  442. })
  443. },
  444. globalClick(callback) {
  445. var _this = this;
  446. document.getElementById('allocation').onclick = function () {
  447. _this.popupVisible = false;
  448. }
  449. }
  450. },
  451. created() {
  452. this.getLabels();
  453. },
  454. mounted() {
  455. this.globalClick();
  456. }
  457. }
  458. </script>
  459. <style scoped>
  460. /* 头部搜索框、筛选栏 START */
  461. .head {
  462. position: fixed;
  463. width: 100%;
  464. box-sizing:border-box;
  465. padding: 0.07rem 0.15rem 0 0.15rem;
  466. background: #ffffff;
  467. border-bottom: 1px solid #dfdfdf;
  468. z-index: 105;
  469. }
  470. .searchbox {
  471. display: inline-block;
  472. /* width: 75%; */
  473. width: 88%;
  474. position: relative;
  475. vertical-align: middle;
  476. }
  477. .searchbox img.searchbox_img {
  478. width:0.18rem;
  479. height: 0.18rem;
  480. position: absolute;
  481. left: 0.04rem;
  482. top: 0.05rem;
  483. }
  484. .searchbox input.searchbox_text {
  485. font-size: 0.16rem;
  486. height: 0.28rem;
  487. border-style:none;
  488. border: 1px solid #2680EB;
  489. border-radius: 50px;
  490. box-sizing:border-box;
  491. width: 100%;
  492. padding: 0 0.45rem 0 0.33rem;
  493. }
  494. input.searchbox_text:focus{
  495. outline: none;
  496. }
  497. .searchbox button.searchbox_button {
  498. border: 0;
  499. background-color: transparent;
  500. outline: none;
  501. height: 0.28rem;
  502. font-size: 0.13rem;
  503. background: #2680EB;
  504. color: #fff;
  505. border-radius: 50px;
  506. padding: 0 0.12rem;
  507. position: absolute;
  508. right: -0.01rem;
  509. top: 0;
  510. }
  511. .btn_body {
  512. display: inline-block;
  513. float: right;
  514. position: relative;
  515. margin-top: 0.03rem;
  516. }
  517. .btn_img {
  518. float: right;
  519. width: 0.25rem;
  520. vertical-align: middle;
  521. }
  522. .btn_list {
  523. position: absolute;
  524. right: 0;
  525. top: 0.37rem;
  526. border:#aaa;
  527. background: #fcfcfc;
  528. box-shadow: 5px 5px 10px #ccc;
  529. z-index: 105;
  530. }
  531. .btn_list:before {
  532. display: inline-block;
  533. width: 0;
  534. height: 0;
  535. border: solid transparent;
  536. border-width: 10px;
  537. border-bottom-color: #fcfcfc;
  538. content: "";
  539. position: absolute;
  540. top: -20px;
  541. right: 0.06rem;
  542. }
  543. .btn_list > div {
  544. width: 0.8rem;
  545. font-size: 0.13rem;
  546. padding: 0.1rem 0.15rem;
  547. border-bottom: 1px solid #efefef;
  548. text-align: center;
  549. }
  550. .btn_list > div img {
  551. width: 0.14rem;
  552. height: 0.14rem;
  553. vertical-align: middle;
  554. margin-right: 0.05rem;
  555. }
  556. .btn_list > div span {
  557. height: 0.15rem;
  558. line-height: 0.15rem;
  559. vertical-align: middle;
  560. }
  561. .searchkey {
  562. height: 0.35rem;
  563. line-height: 0.35rem;
  564. margin-top: 0.08rem;
  565. }
  566. .searchkey .searchkey_word {
  567. width: 93%;
  568. display: inline-block;
  569. overflow-x: auto;
  570. white-space: nowrap;
  571. vertical-align: middle;
  572. }
  573. .searchkey .searchkey_word::-webkit-scrollbar {
  574. display:none
  575. }
  576. .searchkey .searchkey_word a {
  577. font-size: 0.13rem;
  578. padding: 0 0.05rem;
  579. color: #333;
  580. text-decoration:none;
  581. }
  582. .searchkey .searchkey_word a.active {
  583. color: #2680EB;
  584. }
  585. .searchkey .searchkey_btn {
  586. display: inline-block;
  587. width: 7%;
  588. height: 100%;
  589. float: right;
  590. }
  591. .searchkey .searchkey_btn img {
  592. width: 0.25rem;
  593. /* height: 0.3rem; */
  594. vertical-align: middle;
  595. }
  596. .address_first .current{
  597. background:#eee;
  598. color: #6f83ff;
  599. border-left: 2px solid #6f83ff;
  600. }
  601. ._sorting-address {
  602. position:fixed;
  603. top: -50%;
  604. width: 100%;
  605. height: 50%;
  606. z-index: 1;
  607. -webkit-transition-duration: 0.4s;
  608. background: #fff;
  609. }
  610. ._sorting-address>ul {
  611. margin: 0;
  612. padding: 0;
  613. overflow: auto;
  614. height: 100%;
  615. width: 100%;
  616. -webkit-transition-duration: 0.4s;
  617. box-sizing:border-box;
  618. padding: 0.08rem 0.1rem;
  619. }
  620. ._sorting-address>ul>li {
  621. display: inline-block;
  622. height: 0.2rem;
  623. line-height: 0.2rem;
  624. font-size: 0.14rem;
  625. color: #ccc;
  626. margin: 0.02rem 0.03rem 0.08rem;
  627. border: 1px solid #ccc;
  628. border-radius: 50px;
  629. width: 0.76rem;
  630. text-align: center;
  631. overflow: hidden;
  632. text-overflow: ellipsis;
  633. }
  634. ._sorting-address>ul>li.active {
  635. border: 1px solid #2680EB;
  636. color: #2680EB;
  637. }
  638. ._sorting-address>ul.address_first {
  639. background: #fff;
  640. position: absolute;
  641. z-index: 1;
  642. border: 1px solid #ddd;
  643. box-shadow: 5px 5px 10px #ddd;
  644. }
  645. .fixed-top{
  646. top: 0.77rem;
  647. }
  648. .fixed-top::after{
  649. content: "";
  650. width: 100%;
  651. height: 100%;
  652. display: block;
  653. background:rgba(0,0,0,0.2);
  654. }
  655. .rotate {
  656. transform-origin: center center;
  657. transform: rotate(180deg);
  658. -webkit-transform: rotate(180deg);
  659. -moz-transform: rotate(180deg);
  660. -ms-transform: rotate(180deg);
  661. -o-transform: rotate(180deg);
  662. transition: transform 0.2s;
  663. -moz-transition: -moz-transform 0.2s;
  664. -moz-transition: -moz-transform 0.2s;
  665. -o-transition: -o-transform 0.2s;
  666. -ms-transition: -ms-transform 0.2s;
  667. }
  668. .rotate1 {
  669. transform-origin: center center;
  670. transform: rotate(0deg);
  671. -webkit-transform: rotate(0deg);
  672. -moz-transform: rotate(0deg);
  673. -ms-transform: rotate(0deg);
  674. -o-transform: rotate(0deg);
  675. transition: transform 0.2s;
  676. -moz-transition: -moz-transform 0.2s;
  677. -moz-transition: -moz-transform 0.2s;
  678. -o-transition: -o-transform 0.2s;
  679. -ms-transition: -ms-transform 0.2s;
  680. }
  681. /* 头部搜索框、筛选栏 END */
  682. /* 列表页 START */
  683. .body {
  684. -webkit-box-flex: 1;
  685. -webkit-flex: 1;
  686. -ms-flex: 1;
  687. flex: 1;
  688. width: 100%;
  689. padding: 0.81rem 0 0 0;
  690. /* height: calc(100% - 0.4rem); */
  691. height: calc(100% - 0.8rem);
  692. overflow-y: auto;
  693. background: #EFEFEF;
  694. }
  695. .body > ul {
  696. padding: 0 0.12rem;
  697. margin-top: 0;
  698. }
  699. .body > ul li {
  700. display: inline-block;
  701. width: 1.5rem;
  702. padding: 0.08rem 0.05rem;
  703. background: #fff;
  704. margin: 0.06rem 0.04rem;
  705. border-radius: 10px;
  706. }
  707. .body > ul li .item_img img {
  708. width: 1.5rem;
  709. height: 1.5rem;
  710. }
  711. .body > ul li .text {
  712. height: 0.23rem;
  713. line-height: 0.23rem;
  714. margin: 0.02rem 0 0 0;
  715. }
  716. .body > ul li .item_int {
  717. color: #B5B5B5;
  718. font-size: 0.12rem;
  719. }
  720. .body > ul li .item_num {
  721. color: #448DE4;
  722. font-weight: 600;
  723. }
  724. .noList {
  725. text-align: center;
  726. padding: 1.5rem 0;
  727. }
  728. .noList img {
  729. width: 1.2rem;
  730. height: 1.2rem;
  731. }
  732. .order {
  733. height: 0.6rem;
  734. line-height: 0.6rem;
  735. text-align: center;
  736. }
  737. .order .line {
  738. display: inline-block;
  739. width: 1.2rem;
  740. border-top: 1px solid #ccc ;
  741. vertical-align: middle;
  742. }
  743. .order .txt {
  744. color: #ccc;
  745. font-size: 0.13rem;
  746. vertical-align: middle;
  747. }
  748. .body > ul.isFrame {
  749. padding: 0;
  750. }
  751. .body > ul.isFrame > li {
  752. border-radius: 0;
  753. margin: 0;
  754. width: 100%;
  755. padding: 0;
  756. display: block;
  757. margin-bottom: 0.08rem;
  758. }
  759. .new_title {
  760. width: 100%;
  761. }
  762. .new_label {
  763. width: 100%;
  764. }
  765. .new_title > span {
  766. padding: 0.12rem 0;
  767. display: inline-block;
  768. vertical-align: bottom;
  769. }
  770. .new_title > span:nth-child(1) {
  771. max-width: 40%;
  772. overflow: hidden;
  773. white-space: nowrap;
  774. text-overflow: ellipsis;
  775. color: #333;
  776. font-size: 0.15rem;
  777. }
  778. .new_title > span:nth-child(2) {
  779. max-width: 40%;
  780. overflow: hidden;
  781. white-space: nowrap;
  782. text-overflow: ellipsis;
  783. }
  784. .new_title > span:nth-child(3) {
  785. float: right;
  786. color: #2680EB;
  787. }
  788. .new_label > span {
  789. display: inline-block;
  790. padding: 0 0 0.05rem 0;
  791. width: 49%;
  792. overflow: hidden;
  793. white-space: nowrap;
  794. text-overflow: ellipsis;
  795. }
  796. .new_label > span > span {
  797. color: #555;
  798. font-size: 0.13rem;
  799. }
  800. .body > ul.isFrame > li.one_frame {
  801. padding: 0 0.08rem;
  802. box-sizing:border-box;
  803. }
  804. .frame_title > span {
  805. padding: 0.12rem 0 0 0;
  806. display: inline-block;
  807. vertical-align: bottom;
  808. }
  809. .frame_title > span:nth-child(1) {
  810. display: inline-block;
  811. width: 70%;
  812. overflow: hidden;
  813. white-space: nowrap;
  814. text-overflow: ellipsis;
  815. color: #333;
  816. font-size: 0.15rem;
  817. }
  818. .frame_title > span:nth-child(2) {
  819. float: right;
  820. color: #2680EB;
  821. padding: 0.1rem 0 0 0;
  822. }
  823. .frame_number {
  824. padding: 0.05rem 0;
  825. color: #999;
  826. }
  827. .frame_label {
  828. padding: 0 0 0.05rem 0;
  829. }
  830. .frame_label > span {
  831. display: inline-block;
  832. overflow: hidden;
  833. white-space: nowrap;
  834. text-overflow: ellipsis;
  835. color: #888;
  836. }
  837. .frame_label > span:nth-child(1) {
  838. width: 40%;
  839. float: left;
  840. }
  841. .frame_label > span:nth-child(2) {
  842. width: 30%;
  843. float: left;
  844. text-align: right;
  845. }
  846. .frame_label > span:nth-child(3) {
  847. width: 30%;
  848. text-align: right;
  849. }
  850. .frame_label > span > span {
  851. color: #555;
  852. font-size: 0.13rem;
  853. }
  854. .frame_detail {
  855. text-align: right;
  856. padding: 0 0.01rem 0.05rem;
  857. color: #2680EB;
  858. font-size: 0.13rem;
  859. }
  860. /* 列表页 END */
  861. </style>
  862. <style>
  863. .isFrame .mint-cell-swipe-button {
  864. line-height: 0.87rem;
  865. }
  866. .frame_title > span:nth-child(2) .mint-button--small {
  867. height: 0.25rem;
  868. }
  869. .one_device .mint-cell-title {
  870. display: none;
  871. }
  872. .one_device .mint-cell-value {
  873. width: 100%;
  874. }
  875. </style>