ManageItemBatch.vue 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713
  1. <template>
  2. <div class="ManageItemBatchWrapper">
  3. <crumbs :title="title" :param="$route.params" linkTo="RecordItemList" minWidth="1510px"></crumbs>
  4. <div class="contents">
  5. <div class="content">
  6. <el-form ref="form" :label-position="labelPosition" label-width="125px" class="add-record-form" >
  7. <el-form-item label="选择医院:" prop="brbaxx">
  8. <el-select v-model="hospitalId"
  9. placeholder="请选择医院"
  10. size="small"
  11. @change="changeHospital">
  12. <el-option
  13. v-for="item in hospitalList"
  14. :key="item.id"
  15. :label="item.name"
  16. :value="item.id">
  17. </el-option>
  18. </el-select>
  19. </el-form-item>
  20. <el-form-item label="条目列表:" prop="hospitalList">
  21. <!-- <el-table
  22. ref="multipleTable"
  23. :data="tableData"
  24. tooltip-effect="light"
  25. style="width: 100%"
  26. @selection-change="handleSelectionChange">
  27. <el-table-column
  28. type="selection"
  29. width="120">
  30. </el-table-column>
  31. <el-table-column
  32. label="医院名称"
  33. prop="hospitalName"
  34. width="240">
  35. </el-table-column>
  36. <el-table-column
  37. prop="name"
  38. label="扣分值"
  39. width="240">
  40. <template slot-scope="scope">
  41. <el-input class="tipsMsg" v-model="scope.row.value" placeholder="请输入扣分值"></el-input>
  42. </template>
  43. </el-table-column>
  44. <el-table-column
  45. prop="address"
  46. label="提示语"
  47. width="240"
  48. show-overflow-tooltip>
  49. <template slot-scope="scope">
  50. <el-input class="tipsMsg" v-model="scope.row.tipMsg" placeholder="请输入提示语"></el-input>
  51. </template>
  52. </el-table-column>
  53. </el-table> -->
  54. <el-collapse v-model="activeLeftNames" @change="handleChange" v-if="caseLIst.length > 0">
  55. <el-collapse-item v-for="(item, index) in caseLIst" :title="item.name" :name="item.id" :key="item.id">
  56. <!-- <el-checkbox-group v-model="checkAllMap[item.remark]" >
  57. <el-checkbox v-for=" casesEntry in item.qcCasesEntry" :label="casesEntry.id" :key="casesEntry.id">{{casesEntry.name}}
  58. <el-input placeholder="请输入扣分值"></el-input>
  59. </el-checkbox>
  60. </el-checkbox-group> -->
  61. <el-table
  62. ref="multipleTable"
  63. :data="item.qcCasesEntry"
  64. tooltip-effect="light"
  65. style="width: 100%"
  66. @selection-change="handleSelectionChange($event,item.remark)">
  67. <el-table-column
  68. type="selection"
  69. width="60">
  70. </el-table-column>
  71. <el-table-column
  72. label="条目编码"
  73. prop="code"
  74. width="120">
  75. </el-table-column>
  76. <el-table-column
  77. label="条目名称"
  78. prop="name"
  79. width="240">
  80. </el-table-column>
  81. <el-table-column
  82. label="医院数据模块"
  83. prop="modeName"
  84. width="120">
  85. </el-table-column>
  86. <el-table-column
  87. prop=""
  88. label="终末扣分值"
  89. width="120">
  90. <template slot-scope="scope">
  91. <el-input class="scoreInp" oninput="if(value.length>5)value=value.slice(0,5)" v-model.trim="scope.row.score" type="number" placeholder=""></el-input>
  92. </template>
  93. </el-table-column>
  94. <el-table-column
  95. prop=""
  96. label="运行扣分值"
  97. width="120">
  98. <template slot-scope="scope">
  99. <el-input class="scoreInp" oninput="if(value.length>5)value=value.slice(0,5)" v-model.trim="scope.row.scoreRun" type="number" placeholder=""></el-input>
  100. </template>
  101. </el-table-column>
  102. <el-table-column
  103. prop="address"
  104. label="提示信息"
  105. width="240"
  106. show-overflow-tooltip>
  107. <template slot-scope="scope">
  108. <el-input class="tipsMsg" v-model.trim="scope.row.msg" placeholder="请输入提示信息"></el-input>
  109. </template>
  110. </el-table-column>
  111. <el-table-column
  112. prop="address"
  113. label="终末质控"
  114. width="120"
  115. show-overflow-tooltip>
  116. <template slot-scope="scope">
  117. <span class="checkUsed" :class="{'active': scope.row.isUsed == 1,'disabled': getDisabled(scope.row,item.remark)}" @click="checkUsed(scope.row,index,scope.$index,item.remark)"></span>
  118. <!-- <el-checkbox v-model="scope.row.isUsed" :value ="scope.row.isUsed" :disabled="getIsUsed(scope.row)" true-label="1" false-label="0">{{scope.row.isUsed}}</el-checkbox> -->
  119. </template>
  120. </el-table-column>
  121. <el-table-column
  122. prop="address"
  123. label="运行质控"
  124. width="120"
  125. show-overflow-tooltip>
  126. <template slot-scope="scope">
  127. <span class="checkUsed" :class="{'active': scope.row.isUsedRun == 1,'disabled': getDisabled(scope.row,item.remark)}" @click="checkUsedRun(scope.row,index,scope.$index,item.remark)"></span>
  128. <!-- <el-checkbox v-model="scope.row.isUsed" :value ="scope.row.isUsed" :disabled="getIsUsed(scope.row)" true-label="1" false-label="0">{{scope.row.isUsed}}</el-checkbox> -->
  129. </template>
  130. </el-table-column>
  131. <el-table-column
  132. prop="address"
  133. label="单项否决"
  134. width="120"
  135. show-overflow-tooltip>
  136. <template slot-scope="scope">
  137. <span class="checkUsed" :class="{'active': scope.row.isReject == 1,'disabled': getDisabled(scope.row,item.remark)}" @click="checkReject(scope.row,index,scope.$index,item.remark)"></span>
  138. <!-- <el-checkbox v-model="scope.row.isUsed" :value ="scope.row.isUsed" :disabled="getIsUsed(scope.row)" true-label="1" false-label="0">{{scope.row.isUsed}}</el-checkbox> -->
  139. </template>
  140. </el-table-column>
  141. </el-table>
  142. </el-collapse-item>
  143. </el-collapse>
  144. </el-form-item>
  145. <p class="oper">
  146. <el-button style="margin-right: 30px" size="small" type="primary" @click="comfirn('form')">确定</el-button>
  147. <el-button size="small" @click="cancel">取消</el-button>
  148. </p>
  149. </el-form>
  150. </div>
  151. </div>
  152. </div>
  153. </template>
  154. <script type="text/javascript">
  155. import api from '@api/records.js';
  156. import $ from 'jquery';
  157. export default {
  158. name:'ManageItemBatch',
  159. data(){
  160. return{
  161. // data:{},
  162. labelPosition:'left',
  163. /*zybljlList:[
  164. {name:'aaa',content:'333333'},
  165. {name:'vvv',content:'333sa'}
  166. ],*/
  167. hospitalList:[],
  168. caseLIst:[],
  169. sexType:[],
  170. bloodType:[],
  171. rhType:[],
  172. title:'质控条目-批量管理',
  173. hospitalId:'',
  174. tableData:[],
  175. checkAllMap:{
  176. },
  177. multipleSelection: [],
  178. id:null,
  179. activeLeftNames: [],
  180. modifier:''
  181. }
  182. },
  183. created(){
  184. const userLoginDTO = JSON.parse(localStorage.getItem('userLoginDTO'))
  185. this.modifier = userLoginDTO && userLoginDTO.linkman
  186. this.getRecordHopitalList()
  187. // this.getRecordInpModule()
  188. },
  189. methods:{
  190. toggleSelection(values) {
  191. setTimeout(()=>{
  192. // this.$refs.multipleTable[6].toggleRowSelection(this.caseLIst[6].qcCasesEntry[0]);
  193. // this.$refs.multipleTable[6].toggleRowSelection(this.caseLIst[6].qcCasesEntry[1]);
  194. for(let i = 0; i < values.length; i++){
  195. if(values[i].length > 0){
  196. values[i].forEach(value=>{
  197. const index = this.caseLIst[i].qcCasesEntry.findIndex(item =>item.id === value.id)
  198. this.$refs.multipleTable[i].toggleRowSelection(this.caseLIst[i].qcCasesEntry[index]);
  199. })
  200. }
  201. }
  202. // if (rows) {
  203. // rows.forEach(row => {
  204. // this.$refs.multipleTable.toggleRowSelection(row);
  205. // // console.log('this.$refs.multipleTabl',this.$refs.multipleTable)
  206. // // const domLen = this.$refs.multipleTable.length
  207. // // const values = Object.values(this.checkAllMap)
  208. // // console.log('values,',values)
  209. // // for(let i = 0; i < values.length; i++){
  210. // // if(values[i].length > 0){
  211. // // console.length('aaaaaaaaaaa')
  212. // // this.$refs.multipleTable[i].toggleRowSelection(value[i]);
  213. // // }
  214. // // }
  215. // });
  216. // } else {
  217. // console.log('bbbb')
  218. // const domLen = this.$refs.multipleTabl.length
  219. // for(let i = 0; i < domLen; i++){
  220. // // this.$refs.multipleTable[i].clearSelection();
  221. // }
  222. // }
  223. })
  224. },
  225. checkUsed(row,index,ii,remark){
  226. if(this.getDisabled(row,remark)){
  227. return
  228. }
  229. let isUsed = this.caseLIst[index].qcCasesEntry[ii].isUsed
  230. const caseLIstCopy = JSON.parse(JSON.stringify(this.caseLIst))
  231. if(isUsed == 1){
  232. caseLIstCopy[index].qcCasesEntry[ii].isUsed = 0
  233. }else{
  234. caseLIstCopy[index].qcCasesEntry[ii].isUsed = 1
  235. }
  236. this.caseLIst = caseLIstCopy
  237. const values = Object.values(this.checkAllMap)
  238. this.toggleSelection(values)
  239. },
  240. checkUsedRun(row,index,ii,remark){
  241. if(this.getDisabled(row,remark)){
  242. return
  243. }
  244. let isUsedRun = this.caseLIst[index].qcCasesEntry[ii].isUsedRun
  245. const caseLIstCopy = JSON.parse(JSON.stringify(this.caseLIst))
  246. if(isUsedRun == 1){
  247. caseLIstCopy[index].qcCasesEntry[ii].isUsedRun = 0
  248. }else{
  249. caseLIstCopy[index].qcCasesEntry[ii].isUsedRun = 1
  250. }
  251. this.caseLIst = caseLIstCopy
  252. const values = Object.values(this.checkAllMap)
  253. this.toggleSelection(values)
  254. },
  255. checkReject(row,index,ii,remark){
  256. if(this.getDisabled(row,remark)){
  257. return
  258. }
  259. let isReject = this.caseLIst[index].qcCasesEntry[ii].isReject
  260. const caseLIstCopy = JSON.parse(JSON.stringify(this.caseLIst))
  261. if(isReject == 1){
  262. caseLIstCopy[index].qcCasesEntry[ii].isReject = 0
  263. }else{
  264. caseLIstCopy[index].qcCasesEntry[ii].isReject = 1
  265. }
  266. this.caseLIst = caseLIstCopy
  267. const values = Object.values(this.checkAllMap)
  268. this.toggleSelection(values)
  269. },
  270. handleSelectionChange(val,remark) {
  271. this.checkAllMap[remark] = val;
  272. },
  273. getIsUsed(row){
  274. // if(this.multipleSelection.findIndex(it => it.hospitalId ==row.hospitalId) > -1){
  275. // return false
  276. // } else{
  277. // return true
  278. // }
  279. },
  280. getDisabled(row,remark){
  281. const hasChecked = this.checkAllMap[remark].findIndex(item => item.id === row.id) === -1
  282. return hasChecked
  283. },
  284. handleChange(val) {
  285. },
  286. changeHospital(val){
  287. this.getRecordInpModule().then(()=>{
  288. this.getRecordByHospital(val)
  289. }
  290. )
  291. },
  292. getRecordInpModule(){
  293. return api.getRecordInpModule({}).then((res)=>{
  294. const result = res.data;
  295. if(result.code==0){
  296. let caseLIstCopy = result.data
  297. for(let i = 0; i < caseLIstCopy.length; i++){
  298. for(let j = 0; j < caseLIstCopy[i].qcCasesEntry.length; j++){
  299. caseLIstCopy[i].qcCasesEntry[j].isUsedRun = 0
  300. caseLIstCopy[i].qcCasesEntry[j].isUsed = 0
  301. caseLIstCopy[i].qcCasesEntry[j].isReject = 0
  302. }
  303. }
  304. this.caseLIst = caseLIstCopy //提醒每项加分值和备注
  305. const checkAllMap = {}
  306. for(let i = 0; i < this.caseLIst.length; i++){
  307. checkAllMap[this.caseLIst[i].remark] = []
  308. }
  309. this.checkAllMap = checkAllMap
  310. }else{
  311. this.$message({
  312. message:result.msg,
  313. type:'warning',
  314. showClose: true
  315. });
  316. }
  317. })
  318. },
  319. getRecordHopitalList(){
  320. return api.getRecordHopitalList({}).then((res)=>{
  321. const result = res.data;
  322. if(result.code==0){
  323. this.hospitalList = result.data
  324. const tableData = []
  325. for(let i = 0; i < this.hospitalList.length; i++){
  326. tableData.push({
  327. hospitalId: this.hospitalList[i].id,
  328. hospitalName: this.hospitalList[i].name,
  329. value: '',
  330. tipMsg:'',
  331. scoreRun:'',
  332. })
  333. }
  334. this.tableData = tableData
  335. }else{
  336. this.$message({
  337. message:result.msg,
  338. type:'warning',
  339. showClose: true
  340. });
  341. }
  342. })
  343. },
  344. getRecordByHospital(hospitalId){
  345. const param = {
  346. hospitalId: hospitalId
  347. }
  348. return api.getRecordByHospital(param).then((res)=>{
  349. const result = res.data;
  350. if(result.code==0){
  351. this.hospitalItemList = result.data
  352. for (let i = 0; i< this.hospitalItemList.length; i++){
  353. const hospitalItem = this.hospitalItemList[i]
  354. let caseItem = this.caseLIst.find(item =>item.id === hospitalItem.casesId)
  355. for(let j = 0; j < hospitalItem.getAllByHospitalDetialDTOS.length; j++){
  356. const checkedItem = hospitalItem.getAllByHospitalDetialDTOS[j]
  357. let recordItem = caseItem.qcCasesEntry.find(item => item.id === checkedItem.casesEntryId)
  358. recordItem.score = checkedItem.score
  359. recordItem.scoreRun = checkedItem.scoreRun
  360. recordItem.msg = checkedItem.msg
  361. recordItem.isUsed = checkedItem.isUsed
  362. recordItem.isUsedRun = checkedItem.isUsedRun
  363. recordItem.isReject = checkedItem.isReject
  364. recordItem.modeName = checkedItem.modeName
  365. this.checkAllMap[caseItem.remark].push(recordItem)
  366. }
  367. }
  368. this.caseLIst = JSON.parse(JSON.stringify(this.caseLIst))
  369. const values = Object.values(this.checkAllMap)
  370. this.toggleSelection(values)
  371. }else{
  372. this.$message({
  373. message:result.msg,
  374. type:'warning',
  375. showClose: true
  376. });
  377. }
  378. })
  379. },
  380. cancel(){
  381. this.$router.push({
  382. name: 'RecordItemList',
  383. params: Object.assign({}, this.$route.params)
  384. });
  385. },
  386. comfirn(form){
  387. if(!this.hospitalId){
  388. this.$message({
  389. message:"请选择医院",
  390. type:'warning',
  391. showClose: true
  392. });
  393. }
  394. const values = Object.values(this.checkAllMap);
  395. let casesEntryHospitals = [],requiredValNull=[],valueTypeWr=[],tempItemIdx={};
  396. $(".el-collapse .wrong").removeClass("wrong");
  397. for(let i = 0; i < values.length; i++){
  398. for(let j = 0; j < values[i].length;j++){
  399. const value = values[i][j];
  400. if(!valueTypeWr.length&&(!value.msg||value.score==="")){
  401. tempItemIdx=this.caseLIst[i].qcCasesEntry.findIndex(item =>item.id === value.id);
  402. requiredValNull.push(value.casesId);
  403. $(".el-collapse .el-collapse-item:eq("+i+") table tr:eq("+(+tempItemIdx+1)+")").addClass("wrong");
  404. }
  405. var reg = new RegExp(/^\d+(\.\d)?$/);
  406. if(!requiredValNull.length&&(!reg.test(value.score) || value.score >100)){
  407. tempItemIdx=this.caseLIst[i].qcCasesEntry.findIndex(item =>item.id === value.id);
  408. $(".el-collapse .el-collapse-item:eq("+i+") table tr:eq("+(+tempItemIdx+1)+")").addClass("wrong");
  409. valueTypeWr.push(value.casesId);
  410. }
  411. let item = {
  412. "casesEntryId": value.id,
  413. "creator": "0",
  414. "hospitalId": this.hospitalId,
  415. "modifier": this.modifier,
  416. "msg": value.msg||"",
  417. "remark": value.remark,
  418. "score": Number(value.score),
  419. "scoreRun": Number(value.scoreRun),
  420. "isUsed":value.isUsed||0,
  421. "isUsedRun":value.isUsedRun||0,
  422. "isReject":value.isReject||0
  423. }
  424. casesEntryHospitals.push(item)
  425. }
  426. }
  427. if(requiredValNull.length>0){
  428. this.$message({
  429. message:'勾选项扣分值和提示信息不能为空',
  430. type:'warning',
  431. showClose: true
  432. });
  433. this.activeLeftNames = requiredValNull;
  434. $(".el-main").scrollTop(160);
  435. return
  436. }else if(valueTypeWr.length>0){
  437. this.$message({
  438. message:'扣分值请输入≥0且≤100的数字,最多保留小数点后1位',
  439. type:'warning',
  440. showClose: true
  441. });
  442. this.activeLeftNames = valueTypeWr;
  443. $(".el-main").scrollTop(160);
  444. return
  445. }
  446. let param = {
  447. "casesEntryHospitals": casesEntryHospitals,
  448. "hospitalIds": [
  449. this.hospitalId
  450. ]
  451. }
  452. api.updateRecordByHospital(param).then((res)=>{
  453. if(res.data.code==0){
  454. this.$message({
  455. message:"修改成功",
  456. type:'success',
  457. showClose: true
  458. });
  459. //返回带搜索条件的首页
  460. this.$router.push({
  461. name: 'RecordItemList',
  462. params: Object.assign({}, this.$route.params)
  463. });
  464. }else{
  465. this.$message({
  466. message:res.data.msg,
  467. type:'warning',
  468. showClose: true
  469. });
  470. }
  471. })
  472. return
  473. /*if(!this.form.name.trim() || !this.form.refreshTime.trim()){
  474. this.$message({
  475. message:'请填写相关内容',
  476. type:'warning'
  477. });
  478. return
  479. }*/
  480. /*this.$refs[form].validate((valid) => {
  481. if (valid) {*/
  482. // if(this.basyid){//修改
  483. // const param = Object.assign({},this.form,{basyid:this.basyid,brzyid:this.brzyid});
  484. // api.saveRecord(param).then((res)=>{
  485. // if(res.data.code==0){
  486. // this.$message({
  487. // message:"修改成功",
  488. // type:'success'
  489. // });
  490. // //返回带搜索条件的首页
  491. // this.$router.push({
  492. // name: 'RecordManager',
  493. // params: Object.assign({}, this.$route.params)
  494. // });
  495. // }else{
  496. // this.$message({
  497. // message:res.data.msg,
  498. // type:'warning'
  499. // });
  500. // }
  501. // })
  502. // }else{//添加
  503. // // 复制时把list多余字段过滤掉,如id等
  504. // const detail = this.list;
  505. // let copyDetail=[];
  506. // let item={};
  507. // if(detail && detail.length>0){
  508. // for(let i=0; i<detail.length; i++){
  509. // item.title = detail[i].title;
  510. // item.description = detail[i].description;
  511. // copyDetail.push(item);
  512. // item={};
  513. // }
  514. // }
  515. // const params = Object.assign({},this.form);
  516. // // api.addVersInfo(this.form).then((res)=>{
  517. // api.saveRecord(params).then((res)=>{
  518. // if(res.data.code==0){
  519. // this.$message({
  520. // message:"添加成功",
  521. // type:'success'
  522. // })
  523. // // this.$router.push({path: 'LT-GBBXXWH-BBXXWH'});
  524. // this.$router.push({name: 'RecordManager'});
  525. // }else{
  526. // this.$message({
  527. // message:res.data.msg,
  528. // type:'warning'
  529. // });
  530. // }
  531. // })
  532. // }
  533. /*} else {
  534. return false;
  535. }
  536. });*/
  537. },
  538. }
  539. }
  540. </script>
  541. <style lang="less">
  542. @import "../../less/admin.less";
  543. .ManageItemBatchWrapper{
  544. .content{
  545. background: #fff;
  546. padding: 20px 20px 50px;
  547. color: #545455;
  548. min-width: 1500px;
  549. position: relative;
  550. .short-inp{
  551. width: 200px;
  552. }
  553. .sub-title{
  554. font-weight: bold;
  555. font-size: 16px;
  556. margin-bottom: 20px;
  557. }
  558. .oper{
  559. text-align: right;
  560. }
  561. .checkUsed{
  562. cursor: pointer;
  563. position: relative;
  564. // color: #fff;
  565. display: inline-block;
  566. width: 14px;
  567. height: 14px;
  568. background: #fff;
  569. border: 1px solid #333;
  570. box-sizing: border-box;
  571. border-radius: 2px;
  572. -webkit-transition: border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);
  573. transition: border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);
  574. }
  575. .active{
  576. position: relative;
  577. // color: #fff;
  578. display: inline-block;
  579. width: 14px;
  580. height: 14px;
  581. background: #48C5D7;
  582. border: 1px solid #333;
  583. box-sizing: border-box;
  584. border-radius: 2px;
  585. -webkit-transition: border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);
  586. transition: border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);
  587. }
  588. .wrong td{
  589. border:1px #ff0000 solid;
  590. border-right:none;
  591. border-left:none;
  592. &:last-child{
  593. border-right:1px #ff0000 solid;
  594. }
  595. &:first-child{
  596. border-left:1px #ff0000 solid;
  597. }
  598. }
  599. .active::after{
  600. -webkit-box-sizing: content-box;
  601. box-sizing: content-box;
  602. content: "";
  603. border: 1px solid #FFF;
  604. border-left: 0;
  605. border-top: 0;
  606. height: 7px;
  607. left: 4px;
  608. position: absolute;
  609. top: 1px;
  610. -webkit-transform: rotate(45deg) scaleY(0);
  611. transform: rotate(45deg) scaleY(0);
  612. width: 3px;
  613. -webkit-transition: -webkit-transform .15s ease-in .05s;
  614. transition: -webkit-transform .15s ease-in .05s;
  615. transition: transform .15s ease-in .05s;
  616. transition: transform .15s ease-in .05s, -webkit-transform .15s ease-in .05s;
  617. transition: transform .15s ease-in .05s,-webkit-transform .15s ease-in .05s;
  618. -webkit-transform-origin: center;
  619. transform-origin: center;
  620. -webkit-transform: rotate(45deg) scaleY(1);
  621. transform: rotate(45deg) scaleY(1);
  622. }
  623. .active.disabled::after{
  624. -webkit-box-sizing: content-box;
  625. box-sizing: content-box;
  626. content: "";
  627. border: 1px solid #c9cdd5;
  628. border-left: 0;
  629. border-top: 0;
  630. height: 7px;
  631. left: 4px;
  632. position: absolute;
  633. top: 1px;
  634. -webkit-transform: rotate(45deg) scaleY(0);
  635. transform: rotate(45deg) scaleY(0);
  636. width: 3px;
  637. -webkit-transition: -webkit-transform .15s ease-in .05s;
  638. transition: -webkit-transform .15s ease-in .05s;
  639. transition: transform .15s ease-in .05s;
  640. transition: transform .15s ease-in .05s, -webkit-transform .15s ease-in .05s;
  641. transition: transform .15s ease-in .05s,-webkit-transform .15s ease-in .05s;
  642. -webkit-transform-origin: center;
  643. transform-origin: center;
  644. -webkit-transform: rotate(45deg) scaleY(1);
  645. transform: rotate(45deg) scaleY(1);
  646. }
  647. .disabled{
  648. cursor: not-allowed;
  649. background-color: #edf2fc;
  650. }
  651. /deep/.el-table__row td:nth-child(3){
  652. text-align: left;
  653. }
  654. /deep/.el-input{
  655. .el-input__inner{
  656. border: 1px solid #333;
  657. color: #000;
  658. }
  659. }
  660. /deep/.el-checkbox__inner{
  661. border: 1px solid #333;
  662. }
  663. /deep/.tipsMsg{
  664. .el-input__inner{
  665. width:200px;
  666. height: 30px;
  667. display: inline-block;
  668. border: 1px solid #333;
  669. color: #000;
  670. }
  671. }
  672. /deep/.el-table .cell, .el-table th div, .el-table--border td:first-child .cell, .el-table--border th:first-child .cell {
  673. padding: 0;
  674. }
  675. /deep/.el-input input::-webkit-outer-spin-button,
  676. /deep/.el-input input::-webkit-inner-spin-button {
  677. -webkit-appearance: none;
  678. }
  679. /deep/.el-input input[type="number"]{
  680. -moz-appearance: textfield;
  681. line-height: 20px;
  682. }
  683. /deep/.scoreInp.el-input{
  684. width:50px;
  685. .el-input__inner{
  686. width:50px;
  687. height: 30px;
  688. display: inline-block;
  689. }
  690. }
  691. }
  692. }
  693. .el-collapse-item__content{
  694. padding-bottom: 0;
  695. }
  696. .el-table::before{
  697. content: unset;
  698. }
  699. </style>