123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- const App = getApp();
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- // 页面参数
- options: null,
- // 待评价商品列表
- goodsList: [],
- // 表单数据
- formData: [],
- },
- submitDisable: false,
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function(options) {
- // 记录页面参数
- this.data.options = options;
- // 获取待评价商品列表
- this.getGoodsList();
- },
- /**
- * 获取待评价商品列表
- */
- getGoodsList: function() {
- let _this = this;
- App._get('sharing.comment/order', {
- order_id: this.data.options.order_id
- }, function(result) {
- let goodsList = result.data.goodsList;
- _this.setData({
- goodsList,
- formData: _this.initFormData(goodsList)
- });
- });
- },
- /**
- * 初始化form数据
- */
- initFormData: function(goodsList) {
- let data = [];
- goodsList.forEach(function(item) {
- data.push({
- goods_id: item.goods_id,
- order_goods_id: item.order_goods_id,
- score: 10,
- content: '',
- image_list: [],
- uploaded: []
- });
- });
- return data;
- },
- /**
- * 设置评分
- */
- setScore: function(e) {
- let dataset = e.currentTarget.dataset;
- this.setData({
- ['formData[' + dataset.index + '].score']: dataset.score
- });
- },
- /**
- * 输入评价内容
- */
- contentInput: function(e) {
- let index = e.currentTarget.dataset.index;
- this.setData({
- ['formData[' + index + '].content']: e.detail.value
- });
- },
- /**
- * 选择图片
- */
- chooseImage: function(e) {
- let _this = this,
- index = e.currentTarget.dataset.index,
- imageList = _this.data.formData[index].image_list;
- // 选择图片
- wx.chooseImage({
- count: 6 - imageList.length,
- sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
- sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
- success: function(res) {
- _this.setData({
- ['formData[' + index + '].image_list']: imageList.concat(res.tempFilePaths)
- });
- }
- });
- },
- /**
- * 删除图片
- */
- deleteImage: function(e) {
- let dataset = e.currentTarget.dataset,
- image_list = this.data.formData[dataset.index].image_list;
- image_list.splice(dataset.imageIndex, 1);
- this.setData({
- ['formData[' + dataset.index + '].image_list']: image_list
- });
- },
- /**
- * 表单提交
- */
- submit: function() {
- let _this = this,
- formData = _this.data.formData;
- // 判断是否重复提交
- if (_this.submitDisable === true) {
- return false;
- }
- // 表单提交按钮设为禁用 (防止重复提交)
- _this.submitDisable = true;
- wx.showLoading({
- title: '正在处理...',
- mask: true
- });
- // form提交执行函数
- let fromPostCall = function(formData) {
- console.log('fromPostCall');
- console.log(formData);
- App._post_form('sharing.comment/order', {
- order_id: _this.data.options.order_id,
- formData: JSON.stringify(formData)
- }, function(result) {
- if (result.code === 1) {
- App.showSuccess(result.msg, function() {
- wx.navigateBack();
- });
- } else {
- App.showError(result.msg);
- }
- },
- false,
- function() {
- wx.hideLoading();
- _this.submitDisable = false;
- });
- };
- // 统计图片数量
- let imagesLength = 0;
- formData.forEach(function(item, formIndex) {
- item.content !== '' && (imagesLength += item.image_list.length);
- });
- // 判断是否需要上传图片
- imagesLength > 0 ? _this.uploadFile(imagesLength, formData, fromPostCall) : fromPostCall(formData);
- },
- /**
- * 上传图片
- */
- uploadFile: function(imagesLength, formData, callBack) {
- // POST 参数
- let params = {
- wxapp_id: App.getWxappId(),
- token: wx.getStorageSync('token')
- };
- // 文件上传
- let i = 0;
- formData.forEach(function(item, formIndex) {
- if (item.content !== '') {
- item.image_list.forEach(function(filePath, fileKey) {
- wx.uploadFile({
- url: App.api_root + 'upload/image',
- filePath: filePath,
- name: 'iFile',
- formData: params,
- success: function(res) {
- let result = typeof res.data === "object" ? res.data : JSON.parse(res.data);
- if (result.code === 1) {
- item.uploaded[fileKey] = result.data.file_id;
- }
- },
- complete: function() {
- i++;
- if (imagesLength === i) {
- // 所有文件上传完成
- console.log('upload complete');
- // 执行回调函数
- callBack && callBack(formData);
- }
- }
- });
- });
- }
- });
- },
- })
|