circle_details.vue 20 KB

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