lookImpower.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675
  1. <!--供应商管理-->
  2. <template>
  3. <div class="supplier">
  4. <div class="supplier-title">
  5. <P>实验室名称-已授权列表 </P>
  6. <p class="button-p reset-button-one" @click="backPage">返回</p>
  7. </div>
  8. <div class="supplier-page">
  9. <advanced-search :searchData="searchData"></advanced-search>
  10. <el-table border v-loading="loading" :data="tableData">
  11. <el-table-column label="所属单位" align="left" prop="deptName"/>
  12. <el-table-column label="姓名" align="left" prop="nickName"></el-table-column>
  13. <el-table-column align="left" prop="verifyMode">
  14. <template slot-scope="scope" slot="header">
  15. <span>验证方式
  16. <el-tooltip class="item" effect="dark" placement="top-start">
  17. <i class= 'el-icon-question' style="color:#E6A23C; margin-left:5px;font-size: 16px;'"></i>
  18. <div style="width: 200px;" slot="content">红色:表示此验证方式失败<br/>绿色表示此验证方式成功</div>
  19. </el-tooltip>
  20. </span>
  21. </template>
  22. </el-table-column>
  23. <el-table-column label="类别" align="left" prop="userType"></el-table-column>
  24. <el-table-column label="授权时间" align="left" prop="verifyTime"></el-table-column>
  25. <el-table-column label="授权人" align="left" prop="verifyUser"></el-table-column>
  26. <el-table-column label="失效时间" align="left" prop="invalidTime" width="250">
  27. <template slot-scope="scope">
  28. <el-date-picker
  29. :disabled="(scope.row.userType=='学生' && admittance) || (scope.row.userType=='教师' && whiteList)"
  30. :picker-options="pickerOptions0"
  31. v-model="scope.row.invalidTime"
  32. value-format="yyyy-MM-dd"
  33. type="date"
  34. placeholder="请选择失效时间">
  35. </el-date-picker>
  36. </template>
  37. </el-table-column>
  38. <el-table-column label="操作" align="left" class-name="small-padding fixed-width" width="220">
  39. <template slot-scope="scope">
  40. <div class="button-box">
  41. <p class="table-min-button"
  42. v-if="(scope.row.userType=='学生' && !admittance) || (scope.row.userType=='教师' && !whiteList)"
  43. @click="handleClick('',scope.row,'delete')"
  44. >删除</p>
  45. <p class="table-min-button" style="color: #333;cursor: text" @click="handleClick('',scope.row,'again')">手动<i style="color: #0045AF;cursor: pointer;font-style: normal;text-decoration:underline">重试</i></p>
  46. <p class="table-min-button" style="color: #333;cursor: text" @click="handleClick('',scope.row,'again')" v-if="scope.row.userType=='学生' && admittance">安全准入<i style="color: #0045AF;cursor: pointer;font-style: normal;text-decoration:underline">重试</i></p>
  47. <p class="table-min-button" style="color: #333;cursor: text" @click="handleClick('',scope.row,'again')" v-if="scope.row.userType=='教师' && whiteList">白名单<i style="color: #0045AF;cursor: pointer;font-style: normal;text-decoration:underline">重试</i></p>
  48. </div>
  49. </template>
  50. </el-table-column>
  51. </el-table>
  52. <div style="display: flex;height:32px;margin-top:15px;">
  53. <div style="flex:5;">
  54. <pagination :page-sizes="[20, 30, 40, 50]"
  55. v-show="total>0"
  56. :total="total"
  57. style="margin:0;"
  58. :page.sync="queryParams.pageNum"
  59. :limit.sync="queryParams.pageSize"
  60. @pagination="getList"
  61. />
  62. </div>
  63. </div>
  64. <div style="text-align: center;">
  65. <el-button class="color_ff back_one" style="width: 300px;" @click="loseTimeSubmitForm()">确定</el-button>
  66. </div>
  67. </div>
  68. <!--关联实验室弹框-->
  69. <el-dialog :title=dialogTitle @close="handleClose" :visible.sync="dialogVisible" width="80%">
  70. <el-form :model="dialogForm" ref="dialogForm" :inline="true" label-width="140px">
  71. <el-form-item label="关键字" prop="name" >
  72. <el-input
  73. v-model="dialogForm.searchValue"
  74. placeholder="请输入名称/联系方式"
  75. clearable
  76. size="small"
  77. />
  78. </el-form-item>
  79. <el-form-item label="所属单位" prop="deptId" label-width="80px">
  80. <el-select v-model="dialogForm.deptId" clearable placeholder="请选择学院">
  81. <el-option
  82. v-for="item in collegeOptions"
  83. :key="item.deptId"
  84. :label="item.deptName"
  85. :value="item.deptId">
  86. </el-option>
  87. </el-select>
  88. </el-form-item>
  89. <el-form-item>
  90. <p class="inquire-button-one" style="margin-left:20px;" @click="onSearch">查询</p>
  91. <p class="reset-button-one" style="margin-left:20px;" @click="resetForm">重置</p>
  92. </el-form-item>
  93. </el-form>
  94. <div class="btn_list">
  95. <i class="el-icon-warning"></i>
  96. <i>已选择 {{labWhiteJoinSubList.length}} 项目</i>
  97. <i @click="toggleSelection(dialogTable)">全选本页</i>
  98. <i></i>
  99. <i @click="toggleSelection()">清除选项</i>
  100. </div>
  101. <el-table ref="multipleTable" border tooltip-effect="dark" :row-key="getRowKeys" :data="dialogTable"
  102. highlight-current-row @selection-change="handleSelectionChange" style="cursor: pointer;height:500px;">
  103. <el-table-column type="selection" width="55" :reserve-selection="true" align="center"></el-table-column>
  104. <el-table-column label="所属单位" align="left" prop="deptName"/>
  105. <el-table-column label="姓名" align="left" prop="nickName" />
  106. <el-table-column label="导师" align="left" prop="tutorUserName" v-if="userType==1"/>
  107. <el-table-column label="专业" align="left" prop="major" v-if="userType==1"/>
  108. <el-table-column label="身份" align="left" prop="positionName" v-if="userType==2"/>
  109. <el-table-column label="验证方式" align="left" prop="verifyMode">
  110. <template slot-scope="scope">
  111. <el-select v-model="scope.row.verifyMode" @change="verifyModeFun()" clearable >
  112. <el-option
  113. v-for="item in verifyWayList"
  114. :key="item.key"
  115. :label="item.value"
  116. :value="item.key">
  117. </el-option>
  118. </el-select>
  119. </template>
  120. </el-table-column>
  121. <el-table-column label="失效时间" align="left" prop="invalidTime">
  122. <template slot-scope="scope">
  123. <el-date-picker
  124. @blur="invalidTimeFun(scope.row,$event)"
  125. :picker-options="pickerOptions0"
  126. v-model="scope.row.invalidTime"
  127. value-format="yyyy-MM-dd"
  128. type="date"
  129. placeholder="请选择失效时间">
  130. </el-date-picker>
  131. </template>
  132. </el-table-column>
  133. </el-table>
  134. <pagination :page-sizes="[20, 30, 40, 50]"
  135. v-show="total>0"
  136. :total="total"
  137. :page.sync="dialogForm.pageNum"
  138. :limit.sync="dialogForm.pageSize"
  139. @pagination="getUserList"
  140. />
  141. <div class="configuration">
  142. <el-form :model="configuration" ref="queryForm" :inline="true" v-if="unifyDeploy">
  143. <el-form-item label="验证方式:" prop="name">
  144. <el-select v-model="configuration.verifyMode" clearable >
  145. <el-option
  146. v-for="item in verifyWayList"
  147. :key="item.key"
  148. :label="item.value"
  149. :value="item.key">
  150. </el-option>
  151. </el-select>
  152. </el-form-item>
  153. <el-form-item label="失效时间:" prop="name">
  154. <el-date-picker
  155. :picker-options="pickerOptions0"
  156. v-model="configuration.invalidTime"
  157. value-format="yyyy-MM-dd"
  158. type="date"
  159. placeholder="请选择失效时间">
  160. </el-date-picker>
  161. </el-form-item>
  162. </el-form>
  163. <p :class="unifyDeploy?'add-button-one-120':'inquire-button-one'" @click="unifyDeployFun()">{{unifyDeploy?'取消统一配置':'统一配置'}}</p>
  164. <el-button class="color_ff back_one" @click="submitForm()">确定</el-button>
  165. </div>
  166. </el-dialog>
  167. </div>
  168. </template>
  169. <script>
  170. import { listStudentUser, listTeacherUser } from '@/api/system/user_student'
  171. import { listDepartments } from '@/api/system/dept'
  172. import advancedSearch from "@/components/ZDcomponents/advancedSearch.vue"
  173. import {
  174. AddImpowerHaikang,
  175. delUserHaikang,
  176. editImpowerHaikang,
  177. getHaikangQueryTypes,
  178. getHaikangUserList
  179. } from '@/api/laboratory/subject'
  180. export default {
  181. name: "Approval",
  182. components: {
  183. advancedSearch
  184. },
  185. props:{
  186. pageData:{},
  187. },
  188. data() {
  189. return {
  190. loading:false,
  191. // 查询参数
  192. queryParams: {
  193. pageNum: 1,
  194. pageSize:20,
  195. searchValue:'',
  196. userType:'',
  197. hardId:'',
  198. startTime:'',
  199. endTime:'',
  200. },
  201. total:0,
  202. tableData:[],
  203. dateRange:[],
  204. dialogForm:{
  205. pageNum: 1,
  206. pageSize: 20,
  207. searchValue:'',
  208. deptId:'',
  209. },
  210. dialogTitle:'选择学生',
  211. dialogVisible:false,
  212. collegeOptions:[],//学院
  213. labWhiteJoinSubList:[],
  214. dialogTable:[],
  215. radioList:[],
  216. userType:1,//判断是学生 1 教职工2
  217. verifyWayList:[],
  218. configuration:{
  219. invalidTime:'',
  220. verifyMode:'',
  221. },
  222. unifyDeploy:false,
  223. //提交
  224. form:{},
  225. // 设置只能选择当前日期及之后的日期
  226. pickerOptions0: {
  227. disabledDate(time) {
  228. return time.getTime() < Date.now();//如果没有后面的-8.64e7就是不可以选择今天的
  229. }
  230. },
  231. admittance:false,//智能门禁有没有勾选安全准入
  232. whiteList:false,//智能门禁有没有勾选白名单
  233. searchData:{
  234. buttonList:[//按钮数组没有则为空
  235. {
  236. name:"新增教职工授权",//按钮名称 只有再状态 1 时需要
  237. type:"1", //按钮类型 1.按钮 2.导入 3.导出
  238. parameter:"addStudent",//按钮字符用于返回方法时的判断
  239. hasPermi:['chemical:hxpStock:detailExport'] // 权限字段 如果没有则传空字符 hasPermi:"",
  240. },
  241. {
  242. name:"新增学生授权",//按钮名称 只有再状态 1 时需要
  243. type:"1", //按钮类型 1.按钮 2.导入 3.导出
  244. parameter:"addStudent",//按钮字符用于返回方法时的判断
  245. hasPermi:['chemical:hxpStock:detailExport'] // 权限字段 如果没有则传空字符 hasPermi:"",
  246. },
  247. ],
  248. searchList:[//搜索数组
  249. {
  250. name:"关键字",//描述名称
  251. key:"searchValue",//键名 用于返回数据
  252. value:"",//内容 用于组件内绑定数据
  253. placeholder:"请输入姓名/工号/学号",//输入提示
  254. level:"1",//1.普通搜索 2.高级搜索 普通搜索默认会在高级搜索时显示
  255. type:"1",//类型 1.input 2.select 3.TimePicker
  256. universal:'20',//通用参数 input时为最大长度 //TimePicker时可不传
  257. width:'260',//el-form-item 长度 可传可不传 不传时input/select默认180长度 TimePicker默认240长度
  258. },
  259. {
  260. name:"类别",//描述名称
  261. key:"userType",//键名 用于返回数据
  262. value:"",//内容 用于组件内绑定数据
  263. placeholder:"请选择类别",//输入提示
  264. level:"1",//1.普通搜索 2.高级搜索 普通搜索默认会在高级搜索时显示
  265. type:"2",//类型 1.input 2.select 3.TimePicker
  266. universal:[ //通用参数 select时为列表数据 //TimePicker时可不传
  267. {label:"学生",value:"22"},{label:"教师",value:"11"},
  268. ],
  269. width:'175',//el-form-item 长度 可传可不传 不传时input/select默认180长度 TimePicker默认240长度
  270. },
  271. {
  272. name:"授权时间段",//描述名称
  273. key:"dateRange",//键名 用于返回数据
  274. value:"",//内容 用于组件内绑定数据
  275. placeholder:"请选择",//输入提示
  276. level:"2",//1.普通搜索 2.高级搜索 普通搜索默认会在高级搜索时显示
  277. type:"3",//类型 1.input 2.select 3.TimePicker
  278. width:'260',//el-form-item 长度 可传可不传 不传时input/select默认180长度 TimePicker默认240长度
  279. },
  280. {
  281. name:"分类",//描述名称
  282. key:"userType",//键名 用于返回数据
  283. value:"",//内容 用于组件内绑定数据
  284. placeholder:"请选择分类",//输入提示
  285. level:"2",//1.普通搜索 2.高级搜索 普通搜索默认会在高级搜索时显示
  286. type:"2",//类型 1.input 2.select 3.TimePicker
  287. universal:[ //通用参数 select时为列表数据 //TimePicker时可不传
  288. {label:"全部",value:""},{label:"授权验证成功",value:"0"},{label:"授权验证失败",value:"1"},
  289. ],
  290. width:'175',//el-form-item 长度 可传可不传 不传时input/select默认180长度 TimePicker默认240长度
  291. },
  292. ],
  293. },
  294. };
  295. },
  296. methods: {
  297. //弹出层表格里验证方式改变重新赋值
  298. verifyModeFun(){
  299. //通过改变数组数据刷新视图
  300. this.dialogTable.pop()
  301. },
  302. //弹出层表格里失效时间改变重新赋值
  303. invalidTimeFun(item,e){
  304. this.dialogTable.splice(1,0);
  305. },
  306. //获取当前日期
  307. getdate() {
  308. const dates = new Date()
  309. dates.setMonth(dates.getMonth() + 1)
  310. var pastMonth = dates.getMonth() + 1
  311. var pastDay = dates.getDate()
  312. if (pastMonth >= 1 && pastMonth <= 9) {
  313. pastMonth = '0' + pastMonth
  314. }
  315. if (pastDay >= 0 && pastDay <= 9) {
  316. pastDay = '0' + pastDay
  317. }
  318. const endDate = dates.getFullYear() + '-' + pastMonth + '-' + pastDay
  319. return endDate
  320. },
  321. //查询
  322. onSearch() {
  323. this.dialogForm.pageNo = 1;
  324. this.getUserList();
  325. },
  326. //重置
  327. resetForm() {
  328. this.dialogForm.searchValue = '';
  329. this.dialogForm.deptId = '';
  330. this.onSearch();
  331. },
  332. //统一配置
  333. unifyDeployFun(){
  334. this.unifyDeploy=!this.unifyDeploy
  335. if(this.unifyDeploy==false){
  336. this.configuration.invalidTime='';
  337. this.configuration.verifyMode='';
  338. }
  339. },
  340. getRowKeys(row) {
  341. return row.userId; //指定row-key的一个标识
  342. },
  343. //监听关联记录弹窗关闭
  344. handleClose(){
  345. console.log('弹窗关闭');
  346. this.$refs.multipleTable.clearSelection();
  347. this.dialogForm.searchValue='';
  348. this.dialogForm.pageNum=1;
  349. this.dialogForm.deptId='';
  350. this.configuration.invalidTime='';
  351. this.configuration.verifyMode='';
  352. },
  353. //取消选中
  354. toggleSelection(rows) {
  355. let _this=this;
  356. if (rows) {
  357. rows.forEach(row => {
  358. this.$refs.multipleTable.toggleRowSelection(row,true);
  359. });
  360. } else {
  361. this.$refs.multipleTable.clearSelection();
  362. }
  363. },
  364. //选中实验室
  365. handleSelectionChange(val){
  366. let _this=this;
  367. this.labWhiteJoinSubList=[];
  368. this.labWhiteJoinSubList=val;
  369. },
  370. handleClick(index,row,doType){
  371. let _this=this;
  372. if(doType=='delete'){//删除
  373. let _this=this
  374. console.log(row)
  375. this.$confirm('是否确认删除['+row.nickName+']门禁授权?', "警告", {
  376. confirmButtonText: "确定",
  377. cancelButtonText: "取消",
  378. type: "warning"
  379. }).then(function() {
  380. delUserHaikang(row.id).then( response => {
  381. _this.msgSuccess("删除成功");
  382. _this.getList();
  383. });
  384. }).then(() => {
  385. _this.getList();
  386. }).catch(() => {});
  387. }
  388. },
  389. //获取学院列表
  390. listDepartments(){
  391. listDepartments().then(response => {
  392. this.collegeOptions = response.data;
  393. });
  394. },
  395. /** 弹框查询列表 */
  396. getUserList() {//type 1学生 2教职工
  397. let _this=this;
  398. this.loading = true;
  399. if(_this.userType==1){
  400. listStudentUser(this.addDateRange(this.dialogForm, this.dateRange)).then(response => {
  401. this.dialogTable = response.rows;
  402. this.total = response.total;
  403. this.loading = false;
  404. this.dialogTable.forEach(function(item) {
  405. item.verifyMode='cardOrfaceOrPw'
  406. item.invalidTime=_this.getdate()
  407. })
  408. }
  409. );
  410. }else if(_this.userType==2){
  411. listTeacherUser(this.addDateRange(this.dialogForm, this.dateRange)).then(response => {
  412. this.dialogTable = response.rows;
  413. this.total = response.total;
  414. this.loading = false;
  415. this.dialogTable.forEach(function(item) {
  416. item.verifyMode='cardOrfaceOrPw'
  417. item.invalidTime=_this.getdate()
  418. })
  419. }
  420. );
  421. }
  422. },
  423. /** 查询门禁授权类型 */
  424. getHaikangQueryTypes(){
  425. getHaikangQueryTypes().then(response => {
  426. if(response.code==200){
  427. this.verifyWayList=response.data
  428. }
  429. });
  430. },
  431. //返回
  432. backPage(){
  433. this.$parent.handleClick('','','back');
  434. this.$parent.getList();
  435. },
  436. //父组件必要此方法用于接收参数
  437. searchClick(type,data){
  438. let _this = this;
  439. if(type == 1){ //type 1.查询
  440. console.log(data);
  441. this.queryParams = JSON.parse(JSON.stringify(data));
  442. if(data.dateRange){
  443. this.queryParams.startTime = data.dateRange[0];
  444. this.queryParams.endTime = data.dateRange[1];
  445. delete this.queryParams.dateRange
  446. }else{
  447. delete this.queryParams.dateRange
  448. }
  449. this.queryParams.pageNum = 1;
  450. this.queryParams.pageSize = 10;
  451. this.getList();
  452. }else if(type == 2) { //type 1.重置
  453. this.queryParams = {
  454. pageNum: 1,
  455. pageSize: 20,
  456. };
  457. this.getList();
  458. }else if(type=='addStudent'){
  459. _this.unifyDeploy=false;
  460. _this.dialogVisible=true;
  461. _this.dialogTitle='选择学生';
  462. _this.userType=1;
  463. this.getUserList();
  464. }else if(type=='addTeacher'){
  465. _this.unifyDeploy=false;
  466. _this.dialogVisible=true;
  467. _this.dialogTitle='选择教职工';
  468. _this.userType=2;
  469. this.getUserList();
  470. }
  471. },
  472. getList(){
  473. let _this=this;
  474. getHaikangUserList(_this.queryParams).then( response => {
  475. let res=response.rows;
  476. _this.tableData=res;
  477. _this.total=response.total;
  478. });
  479. },
  480. //失效时间修改后提交
  481. loseTimeSubmitForm(){
  482. let _this=this;
  483. let arr=[];
  484. _this.tableData.forEach(function(item2) {
  485. arr.push({'invalidTime':item2.invalidTime,'userId':item2.userId,'verifyMode':item2.verifyMode,id:item2.id})
  486. })
  487. _this.form.detailList=arr;
  488. setTimeout(function () {
  489. editImpowerHaikang(_this.form).then(response => {
  490. if(response.code==200){
  491. _this.msgSuccess("修改成功");
  492. _this.getList();
  493. }
  494. });
  495. },100)
  496. },
  497. /* 新增授权*/
  498. submitForm(){
  499. let _this=this;
  500. let arr=[];
  501. if(this.labWhiteJoinSubList.length>0){
  502. if(_this.configuration.invalidTime && _this.configuration.verifyMode){//统一配置
  503. this.labWhiteJoinSubList.forEach(function(item){
  504. arr.push({'invalidTime':_this.configuration.invalidTime,'userId':item.userId,'verifyMode':_this.configuration.verifyMode})
  505. })
  506. }else{
  507. this.labWhiteJoinSubList.forEach(function(item){
  508. arr.push({'invalidTime':item.invalidTime,'userId':item.userId,'verifyMode':item.verifyMode})
  509. })
  510. }
  511. _this.form.detailList=arr;
  512. setTimeout(function () {
  513. AddImpowerHaikang(_this.form).then(response => {
  514. if(response.code==200){
  515. setTimeout(function () {
  516. _this.msgSuccess("新增成功");
  517. _this.dialogVisible=false;
  518. _this.getList();
  519. },1000)
  520. }
  521. });
  522. },100)
  523. }else{
  524. this.msgError("请先选择人员!");
  525. }
  526. },
  527. },
  528. mounted() {
  529. this.queryParams.hardId=this.pageData.hardId;
  530. this.form.hardId=this.pageData.hardId;
  531. this.admittance=this.pageData.controlScope.search("1") != -1
  532. this.whiteList=this.pageData.controlScope.search("2") != -1
  533. console.log('安全准入'+this.admittance)
  534. console.log('白名单'+this.whiteList)
  535. this.listDepartments();
  536. this.getHaikangQueryTypes()
  537. this.getList()
  538. }
  539. };
  540. </script>
  541. <style lang="scss">
  542. .supplier{
  543. flex:1;
  544. display: flex;
  545. flex-direction: column;
  546. /*顶部*/
  547. .supplier-title{
  548. display: flex;
  549. justify-content: space-between;
  550. align-items: center;
  551. border-bottom: 1px solid #E0E0E0;
  552. height: 90px;
  553. p:nth-child(1){
  554. line-height:60px;
  555. color: #0045AF;
  556. font-size:14px;
  557. margin:0 12px 0 20px;
  558. }
  559. p:nth-child(2){
  560. margin-right:20px;
  561. }
  562. }
  563. .supplier-page{
  564. flex:1;
  565. display: flex!important;
  566. flex-direction: column;
  567. // box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
  568. padding:20px 20px 20px!important;
  569. border-radius:10px;
  570. }
  571. /*弹框*/
  572. .btn_list{
  573. width: 100%;
  574. height: 40px;
  575. background: rgba(1,131,250,0.1);
  576. border-radius: 6px;
  577. display: flex;
  578. justify-content: flex-start;
  579. align-items: center;
  580. margin-bottom: 32px;
  581. >i{
  582. font-style: normal;
  583. display: inline-block;
  584. cursor: pointer;
  585. }
  586. >i:nth-of-type(1){
  587. font-size: 20px;
  588. color: #0045AF;
  589. margin: 0 16px 0 14px;
  590. }
  591. >i:nth-of-type(2){
  592. font-size: 16px;
  593. font-family: Source Han Sans CN;
  594. font-weight: bold;
  595. color: #999999;
  596. line-height: 16px;
  597. }
  598. >i:nth-of-type(3){
  599. font-size: 16px;
  600. font-family: Source Han Sans CN;
  601. font-weight: bold;
  602. color: #0045AF;
  603. line-height: 16px;
  604. margin: 0 28px 0 46px;
  605. }
  606. >i:nth-of-type(4){
  607. font-size: 16px;
  608. font-family: Source Han Sans CN;
  609. font-weight: bold;
  610. color: #0045AF;
  611. line-height: 16px;
  612. }
  613. >i:nth-of-type(5){
  614. font-size: 16px;
  615. font-family: Source Han Sans CN;
  616. font-weight: bold;
  617. color: #FFA312;
  618. line-height: 16px;
  619. margin: 0 40px 0 28px;
  620. }
  621. .bottom-button-box{
  622. display: flex;
  623. width:220px;
  624. margin: 0;
  625. p{
  626. font-size:14px;
  627. height:30px;
  628. width:100px;
  629. line-height:30px;
  630. text-align: center;
  631. border-radius:4px;
  632. }
  633. p:nth-child(1){
  634. border:1px solid #E0E0E0;
  635. margin-right:20px;
  636. }
  637. p:nth-child(2){
  638. border:1px solid #0045AF;
  639. }
  640. }
  641. }
  642. .configuration{
  643. height: 70px;
  644. display: flex;
  645. justify-content: flex-end;
  646. align-items: center;
  647. border-top: 1px solid #D8D8D8;
  648. .el-form-item{
  649. margin-bottom: 0!important;
  650. }
  651. }
  652. }
  653. </style>