caseViews.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802
  1. <template>
  2. <div id="MyDiv" :class="{ nocopy: $route.query.status }">
  3. <div class="cont_container">
  4. <!-- 左侧点击列表部分 -->
  5. <div class="cont-left-tiem">
  6. <ul class="el-menu-vertical-demo el-menu">
  7. <li class="li-left-item" :class="is_active == 0 ? 'is-active' : ''" @click="clickTree(0, '住院病案')">
  8. <span>住院病案</span>
  9. </li>
  10. <li
  11. v-for="(item, index) in treeList"
  12. :key="index"
  13. :class="[is_active == item.bllb && item.bllb != 49 ? 'is-active' : '', item.bllb == 49 || [2000002, 294, 303, 329, 288, 34, 87].includes(item.bllb) ? 'li-left-itemyz' : 'li-left-item']"
  14. @click="clickTree(item.bllb, item.name, item)"
  15. >
  16. <span>{{ item.name }}</span>
  17. <div v-if="item.bllb == 49">
  18. <div :class="['li-left-item-li', is_active == '长期医嘱' ? 'is-active' : '']" data-li="49-1" :id="item.bllb">长期医嘱</div>
  19. <div :class="['li-left-item-li', is_active == '临时医嘱' ? 'is-active' : '']" data-li="49-2" :id="item.bllb">临时医嘱</div>
  20. </div>
  21. <div v-if="item.bllb == 2000002">
  22. <div v-for="(jitem, jindex) in item.list" :id="jitem.type" :key="jindex" :class="['li-left-item-li', is_active == jitem.ExamType ? 'is-active' : '']">
  23. {{ jitem.name }}
  24. </div>
  25. </div>
  26. <!-- 病程记录、手术记录 -->
  27. <div v-if="[294, 303, 329, 288, 34, 87].includes(item.bllb)">
  28. <div
  29. v-for="(jitem, jindex) in item.list"
  30. :id="`${jitem.blbh}`"
  31. :key="jindex"
  32. :class="['li-left-item-li', is_active == jitem.blbh ? 'is-active' : '']"
  33. :title="jitem.name.trim()"
  34. >
  35. {{ jitem.name.trim() }}
  36. </div>
  37. </div>
  38. </li>
  39. </ul>
  40. </div>
  41. <div class="cont-left-file" @mouseup.prevent="handleMouseupHandle" @contextmenu.prevent="openMenu($event)">
  42. <div v-if="is_active == 0">
  43. <mainHomePage ref="main" :data="mainHomeData" :if-file="ifFile" />
  44. </div>
  45. <div v-else-if="is_active == 292">
  46. <!-- 入院记录 -->
  47. <admissionRecord :data="admissionRecord" :if-file="ifFile" />
  48. </div>
  49. <div v-else-if="parentType == '1' && is_active == 1">
  50. <!-- 出院记录 -->
  51. <OutHospitalRecord :data="outHospitalRecordData" />
  52. </div>
  53. <div v-else-if="bcjlLiIds.includes(Number(is_active))">
  54. <!-- 病程记录 -->
  55. <CaseRecord v-if="caseRecodeInfo.is_format === 1" :data="caseRecodeInfo" />
  56. <NoFormatText v-else :text="caseRecodeInfo.content" :data="caseRecodeInfo" name="" />
  57. </div>
  58. <div v-else-if="shoushuLiIds.includes(Number(is_active))">
  59. <!-- 手术记录 -->
  60. <template v-if="surgeryData.is_format">
  61. <ShouShuRecord1 v-if="surgeryData.type === 1" :data="surgeryData" />
  62. <ShouShuRecord2 v-if="surgeryData.type === 2" :data="surgeryData" />
  63. <ShouShuRecord4 v-if="surgeryData.type === 4" :data="surgeryData" />
  64. </template>
  65. <NoFormatText v-else :text="surgeryData.content" :data="surgeryData" :name="blname_title" />
  66. </div>
  67. <div v-else-if="is_active == '长期医嘱'">
  68. <!-- 长期医嘱 -->
  69. <medicalAdvice :data-obj="longAdvice" />
  70. </div>
  71. <div v-else-if="is_active == '临时医嘱'">
  72. <!-- 临时医嘱 -->
  73. <medicalTemporary :data-obj="happensAdvice" />
  74. </div>
  75. <div v-else-if="parentType == '2000002' && is_active == '1'">
  76. <!-- 病历图文报告 -->
  77. <caseImageText :data-obj-arr="pacsDetail" />
  78. </div>
  79. <div v-else-if="parentType == '2000002' && is_active == '2'">
  80. <!-- 超声诊断 -->
  81. <ultrasound :data-obj-arr="pacsDetail" />
  82. </div>
  83. <div v-else-if="parentType == '2000002' && is_active == '3'">
  84. <!-- 影像诊断 -->
  85. <imaging :data-obj-arr="pacsDetail" />
  86. </div>
  87. <div v-else-if="parentType == '2000002' && is_active == '4'">
  88. <!-- 为心电 -->
  89. <electrocar :data-obj-arr="pacsDetail" />
  90. </div>
  91. <div v-else-if="parentType == '2000002' && is_active == '5'">
  92. <!-- 检验报告单 病理 -->
  93. <checkout :data-obj-arr="pacsDetail" />
  94. </div>
  95. <div v-else-if="parentType == '2000002' && is_active == '6'">
  96. <!-- 內窥镜检查报告 病理 -->
  97. <sightGlass :data-obj-arr="pacsDetail" />
  98. </div>
  99. <div v-else-if="is_active == 288 || is_active == 18">
  100. <!-- 死亡记录 或者 24小时内入院记录 -->
  101. <DeathText :data-obj-arr="dataObj" v-if="update" />
  102. </div>
  103. <div v-else>
  104. <div v-if="update">
  105. <newContFile v-for="(item, index) of text" :key="index" :text="item.HJNR" :name="name_title" />
  106. </div>
  107. </div>
  108. </div>
  109. <!-- status 不存在 意味着不脱敏、医院自助查询 -->
  110. <template v-if="!$route.query.status">
  111. <!-- 住院病案质控 -->
  112. <CaseQualityBox :data="results" v-if="results.data" @clickAppealBtn="clickAppealBtn" :width="340" :height="820" ref="CaseQualityBox"/>
  113. </template>
  114. <!-- 添加质控结果 -->
  115. <CreateControlResultDialogVue v-if="dialogData.bSwitch" :data="dialogData" @refresh="handelRefreshResults" />
  116. <!-- 右键菜单 -->
  117. <ul
  118. v-show="gridCustomizeVisible"
  119. :style="{ left: left + 'px', top: top + 'px' }"
  120. class="contextmenu"
  121. >
  122. <li @click="onCreate">添加</li>
  123. </ul>
  124. </div>
  125. <!-- 审核申诉弹窗 -->
  126. <div class="dialog-box">
  127. <el-dialog title="审核结果" :visible.sync="dialogVisible" :close-on-click-modal="false" width="340px">
  128. <el-form ref="form" :model="alertForm">
  129. <el-form-item label="驳回原因:">
  130. <el-input v-model="alertForm.describe" type="textarea" placeholder="请输入驳回原因" />
  131. </el-form-item>
  132. <el-form-item label="审核科室:">
  133. <el-input v-model="alertForm.case_document" placeholder="审核科室" />
  134. </el-form-item>
  135. <el-form-item label="审核医师:">
  136. <el-input v-model="alertForm.case_docter" placeholder="审核医师" />
  137. </el-form-item>
  138. <el-form-item label="手机号">
  139. <el-input v-model="alertForm.case_docter_mobile" placeholder="手机号" />
  140. </el-form-item>
  141. </el-form>
  142. <span slot="footer" class="dialog-footer">
  143. <el-button type="primary" @click="editSubmit">确 定</el-button>
  144. <el-button @click="dialogVisible=false">取 消</el-button>
  145. </span>
  146. </el-dialog>
  147. </div>
  148. </div>
  149. </template>
  150. <script>
  151. import Mmenu from '@/components/m-menu'
  152. import mainHomePage from './contFile/mainHomePage'
  153. import newContFile from './contFile/newContFile'
  154. import admissionRecord from './contFile/admissionRecord'
  155. import medicalAdvice from './contFile/medicalAdvice'
  156. import medicalTemporary from './contFile/medicalTemporary'
  157. import caseImageText from './report/caseImageText'
  158. import ultrasound from './report/ultrasound'
  159. import imaging from './report/imaging'
  160. import electrocar from './report/electrocar'
  161. import checkout from './report/checkout'
  162. import sightGlass from './report/sightGlass'
  163. import CaseRecord from './components/CaseRecord2.vue'
  164. import ShouShuRecord1 from './components/ShouShuRecord1.vue'
  165. import ShouShuRecord2 from './components/ShouShuRecord2.vue'
  166. import ShouShuRecord4 from './components/ShouShuRecord4.vue'
  167. import NoFormatText from './components/NoFormatText.vue'
  168. import OutHospitalRecord from './components/OutHospitalRecord.vue'
  169. import CaseQualityBox from './components/CaseQualityBox2.vue'
  170. import DeathText from './components/DeathText.vue'
  171. import CreateControlResultDialogVue from './components/CreateControlResultDialog.vue'
  172. import { getCaseQuality, getCasePlatform, getAllCase, getLong, getTemporary, getPacsData, getBcData, getHomeData, getSurgeryData, getBlInfo } from '@/api/qc'
  173. import { getCaseExamineAppeal } from '@/api/admin'
  174. import { getToken, removeToken } from '@/utils/auth'
  175. export default {
  176. components: {
  177. Mmenu,
  178. mainHomePage,
  179. newContFile,
  180. admissionRecord,
  181. medicalAdvice,
  182. medicalTemporary,
  183. caseImageText,
  184. ultrasound,
  185. imaging,
  186. electrocar,
  187. sightGlass,
  188. checkout,
  189. CaseRecord,
  190. ShouShuRecord1,
  191. ShouShuRecord2,
  192. ShouShuRecord4,
  193. NoFormatText,
  194. OutHospitalRecord,
  195. CaseQualityBox,
  196. DeathText,
  197. CreateControlResultDialogVue
  198. },
  199. directives: {},
  200. filters: {},
  201. extends: {},
  202. mixins: {},
  203. props: {},
  204. data() {
  205. return {
  206. mainHomeData: {},
  207. admissionRecord: {},
  208. longAdvice: {},
  209. happensAdvice: {},
  210. valData: '',
  211. ifFile: false,
  212. treeList: [],
  213. is_active_blbh: 0,
  214. is_active: 0,
  215. parentType: 0,
  216. name_title: '',
  217. text: [],
  218. update: true,
  219. titleName: '住院病案',
  220. pacsDetail: {},
  221. // 病程记录详情
  222. caseRecodeInfo: {
  223. is_format: 1
  224. },
  225. surgeryData: {
  226. mzfj: [],
  227. ssqk: [],
  228. sscxsj: [],
  229. sslb: [],
  230. is_format: 0
  231. },
  232. outHospitalRecordData: {
  233. name: {},
  234. ry_time: {},
  235. sex: {},
  236. age: {},
  237. cy_time: {},
  238. zyts: {},
  239. ryqk: {},
  240. cbzd: {},
  241. zljg: {},
  242. cyqk: {},
  243. cyzd: {},
  244. cyyz: {}
  245. },
  246. dataObj: [],
  247. results: null,
  248. dialogData: {
  249. bSwitch: false,
  250. text: '',
  251. blbh: ''
  252. },
  253. top: 0,
  254. left: 0,
  255. gridCustomizeVisible: false,
  256. dialogVisible: false,
  257. alertForm: {},
  258. appealInfo: {}
  259. }
  260. },
  261. computed: {
  262. bcjlLiIds() {
  263. // 病程记录子项数据
  264. const arr = Object.values(this.treeList).filter(item => item.bllb === 294)
  265. const liIds = []
  266. if (arr.length) {
  267. if (arr[0].list) {
  268. for (let i = 0; i < arr[0].list.length; i++) {
  269. liIds.push(arr[0].list[i].blbh)
  270. }
  271. }
  272. }
  273. return liIds
  274. },
  275. shoushuLiIds() {
  276. // 病程记录子项数据
  277. const arr = Object.values(this.treeList).filter(item => item.bllb === 303)
  278. const liIds = []
  279. if (arr.length) {
  280. if (arr[0].list) {
  281. for (let i = 0; i < arr[0].list.length; i++) {
  282. liIds.push(arr[0].list[i].blbh)
  283. }
  284. }
  285. }
  286. return liIds
  287. },
  288. blname_title() {
  289. let title
  290. const type = this.surgeryData.type
  291. if (type === 1) {
  292. title = '手术风险评估表'
  293. } else if (type === 2) {
  294. title = '手术安全核查表'
  295. } else if (type === 3) {
  296. title = '手术同意书'
  297. } else if (type === 4) {
  298. title = '手术记录'
  299. }
  300. return title
  301. }
  302. },
  303. watch: {
  304. //变量名
  305. gridCustomizeVisible(val) {
  306. if (val) {
  307. //点击事件,调用方法
  308. document.body.addEventListener("click", this.closeMenu);
  309. } else {
  310. document.body.removeEventListener("click", this.closeMenu);
  311. }
  312. },
  313. },
  314. mounted() {
  315. this.valData = localStorage.getItem('getData')
  316. if (this.valData) {
  317. this.funQuery()
  318. this.getCaseQualityResults()
  319. }
  320. },
  321. methods: {
  322. editSubmit(){
  323. let that = this;
  324. let params = {
  325. id: that.appealInfo.id,
  326. status: that.appealInfo.status,
  327. describe: that.alertForm.describe,
  328. case_document: that.alertForm.case_document,
  329. case_docter: that.alertForm.case_docter,
  330. case_docter_mobile: that.alertForm.case_docter_mobile,
  331. }
  332. let index = that.appealInfo.index;
  333. getCaseExamineAppeal(params).then(res => {
  334. const { c } = res
  335. if(c == 0){
  336. that.$message('提交成功');
  337. that.dialogVisible = false;
  338. that.$refs.CaseQualityBox.editSubmit(index);
  339. }else{
  340. that.$message('提交失败');
  341. }
  342. })
  343. },
  344. clickAppealBtn(e) {
  345. let that = this;
  346. that.appealInfo = e.params;
  347. if(e.params.status == 1){
  348. // 通过
  349. that.editSubmit();
  350. }else{
  351. that.dialogVisible = true;
  352. }
  353. },
  354. // 刷新质控结果
  355. handelRefreshResults() {
  356. this.getCaseQualityResults()
  357. },
  358. // 鼠标右击事件
  359. openMenu(e) {
  360. //获取右击时得坐标
  361. var x = e.pageX;
  362. var y = e.pageY;
  363. //top,left在data种定义,初始值为0
  364. //top,left是右键菜单得坐标值,可以通过运算调整
  365. this.top = y - 80;
  366. this.left = x - 200;
  367. if (this.dialogData.text) {
  368. this.gridCustomizeVisible = true;
  369. }
  370. },
  371. closeMenu() {
  372. this.gridCustomizeVisible = false;
  373. },
  374. // 鼠标右击事件
  375. onCreate() {
  376. this.dialogData.bSwitch = true
  377. },
  378. // 鼠标事件
  379. handleMouseupHandle() {
  380. const text = window.getSelection().toString()
  381. if (text.trim().length) {
  382. this.dialogData.blbh = this.is_active_blbh
  383. this.dialogData.text = text
  384. }
  385. },
  386. // 获取新病案指控结果
  387. getCaseQualityResults() {
  388. let that = this;
  389. const params = {
  390. id: Number(that.valData)
  391. }
  392. getCaseQuality(params).then(res => {
  393. console.log(res)
  394. that.results = null;
  395. that.$nextTick(() =>{
  396. that.results = res.data;
  397. })
  398. }).catch(e =>{
  399. console.log(e)
  400. })
  401. // that.axios({
  402. // url:'http://10.10.11.65:8081/bazb/get_case_quality_v2',
  403. // method: 'post',
  404. // headers: { 'content-type': 'application/json', 'token': getToken() },
  405. // data: {
  406. // ZYH: Number(that.valData)
  407. // }
  408. // }).then(res => {
  409. // this.results = res.data
  410. // })
  411. },
  412. reload() {
  413. // 移除组件
  414. this.update = false
  415. // 在组件移除后,重新渲染组件
  416. // this.$nextTick可实现在DOM 状态更新后,执行传入的方法。
  417. this.$nextTick(() => {
  418. this.update = true
  419. })
  420. },
  421. funEdit() {
  422. this.ifFile = true
  423. this.$message('errer:功能待开发')
  424. },
  425. getback() {
  426. this.$router.go(-1)
  427. },
  428. /**
  429. * 跳转对应病历首页
  430. */
  431. getBlankIndexss(item) {
  432. this.$refs.main.getBlankIndex(item)
  433. },
  434. funQuery() {
  435. const params = {
  436. id: this.valData
  437. }
  438. if (this.$route.query.status) {
  439. params.is_tm = 1
  440. }
  441. getHomeData(params).then(res => {
  442. this.mainHomeData = res.p
  443. this.is_active_blbh = this.mainHomeData.MED_REC_ID
  444. })
  445. },
  446. clickTree(b, n, item) {
  447. if (item) {
  448. if (item.blbh) {
  449. this.is_active_blbh = item.blbh
  450. } else {
  451. this.is_active_blbh = event.target.id
  452. }
  453. } else {
  454. this.is_active_blbh = this.mainHomeData.MED_REC_ID
  455. }
  456. this.titleName = n
  457. this.parentType = b
  458. const that = this
  459. // 判断点击的
  460. if (event.target.id || !item.list) {
  461. if (event.target.outerText == '长期医嘱' || event.target.outerText == '临时医嘱') {
  462. that.is_active = event.target.outerText
  463. } else if ([329, 288, 34, 87, 303, 294, 2000002].includes(b)) {
  464. that.is_active = event.target.id
  465. } else {
  466. that.is_active = b
  467. }
  468. }
  469. that.name_title = n
  470. if (b != 0 && b != 292 && b != 1) {
  471. if ([329, 288, 34, 87].includes(b)) {
  472. // 授权同意类, 医患沟通类, 死亡记录类, 医疗常用表格
  473. if (this.is_active_blbh) {
  474. getBlInfo({blbh: this.is_active_blbh}).then(res => {
  475. that.text = [res.p]
  476. that.dataObj = [res.p]
  477. that.reload()
  478. })
  479. }
  480. } else {
  481. const params = {
  482. MED_REC_ID: that.valData,
  483. bllb: b
  484. }
  485. if (this.$route.query.status) {
  486. params.is_tm = 1
  487. }
  488. getAllCase(params).then(res => {
  489. that.text = res.p
  490. that.dataObj = res.p
  491. that.reload()
  492. })
  493. }
  494. } else if (b == 292) {
  495. // 获取详情
  496. const params = {
  497. id: this.valData,
  498. bllb: b
  499. }
  500. if (this.$route.query.status) {
  501. params.is_tm = '1'
  502. }
  503. getCasePlatform(params).then(res => {
  504. this.admissionRecord = res.p
  505. })
  506. } else if (b == 1) {
  507. // 获取详情
  508. const params = {
  509. id: this.valData,
  510. bllb: b
  511. }
  512. if (this.$route.query.status) {
  513. params.is_tm = 1
  514. }
  515. getCasePlatform(params).then(res => {
  516. this.outHospitalRecordData = res.p
  517. })
  518. }
  519. if (that.is_active == '长期医嘱') {
  520. // 长期医嘱
  521. const params = {
  522. AAA28: that.valData
  523. }
  524. if (this.$route.query.status) {
  525. params.is_tm = 1
  526. }
  527. getLong(params).then(res => {
  528. this.longAdvice = res.p
  529. })
  530. }
  531. if (that.is_active == '临时医嘱') {
  532. // 临时医嘱
  533. const params = {
  534. AAA28: that.valData
  535. }
  536. if (this.$route.query.status) {
  537. params.is_tm = 1
  538. }
  539. getTemporary(params).then(res => {
  540. this.happensAdvice = res.p
  541. })
  542. }
  543. if (that.parentType == '2000002' && that.is_active != '') {
  544. // 报告单 相关
  545. const parm = {
  546. type: Number(that.is_active)
  547. }
  548. if (this.$route.query.status) {
  549. parm.is_tm = 1
  550. }
  551. const treeListArr = Object.values(that.treeList)
  552. treeListArr.forEach((item, index) => {
  553. if (item.bllb == 2000002) {
  554. parm.zyh = Number(item.list[0].ZYH)
  555. }
  556. })
  557. getPacsData(parm).then(res => {
  558. this.pacsDetail = res.p
  559. })
  560. }
  561. // 病程记录
  562. if (item.bllb === 294) {
  563. if (that.is_active) {
  564. // 请求前先重置之前的数据
  565. that.caseRecodeInfo = {}
  566. const parm = { blbh: that.is_active }
  567. if (this.$route.query.status) {
  568. parm.is_tm = 1
  569. }
  570. getBcData(parm).then(res => {
  571. that.caseRecodeInfo = res.p[0].bc_data
  572. that.caseRecodeInfo.is_format = res.p[0].is_format
  573. })
  574. }
  575. }
  576. // 手术记录
  577. if (item.bllb === 303) {
  578. if (that.is_active) {
  579. // 请求前先重置之前的数据
  580. that.surgeryData = {}
  581. const parm = { blbh: that.is_active }
  582. if (this.$route.query.status) {
  583. parm.is_tm = 1
  584. }
  585. getSurgeryData(parm).then(res => {
  586. that.surgeryData = res.p[0].surgery_data
  587. that.surgeryData.is_format = res.p[0].is_format
  588. })
  589. }
  590. }
  591. }
  592. }
  593. }
  594. </script>
  595. <style lang="scss" scoped>
  596. #MyDiv {
  597. margin: 0;
  598. padding: 0 !important;
  599. }
  600. .nocopy {
  601. user-select: none;
  602. }
  603. .header {
  604. margin: 10px 20px;
  605. text-align: right;
  606. display: flex;
  607. justify-content: flex-end;
  608. }
  609. .cont_container {
  610. display: flex;
  611. justify-content: center;
  612. }
  613. .cont-left-tiem {
  614. width: 250px;
  615. margin: 0 0 0 15px;
  616. min-height: 650px;
  617. height: calc(100vh - 130px);
  618. overflow-y: scroll;
  619. background: #ffffff;
  620. }
  621. .cont-left-file {
  622. flex: 1;
  623. min-height: 650px;
  624. margin: 0 5px;
  625. height: calc(100vh - 130px);
  626. overflow-y: scroll;
  627. background: #ffffff;
  628. border: 1px solid #e2e2e2;
  629. padding: 10px;
  630. }
  631. .li-router {
  632. display: inline-block;
  633. width: 100%;
  634. height: 100%;
  635. }
  636. .li-left-item {
  637. line-height: 56px;
  638. font-size: 14px;
  639. color: #303133;
  640. padding: 0 20px;
  641. cursor: pointer;
  642. -webkit-transition: border-color 0.3s, background-color 0.3s, color 0.3s;
  643. transition: border-color 0.3s, background-color 0.3s, color 0.3s;
  644. -webkit-box-sizing: border-box;
  645. box-sizing: border-box;
  646. }
  647. .li-left-itemyz {
  648. line-height: 56px;
  649. font-size: 14px;
  650. color: #303133;
  651. padding-left: 20px;
  652. -webkit-transition: border-color 0.3s, background-color 0.3s, color 0.3s;
  653. transition: border-color 0.3s, background-color 0.3s, color 0.3s;
  654. -webkit-box-sizing: border-box;
  655. box-sizing: border-box;
  656. .li-left-item-li {
  657. width: 100%;
  658. line-height: 36px;
  659. padding: 0 20px;
  660. cursor: pointer;
  661. white-space: nowrap;
  662. overflow: hidden;
  663. text-overflow: ellipsis;
  664. }
  665. .li-left-item-li:hover {
  666. outline: 0;
  667. background-color: #ecf5ff;
  668. }
  669. }
  670. .li-left-item:focus,
  671. .li-left-item:hover {
  672. outline: 0;
  673. background-color: #ecf5ff;
  674. }
  675. .is-active {
  676. color: #409eff;
  677. }
  678. .dialog-box {
  679. ::v-deep .el-dialog__header{
  680. padding: 10px 20px;
  681. background: rgb(27,100,169);
  682. color: #fff !important;
  683. .el-dialog__title{
  684. color: #fff;
  685. }
  686. .el-dialog__headerbtn{
  687. top: 14px;
  688. }
  689. }
  690. ::v-deep .el-dialog__body{
  691. .el-form-item {
  692. background: #fff;
  693. }
  694. .el-input{
  695. width: 100%;
  696. input{
  697. height: 35px;
  698. border: 1px solid #C0C4CC;
  699. border-radius: 6px;
  700. }
  701. }
  702. }
  703. }
  704. </style>
  705. <style>
  706. /* ================================== 文本形式样式 ↓ ======================== */
  707. .refachInput span {
  708. height: auto;
  709. line-height: 1;
  710. padding: 10px 0;
  711. }
  712. .refachInput span.refachInput-text {
  713. padding-left: 12px;
  714. }
  715. .el-row--flex.is-justify-space-around {
  716. justify-content: flex-start;
  717. }
  718. .member-infobox {
  719. width: 100%;
  720. }
  721. .member-infobox .info-box-1 {
  722. /* display: flex;
  723. flex-wrap: wrap; */
  724. margin-top: 20px;
  725. }
  726. .infoBox-items {
  727. width: auto;
  728. display: flex;
  729. align-items: center;
  730. padding: 8px 0;
  731. }
  732. .padding-left20 {
  733. padding-left: 20px;
  734. }
  735. .padding-right20 {
  736. padding-right: 20px;
  737. }
  738. .infoBox-title {
  739. color: #333;
  740. font-size: 12px;
  741. font-weight: bold;
  742. }
  743. .infoBox-items-text {
  744. color: #666;
  745. font-size: 12px;
  746. padding-left: 5px;
  747. padding-right: 20px;
  748. }
  749. .title-ff0000 {
  750. color: #ff0000;
  751. }
  752. /* 高亮 */
  753. .choose-twinkle {
  754. font-size: 20px;
  755. color: red;
  756. font-weight: 600;
  757. background: yellow;
  758. }
  759. .table-value-look {
  760. padding-left: 12px;
  761. color: #ff0000;
  762. cursor: pointer;
  763. }
  764. /* 右键菜单 */
  765. .contextmenu {
  766. margin: 0;
  767. background: #fff;
  768. z-index: 3000;
  769. position: absolute;
  770. list-style-type: none;
  771. padding: 5px 0;
  772. border-radius: 4px;
  773. font-size: 12px;
  774. font-weight: 400;
  775. color: #333;
  776. box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3);
  777. }
  778. .contextmenu li {
  779. margin: 0;
  780. padding: 7px 16px;
  781. cursor: pointer;
  782. }
  783. .contextmenu li:hover {
  784. background: #eee;
  785. }
  786. </style>