caseViews.vue 24 KB

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