circle_user.vue 23 KB

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