videoshare.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621
  1. var app = getApp();
  2. var utils = require("../../../utils/http");
  3. const util = require("../../../utils/util")
  4. let videoContext = null;
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. imgUrl: app.globalData.imgUrl,
  11. videoUrl: '',
  12. video_id: '',
  13. title: '',
  14. btflag: false,
  15. loginFlag: false,
  16. phoneFlag: false,
  17. showTask: true,
  18. datashow: false,
  19. errorText: '请求错误!',
  20. oneButton: [{ text: '确定' }],
  21. ght: '100%',
  22. customers_num: "",
  23. hot: "",
  24. video_url: "",
  25. headimgurl: "",
  26. nickname: "",
  27. vid: "",
  28. star_num: "",
  29. editVideoFlag: true,
  30. shareuserid: "",
  31. videoflag: false,
  32. playBtn: true,
  33. collectflag: 0,
  34. startY: 0,
  35. endY: 0,
  36. type: '',
  37. videoObj: {},
  38. mobileflag: false,
  39. autoplay: true,
  40. covercustomerFlag: true,
  41. alertFlag: false,
  42. alerText: '',
  43. bType: "",
  44. pType: "",
  45. footflag: false,
  46. personMsg: app.globalData.personMsg,
  47. companyobj: app.globalData.companyobj,
  48. nowflag: false,
  49. wshareshow: false,
  50. showDsc: false,
  51. priceflag: false,
  52. controlShow: false,
  53. playflag: 2,//1是播放中,2是暂停
  54. showCutImage: false,
  55. loading: false,
  56. showApproval: false,
  57. remark: "",
  58. trackimgarr: [],
  59. nowimagearr: [],
  60. shareApprovallist: []
  61. },
  62. /**
  63. * 生命周期函数--监听页面加载
  64. */
  65. onLoad: function (options) {
  66. var that = this;
  67. that.setData({
  68. video_id: options.vid
  69. })
  70. if (!!options.ty) {
  71. this.setData({
  72. bType: options.ty,
  73. showTask: false
  74. })
  75. }
  76. if (!!options.tp) {
  77. this.setData({
  78. pType: options.tp
  79. })
  80. }
  81. wx.showLoading({
  82. title: '加载中...',
  83. })
  84. that.sharemsg();
  85. },
  86. handShowUpload: function () {
  87. videoContext.pause();
  88. this.setData({
  89. trackimgarr: [],
  90. nowimagearr: [],
  91. remark: "",
  92. showCutImage: true
  93. })
  94. },
  95. handleShowApproval() {
  96. videoContext.pause();
  97. this.setData({
  98. showApproval: true
  99. })
  100. wx.showLoading({
  101. title: '加载中...',
  102. })
  103. this.getBrokerApprovallist();
  104. },
  105. //获取审核列表
  106. getBrokerApprovallist() {
  107. const that = this;
  108. utils.$post({
  109. url: app.globalData.webUrl + 'api/agentEmp/share_list',
  110. header: {
  111. 'Authorization': 'bearer ' + app.globalData.token
  112. },
  113. data: {
  114. id: that.data.video_id,
  115. type: "Video"
  116. },
  117. success: function (res) {
  118. wx.hideLoading();
  119. if (res.data.code == 0) {
  120. that.setData({
  121. shareApprovallist: res.data.data,
  122. datashow: true
  123. })
  124. }
  125. }
  126. })
  127. },
  128. previewImageEvent(e) {
  129. let index = parseInt(e.currentTarget.dataset.index);
  130. let idx = parseInt(e.currentTarget.dataset.idx);
  131. wx.previewImage({
  132. urls: this.data.shareApprovallist[index].img,
  133. current: this.data.shareApprovallist[index].img[idx]
  134. })
  135. },
  136. closeDialog: function () {
  137. this.setData({
  138. showCutImage: false,
  139. showApproval: false
  140. })
  141. },
  142. getTextarea(e) {
  143. this.setData({
  144. remark: e.detail.value
  145. })
  146. },
  147. //审核通过
  148. confirmApproval(e) {
  149. let id = e.currentTarget.dataset.id;
  150. const that = this;
  151. wx.showModal({
  152. title: '审核提醒',
  153. content: '您确认通过审核吗?',
  154. complete: (res) => {
  155. if (res.confirm) {
  156. utils.$post({
  157. url: app.globalData.webUrl + 'api/agentEmp/validate_share',
  158. header: {
  159. 'Authorization': 'bearer ' + app.globalData.token
  160. },
  161. data: {
  162. share_id: id,
  163. status: 1
  164. },
  165. success: function (res) {
  166. if (res.data.code == 0) {
  167. wx.showToast({
  168. title: '已通过审核',
  169. icon: "none",
  170. duration: 1500
  171. })
  172. that.getBrokerApprovallist();
  173. }
  174. }
  175. })
  176. }
  177. }
  178. })
  179. },
  180. //审核拒绝
  181. rejectApproval(e) {
  182. let id = e.currentTarget.dataset.id;
  183. const that = this;
  184. wx.showModal({
  185. title: '审核提醒',
  186. content: '您确认驳回审核吗?',
  187. complete: (res) => {
  188. if (res.confirm) {
  189. utils.$post({
  190. url: app.globalData.webUrl + 'api/agentEmp/validate_share',
  191. header: {
  192. 'Authorization': 'bearer ' + app.globalData.token
  193. },
  194. data: {
  195. share_id: id,
  196. status: 2
  197. },
  198. success: function (res) {
  199. if (res.data.code == 0) {
  200. wx.showToast({
  201. title: '已驳回审核',
  202. icon: "none",
  203. duration: 1500
  204. })
  205. that.getBrokerApprovallist();
  206. }
  207. }
  208. })
  209. }
  210. }
  211. })
  212. },
  213. //上传分享截图
  214. submitData() {
  215. if (!this.data.trackimgarr.length) {
  216. wx.showToast({
  217. title: '请上传分享截图!',
  218. icon: "none",
  219. duration: 1500,
  220. })
  221. return false;
  222. }
  223. this.setData({
  224. loading: true
  225. })
  226. this.ossuploadimg();
  227. },
  228. uploadImage() {
  229. let _this = this;
  230. wx.chooseMedia({
  231. count: 9,
  232. mediaType: ["image"],
  233. sourceType: ["album", "camera"],
  234. sizeType: ['original', 'compressed'],
  235. success: function (res) {
  236. if (res.errMsg == "chooseMedia:ok") {
  237. _this.createImagePayment(res.tempFiles);
  238. }
  239. }
  240. })
  241. },
  242. imageDel(e) {
  243. let index = e.currentTarget.dataset.index;
  244. this.data.trackimgarr.splice(index, 1);
  245. this.setData({
  246. trackimgarr: this.data.trackimgarr
  247. })
  248. },
  249. createImagePayment: function (imgUrl) {
  250. var that = this;
  251. if (imgUrl.length == 0) return;
  252. var lent = that.data.trackimgarr.length + imgUrl.length;
  253. if (lent > 9) {
  254. lent = 9
  255. } else {
  256. lent = lent;
  257. }
  258. let trackimgarr = that.data.trackimgarr;
  259. let len = imgUrl.length;
  260. if ((trackimgarr.length + len) > 9) {
  261. for (let j = 0; j < len; j++) {
  262. if (trackimgarr.length < 9) {
  263. trackimgarr.push(imgUrl[j]);
  264. }
  265. }
  266. } else {
  267. trackimgarr = trackimgarr.concat(imgUrl);
  268. }
  269. that.setData({
  270. trackimgarr: trackimgarr
  271. })
  272. },
  273. ossuploadimg: function (e) {
  274. let that = this;
  275. let trackimgarr = that.data.trackimgarr;
  276. var arr = [];
  277. for (let i = 0; i < trackimgarr.length; i++) {
  278. //获取文件后缀
  279. // 随机生成文件名称
  280. let rstr = trackimgarr[i].tempFilePath.split('.');
  281. var fileRandName = Date.now() + "" + parseInt(Math.random() * 10000) + i;
  282. var imgName = fileRandName + '.' + 'png';
  283. // var fileName = that.data.;
  284. var date = new Date();
  285. var time = date.getFullYear() + '' + (date.getMonth() * 1 + 1) + '' + date.getDate();
  286. var imgstr = 'broker/' + time + '/' + imgName;
  287. var nowimagearr = that.data.nowimagearr;
  288. nowimagearr.push(imgstr);
  289. that.setData({
  290. nowimagearr: nowimagearr
  291. })
  292. wx.uploadFile({
  293. url: 'https://wzh-zqxg.oss-cn-hangzhou.aliyuncs.com',
  294. filePath: trackimgarr[i].tempFilePath,
  295. name: 'file',
  296. formData: {
  297. // name: that.data.imgSrc[0],
  298. key: 'broker/' + time + '/' + imgName,
  299. policy: "eyJleHBpcmF0aW9uIjoiMjA0MC0wMS0wMVQxMjowMDowMC4wMDBaIiwiY29uZGl0aW9ucyI6W1siY29udGVudC1sZW5ndGgtcmFuZ2UiLDAsMTA0ODU3NjAwMF1dfQ==",
  300. OSSAccessKeyId: "LTAI5tHjWupJSCAycy2yVbQZ",
  301. success_action_status: "200",
  302. signature: "GPu5wBYVzdhICS/hdJH6rKG0kos=",
  303. },
  304. header: {
  305. "Content-Type": "multipart/form-data",
  306. 'accept': 'application/json',
  307. },
  308. success: function (rs) {
  309. if (rs.errMsg == 'uploadFile:ok') {
  310. arr.push('0');
  311. if (arr.length == trackimgarr.length) {
  312. that.requestUploadImageApi();
  313. }
  314. }
  315. },
  316. fail(res) {
  317. wx.hideLoading()
  318. }
  319. })
  320. }
  321. },
  322. requestUploadImageApi() {
  323. let that = this;
  324. let imgs = that.data.nowimagearr.map(v => {
  325. return { serverId: "", img: v, };
  326. })
  327. utils.$post({
  328. url: app.globalData.webUrl + 'api/agentsWork/upload_share_log',
  329. header: {
  330. 'Authorization': 'bearer ' + app.globalData.token
  331. },
  332. data: {
  333. article_id: that.data.video_id,
  334. file_media_id: imgs,
  335. remarks: that.data.remark,
  336. type: "Video"
  337. },
  338. success: function (res) {
  339. that.setData({
  340. loading: false
  341. })
  342. if (res.data.code == '0') {
  343. wx.showToast({
  344. title: '上传成功',
  345. icon: "success",
  346. duration: 1500
  347. })
  348. that.setData({
  349. showCutImage: false
  350. })
  351. }
  352. }
  353. })
  354. },
  355. setpostertap: function () {
  356. if (this.data.bType == 'b') {
  357. wx.navigateTo({
  358. url: '/index/pages/setposter/setposter?type=video&aid=' + this.data.video_id + "&ty=b&listshare=",
  359. })
  360. } else {
  361. wx.navigateTo({
  362. url: '/index/pages/setposter/setposter?type=video&aid=' + this.data.video_id + "&listshare=",
  363. })
  364. }
  365. },
  366. /**
  367. * 生命周期函数--监听页面初次渲染完成
  368. */
  369. onReady: function () {
  370. },
  371. /**
  372. * 弹出报价弹窗
  373. */
  374. priceshowtap() {
  375. videoContext.pause();
  376. this.setData({
  377. priceflag: true
  378. })
  379. },
  380. /**
  381. * 关闭报价弹窗
  382. */
  383. closepricetap() {
  384. this.setData({
  385. priceflag: false
  386. })
  387. },
  388. showdscMsg: function () {
  389. if (this.data.videoObj.description.length > 28) {
  390. this.data.showDsc = !this.data.showDsc;
  391. this.setData({
  392. showDsc: this.data.showDsc
  393. })
  394. }
  395. },
  396. wsharetap: function (e) {
  397. var that = this;
  398. that.setData({
  399. wshareshow: true,
  400. })
  401. },
  402. videotap() {
  403. videoContext.play();
  404. wx.showLoading()
  405. },
  406. bindprogress() {
  407. setTimeout(() => {
  408. wx.hideLoading();
  409. },2000)
  410. this.setData({
  411. playflag: 1
  412. })
  413. },
  414. shareurltap: function (e) {
  415. var that = this;
  416. wx.showLoading({
  417. title: '加载中...',
  418. })
  419. if (this.data.bType == 'b') {
  420. util.schemefun('/share/pages/videoshare/videoshare', 'vid=' + that.data.video_id + '&userid=' + app.globalData.agentEmployeEid + '&ctp=' + app.globalData.clientype + '&agid=' + app.globalData.brokeruserId, that.data.video_id, 'video', '');
  421. } else {
  422. util.schemefun('/share/pages/videoshare/videoshare', 'vid=' + that.data.video_id + '&userid=' + app.globalData.personMsg.id + '&ctp=' + app.globalData.clientype, that.data.video_id, 'video', '');
  423. }
  424. this.sharelogtap();
  425. },
  426. sendfriendtap() {
  427. this.sharelogtap();
  428. },
  429. sharelogtap: function () {
  430. var that = this;
  431. this.setData({
  432. nowflag: false,
  433. })
  434. utils.$post({
  435. url: app.globalData.webUrl + 'api/share/addlog',
  436. header: {
  437. 'Authorization': 'bearer ' + app.globalData.token
  438. },
  439. data: {
  440. id: that.data.video_id,
  441. type: 'video'
  442. },
  443. success: function (r) {
  444. }
  445. })
  446. },
  447. collecTap: function () {
  448. var that = this;
  449. var vurl = '';
  450. var videoObj = that.data.videoObj;
  451. if (videoObj.collect == '0') {
  452. vurl = "api/video/collect"
  453. } else {
  454. vurl = "api/video/collectCancel"
  455. }
  456. utils.$post({
  457. url: app.globalData.webUrl + vurl,
  458. header: {
  459. 'Authorization': 'bearer ' + app.globalData.token
  460. },
  461. data: {
  462. id: that.data.video_id,
  463. },
  464. success: function (res) {
  465. if (res.data.code == "0") {
  466. if (videoObj.collect == '0') {
  467. videoObj.collect = 1;
  468. that.setData({
  469. videoObj: videoObj,
  470. alertFlag: true,
  471. alerText: res.data.msg
  472. })
  473. setTimeout(function () {
  474. that.setData({
  475. alertFlag: false,
  476. })
  477. }, 1000)
  478. } else {
  479. videoObj.collect = 0;
  480. that.setData({
  481. videoObj: videoObj,
  482. alertFlag: true,
  483. alerText: res.data.msg
  484. })
  485. setTimeout(function () {
  486. that.setData({
  487. alertFlag: false,
  488. })
  489. }, 1000)
  490. }
  491. } else {
  492. if (res.data.msg == '您已收藏') {
  493. videoObj.collect = 1;
  494. that.setData({
  495. videoObj: videoObj
  496. })
  497. }
  498. }
  499. }
  500. })
  501. },
  502. sharemsg: function () {
  503. var that = this;
  504. utils.$post({
  505. url: app.globalData.webUrl + 'api/video/info',
  506. header: {
  507. 'Authorization': 'bearer ' + app.globalData.token
  508. },
  509. data: {
  510. video_id: that.data.video_id
  511. },
  512. success: function (r) {
  513. if (r.data.code == '0') {
  514. r.data.data.video_url = r.data.data.video_url;
  515. r.data.data.description = r.data.data.title + '#' + r.data.data.description + '#';
  516. that.setData({
  517. title: r.data.data.title,
  518. videoObj: r.data.data,
  519. autoplay: true
  520. })
  521. wx.setNavigationBarTitle({
  522. title: r.data.data.title
  523. })
  524. videoContext = that.selectComponent('#myVideo');
  525. videoContext.play();
  526. }
  527. setTimeout(() => {
  528. wx.hideLoading()
  529. },2000)
  530. }
  531. })
  532. },
  533. signpricetap() {
  534. wx.showToast({
  535. title: "您是员工无需报价!",
  536. icon: 'none',
  537. duration: 2000
  538. })
  539. },
  540. prelooktap() {
  541. if (!app.globalData.personMsg.binded.qrcode) {
  542. wx.showToast({
  543. title: "您的二维码为空,请上传二维码!",
  544. icon: 'none',
  545. duration: 2000
  546. })
  547. return false;
  548. }
  549. wx.previewImage({
  550. current: app.globalData.imgUrl + app.globalData.personMsg.binded.qrcode, // 当前显示图片的http链接
  551. urls: [app.globalData.imgUrl + app.globalData.personMsg.binded.qrcode]// 需要预览的图片http链接列表
  552. })
  553. },
  554. callphonetap: function () {
  555. wx.makePhoneCall({
  556. phoneNumber: app.globalData.personMsg.phone
  557. })
  558. },
  559. /**
  560. * 生命周期函数--监听页面显示
  561. */
  562. onShow: function () {
  563. this.setData({
  564. personMsg: app.globalData.personMsg,
  565. companyobj: app.globalData.companyobj,
  566. })
  567. },
  568. /**
  569. * 生命周期函数--监听页面隐藏
  570. */
  571. onHide: function () {
  572. },
  573. /**
  574. * 生命周期函数--监听页面卸载
  575. */
  576. onUnload: function () {
  577. },
  578. /**
  579. * 页面相关事件处理函数--监听用户下拉动作
  580. */
  581. onPullDownRefresh: function () {
  582. },
  583. /**
  584. * 页面上拉触底事件的处理函数
  585. */
  586. onReachBottom: function () {
  587. },
  588. onShareAppMessage: function () {
  589. var img = this.data.videoObj.cover_share_img?this.data.videoObj.cover_share_img:this.data.videoObj.cover ? this.data.videoObj.cover : (this.data.videoObj.video_url + '?x-oss-process=video/snapshot,t_100,f_jpg,w_500,m_fast');
  590. if (this.data.bType == 'b') {
  591. this.sharelogtap();
  592. return {
  593. title: this.data.videoObj.title,
  594. imageUrl: img,
  595. path: '/share/pages/videoshare/videoshare?vid=' + this.data.video_id + '&userid=' + app.globalData.agentEmployeEid + '&ctp=' + app.globalData.clientype + '&agid=' + app.globalData.brokeruserId
  596. }
  597. } else {
  598. this.sharelogtap();
  599. return {
  600. title: this.data.videoObj.title,
  601. imageUrl: img,
  602. path: '/share/pages/videoshare/videoshare?vid=' + this.data.video_id + '&userid=' + app.globalData.personMsg.id + '&ctp=' + app.globalData.clientype
  603. }
  604. }
  605. }
  606. })