projectPresentationDetails.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672
  1. <template>
  2. <view class="rf-category">
  3. <u-toast ref="uToast" />
  4. <u-navbar :back-text="i18n('Back')" :back-text-style="backStyle" back-icon-color="#fff" title-color="#fff"
  5. :title="i18n('ProjectDetails')" :background="background">
  6. <!-- 分享先隐藏 -->
  7. <view class="navbar-right" slot="right">
  8. <view class="message-box right-item" style="padding-right: 20rpx;" @click="share">
  9. <u-icon name="share-fill" color="white" size="50"></u-icon>
  10. </view>
  11. </view>
  12. <!-- <share></share> -->
  13. </u-navbar>
  14. <text style="width: 700upx;display: inline-block;margin: 10upx 0 0 20upx;
  15. font-weight: 700;font-size: 36upx;">{{activityInfo.projectName}}</text>
  16. <swiper class="swiper" :indicator-dots="indicatorDots" :autoplay="autoplay" :interval="interval"
  17. :duration="duration">
  18. <swiper-item v-for="(item,index) in activityInfo.bannerList" :key='index'>
  19. <view class="swiper-item uni-bg-red">
  20. <image v-if="activityInfo.bannerList.length>0 && activityInfo.bannerList[0].length>0"
  21. :src="'https://www.geidcp.com/api/fileextend/pub/'+ item + '?custom=370_220'" alt=""
  22. style="width: 100%;height: 100%;"></image>
  23. <image v-else
  24. :src="'https://www.geidcp.com/api/file/pub/def/projectdefault.png' + '?custom=370_220'" alt=""
  25. style="width: 100%;height: 100%;"></image>
  26. </view>
  27. </swiper-item>
  28. <!-- <swiper-item v-if="activityInfo.bannerList==0">
  29. <view class="swiper-item uni-bg-red" >
  30. </view>
  31. </swiper-item> -->
  32. </swiper>
  33. <view class="">
  34. </view>
  35. <view class="" style="padding: 20upx 20upx;">
  36. <view class="" style="font-size: 32upx;">
  37. <view class="border-title"></view>
  38. {{i18n('ProjectDetails')}}
  39. <text class="tabs" v-if="activityInfo.recommendFlag=='y'" alt=""
  40. style="float: right;vertical-align: middle;">
  41. {{i18n('Recommend')}}
  42. </text>
  43. </view>
  44. <view class="activeItem">
  45. <!-- <u-icon name="map" style="margin-right: 10upx;"></u-icon> -->
  46. {{i18n('ProjectArea')}}:
  47. {{activityInfo.bannerFour}}
  48. </view>
  49. <view class="activeItem">
  50. <!-- <u-icon name="map" style="margin-right: 10upx;"></u-icon> -->
  51. {{i18n('UCountry')}}
  52. {{activityInfo.unitCountry}}
  53. </view>
  54. <view class="activeItem">
  55. <!-- <i class="fa fa-calendar" style="margin-right: 10upx;"></i> -->
  56. {{i18n('Updatedate')}} : {{handlePublishTimeDesc(toDate,activityInfo.createDate,$i18n.locale)}}
  57. {{i18n('release')}}
  58. <!-- 更新时间:
  59. {{formatDate(activityInfo.createDate)}} - {{formatDate(activityInfo.updateDate)}} -->
  60. </view>
  61. <!-- <view class="activeItem">
  62. <i class="fa fa-calendar" style="margin-right: 10upx;"></i>
  63. {{activityInfo.bannerFour}}
  64. </view> -->
  65. <view class="activeItem">
  66. {{i18n('ProjectNumber')}}:
  67. <text style="color: #25d602;font-weight: 600;">
  68. {{activityInfo.projectNum? activityInfo.projectNum : i18n('NoProjectNumber')}}
  69. </text>
  70. </view>
  71. <view class="activeItem">
  72. {{i18n('ProjectTags')}}:{{activityInfo.technicalCategories}} | {{activityInfo.technicalScope}}
  73. </view>
  74. <view class="activeItem">
  75. {{i18n('CurrentStage')}}:{{activityInfo.phaseType}}
  76. </view>
  77. <u-tabs :list="list" :is-scroll="false" :current="current" @change="change"></u-tabs>
  78. <view v-if="current==0" class="woldKeep" style="margin-top: 25upx;
  79. min-height: 400upx;padding-bottom: 120upx;" v-html='activityInfo.projectDescription'>
  80. </view>
  81. <view v-if="current==1&&AuthToken" class="woldKeep" :style="$i18n.locale=='en'?'':''" style="
  82. margin-top: 25upx;min-height: 400upx;padding-bottom: 120upx;" v-html='activityInfo.projectRequirements'>
  83. <view v-if="activityInfo.projectRequirements == '' || activityInfo.projectRequirements == null " style="text-align: center">{{$t('common.Nodataavailable')}}</view>
  84. </view>
  85. <!-- title 分享的分类 summary 分享的介绍 href 分享的地址 8.8.20.112:19001 -->
  86. <share v-show="ifShare == true" :show="ifShare" @closeShare="share"
  87. :title="i18n('Project') + '->' + i18n('ProjectDetails')" :summary="activityInfo.projectName"
  88. :href="'https://m.geidcp.com/#/pages/country/projectPresentation/projectPresentationDetails?' + 'id=' + id + '&language=' + $i18n.locale"
  89. :imageUrl="activityInfo.bannerList && activityInfo.bannerList[0]?'https://www.geidcp.com/api/fileextend/pub/'+ activityInfo.bannerList[0] + '?custom=370_220':
  90. 'https://m.geidcp.com/api/file/pub/defaultCutPic/shareLogo.png'">
  91. </share>
  92. <!-- #ifdef H5 -->
  93. <rf-back-home></rf-back-home>
  94. <!-- #endif -->
  95. <!-- 分享 -->
  96. <view class="active-bottom">
  97. <view class=" active-bottom-right" @click="enquiry">
  98. <u-icon name="chat" style="font-size: 36upx;margin-right: 8upx;"></u-icon>
  99. {{$i18n.locale=='zh'?'在线问询':i18n('OlineConsulting')}}
  100. </view>
  101. <view class="active-bottom-left" style="position: relative;" @click="follow">
  102. <u-icon name="star" :color="ifcommon === true?'#FDFEFF':'#FDFEFF'"
  103. style="font-size: 36upx;margin-right: 8upx;vertical-align: middle;"></u-icon>
  104. {{$i18n.locale == 'zh' ? (ifcommon === true ? "已关注" : "关注") : (ifcommon === true ? "Concerned" : " Follow")}}
  105. </view>
  106. </view>
  107. <!--<view class="active-bottom" style="padding: 0 30upx;">
  108. <view style="width: 50%;height: 100%;display: inline-block;" @click="follow">
  109. <view style="width: 100%;height: 80%;margin-top: 10upx;border-radius: 80upx 0 0 80upx;background-color: #2979ff;">
  110. <view style="line-height: 80upx;color: white;">
  111. <u-icon name="chat-fill" color="white" size="28" style="margin-right: 10upx;"></u-icon>
  112. <text style="line-height: 80upx;color: white;">{{i18n('OlineConsulting')}}</text>
  113. </view>
  114. </view>
  115. </view>
  116. <view style="width: 50%;height: 100%;display: inline-block;" @click="follow">
  117. <view style="width: 100%;height: 80%;margin-top: 10upx;border-radius: 0 80upx 80upx 0;background-color: #00C777;">
  118. <view style="line-height: 80upx;color: white;">
  119. <u-icon :name="ifcommon === true?'heart-fill':'heart'" :color="ifcommon === true?'white':'white'" size="28" style="margin-right: 10upx;"></u-icon>
  120. {{$i18n.locale == 'zh' ? (ifcommon === true ? "已关注" : "关注") : (ifcommon === true ? "Concerned" : " Follow")}}
  121. </view>
  122. </view>
  123. </view>
  124. </view>-->
  125. </view>
  126. <u-popup mode="center" v-model="popupShow" border-radius="14" width="90%" :mask-close-able='false'
  127. :z-index="9999" :closeable='true'>
  128. <view>
  129. <scroll-view scroll-y="true" style="width:100%; height: 100%;">
  130. <view style="width:100%;">
  131. <view style="width:100%;margin: 30upx auto 0 auto;text-align: center;">
  132. <text style="font-size: 34upx;">{{i18n('ConsultingBar')}}</text>
  133. </view>
  134. <view style="width:90%;margin: 60upx auto 0 auto;font-size: 30upx;">
  135. <view>
  136. <u-icon name="coupon"></u-icon>
  137. <text style="margin-left: 10upx;">{{i18n('projectName')}}:</text>
  138. <text style="margin-left: 10upx;">{{activityInfo.projectName}}</text>
  139. </view>
  140. <view>
  141. <u-icon name="bookmark"></u-icon>
  142. <text style="margin-left: 10upx;">{{activityInfo.technicalCategories}} | </text>
  143. <text style="margin-left: 10upx;">{{activityInfo.technicalScope}}</text>
  144. </view>
  145. <view>
  146. <u-icon name="file-text"></u-icon>
  147. <text style="margin-left: 10upx;">{{i18n('ProjectNumber')}}:</text>
  148. <text
  149. style="margin-left: 10upx;">{{activityInfo.projectNum? activityInfo.projectNum : i18n('NoProjectNumber')}}</text>
  150. </view>
  151. </view>
  152. <view style="width:90%;margin: 60upx auto 0 auto;font-size: 30upx;">
  153. <u-input v-model="inputValue" type="textarea" border="true" height="200" auto-height="true"
  154. :placeholder="i18n('EnterContent')" />
  155. </view>
  156. <view style="width:90%;margin: 60upx auto 60upx auto;font-size: 30upx;text-align: center;">
  157. <u-button size="mini" @click="popupShow=false">{{i18n('cancel')}}</u-button>
  158. <u-button type="primary" size="mini" style="margin-left: 40upx;" @click="consultMessage">
  159. {{i18n('OK')}}
  160. </u-button>
  161. </view>
  162. </view>
  163. </scroll-view>
  164. </view>
  165. </u-popup>
  166. <u-toast ref="uToast" :z-index="99999" />
  167. </view>
  168. </template>
  169. <script>
  170. import share from '@/components/share'
  171. import {getSignature} from '@/api/meeting/meetingApply.js'
  172. import {
  173. addIntegral
  174. } from '@/components/addPointDetailByTaskDict.js'
  175. export default {
  176. components: {
  177. share,
  178. addIntegral
  179. },
  180. data() {
  181. return {
  182. inputValue: '',
  183. popupShow: false,
  184. id: '',
  185. ifShare: false,
  186. background: {
  187. backgroundImage: 'linear-gradient(270deg, #4BC0E2 0%, #538BE7 100%)',
  188. },
  189. backStyle: {
  190. color: '#fff'
  191. },
  192. activityInfo: {},
  193. indicatorDots: true,
  194. autoplay: true,
  195. interval: 2000,
  196. duration: 500,
  197. toDate: Date.parse(new Date()),
  198. list: [],
  199. current: 0,
  200. // 收藏
  201. ifcommon: false,
  202. // 用户信息
  203. Storage_data: '',
  204. AuthToken: '',
  205. token: '',
  206. }
  207. },
  208. onLoad(option) {
  209. this.id = option.id;
  210. if (option.language) {
  211. uni.setStorageSync("language", option.language);
  212. this._i18n.locale = option.language;
  213. }
  214. },
  215. async onShow() {
  216. // 获取登录状态和用户信息 开始
  217. this.AuthToken = uni.getStorageSync('Auth-Token');
  218. console.log(this.AuthToken, '====4===');
  219. if (this.AuthToken) {
  220. this.Storage_data = JSON.parse(uni.getStorageSync('user'));
  221. setTimeout(() => {
  222. console.log('===3===');
  223. addIntegral('point_task_view_resources_project', '3')
  224. }, 1000);
  225. }
  226. // 获取登录状态和用户信息 结束
  227. this.list = [{
  228. name: this.$t('common.ProjectPresentation')
  229. }, {
  230. name: this.$t('common.AssessmentAnalysis')
  231. }];
  232. let page = {
  233. pageNo: 0,
  234. pageSize: 1,
  235. projectId: this.id,
  236. language: this.$i18n.locale.toUpperCase()
  237. }
  238. const res = await this.$myRequest({
  239. url: '/project/baseProjectViews/gateGetProjectViewInfo',
  240. data: {
  241. ...page
  242. }
  243. });
  244. this.activityInfo = res.data.baseProjectView || [];
  245. this.getList();
  246. // 获取关注状态 开始
  247. this.getMyCollecModel()
  248. // 获取关注状态 结束
  249. },
  250. watch: {
  251. 'popupShow'(val, oldval) {
  252. if (val == false) {
  253. this.inputValue = ""
  254. }
  255. }
  256. },
  257. computed: {
  258. /*token() {
  259. return 'Bearer ' + uni.getStorageSync('Auth-Token');
  260. }*/
  261. },
  262. methods: {
  263. closeShare() {
  264. this.ifShare = !this.ifShare;
  265. },
  266. share() {
  267. this.ifShare = !this.ifShare;
  268. // let url = 'https://m.geidcp.com/#/'.replace("#", "guiguketan");//window.location.href.replace("#", "guiguketan");
  269. // getSignature(url).then((response) => {
  270. // console.log('response.data',response.data);
  271. // //记录分享用户
  272. // let link = "";
  273. // if (window.location.href.indexOf("?") != -1) {
  274. // link = window.location.href + "&recommend=" + response.data.userEedId;
  275. // } else {
  276. // link = window.location.href + "?recommend=" + response.data.userEedId;
  277. // }
  278. // let option = {
  279. // title: 'this.courseVo.title',
  280. // desc: 'this.description',
  281. // link: link,
  282. // imgUrl: 'https://photo.16pic.com/00/60/11/16pic_6011829_b.jpg',
  283. // };
  284. // wxShare.wxRegister(response.data, option);
  285. // });
  286. },
  287. async getList() {
  288. const res = await this.$myRequest({
  289. url: '/sys/sysDicts/',
  290. data: {
  291. type: this.$i18n.locale == "zh" ?
  292. 'PROJECT_CATEGORIES_DICT,TECHNICAL_SCOPE_DICT,PHASE_TYPE_DICT' :
  293. 'PROJECT_CATEGORIES_DICT_EN,TECHNICAL_SCOPE_DICT_EN,PHASE_TYPE_DICT_EN'
  294. }
  295. });
  296. res.data[0].forEach((i) => {
  297. if (i.value == this.activityInfo.technicalCategories) {
  298. this.activityInfo.technicalCategories = i.label;
  299. }
  300. });
  301. res.data[1].forEach((i) => {
  302. if (i.value == this.activityInfo.technicalScope) {
  303. this.activityInfo.technicalScope = i.label;
  304. }
  305. });
  306. res.data[2].forEach((i) => {
  307. if (i.value == this.activityInfo.phaseType) {
  308. this.activityInfo.phaseType = i.label;
  309. }
  310. });
  311. },
  312. enquiry() {
  313. if (this.AuthToken) {
  314. console.log(112313);
  315. this.popupShow = true
  316. } else {
  317. this.toLogin()
  318. }
  319. },
  320. toLogin() {
  321. if (this.$i18n.locale == 'zh') {
  322. console.log('已完成2');
  323. this.$refs.uToast.show({
  324. title: '请登录',
  325. type: 'warning',
  326. url: '/pages/public/login',
  327. duration: 800,
  328. params: {
  329. back: 3
  330. }
  331. })
  332. } else {
  333. console.log('已完成2');
  334. this.$refs.uToast.show({
  335. title: 'please log in',
  336. type: 'warning',
  337. url: '/pages/public/login',
  338. duration: 800,
  339. params: {
  340. back: 3
  341. }
  342. })
  343. }
  344. },
  345. async consultMessage() {
  346. if (this.inputValue) {
  347. if (this.inputValue.match(/^\s+$/)) {
  348. return this.inputValue = '';
  349. }
  350. if (this.inputValue.match(/^[ ]+$/)) {
  351. return this.inputValue = '';
  352. }
  353. if (this.inputValue.match(/^[ ]*$/)) {
  354. return this.inputValue = '';
  355. }
  356. if (this.inputValue.match(/^\s*$/)) {
  357. return this.inputValue = '';
  358. }
  359. const that = this;
  360. let consultMessageInfo = {}
  361. consultMessageInfo.replyStatusDict = "N";
  362. consultMessageInfo.senderDate = new Date();
  363. consultMessageInfo.bizObjectType = "0";
  364. consultMessageInfo.columnCode = this.activityInfo.projectId;
  365. consultMessageInfo.content = this.inputValue;
  366. const resToken = await this.$myRequest({
  367. url: '/sys/token',
  368. method: 'get',
  369. });
  370. that.token = resToken.data;
  371. const res = await this.$myRequest({
  372. url: '/op/consultMessageInfos',
  373. method: 'post',
  374. headers: {},
  375. data: {
  376. token: that.token,
  377. consultMessageInfo: JSON.stringify(consultMessageInfo)
  378. }
  379. });
  380. if (res.status == 200) {
  381. console.log('===2===');
  382. addIntegral('point_task_project_ask', '3')
  383. this.$refs.uToast.show({
  384. title: this.i18n('Sentsuccessfullypleasewaitforreply'),
  385. type: 'success',
  386. })
  387. } else {
  388. if (res.msg == "系统繁忙,请稍后再试。") {
  389. if (this.$i18n.locale == 'zh') {
  390. this.$refs.uToast.show({
  391. title: '系统繁忙,请稍后再试。',
  392. type: 'error',
  393. })
  394. } else {
  395. this.$refs.uToast.show({
  396. title: 'System busy, please try again later.',
  397. type: 'error',
  398. })
  399. }
  400. } else {
  401. if (this.$i18n.locale == 'zh') {
  402. this.$refs.uToast.show({
  403. title: '发送失败,请重新发送',
  404. type: 'error',
  405. })
  406. } else {
  407. this.$refs.uToast.show({
  408. title: 'Sending failed, please resend',
  409. type: 'error',
  410. })
  411. }
  412. }
  413. }
  414. this.popupShow = false
  415. } else {
  416. if (this.$i18n.locale == 'zh') {
  417. this.$refs.uToast.show({
  418. title: '请输入内容。',
  419. type: 'warning',
  420. })
  421. } else {
  422. this.$refs.uToast.show({
  423. title: 'Please enter content.',
  424. type: 'warning',
  425. })
  426. }
  427. this.inputValue = '';
  428. }
  429. },
  430. i18n(data) {
  431. return this.$t('common.' + data);
  432. },
  433. change(index) {
  434. this.current = index;
  435. if (index == 1) {
  436. if (!this.AuthToken) {
  437. this.toLogin()
  438. }
  439. }
  440. },
  441. //收藏
  442. follow() {
  443. if (this.AuthToken) {
  444. this.shareChange()
  445. } else {
  446. if (this.$i18n.locale == 'zh') {
  447. console.log('已完成1');
  448. this.$refs.uToast.show({
  449. title: '请登录',
  450. type: 'warning',
  451. url: '/pages/public/login',
  452. params: {
  453. back: 2
  454. }
  455. })
  456. } else if (this.$i18n.locale == 'en') {
  457. console.log('已完成1');
  458. this.$refs.uToast.show({
  459. title: 'please log in',
  460. type: 'warning',
  461. url: '/pages/public/login',
  462. params: {
  463. back: 2
  464. }
  465. })
  466. }
  467. }
  468. },
  469. async getMyCollecModel() {
  470. const that = this;
  471. if (this.AuthToken) {
  472. var users = this.Storage_data;
  473. let MyCollecModel = {
  474. modelType: 'project',
  475. userId: users.userId,
  476. modelEntityId: this.activityInfo.projectId,
  477. }
  478. const res = await this.$myRequest({
  479. url: '/op/basePortalModelFollowInfos/followModelStatusByModelIdAndUserId',
  480. data: {
  481. modelId: this.activityInfo.projectId,
  482. modelType: 'project',
  483. userId: users.id,
  484. }
  485. });
  486. if (res) {
  487. this.ifcommon = res.data;
  488. }
  489. }
  490. },
  491. // 关注操作方法
  492. shareChange() {
  493. if (this.ifcommon) {
  494. this.saveFollowModelDo("unfollow");
  495. } else {
  496. this.saveFollowModelDo("follow");
  497. }
  498. },
  499. async saveFollowModelDo(followType) {
  500. if (!this.AuthToken) {
  501. // 登录
  502. } else {
  503. var users = this.Storage_data;
  504. let MyCollecModel = {
  505. followType: followType,
  506. modelId: this.activityInfo.projectId,
  507. modelType: 'project',
  508. userId: users.id,
  509. };
  510. const res = await this.$myRequest({
  511. url: '/op/basePortalModelFollowInfos/followModel',
  512. method: 'post',
  513. headers: {
  514. token: this.token
  515. },
  516. data: {
  517. followType: followType,
  518. modelId: this.activityInfo.projectId,
  519. modelType: 'project',
  520. userId: users.id,
  521. }
  522. });
  523. if (res) {
  524. if (followType == 'unfollow') {
  525. if (this.$i18n.locale == 'zh') {
  526. this.$refs.uToast.show({
  527. title: '取消关注',
  528. type: 'success',
  529. })
  530. } else {
  531. this.$refs.uToast.show({
  532. title: 'Cancel concerned',
  533. type: 'success',
  534. })
  535. }
  536. } else {
  537. if (this.$i18n.locale == 'zh') {
  538. this.$refs.uToast.show({
  539. title: '已关注',
  540. type: 'success',
  541. })
  542. } else {
  543. this.$refs.uToast.show({
  544. title: 'Already concerned',
  545. type: 'success',
  546. })
  547. }
  548. console.log('===1===');
  549. addIntegral('point_task_attention', '1')
  550. }
  551. this.ifcommon = !this.ifcommon;
  552. }
  553. }
  554. },
  555. }
  556. }
  557. </script>
  558. <style lang="scss" scoped>
  559. page {
  560. background-color: $color-white;
  561. }
  562. .rf-category {
  563. background-color: $color-white;
  564. /* #ifdef APP-PLUS */
  565. // margin-top: calc(20upx + var(--status-bar-height));
  566. /* #endif */
  567. }
  568. .slot-wrap {
  569. display: flex;
  570. align-items: center;
  571. /* 如果您想让slot内容占满整个导航栏的宽度 */
  572. /* flex: 1; */
  573. /* 如果您想让slot内容与导航栏左右有空隙 */
  574. /* padding: 0 30rpx; */
  575. }
  576. .swiper {
  577. height: 300upx;
  578. }
  579. .activeItem {
  580. line-height: 60upx;
  581. padding-left: 20upx;
  582. font-size: 28upx;
  583. }
  584. .swiper-item,
  585. .swiper-item img {
  586. width: 100%;
  587. height: 100%;
  588. }
  589. .active-bottom {
  590. position: fixed;
  591. bottom: 0;
  592. left: 0;
  593. height: 100upx;
  594. width: 750upx;
  595. background-color: #fff;
  596. border: 1px solid #eee;
  597. text-align: center;
  598. .active-bottom-left {
  599. width: 50%;
  600. height: 100%;
  601. line-height: 100upx;
  602. display: inline-block;
  603. color: #FDFEFF;
  604. font-size: 30upx;
  605. border-radius: 0 50upx 50upx 0;
  606. background: #6DD400;
  607. }
  608. .active-bottom-right {
  609. width: 50%;
  610. height: 100%;
  611. line-height: 100upx;
  612. display: inline-block;
  613. color: #FDFEFF;
  614. font-size: 30upx;
  615. border-radius: 50upx 0 0 50upx;
  616. background: #0091FF;
  617. }
  618. }
  619. .tabs {
  620. padding: 5upx 10upx;
  621. border: #fab019 1px solid;
  622. border-radius: 15upx;
  623. font-size: 26upx;
  624. background-color: #fab019;
  625. color: #fff;
  626. }
  627. .woldKeep /deep/ img,
  628. .woldKeep /deep/ p {
  629. max-width: 720upx;
  630. }
  631. .woldKeep /deep/ p {
  632. max-width: 720upx;
  633. word-break: break-all;
  634. }
  635. .border-title {
  636. width: 15upx;
  637. height: 50upx;
  638. vertical-align: middle;
  639. background-color: #007AFF;
  640. display: inline-block;
  641. margin-right: 10upx;
  642. }
  643. </style>