抖音c端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
преди 2 години
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. const app = getApp();
  2. const navigationBarHeight = (getApp().statusBarHeight + 50) + "px";
  3. const Http = require("../../../utils/HttpBasics");
  4. const config = require("../../../config/config");
  5. const util = require("../../../utils/util");
  6. const QR = require("../../../utils/memberqrcode.js");
  7. Page({
  8. data: {
  9. showIdFalg: false,
  10. navigationBarHeight,
  11. couponorderstatus: "",
  12. quancode: "",
  13. setInter: "",
  14. validStartDate: "",
  15. validEndDate: "",
  16. pickStartDate: "",
  17. pickEndDate: "",
  18. expiredTime: "",
  19. updateDate: "",
  20. createDate: "",
  21. code: "",
  22. data: {
  23. },
  24. showhieRq: false,
  25. dynamicRq: "",
  26. expiredSeconds: 0,
  27. couponTenantId: '',
  28. templTiem: "",
  29. curHtml: "",
  30. tenantId: '',
  31. mallList: ''
  32. },
  33. showId() {
  34. let this_ = this;
  35. if (!this_.data.showIdFalg) {
  36. tt.showModal({
  37. // title: "查看券码",
  38. content: "是否查看完整券码",
  39. success(res) {
  40. if (res.confirm) {
  41. console.log("confirm, continued");
  42. this_.setData({
  43. showIdFalg: true
  44. })
  45. } else if (res.cancel) {
  46. //取消
  47. console.log("cancel, cold");
  48. } else {
  49. // what happend?
  50. }
  51. },
  52. fail(err) {
  53. console.log(`showModal 调用失败`, err);
  54. },
  55. });
  56. } else {
  57. this.setData({
  58. showIdFalg: false
  59. })
  60. }
  61. },
  62. //获取适用门店
  63. getCouponMerchant(couponChannelId) {
  64. Http.get({
  65. url: config.api.couponMerchant,
  66. data: {
  67. couponChannelId: couponChannelId
  68. }
  69. }).then(res => {
  70. const keys = Object.keys(res.data)
  71. const mallList = []
  72. keys.forEach(item => {
  73. const arr = item.split('|')
  74. const obj = {
  75. tenantId: arr[0],
  76. mallName: arr[1],
  77. merchantVoList: res.data[item],
  78. expand: true
  79. }
  80. mallList.push(obj)
  81. })
  82. this.setData({
  83. mallList: mallList
  84. })
  85. console.log(this.mallList, 'mallList');
  86. }).catch(err => {
  87. })
  88. },
  89. getHtml(couponOrderId) {
  90. Http.get({
  91. url: config.api.couponHtmlDetailForPkg,
  92. data: {
  93. couponOrderId: couponOrderId
  94. }
  95. }).then(res => {
  96. console.log(res)
  97. if (res.code == 200 && res.data.html) {
  98. this.setData({
  99. curHtml: decodeURI(res.data.html)
  100. })
  101. // app.globalData.curHtml = this.data.curHtml;
  102. // console.log(app.globalData.curHtml)
  103. }
  104. })
  105. },
  106. onLoad: function (options) {
  107. let that = this;
  108. console.log(options);
  109. that.setData({
  110. code: options.quancode,
  111. codeS: options.quancode.slice(0, 4) + `******` + options.quancode.slice(14),
  112. couponorderstatus: options.couponorderstatus,
  113. validStatus: options.validStatus
  114. });
  115. if (options.couponorderstatus == 0 && options.validStatus != 0) {
  116. that.setRq() //动态二维码 //这个方法必须在拿到 options.quancode 后调用
  117. }
  118. //初始数据不能延时收到写一边
  119. Http.get({
  120. url: config.api.couponOrderDetail,
  121. data: {
  122. couponOrderId: options.quancode
  123. }
  124. }).then(res => {
  125. if (res.data.tenantId) {
  126. that.setData({
  127. tenantId: res.data.tenantId
  128. })
  129. that.setRq()
  130. that.getCouponMerchant(res.data.id)
  131. }
  132. that.setData({
  133. couponorderstatus: res.data.couponOrderStatus,
  134. data: res.data,
  135. });
  136. that.setData({
  137. expiredTime: util.formatTime(that.data.data.expiredTime, "yyyy-MM-dd hh:mm:ss"),
  138. updateDate: util.formatTime(that.data.data.updateDate, "yyyy-MM-dd hh:mm:ss"),
  139. createDate: util.formatTime(that.data.data.createDate, "yyyy-MM-dd hh:mm:ss")
  140. });
  141. if (res.data.contentType != undefined && res.data.contentType == 1) {
  142. //获取图文展示详情html
  143. that.setData({
  144. contentType: res.data.contentType
  145. })
  146. that.getHtml(options.quancode);
  147. }
  148. if (that.data.data.validStartDate && that.data.data.validEndDate) {
  149. that.setData({
  150. validStartDate: util.formatTime(that.data.data.validStartDate, "yyyy-MM-dd hh:mm:ss"),
  151. validEndDate: util.formatTime(that.data.data.validEndDate, "yyyy-MM-dd hh:mm:ss"),
  152. // pickStartDate: util.formatTime(res.data.pickStartDate, "yyyy-MM-dd hh:mm:ss"),
  153. // pickEndDate: util.formatTime(res.data.pickEndDate, "yyyy-MM-dd hh:mm:ss"),
  154. })
  155. }
  156. }).catch(err => {
  157. console.log(err, 'err');
  158. tt.showToast({
  159. title: err.message ? err.message : err.data,
  160. icon: 'none',
  161. duration: 2000,
  162. mask: false
  163. });
  164. })
  165. //
  166. //获得优惠券的详情
  167. let setInter = setInterval(function () {
  168. if (
  169. options.quancode &&
  170. that.data.couponorderstatus == 0
  171. ) {
  172. Http.get({
  173. url: config.api.couponOrderDetail,
  174. data: {
  175. couponOrderId: options.quancode
  176. }
  177. }).then(res => {
  178. console.log(res.data, '1233211234567');
  179. that.setData({
  180. couponorderstatus: res.data.couponOrderStatus,
  181. data: res.data,
  182. });
  183. if (res.data.tenantId) {
  184. that.setData({
  185. tenantId: res.data.tenantId
  186. })
  187. that.setRq()
  188. }
  189. console.log(that.data.tenantId, 'tenantId');
  190. that.setData({
  191. expiredTime: util.formatTime(that.data.data.expiredTime, "yyyy-MM-dd hh:mm:ss"),
  192. updateDate: util.formatTime(that.data.data.updateDate, "yyyy-MM-dd hh:mm:ss"),
  193. createDate: util.formatTime(that.data.data.createDate, "yyyy-MM-dd hh:mm:ss")
  194. });
  195. if (that.data.data.validStartDate && that.data.data.validEndDate) {
  196. that.setData({
  197. validStartDate: util.formatTime(that.data.data.validStartDate, "yyyy-MM-dd hh:mm:ss"),
  198. validEndDate: util.formatTime(that.data.data.validEndDate, "yyyy-MM-dd hh:mm:ss"),
  199. // pickStartDate: util.formatTime(res.data.pickStartDate, "yyyy-MM-dd hh:mm:ss"),
  200. // pickEndDate: util.formatTime(res.data.pickEndDate, "yyyy-MM-dd hh:mm:ss"),
  201. })
  202. }
  203. }).catch(err => {
  204. tt.showToast({
  205. title: err.message ? err.message : err.data,
  206. icon: 'none',
  207. duration: 2000,
  208. mask: false
  209. });
  210. })
  211. }
  212. }, 2000);
  213. that.setData({
  214. setInter: setInter
  215. })
  216. },
  217. setRq() {
  218. let _this = this
  219. _this.setData({
  220. showhieRq: false,
  221. })
  222. Http.get({ //获取动态二维码
  223. url: config.api.dynamicId,
  224. data: {
  225. couponOrderId: _this.data.code,
  226. couponTenantId: _this.data.tenantId || ''
  227. }
  228. }).then(res => {
  229. console.log(res, "res")
  230. _this.setData({
  231. dynamicRq: res.data.dynamicId,
  232. expiredSeconds: res.data.expiredSeconds,
  233. couponTenantId: res.data.couponTenantId
  234. })
  235. let url = JSON.stringify({
  236. END: "C",
  237. TYPE: "couponorder",
  238. ID: _this.data.dynamicRq,
  239. couponTenantId: _this.data.couponTenantId
  240. })
  241. if (res.data.expiredSeconds == 0) {
  242. } else {
  243. let inre = setInterval(() => {
  244. if (_this.data.expiredSeconds > 1) {
  245. _this.setData({
  246. expiredSeconds: _this.data.expiredSeconds - 1
  247. })
  248. console.log("有效", _this.data.expiredSeconds)
  249. } else {
  250. console.log("无效", _this.data.expiredSeconds)
  251. clearInterval(_this.data.templTiem)
  252. _this.setData({
  253. showhieRq: true
  254. })
  255. }
  256. }, 1000)
  257. _this.setData({
  258. templTiem: inre
  259. })
  260. }
  261. // util.qrcode("qrcode", url, 350, 350);
  262. _this.createQrCode(url, "qrcode", 210, 210);
  263. }).catch(err => {
  264. tt.showToast({
  265. title: err.message,
  266. icon: 'none',
  267. duration: 4000,
  268. mask: false
  269. });
  270. })
  271. },
  272. createQrCode: function (url, canvasId, cavW, cavH) {
  273. //调用插件中的draw方法,绘制二维码图片
  274. let that = this;
  275. QR.api.draw(url, canvasId, cavW, cavH, function (res) {
  276. that.setData({
  277. tempFilePath: res
  278. })
  279. });
  280. },
  281. onUnload: function () {
  282. let that = this;
  283. clearInterval(that.data.setInter);
  284. // clearInterval(that.data.templTiem);
  285. },
  286. onHide: function () {
  287. let that = this;
  288. clearInterval(that.data.setInter);
  289. // clearInterval(that.data.templTiem);
  290. },
  291. })