Home.vue 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. <template>
  2. <div>
  3. <div class="box">
  4. <div class="box_item" v-for="item in boxList" :key="item.id">
  5. <p>{{item.name}}</p>
  6. <p>{{item.value}}</p>
  7. </div>
  8. </div>
  9. <div class="form_item">
  10. <el-form :inline="true">
  11. <el-form-item label="时间:">
  12. <el-date-picker
  13. v-model="value2"
  14. type="datetimerange"
  15. :picker-options="pickerOptions"
  16. range-separator="至"
  17. start-placeholder="开始日期"
  18. end-placeholder="结束日期"
  19. align="right">
  20. </el-date-picker>
  21. </el-form-item>
  22. <el-form-item label="母猪存栏:">
  23. <el-select filterable style="width: 120px;"></el-select>
  24. </el-form-item>
  25. <el-form-item label="母猪新增:">
  26. <el-select filterable style="width: 120px;"></el-select>
  27. </el-form-item>
  28. <el-form-item label="耳标离线:">
  29. <el-select filterable style="width: 120px;"></el-select>
  30. </el-form-item>
  31. <el-form-item label="公猪存栏:">
  32. <el-select filterable style="width: 120px;"></el-select>
  33. </el-form-item>
  34. <el-form-item>
  35. <el-button>查询</el-button>
  36. </el-form-item>
  37. <el-form-item>
  38. <area-list></area-list>
  39. </el-form-item>
  40. </el-form>
  41. </div>
  42. <div class="box_table">
  43. <el-table
  44. :data="tableData"
  45. border
  46. stripe
  47. :header-cell-style="{'text-align':'center', 'background-color': '#F9FAFC', 'padding': '5px 0', 'color': '#666666'}"
  48. :cell-style="{'text-align':'center', 'padding': '5px 0'}"
  49. height="700"
  50. style="width: 100%;">
  51. <el-table-column
  52. prop="date"
  53. label="时间">
  54. </el-table-column>
  55. <el-table-column
  56. prop="date"
  57. label="母猪存栏">
  58. </el-table-column>
  59. <el-table-column
  60. prop="date"
  61. label="耳标离线">
  62. </el-table-column>
  63. <el-table-column
  64. prop="date"
  65. label="日龄占比 (250-1700)"
  66. :render-header="renderHeader">
  67. </el-table-column>
  68. <el-table-column
  69. prop="date"
  70. label="日龄占比 (1000-1700)"
  71. :render-header="renderHeader">
  72. </el-table-column>
  73. <el-table-column
  74. prop="date"
  75. label="日龄占比 (1700-2400)"
  76. :render-header="renderHeader">
  77. </el-table-column>
  78. <el-table-column
  79. prop="date"
  80. label="日龄占比 (>2400)"
  81. :render-header="renderHeader">
  82. </el-table-column>
  83. <el-table-column
  84. prop="date"
  85. label="配怀存栏">
  86. </el-table-column>
  87. <el-table-column
  88. prop="date"
  89. label="分娩存栏">
  90. </el-table-column>
  91. <el-table-column
  92. prop="date"
  93. label="后备存栏">
  94. </el-table-column>
  95. <el-table-column
  96. prop="date"
  97. label="公猪存栏">
  98. </el-table-column>
  99. </el-table>
  100. <table-footer
  101. :totals="totalPages"
  102. :size="pageSize"
  103. @sizeChange="sizeChange"
  104. @pageChange="pageChange"></table-footer>
  105. </div>
  106. </div>
  107. </template>
  108. <script>
  109. import TableFooter from "../../components/TableFooter";
  110. import areaList from "../../components/areaList";
  111. export default {
  112. name: "Home",
  113. data() {
  114. return {
  115. boxList: [
  116. {
  117. id: 1,
  118. name: '母猪总存栏',
  119. value: 2500,
  120. },
  121. {
  122. id: 2,
  123. name: '配怀存栏',
  124. value: 1689
  125. },
  126. {
  127. id: 3,
  128. name: '分娩存栏',
  129. value: 1689
  130. },
  131. {
  132. id: 4,
  133. name: '后备存栏',
  134. value: 1689
  135. },
  136. {
  137. id: 5,
  138. name: '公猪存栏',
  139. value: 1689
  140. },
  141. {
  142. id: 6,
  143. name: '预计年出栏量',
  144. value: 50000
  145. },
  146. ],
  147. pickerOptions: {
  148. shortcuts: [{
  149. text: '最近一周',
  150. onClick(picker) {
  151. const end = new Date();
  152. const start = new Date();
  153. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  154. picker.$emit('pick', [start, end]);
  155. }
  156. }, {
  157. text: '最近一个月',
  158. onClick(picker) {
  159. const end = new Date();
  160. const start = new Date();
  161. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  162. picker.$emit('pick', [start, end]);
  163. }
  164. }, {
  165. text: '最近三个月',
  166. onClick(picker) {
  167. const end = new Date();
  168. const start = new Date();
  169. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  170. picker.$emit('pick', [start, end]);
  171. }
  172. }]
  173. },
  174. value2: '',
  175. tableData: [],
  176. totalPages: 0,
  177. pageNum: 1,
  178. pageSize: 20,
  179. }
  180. },
  181. components: {
  182. TableFooter,
  183. areaList
  184. },
  185. methods: {
  186. // 修改size
  187. sizeChange(val) {
  188. this.pageSize = val;
  189. },
  190. // 修改页数
  191. pageChange(val) {
  192. this.pageNum = val;
  193. },
  194. renderHeader(createElement, { column }) {
  195. const label = column.label
  196. const labelArr = label.split(' ')
  197. return createElement(
  198. 'span', //创建最外层的标签可随意
  199. [
  200. createElement('span', { // 创建第一个元素的标签可随意
  201. attrs: { type: 'text' }
  202. },[labelArr[0]] ),
  203. createElement('div', { // 创建第二个元素的标签可随意
  204. attrs: { type: 'text', style: 'font-size:14px' } // 给分割的某个元素单独加样式
  205. }, [labelArr[1] || ''] )
  206. ]
  207. )
  208. }
  209. }
  210. }
  211. </script>
  212. <style scoped>
  213. /deep/ .el-form--inline .el-form-item {
  214. margin-right: 20px;
  215. }
  216. .box{
  217. width: 100%;
  218. height: 140px;
  219. background-color: #F9F9F9;
  220. display: flex;
  221. justify-content: space-around;
  222. align-items: center;
  223. margin-bottom: 10px;
  224. }
  225. .box_item {
  226. width: 198px;
  227. height: 78px;
  228. border: 1px solid #ddd;
  229. text-align: center;
  230. }
  231. .box_item p {
  232. height: 39px;
  233. line-height: 39px;
  234. margin: 0;
  235. }
  236. .form_item {
  237. width: 100%;
  238. height: 60px;
  239. background-color: #fff;
  240. border: 1px solid #ddd;
  241. box-sizing: border-box;
  242. padding: 10px;
  243. }
  244. .box_table {
  245. width: 100%;
  246. box-sizing: border-box;
  247. margin-top: 10px;
  248. /*padding: 10px;*/
  249. }
  250. </style>