brokerlist.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794
  1. <template>
  2. <view>
  3. <u-sticky>
  4. <view class="cu-bar search bg-gray">
  5. <view class="search-form round text-center">
  6. <text class="cuIcon-search"></text>
  7. <input @input="bindInput" :adjust-position="false" type="text" placeholder="请输入关键字"
  8. confirm-type="search"></input>
  9. </view>
  10. <view class="action" v-if="searchval!==''">
  11. <button class="cu-btn bg-white shadow-blur round" @click="btnSearch()">搜索</button>
  12. </view>
  13. </view>
  14. <view class="page-section page-section-gap">
  15. <map style="width: 100%; height: 200px;" :latitude="latitude" :longitude="longitude" :markers="covers"
  16. @markertap="markertap">
  17. </map>
  18. </view>
  19. </u-sticky>
  20. <view class="menu" v-if="false">
  21. <view class="menu-top">
  22. <view class="menu-top-item">优秀经纪人
  23. <view class="item-icon">
  24. <u-icon name="arrow-down" color="#000000" size="25rpx"></u-icon>
  25. </view>
  26. </view>
  27. <view class="menu-top-item" :style="filterbox!==null? 'color:#CA151C' : ''" data-filterbox="area"
  28. @tap="showFilter">{{arealist.title}}
  29. <view class="item-icon" :style="{transform:filterbox!==null?transform:'', transition:transition}">
  30. <u-icon name="arrow-down" :color="filterbox!==null? '#CA151C' : '#000000'"
  31. size="25rpx"></u-icon>
  32. </view>
  33. </view>
  34. </view>
  35. <view class="filtercon" v-if="filterbox!==null">
  36. <view class="grid margin-bottom text-left col-3 bg-white" v-if="filterbox=='area'">
  37. <view class="solids-right padding-bottom">
  38. <scroll-view scroll-y="true" style="height: 600rpx;">
  39. <view class="solid-bottom text-gray padding-lr-sm padding-tb-sm">选择省</view>
  40. <view class="solid-bottom padding-lr-sm padding-tb-sm" @click="checkArea(4,0)">全部</view>
  41. <block v-for="(item,index) in arealist.data" :key="index">
  42. <view class="solid-bottom padding-lr-sm padding-tb-sm" @click="checkArea(1,index)">
  43. {{item.title}}
  44. </view>
  45. </block>
  46. </scroll-view>
  47. </view>
  48. <view class="solids-right padding-bottom">
  49. <scroll-view scroll-y="true" style="height: 600rpx;">
  50. <view class="solid-bottom text-gray padding-lr-sm padding-tb-sm">选择市</view>
  51. <block v-for="(item,index) in arealist.cityarr" :key="index">
  52. <view class="solid-bottom padding-lr-sm padding-tb-sm" @click="checkArea(2,index)">
  53. {{item.title}}
  54. </view>
  55. </block>
  56. </scroll-view>
  57. </view>
  58. <view class="padding-bottom">
  59. <scroll-view scroll-y="true" style="height: 600rpx;">
  60. <view class="solid-bottom text-gray padding-lr-sm padding-tb-sm">选择区县</view>
  61. <block v-for="(item,index) in arealist.districtarr" :key="index">
  62. <view class="solid-bottom padding-lr-sm padding-tb-sm" @click="checkArea(3,index)">
  63. {{item.title}}
  64. </view>
  65. </block>
  66. </scroll-view>
  67. </view>
  68. </view>
  69. </view>
  70. </view>
  71. <view class="mainArea" :style="{height:mainHeight}">
  72. <view class="areaList">
  73. <scroll-view :style="{height:mainHeight}" class="areaScroll" scroll-y="true">
  74. <view class="areaCard" :class="areaItem == '' ? 'areaCardSel' : ''" @click="selArea('全部')">全部</view>
  75. <view class="areaCard" v-for="(item,index) in mainArea" :key="index"
  76. :class="areaItem == item ? 'areaCardSel' : ''" @click="selArea(item)">{{item}}</view>
  77. </scroll-view>
  78. </view>
  79. <view class="brokerList">
  80. <scroll-view :style="{height:mainHeight}" class="brokerScroll" scroll-y="true"
  81. @scrolltolower="brokerListLower">
  82. <view class="brokerCard" v-for="(item,index) in plist" :key="index">
  83. <view class="brokerCard-avatar">
  84. <image class="brokerCard-avatar-image"
  85. :src="item.muser.avatar ? item.muser.avatar : $getImageUrl('static/images/applet/dfhead.jpg')">
  86. </image>
  87. <view class="avatar-bg"
  88. :style="'background-image:url('+$getImageUrl('static/images/applet/bg/brokerIdentity.png')+');'">
  89. <view class="avatar-bg-title">金牌经纪人 {{item.title}}</view>
  90. <!-- <view class="avatar-bg-name"></view> -->
  91. </view>
  92. </view>
  93. <view class="brokerCard-infor">
  94. <view class="infor-header">
  95. <view :data-index="index" @tap="showModal">{{item.title}}</view>
  96. <image :data-telephone="item.mobile" @tap="makeTelephone" class="infor-header-icon"
  97. :src="$getImageUrl('static/images/applet/broker/contact.png')" mode="widthFix">
  98. </image>
  99. </view>
  100. <view class="infor-item" :data-index="index" @tap="showModal">
  101. <image class="infor-item-icon"
  102. :src="$getImageUrl('static/images/applet/broker/broker.png')" mode="widthFix">
  103. </image>
  104. <view class="infor-item-text">优秀经纪人</view>
  105. </view>
  106. <view class="infor-item" :data-index="index" @tap="showModal">
  107. <image class="infor-item-icon" :src="$getImageUrl('static/images/applet/comJobs/icon-pageView.png')"
  108. mode="widthFix">
  109. </image>
  110. <view class="infor-item-text">镇/村:{{item.town}} - {{item.village}}</view>
  111. </view>
  112. <view class="infor-item" :data-index="index" @tap="showModal">
  113. <image class="infor-item-icon"
  114. :src="$getImageUrl('static/images/applet/index/cardD.png')" mode="widthFix"></image>
  115. <view class="infor-item-text">服务区域:{{item.region}}</view>
  116. </view>
  117. </view>
  118. </view>
  119. <uni-load-more :status="pstatus"></uni-load-more>
  120. </scroll-view>
  121. </view>
  122. </view>
  123. <view class="filterbg" v-if="false">
  124. <view class="flex justify-between solids-bottom padding bg-white">
  125. <view class="text-bold">推荐</view>
  126. <view class="flex justify-end">
  127. <view class="cu-tag radius" data-filterbox="area" @tap="showFilter">{{arealist.title}}</view>
  128. </view>
  129. </view>
  130. </view>
  131. <view class="bg-white cu-list menu-avatar" v-if="false">
  132. <block v-for="(item,index) in plist" :key="index">
  133. <view class="cu-item" style="border-bottom: 0rpx !important; border-top: 0rpx !important;">
  134. <view class="cu-avatar round lg"
  135. :style="'background-image:url('+(item.muser.avatar ? item.muser.avatar : $getImageUrl('static/images/applet/dfhead.jpg'))+');'">
  136. </view>
  137. <view class="content" :data-index="index" @tap="showModal">
  138. <view class="text-cut text-bold">{{item.title}}</view>
  139. </view>
  140. <view class="action">
  141. <button class="cu-btn bg-blue cuIcon" :data-telephone="item.mobile" @tap="makeTelephone">
  142. <text class="cuIcon-dianhua"></text>
  143. </button>
  144. </view>
  145. </view>
  146. <view class="itembox" :data-index="index" @tap="showModal">
  147. <view class="itembox-til">服务区域:</view>
  148. <view class="itembox-con text-gray">{{item.province}} - {{item.city}} - {{item.district}}</view>
  149. </view>
  150. <view class="itembox" :data-index="index" @tap="showModal">
  151. <view class="itembox-til">镇/村:</view>
  152. <view class="itembox-con text-gray">{{item.town}} - {{item.village}}</view>
  153. </view>
  154. <view class="itembox solids-bottom" style="padding-bottom: 30rpx;" :data-index="index" @tap="showModal">
  155. <view class="itembox-til">区域:</view>
  156. <view class="itembox-con text-gray" style="height: 75rpx; overflow: hidden;">
  157. <text>{{item.region}}</text>
  158. </view>
  159. </view>
  160. <view class="itembox solids-bottom" style="padding-bottom: 30rpx;" :data-index="index" @tap="showModal">
  161. <view class="itembox-til">基本介绍:</view>
  162. <view class="itembox-con text-gray" style="height: 75rpx; overflow: hidden;">
  163. <text>{{item.details}}</text>
  164. </view>
  165. </view>
  166. </block>
  167. </view>
  168. <!-- <uni-load-more :status="pstatus"></uni-load-more> -->
  169. <view class="cu-modal bottom-modal" :class="modal.name=='detailsbox'?'show':''">
  170. <view class="cu-dialog">
  171. <view class="cu-bar bg-white">
  172. <view class="action text-green" @tap="hideModal">确定</view>
  173. <view class="action text-blue" @tap="hideModal">取消</view>
  174. </view>
  175. <view class="padding-tb">
  176. <scroll-view scroll-y="true" style="height: 800rpx;">
  177. <view class="itembox text-left">
  178. <view class="itemboxLeft">
  179. <view class="itembox-til text-right">姓名:</view>
  180. <view class="itembox-con text-gray">{{modal.brokerinfo.title}}</view>
  181. </view>
  182. </view>
  183. <view class="itembox text-left">
  184. <view class="itemboxLeft">
  185. <view class="itembox-til text-right">手机号:</view>
  186. <view class="itembox-con text-gray">{{modal.brokerinfo.mobile}}</view>
  187. </view>
  188. <view class="itembox-btn" :data-telephone="modal.brokerinfo.mobile" @tap="makeTelephone">拨打
  189. </view>
  190. </view>
  191. <view class="itembox text-left">
  192. <view class="itemboxLeft">
  193. <view class="itembox-til text-right">微信号:</view>
  194. <view class="itembox-con text-gray">{{modal.brokerinfo.weixin}}</view>
  195. </view>
  196. </view>
  197. <view class="itembox text-left">
  198. <view class="itemboxLeft">
  199. <view class="itembox-til text-right">QQ号:</view>
  200. <view class="itembox-con text-gray">{{modal.brokerinfo.qq}}</view>
  201. </view>
  202. </view>
  203. <view class="itembox text-left">
  204. <view class="itemboxLeft">
  205. <view class="itembox-til text-right">服务区域:</view>
  206. <view class="itembox-con text-gray">{{modal.brokerinfo.province}} -
  207. {{modal.brokerinfo.city}}
  208. </view>
  209. </view>
  210. </view>
  211. <view class="itembox text-left">
  212. <view class="itemboxLeft">
  213. <view class="itembox-til text-right">工作地点:</view>
  214. <view class="itembox-con text-gray">{{modal.brokerinfo.district}} -
  215. {{modal.brokerinfo.town}}-{{modal.brokerinfo.village}}
  216. </view>
  217. </view>
  218. <view class="itembox-btn" @tap="openMap">导航</view>
  219. </view>
  220. <view class="itembox text-left" style="padding-bottom: 30rpx;" :data-index="index"
  221. @tap="showModal">
  222. <view class="itemboxLeft">
  223. <view class="itembox-til text-right">基本介绍:</view>
  224. <view class="itembox-con text-gray">
  225. <text>{{modal.brokerinfo.details}}</text>
  226. </view>
  227. </view>
  228. </view>
  229. </scroll-view>
  230. </view>
  231. </view>
  232. </view>
  233. <view class="padding-sm"></view>
  234. <view class="padding-xl"></view>
  235. <view class="cu-bar tabbar bg-white foot">
  236. <view class="action text-gray" @tap="goNavPage('/pages/index/index')">
  237. <view class="cuIcon-cu-image">
  238. <image src="../../static/tabbar/index.png"></image>
  239. </view>
  240. 首页
  241. </view>
  242. <view class="action text-gray" @tap="goNavPage('/pages/comjobs/comjobs')">
  243. <view class="cuIcon-cu-image">
  244. <image src="../../static/tabbar/jobs.png"></image>
  245. </view>
  246. 招聘
  247. </view>
  248. <!-- #ifndef MP-WEIXIN -->
  249. <view class="action text-gray videoimg" @tap="goNavPage('/pages/video/videolist')">
  250. <view class="cuIcon-cu-image">
  251. <image src="../../static/tabbar/video.png"></image>
  252. </view>
  253. 微工作
  254. </view>
  255. <!-- #endif -->
  256. <view class="action text-red" @tap="goNavPage('/pages/broker/brokerlist')">
  257. <view class="cuIcon-cu-image">
  258. <image src="../../static/tabbar/brokerSelected.png"></image>
  259. </view>
  260. 经纪人
  261. </view>
  262. <view class="action text-gray" @tap="goNavPage('/pages/my/my')">
  263. <view class="cuIcon-cu-image">
  264. <image src="../../static/tabbar/my.png"></image>
  265. </view>
  266. 我的
  267. </view>
  268. </view>
  269. </view>
  270. </template>
  271. <script>
  272. import uniLoadMore from "@/components/uni-load-more/uni-load-more.vue";
  273. var _this;
  274. export default {
  275. components: {
  276. uniLoadMore
  277. },
  278. data() {
  279. return {
  280. filterbox: null,
  281. arealist: {
  282. title: "区域",
  283. value: "",
  284. cityarr: [],
  285. districtarr: [],
  286. data: []
  287. },
  288. pstatus: 'more',
  289. ppage: 1,
  290. psize: 20,
  291. plist: [],
  292. searchval: "",
  293. modal: {
  294. name: null,
  295. brokerinfo: {}
  296. },
  297. transform: "rotate(180deg)",
  298. transition: "all .3s",
  299. mainArea: [],
  300. areaItem: "",
  301. id: 0, // 使用 marker点击事件 需要填写id
  302. title: 'map',
  303. latitude: 0.000000,
  304. longitude: 0.000000,
  305. covers: [],
  306. mainHeight: 0,
  307. bottomHeight: 0
  308. };
  309. },
  310. onLoad: function() {
  311. _this = this;
  312. _this.arealist.data = require('@/common/area.json');
  313. _this.getMore();
  314. _this.getArea();
  315. uni.getLocation({
  316. success: function(res) {
  317. console.log(res);
  318. console.log('纬度:' + res.latitude);
  319. console.log('经度:' + res.longitude);
  320. _this.latitude = res.latitude;
  321. _this.longitude = res.longitude;
  322. },
  323. });
  324. },
  325. onPullDownRefresh: function() {
  326. _this.pageRefresh();
  327. },
  328. onReachBottom: function() {
  329. // if (_this.pstatus !== 'more') {
  330. // return;
  331. // }
  332. // _this.getMore();
  333. },
  334. onShareAppMessage: function(res) {
  335. return {
  336. title: "经纪人列表",
  337. path: "/pages/broker/brokerlist"
  338. }
  339. },
  340. onReady: function() {
  341. var _this = this;
  342. uni.getSystemInfo({
  343. success: (resu) => {
  344. const query = uni.createSelectorQuery()
  345. query.select('.mainArea').boundingClientRect()
  346. query.exec(function(res) {
  347. uni.createSelectorQuery().selectAll('.tabbar').boundingClientRect(data => {
  348. _this.mainHeight = resu.windowHeight - res[0].top - data[0]
  349. .height + 'px';
  350. console.log('打印页面的剩余高度', _this.mainHeight);
  351. }).exec()
  352. })
  353. },
  354. fail: (res) => {}
  355. })
  356. },
  357. methods: {
  358. openMap(e) {
  359. uni.openLocation({
  360. longitude: Number(_this.modal.brokerinfo.longitude),
  361. latitude: Number(_this.modal.brokerinfo.latitude),
  362. name: _this.modal.brokerinfo.village,
  363. address: _this.modal.brokerinfo.province + _this.modal.brokerinfo.city + _this.modal.brokerinfo
  364. .town + _this.modal.brokerinfo.village,
  365. success: function(res) {
  366. console.log('打开系统位置地图成功')
  367. },
  368. fail: function(error) {
  369. console.log(error)
  370. }
  371. })
  372. },
  373. brokerListLower() {
  374. if (_this.pstatus !== 'more') {
  375. return;
  376. }
  377. _this.getMore();
  378. },
  379. markertap(e) {
  380. console.log("点击标记点", e.detail.markerId)
  381. _this.modal.name = "detailsbox";
  382. _this.modal.brokerinfo = _this.plist[e.detail.markerId];
  383. },
  384. selArea(item) {
  385. if (item == '全部') {
  386. _this.areaItem = ''
  387. } else {
  388. _this.areaItem = item;
  389. }
  390. _this.pageRefresh();
  391. },
  392. getArea() {
  393. _this.$req.ajax({
  394. path: "index/getStreet"
  395. }).then((data) => {
  396. _this.mainArea = data;
  397. console.log("列表", data, _this.mainArea)
  398. }).catch((err) => {
  399. uni.showModal({
  400. title: '信息提示',
  401. content: err,
  402. showCancel: false
  403. });
  404. });
  405. },
  406. showFilter: function(e) {
  407. var nowfilterbox = e.currentTarget.dataset.filterbox;
  408. if (_this.filterbox == nowfilterbox) {
  409. _this.filterbox = null;
  410. } else {
  411. _this.filterbox = nowfilterbox;
  412. }
  413. uni.pageScrollTo({
  414. scrollTop: 0,
  415. duration: 300
  416. });
  417. },
  418. checkArea: function(level, index) {
  419. if (level == 1) {
  420. _this.arealist.cityarr = _this.arealist.data[index].children;
  421. _this.arealist.districtarr = [];
  422. } else if (level == 2) {
  423. _this.arealist.districtarr = _this.arealist.cityarr[index].children;
  424. } else if (level == 3) {
  425. _this.arealist.title = _this.arealist.districtarr[index].title;
  426. _this.arealist.value = _this.arealist.districtarr[index].title;
  427. _this.filterbox = null;
  428. _this.pageRefresh();
  429. } else if (level == 4) {
  430. _this.arealist.cityarr = [];
  431. _this.arealist.districtarr = [];
  432. _this.arealist.title = "全部";
  433. _this.arealist.value = "";
  434. _this.filterbox = null;
  435. _this.pageRefresh();
  436. }
  437. },
  438. // 搜索
  439. bindInput: function(e) {
  440. _this.searchval = e.detail.value;
  441. },
  442. btnSearch: function() {
  443. if (_this.searchval == "") {
  444. uni.showModal({
  445. title: '信息提示',
  446. content: "请输入要搜索的关键字...",
  447. showCancel: false
  448. });
  449. return false;
  450. }
  451. _this.pageRefresh();
  452. },
  453. pageRefresh: function() {
  454. _this.pstatus = 'more';
  455. _this.ppage = 1;
  456. _this.plist = [];
  457. _this.getMore();
  458. },
  459. getMore: function() {
  460. _this.$req.ajax({
  461. path: "broker/getListBroker",
  462. data: {
  463. ppage: _this.ppage,
  464. psize: _this.psize,
  465. searchval: _this.searchval,
  466. // district: _this.arealist.value
  467. town: _this.areaItem
  468. }
  469. }).then((data) => {
  470. _this.pstatus = data.pstatus;
  471. _this.plist = _this.plist.concat(data.plist);
  472. _this.ppage += 1;
  473. _this.getAreaList();
  474. uni.stopPullDownRefresh();
  475. console.log("列表", _this.plist)
  476. }).catch((err) => {
  477. uni.showModal({
  478. title: '信息提示',
  479. content: err,
  480. showCancel: false
  481. });
  482. });
  483. },
  484. getAreaList() {
  485. _this.covers = [];
  486. for (var i in _this.plist) {
  487. let EmptyList = {};
  488. EmptyList.id = parseInt(i)
  489. EmptyList.latitude = _this.plist[i].latitude
  490. EmptyList.longitude = _this.plist[i].longitude
  491. EmptyList.iconPath = _this.plist[i].muser.avatar ? _this.plist[i].muser.avatar : _this.$getImageUrl(
  492. 'static/images/applet/dfhead.jpg')
  493. EmptyList.title = _this.plist[i].title
  494. // EmptyList.label = _this.plist[i].title
  495. EmptyList.width = 30
  496. EmptyList.height = 30
  497. _this.covers.push(EmptyList);
  498. }
  499. console.log("查看经纬度", _this.covers)
  500. },
  501. showModal: function(e) {
  502. console.log("查看ID", e)
  503. var index = e.currentTarget.dataset.index;
  504. _this.modal.name = "detailsbox";
  505. _this.modal.brokerinfo = _this.plist[index];
  506. },
  507. hideModal: function(e) {
  508. _this.modal.name = null;
  509. },
  510. // 咨询电话
  511. makeTelephone: function(e) {
  512. var telephone = e.currentTarget.dataset.telephone;
  513. uni.makePhoneCall({
  514. phoneNumber: telephone
  515. });
  516. },
  517. goNavPage: function(pageurl) {
  518. uni.redirectTo({
  519. url: pageurl
  520. });
  521. },
  522. goDetail: function(agentid) {
  523. uni.navigateTo({
  524. url: '/pages/agent/detail?agentid=' + agentid
  525. });
  526. }
  527. }
  528. }
  529. </script>
  530. <style lang="scss">
  531. .echo-agent-list .echo-item .echo-tilpic {
  532. width: 120rpx;
  533. height: 120rpx;
  534. }
  535. .echo-agent-list .echo-item .echo-content {
  536. width: 550rpx;
  537. }
  538. .cu-item:after {
  539. border: 0rpx !important;
  540. }
  541. .itembox {
  542. padding: 10rpx 30rpx;
  543. width: 100%;
  544. display: flex;
  545. // justify-content: start;
  546. align-items: center;
  547. justify-content: space-between;
  548. }
  549. .itemboxLeft {
  550. display: flex;
  551. align-items: center;
  552. }
  553. .itembox-btn {
  554. padding: 0 20rpx;
  555. height: 50rpx;
  556. border-radius: 25rpx;
  557. border: 1rpx solid #00aa00;
  558. color: #00aa00;
  559. font-size: 25rpx;
  560. display: flex;
  561. align-items: center;
  562. justify-content: center;
  563. }
  564. .itembox-til {
  565. width: 160rpx;
  566. }
  567. .itembox-con {
  568. width: 430rpx;
  569. }
  570. .menu {
  571. width: 100%;
  572. background-color: #FFFFFF;
  573. position: relative;
  574. .menu-top {
  575. display: flex;
  576. padding: 25rpx 20rpx;
  577. .menu-top-item {
  578. margin-right: 50rpx;
  579. display: flex;
  580. align-items: center;
  581. font-size: 28rpx;
  582. .item-icon {
  583. margin-left: 10rpx;
  584. // width: 20rpx;
  585. // height: 20rpx;
  586. // display: inline-block;
  587. // background-image: url(@/static/images/goods/up.png);
  588. // background-size: cover;
  589. // background-repeat: no-repeat;
  590. // background-position: center;
  591. //方向向下的箭头图片,实际就是实现了点击下箭头后旋转变成上箭头
  592. }
  593. }
  594. }
  595. }
  596. .mainArea {
  597. width: 100%;
  598. display: flex;
  599. justify-content: space-between;
  600. }
  601. .areaList {
  602. flex: 1;
  603. background-color: #FFFFFF;
  604. .areaScroll {
  605. padding: 30rpx 20rpx 30rpx;
  606. .areaCard {
  607. margin-bottom: 20rpx;
  608. height: 50rpx;
  609. line-height: 50rpx;
  610. font-size: 25rpx;
  611. font-weight: 600;
  612. text-align: center;
  613. border-radius: 25rpx;
  614. }
  615. .areaCardSel {
  616. margin-bottom: 20rpx;
  617. height: 50rpx;
  618. line-height: 50rpx;
  619. font-size: 25rpx;
  620. font-weight: 600;
  621. text-align: center;
  622. border-radius: 25rpx;
  623. background-color: #cd0000;
  624. color: #FFFFFF;
  625. }
  626. }
  627. }
  628. .brokerList {
  629. flex: 3;
  630. .brokerScroll {
  631. padding: 17rpx 17rpx 0;
  632. .brokerCard {
  633. margin-bottom: 15rpx;
  634. padding: 15rpx 15rpx;
  635. display: flex;
  636. background-color: #FFFFFF;
  637. border-radius: 12rpx;
  638. .brokerCard-avatar {
  639. width: 170rpx;
  640. height: 170rpx;
  641. position: relative;
  642. display: flex;
  643. justify-content: center;
  644. .brokerCard-avatar-image {
  645. width: 170rpx;
  646. height: 170rpx;
  647. }
  648. .avatar-bg {
  649. width: 160rpx;
  650. height: 40rpx;
  651. position: absolute;
  652. bottom: 10rpx;
  653. background-size: cover;
  654. background-position: 0 1rpx;
  655. font-size: 13rpx;
  656. color: #F9E2AC;
  657. display: flex;
  658. align-items: center;
  659. .avatar-bg-title {
  660. margin-left: 40rpx;
  661. line-height: 40rpx;
  662. overflow: hidden;
  663. text-overflow: ellipsis;
  664. -webkit-line-clamp: 1;
  665. display: -webkit-box;
  666. -webkit-box-orient: vertical;
  667. }
  668. // .avatar-bg-name {
  669. // margin-left: 5rpx;
  670. // line-height: 30rpx;
  671. // }
  672. }
  673. }
  674. .brokerCard-infor {
  675. flex: 1;
  676. margin-left: 28rpx;
  677. height: 170rpx;
  678. display: flex;
  679. flex-direction: column;
  680. justify-content: space-between;
  681. .infor-header {
  682. font-size: 25rpx;
  683. font-weight: 600;
  684. color: #383838;
  685. display: flex;
  686. align-items: center;
  687. justify-content: space-between;
  688. .infor-header-icon {
  689. width: 100rpx;
  690. height: 20rpx;
  691. }
  692. }
  693. .infor-item {
  694. font-size: 20rpx;
  695. font-weight: 400;
  696. color: #747474;
  697. display: flex;
  698. align-items: center;
  699. .infor-item-icon {
  700. margin-right: 20rpx;
  701. width: 22rpx;
  702. height: 22rpx;
  703. }
  704. .infor-item-text {
  705. flex: 1;
  706. overflow: hidden;
  707. text-overflow: ellipsis;
  708. -webkit-line-clamp: 1;
  709. display: -webkit-box;
  710. -webkit-box-orient: vertical;
  711. }
  712. }
  713. }
  714. }
  715. }
  716. }
  717. .detailBox {
  718. padding: 0 30rpx;
  719. display: flex;
  720. align-items: center;
  721. justify-content: space-between;
  722. .detailBox-item {
  723. .detailBox-item-button {
  724. width: 100rpx;
  725. height: 30rpx;
  726. background-color: #cd0000;
  727. }
  728. }
  729. }
  730. </style>