index.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705
  1. <!--检查项目库-->
  2. <template>
  3. <div class="app-container checkItemLibrary">
  4. <div class="title-box">
  5. <el-form class="form-box" :model="queryParams" ref="examineForm" :inline="true" label-width="80px">
  6. <el-form-item label="关键字" prop="name">
  7. <el-input
  8. maxlength="10"
  9. v-model="queryParams.searchValue"
  10. placeholder="预案名称/创建人"
  11. clearable
  12. size="small"/>
  13. </el-form-item>
  14. <el-form-item>
  15. <p class="inquire-button-one" @click="onSearch">查询</p>
  16. <p class="reset-button-one" @click="resetForm">重置</p>
  17. </el-form-item>
  18. <el-form-item style="float: right;">
  19. <p class="inquire-button-one" style="width:80px;" @click="addDialogOpen(1)">+ 添加</p>
  20. </el-form-item>
  21. <el-form-item style="float: right;">
  22. <p class="add-button-two-90" style="width:100px;" @click="allDel">批量删除</p>
  23. </el-form-item>
  24. <el-form-item style="float: right;">
  25. <el-dropdown @command="exportButton">
  26. <div class="form-dropdown-box">
  27. <img src="@/assets/ZDimages/personnelManagement/icon_jzgxx_sc.png">
  28. <p>导出</p>
  29. <img src="@/assets/ZDimages/personnelManagement/icon_jzggl_xljt.png">
  30. </div>
  31. <el-dropdown-menu slot="dropdown">
  32. <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;color:#333;" :command="{command:1}">导出全部数据</el-dropdown-item>
  33. <el-dropdown-item style="margin:0 10px;color:#333;" :command="{command:2}">导出选中数据</el-dropdown-item>
  34. </el-dropdown-menu>
  35. </el-dropdown>
  36. </el-form-item>
  37. <el-form-item style="float: right;">
  38. <el-dropdown @command="importButton">
  39. <div class="form-dropdown-box">
  40. <img src="@/assets/ZDimages/personnelManagement/icon_jzgxx_dr.png">
  41. <p>导入</p>
  42. <img src="@/assets/ZDimages/personnelManagement/icon_jzggl_xljt.png">
  43. </div>
  44. <el-dropdown-menu slot="dropdown">
  45. <el-dropdown-item style="border-bottom:1px solid #E0E0E0;margin:0 10px;color:#333;" :command="{command:1}">下载模板</el-dropdown-item>
  46. <el-dropdown-item style="margin:0 10px;color:#333;" :command="{command:2}">导入数据</el-dropdown-item>
  47. </el-dropdown-menu>
  48. </el-dropdown>
  49. </el-form-item>
  50. </el-form>
  51. </div>
  52. <div class="content-box">
  53. <el-table border
  54. :data="tableData"
  55. ref="multipleTable" :row-key="getRowKeys"
  56. default-expand-all
  57. :select-on-indeterminate="false"
  58. @select="select"
  59. @select-all="selectAll"
  60. :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
  61. <el-table-column type="selection" width="50" align="center"/>
  62. <el-table-column label="序号" prop="code" width="140"/>
  63. <el-table-column label="检查项目" prop="name"/>
  64. <el-table-column label="检查要点" prop="mainPoint" width="700"/>
  65. <el-table-column label="操作" width="180">
  66. <template slot-scope="scope">
  67. <div class="table-button-box">
  68. <p class="table-button-null"></p>
  69. <p class="table-button-p" v-if="scope.row.level != 3" @click="addDialogOpen(2,scope.row)">新增</p>
  70. <p class="table-button-p" @click="addDialogOpen(3,scope.row)">编辑</p>
  71. <p class="table-button-p" @click="delItem(scope.row)">删除</p>
  72. <p class="table-button-null"></p>
  73. </div>
  74. </template>
  75. </el-table-column>
  76. </el-table>
  77. </div>
  78. <!--导入窗口-->
  79. <el-dialog title="导入数据" :visible.sync="importOpen" @close="importOpenOff" width="600px" append-to-body class="checkItemLibrary-dialog-box">
  80. <el-upload
  81. class="teacher-import-dialog-upLoad-box"
  82. :drag="true"
  83. :data="upImportData"
  84. :action="uploadImgUrl"
  85. :show-file-list="false"
  86. :on-success="handleAvatarSuccess"
  87. :headers="headers"
  88. :before-upload="beforeAvatarUpload">
  89. <i class="el-icon-upload"></i>
  90. <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
  91. <div class="el-upload__tip" slot="tip">
  92. <el-checkbox v-model="upImportData.upDate">更新替换已存在序号的数据</el-checkbox>
  93. </div>
  94. <div class="el-upload__tip" slot="tip">仅允许导入xls、xlsx、格式文件。<span style="color:#0183FA;cursor: pointer" v-hasPermi="['system:user_teacher:exceltemplate']" @click="importTemplate">下载模板</span></div>
  95. <div class="el-upload-text-box" slot="tip" v-if="getImportData.downFile">
  96. <div class="img-text-box">
  97. <img src="@/assets/ZDimages/personnelManagement/icon_dr_wj.png">
  98. <p>{{getImportData.textName}}</p>
  99. </div>
  100. <p class="text-p">数据导入成功 <span style="color:#0183FA;">{{getImportData.successNum}}</span> 条,失败 <span style="color:#FF6464 ;">{{getImportData.failureNum}}</span> 条</p>
  101. <div class="img-text-box">
  102. <img src="@/assets/ZDimages/personnelManagement/icon_dr_sj.png">
  103. <p style="color:#0183FA;cursor: pointer;" @click="failureExcel">点击下载失败数据报表</p>
  104. </div>
  105. </div>
  106. </el-upload>
  107. <div slot="footer" class="teacher-import-dialog-button-box">
  108. <p class="inquire-button-one" @click="importOpenOff">确定</p>
  109. </div>
  110. <div class="teacher-import-dialog-position-box" v-if="loading"></div>
  111. </el-dialog>
  112. <!--添加窗口-->
  113. <el-dialog :title="addDialogTitle" :visible.sync="addDialogType" v-if="addDialogType" @close="addDialogOff" width="780px" append-to-body class="checkItemLibrary-dialog-box">
  114. <el-form ref="addDialogForm" :model="addDialogForm" :rules="rules" label-width="120px">
  115. <el-form-item label="上级指标" prop="parentId">
  116. <el-cascader
  117. style="width:548px;"
  118. v-model="addDialogForm.parentId"
  119. :options="cascaderData"
  120. :props="{ checkStrictly: true, value: 'id', label: 'labelName',emitPath:false }"
  121. @change="cascaderCheck">
  122. <template slot-scope="{data}">
  123. <el-tooltip :content="data.labelName" v-if="data.labelName.length>22">
  124. <p style="max-width:300px;overflow: hidden;text-overflow:ellipsis;white-space:nowrap;">{{data.labelName}}</p>
  125. </el-tooltip>
  126. <p v-else style="max-width:300px;overflow: hidden;text-overflow:ellipsis;white-space:nowrap;">{{data.labelName}}</p>
  127. </template>
  128. </el-cascader>
  129. </el-form-item>
  130. <el-form-item label="添加序号" prop="code">
  131. <el-input v-model="addDialogForm.code" placeholder="未选择指标" maxLength="6" disabled style="width:548px;"/>
  132. </el-form-item>
  133. <el-form-item label="检查项目" prop="name">
  134. <el-input
  135. type="textarea"
  136. :autosize="{ minRows: 5, maxRows: 5}"
  137. placeholder="请输入检查项目内容"
  138. v-model="addDialogForm.name"
  139. maxlength="100"
  140. resize="none"
  141. show-word-limit
  142. style="width:548px;">
  143. </el-input>
  144. </el-form-item>
  145. <el-form-item label="检查要点" prop="mainPoint" v-if="addDialogLevel>1">
  146. <el-input
  147. type="textarea"
  148. :autosize="{ minRows: 8, maxRows: 8}"
  149. placeholder="请输入检查检查要点:"
  150. v-model="addDialogForm.mainPoint"
  151. maxlength="300"
  152. resize="none"
  153. show-word-limit
  154. style="width:548px;">
  155. </el-input>
  156. </el-form-item>
  157. </el-form>
  158. <div slot="footer" class="dialog-footer dialog-footer-box" style="display: flex">
  159. <p class="dialog-footer-button-null"></p>
  160. <p class="dialog-footer-button-info" @click="addDialogOff">取消</p>
  161. <p class="dialog-footer-button-primary" @click="upDataButton">确定</p>
  162. <p class="dialog-footer-button-null"></p>
  163. </div>
  164. </el-dialog>
  165. </div>
  166. </template>
  167. <script>
  168. import { checkOptionList,checkOptionAdd,checkOptionUpdate,checkOptionDelete,checkOptionBatchDelete } from '@/api/safetyCheck/index'
  169. import { getToken } from "@/utils/auth";
  170. export default {
  171. name: 'index',
  172. data(){
  173. return{
  174. uploadImgUrl: window.location.href.split('://')[0]+'://' + this.judgmentNetworkReturnAddress() + "/system/user/teacher/importData", // 上传地址
  175. headers: {
  176. Authorization: "Bearer " + getToken(),
  177. },
  178. // 遮罩层
  179. loading: false,
  180. queryParams:{
  181. searchValue:"",
  182. },
  183. //导入弹层开关
  184. importOpen:false,
  185. //导入数据
  186. upImportData:{
  187. sysUserEnable:true,
  188. upDate:false,
  189. },
  190. getImportData:{
  191. downFile:false,
  192. successNum:0,
  193. failureNum:0,
  194. textName:"",
  195. },
  196. // 检查项选项表格数据
  197. tableData: [],
  198. cascaderData:[],
  199. cascaderDataPrimitive:[],
  200. total:0,
  201. addDialogType:false,
  202. addDialogTitle:null,
  203. addDialogLevel:0,
  204. addDialogForm:{
  205. parentId:"",
  206. code:"",
  207. name:"",
  208. mainPoint:"",
  209. },
  210. // 表单校验
  211. rules: {
  212. parentId: [
  213. { required: true, message: "请选择上级指标", trigger: "change" },
  214. { required: true, message: "请选择上级指标", validator: this.spaceJudgment, trigger: "change" },
  215. ],
  216. name: [
  217. { required: true, message: "请输入检查项目内容", trigger: "change" },
  218. { required: true, message: "请输入检查项目内容", validator: this.spaceJudgment, trigger: "change" },
  219. ],
  220. },
  221. }
  222. },
  223. created(){
  224. },
  225. mounted(){
  226. this.getList();
  227. },
  228. methods:{
  229. //确定按钮
  230. upDataButton(){
  231. this.$refs["addDialogForm"].validate(valid => {
  232. if (valid) {
  233. if(this.addDialogForm.id){
  234. //编辑
  235. let obj = JSON.parse(JSON.stringify(this.addDialogForm))
  236. obj.level = this.addDialogLevel+1;
  237. obj.mainPoint = this.addDialogLevel>1?obj.mainPoint:'';
  238. checkOptionUpdate(obj).then( response => {
  239. this.msgSuccess(response.msg)
  240. this.addDialogOff();
  241. this.getList();
  242. })
  243. }else{
  244. //新增
  245. let obj = JSON.parse(JSON.stringify(this.addDialogForm))
  246. obj.level = this.addDialogLevel+1;
  247. checkOptionAdd(obj).then( response => {
  248. this.msgSuccess(response.msg)
  249. this.addDialogOff();
  250. this.getList();
  251. })
  252. }
  253. }
  254. })
  255. },
  256. //添加页面开启
  257. addDialogOpen(type,row){
  258. if(type == 1){
  259. //新增
  260. this.$set(this,'addDialogTitle','添加检查项目');
  261. this.$set(this,'addDialogLevel',0);
  262. this.$set(this,'addDialogForm',{
  263. parentId:"",
  264. code:"",
  265. name:"",
  266. mainPoint:"",
  267. });
  268. this.$set(this,'addDialogType',true);
  269. }else if(type == 2){
  270. //列表新增
  271. this.$set(this,'addDialogTitle','添加检查项目');
  272. let obj = this.cascaderCheckData(row.id,this.cascaderDataPrimitive);
  273. this.$set(this,'addDialogLevel',obj.level);
  274. this.$set(this,'addDialogForm',{
  275. parentId:row.id,
  276. code:obj.key,
  277. name:"",
  278. mainPoint:"",
  279. });
  280. this.$set(this,'addDialogType',true);
  281. }else if(type == 3){
  282. //编辑
  283. this.$set(this,'addDialogTitle','编辑检查项目');
  284. this.$set(this,'addDialogLevel',row.level-1);
  285. this.$set(this,'addDialogForm',{
  286. id:row.id,
  287. parentId:row.parentId,
  288. code:row.code,
  289. name:row.name,
  290. mainPoint:row.mainPoint,
  291. });
  292. this.$set(this,'addDialogType',true);
  293. }
  294. },
  295. //添加页面关闭
  296. addDialogOff(){
  297. this.$set(this,'addDialogType',false);
  298. },
  299. //联级选中
  300. cascaderCheck(val){
  301. let obj = this.cascaderCheckData(val,this.cascaderDataPrimitive);
  302. this.$set(this.addDialogForm,'code',obj.key);
  303. this.$set(this,'addDialogLevel',obj.level);
  304. },
  305. cascaderCheckData(val,list){
  306. let self = this;
  307. for(let i=0;i<list.length;i++){
  308. if(list[i].id == val){
  309. let obj = {
  310. parentId:list[i].id,
  311. parentKey:list[i].code,
  312. level:list[i].level,
  313. key:'',
  314. }
  315. if(list[i].children){
  316. if(list[i].children[0]){
  317. let minList = list[i].children[list[i].children.length-1].code.split('.')
  318. obj.key = list[i].code ? list[i].code + '.' + ((parseInt(minList[minList.length-1]))+1) : (parseInt(minList[minList.length-1]))+1
  319. }else{
  320. obj.key = list[i].code ? list[i].code+'.1':'1'
  321. }
  322. }else{
  323. obj.key = list[i].code ? list[i].code+'.1':'1'
  324. }
  325. return obj
  326. }else{
  327. if (list[i].level<3){
  328. if(list[i].children){
  329. if(list[i].children[0]){
  330. let obj = self.cascaderCheckData(val,list[i].children);
  331. if(obj){
  332. return obj
  333. }
  334. }
  335. }
  336. }
  337. }
  338. }
  339. },
  340. //删除
  341. delItem(row){
  342. let self = this;
  343. this.$confirm('是否确认删除?', "警告", {
  344. confirmButtonText: "确定",
  345. cancelButtonText: "取消",
  346. type: "warning"
  347. }).then(function() {
  348. checkOptionDelete(row.id).then( response => {
  349. self.msgSuccess(response.msg)
  350. self.getList();
  351. })
  352. }).then(() => {
  353. }).catch(() => {});
  354. },
  355. //批量删除
  356. allDel(){
  357. let self = this;
  358. if(!this.$refs.multipleTable.selection[0]){
  359. this.msgError('请勾选数据')
  360. return
  361. }
  362. this.$confirm('是否确认删除?', "警告", {
  363. confirmButtonText: "确定",
  364. cancelButtonText: "取消",
  365. type: "warning"
  366. }).then(function() {
  367. let list = self.$refs.multipleTable.selection;
  368. let ids = [];
  369. for(let i=0;i<list.length;i++){
  370. ids.push(list[i].id)
  371. }
  372. checkOptionBatchDelete(ids+'').then( response => {
  373. self.msgSuccess(response.msg);
  374. self.getList();
  375. })
  376. }).then(() => {
  377. }).catch(() => {});
  378. },
  379. /** 查询检查项选项列表 */
  380. getList() {
  381. this.loading = true;
  382. checkOptionList(this.queryParams).then( response => {
  383. this.$set(this,'tableData',JSON.parse(JSON.stringify(response.data)));
  384. let list = [{
  385. id:'0',
  386. name:"最上级",
  387. code:false,
  388. level:0,
  389. children:JSON.parse(JSON.stringify(response.data)),
  390. }]
  391. this.$set(this,'cascaderData',list);
  392. this.$set(this,'cascaderDataPrimitive',JSON.parse(JSON.stringify(list)));
  393. this.getCascaderData(this.cascaderData);
  394. this.$set(this,'total',response.total);
  395. this.loading = false;
  396. });
  397. },
  398. //联级选择器数据处理
  399. getCascaderData(list){
  400. let self = this;
  401. for(let i=0;i<list.length;i++){
  402. list[i].labelName = list[i].code? list[i].code +' '+ list[i].name:list[i].name
  403. if(list[i].level == 0 || list[i].level == 1){
  404. self.getCascaderData(list[i].children)
  405. }else{
  406. delete list[i].children
  407. }
  408. }
  409. },
  410. //查询
  411. onSearch() {
  412. this.getList();
  413. },
  414. //重置
  415. resetForm() {
  416. this.$set(this.queryParams,'searchValue',null);
  417. this.$set(this,'total',0);
  418. this.onSearch();
  419. },
  420. //****************************************导入功能**************************************
  421. handleAvatarSuccess(res, file) {
  422. if(res.code == 200){
  423. this.getImportData.downFile = res.data.downFile
  424. this.getImportData.successNum = res.data.successNum
  425. this.getImportData.failureNum = res.data.failureNum
  426. // this.importOpen = false;
  427. // this.getList();
  428. }else{
  429. this.msgError(res.msg);
  430. }
  431. this.loading = false;
  432. },
  433. beforeAvatarUpload(file) {
  434. let type = false;
  435. console.log('file',file);
  436. if (file.type == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' || file.type == 'application/vnd.ms-excel') {
  437. this.getImportData.textName = file.name;
  438. type = true;
  439. this.loading = true;
  440. }else{
  441. this.$message.error('只能上传xls/xlsx格式文件');
  442. type = false;
  443. }
  444. return type;
  445. },
  446. //导入页面关闭
  447. importOpenOff(){
  448. this.importOpen = false;
  449. this.getImportData.downFile = false;
  450. this.getImportData.successNum = 0;
  451. this.getImportData.failureNum = 0;
  452. this.getImportData.textName = "";
  453. },
  454. /** 导入按钮操作 */
  455. importButton(item){
  456. if(item.command == 1){
  457. // 下载模板
  458. this.download('/system/user/teacher/importTemplate', {}, `导入模板.xlsx`)
  459. }else if(item.command == 2){
  460. // 导入数据
  461. console.log('导入数据');
  462. this.importOpen = true;
  463. }
  464. },
  465. /** 当前时间 */
  466. getCurrentTime () {
  467. const yy = new Date().getFullYear()
  468. const mm = new Date().getMonth() + 1
  469. const dd = new Date().getDate()
  470. const hh = new Date().getHours()
  471. const mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes() : new Date().getMinutes()
  472. const ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds() : new Date().getSeconds()
  473. return yy + '-' + mm + '-' + dd
  474. },
  475. /** 导出按钮操作 */
  476. exportButton(item) {
  477. let self = this;
  478. this.currentDate=this.getCurrentTime()
  479. if(item.command == 1){
  480. self.$confirm(`确认导出全部数据?`, "提示", {
  481. confirmButtonText: "确定",
  482. cancelButtonText: "取消",
  483. type: "warning"
  484. }).then(async () => {
  485. self.download('/system/user/teacher/export/', {...self.queryParams}, '教职工信息-'+this.currentDate+'.xlsx')
  486. }).catch(() => {})
  487. }else if(item.command == 2){
  488. if(self.ids.length>0) {
  489. self.$confirm(`确认导出选中数据?`, "提示", {
  490. confirmButtonText: "确定",
  491. cancelButtonText: "取消",
  492. type: "warning"
  493. }).then(async () => {
  494. let ids = self.ids.join(',');
  495. let obj = {
  496. ids :ids
  497. }
  498. self.download(`/system/user/teacher/export/`,obj, '教职工信息-'+this.currentDate+'.xlsx')
  499. }).catch(() => {})
  500. }else {
  501. Message({
  502. message: "请选择要导出的数据",
  503. type: 'error'
  504. });
  505. }
  506. }
  507. },
  508. /** 下载模板操作 */
  509. importTemplate() {
  510. this.download('/system/user/teacher/importTemplate', {}, `导入模板.xlsx`)
  511. },
  512. /*下载失败列表*/
  513. failureExcel(){
  514. this.download('/system/user/teacher/importErrorData', {}, `失败报表.xlsx`)
  515. },
  516. /*===记录勾选数据===
  517. 需要再el-table 添加 :row-key="getRowKeys"
  518. 需要在selection 添加 :reserve-selection="true"
  519. */
  520. getRowKeys(row) {
  521. return row.id
  522. },
  523. // 单选
  524. select (selection, row) {
  525. if (selection.some(el => { return row.id === el.id })) {
  526. if (row.children) {
  527. this.setChildren(row.children, true)
  528. }
  529. } else {
  530. if (row.children) {
  531. this.setChildren(row.children, false)
  532. }
  533. }
  534. },
  535. // 全选
  536. selectAll (selection) {
  537. const isSelect = selection.some(el => {
  538. const tableDataIds = this.tableData.map(j => j.id)
  539. return tableDataIds.includes(el.id)
  540. })
  541. const isCancel = !this.tableData.every(el => {
  542. const selectIds = selection.map(j => j.id)
  543. return selectIds.includes(el.id)
  544. })
  545. if (isSelect) {
  546. selection.map(el => {
  547. if (el.children) {
  548. this.setChildren(el.children, true)
  549. }
  550. })
  551. }
  552. if (isCancel) {
  553. this.tableData.map(el => {
  554. if (el.children) {
  555. this.setChildren(el.children, false)
  556. }
  557. })
  558. }
  559. },
  560. setChildren (children, type) {
  561. children.map(j => {
  562. this.toggleSelection(j, type)
  563. if (j.children) {
  564. this.setChildren(j.children, type)
  565. }
  566. })
  567. },
  568. toggleSelection (row, select) {
  569. if (row) {
  570. this.$nextTick(() => {
  571. this.$refs.multipleTable && this.$refs.multipleTable.toggleRowSelection(row, select)
  572. })
  573. }
  574. },
  575. },
  576. }
  577. </script>
  578. <style scoped lang="scss">
  579. .checkItemLibrary{
  580. flex:1;
  581. display: flex!important;
  582. flex-direction: column;
  583. overflow: hidden;
  584. .title-box{
  585. padding-top:20px;
  586. .form-box{
  587. border-bottom:1px solid #E0E0E0;
  588. .form-dropdown-box{
  589. display: flex;
  590. margin:0;
  591. padding:0 10px;
  592. cursor: pointer;
  593. height:40px;
  594. img:nth-child(1){
  595. width:16px;
  596. height:16px;
  597. margin-top:12px;
  598. }
  599. p{
  600. width:47px;
  601. text-align: center;
  602. font-size:14px;
  603. margin:0;
  604. line-height:40px;
  605. }
  606. img:nth-child(3){
  607. width:10px;
  608. height:6px;
  609. margin-top:17px;
  610. }
  611. }
  612. }
  613. }
  614. .content-box{
  615. flex:1;
  616. overflow: hidden;
  617. display: flex;
  618. flex-direction: column;
  619. padding:20px;
  620. }
  621. }
  622. </style>
  623. <style lang="scss">
  624. .checkItemLibrary-dialog-box{
  625. .teacher-import-dialog-upLoad-box{
  626. .el-upload{
  627. width:450px;
  628. margin:0 55px;
  629. .el-upload-dragger{
  630. width:450px;
  631. .el-icon-upload{
  632. font-size:100px;
  633. color:#CBE6FE;
  634. }
  635. .el-upload__text{
  636. margin-top:20px;
  637. }
  638. }
  639. }
  640. .el-upload__tip{
  641. margin-left:60px;
  642. font-size:14px;
  643. margin-top:10px;
  644. }
  645. .el-upload-text-box{
  646. background: #F5F5F5;
  647. border-radius: 10px;
  648. margin:15px 30px 0;
  649. padding:0 20px 15px;
  650. overflow: hidden;
  651. *{
  652. margin:0;
  653. }
  654. .img-text-box{
  655. display: flex;
  656. margin-top:15px;
  657. img{
  658. width:16px;
  659. height:16px;
  660. margin-right:13px;
  661. }
  662. p{
  663. height:16px;
  664. line-height:16px;
  665. font-size:12px;
  666. }
  667. }
  668. .text-p{
  669. margin-top:15px;
  670. margin-left:29px;
  671. height:16px;
  672. line-height:16px;
  673. font-size:12px;
  674. }
  675. }
  676. }
  677. .teacher-import-dialog-button-box{
  678. display: flex;
  679. width:190px;
  680. margin:0 auto;
  681. p{
  682. width:70px;
  683. height:30px;
  684. line-height:30px;
  685. font-size:14px;
  686. margin:0 auto;
  687. }
  688. }
  689. .teacher-import-dialog-position-box{
  690. width:100%;
  691. height:100%;
  692. position: absolute;
  693. top:0;
  694. left:0;
  695. z-index: 999;
  696. background: rgba(255,255,255,0.4);
  697. border-radius:20px;
  698. }
  699. }
  700. </style>