authorize.vue 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <!--门禁授权-->
  2. <template>
  3. <div class="authorize">
  4. <div class="authorize-page" v-if="pageType == 1">
  5. <div class="title-box">
  6. <div>
  7. <p class="top-p-color">门禁授权</p>
  8. <p class="bottom-p-color"></p>
  9. </div>
  10. <div @click="titleClick(2)">
  11. <p>授权日志</p>
  12. <p></p>
  13. </div>
  14. </div>
  15. <div class="authorize-min">
  16. <el-form :model="queryParamsData" ref="queryForm" :inline="true">
  17. <el-form-item label="关键字" prop="searchValue" label-width="68px">
  18. <el-input
  19. maxlength="20"
  20. v-model="queryParamsData.searchValue"
  21. placeholder="姓名/实验室"
  22. clearable
  23. size="small"/>
  24. </el-form-item>
  25. <el-form-item label="状态" prop="status" label-width="50px">
  26. <el-select v-model="queryParamsData.operate" clearable placeholder="请选择状态">
  27. <el-option
  28. v-for="item in optionsListTwo"
  29. :key="item.code"
  30. :label="item.name"
  31. :value="item.code">
  32. </el-option>
  33. </el-select>
  34. </el-form-item>
  35. <el-form-item label="分类" prop="zgType" label-width="80px">
  36. <el-select v-model="queryParamsData.leadAuditStaus" placeholder="请选择" clearable size="small">
  37. <el-option label="全部" value="" />
  38. <el-option label="授权验证成功" value="0" />
  39. <el-option label="授权验证失败" value="1" />
  40. </el-select>
  41. </el-form-item>
  42. <el-form-item>
  43. <p class="inquire-button-one" @click="handleQuery" style="margin-right:10px;">查询</p>
  44. <p class="reset-button-one" @click="resetQuery">重置</p>
  45. </el-form-item>
  46. </el-form>
  47. <el-table v-loading="loading" border :data="tableList">
  48. <el-table-column label="所属学院" align="left" prop="deptName" />
  49. <el-table-column label="实验室" align="left" prop="subName" />
  50. <el-table-column label="位置" align="left" prop="posi" />
  51. <el-table-column label="实验室负责人" align="left" prop="adminName" />
  52. <el-table-column label="门禁" align="left" prop="hardName" />
  53. <el-table-column label="授权人数" align="left" prop="available" />
  54. <el-table-column label="验证方式失败数" align="left" prop="failNum" />
  55. <el-table-column label="状态" align="left" prop="operate" >
  56. <template slot-scope="scope" v-if="scope.row.operate">
  57. <span>{{scope.row.operate.name}}</span>
  58. </template>
  59. </el-table-column>
  60. <el-table-column label="操作" align="left" class-name="small-padding fixed-width" width="120">
  61. <template slot-scope="scope">
  62. <div class="button-box">
  63. <p class="table-min-button"
  64. v-hasPermi="['haikang:user:list']"
  65. @click="handleClick('',scope.row,'detail')"
  66. >查看授权</p>
  67. </div>
  68. </template>
  69. </el-table-column>
  70. </el-table>
  71. <pagination :page-sizes="[20, 30, 40, 50]"
  72. v-show="total>0"
  73. :total="total"
  74. :page.sync="queryParams.pageNum"
  75. :limit.sync="queryParams.pageSize"
  76. @pagination="getList"/>
  77. </div>
  78. </div>
  79. <lookImpower v-if="pageType == 2" :pageData="pageData"></lookImpower>
  80. </div>
  81. </template>
  82. <script>
  83. import { getHaikangList } from '@/api/laboratory/subject'
  84. import lookImpower from "./lookImpower.vue";
  85. export default {
  86. name: "authorize",
  87. components: {
  88. lookImpower
  89. },
  90. data(){
  91. return{
  92. pageType:1,
  93. loading:false,
  94. // 搜索数据
  95. queryParamsData:{
  96. pageNum:1,
  97. pageSize:20,
  98. searchValue:'',
  99. operate:'',
  100. },
  101. // 搜索实际发送数据
  102. queryParams:{
  103. pageNum:1,
  104. pageSize:20,
  105. },
  106. //数据数量
  107. total:10,
  108. tableList:[{}],
  109. //审批状态
  110. optionsListTwo:[{code:null,name:'全部'},{code:0,name:'离线'},{code:2,name:'在线'}],
  111. //详情
  112. pageData:{},
  113. }
  114. },
  115. created() {
  116. },
  117. mounted(){
  118. this.getList();
  119. },
  120. methods:{
  121. handleClick(index,row,doType){
  122. if(doType=='detail'){
  123. this.pageType=2
  124. this.pageData=row
  125. console.log(this.pageData)
  126. }else if(doType=='back'){
  127. this.pageType=1
  128. }
  129. },
  130. //操作接口
  131. goPageButton(){
  132. this.pageType = 1;
  133. },
  134. titleClick(type){
  135. this.$parent.titleClick(type);
  136. },
  137. /** 搜索按钮操作 */
  138. handleQuery() {
  139. this.queryParamsData.pageNum = 1;
  140. this.queryParamsData.pageSize = 20;
  141. this.queryParams = JSON.parse(JSON.stringify(this.queryParamsData));
  142. this.getList();
  143. },
  144. /** 重置按钮操作 */
  145. resetQuery() {
  146. this.$set(this,'queryParamsData',{});
  147. this.$set(this,'queryParams',{});
  148. this.handleQuery();
  149. },
  150. //获取数据列表
  151. getList(){
  152. this.queryParamsData = JSON.parse(JSON.stringify(this.queryParams));
  153. getHaikangList(this.queryParamsData).then(response => {
  154. this.tableList = response.rows;
  155. this.total = response.total
  156. });
  157. },
  158. }
  159. }
  160. </script>
  161. <style scoped lang="scss">
  162. .authorize{
  163. flex:1;
  164. display: flex;
  165. flex-direction: column;
  166. .authorize-page{
  167. flex:1;
  168. display: flex;
  169. flex-direction: column;
  170. overflow: hidden;
  171. .title-box{
  172. display: flex;
  173. border-bottom:1px solid #E0E0E0;
  174. margin-bottom:20px;
  175. div{
  176. height:80px;
  177. margin-right:20px;
  178. cursor: pointer;
  179. p:nth-child(1){
  180. font-size:18px;
  181. text-align: center;
  182. padding:0 20px;
  183. margin-top:26px;
  184. }
  185. p:nth-child(2){
  186. width:40px;
  187. height:4px;
  188. border-radius:40px;
  189. margin:12px auto;
  190. }
  191. .top-p-color{
  192. color: #0045AF;
  193. }
  194. .bottom-p-color{
  195. background: #0045AF;
  196. }
  197. }
  198. .buttonTitleColorA{
  199. color:#0045AF;
  200. }
  201. .buttonTitleColorB{
  202. color:#999999;
  203. }
  204. }
  205. .authorize-min{
  206. flex:1;
  207. display: flex;
  208. flex-direction: column;
  209. overflow: hidden;
  210. margin:0 20px!important;
  211. .button-box{
  212. display: flex;
  213. }
  214. }
  215. }
  216. }
  217. </style>