diff --git a/application/api/controller/Order.php b/application/api/controller/Order.php
index c5b9f23d0..d97f3621c 100755
--- a/application/api/controller/Order.php
+++ b/application/api/controller/Order.php
@@ -12,6 +12,7 @@ namespace app\api\controller;
use app\service\PaymentService;
use app\service\OrderService;
+use app\service\GoodsCommentsService;
/**
* 我的订单
@@ -152,7 +153,18 @@ class Order extends Common
$data = OrderService::OrderList($data_params);
if(!empty($data['data'][0]))
{
- return DataReturn('success', 0, $data['data'][0]);
+ // 是否已评论
+ if($data['data'][0]['user_is_comments'] > 0)
+ {
+ return DataReturn('你已进行过评论', -100);
+ }
+
+ // 返回数据
+ $result = [
+ 'data' => $data['data'][0],
+ 'editor_path_type' => 'order_comments-'.$this->user['id'].'-'.$data['data'][0]['id'],
+ ];
+ return DataReturn('success', 0, $result);
}
return DataReturn('没有相关数据', -100);
}
diff --git a/application/api/controller/Orderaftersale.php b/application/api/controller/Orderaftersale.php
index 2f1cc6eaa..fba06eb08 100644
--- a/application/api/controller/Orderaftersale.php
+++ b/application/api/controller/Orderaftersale.php
@@ -137,7 +137,7 @@ class Orderaftersale extends Common
'return_money_goods_reason' => empty($return_money_goods_reason) ? [] : explode("\n", $return_money_goods_reason),
'aftersale_type_list' => lang('common_order_aftersale_type_list'),
'return_goods_address' => MyC('home_order_aftersale_return_goods_address', '管理员未填写', true),
- 'editor_path_type' => 'orderaftersale-'.$this->user['id'].'-'.$order_id.'-'.$order_detail_id,
+ 'editor_path_type' => 'order_aftersale-'.$this->user['id'].'-'.$order_id.'-'.$order_detail_id,
];
return DataReturn('success', 0, $result);
}
diff --git a/application/index/controller/Orderaftersale.php b/application/index/controller/Orderaftersale.php
index a7503a270..f7ba3b294 100644
--- a/application/index/controller/Orderaftersale.php
+++ b/application/index/controller/Orderaftersale.php
@@ -149,7 +149,7 @@ class Orderaftersale extends Common
$this->assign('common_order_aftersale_type_list', lang('common_order_aftersale_type_list'));
// 编辑器文件存放地址
- $this->assign('editor_path_type', 'orderaftersale-'.$this->user['id'].'-'.$order_id.'-'.$order_detail_id);
+ $this->assign('editor_path_type', 'order_aftersale-'.$this->user['id'].'-'.$order_id.'-'.$order_detail_id);
$this->assign('params', $params);
return $this->fetch();
diff --git a/application/service/ArticleService.php b/application/service/ArticleService.php
index 358141ba4..e7a24e0d9 100755
--- a/application/service/ArticleService.php
+++ b/application/service/ArticleService.php
@@ -65,6 +65,21 @@ class ArticleService
{
$v['content'] = ResourcesService::ContentStaticReplace($v['content'], 'get');
}
+
+ // 图片
+ if(isset($v['images']))
+ {
+ if(!empty($v['images']))
+ {
+ $images = json_decode($v['images'], true);
+ foreach($images as &$img)
+ {
+ $img = ResourcesService::AttachmentPathViewHandle($img);
+ }
+ $v['images'] = $images;
+ }
+ }
+
if(isset($v['add_time']))
{
$v['add_time_time'] = date('Y-m-d H:i:s', $v['add_time']);
@@ -214,15 +229,15 @@ class ArticleService
$content = isset($params['content']) ? htmlspecialchars_decode($params['content']) : '';
// 数据
- $image = self::MatchContentImage($content);
+ $images = self::MatchContentImage($content);
$data = [
'title' => $params['title'],
'title_color' => empty($params['title_color']) ? '' : $params['title_color'],
'article_category_id' => intval($params['article_category_id']),
'jump_url' => empty($params['jump_url']) ? '' : $params['jump_url'],
'content' => ResourcesService::ContentStaticReplace($content, 'add'),
- 'image' => empty($image) ? '' : json_encode($image),
- 'image_count' => count($image),
+ 'images' => empty($images) ? '' : json_encode($images),
+ 'images_count' => count($images),
'is_enable' => isset($params['is_enable']) ? intval($params['is_enable']) : 0,
'is_home_recommended' => isset($params['is_home_recommended']) ? intval($params['is_home_recommended']) : 0,
'seo_title' => empty($params['seo_title']) ? '' : $params['seo_title'],
diff --git a/application/service/CustomViewService.php b/application/service/CustomViewService.php
index dcb8ef8ba..ee4c92c67 100755
--- a/application/service/CustomViewService.php
+++ b/application/service/CustomViewService.php
@@ -56,6 +56,20 @@ class CustomViewService
$v['content'] = ResourcesService::ContentStaticReplace($v['content'], 'get');
}
+ // 图片
+ if(isset($v['images']))
+ {
+ if(!empty($v['images']))
+ {
+ $images = json_decode($v['images'], true);
+ foreach($images as &$img)
+ {
+ $img = ResourcesService::AttachmentPathViewHandle($img);
+ }
+ $v['images'] = $images;
+ }
+ }
+
// 时间
if(isset($v['add_time']))
{
@@ -198,12 +212,12 @@ class CustomViewService
$content = isset($params['content']) ? htmlspecialchars_decode($params['content']) : '';
// 数据
- $image = self::MatchContentImage($content);
+ $images = self::MatchContentImage($content);
$data = [
'title' => $params['title'],
'content' => ResourcesService::ContentStaticReplace($content, 'add'),
- 'image' => empty($image) ? '' : json_encode($image),
- 'image_count' => count($image),
+ 'images' => empty($images) ? '' : json_encode($images),
+ 'images_count' => count($images),
'is_enable' => isset($params['is_enable']) ? intval($params['is_enable']) : 0,
'is_header' => isset($params['is_header']) ? intval($params['is_header']) : 0,
'is_footer' => isset($params['is_footer']) ? intval($params['is_footer']) : 0,
diff --git a/application/service/GoodsCommentsService.php b/application/service/GoodsCommentsService.php
index c55a3d0f8..cb8d6655c 100644
--- a/application/service/GoodsCommentsService.php
+++ b/application/service/GoodsCommentsService.php
@@ -47,35 +47,20 @@ class GoodsCommentsService
'error_msg' => '业务类型标记不能为空',
],
[
- 'checked_type' => 'isset',
+ 'checked_type' => 'empty',
'key_name' => 'goods_id',
'error_msg' => '商品id有误',
],
[
- 'checked_type' => 'is_array',
- 'key_name' => 'goods_id',
- 'error_msg' => '商品数据格式有误',
- ],
- [
- 'checked_type' => 'isset',
+ 'checked_type' => 'empty',
'key_name' => 'rating',
'error_msg' => '评级有误',
],
[
- 'checked_type' => 'is_array',
- 'key_name' => 'rating',
- 'error_msg' => '评级数据格式有误',
- ],
- [
- 'checked_type' => 'isset',
+ 'checked_type' => 'empty',
'key_name' => 'content',
'error_msg' => '评论内容有误',
],
- [
- 'checked_type' => 'is_array',
- 'key_name' => 'content',
- 'error_msg' => '评论内容数据格式有误',
- ],
[
'checked_type' => 'empty',
'key_name' => 'user',
@@ -88,6 +73,63 @@ class GoodsCommentsService
return DataReturn($ret, -1);
}
+ // 参数处理
+ if(!is_array($params['goods_id']))
+ {
+ $params['goods_id'] = json_decode(htmlspecialchars_decode($params['goods_id']), true);
+ }
+ if(!is_array($params['rating']))
+ {
+ $params['rating'] = json_decode(htmlspecialchars_decode($params['rating']), true);
+ }
+ if(!is_array($params['content']))
+ {
+ $params['content'] = json_decode(htmlspecialchars_decode($params['content']), true);
+ }
+
+ // 评分
+ if(min($params['rating']) <= 0)
+ {
+ return DataReturn('评级有误', -1);
+ }
+ if(min($params['rating']) <= 0 || max($params['rating']) > 5)
+ {
+ return DataReturn('评级有误', -1);
+ }
+
+ // 评论内容
+ foreach($params['content'] as $v)
+ {
+ $len = mb_strlen($v, 'utf-8');
+ if($len < 6 || $len > 230)
+ {
+ return DataReturn('评论内容 6~230 个字符之间', -1);
+ }
+ }
+
+ // 附件处理
+ if(!empty($params['images']))
+ {
+ if(!is_array($params['images']))
+ {
+ $params['images'] = json_decode(htmlspecialchars_decode($params['images']), true);
+ }
+ foreach($params['images'] as &$v)
+ {
+ if(!empty($v))
+ {
+ foreach($v as &$vs)
+ {
+ $vs = ResourcesService::AttachmentPathHandle($vs);
+ }
+ if(count($v) > 3)
+ {
+ return DataReturn('每项评论图片不能超过3张', -1);
+ }
+ }
+ }
+ }
+
// 获取订单信息
$order_id = intval($params['id']);
$where = ['id'=>$order_id, 'user_id'=>$params['user']['id'], 'is_delete_time'=>0, 'user_is_delete_time'=>0];
@@ -108,6 +150,7 @@ class GoodsCommentsService
// 处理数据
Db::startTrans();
+ $is_anonymous = isset($params['is_anonymous']) ? min(1, intval($params['is_anonymous'])) : 0;
foreach($params['goods_id'] as $k=>$goods_id)
{
$data = [
@@ -117,8 +160,9 @@ class GoodsCommentsService
'goods_id' => $goods_id,
'business_type' => $params['business_type'],
'content' => isset($params['content'][$k]) ? htmlspecialchars(trim($params['content'][$k])) : '',
+ 'images' => empty($params['images'][$k]) ? '' : json_encode($params['images'][$k]),
'rating' => isset($params['rating'][$k]) ? intval($params['rating'][$k]) : 0,
- 'is_anonymous' => isset($params['is_anonymous']) ? min(1, intval($params['is_anonymous'])) : 0,
+ 'is_anonymous' => $is_anonymous,
'add_time' => time(),
];
if(Db::name('GoodsComments')->insertGetId($data) <= 0)
diff --git a/public/appmini/old/alipay/app.js b/public/appmini/old/alipay/app.js
index 1d9f055ea..25b2515b5 100644
--- a/public/appmini/old/alipay/app.js
+++ b/public/appmini/old/alipay/app.js
@@ -59,6 +59,7 @@ App({
"goods_comment": "商品评论",
"user_orderaftersale": "退款/售后",
"user_orderaftersale_detail": "订单售后",
+ "user_order_comments": "订单评论",
},
// 请求地址
diff --git a/public/appmini/old/alipay/app.json b/public/appmini/old/alipay/app.json
index 39578bdef..2aabc371f 100644
--- a/public/appmini/old/alipay/app.json
+++ b/public/appmini/old/alipay/app.json
@@ -16,6 +16,7 @@
"pages/user-address-save/user-address-save",
"pages/user-order/user-order",
"pages/user-order-detail/user-order-detail",
+ "pages/user-order-comments/user-order-comments",
"pages/user-faovr/user-faovr",
"pages/user-answer-list/user-answer-list",
"pages/answer-list/answer-list",
diff --git a/public/appmini/old/alipay/pages/user-order-comments/user-order-comments.axml b/public/appmini/old/alipay/pages/user-order-comments/user-order-comments.axml
new file mode 100644
index 000000000..f496e328e
--- /dev/null
+++ b/public/appmini/old/alipay/pages/user-order-comments/user-order-comments.axml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/appmini/old/alipay/pages/user-order-comments/user-order-comments.axss b/public/appmini/old/alipay/pages/user-order-comments/user-order-comments.axss
new file mode 100644
index 000000000..b8b453aaa
--- /dev/null
+++ b/public/appmini/old/alipay/pages/user-order-comments/user-order-comments.axss
@@ -0,0 +1,40 @@
+.goods-image {
+ width: 80rpx;
+ height: 80rpx;
+ margin-right: 20rpx;
+}
+.item-base {
+ margin: 10rpx 0 0 100rpx;
+}
+.item-base .xingxing-icon {
+ width: 60rpx;
+ height: 60rpx;
+ margin: 0 15rpx;
+ vertical-align: middle;
+}
+.item-base .msg-text {
+ margin-left: 20rpx;
+}
+.form-content {
+ margin-top: 20rpx;
+}
+.form-content textarea {
+ height: 160rpx !important;
+ min-height: 160rpx !important;
+}
+.form-container-upload {
+ margin-top: 10rpx;
+}
+.form-container-upload .form-upload-data image {
+ width: 100rpx;
+ height: 100rpx;
+ padding: 5rpx;
+}
+.form-container-upload .upload-icon {
+ margin: 10rpx 0 0 10rpx;
+ width: 110rpx;
+ height: 110rpx;
+}
+.anonymous .tips-text {
+ margin-top: 10rpx;
+}
\ No newline at end of file
diff --git a/public/appmini/old/alipay/pages/user-order-comments/user-order-comments.js b/public/appmini/old/alipay/pages/user-order-comments/user-order-comments.js
new file mode 100644
index 000000000..c0c55b3a2
--- /dev/null
+++ b/public/appmini/old/alipay/pages/user-order-comments/user-order-comments.js
@@ -0,0 +1,321 @@
+const app = getApp();
+Page({
+ data: {
+ data_list_loding_status: 1,
+ data_list_loding_msg: '',
+ params: null,
+
+ detail: null,
+ editor_path_type: '',
+ rating_msg: ['非常差', '差', '一般', '好', '非常好'],
+ anonymous_value: 0,
+ anonymous_msg_list: ['你写的评论会以匿名的形式展现', '你写的评论会以昵称的形式展现'],
+
+ form_rating_list: [],
+ form_images_list: [],
+ form_content_list: [],
+ form_button_disabled: false,
+ },
+
+ onLoad(params) {
+ this.setData({ params: params });
+ this.init();
+ },
+
+ onShow() {
+ wx.setNavigationBarTitle({ title: app.data.common_pages_title.user_order_comments });
+ },
+
+ init() {
+ var self = this;
+ wx.showLoading({ title: "加载中..." });
+ this.setData({
+ data_list_loding_status: 1
+ });
+
+ wx.request({
+ url: app.get_request_url("comments", "order"),
+ method: "POST",
+ data: {
+ id: this.data.params.id
+ },
+ dataType: "json",
+ success: res => {
+ wx.hideLoading();
+ wx.stopPullDownRefresh();
+ if (res.data.code == 0) {
+ var data = res.data.data;
+ self.setData({
+ editor_path_type: data.editor_path_type || '',
+ detail: data.data,
+ data_list_loding_status: 3,
+ data_list_loding_msg: '',
+ });
+ } else {
+ self.setData({
+ data_list_loding_status: 2,
+ data_list_loding_msg: res.data.msg,
+ });
+ app.showToast(res.data.msg);
+ }
+ },
+ fail: () => {
+ wx.hideLoading();
+ wx.stopPullDownRefresh();
+ self.setData({
+ data_list_loding_status: 2,
+ data_list_loding_msg: '服务器请求出错',
+ });
+ app.showToast("服务器请求出错");
+ }
+ });
+ },
+
+ // 上传图片预览
+ upload_show_event(e) {
+ var index = e.currentTarget.dataset.index;
+ var ix = e.currentTarget.dataset.ix;
+ wx.previewImage({
+ current: this.data.form_images_list[index][ix],
+ urls: this.data.form_images_list[index],
+ });
+ },
+
+ // 图片删除
+ upload_delete_event(e) {
+ var index = e.currentTarget.dataset.index;
+ var ix = e.currentTarget.dataset.ix;
+ var self = this;
+ wx.showModal({
+ title: '温馨提示',
+ content: '删除后不可恢复、继续吗?',
+ success(res) {
+ if (res.confirm) {
+ var list = self.data.form_images_list;
+ list[index].splice(ix, 1);
+ self.setData({
+ form_images_list: list,
+ });
+ }
+ }
+ });
+ },
+
+ // 文件上传
+ file_upload_event(e) {
+ // 数据初始化
+ var index = e.currentTarget.dataset.index;
+ var temp_list = this.data.form_images_list;
+ var length = this.data.detail.items.length;
+ for (var i = 0; i < length; i++) {
+ if (temp_list[i] == undefined) {
+ temp_list[i] = [];
+ }
+ }
+ this.setData({ form_images_list: temp_list});
+
+ // 处理上传文件
+ var self = this;
+ wx.chooseImage({
+ count: 3,
+ success(res) {
+ var success = 0;
+ var fail = 0;
+ var length = res.tempFilePaths.length;
+ var count = 0;
+ self.upload_one_by_one(index, res.tempFilePaths, success, fail, count, length);
+ }
+ });
+ },
+
+ // 采用递归的方式上传多张
+ upload_one_by_one(index, img_paths, success, fail, count, length) {
+ var self = this;
+ if ((self.data.form_images_list[index] || null) == null || self.data.form_images_list[index].length < 3) {
+ wx.uploadFile({
+ url: app.get_request_url("index", "ueditor"),
+ filePath: img_paths[count],
+ name: 'upfile',
+ formData: {
+ action: 'uploadimage',
+ path_type: self.data.editor_path_type
+ },
+ success: function (res) {
+ success++;
+ if (res.statusCode == 200) {
+ var data = (typeof (res.data) == 'object') ? res.data : JSON.parse(res.data);
+ if (data.code == 0 && (data.data.url || null) != null) {
+ var list = self.data.form_images_list;
+ if ((list[index] || null) == null)
+ {
+ list[index] = [];
+ }
+ list[index].push(data.data.url);
+ self.setData({ form_images_list: list });
+ } else {
+ app.showToast(data.msg);
+ }
+ }
+ },
+ fail: function (e) {
+ fail++;
+ },
+ complete: function (e) {
+ count++; // 下一张
+ if (count >= length) {
+ // 上传完毕,作一下提示
+ //app.showToast('上传成功' + success +'张', 'success');
+ } else {
+ // 递归调用,上传下一张
+ self.upload_one_by_one(index, img_paths, success, fail, count, length);
+ }
+ }
+ });
+ }
+ },
+
+ // 是否匿名事件
+ anonymous_event(e) {
+ this.setData({ anonymous_value: e.detail.value == true ? 1 : 0});
+ },
+
+ // 评分事件
+ rating_event(e) {
+ // 参数
+ var index = e.currentTarget.dataset.index;
+ var value = e.currentTarget.dataset.value;
+
+ // 数据初始化/赋值
+ var temp_list = this.data.form_rating_list;
+ var length = this.data.detail.items.length;
+ for(var i=0; i 5)
+ {
+ app.showToast('评分有误');
+ return false;
+ }
+
+ // 内容校验
+ var count = this.data.form_content_list.length;
+ if (count < length) {
+ app.showToast('请填写评论内容');
+ return false;
+ }
+ for (var i in this.data.form_content_list)
+ {
+ var count = this.data.form_content_list[i].length;
+ if (count < 6 || count > 230)
+ {
+ app.showToast('评论内容 6~230 个字符之间');
+ return false;
+ }
+ }
+
+ // 图片校验
+ if (this.data.form_images_list.length > 0)
+ {
+ for (var i in this.data.form_images_list)
+ {
+ if (this.data.form_images_list[i].length > 3)
+ {
+ app.showToast('每项评论图片不能超过3张');
+ return false;
+ }
+ }
+ }
+
+ // 表单数据
+ var form_data = e.detail.value;
+ form_data['is_anonymous'] = form_data['is_anonymous'] == true ? 1 : 0;
+ form_data['id'] = this.data.detail.id;
+ form_data['goods_id'] = JSON.stringify(this.data.detail.items.map(function (v) { return v.goods_id }));
+ form_data['rating'] = JSON.stringify(this.data.form_rating_list);
+ form_data['content'] = JSON.stringify(this.data.form_content_list);
+ form_data['images'] = (this.data.form_images_list.length > 0) ? JSON.stringify(this.data.form_images_list) : '';
+
+ // 提交表单
+ var self = this;
+ wx.showLoading({ title: "处理中..." });
+ self.setData({ form_button_disabled: true });
+ wx.request({
+ url: app.get_request_url("commentssave", "order"),
+ method: "POST",
+ data: form_data,
+ dataType: "json",
+ header: { 'content-type': 'application/x-www-form-urlencoded' },
+ success: res => {
+ wx.hideLoading();
+ if (res.data.code == 0) {
+ app.showToast(res.data.msg, "success");
+ setTimeout(function () {
+ wx.navigateBack();
+ }, 2000);
+ } else {
+ self.setData({ form_button_disabled: false });
+ app.showToast(res.data.msg);
+ }
+ },
+ fail: () => {
+ wx.hideLoading();
+ self.setData({ form_button_disabled: false });
+ app.showToast("服务器请求出错");
+ }
+ });
+
+ },
+
+ // 下拉刷新
+ onPullDownRefresh() {
+ this.init();
+ },
+
+});
diff --git a/public/appmini/old/alipay/pages/user-order-comments/user-order-comments.json b/public/appmini/old/alipay/pages/user-order-comments/user-order-comments.json
new file mode 100644
index 000000000..331ad4f3d
--- /dev/null
+++ b/public/appmini/old/alipay/pages/user-order-comments/user-order-comments.json
@@ -0,0 +1,3 @@
+{
+ "enablePullDownRefresh": true
+}
\ No newline at end of file
diff --git a/public/appmini/old/alipay/pages/user-order/user-order.axml b/public/appmini/old/alipay/pages/user-order/user-order.axml
index 1dd7c31ab..35147a5c4 100755
--- a/public/appmini/old/alipay/pages/user-order/user-order.axml
+++ b/public/appmini/old/alipay/pages/user-order/user-order.axml
@@ -34,15 +34,12 @@
{{item.describe}}
-
-
-
-
-
+
+
+
+
+
+
diff --git a/public/appmini/old/alipay/pages/user-order/user-order.js b/public/appmini/old/alipay/pages/user-order/user-order.js
index 2b7b1477a..3eac29570 100755
--- a/public/appmini/old/alipay/pages/user-order/user-order.js
+++ b/public/appmini/old/alipay/pages/user-order/user-order.js
@@ -41,11 +41,11 @@ Page({
params: params,
nav_status_index: nav_status_index,
});
- this.init();
},
onShow() {
my.setNavigationBar({title: app.data.common_pages_title.user_order});
+ this.init();
},
init() {
@@ -393,4 +393,11 @@ Page({
url: "/pages/user-orderaftersale-detail/user-orderaftersale-detail?oid=" + oid+"&did="+did
});
},
+
+ // 订单评论
+ comments_event(e) {
+ my.navigateTo({
+ url: "/pages/user-order-comments/user-order-comments?id=" + e.target.dataset.value
+ });
+ },
});
diff --git a/public/appmini/old/baidu/app.js b/public/appmini/old/baidu/app.js
index d01c20754..0aee4fc53 100755
--- a/public/appmini/old/baidu/app.js
+++ b/public/appmini/old/baidu/app.js
@@ -54,6 +54,7 @@ App({
"goods_comment": "商品评论",
"user_orderaftersale": "退款/售后",
"user_orderaftersale_detail": "订单售后",
+ "user_order_comments": "订单评论",
},
// 请求地址
diff --git a/public/appmini/old/baidu/app.json b/public/appmini/old/baidu/app.json
index f210a37a4..1c43ee16a 100755
--- a/public/appmini/old/baidu/app.json
+++ b/public/appmini/old/baidu/app.json
@@ -16,6 +16,7 @@
"pages/user-address-save/user-address-save",
"pages/user-order/user-order",
"pages/user-order-detail/user-order-detail",
+ "pages/user-order-comments/user-order-comments",
"pages/user-faovr/user-faovr",
"pages/user-answer-list/user-answer-list",
"pages/answer-list/answer-list",
diff --git a/public/appmini/old/baidu/pages/user-order-comments/user-order-comments.css b/public/appmini/old/baidu/pages/user-order-comments/user-order-comments.css
new file mode 100644
index 000000000..b8b453aaa
--- /dev/null
+++ b/public/appmini/old/baidu/pages/user-order-comments/user-order-comments.css
@@ -0,0 +1,40 @@
+.goods-image {
+ width: 80rpx;
+ height: 80rpx;
+ margin-right: 20rpx;
+}
+.item-base {
+ margin: 10rpx 0 0 100rpx;
+}
+.item-base .xingxing-icon {
+ width: 60rpx;
+ height: 60rpx;
+ margin: 0 15rpx;
+ vertical-align: middle;
+}
+.item-base .msg-text {
+ margin-left: 20rpx;
+}
+.form-content {
+ margin-top: 20rpx;
+}
+.form-content textarea {
+ height: 160rpx !important;
+ min-height: 160rpx !important;
+}
+.form-container-upload {
+ margin-top: 10rpx;
+}
+.form-container-upload .form-upload-data image {
+ width: 100rpx;
+ height: 100rpx;
+ padding: 5rpx;
+}
+.form-container-upload .upload-icon {
+ margin: 10rpx 0 0 10rpx;
+ width: 110rpx;
+ height: 110rpx;
+}
+.anonymous .tips-text {
+ margin-top: 10rpx;
+}
\ No newline at end of file
diff --git a/public/appmini/old/baidu/pages/user-order-comments/user-order-comments.js b/public/appmini/old/baidu/pages/user-order-comments/user-order-comments.js
new file mode 100644
index 000000000..1c991d8ea
--- /dev/null
+++ b/public/appmini/old/baidu/pages/user-order-comments/user-order-comments.js
@@ -0,0 +1,311 @@
+const app = getApp();
+Page({
+ data: {
+ data_list_loding_status: 1,
+ data_list_loding_msg: '',
+ params: null,
+
+ detail: null,
+ editor_path_type: '',
+ rating_msg: ['非常差', '差', '一般', '好', '非常好'],
+ anonymous_value: 0,
+ anonymous_msg_list: ['你写的评论会以匿名的形式展现', '你写的评论会以昵称的形式展现'],
+
+ form_rating_list: [],
+ form_images_list: [],
+ form_content_list: [],
+ form_button_disabled: false
+ },
+
+ onLoad(params) {
+ this.setData({ params: params });
+ this.init();
+ },
+
+ onShow() {
+ swan.setNavigationBarTitle({ title: app.data.common_pages_title.user_order_comments });
+ },
+
+ init() {
+ var self = this;
+ swan.showLoading({ title: "加载中..." });
+ this.setData({
+ data_list_loding_status: 1
+ });
+
+ swan.request({
+ url: app.get_request_url("comments", "order"),
+ method: "POST",
+ data: {
+ id: this.data.params.id
+ },
+ dataType: "json",
+ success: res => {
+ swan.hideLoading();
+ swan.stopPullDownRefresh();
+ if (res.data.code == 0) {
+ var data = res.data.data;
+ self.setData({
+ editor_path_type: data.editor_path_type || '',
+ detail: data.data,
+ data_list_loding_status: 3,
+ data_list_loding_msg: ''
+ });
+ } else {
+ self.setData({
+ data_list_loding_status: 2,
+ data_list_loding_msg: res.data.msg
+ });
+ app.showToast(res.data.msg);
+ }
+ },
+ fail: () => {
+ swan.hideLoading();
+ swan.stopPullDownRefresh();
+ self.setData({
+ data_list_loding_status: 2,
+ data_list_loding_msg: '服务器请求出错'
+ });
+ app.showToast("服务器请求出错");
+ }
+ });
+ },
+
+ // 上传图片预览
+ upload_show_event(e) {
+ var index = e.currentTarget.dataset.index;
+ var ix = e.currentTarget.dataset.ix;
+ swan.previewImage({
+ current: this.data.form_images_list[index][ix],
+ urls: this.data.form_images_list[index]
+ });
+ },
+
+ // 图片删除
+ upload_delete_event(e) {
+ var index = e.currentTarget.dataset.index;
+ var ix = e.currentTarget.dataset.ix;
+ var self = this;
+ swan.showModal({
+ title: '温馨提示',
+ content: '删除后不可恢复、继续吗?',
+ success(res) {
+ if (res.confirm) {
+ var list = self.data.form_images_list;
+ list[index].splice(ix, 1);
+ self.setData({
+ form_images_list: list
+ });
+ }
+ }
+ });
+ },
+
+ // 文件上传
+ file_upload_event(e) {
+ // 数据初始化
+ var index = e.currentTarget.dataset.index;
+ var temp_list = this.data.form_images_list;
+ var length = this.data.detail.items.length;
+ for (var i = 0; i < length; i++) {
+ if (temp_list[i] == undefined) {
+ temp_list[i] = [];
+ }
+ }
+ this.setData({ form_images_list: temp_list });
+
+ // 处理上传文件
+ var self = this;
+ swan.chooseImage({
+ count: 3,
+ success(res) {
+ var success = 0;
+ var fail = 0;
+ var length = res.tempFilePaths.length;
+ var count = 0;
+ self.upload_one_by_one(index, res.tempFilePaths, success, fail, count, length);
+ }
+ });
+ },
+
+ // 采用递归的方式上传多张
+ upload_one_by_one(index, img_paths, success, fail, count, length) {
+ var self = this;
+ if ((self.data.form_images_list[index] || null) == null || self.data.form_images_list[index].length < 3) {
+ swan.uploadFile({
+ url: app.get_request_url("index", "ueditor"),
+ filePath: img_paths[count],
+ name: 'upfile',
+ formData: {
+ action: 'uploadimage',
+ path_type: self.data.editor_path_type
+ },
+ success: function (res) {
+ success++;
+ if (res.statusCode == 200) {
+ var data = typeof res.data == 'object' ? res.data : JSON.parse(res.data);
+ if (data.code == 0 && (data.data.url || null) != null) {
+ var list = self.data.form_images_list;
+ if ((list[index] || null) == null) {
+ list[index] = [];
+ }
+ list[index].push(data.data.url);
+ self.setData({ form_images_list: list });
+ } else {
+ app.showToast(data.msg);
+ }
+ }
+ },
+ fail: function (e) {
+ fail++;
+ },
+ complete: function (e) {
+ count++; // 下一张
+ if (count >= length) {
+ // 上传完毕,作一下提示
+ //app.showToast('上传成功' + success +'张', 'success');
+ } else {
+ // 递归调用,上传下一张
+ self.upload_one_by_one(index, img_paths, success, fail, count, length);
+ }
+ }
+ });
+ }
+ },
+
+ // 是否匿名事件
+ anonymous_event(e) {
+ this.setData({ anonymous_value: e.detail.value == true ? 1 : 0 });
+ },
+
+ // 评分事件
+ rating_event(e) {
+ // 参数
+ var index = e.currentTarget.dataset.index;
+ var value = e.currentTarget.dataset.value;
+
+ // 数据初始化/赋值
+ var temp_list = this.data.form_rating_list;
+ var length = this.data.detail.items.length;
+ for (var i = 0; i < length; i++) {
+ if (temp_list[i] == undefined) {
+ temp_list[i] = 0;
+ }
+ if (index == i) {
+ temp_list[i] = value;
+ }
+ }
+ this.setData({ form_rating_list: temp_list });
+ },
+
+ // 评论内容
+ form_content_event(e) {
+ // 参数
+ var index = e.currentTarget.dataset.index;
+ var value = e.detail.value;
+
+ // 数据初始化/赋值
+ var temp_list = this.data.form_content_list;
+ var length = this.data.detail.items.length;
+ for (var i = 0; i < length; i++) {
+ if (temp_list[i] == undefined) {
+ temp_list[i] = '';
+ }
+ if (index == i) {
+ temp_list[i] = value;
+ }
+ }
+ this.setData({
+ form_content_list: temp_list
+ });
+ },
+
+ // 表单
+ formSubmit(e) {
+ // 商品数量
+ var length = this.data.detail.items.length;
+
+ // 评分校验
+ var count = this.data.form_rating_list.length;
+ if (count < length) {
+ app.showToast('请评分');
+ return false;
+ }
+ var max = Math.max.apply(null, this.data.form_rating_list);
+ var min = Math.min.apply(null, this.data.form_rating_list);
+ if (min < 1 || max > 5) {
+ app.showToast('评分有误');
+ return false;
+ }
+
+ // 内容校验
+ var count = this.data.form_content_list.length;
+ if (count < length) {
+ app.showToast('请填写评论内容');
+ return false;
+ }
+ for (var i in this.data.form_content_list) {
+ var count = this.data.form_content_list[i].length;
+ if (count < 6 || count > 230) {
+ app.showToast('评论内容 6~230 个字符之间');
+ return false;
+ }
+ }
+
+ // 图片校验
+ if (this.data.form_images_list.length > 0) {
+ for (var i in this.data.form_images_list) {
+ if (this.data.form_images_list[i].length > 3) {
+ app.showToast('每项评论图片不能超过3张');
+ return false;
+ }
+ }
+ }
+
+ // 表单数据
+ var form_data = e.detail.value;
+ form_data['is_anonymous'] = form_data['is_anonymous'] == true ? 1 : 0;
+ form_data['id'] = this.data.detail.id;
+ form_data['goods_id'] = JSON.stringify(this.data.detail.items.map(function (v) {
+ return v.goods_id;
+ }));
+ form_data['rating'] = JSON.stringify(this.data.form_rating_list);
+ form_data['content'] = JSON.stringify(this.data.form_content_list);
+ form_data['images'] = this.data.form_images_list.length > 0 ? JSON.stringify(this.data.form_images_list) : '';
+
+ // 提交表单
+ var self = this;
+ swan.showLoading({ title: "处理中..." });
+ self.setData({ form_button_disabled: true });
+ swan.request({
+ url: app.get_request_url("commentssave", "order"),
+ method: "POST",
+ data: form_data,
+ dataType: "json",
+ header: { 'content-type': 'application/x-www-form-urlencoded' },
+ success: res => {
+ swan.hideLoading();
+ if (res.data.code == 0) {
+ app.showToast(res.data.msg, "success");
+ setTimeout(function () {
+ swan.navigateBack();
+ }, 2000);
+ } else {
+ self.setData({ form_button_disabled: false });
+ app.showToast(res.data.msg);
+ }
+ },
+ fail: () => {
+ swan.hideLoading();
+ self.setData({ form_button_disabled: false });
+ app.showToast("服务器请求出错");
+ }
+ });
+ },
+
+ // 下拉刷新
+ onPullDownRefresh() {
+ this.init();
+ }
+
+});
\ No newline at end of file
diff --git a/public/appmini/old/baidu/pages/user-order-comments/user-order-comments.json b/public/appmini/old/baidu/pages/user-order-comments/user-order-comments.json
new file mode 100644
index 000000000..331ad4f3d
--- /dev/null
+++ b/public/appmini/old/baidu/pages/user-order-comments/user-order-comments.json
@@ -0,0 +1,3 @@
+{
+ "enablePullDownRefresh": true
+}
\ No newline at end of file
diff --git a/public/appmini/old/baidu/pages/user-order-comments/user-order-comments.swan b/public/appmini/old/baidu/pages/user-order-comments/user-order-comments.swan
new file mode 100644
index 000000000..c9ae46b09
--- /dev/null
+++ b/public/appmini/old/baidu/pages/user-order-comments/user-order-comments.swan
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/appmini/old/baidu/pages/user-order/user-order.js b/public/appmini/old/baidu/pages/user-order/user-order.js
index 6729a34d2..719ed8e42 100755
--- a/public/appmini/old/baidu/pages/user-order/user-order.js
+++ b/public/appmini/old/baidu/pages/user-order/user-order.js
@@ -34,11 +34,11 @@ Page({
params: params,
nav_status_index: nav_status_index
});
- this.init();
},
onShow() {
swan.setNavigationBarTitle({ title: app.data.common_pages_title.user_order });
+ this.init();
},
init() {
@@ -368,4 +368,11 @@ Page({
url: "/pages/user-orderaftersale-detail/user-orderaftersale-detail?oid=" + oid + "&did=" + did
});
},
+
+ // 订单评论
+ comments_event(e) {
+ swan.navigateTo({
+ url: "/pages/user-order-comments/user-order-comments?id=" + e.currentTarget.dataset.value
+ });
+ },
});
\ No newline at end of file
diff --git a/public/appmini/old/baidu/pages/user-order/user-order.swan b/public/appmini/old/baidu/pages/user-order/user-order.swan
index ef1382be1..5359c8c13 100755
--- a/public/appmini/old/baidu/pages/user-order/user-order.swan
+++ b/public/appmini/old/baidu/pages/user-order/user-order.swan
@@ -34,15 +34,12 @@
{{item.describe}}
-
-
-
-
-
+
+
+
+
+
+
diff --git a/public/appmini/old/weixin/app.json b/public/appmini/old/weixin/app.json
index f333b0e70..d7ea853cf 100755
--- a/public/appmini/old/weixin/app.json
+++ b/public/appmini/old/weixin/app.json
@@ -1,5 +1,5 @@
{
- "pages": ["pages/user-order-comments/user-order-comments",
+ "pages": ["pages/user-order/user-order",
"pages/index/index",
"pages/goods-category/goods-category",
"pages/cart/cart",
@@ -14,8 +14,9 @@
"pages/buy/buy",
"pages/user-address/user-address",
"pages/user-address-save/user-address-save",
- "pages/user-order/user-order",
+
"pages/user-order-detail/user-order-detail",
+ "pages/user-order-comments/user-order-comments",
"pages/user-faovr/user-faovr",
"pages/user-answer-list/user-answer-list",
"pages/answer-list/answer-list",
diff --git a/public/appmini/old/weixin/pages/user-order-comments/user-order-comments.js b/public/appmini/old/weixin/pages/user-order-comments/user-order-comments.js
index c3b0f4b91..c0c55b3a2 100644
--- a/public/appmini/old/weixin/pages/user-order-comments/user-order-comments.js
+++ b/public/appmini/old/weixin/pages/user-order-comments/user-order-comments.js
@@ -6,12 +6,18 @@ Page({
params: null,
detail: null,
- rating_list: [],
+ editor_path_type: '',
rating_msg: ['非常差', '差', '一般', '好', '非常好'],
+ anonymous_value: 0,
+ anonymous_msg_list: ['你写的评论会以匿名的形式展现', '你写的评论会以昵称的形式展现'],
+
+ form_rating_list: [],
+ form_images_list: [],
+ form_content_list: [],
+ form_button_disabled: false,
},
onLoad(params) {
- params['id'] = 3;
this.setData({ params: params });
this.init();
},
@@ -28,7 +34,7 @@ Page({
});
wx.request({
- url: app.get_request_url("detail", "order"),
+ url: app.get_request_url("comments", "order"),
method: "POST",
data: {
id: this.data.params.id
@@ -40,7 +46,8 @@ Page({
if (res.data.code == 0) {
var data = res.data.data;
self.setData({
- detail: data,
+ editor_path_type: data.editor_path_type || '',
+ detail: data.data,
data_list_loding_status: 3,
data_list_loding_msg: '',
});
@@ -64,20 +71,246 @@ Page({
});
},
+ // 上传图片预览
+ upload_show_event(e) {
+ var index = e.currentTarget.dataset.index;
+ var ix = e.currentTarget.dataset.ix;
+ wx.previewImage({
+ current: this.data.form_images_list[index][ix],
+ urls: this.data.form_images_list[index],
+ });
+ },
+
+ // 图片删除
+ upload_delete_event(e) {
+ var index = e.currentTarget.dataset.index;
+ var ix = e.currentTarget.dataset.ix;
+ var self = this;
+ wx.showModal({
+ title: '温馨提示',
+ content: '删除后不可恢复、继续吗?',
+ success(res) {
+ if (res.confirm) {
+ var list = self.data.form_images_list;
+ list[index].splice(ix, 1);
+ self.setData({
+ form_images_list: list,
+ });
+ }
+ }
+ });
+ },
+
+ // 文件上传
+ file_upload_event(e) {
+ // 数据初始化
+ var index = e.currentTarget.dataset.index;
+ var temp_list = this.data.form_images_list;
+ var length = this.data.detail.items.length;
+ for (var i = 0; i < length; i++) {
+ if (temp_list[i] == undefined) {
+ temp_list[i] = [];
+ }
+ }
+ this.setData({ form_images_list: temp_list});
+
+ // 处理上传文件
+ var self = this;
+ wx.chooseImage({
+ count: 3,
+ success(res) {
+ var success = 0;
+ var fail = 0;
+ var length = res.tempFilePaths.length;
+ var count = 0;
+ self.upload_one_by_one(index, res.tempFilePaths, success, fail, count, length);
+ }
+ });
+ },
+
+ // 采用递归的方式上传多张
+ upload_one_by_one(index, img_paths, success, fail, count, length) {
+ var self = this;
+ if ((self.data.form_images_list[index] || null) == null || self.data.form_images_list[index].length < 3) {
+ wx.uploadFile({
+ url: app.get_request_url("index", "ueditor"),
+ filePath: img_paths[count],
+ name: 'upfile',
+ formData: {
+ action: 'uploadimage',
+ path_type: self.data.editor_path_type
+ },
+ success: function (res) {
+ success++;
+ if (res.statusCode == 200) {
+ var data = (typeof (res.data) == 'object') ? res.data : JSON.parse(res.data);
+ if (data.code == 0 && (data.data.url || null) != null) {
+ var list = self.data.form_images_list;
+ if ((list[index] || null) == null)
+ {
+ list[index] = [];
+ }
+ list[index].push(data.data.url);
+ self.setData({ form_images_list: list });
+ } else {
+ app.showToast(data.msg);
+ }
+ }
+ },
+ fail: function (e) {
+ fail++;
+ },
+ complete: function (e) {
+ count++; // 下一张
+ if (count >= length) {
+ // 上传完毕,作一下提示
+ //app.showToast('上传成功' + success +'张', 'success');
+ } else {
+ // 递归调用,上传下一张
+ self.upload_one_by_one(index, img_paths, success, fail, count, length);
+ }
+ }
+ });
+ }
+ },
+
+ // 是否匿名事件
+ anonymous_event(e) {
+ this.setData({ anonymous_value: e.detail.value == true ? 1 : 0});
+ },
+
// 评分事件
rating_event(e) {
- console.log(e.currentTarget.dataset)
+ // 参数
var index = e.currentTarget.dataset.index;
- var tx = e.currentTarget.dataset.tx;
var value = e.currentTarget.dataset.value;
- var temp_list = this.data.rating_list;
- temp_list[index] = value;
- this.setData({ rating_list: temp_list});
+
+ // 数据初始化/赋值
+ var temp_list = this.data.form_rating_list;
+ var length = this.data.detail.items.length;
+ for(var i=0; i 5)
+ {
+ app.showToast('评分有误');
+ return false;
+ }
+
+ // 内容校验
+ var count = this.data.form_content_list.length;
+ if (count < length) {
+ app.showToast('请填写评论内容');
+ return false;
+ }
+ for (var i in this.data.form_content_list)
+ {
+ var count = this.data.form_content_list[i].length;
+ if (count < 6 || count > 230)
+ {
+ app.showToast('评论内容 6~230 个字符之间');
+ return false;
+ }
+ }
+
+ // 图片校验
+ if (this.data.form_images_list.length > 0)
+ {
+ for (var i in this.data.form_images_list)
+ {
+ if (this.data.form_images_list[i].length > 3)
+ {
+ app.showToast('每项评论图片不能超过3张');
+ return false;
+ }
+ }
+ }
+
+ // 表单数据
+ var form_data = e.detail.value;
+ form_data['is_anonymous'] = form_data['is_anonymous'] == true ? 1 : 0;
+ form_data['id'] = this.data.detail.id;
+ form_data['goods_id'] = JSON.stringify(this.data.detail.items.map(function (v) { return v.goods_id }));
+ form_data['rating'] = JSON.stringify(this.data.form_rating_list);
+ form_data['content'] = JSON.stringify(this.data.form_content_list);
+ form_data['images'] = (this.data.form_images_list.length > 0) ? JSON.stringify(this.data.form_images_list) : '';
+
+ // 提交表单
+ var self = this;
+ wx.showLoading({ title: "处理中..." });
+ self.setData({ form_button_disabled: true });
+ wx.request({
+ url: app.get_request_url("commentssave", "order"),
+ method: "POST",
+ data: form_data,
+ dataType: "json",
+ header: { 'content-type': 'application/x-www-form-urlencoded' },
+ success: res => {
+ wx.hideLoading();
+ if (res.data.code == 0) {
+ app.showToast(res.data.msg, "success");
+ setTimeout(function () {
+ wx.navigateBack();
+ }, 2000);
+ } else {
+ self.setData({ form_button_disabled: false });
+ app.showToast(res.data.msg);
+ }
+ },
+ fail: () => {
+ wx.hideLoading();
+ self.setData({ form_button_disabled: false });
+ app.showToast("服务器请求出错");
+ }
+ });
+
},
// 下拉刷新
diff --git a/public/appmini/old/weixin/pages/user-order-comments/user-order-comments.wxml b/public/appmini/old/weixin/pages/user-order-comments/user-order-comments.wxml
index e0624626a..f496e328e 100644
--- a/public/appmini/old/weixin/pages/user-order-comments/user-order-comments.wxml
+++ b/public/appmini/old/weixin/pages/user-order-comments/user-order-comments.wxml
@@ -7,36 +7,35 @@
-
+
- {{rating_msg[rating_list[index]-1]}}
+ {{rating_msg[form_rating_list[index]-1]}}
-
+
-
-
- x
-
+
+
+ x
+
-
+
-
-
+
匿名
- 公开的评论会展示在商品详情页面
+ {{anonymous_msg_list[anonymous_value]}}
-
+
diff --git a/public/appmini/old/weixin/pages/user-order/user-order.js b/public/appmini/old/weixin/pages/user-order/user-order.js
index fbe2b67ba..62e4d7c8b 100755
--- a/public/appmini/old/weixin/pages/user-order/user-order.js
+++ b/public/appmini/old/weixin/pages/user-order/user-order.js
@@ -41,11 +41,11 @@ Page({
params: params,
nav_status_index: nav_status_index,
});
- this.init();
},
onShow() {
wx.setNavigationBarTitle({title: app.data.common_pages_title.user_order});
+ this.init();
},
init() {
@@ -386,4 +386,11 @@ Page({
url: "/pages/user-orderaftersale-detail/user-orderaftersale-detail?oid=" + oid+"&did="+did
});
},
+
+ // 订单评论
+ comments_event(e) {
+ wx.navigateTo({
+ url: "/pages/user-order-comments/user-order-comments?id=" + e.currentTarget.dataset.value
+ });
+ },
});
diff --git a/public/appmini/old/weixin/pages/user-order/user-order.wxml b/public/appmini/old/weixin/pages/user-order/user-order.wxml
index 5781bcf7c..10321bff7 100755
--- a/public/appmini/old/weixin/pages/user-order/user-order.wxml
+++ b/public/appmini/old/weixin/pages/user-order/user-order.wxml
@@ -34,15 +34,12 @@
{{item.describe}}
-
-
-
-
-
+
+
+
+
+
+
diff --git a/public/static/upload/images/order_comments/3/9/2019/10/10/1570705883308238.png b/public/static/upload/images/order_comments/3/9/2019/10/10/1570705883308238.png
new file mode 100644
index 000000000..76829435e
Binary files /dev/null and b/public/static/upload/images/order_comments/3/9/2019/10/10/1570705883308238.png differ