assets.vue 30 KB

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