review.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. // pages/review/review.js
  2. import {
  3. Http
  4. } from '../../../utils/httpClient.js';
  5. var app = getApp();
  6. import {
  7. URL
  8. } from '../../../utils/urlModel';
  9. Page({
  10. /**
  11. * 页面的初始数据
  12. */
  13. data: {
  14. /**
  15. * 项目根路径
  16. */
  17. PROJECT_ROOT: URL.PROJECT_ROOT,
  18. /**
  19. * 文件上传暂存数组
  20. */
  21. pics: [],
  22. /**
  23. * 上传完成预览暂存数组
  24. */
  25. previewSrcs: [],
  26. /**
  27. * 当前选择店铺Id
  28. */
  29. shopId: '',
  30. /**
  31. * 当前页码
  32. */
  33. page: 1,
  34. /**
  35. * 是否有图
  36. * 1:无图评价 2:有图评价
  37. */
  38. type: 1,
  39. /**
  40. * 评分
  41. */
  42. score: 5,
  43. /**
  44. * 评价内容
  45. */
  46. content: '',
  47. /**
  48. * 服务打分
  49. */
  50. service: 5,
  51. /**
  52. * 口味打分
  53. */
  54. taste: 5,
  55. /**
  56. * 环境打分
  57. */
  58. environment: 5,
  59. /**
  60. * 根据评分显示字体
  61. */
  62. font_score: ['超级差', '很差', '差', '一般', '好', '非常好'],
  63. /**
  64. * 订单号
  65. */
  66. orderNum: '',
  67. /**
  68. * 此时是否可以提交
  69. * 用于验证提交规则
  70. */
  71. isSubmit: false,
  72. },
  73. initData(options) {
  74. // console.log(options);
  75. var orderNum = options.orderNum;
  76. this.setData({
  77. orderNum: orderNum,
  78. serverPrefix:app.globalData.serverPrefix
  79. })
  80. },
  81. /**
  82. * 生命周期函数--监听页面加载
  83. */
  84. onLoad: function (options) {
  85. this.initData(options);
  86. },
  87. //评价文本框改变
  88. changeText(e) {
  89. this.setData({
  90. content: e.detail.value
  91. })
  92. },
  93. /**
  94. * 生命周期函数--监听页面显示
  95. */
  96. onShow: function () {
  97. },
  98. //获取token
  99. getToken() {
  100. var token = wx.getStorageSync('token');
  101. return token;
  102. },
  103. /**
  104. * 口味评分选中改变
  105. */
  106. tasteHandleChange: function (e) {
  107. this.setData({
  108. taste: e.detail.value
  109. })
  110. },
  111. /**
  112. * 口味评分选中改变
  113. */
  114. environmentHandleChange: function (e) {
  115. this.setData({
  116. environment: e.detail.value
  117. })
  118. },
  119. /**
  120. * 口味评分选中改变
  121. */
  122. serviceHandleChange: function (e) {
  123. this.setData({
  124. service: e.detail.value
  125. })
  126. },
  127. /**
  128. * 选择图片
  129. */
  130. selectImage: function () {
  131. var that = this,
  132. pics = this.data.pics;
  133. wx.chooseImage({
  134. count: 3, // 最多可以选择的图片张数,默认9
  135. sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
  136. sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
  137. success: function (res) {
  138. var imgsrc = res.tempFilePaths;
  139. pics = pics.concat(imgsrc);
  140. that.setData({
  141. pics: pics,
  142. previewSrcs: []
  143. });
  144. },
  145. complete: function () {
  146. // complete
  147. that.uploadimgs();
  148. }
  149. })
  150. },
  151. /**
  152. * 多张图片图片上传调用
  153. */
  154. uploadimgs: function () { //这里触发图片上传的方法
  155. var pics = this.data.pics;
  156. this.uploadimg({
  157. url: app.globalData.fileUrl + "/upload", //上传的接口
  158. path: pics //这里是选取的图片的地址数组
  159. });
  160. },
  161. /**
  162. * 图片上传专用方法
  163. * @param data
  164. */
  165. uploadimg: function (data) {
  166. var that = this,
  167. i = data.i ? data.i : 0, //当前上传的哪张图片
  168. success = data.success ? data.success : 0; //上传成功的个数
  169. wx.uploadFile({
  170. url: data.url,
  171. filePath: data.path[i],
  172. name: 'file', //这里根据自己的实际情况改
  173. header: {
  174. token: that.getToken()
  175. },
  176. success: (resp) => {
  177. success++; //图片上传成功,图片上传成功的变量+1
  178. var data = JSON.parse(resp.data)
  179. if (!data.success) {
  180. wx.showToast({
  181. title: '上传失败'
  182. });
  183. } else {
  184. that.data.previewSrcs.push(data.data.fileDownloadUri);
  185. that.setData({
  186. previewSrcs: that.data.previewSrcs
  187. })
  188. //这里可能有BUG,失败也会执行这里,所以这里应该是后台返回过来的状态码为成功时,这里的success才+1
  189. }
  190. },
  191. complete: () => {
  192. i++; //这个图片执行完上传后,开始上传下一张
  193. var length = data.path.length;
  194. if (length != 0 && i == length) { //当图片传完时,停止调用
  195. that.data.pics.length = 0; //图片上传完成清空队列
  196. } else if (length != 0 && i != length) { //若图片还没有传完,则继续调用函数
  197. data.i = i;
  198. data.success = success;
  199. that.uploadimg(data);
  200. }
  201. }
  202. });
  203. },
  204. /**
  205. * 点击发布按钮
  206. */
  207. clickIssue(e) {
  208. if(this.data.content==''){
  209. app.showErrMsg("请输入评价内容")
  210. return;
  211. }
  212. var argu = {
  213. content: this.data.content,
  214. pics: this.data.previewSrcs, //需要把参数转化为字符串
  215. serviceScore: this.data.service,
  216. tasteScore: this.data.taste,
  217. envScore: this.data.environment,
  218. orderNum: this.data.orderNum //订单号
  219. }
  220. wx.request({
  221. url: app.globalData.rootUrl+'/user/comment',
  222. method:'POST',
  223. header:{
  224. token:this.getToken()
  225. },
  226. data: argu,
  227. success(e){
  228. //跳转
  229. var data=e.data;
  230. app.showMsg(data.message)
  231. if(data.success){
  232. setTimeout(function(){
  233. wx.redirectTo({
  234. url: '/pages/sub_home_page/mytalk/mytalk',
  235. })
  236. },500)
  237. }
  238. }
  239. })
  240. // httpClient.postPutEvaluate(argu).then((data) => {
  241. // wx.showToast({
  242. // title: data.msg
  243. // })
  244. // if (data.code == 200) {
  245. // wx.navigateTo({
  246. // url: "../mytalk/mytalk"
  247. // })
  248. // }
  249. // });
  250. }
  251. })