index.vue 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. <template>
  2. <view class="flex-common-css page-box box-bg">
  3. <Nav :title="'Featured Collections'" :genre="1" :back="false" :is_fixed='false'></Nav>
  4. <Search :placeholder="'姓名或电话'" @setSearch="setSearch"></Search>
  5. <!-- <view class="page-box-bg-fff m-lr20 r-20">
  6. <z-tabs ref="tabs" :list="tabsList" :active-style="{color:'#10B261',fontWeight:'bold',fontSize:'30rpx'}"
  7. :bar-style="{background:'#10B261'}" :inactive-style="{fontWeight:'bold',fontSize:'28rpx'}"
  8. :current="current" :bar-animate-mode="'worm'" @change="tabsChange" />
  9. </view> -->
  10. <view class="p-30 box-border-box bgc-fff">
  11. <scroll-view class="scroll-view center" scroll-x="true">
  12. <view class="d-inline-block mr-20">
  13. <view class="croll-view-item bgc-5692FF mb-10">
  14. <view class="size-64">
  15. 🏢
  16. </view>
  17. <view class="head-tab size-24 fc-fff bgc-7D99FF r-40">
  18. 4 deals
  19. </view>
  20. </view>
  21. <view class="size-28">
  22. Commercial Real Estate
  23. </view>
  24. <view class="size-24 fc-6A7383">
  25. Prime locations
  26. </view>
  27. </view>
  28. <view class="d-inline-block mr-20">
  29. <view class="croll-view-item bgc-00DC73-00BF7C mb-10">
  30. <view class="size-64">
  31. 🏘️
  32. </view>
  33. <view class="head-tab size-24 fc-fff bgc-33D595 r-40">
  34. 3 deals
  35. </view>
  36. </view>
  37. <view class="size-28">
  38. Residential
  39. </view>
  40. <view class="size-24 fc-6A7383">
  41. Housing market
  42. </view>
  43. </view>
  44. <view class="d-inline-block mr-20">
  45. <view class="croll-view-item bgc-00DC73-00BF7C mb-10">
  46. <view class="size-64">
  47. </view>
  48. <view class="head-tab size-24 fc-fff bgc-33D595 r-40">
  49. 3 deals
  50. </view>
  51. </view>
  52. <view class="size-28">
  53. Low Risk
  54. </view>
  55. <view class="size-24 fc-6A7383">
  56. LTV < 70%
  57. </view>
  58. </view>
  59. <view class="d-inline-block mr-20">
  60. <view class="croll-view-item bgc-C579FF-F4399F mb-10">
  61. <view class="size-64">
  62. ⚙️
  63. </view>
  64. <view class="head-tab size-24 fc-fff bgc-E87DD2 r-40">
  65. 3 deals
  66. </view>
  67. </view>
  68. <view class="size-28">
  69. Equipment
  70. </view>
  71. <view class="size-24 fc-6A7383">
  72. Asset-backed
  73. </view>
  74. </view>
  75. </scroll-view>
  76. </view>
  77. <view class="p-20">
  78. <view class="personal m-lr10 row-justify-sb center">
  79. <text class="sys-weight-600">精选系列</text>
  80. <view class="row-justify-sb center">
  81. <view class="personal_text">
  82. <uni-datetime-picker type="date">
  83. <view class="personal sys-background-fff size-24 sys-weight-600 p-lr30 r-40">{{indexTime}}
  84. </view>
  85. </uni-datetime-picker>
  86. </view>
  87. </view>
  88. </view>
  89. </view>
  90. <view class="scroll-view-css flex-direction">
  91. <TaskItem :type="5" :taskList="backlogList" @heartBut="heartBut"></TaskItem>
  92. </view>
  93. <Tab class="tabs_height" :tab-index="0"></Tab>
  94. </view>
  95. </template>
  96. <script>
  97. import TaskItem from "@/common/task/task-item.vue"
  98. import PieChart from "@/common/chart/pie_chart.vue"
  99. import CircleChart from "@/common/chart/circle_chart.vue"
  100. // 个人信息
  101. import IndexColumn from "./module/index_column.vue"
  102. // 顶部栏目
  103. import IndexPersonal from "./module/index_personal.vue"
  104. import {
  105. getDateBacklogStatistics,
  106. getDayBacklogList
  107. } from "@/api/task";
  108. import {
  109. date
  110. } from "@/uni_modules/uv-ui-tools/libs/function/test";
  111. export default {
  112. components: {
  113. TaskItem,
  114. PieChart,
  115. CircleChart,
  116. IndexColumn,
  117. IndexPersonal
  118. },
  119. data() {
  120. return {
  121. current: 0,
  122. modelTime: this.$tools.getDate('-'),
  123. indexTime: this.$tools.getDate('-'),
  124. is_admin: false,
  125. scrollTop: 0,
  126. topNavHeight: 0,
  127. tabsList: [{
  128. name: '全部',
  129. disabled: false
  130. }, {
  131. name: '未完成(0)',
  132. dot_color: 'red',
  133. is_dot: false,
  134. disabled: false
  135. }, {
  136. name: '已完成',
  137. dot_color: 'red',
  138. is_dot: false,
  139. disabled: false
  140. }],
  141. memberData: {
  142. draftNum: 0,
  143. creditNum: 0,
  144. noticeNum: 0,
  145. take_num: 0,
  146. unreadNum: 0,
  147. },
  148. statisticsData: {
  149. endNum: 0,
  150. exceedDate: 0,
  151. lagDate: 0,
  152. totalNum: 0,
  153. },
  154. loanList: [],
  155. backlogList: [],
  156. weekData: [],
  157. weekNum: 1,
  158. dayNum: 0,
  159. day: '',
  160. month: '',
  161. page: 1,
  162. isAjax: false,
  163. total: null
  164. }
  165. },
  166. watch: {},
  167. onLoad() {},
  168. onShow() {},
  169. onPageScroll(res) {
  170. this.scrollTop = res.scrollTop / 120
  171. },
  172. mounted() {
  173. this.backlogListData()
  174. },
  175. onReachBottom() {},
  176. methods: {
  177. heartBut(data) {
  178. if (uni.getStorageSync('loanList')) {
  179. this.loanList = uni.getStorageSync('loanList')
  180. }
  181. if (data) {
  182. this.backlogList.forEach((i, k) => {
  183. if (i.id === data.id) {
  184. i.live = !i.live
  185. }
  186. })
  187. uni.setStorageSync('backlogList', this.backlogList)
  188. if (data.type) {
  189. this.backlogList.forEach((v, j) => {
  190. if (v.id === data.id) {
  191. this.loanList.push(v)
  192. }
  193. })
  194. uni.setStorageSync('loanList', this.loanList)
  195. } else {
  196. this.backlogList.forEach((v, j) => {
  197. if (v.id === data.id) {
  198. this.loanList.splice(j, 1)
  199. }
  200. })
  201. uni.setStorageSync('loanList', this.loanList)
  202. }
  203. }
  204. },
  205. backlogListData() {
  206. let data = uni.getStorageSync('backlogList')
  207. if (data) {
  208. this.backlogList = data
  209. } else {
  210. this.backlogList = [{
  211. img: 'https://copyright.bdstatic.com/vcg/creative/d6c6a351be227d5d3b3e8c1f96f56e50.jpg@h_1280',
  212. proportion: '37',
  213. name: 'Downtown Office Tower -Prime Location',
  214. live: false,
  215. percentage: '3.1',
  216. description: 'Metro Properties LLC',
  217. amount: '5.0',
  218. trend: '7.5',
  219. risk: 'LTV 37%',
  220. time: '2024-001',
  221. id: 1,
  222. },
  223. {
  224. img: 'https://pic.rmb.bdstatic.com/bjh/3ea195479f8a/250303/f53064611fee7c092312f3b6ea8e439d.jpeg',
  225. proportion: '71',
  226. name: 'Tower -Prime Location',
  227. live: false,
  228. percentage: '4.1',
  229. description: 'Healthcare Properties Inc',
  230. amount: '5.0',
  231. trend: '5.5',
  232. risk: 'LTV 77%',
  233. time: '2024-002',
  234. id: 2,
  235. },
  236. {
  237. img: 'https://qcloud.dpfile.com/pc/3B5v9C_aeqiLmADxyv5K2oclwwy3V_g7gw7Dmq38AuV9VmaUI3Rb5Uvj6kJNMMCrY0q73sB2DyQcgmKUxZFQtw.jpg',
  238. proportion: '60',
  239. name: 'Luxury Retail Center - High Street',
  240. live: false,
  241. percentage: '1.5',
  242. description: 'Healthcare Properties Inc',
  243. amount: '8.5',
  244. trend: '6.8',
  245. risk: 'LTV 10.5%',
  246. time: '2024-002',
  247. id: 3,
  248. }
  249. ]
  250. uni.setStorageSync('backlogList', this.backlogList)
  251. }
  252. }
  253. },
  254. }
  255. </script>
  256. <style lang="scss" scoped>
  257. .box-bg{
  258. background-image: url('https://wealfavor-1257406827.cos.ap-beijing.myqcloud.com/new-xcx/task/task-nav-bg.png');
  259. background-repeat: no-repeat;
  260. background-size: 100% auto;
  261. }
  262. .head-tab {
  263. padding: 8rpx 16rpx;
  264. }
  265. .croll-view-item {
  266. width: 320rpx;
  267. height: 224rpx;
  268. border-radius: 40rpx;
  269. display: flex;
  270. flex-direction: column;
  271. align-items: center;
  272. justify-content: center;
  273. }
  274. .scroll-view {
  275. white-space: nowrap;
  276. }
  277. .personal {
  278. height: 55rpx;
  279. line-height: 55rpx;
  280. }
  281. .pie_chart {
  282. width: 135px
  283. }
  284. .circle_chart {
  285. width: 135px;
  286. padding-top: 20rpx;
  287. }
  288. .chart_dot {
  289. width: 16rpx;
  290. height: 16rpx;
  291. border-radius: 50%;
  292. }
  293. </style>