index.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <template>
  2. <auth-wrap ref="authWrap">
  3. <view class="regmeeting-content-info-container" slot="content">
  4. <u-cell-group :border="false">
  5. <u-cell title="姓名" :label="meetingInfo.usrName">
  6. </u-cell>
  7. </u-cell-group>
  8. <u-cell-group :border="false">
  9. <u-cell title="单位名称" :label="meetingInfo.orgUnitName">
  10. </u-cell>
  11. </u-cell-group>
  12. <u-cell-group :border="false">
  13. <u-cell title="职务" :label="meetingInfo.uniLevel">
  14. </u-cell>
  15. </u-cell-group>
  16. <u-cell-group :border="false">
  17. <u-cell title="联系电话" :label="meetingInfo.tel">
  18. </u-cell>
  19. </u-cell-group>
  20. <u-cell-group :border="false">
  21. <u-cell title="邮箱" :label="meetingInfo.email">
  22. </u-cell>
  23. </u-cell-group>
  24. <u-cell-group :border="false">
  25. <u-cell title="人员类型" :label="USR_TYPE[meetingInfo.usrType].name">
  26. </u-cell>
  27. </u-cell-group>
  28. <template v-if="meetingInfo.applyType == MEETING_TYPE.meeting.value">
  29. <u-cell-group :border="false">
  30. <u-cell title="是否参加现场调研">
  31. <view
  32. slot="label"
  33. >
  34. <u-tag
  35. plain
  36. :text="SYS_YES_NO[meetingInfo.conferenceFlag].name"
  37. :type="meetingInfo.conferenceFlag == SYS_YES_NO['0'].value ? 'success' : 'warning'">
  38. </u-tag>
  39. </view>
  40. </u-cell>
  41. </u-cell-group>
  42. <u-cell-group :border="false" v-if="meetingInfo.conferenceFlag == SYS_YES_NO['0'].value">
  43. <u-cell title="调研会场" :label="meetingInfo.contentTitle">
  44. </u-cell>
  45. </u-cell-group>
  46. </template>
  47. <template v-else>
  48. <u-cell-group :border="false">
  49. <u-cell title="会议类型" :label="MEETING_TYPE[meetingInfo.applyType].name">
  50. </u-cell>
  51. </u-cell-group>
  52. <u-cell-group :border="false">
  53. <u-cell title="会议信息" :label="meetingInfo.contentTitle">
  54. </u-cell>
  55. </u-cell-group>
  56. </template>
  57. <u-cell-group :border="false">
  58. <u-cell title="来程交通方式" :label="TFC_TYPE[meetingInfo.wayComing].name">
  59. </u-cell>
  60. </u-cell-group>
  61. <u-cell-group :border="false">
  62. <u-cell :title="TFC_INFO[meetingInfo.wayComing].name" :label="meetingInfo.comInfo">
  63. </u-cell>
  64. </u-cell-group>
  65. <u-cell-group :border="false">
  66. <u-cell title="回程交通方式" :label="TFC_TYPE[meetingInfo.wayBack].name">
  67. </u-cell>
  68. </u-cell-group>
  69. <u-cell-group :border="false">
  70. <u-cell :title="TFC_INFO[meetingInfo.wayBack].name" :label="meetingInfo.backInfo">
  71. </u-cell>
  72. </u-cell-group>
  73. <u-cell-group :border="false">
  74. <u-cell title="备注" :label="meetingInfo.remark">
  75. </u-cell>
  76. </u-cell-group>
  77. <u-cell-group :border="false">
  78. <u-cell title="审核状态">
  79. <view
  80. slot="label"
  81. >
  82. <u-tag
  83. plain
  84. :text="REVIEW_STATUS[meetingInfo.reviewState].name"
  85. :type="REVIEW_STATUS[meetingInfo.reviewState].tag">
  86. </u-tag>
  87. </view>
  88. </u-cell>
  89. </u-cell-group>
  90. <u-cell-group :border="false" v-if="REVIEW_STATUS.noPass.value == meetingInfo.reviewState">
  91. <u-cell title="不通过原因" :label="meetingInfo.reviewMsg">
  92. </u-cell>
  93. </u-cell-group>
  94. <u-cell-group :border="false" v-for="(item,index) in meetingInfo.follows">
  95. <u-cell :border="false" :title="`随行人员${index+1}`" :label="item.usrName">
  96. </u-cell>
  97. <u-cell title="联系电话" :label="item.tel">
  98. </u-cell>
  99. </u-cell-group>
  100. <view style="margin-top: 20px">
  101. <rich-text
  102. v-if="REVIEW_STATUS[meetingInfo.reviewState]"
  103. :content="tips[REVIEW_STATUS[meetingInfo.reviewState].tip].content">
  104. </rich-text>
  105. </view>
  106. <view class="u-page__button-item">
  107. <u-button
  108. :disabled="[REVIEW_STATUS.pass.value].includes(meetingInfo.reviewState)"
  109. text="重新申请"
  110. size="normal"
  111. type="primary"
  112. @click="onRegistClick"
  113. ></u-button>
  114. </view>
  115. </view>
  116. </auth-wrap>
  117. </template>
  118. <script>
  119. import { fetchMeetingTips, fetchUsrApplyDetail } from '@/common/api';
  120. import { FORM_MOD, MEETING_TYPE, REVIEW_STATUS, SYS_YES_NO, TFC_INFO, TFC_TYPE, USR_TYPE } from '@/common/EnumConst';
  121. import AuthWrap from '@/components/AuthComp/index.vue';
  122. import RichText from '@/components/RichText/index.vue';
  123. import { setStorageObj, storageKey } from '@/util';
  124. export default {
  125. name: 'content',
  126. components: {
  127. RichText,
  128. AuthWrap,
  129. },
  130. props: {},
  131. data() {
  132. return {
  133. SYS_YES_NO,
  134. REVIEW_STATUS,
  135. USR_TYPE,
  136. MEETING_TYPE,
  137. TFC_INFO,
  138. TFC_TYPE,
  139. meetingInfo: {},
  140. tips: {},
  141. };
  142. },
  143. created() {
  144. },
  145. onLoad(res) {
  146. // 登录返回之后的页面
  147. if (res) {
  148. this.queryParams = res;
  149. }
  150. this.getUsrMeetingInfo();
  151. this.getTips();
  152. },
  153. onUnload() {
  154. let pages = getCurrentPages();//获取所有界面栈的实例列表
  155. let prePage = pages[pages.length - 2];//上一个界面的实例
  156. prePage.onLoad();
  157. },
  158. methods: {
  159. async getUsrMeetingInfo() {
  160. const { data } = await fetchUsrApplyDetail(this.queryParams.id);
  161. if (!data) {
  162. return;
  163. }
  164. this.meetingInfo = data;
  165. },
  166. async getTips() {
  167. const { data } = await fetchMeetingTips();
  168. if (!data) {
  169. return;
  170. }
  171. const result = {};
  172. data.forEach((item) => {
  173. result[item.id] = item;
  174. });
  175. this.tips = result;
  176. },
  177. onRegistClick() {
  178. if (this.meetingInfo.applyType == MEETING_TYPE.meeting.value) {
  179. uni.navigateTo({
  180. url: `/pasb/pages/regist/index?mode=${FORM_MOD.modify}&apply=${this.meetingInfo.id}`,
  181. });
  182. return;
  183. }
  184. setStorageObj(storageKey.regtheme, {
  185. id: this.meetingInfo.contentId,
  186. mode: 'mod',
  187. apply: this.meetingInfo.id,
  188. });
  189. uni.navigateTo({
  190. url: `/pasbrg/pages/regtheme/index?mode=${FORM_MOD.modify}&apply=${this.meetingInfo.id}`,
  191. });
  192. },
  193. },
  194. };
  195. </script>
  196. <style lang="scss" src="./index.scss" />;