iam-frame-content.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <template>
  2. <div :class="$style.content">
  3. <a-card size="small" :bordered="false" :class="[$style.top, 'sd-has-table']">
  4. <todo-tabs />
  5. </a-card>
  6. <a-row :class="$style.bottom">
  7. <a-card size="small" :bordered="false" :class="[$style.top, 'sd-has-table']">
  8. <!-- 审计项目 -->
  9. <my-project />
  10. </a-card>
  11. </a-row>
  12. <a-row v-if="showCase || showDispute" :class="$style.bottom">
  13. <a-col
  14. v-if="showCase"
  15. :class="{
  16. [$style.bottomL]: showCase && showDispute,
  17. [$style.bottom]: showCase && !showDispute,
  18. }"
  19. >
  20. <a-card size="small" :bordered="false" :class="[$style.top, 'sd-has-table']">
  21. <!-- 在办案件 -->
  22. <my-case />
  23. </a-card>
  24. </a-col>
  25. <a-col
  26. v-if="showDispute"
  27. :class="{
  28. [$style.bottomR]: showCase && showDispute,
  29. [$style.bottom]: !showCase && showDispute,
  30. }"
  31. >
  32. <a-card size="small" :bordered="false" :class="[$style.top, 'sd-has-table']">
  33. <!-- 在办纠纷 -->
  34. <my-dispute />
  35. </a-card>
  36. </a-col>
  37. </a-row>
  38. <a-row :gutter="[0, 0]" :class="$style.bottom">
  39. <a-col :class="$style.bottomL">
  40. <a-card size="small" :bordered="false" class="sd-has-table">
  41. <a-tabs v-model="type" class="sd-has-table">
  42. <span slot="tabBarExtraContent" :class="$style.morebtn" @click="moreClick"
  43. >查看更多 ></span
  44. >
  45. <a-tab-pane key="attention" tab="我的关注">
  46. <simple-list ref="attention" list-type="attention" />
  47. </a-tab-pane>
  48. <a-tab-pane key="application" tab="我的申请">
  49. <simple-list ref="application" list-type="application" />
  50. </a-tab-pane>
  51. </a-tabs>
  52. </a-card>
  53. </a-col>
  54. <a-col :class="$style.bottomR">
  55. <div :class="$style.box">
  56. <a-card :bordered="false" :class="$style.cardBody">
  57. <div slot="title">
  58. <a-icon
  59. type="bell"
  60. title="工作动态"
  61. @click="$router.push('/sd-frame/audit-information-list')"
  62. />
  63. 工作动态
  64. </div>
  65. <div slot="extra">
  66. <a-icon
  67. slot="tabBarExtraContent"
  68. :class="$style.morebtn"
  69. type="ellipsis"
  70. @click="goMoreNews('audit-information-list')"
  71. />
  72. </div>
  73. <HomeTzggList :news-id="'gxjb'" type="getInformation" :max-results="4"></HomeTzggList>
  74. </a-card>
  75. </div>
  76. </a-col>
  77. </a-row>
  78. </div>
  79. </template>
  80. <script>
  81. import axios from '@/common/services/axios-instance'
  82. import simpleList from '@/todo/sd-todo-list-simple.vue'
  83. import myCase from './case/law-my-case.vue'
  84. import myDispute from './dispute/law-my-dispute.vue'
  85. import todoTabs from './iam-todo-tabs.vue'
  86. import myProject from './iam-my-project.vue'
  87. import components from './_import-components/iam-frame-content-import'
  88. import HomeTzggList from '../home/home-tzgg-list.vue'
  89. export default {
  90. name: 'IamFrameContent',
  91. metaInfo: {
  92. title: '工作台',
  93. },
  94. components: {
  95. ...components,
  96. 'todo-tabs': todoTabs,
  97. 'my-project': myProject,
  98. 'simple-list': simpleList,
  99. 'my-case': myCase,
  100. 'my-dispute': myDispute,
  101. HomeTzggList,
  102. },
  103. data() {
  104. return {
  105. type: 'attention',
  106. showCase: false,
  107. showDispute: false,
  108. }
  109. },
  110. created() {
  111. axios({
  112. method: 'post',
  113. url: 'api/xcoa-mobile/v1/iam-page/businessList',
  114. data: {
  115. columns: 'LAW_CASE_SHOW,LAW_DISPUTE_SHOW',
  116. expressions: [],
  117. formId: 'onlhead:00788856205141a18048cfb8b01b07e7',
  118. maxResults: 10,
  119. startPosition: 0,
  120. },
  121. })
  122. .then((res) => {
  123. if (res.data.data.length > 0) {
  124. this.showCase = res.data.data[0].LAW_CASE_SHOW === '显示'
  125. this.showDispute = res.data.data[0].LAW_DISPUTE_SHOW === '显示'
  126. } else {
  127. this.showCase = false
  128. this.showDispute = false
  129. }
  130. // 强制隐藏-36967 工作台多余内容请隐去
  131. this.showCase = false
  132. this.showDispute = false
  133. })
  134. .catch(() => {
  135. this.showCase = false
  136. this.showDispute = false
  137. })
  138. },
  139. methods: {
  140. moreClick() {
  141. if (this.type === 'attention') {
  142. this.$router.push({ path: 'sd-mycollect' })
  143. } else if (this.type === 'application') {
  144. this.$router.push({ path: 'sd-myapply' })
  145. }
  146. },
  147. goMoreNews(data) {
  148. const href = '#/sd-frame/' + data
  149. window.open(href, '_blank')
  150. },
  151. },
  152. }
  153. </script>
  154. <style module lang="scss">
  155. @use '@/common/design' as *;
  156. $titlecolor: #333;
  157. $iconfont: 20px;
  158. .content {
  159. .morebtn {
  160. font-size: 14px;
  161. cursor: pointer;
  162. }
  163. height: auto;
  164. :global(.ant-card-head-title) {
  165. font-size: $font-size-base;
  166. font-weight: normal;
  167. color: $titlecolor;
  168. }
  169. .bottom {
  170. padding-top: $padding-lg;
  171. .bottom-l {
  172. float: left;
  173. width: calc(100% - 580px);
  174. height: 100%;
  175. padding-right: $padding-lg;
  176. }
  177. .bottom-r {
  178. float: left;
  179. width: 580px;
  180. height: 100%;
  181. }
  182. }
  183. .top {
  184. &:global(.sd-has-table) {
  185. min-height: calc(100% - 370px);
  186. }
  187. }
  188. }
  189. </style>