circle_details.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758
  1. <template>
  2. <view id="moments"
  3. class="page">
  4. <view v-if="showVedio" class="showVedio" :style="{height:screenHeight+'px',width:'100%'}">
  5. <!-- <video :src="videoPath"
  6. style="height: 100%;width: 100%"
  7. id="myVideo"
  8. object-fit="fill"
  9. airplay="allow" /> -->
  10. <video autoplay="true"
  11. page-gesture="true"
  12. controls="false"
  13. @fullscreenchange="fullscreenchange"
  14. :style="{height:'100%',width:'100%'}"
  15. id="myVideo"
  16. class="showVedio-video"
  17. :src="videoPath">
  18. <cover-image @tap="showVedio = false"
  19. src="/static/theme/default/my/close.png"
  20. class="cloneBut">
  21. </cover-image>
  22. <!-- </cover-view> -->
  23. </video>
  24. </view>
  25. <view class="home-pic">
  26. <image
  27. :src="circleImg"
  28. style="width: 750upx; height: 500upx; border-radius: 0upx;"
  29. />
  30. </image>
  31. <view class="home-pic-base">
  32. <view class="top-pic">
  33. <image class="header"
  34. :src="myPhoto"
  35. @tap.stop="goDetails(my_data.id)"
  36. :lazy-load="true" />
  37. </view>
  38. <view class="top-name"
  39. style="color: #FFFFFF;margin-bottom: 10px;">{{ my_data.nickname }}</view>
  40. </view>
  41. </view>
  42. <view class="new_msg"
  43. @tap="goCircleChat"
  44. v-if="no_reader_msg">你有新的消息</view>
  45. <view class="moments__post"
  46. v-for="(post,index) in posts"
  47. :key="index"
  48. :id="'post-'+index" >
  49. <view class="post-left">
  50. <image class="post_header"
  51. :src="staticPhoto + post.header_image + '?_=' + imgRan"
  52. @tap="goDetails(post.uid)"
  53. :lazy-load="true" />
  54. </view>
  55. <view class="post_right">
  56. <text class="post-username"
  57. @tap="goDetails(post.uid)">{{post.username}}</text>
  58. <view>
  59. <view id="paragraph"
  60. class="paragraph"
  61. @tap="init_input()">{{post.content.text}}</view>
  62. <!-- 相册 -->
  63. <view class="thumbnails"
  64. v-if="post.type == 0"
  65. @tap="init_input()">
  66. <view :class="post.content.value.length === 1 ? 'my-gallery' : 'thumbnail' "
  67. v-for="(image, index_images) in post.content.value"
  68. :key="index_images">
  69. <image class="gallery_img"
  70. :lazy-load="true"
  71. mode="aspectFill"
  72. :src="staticPath + post.post_id +'/' + image"
  73. :data-src="image"
  74. @tap="previewImage(index,index_images)"/>
  75. <image v-if="post.content.video_path" @tap="previewImage(index,index_images)" class="bofang-button" style="width: 30px;height: 30px;position: absolute;top: 315rpx;left:220rpx" mode="aspectFill" src="/static/theme/default/my/bofang.png"></image>
  76. </view>
  77. </view>
  78. </view>
  79. <view class="pay_view"
  80. v-if="post.can_pay == 1"> <button :disabled="post.can_pay_times == 0"
  81. :style="{'background-color':post.can_pay_times == 1?'#4591ff':'#A9A9A9'}"
  82. size="mini"
  83. @tap="open(index)"
  84. type="primary">{{post.can_pay_times == 0 ? '已售出' : '¥'+post.pay_amount + '元'}}</button></view>
  85. <!-- 资料条 -->
  86. <view class="toolbar">
  87. <view class="timestamp">{{ post.timestamp }}</view>
  88. <view class="like"
  89. @tap="like(index)">
  90. <image :src="post.islike === 0 ? '../../static/theme/default/push/circle/islike.png' : '../../static/theme/default/push/circle/like.png'"
  91. :lazy-load="true" />
  92. </view>
  93. <view class="comment"
  94. @tap="comment(index)">
  95. <image src="../../static/theme/default/push/circle/comment.png"
  96. :lazy-load="true"></image>
  97. </view>
  98. </view>
  99. <!-- 赞/评论区 -->
  100. <view class="post-footer">
  101. <view class="footer_content"
  102. v-if="post.like.length">
  103. <image class="liked"
  104. src="../../static/theme/default/push/circle/liked.png"
  105. :lazy-load="true"></image>
  106. <text class="nickname"
  107. v-for="(user,index_like) in post.like"
  108. :key="index_like"
  109. @tap="goDetails(user.uid)">
  110. {{(index_like ? ',' : '' ) + user.username}}
  111. </text>
  112. </view>
  113. <view class="footer_content"
  114. v-for="(comment,comment_index) in post.comments"
  115. :key="comment_index"
  116. @tap="reply(index,comment_index)">
  117. <text class="comment-nickname"
  118. style="word-break:break-all;">
  119. {{comment.username + comment.reply + ': '}}
  120. <text class="comment-content">
  121. {{comment.content}}
  122. </text>
  123. </text>
  124. </view>
  125. </view>
  126. </view>
  127. <!-- 结束 post -->
  128. </view>
  129. <view class="foot"
  130. v-show="showInput">
  131. <chat-input @send-message="send_comment"
  132. @blur="blur"
  133. :focus="focus"
  134. :placeholder="input_placeholder"></chat-input>
  135. <!-- <chat-input @send-message="send_comment" @blur="blur" :placeholder="input_placeholder"></chat-input> -->
  136. </view>
  137. <view class="uni-loadmore"
  138. v-if="showLoadMore">{{loadMoreText}}</view>
  139. <view :class="['action_main animated faster',(action_menu ? 'bounceInDown' : 'bounceOutUp')]"
  140. v-show="showActionMenu"
  141. @tap="actionMain">
  142. <view class="action_base">
  143. <view class="sj"></view>
  144. <view class="action_item"
  145. @tap="goAction(0)">
  146. <text class="action_item_text">发送图文</text>
  147. </view>
  148. <view class="action_item"
  149. @tap="goAction(1)">
  150. <text class="action_item_text">发送视频</text>
  151. </view>
  152. </view>
  153. </view>
  154. <uni-popup ref="popup" type="address">
  155. <uni-popup-address :userAddress="userAddress" :amount="amount" :goods_name="goods_name" :small_pic="small_pic" @confirm="goBuy"></uni-popup-address>
  156. </uni-popup>
  157. <pay-keyboard :showCose="showCose" :set_info = "set_info" :show_key="show_key" ref="payKeyboard" :set_msg="set_msg" @hideFun="hideFun" @getPassword="getPassword"></pay-keyboard>
  158. </view>
  159. </template>
  160. <script>
  161. import chatInput from './circle/chat_input.vue'; //输入消息框
  162. import _get from '../../common/_get';
  163. import _hook from '../../common/_hook';
  164. import avatar from "../../components/yq-avatar/yq-avatar.vue";
  165. import _data from '../../common/_data';
  166. import UniPopupAddress from "../../components/uni-popup/uni-popup-address";
  167. import UniPopup from "../../components/uni-popup/uni-popup";
  168. import payKeyboard from "../../components/uni-keyword/uni-keyword";
  169. export default {
  170. components: {
  171. UniPopup,
  172. UniPopupAddress,
  173. chatInput,
  174. avatar,
  175. payKeyboard
  176. },
  177. data () {
  178. return {
  179. showPage:true,
  180. my_data: {
  181. id: 0,
  182. nickname: '',
  183. photo: 'default_man/90.jpg',
  184. circle_img: 'default_circle_img.jpg',
  185. },
  186. showCose:true,
  187. set_info:'请输入交易密码,以确认身份',
  188. show_key:false,
  189. set_msg:'请输入交易密码',
  190. user_id: 0,
  191. action_menu: false,
  192. posts: [],// 模拟数据
  193. index: '',
  194. comment_index: '',
  195. input_placeholder: '评论', //占位内容
  196. focus: false, //是否自动聚焦输入框
  197. is_reply: false, //回复还是评论
  198. showInput: false, //评论输入框
  199. screenHeight: '', //屏幕高度(系统)
  200. platform: '',
  201. windowHeight: '',//可用窗口高度(不计入软键盘)
  202. loadMoreText: "加载中...",
  203. showLoadMore: false,
  204. is_more: false,
  205. no_reader_msg: 0,
  206. doubleClick: false,
  207. showVedio:false,
  208. videoPath:'',
  209. post_id:'',
  210. post_index_id:0,
  211. userAddress:{
  212. regionStr: '',
  213. username: '',
  214. mobile: '',
  215. address: '',
  216. regionCode:'440113'
  217. },
  218. small_pic:'',
  219. amount:'',
  220. goods_name: '',
  221. }
  222. },
  223. computed: {
  224. regionName(){
  225. return this.region.map(item=>item.name).join(' ')
  226. },
  227. showActionMenu () {
  228. return this.action_menu;
  229. },
  230. myPhoto () {
  231. return _data.staticPhoto() + this.my_data.photo + '?_=' + this.imgRan;
  232. },
  233. circleImg () {
  234. return _data.staticPhoto() + this.my_data.circle_img;
  235. },
  236. staticPath () {
  237. return _data.staticCircle();
  238. },
  239. staticPhoto () {
  240. return _data.staticPhoto();
  241. },
  242. imgRan () {
  243. return Math.random();
  244. },
  245. },
  246. onLoad (option) {
  247. let _this = this;
  248. _this.user_id = option.user_id;
  249. uni.getSystemInfo({ //获取设备信息
  250. success: (res) => {
  251. _this.screenHeight = res.screenHeight;
  252. _this.platform = res.platform;
  253. }
  254. });
  255. },
  256. onShow () {
  257. _hook.routeSonHook();
  258. let _this = this;
  259. uni.onWindowResize((res) => { //监听窗口尺寸变化,窗口尺寸不包括底部导航栏
  260. if(this.platform === 'ios'){
  261. this.windowHeight = res.size.windowHeight;
  262. this.adjust();
  263. }else{
  264. if (this.screenHeight - res.size.windowHeight > 60 && this.windowHeight <= res.size.windowHeight) {
  265. this.windowHeight = res.size.windowHeight;
  266. this.adjust();
  267. }
  268. }
  269. });
  270. this.pullDownRefresh();
  271. /** 监听新的个人数据 */
  272. uni.$on('data_user_info',function(data){
  273. _this.my_data = data;
  274. });
  275. },
  276. onNavigationBarButtonTap (e) {
  277. this.action_menu = !this.action_menu;
  278. },
  279. onUnload () {
  280. uni.$off('data_circle_tips');
  281. uni.$off('data_user_info');
  282. uni.$off('data_circle_data_user');
  283. uni.offWindowResize(() => {
  284. });
  285. this.max = 0,
  286. this.data = [],
  287. this.loadMoreText = "加载更多",
  288. this.showLoadMore = false;
  289. },
  290. onReachBottom () { //监听上拉触底事件
  291. let _this = this;
  292. _this.showLoadMore = true;
  293. if (_this.is_more) {
  294. return;
  295. }
  296. let time = 0,
  297. is_length = _this.posts.length;
  298. if (is_length) {
  299. time = _this.posts[is_length - 1].time;
  300. }
  301. this.getCircleList({
  302. time,
  303. type: 1,
  304. user_id: this.user_id,
  305. },(data) => {
  306. _this.my_data = data.user_info;
  307. });
  308. },
  309. onPullDownRefresh () { //监听下拉刷新动作
  310. if (_data.data('no_reader_circle') || _data.data('no_reader_circle_chat_num')) {
  311. this.posts = [];
  312. _data.data('circle_data', []);
  313. }
  314. this.pullDownRefresh();
  315. },
  316. onNavigationBarButtonTap (e) {//监听标题栏点击事件
  317. let _this = this;
  318. if (e.index == 0) {
  319. // this.navigateTo('./circle/send');
  320. // this.action_menu = !this.action_menu
  321. let list = [{
  322. name: "图文",
  323. key: "image"
  324. },{
  325. name: "短视频",
  326. key: "video"
  327. },{
  328. name: "取消",
  329. key: "cancle"
  330. }]
  331. uni.showActionSheet({
  332. itemList: list.map(v => v.name),
  333. success: res => {
  334. if(res.tapIndex == 2)return false;
  335. uni.navigateTo({
  336. url: './circle/send?type=' + list[res.tapIndex].key+'&user_id='+_this.user_id,
  337. });
  338. },
  339. });
  340. }
  341. },
  342. methods: {
  343. getCircleList(send_data){
  344. let _this = this;
  345. this.$httpSend({
  346. path: '/im/get/circleData',
  347. data: send_data,
  348. success(data) {
  349. if(data.data.length){
  350. let circle_data = [];
  351. if(send_data.type){
  352. _this.posts.push(...data.data);
  353. }else{
  354. _this.posts.unshift(...data.data);
  355. }
  356. } else {
  357. _this.loadMoreText = '没有更多数据了';
  358. _this.is_more = true;
  359. }
  360. _this.my_data = data.user_info;
  361. }
  362. });
  363. },
  364. goAction (index) {
  365. if (index === 0) {
  366. this.navigateTo('./circle/send?user_id='+this.user_id);
  367. }
  368. },
  369. actionMain () {
  370. this.action_menu = !this.action_menu;
  371. },
  372. upload (e) {
  373. let _this = this;
  374. _this.$httpSendFile({
  375. local_url: e.path,
  376. type: 3,
  377. success (data) {
  378. _this.$httpSend({
  379. path: '/im/action/upCircleImg',
  380. success (data) {
  381. _get.base();
  382. uni.showToast({
  383. title: '更换成功',
  384. duration: 2000
  385. });
  386. }
  387. });
  388. },
  389. });
  390. },
  391. goCircleChat () {
  392. _data.data('no_reader_circle_chat_num', 0);
  393. this.navigateTo('./circle_chat_details');
  394. },
  395. pullDownRefresh () {
  396. //初始化数据
  397. let time = 0;
  398. if(this.posts.length){
  399. time = this.posts[0].time;
  400. }
  401. this.getCircleList({
  402. time,
  403. type: 0,
  404. user_id: this.user_id,
  405. },(data) => {
  406. _this.my_data = data.user_info;
  407. });
  408. uni.stopPullDownRefresh(); //停止下拉刷新
  409. },
  410. goDetails (user_id) {
  411. this.navigateTo('../details/index?user_id=' + user_id);
  412. },
  413. navigateTo (url) {
  414. uni.navigateTo({
  415. url: url
  416. });
  417. },
  418. like (index) {
  419. let _this = this,
  420. is_like = (_this.posts[index].islike ? 0 : 1);
  421. console.log(is_like)
  422. _this.$httpSend({
  423. path: '/im/circle/likeAction',
  424. data: {
  425. is_like: is_like,
  426. id: _this.posts[index].post_id,
  427. },
  428. success (data) {
  429. // _this.posts[index].islike = data.action;
  430. }
  431. });
  432. },
  433. comment (index) {
  434. if (this.showInput) {
  435. this.showInput = false;
  436. this.focus = false;
  437. this.index = '';
  438. } else {
  439. this.showInput = true; //调起input框
  440. this.focus = true;
  441. this.index = index;
  442. }
  443. },
  444. adjust () { //当弹出软键盘发生评论动作时,调整页面位置pageScrollTo
  445. uni.createSelectorQuery().selectViewport().scrollOffset(res => {
  446. var scrollTop = res.scrollTop;
  447. let view = uni.createSelectorQuery().select("#post-" + this.index);
  448. view.boundingClientRect(data => {
  449. // console.log("data:" + JSON.stringify(data));
  450. // console.log("手机屏幕高度:" + this.screenHeight);
  451. // console.log("竖直滚动位置" + scrollTop);
  452. // console.log("节点离页面顶部的距离为" + data.top);
  453. // console.log("节点高度为" + data.height);
  454. // console.log("窗口高度为" + this.windowHeight);
  455. // uni.pageScrollTo({
  456. // scrollTop: scrollTop - (this.windowHeight - (data.height + data.top + 45)), //一顿乱算
  457. // // scrollTop: 50,
  458. // duration: 300
  459. // });
  460. }).exec();
  461. }).exec();
  462. },
  463. reply (index, comment_index) {
  464. this.is_reply = true; //回复中
  465. this.showInput = true; //调起input框
  466. let replyTo = this.posts[index].comments[comment_index].username;
  467. this.input_placeholder = '回复' + replyTo;
  468. this.index = index; //post索引
  469. this.comment_index = comment_index; //评论索引
  470. this.focus = true;
  471. },
  472. blur: function () {
  473. //this.init_input();
  474. },
  475. send_comment: function (message) {
  476. let _this = this,
  477. is_posts_obj = this.posts[this.index],
  478. chat_user_id = is_posts_obj.uid,
  479. reply = '';
  480. if (this.is_reply) {
  481. let is_reply_obj = is_posts_obj.comments[this.comment_index];
  482. chat_user_id = is_reply_obj.uid;
  483. if (is_posts_obj.uid != chat_user_id) {
  484. reply = '回复' + is_reply_obj.username;
  485. }
  486. }
  487. _this.$httpSend({
  488. path: '/im/circle/comment',
  489. data: {
  490. message,
  491. id: is_posts_obj.post_id,
  492. chat_user_id,
  493. },
  494. success (data) {
  495. is_posts_obj.comments.push({
  496. "uid": _this.my_data.id,
  497. 'reply': reply,
  498. "username": _this.my_data.nickname,
  499. "content": message
  500. });
  501. _this.init_input();
  502. }
  503. });
  504. },
  505. init_input () {
  506. this.showInput = false;
  507. this.focus = false;
  508. this.input_placeholder = '评论';
  509. this.is_reply = false;
  510. },
  511. createVideoPlayer(video_path){
  512. // #ifdef APP-PLUS
  513. let player = null;
  514. player = plus.video.createVideoPlayer('videoplayer', {
  515. src:'rtmp://'+video_path,
  516. top:'50px',
  517. left:'0px',
  518. width: '100%',
  519. height: '100%',
  520. position: 'fix'
  521. });
  522. var pages = getCurrentPages();
  523. var page = pages[pages.length - 1];
  524. var currentWebview = page.$getAppWebview();
  525. currentWebview.append(player)
  526. // #endif
  527. },
  528. previewImage (index, image_index) {
  529. let data = this.posts[index],
  530. _this = this,
  531. images_all = [];
  532. console.log(111)
  533. if(data.content.video_path){
  534. let video_path = this.staticPath + data.post_id + '/' + data.content.video_path;
  535. _this.videoPath = video_path;
  536. _this.showVedio = true;
  537. //设置屏幕高度
  538. return true;
  539. }
  540. for (let i = 0, j = data.content.value.length; i < j; i++) {
  541. images_all.push(this.staticPath + data.post_id + '/' + data.content.value[i].replace('_thumb', ''));
  542. }
  543. var current = images_all[image_index];
  544. uni.previewImage({
  545. current: current,
  546. urls: images_all
  547. });
  548. },
  549. goPublish () {
  550. uni.navigateTo({
  551. url: './circle/send',
  552. success: res => { },
  553. fail: () => { },
  554. complete: () => { }
  555. });
  556. },
  557. // 获取选择的地区
  558. goBuy(address){
  559. //弹出交易密码界面
  560. // this.show_key = true;
  561. this.userAddress = address;
  562. _data.localData('data_user_address',address);
  563. //去支付
  564. let _this = this;
  565. let params =this.userAddress;
  566. params.post_id = this.post_id;
  567. let circle_data = _data.localData('circle_data');
  568. let data = _this.posts[_this.post_index_id];
  569. let small_pic = this.staticPath + params.post_id + '/' + data.content.value[0].replace('_thumb', '');
  570. params.small_pic = small_pic;
  571. _get.payCicleOrder(params,function (ret) {
  572. //更新本地朋友圈信息
  573. data.can_pay_times = ret.can_pay_times;
  574. circle_data[_this.post_index_id] = data;
  575. _data.localData('circle_data',circle_data)
  576. uni.$emit('data_circle_data',circle_data);
  577. uni.showToast({
  578. title:'购买成功',
  579. icon:'none',
  580. });
  581. _this.$refs.popup.close();
  582. },function (ret) {
  583. uni.showToast({
  584. title:ret.msg,
  585. icon:'none',
  586. });
  587. _this.show_key = false;
  588. })
  589. },
  590. hideFun(){
  591. this.show_key = false;
  592. },
  593. getPassword(e){
  594. //去支付
  595. let _this = this;
  596. e.post_id = this.post_id;
  597. let params = Object.assign(e,this.userAddress);
  598. let circle_data = _data.localData('circle_data');
  599. let data = circle_data[_this.post_index_id];
  600. let small_pic = this.staticPath + data.post_id + '/' + data.content.value[0].replace('_thumb', '');
  601. e.small_pic = small_pic;
  602. _get.payCicleOrder(params,function (ret) {
  603. //更新本地朋友圈信息
  604. data.can_pay_times = ret.can_pay_times;
  605. circle_data[_this.post_index_id] = data;
  606. _data.localData('circle_data',circle_data)
  607. uni.$emit('data_circle_data',circle_data);
  608. uni.showToast({
  609. title:'购买成功',
  610. icon:'none',
  611. });
  612. _this.show_key = false;
  613. _this.$refs.payKeyboard.cleanNum();
  614. _this.$refs.popup.close();
  615. },function (ret) {
  616. uni.showToast({
  617. title:ret.msg,
  618. icon:'none',
  619. });
  620. _this.show_key = false;
  621. _this.$refs.payKeyboard.cleanNum();
  622. })
  623. },
  624. open(index){
  625. let data = this.posts[index];
  626. console.log(this.my_data);
  627. console.log(this.userAddress)
  628. this.goods_name = data.content.text;
  629. this.small_pic = this.staticPath + data.post_id + '/' + data.content.value[0].replace('_thumb', '');
  630. this.amount = data.pay_amount;
  631. this.post_id = data.post_id;
  632. this.post_index_id = index;
  633. this.$refs.popup.open();
  634. },
  635. fullscreenchange(){
  636. console.log(1111111111111)
  637. }
  638. },
  639. watch: {
  640. },
  641. }
  642. </script>
  643. <style scoped>
  644. @import url("../../static/css/push/circle.css");
  645. .page {
  646. position: relative;
  647. }
  648. .pay_view {
  649. margin: 15upx 0;
  650. text-align: right;
  651. }
  652. .new_msg {
  653. text-align: center;
  654. color: #36648b;
  655. font-weight: bold;
  656. }
  657. .action_main {
  658. position: fixed;
  659. top: 120upx;
  660. /* #ifndef H5 */
  661. top: 15px;
  662. /* #endif */
  663. width: 750upx;
  664. height: 1080upx;
  665. z-index: 10000;
  666. }
  667. .action_base {
  668. position: absolute;
  669. right: 15upx;
  670. width: 300upx;
  671. top: 120upx;
  672. background: #36363d;
  673. border-radius: 10upx;
  674. }
  675. .sj {
  676. position: fixed;
  677. top: -28upx;
  678. right: 26upx;
  679. /* #ifdef APP-PLUS */
  680. top: 3upx;
  681. right: 20upx;
  682. /* #endif */
  683. width: 0;
  684. height: 0;
  685. border-left: 20upx solid transparent;
  686. border-right: 20upx solid transparent;
  687. border-bottom: 20upx solid #36363d;
  688. }
  689. .action_item {
  690. color: #e5e5e5;
  691. height: 100upx;
  692. line-height: 100upx;
  693. margin-left: 45upx;
  694. border-bottom: 1px solid #3e3e3e;
  695. }
  696. .action_icon {
  697. width: 45upx;
  698. height: 45upx;
  699. display: inline-block;
  700. vertical-align: middle;
  701. }
  702. .action_item:last-child {
  703. border: none;
  704. }
  705. .action_item_text {
  706. font-size: 30upx;
  707. }
  708. .showVedio {
  709. position: fixed;
  710. z-index: 999;
  711. }
  712. .cloneBut {
  713. position: relative;
  714. font-size: 24px;
  715. color: red;
  716. margin-left: 30px;
  717. margin-top: 80px;
  718. height: 30px;
  719. width: 30px;
  720. }
  721. .paragraph{
  722. word-break: break-all;
  723. }
  724. </style>