labPersonDetail.vue 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. <template>
  2. <div class="main" >
  3. <Header/>
  4. <div class="main_t">
  5. <div class="main_t_t">
  6. <i class="main_t_t_l">当前位置:首页 &gt;</i>
  7. <i>进入实验室人员</i>
  8. </div>
  9. </div>
  10. <div class="main_b">
  11. <!--查询条件-->
  12. <el-form :model="editForm" ref="editForm" class="form-box" :inline="true" style="margin:20px;">
  13. <el-form-item label="安全分类" prop="typeId" label-width="98px">
  14. <el-select v-model="editForm.typeId" popper-class="select-big-data" placeholder="请选择安全分类">
  15. <el-option
  16. v-for="item in typeList"
  17. :key="item.id"
  18. :label="item.typeName"
  19. :value="item.id">
  20. </el-option>
  21. </el-select>
  22. </el-form-item>
  23. <el-form-item label="安全分级" prop="level" label-width="98px">
  24. <el-select v-model="editForm.level" popper-class="select-big-data" placeholder="请选择安全分级">
  25. <el-option
  26. v-for="item in levelList"
  27. :key="item.id"
  28. :label="item.classifiedName"
  29. :value="item.id">
  30. </el-option>
  31. </el-select>
  32. </el-form-item>
  33. <el-form-item label="实验室" prop="subjectId" label-width="98px">
  34. <el-select v-model="editForm.subjectId" popper-class="select-big-data" placeholder="请选择实验室">
  35. <el-option
  36. v-for="item in labList"
  37. :key="item.id"
  38. :label="item.name"
  39. :value="item.id">
  40. </el-option>
  41. </el-select>
  42. </el-form-item>
  43. <el-form-item label-width="0">
  44. <el-button type="primary" @click.native.prevent="onSearch" native-type="submit">查询</el-button>
  45. <el-button @click="resetForm('searchForm')">重置</el-button>
  46. </el-form-item>
  47. </el-form>
  48. <!--列表-->
  49. <el-table :data="tableData" style="width: 100%" height="750" :row-class-name="tableRowClassName">
  50. <el-table-column align="center" header-align='center' type="index" :index="indexMethod" label="序号" width="60"></el-table-column>
  51. <el-table-column align="center" header-align='center' prop="name" label="实验室"></el-table-column>
  52. <el-table-column align="center" header-align='center' prop="typeName" label="安全分类"></el-table-column>
  53. <el-table-column align="center" header-align='center' prop="classifiedName" label="安全分级"></el-table-column>
  54. <el-table-column align="center" header-align='center' prop="online" label="实验室人数"></el-table-column>
  55. </el-table>
  56. <el-pagination
  57. style="margin-top: 14px"
  58. background
  59. @current-change="handleCurrentChange"
  60. :page-sizes="[10, 20, 30, 40]"
  61. :current-page.sync="editForm.pageNum"
  62. :page-size="editForm.pageSize"
  63. layout="total,prev, pager, next"
  64. :total="totalNum">
  65. </el-pagination>
  66. </div>
  67. </div>
  68. </template>
  69. <script>
  70. import {classifiedListAll, classtypeListAll, onlineByBigView,departmentsList,getSubjectDict} from "../api/http"
  71. import Header from '@/components/header.vue'
  72. export default {
  73. components: {
  74. Header
  75. },
  76. data() {
  77. return {
  78. editForm:{
  79. deptLevel:'',//这个是登陆后,刘波给你的院校的类型
  80. groupDeptId:'',//院系id
  81. typeId:'',//安全分类id
  82. level:'',//安全分级id
  83. subjectId:'',//实验室类型
  84. pageNum:1,
  85. pageSize:10
  86. },
  87. subjectOptions:[],//院系
  88. typeList:[],//安全分类
  89. levelList:[],//安全分级
  90. labList:[],//实验室
  91. dateRange:[],//时间
  92. totalNum:0,
  93. tableData:[],
  94. }
  95. },
  96. methods: {
  97. back(){
  98. this.$router.push('/')
  99. },
  100. tableRowClassName({ rowIndex}) {
  101. if (rowIndex%2 === 0) {
  102. return 'success-row';
  103. } else{
  104. return 'warning-row';
  105. }
  106. },
  107. indexMethod(index) {
  108. return (this.editForm.pageNum - 1) * this.editForm.pageSize + index + 1;
  109. },
  110. //请求列表
  111. getAjaxList:function (){
  112. let _this=this;
  113. //列表
  114. let obj={
  115. 'type':localStorage.getItem('deptLevel'),
  116. 'groupDeptId':this.editForm.groupDeptId,
  117. 'typeId':this.editForm.typeId,
  118. 'level':this.editForm.level,
  119. 'id':this.editForm.subjectId,
  120. 'pageNum':this.editForm.pageNum,
  121. 'pageSize':this.editForm.pageSize,
  122. }
  123. onlineByBigView(obj).then((res) =>{
  124. if(res.code==200){
  125. let data = res.rows;
  126. if(data && data.length>0){
  127. _this.tableData = data;
  128. _this.totalNum = parseInt(res.total);
  129. }else{
  130. _this.tableData = [];
  131. _this.totalNum = 0;
  132. }
  133. }
  134. })
  135. },
  136. getAjaxData: function () {
  137. let _this=this;
  138. //安全分级
  139. classifiedListAll({}).then((res) =>{
  140. if(res.code==200){
  141. let data=res.data;
  142. _this.levelList=data
  143. }
  144. })
  145. //安全分类
  146. classtypeListAll({}).then((res) =>{
  147. if(res.code==200){
  148. let data=res.data;
  149. _this.typeList=data
  150. }
  151. })
  152. //查询院系
  153. departmentsList().then((res) =>{
  154. if(res.code==200){
  155. let data=res.data;
  156. _this.subjectOptions=data
  157. }
  158. })
  159. //查询实验室
  160. getSubjectDict().then((res) =>{
  161. if(res.code==200){
  162. let data=res.data;
  163. _this.labList=data
  164. }
  165. })
  166. },
  167. /*查询*/
  168. onSearch() {
  169. this.editForm.pageNum =1;
  170. this.getAjaxList();
  171. this.getAjaxData();
  172. },
  173. /*重置*/
  174. resetForm() {
  175. this.editForm.groupDeptId = "";
  176. this.editForm.typeId = "";
  177. this.editForm.level = "";
  178. this.editForm.subjectId = "";
  179. this.onSearch();
  180. },
  181. handleCurrentChange(val) {
  182. this.editForm.pageNum = val;
  183. this.getAjaxList();
  184. },
  185. },
  186. mounted() {
  187. this.getAjaxData()
  188. this.getAjaxList()
  189. },
  190. }
  191. </script>
  192. <!-- Add "scoped" attribute to limit CSS to this component only -->
  193. <style lang="scss" scoped>
  194. @function rw($px){
  195. @return $px*100/1920 *1vw;
  196. }
  197. @function rh($px){
  198. @return $px*100/1080 *1vh;
  199. }
  200. * {
  201. padding: 0;
  202. margin: 0;
  203. box-sizing: border-box;
  204. }
  205. .main {
  206. width: rw(1920);
  207. height: rh(1080);
  208. /* background: url("../img/index_bg.png") no-repeat;
  209. background-size: 100% 100%;*/
  210. position: relative;
  211. left: 0;
  212. top: 0;
  213. z-index: 50;
  214. background: #062338;
  215. .header {
  216. width: 100%;
  217. position: absolute;
  218. left: rw(0);
  219. top: rh(0);
  220. z-index: 100;
  221. display: flex;
  222. justify-content: flex-start;
  223. .header_l {
  224. width: rw(182);
  225. height: rh(44);
  226. margin: rh(10) 0 0 rw(40);
  227. }
  228. .header_c {
  229. width: rw(1180);
  230. height: rh(152);
  231. margin-left: rw(136);
  232. background: url("~@/assets/image/index_icon2.png") no-repeat;
  233. background-size: 100% 100%;
  234. font-size: rh(30);
  235. font-family: Microsoft YaHei;
  236. font-weight: bold;
  237. color: #FFFFFF;
  238. line-height: rh(30);
  239. text-align: center;
  240. padding-top: rh(26);
  241. }
  242. .header_r {
  243. margin-left: rw(264);
  244. width: rw(82);
  245. height: rh(32);
  246. margin-top: rh(18);
  247. }
  248. }
  249. .main_t{
  250. width: rw(1852);
  251. position: absolute;
  252. left: rw(34);
  253. top: rh(86);
  254. z-index: 200;
  255. .main_t_t{
  256. margin: rh(20) 0 0 rw(18);
  257. >i{
  258. font-size: rh(16);
  259. font-family: Microsoft YaHei;
  260. font-weight: bold;
  261. color: #FFFFFF;
  262. line-height: rh(16);
  263. }
  264. >i:nth-of-type(1){
  265. }
  266. >i:nth-of-type(2){
  267. color: #1ED0F8;
  268. }
  269. }
  270. }
  271. .main_b{
  272. background: rgba(9, 55, 81, 0.6);
  273. padding: 0 rw(32);
  274. width: rw(1852);
  275. height: rh(920);
  276. position: absolute;
  277. left: rw(34);
  278. top: rh(138);
  279. z-index: 200;
  280. }
  281. }
  282. </style>
  283. <style lang="scss">
  284. li{list-style:none}
  285. i,em,b{font-style:normal;font-weight:100;}
  286. body{margin: 0}
  287. </style>