index.vue 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <template>
  2. <view style="height: 100vh">
  3. <zj-page-container>
  4. <zj-fiex-column
  5. background="#F7F7F7"
  6. @scrolltolower="carScrolltolower"
  7. @refresherrefresh="carRefresherrefresh"
  8. @refresherrestore="carRefresherrestore"
  9. :refresherEnabled="true"
  10. :refresherTriggered="refresherTriggered"
  11. >
  12. <view slot="before" class="head-view">
  13. <view class="head-view-bg"></view>
  14. </view>
  15. <view class="page-content">
  16. <view class="page-title-view">
  17. <text>{{ info.policyName }}</text>
  18. <image mode="aspectFit" src="/static/images/common/bpa.png"> </image>
  19. </view>
  20. <view class="page-content-view">
  21. <view class="page-content-text">
  22. <text class="mintext">保单名称:{{ info.policyName }}</text>
  23. </view>
  24. <view class="page-content-text">
  25. <text class="mintext"
  26. >保障期限:{{ info && info.startTime && info.startTime.split(' ')[0] }}至{{
  27. info && info.endTime && info.endTime.split(' ')[0]
  28. }}</text
  29. >
  30. <text class="ogtext minwidth"
  31. >{{
  32. parseInt(
  33. baozhang > 0
  34. ? baozhang === 1
  35. ? getDaysBetween(info.startTime, new Date())
  36. : getDaysBetween(info.startTime, info.endTime)
  37. : 0
  38. )
  39. }}天</text
  40. >
  41. </view>
  42. <view class="page-content-text">
  43. <text class="mintext">被保险人:{{ info.workerName || '' }}</text>
  44. </view>
  45. <view class="page-content-text">
  46. <text class="mintext">所属网点:{{ info.websitName || '' }}</text>
  47. </view>
  48. <image
  49. v-if="info.policyOrderStatus === 'DSX'"
  50. class="yingzhang"
  51. mode="aspectFit"
  52. src="/static/images/common/dsx.png"
  53. >
  54. </image>
  55. <image
  56. v-if="info.policyOrderStatus === 'BZZ'"
  57. class="yingzhang"
  58. mode="aspectFit"
  59. src="/static/images/common/yshx.png"
  60. >
  61. </image>
  62. <image
  63. v-if="info.policyOrderStatus === 'YSX'"
  64. class="yingzhang"
  65. mode="aspectFit"
  66. src="/static/images/common/ysx.png"
  67. >
  68. </image>
  69. </view>
  70. <!-- --------------------- -->
  71. <view class="page-content-view">
  72. <view class="page-content-text">
  73. <text class="bigtext">保障内容</text>
  74. </view>
  75. <view class="page-content-text">
  76. <text class="mintext">保单编码:{{ info.policyNumber }}</text>
  77. </view>
  78. <view class="page-content-text">
  79. <text class="mintext">承保公司:{{ info.policy && info.policy.company }}</text>
  80. </view>
  81. <view class="hr" />
  82. <view class="page-content-text">
  83. <text class="bigtext">保障范围</text>
  84. </view>
  85. <view class="page-content-text" v-for="(item, index) in info.policyRanges || []" :key="index">
  86. <text class="mintext">{{ item.rangeName }}</text>
  87. <text class="mintext maxwidth">{{ item.rangeText }}</text>
  88. </view>
  89. <view class="hr" />
  90. <view class="page-content-text">
  91. <text class="bigtext">保费</text>
  92. <text class="mintext">{{ info.payAmount }}</text>
  93. </view>
  94. <view class="page-content-text">
  95. <text class="mintext">缴费方式</text>
  96. <text class="mintext maxwidth">一次性年缴</text>
  97. </view>
  98. <view class="page-content-text">
  99. <text class="tsogtext">注:已承保期间,不足一个月的部分按一个月计缴费</text>
  100. </view>
  101. </view>
  102. <!-- --------------------- -->
  103. <view class="page-content-view">
  104. <view class="page-content-text">
  105. <text class="bigtext">协议条款</text>
  106. </view>
  107. <template v-for="(item, index) in insureAgreeList">
  108. <view class="page-content-text" :key="index" @click="goDetailsAgreement(item)">
  109. <view class="baoxianxieyi">
  110. <text>《{{ item.agreementName }}》</text>
  111. <u-icon name="arrow-right" size="18"></u-icon>
  112. </view>
  113. </view>
  114. <view class="minhr" v-if="index < insureAgreeList.length - 1" />
  115. </template>
  116. </view>
  117. <u-button type="primary" plain @click="goHome">返回首页</u-button>
  118. </view>
  119. </zj-fiex-column>
  120. </zj-page-container>
  121. </view>
  122. </template>
  123. <script>
  124. import ZjFiexColumn from '@/components/zj-container/zj-fiex-column.vue'
  125. import ZjFiexRow from '@/components/zj-container/zj-fiex-row.vue'
  126. import ZjPageContainer from '@/components/zj-container/zj-page-container.vue'
  127. export default {
  128. components: {
  129. ZjFiexRow,
  130. ZjFiexColumn,
  131. ZjPageContainer
  132. },
  133. data() {
  134. return {
  135. info: {},
  136. insureAgreeList: [],
  137. refresherTriggered: false,
  138. id: ''
  139. }
  140. },
  141. computed: {
  142. baozhang() {
  143. return this.info.startTime && this.info.endTime ? this.isDuringDate(this.info.startTime, this.info.endTime) : -1
  144. }
  145. },
  146. onLoad({ id }) {
  147. this.id = id
  148. this.redc()
  149. uni.$emit('updateUserInfo')
  150. },
  151. methods: {
  152. redc() {
  153. this.$api.post('/worker/myDetail', { id: this.id }).then(res => {
  154. console.log(res, '--')
  155. this.info = res.data
  156. this.insureAgreeList = res.data.agreements || []
  157. this.refresherTriggered = false
  158. })
  159. },
  160. getDaysBetween(date1, date2, a) {
  161. var startDate = Date.parse(date1)
  162. var endDate = Date.parse(date2)
  163. if (startDate > endDate) {
  164. return 0
  165. }
  166. if (startDate == endDate) {
  167. return 1
  168. }
  169. var days = (endDate - startDate) / (1 * 24 * 60 * 60 * 1000)
  170. return days
  171. },
  172. isDuringDate(beginDateStr, endDateStr) {
  173. var curDate = new Date(),
  174. beginDate = new Date(beginDateStr),
  175. endDate = new Date(endDateStr)
  176. if (curDate >= beginDate && curDate <= endDate) {
  177. return 1
  178. } else if (curDate < beginDate) {
  179. return 0
  180. } else if (curDate > endDate) {
  181. return 2
  182. }
  183. },
  184. goDetailsAgreement(item) {
  185. if (item.id) {
  186. this.$navToPage({
  187. url: `/packageEnter/pages/insurance/detailsAgreement/index?id=${item.id}`
  188. })
  189. }
  190. },
  191. // 滚动到底部
  192. carScrolltolower(e) {},
  193. // 触发下拉刷新
  194. carRefresherrefresh(e) {
  195. this.refresherTriggered = true
  196. this.redc()
  197. },
  198. // 下拉刷新结束
  199. carRefresherrestore(e) {},
  200. goHome() {
  201. uni.switchTab({
  202. url: '/pages/index/index'
  203. })
  204. }
  205. }
  206. }
  207. </script>
  208. <style lang="scss" scoped>
  209. @import './style.scss';
  210. </style>