GlSiFaCase.vue 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. <template>
  2. <div class="glSiFaCase">
  3. <van-row class="sifa-yhc-case-info">
  4. <van-collapse v-model="activeNames" @change="colChange">
  5. <van-collapse-item name="1" :value='valueCol'>
  6. <template #title>
  7. <div class="sfTitle"><span>所属司法案件</span> <img src="@/assets/img/vip.png" alt=""></div>
  8. </template>
  9. <van-row class="four-info-item">
  10. <van-row class="case-item-title"><span v-if="siFaCaseData.caseEnd == 1" class="ja">[疑似结案]</span>{{siFaCaseData.title}}</van-row>
  11. <div class="case-lables">
  12. <span v-for="(item,index) in siFaCaseData.caseType" v-if="siFaCaseData.caseType && siFaCaseData.caseType.length > 0" :key="index + 100" class="itm">{{item}}</span>
  13. <span v-for="(item,index) in siFaCaseData.lable" v-if="siFaCaseData.lable && siFaCaseData.lable.length > 0" :key="index" class="itm oth">{{item}}</span>
  14. </div>
  15. <van-row class="case-info-block">
  16. <van-row class="case-info-block-left">
  17. <van-row class="left-item">
  18. <span>案件类型:</span>
  19. <span class="left-item-value">{{siFaCaseData.caseType && siFaCaseData.caseType.join(',')}}</span>
  20. </van-row>
  21. <van-row v-for="item in siFaCaseData.showPresonList" :key="item.title" class="left-item">
  22. <span class="ybgTitle">{{item.title}}:</span>
  23. <div style="display:flex;flex-direction:column;flex:1">
  24. <span v-for="(e,index) in item.list" :key="index" :class="$isCompanyClass(e.litigant_id)" @click.stop='goFilterNewUnknowCompony(e)'>{{e.name}}</span>
  25. </div>
  26. </van-row>
  27. <van-row class="left-item">
  28. <span>案由:</span>
  29. <span class="left-item-value">{{siFaCaseData.caseReason || '-'}}</span>
  30. </van-row>
  31. <van-row class="left-item">
  32. <span>当前审理阶段:</span>
  33. <span class="left-item-value">{{siFaCaseData.caseStage}}</span>
  34. </van-row>
  35. <van-row class="left-item">
  36. <span>最新审理日期:</span>
  37. <span class="left-item-value">{{siFaCaseData.lastDate && siFaCaseData.lastDate.substring(0,11)}}</span>
  38. </van-row>
  39. </van-row>
  40. <van-icon name="arrow" color="#BDBFC1" />
  41. </van-row>
  42. </van-row>
  43. </van-collapse-item>
  44. </van-collapse>
  45. </van-row>
  46. </div>
  47. </template>
  48. <script lang="ts" setup>
  49. import $axios from '@/api'
  50. import { $goCompany,$isCompanyClass } from '@/utils/utils';
  51. import { onMounted, reactive, ref } from 'vue'
  52. import { useRoute } from 'vue-router'
  53. const route = useRoute()
  54. const props = defineProps(['rowKey','caseNo'])
  55. const activeNames = ref(['1'])
  56. const siFaCaseData = <any>ref({})
  57. const valueCol = ref('收起')
  58. onMounted(() => {
  59. getInfo()
  60. })
  61. const colChange = (e: string[])=> {
  62. if(e[0] == '1'){
  63. valueCol.value = '收起'
  64. }else{
  65. valueCol.value = '展开'
  66. }
  67. }
  68. const getInfo = async () => {
  69. const params = {
  70. rowkey:props.rowKey || undefined,
  71. caseNo:props.rowKey ? undefined : props.caseNo,
  72. type:route.query.detailType
  73. }
  74. const res = await $axios.get('winhc-justice-service/justice/judicial/v8/info', { params }) as any
  75. let ybList = [...(res.ygName || []),...(res.bgName || [])];
  76. let showPresonList:any = [];
  77. ybList.forEach((item)=>{
  78. let showTitle = item.partyTitle;
  79. let hasIndex = 'none';
  80. showPresonList.forEach((pre: { title: any; },i: string)=>{
  81. if(pre.title === showTitle){
  82. hasIndex = i
  83. }
  84. })
  85. let obj={
  86. litigant_id:item.litigantId,
  87. name: item.name,
  88. }
  89. if(hasIndex==='none'){
  90. showPresonList.push({
  91. title:showTitle,
  92. list:[obj]
  93. })
  94. } else {
  95. showPresonList[hasIndex].list.push(obj)
  96. }
  97. })
  98. res.showPresonList = showPresonList;
  99. if(res.caseType){
  100. res.caseType = res.caseType.split(',')
  101. }
  102. siFaCaseData.value = res
  103. console.log(res)
  104. }
  105. const goFilterNewUnknowCompony = (val: { name: string; litigant_id: string; })=>{
  106. $goCompany(val.name,val.litigant_id)
  107. }
  108. </script>
  109. <style lang='scss' scoped>
  110. .sfTitle{
  111. font-weight: bold;
  112. position: relative;
  113. line-height: 24px;
  114. height: 24px;
  115. display: flex;
  116. img{
  117. width: 24px;
  118. height: 12px;
  119. margin-left: 2px;
  120. }
  121. }
  122. .sifa-yhc-case-info {
  123. background: #fff;
  124. margin: 0.24rem 0rem;
  125. padding: 0 0.32rem;
  126. color: #919498;
  127. border-radius: 0;
  128. }
  129. .sifa-yhc-case-info :deep() .van-collapse-item__content {
  130. padding: 0;
  131. }
  132. .sifa-yhc-case-info :deep() .van-cell {
  133. padding: 10px 0px;
  134. font-weight: bold;
  135. }
  136. .sifa-yhc-case-info :deep() .van-collapse {
  137. width: 100%;
  138. }
  139. .sifa-yhc-case-info :deep() .van-cell:not(:last-child)::after {
  140. left: 0;
  141. }
  142. .sifa-yhc-case-info .four-info-item .case-item-title {
  143. color: #242A32;
  144. font-weight: bold;
  145. padding: 0.32rem 0 0.24rem;
  146. line-height: 0.4rem;
  147. }
  148. .sifa-yhc-case-info .four-info-item .case-item-title .ja {
  149. color: #2AAA00;
  150. }
  151. .sifa-yhc-case-info .four-info-item .case-lables {
  152. font-size: 0.2rem;
  153. font-weight: normal;
  154. margin-bottom: 0.2rem;
  155. margin-top: -0.16rem;
  156. }
  157. .sifa-yhc-case-info .four-info-item .case-lables .itm {
  158. color: #EC7D15;
  159. background: rgba(236, 125, 21, 0.1);
  160. display: inline-block;
  161. padding: 0.04rem 0.1rem;
  162. line-height: 0.28rem;
  163. margin-right: 0.2rem;
  164. font-size: 0.2rem;
  165. margin-top: 0.06rem;
  166. }
  167. .sifa-yhc-case-info .four-info-item .case-lables .itm.oth {
  168. color: #ED4033;
  169. background: rgba(237, 64, 51, 0.1);
  170. }
  171. .sifa-yhc-case-info .four-info-item .case-info-block {
  172. display: flex;
  173. align-items: center;
  174. justify-content: space-between;
  175. }
  176. .sifa-yhc-case-info .four-info-item .case-info-block .case-info-block-left {
  177. flex: 1;
  178. }
  179. .sifa-yhc-case-info .four-info-item .case-info-block .case-info-block-left .left-item {
  180. padding-bottom: 0.24rem;
  181. display: flex;
  182. }
  183. .sifa-yhc-case-info .four-info-item .case-info-block .case-info-block-left .left-item .ybgTitle {
  184. max-width: 2.8rem;
  185. padding-right: 4px;
  186. }
  187. .sifa-yhc-case-info .four-info-item .case-info-block .case-info-block-left .left-item .left-item-name {
  188. flex: 1;
  189. display: flex;
  190. flex-direction: column;
  191. }
  192. .sifa-yhc-case-info .four-info-item .case-info-block .case-info-block-left .left-item .left-item-name .left-item-value {
  193. flex: 1;
  194. width: fit-content;
  195. }
  196. </style>