model_1.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729
  1. <template>
  2. <view class="mone">
  3. <view class="m-top">
  4. <view class="top-user flex">
  5. <image :src="cardInfo.avatar" mode="" class="user-logo"></image>
  6. </view>
  7. <view class="user-name">
  8. {{cardInfo.name || '暂无'}}
  9. </view>
  10. <view class="u-zy">
  11. <view class="">
  12. 职业:{{cardInfo.user_work_type_title || '暂无'}}
  13. </view>
  14. </view>
  15. <!-- <button type="default" class="top-btn fx-btn" v-if="isShare" open-type="share">
  16. <image :src="baseURL + '/resource/model/model1/fx.png'" mode=""></image>
  17. </button> -->
  18. <view class="top-btn visit mvisit padding-r-10" v-if="isLook==1||isLook==2">
  19. 浏览:{{shareNumber}}
  20. </view>
  21. <image :src="baseURL + '/resource/model/model1/hua7.png'" mode="" class="top-bg"></image>
  22. </view>
  23. <view class="m-body gr">
  24. <!-- 个人信息 -->
  25. <view class="hua2">
  26. <view class="m-card">
  27. <image :src="baseURL + '/resource/model/model1/card-bg.png'" mode="" class="card-bg"></image>
  28. <view class=" flex">
  29. <view class="card-tit flex" style="flex-shrink: 0;">
  30. <image :src="baseURL + '/resource/model/model1/m1.png'" mode="" class="tit-logo"></image>个人信息
  31. </view>
  32. <view class="u-bh flex">
  33. <image :src="baseURL + '/resource/model/model1/bh.png'" mode=""></image>编号:{{cardInfo.no|| "未申请"}}
  34. </view>
  35. </view>
  36. <view class="card-content">
  37. <view class="user-info flex">
  38. <view class="info-item-b">
  39. 年<text class="qianger"></text>龄: {{cardInfo.age|| '暂无'}}
  40. </view>
  41. <view class="info-item-b">
  42. 属<text class="qianger"></text>相: {{cardInfo.twelve|| '暂无'}}
  43. </view>
  44. <view class="info-item-b">
  45. 从<text class="qianger"></text>业: {{(cardInfo.work_year + '年')|| '暂无'}}
  46. </view>
  47. <view class="info-item-b">
  48. 身<text class="qianger"></text>高: {{cardInfo.height*1+'厘米' || '暂无'}}
  49. </view>
  50. <!-- <view class="info-item-b">
  51. 职<text class="qianger"></text>业: {{cardInfo.user_work_type_title || '暂无'}}
  52. </view> -->
  53. <view class="info-item-b">
  54. 籍<text class="qianger"></text>贯: {{cardInfo.ancestral_place || '暂无'}}
  55. </view>
  56. <view class="info-item-b">
  57. 体<text class="qianger"></text>重: {{cardInfo.weight*1+'kg' || '暂无'}}
  58. </view>
  59. <view class="info-item-b">
  60. 学<text class="qianger"></text>历: {{cardInfo.education || '暂无'}}
  61. </view>
  62. <view class="info-item-b">
  63. 服务次数: {{cardInfo.service_count || '0'}}
  64. </view>
  65. <view class="info-item-q flex" style="align-items: flex-start;">
  66. <text style="flex-shrink: 0;">服务地区:</text>
  67. <view class="fwdz flex" v-if="cardInfo.is_china == 1">
  68. <view v-for="(fwitem,fwindex) in cardInfo.service_area_all">
  69. {{fwitem}}{{fwindex ==(cardInfo.service_area_all.length -1) ?'': '、' }}
  70. </view>
  71. </view>
  72. <view class="fwdz flex" v-if="cardInfo.is_china == 0">
  73. <view >
  74. 海外
  75. </view>
  76. </view>
  77. <view class="fwdz flex" v-if="cardInfo.is_china == 2">
  78. <view >
  79. 全国
  80. </view>
  81. </view>
  82. </view>
  83. <!-- <view class="info-item-q flex" style="align-items: flex-start;">
  84. <text style="flex-shrink: 0;">服务价格: </text>
  85. <view class="gzt">
  86. <image :src="baseURL + '/resource/model/model1/tiao.png'" mode=""></image>
  87. <view class="gzt-price">
  88. <text>{{cardInfo.service_min_price}}</text>元/{{ cardInfo.service_time_type_title && cardInfo.service_time_type_title.replace('每','')}}
  89. </view>
  90. <view class=" gzt-price-b">
  91. <text>{{cardInfo.service_max_price}}</text>元/{{cardInfo.service_time_type_title && cardInfo.service_time_type_title.replace('每','')}}
  92. </view>
  93. </view>
  94. <image :src="baseURL + '/resource/model/model1/yrz.png'" mode="" class="rz"
  95. v-if="cardInfo.is_type_audit == 1"></image>
  96. </view> -->
  97. </view>
  98. </view>
  99. <view class="" style="height: 80rpx;"></view>
  100. </view>
  101. </view>
  102. <!-- 自我评价 -->
  103. <view class="hua4">
  104. <view class="hua3">
  105. <view class="m-card">
  106. <image :src="baseURL + '/resource/model/model1/card-bg.png'" mode="" class="card-bg"></image>
  107. <view class="card-tit flex">
  108. <image :src="baseURL + '/resource/model/model1/m2.png'" mode="" class="tit-logo"></image>自我展示
  109. </view>
  110. <view class="card-content">
  111. <rich-text :nodes="cardInfo.service_intro_content"></rich-text>
  112. </view>
  113. <view class="img-list flex" style="padding-top: 0;">
  114. <image @click="$emit('openImage',siiitem)" :src="siiitem" mode="" v-for="siiitem in cardInfo.service_intro_imgs"></image>
  115. </view>
  116. </view>
  117. </view>
  118. </view>
  119. <!-- 我的证书 -->
  120. <view class="hua5" v-if="cardInfo.service_audit_imgs && cardInfo.service_audit_imgs.length > 0">
  121. <view class="m-card">
  122. <image :src="baseURL + '/resource/model/model1/card-bg.png'" mode="" class="card-bg"></image>
  123. <view class="card-tit flex">
  124. <image :src="baseURL + '/resource/model/model1/m3.png'" mode="" class="tit-logo"></image>我的证书
  125. </view>
  126. <view class="img-list flex">
  127. <image @click="$emit('openImage',saiitem)" :src="saiitem" mode="" v-for="saiitem in cardInfo.service_audit_imgs"></image>
  128. </view>
  129. </view>
  130. </view>
  131. <!-- 服务内容 -->
  132. <view class="hua6">
  133. <view class="m-card">
  134. <image :src="baseURL + '/resource/model/model1/card-bg.png'" mode="" class="card-bg"></image>
  135. <view class="card-tit flex">
  136. <image :src="baseURL + '/resource/model/model1/m4.png'" mode="" class="tit-logo"></image>服务内容
  137. </view>
  138. <view class="card-content">
  139. <view class="fw" v-for="spaitem in cardInfo.service_project_ar">
  140. <view class="fw-tit">
  141. <text class="yg"></text>{{spaitem.title}}
  142. </view>
  143. <view class="fw-content">
  144. {{spaitem.content}}
  145. </view>
  146. </view>
  147. </view>
  148. </view>
  149. </view>
  150. <!-- 服务照片 -->
  151. <view class="m-card" v-if="cardInfo.service_imgs && cardInfo.service_imgs.length > 0">
  152. <image :src="baseURL + '/resource/model/model1/card-bg.png'" mode="" class="card-bg"></image>
  153. <view class="card-tit flex">
  154. <image :src="baseURL + '/resource/model/model1/m5.png'" mode="" class="tit-logo"></image>服务照片
  155. </view>
  156. <view class="img-list flex">
  157. <image @click="$emit('openImage',siitem)" :src="siitem" mode="" v-for="siitem in cardInfo.service_imgs"></image>
  158. </view>
  159. </view>
  160. <!-- 底部图片 -->
  161. <image :src="baseURL + '/resource/model/model1/m-btm.png'" mode="" class="m-btm"></image>
  162. </view>
  163. </view>
  164. </template>
  165. <script>
  166. import {
  167. mapState,
  168. } from 'vuex';
  169. export default {
  170. props: {
  171. // 浏览数量
  172. shareNumber: {
  173. type: Number,
  174. default:0
  175. },
  176. // 是否显示默认数据
  177. isDefault: {
  178. type: Boolean,
  179. default: true
  180. },
  181. isShare: {
  182. type: Boolean,
  183. default: false
  184. },
  185. //1为模板2为用户
  186. isLook: {
  187. type: Number,
  188. default: 0
  189. },
  190. templateDetail: {
  191. type: Object,
  192. default: () => {
  193. return {}
  194. }
  195. },
  196. },
  197. data() {
  198. return {
  199. defaults: {
  200. user_work_type_title: '母婴护理师',
  201. name: '詹继红',
  202. avatar: 'https://api.myjie.cn/resource/user/user1/zjh.png',
  203. age: '49',
  204. twelve: '牛',
  205. work_year: '10',
  206. constellation: '巨蟹座',
  207. ancestral_place: '湖北',
  208. minority: '汉族',
  209. education: '大学',
  210. service_area_all: ['上海市'],
  211. service_min_price: 16800,
  212. service_max_price: 19800,
  213. service_time_type_title: '每月',
  214. service_intro_content: '高级育婴师证|高级催乳师证|早产儿护理师母婴护理证|金牌月嫂证|产后恢复师证|公共营养师证|月子药膳调理师证|国际宝宝睡眠咨询师证|普通话二级甲等|中央广播电视大学学历|学前教育专业,深耕幼教十年,技能全面,性格活泼,有亲和力,做事干净利落,有很强的责任心。对宝宝有爱心,体贴新手妈妈。专业技能熟练。应急能力强。让家人放心、产妇舒心的坐好月子。',
  215. service_intro_imgs: ['https://api.myjie.cn/resource/user/user1/pj1.png',
  216. 'https://api.myjie.cn/resource/user/user1/pj2.png',
  217. 'https://api.myjie.cn/resource/user/user1/pj3.png',
  218. 'https://api.myjie.cn/resource/user/user1/pj4.png'
  219. ],
  220. service_audit_imgs: ['https://api.myjie.cn/resource/user/user1/zs1.png',
  221. 'https://api.myjie.cn/resource/user/user1/zs2.png',
  222. 'https://api.myjie.cn/resource/user/user1/zs3.png',
  223. 'https://api.myjie.cn/resource/user/user1/zs4.png'
  224. ],
  225. service_project_ar: [{
  226. title: '婴幼儿睡眠管理',
  227. content: '如:日夜颠倒、睡眠不规律、乳头混淆、奶睡、抱睡等问题,帮助宝爸宝妈规律孩子作息、解决婴幼儿喂养困扰,培养良好的生活、学习习惯。'
  228. }, {
  229. title: '特色月子餐',
  230. content: '套用客户的一句话“养眼、养心更养胃”!家常菜、面食、点心、甜品、靓汤、五谷杂粮粥、婴幼儿花样辅食等。'
  231. },
  232. {
  233. title: '早产儿特殊护理',
  234. content: '包括早产儿基础护理、安全喂养方法、追赶性生长、消化与免疫系统等技能,根据宝宝具体情况给予早产儿家长的科学入户指导。'
  235. },
  236. {
  237. title: '0-6岁早期教育',
  238. content: '在婴孩最敏感最能接受的时期进行事半功倍的适时教育,针对不同年龄段的孩子,开发婴幼儿潜能的教育,为孩子多元化和健康人格打下良好基础。'
  239. }
  240. ],
  241. service_imgs: [
  242. 'https://api.myjie.cn/resource/user/user1/fw1.png',
  243. 'https://api.myjie.cn/resource/user/user1/fw2.png',
  244. 'https://api.myjie.cn/resource/user/user1/fw3.png',
  245. 'https://api.myjie.cn/resource/user/user1/fw4.png'
  246. ],
  247. is_type_audit: 1,
  248. service_count: 0,
  249. is_china: 1
  250. }
  251. }
  252. },
  253. computed: {
  254. ...mapState(['baseURL']),
  255. cardInfo() {
  256. if (this.isDefault) {
  257. return this.defaults
  258. } else {
  259. return this.templateDetail
  260. }
  261. }
  262. },
  263. }
  264. </script>
  265. <style lang="scss" scoped>
  266. .mone {
  267. background-color: #f8e1df;
  268. padding-bottom: 30rpx;
  269. .m-top {
  270. width: 750rpx;
  271. position: relative;
  272. width: 750rpx;
  273. height: 450rpx;
  274. .top-bg {
  275. position: absolute;
  276. width: 207rpx;
  277. height: 123rpx;
  278. bottom: 11rpx;
  279. left:32rpx;
  280. }
  281. .readme {
  282. width: 534rpx;
  283. height: 83rpx;
  284. position: absolute;
  285. top: 172rpx;
  286. left: 0;
  287. right: 0;
  288. margin: auto;
  289. }
  290. .u-zy {
  291. position: absolute;
  292. top: 375rpx;
  293. left: 0;
  294. right: 0;
  295. margin: auto;
  296. display: flex;
  297. justify-content: center;
  298. view {
  299. display: inline-block;
  300. padding: 8rpx 8rpx 8rpx 16rpx;
  301. border: 1px solid #F46C85;
  302. border-radius: 10rpx;
  303. font-size: 26rpx;
  304. font-weight: 500;
  305. color: #F46C85;
  306. }
  307. }
  308. .top-user {
  309. width: 272rpx;
  310. height: 272rpx;
  311. background: #FEFEFE;
  312. box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(50, 50, 52, 0.06);
  313. border-radius: 50%;
  314. position: absolute;
  315. left: 0;
  316. right: 0;
  317. top: 30rpx;
  318. justify-content: center;
  319. align-items: center;
  320. margin: auto;
  321. .user-logo {
  322. width: 250rpx;
  323. height: 250rpx;
  324. border-radius: 50%;
  325. background-color: #fff;
  326. }
  327. .gp {
  328. width: 133rpx;
  329. height: 38rpx;
  330. position: absolute;
  331. bottom: 0;
  332. left: 0;
  333. right: 0;
  334. margin: auto;
  335. }
  336. }
  337. .user-name {
  338. width: 750rpx;
  339. font-size: 38rpx;
  340. font-weight: bold;
  341. color: #000000;
  342. text-align: center;
  343. position: absolute;
  344. top: 318rpx;
  345. }
  346. .fx-btn {
  347. padding: 0;
  348. &::after {
  349. border: none;
  350. }
  351. border-radius: 24rpx 0 0 24rpx;
  352. image {
  353. width: 150rpx;
  354. height: 48rpx;
  355. display: block;
  356. }
  357. }
  358. .top-btn {
  359. height: 48rpx;
  360. position: absolute;
  361. right: 0;
  362. top: 70rpx;
  363. line-height: 48rpx;
  364. font-size: 24rpx;
  365. }
  366. .visit {
  367. border-radius: 24rpx 0 0 24rpx;
  368. top: 130rpx;
  369. border: 1px solid #f65486;
  370. color: #f65486;
  371. padding-left: 24rpx;
  372. }
  373. .mvisit {
  374. top: 70rpx;
  375. }
  376. }
  377. }
  378. .m-body {
  379. width: 705rpx;
  380. margin: auto;
  381. margin-top: 20rpx;
  382. background-color: #fff;
  383. border-left: 8rpx solid #efa0ab;
  384. border-right: 8rpx solid #efa0ab;
  385. padding: 45rpx 0;
  386. }
  387. .gr {
  388. position: relative;
  389. &::before {
  390. content: '';
  391. position: absolute;
  392. // left: 75px;
  393. right: 0;
  394. top: -30rpx;
  395. width: 120px;
  396. height: 174px;
  397. background: url($base-url + '/resource/model/model1/hua1.png') no-repeat;
  398. background-size: 100% 100%;
  399. }
  400. }
  401. .m-card {
  402. width: 640rpx;
  403. background: #fcf4f1;
  404. border-radius: 20rpx;
  405. position: relative;
  406. // min-height: 270rpx;
  407. margin: 0 auto 46rpx;
  408. .card-tit {
  409. width: 219rpx;
  410. height: 57rpx;
  411. background: #F46C85;
  412. border-radius: 20rpx 28rpx 29rpx 0rpx;
  413. justify-content: flex-start;
  414. align-items: center;
  415. padding: 0 20rpx;
  416. font-size: 32rpx;
  417. font-weight: bold;
  418. color: #FFFFFF;
  419. .tit-logo {
  420. width: 32rpx;
  421. height: 32rpx;
  422. margin-right: 18rpx;
  423. }
  424. }
  425. .card-bg {
  426. width: 100%;
  427. height: 270rpx;
  428. position: absolute;
  429. bottom: 0rpx;
  430. }
  431. .card-content {
  432. padding: 25rpx 35rpx;
  433. font-size: 26rpx;
  434. font-weight: 500;
  435. color: #2C2E35;
  436. position: relative;
  437. }
  438. .img-list {
  439. justify-content: space-between;
  440. flex-wrap: wrap;
  441. margin: auto;
  442. padding: 30rpx 30rpx 0;
  443. position: relative;
  444. image {
  445. width: 270rpx;
  446. height: 270rpx;
  447. background-color: #fff;
  448. margin-bottom: 30rpx;
  449. box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.6);
  450. }
  451. }
  452. .fw {
  453. font-size: 26rpx;
  454. font-weight: 500;
  455. color: #2C2E35;
  456. padding: 10rpx 0;
  457. .fw-tit {
  458. color: #F46C85;
  459. display: flex;
  460. align-items: center;
  461. .yg {
  462. background-color: #F46C85;
  463. display: inline-block;
  464. width: 10rpx;
  465. height: 10rpx;
  466. border-radius: 50%;
  467. margin-right: 10rpx;
  468. }
  469. }
  470. .fw-content {
  471. padding-top: 10rpx;
  472. padding-left: 18rpx;
  473. text-align: justify;
  474. word-wrap: break-word;
  475. white-space: pre-line;
  476. }
  477. }
  478. .user-info {
  479. flex-wrap: wrap;
  480. font-size: 26rpx;
  481. font-weight: 500;
  482. color: #000000;
  483. position: relative;
  484. .info-item-b,
  485. .info-item-q {
  486. padding: 10rpx 0;
  487. color: #000000;
  488. position: relative;
  489. padding-left: 20rpx;
  490. &::before {
  491. display: inline-block;
  492. content: '';
  493. width: 10rpx;
  494. height: 10rpx;
  495. border-radius: 50%;
  496. background-color: #F46C85;
  497. position: absolute;
  498. top: 22rpx;
  499. left: 0;
  500. }
  501. .qianger {
  502. width: 2em;
  503. display: inline-block;
  504. }
  505. .laner {
  506. width: 0.5em;
  507. display: inline-block;
  508. }
  509. }
  510. .info-item-b {
  511. width: 50%;
  512. }
  513. .info-item-q {
  514. width: 100%;
  515. display: flex;
  516. align-items: flex-start;
  517. justify-content: start;
  518. .fwdz {
  519. flex-direction: column;
  520. align-items: flex-start;
  521. }
  522. .gzt {
  523. width: 312rpx;
  524. height: 24rpx;
  525. padding-top: 10rpx;
  526. position: relative;
  527. image {
  528. width: 312rpx;
  529. height: 24rpx;
  530. position: relative;
  531. }
  532. .gzt-price,
  533. .gzt-price-b {
  534. width: 200rpx;
  535. text-align: center;
  536. position: absolute;
  537. padding-top: 20rpx;
  538. &::after {
  539. content: '';
  540. width: 0px;
  541. height: 0rpx;
  542. // background: #FEB8C6;
  543. border: 14rpx solid;
  544. border-color: transparent transparent #FEB8C6;
  545. // border-top:transparent;
  546. // border-left: transparent;
  547. // border-right: transparent;
  548. position: absolute;
  549. top: -14rpx;
  550. left: 0;
  551. right: 0;
  552. margin: auto;
  553. }
  554. text {
  555. color: #F46C85;
  556. }
  557. }
  558. .gzt-price {
  559. left: -100rpx;
  560. }
  561. .gzt-price-b {
  562. right: -100rpx;
  563. }
  564. }
  565. .rz {
  566. margin-top: 10rpx;
  567. margin-left: 10rpx;
  568. width: 87rpx;
  569. height: 26rpx;
  570. }
  571. }
  572. }
  573. }
  574. .m-btm {
  575. width: 660rpx;
  576. height: 384rpx;
  577. }
  578. .hua2 {
  579. position: relative;
  580. &::before {
  581. content: '';
  582. width: 199rpx;
  583. height: 298rpx;
  584. background: url($base-url + '/resource/model/model1/hua2.png') no-repeat;
  585. position: absolute;
  586. bottom: -100rpx;
  587. right: 0;
  588. background-size: 100% 100%;
  589. }
  590. }
  591. .hua3 {
  592. position: relative;
  593. &::before {
  594. content: '';
  595. width: 192rpx;
  596. height: 223rpx;
  597. background: url($base-url + '/resource/model/model1/hua3.png') no-repeat;
  598. position: absolute;
  599. top: 0;
  600. bottom: 0;
  601. left: 0;
  602. margin: auto;
  603. background-size: 100% 100%;
  604. }
  605. }
  606. .hua4 {
  607. position: relative;
  608. &::before {
  609. content: '';
  610. width: 128rpx;
  611. height: 145rpx;
  612. background: url($base-url + '/resource/model/model1/hua4.png') no-repeat;
  613. position: absolute;
  614. bottom: -70rpx;
  615. right: 0;
  616. background-size: 100% 100%;
  617. }
  618. }
  619. .hua5 {
  620. position: relative;
  621. &::before {
  622. content: '';
  623. width: 199rpx;
  624. height: 298rpx;
  625. background: url($base-url + '/resource/model/model1/hua2.png') no-repeat;
  626. position: absolute;
  627. bottom: -100rpx;
  628. left: 0;
  629. background-size: 100% 100%;
  630. transform: rotateY(180deg);
  631. }
  632. }
  633. .hua6 {
  634. position: relative;
  635. &::before {
  636. content: '';
  637. width: 192rpx;
  638. height: 223rpx;
  639. background: url($base-url + '/resource/model/model1/hua3.png') no-repeat;
  640. position: absolute;
  641. bottom: -110rpx;
  642. right: 0;
  643. background-size: 100% 100%;
  644. transform: rotateY(180deg);
  645. }
  646. }
  647. .u-bh {
  648. justify-content: flex-start;
  649. padding-right: 10rpx;
  650. image {
  651. width: 26rpx;
  652. height: 26rpx;
  653. margin-right: 10rpx;
  654. }
  655. font-size: 28rpx;
  656. font-weight: bold;
  657. color: #F46C85;
  658. }
  659. </style>