index.html 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. {extend name="public/base"/}
  2. {block name="css"}
  3. <style>
  4. .substring {overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
  5. .new-se-group {width: 100%;height: 155px;background-image: url("/static/home/images/nebanner.jpg");background-repeat: no-repeat;background-position: center center;}
  6. .new-se-group .new-se-main {width: 1200px;height: 99px;padding-top: 56px;margin: 0 auto;}
  7. .new-se-group .new-se-main .ip-group {margin: 0 auto;background: #FFF;height: 45px;width: 770px;-webkit-border-radius: 3px;-moz-border-radius: 3px;border-radius: 3px;}
  8. .new-se-group .new-se-main .ip-box {float: left;padding-top: 7px;width: 626px;padding-left: 17px;}
  9. .new-se-main .ip-box input {width: 616px;height: 28px;line-height: 36px;border: 0;}
  10. .new-se-group .new-se-main .ip-btn {float: left;width: 127px;height: 45px;background-color: #dd4250;font-size: 18px;text-align: center;line-height: 45px;border: 0;color: #FFFFFF;cursor: pointer;border-radius: 0 3px 3px 0;}
  11. .panel {background-color: #FFF;margin: 0 auto;width: 1200px;margin-top: 40px;}
  12. .newslist{width:100%;background-color: #fff;border-bottom: 1px #ebeef5 solid;margin-top: 10px;padding: 5px 30px 50px 30px;box-sizing: border-box;}
  13. .newslist .list {border-bottom: 1px #ebeef5 solid;padding-top: 20px;padding-bottom: 20px;cursor: pointer;}
  14. .newslist .list:hover .t span {text-decoration: underline;}
  15. .newslist .list .br {padding-left:10px;width: 100%;}
  16. .newslist .list .br .t {color:#000;font-size: 18px;height: 30px;float: left;width: 500px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;font-weight: bold;}
  17. .newslist .list .br .time {width: 300px;float: right;text-align: right;height: 25px;color: #dd4250;padding-top: 2px;}
  18. .newslist .list .br .time .time1 {padding-left: 10px;position: relative;}
  19. .newslist .list .br .summary {width: 100%;font-size: 12px;color: #a0a0a0;-ms-word-break: break-all;word-break: break-all;line-height: 24px;}
  20. .ellipsis-multiline {display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;text-overflow: ellipsis;}
  21. .el-pagination {justify-content: center;padding:10px 0;}
  22. .el-pagination.is-background .el-pager li.is-active {background-color: #dd4250;color: var(--el-color-white);}
  23. </style>
  24. {/block}
  25. {block name="body"}
  26. <div class="new-se-group">
  27. <div class="new-se-main">
  28. <div class="ip-group">
  29. <div class="ip-box"><input type="text" v-model="keyword" placeholder="请输入关键字"></div>
  30. <div class="ip-btn" @click="onSubmit">搜通知</div>
  31. <div class="clear"></div>
  32. </div>
  33. </div>
  34. </div>
  35. <div class="panel" v-loading="loading">
  36. <div class="l" style="width: 100%;">
  37. <div class="newslist">
  38. <div class="list" v-for="item in list" @click="toDetail(item.id)">
  39. <div class="br link_gray6">
  40. <div class="t substring">
  41. <span>{{item.title}}</span>
  42. </div>
  43. <div class="time substring">
  44. <span class="time1">{{item.update_show}}</span>
  45. </div>
  46. <div class="clear"></div>
  47. <div class="summary ellipsis-multiline">{{item.summary}}</div>
  48. </div>
  49. </div>
  50. <el-empty description="暂无更多数据" v-show="list.length == 0"></el-empty>
  51. </div>
  52. <el-pagination background :hide-on-single-page="true" :page-size="limit" layout="prev, pager, next" :total="total" @current-change="onPage"></el-pagination>
  53. </div>
  54. </div>
  55. {/block}
  56. {block name="script"}
  57. <script>
  58. function v_setup() {
  59. let base = {};
  60. base.keyword = Vue.ref("{$keyword}");
  61. base.onSubmit = () => {
  62. location.href = "{:url('notice/index')}?keyword=" + base.keyword.value;
  63. };
  64. base.loading = Vue.ref(true);
  65. base.page = Vue.ref(1);
  66. base.total = Vue.ref({$total});
  67. base.limit = Vue.ref({$limit});
  68. base.list = Vue.reactive([]);
  69. base.onPage = num => {
  70. base.page.value = num;
  71. base.getList();
  72. };
  73. base.getList = () => {
  74. base.loading.value = true;
  75. postJson("{:url('notice/list')}", {page:base.page.value,limit:base.limit.value,keyword:base.keyword.value}).then(function ({data}) {
  76. base.loading.value = false;
  77. if (data.length === 0) {
  78. base.finished.value = true;
  79. } else {
  80. base.list = data;
  81. }
  82. });
  83. };
  84. base.getList();
  85. base.toDetail = id => {
  86. location.href = "{:url('notice/detail')}?id=" + id;
  87. };
  88. return base;
  89. }
  90. </script>
  91. {/block}