| 
				
			 | 
			
			
				@@ -10,7 +10,7 @@ import CommentInput from "./components/CommentInput"; 
			 | 
		
	
		
			
			| 
				10
			 | 
			
				10
			 | 
			
			
				 import CommentList from "./components/CommentList"; 
			 | 
		
	
		
			
			| 
				11
			 | 
			
				11
			 | 
			
			
				 import Editor from "./components/Editor"; 
			 | 
		
	
		
			
			| 
				12
			 | 
			
				12
			 | 
			
			
				 import RenderText from "./components/RenderText"; 
			 | 
		
	
		
			
			| 
				13
			 | 
			
				
			 | 
			
			
				-import lang from "./lang"; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				13
			 | 
			
			
				+// import lang from "./lang"; 
			 | 
		
	
		
			
			| 
				14
			 | 
			
				14
			 | 
			
			
				 import USdata from "./lang/en-US.js"; 
			 | 
		
	
		
			
			| 
				15
			 | 
			
				15
			 | 
			
			
				 import CNdata from "./lang/zh-CN.js"; 
			 | 
		
	
		
			
			| 
				16
			 | 
			
				16
			 | 
			
			
				 import "./App.css"; 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -35,6 +35,33 @@ const LOCALES = { 
			 | 
		
	
		
			
			| 
				35
			 | 
			
				35
			 | 
			
			
				   "en-US": USdata 
			 | 
		
	
		
			
			| 
				36
			 | 
			
				36
			 | 
			
			
				 }; 
			 | 
		
	
		
			
			| 
				37
			 | 
			
				37
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				38
			 | 
			
			
				+const LOCALES_RESPONSE = { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				39
			 | 
			
			
				+  "zh-CN": { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				40
			 | 
			
			
				+    "not found": "没有数据", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				41
			 | 
			
			
				+    "auth failed": "请先登录", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				42
			 | 
			
			
				+    "create comment failed": "创建评论失败", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				43
			 | 
			
			
				+    "comment favor failed": "评论点赞失败", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				44
			 | 
			
			
				+    "delete comment favor failed": "评论取消点赞失败", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				45
			 | 
			
			
				+    "get comments failed": "获取评论列表失败", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				46
			 | 
			
			
				+    "create reply failed": "创建回复失败", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				47
			 | 
			
			
				+    "reply favor failed": "回复点赞失败", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				48
			 | 
			
			
				+    "delete reply favor failed": "删除回复点赞失败", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				49
			 | 
			
			
				+    "get replies failed": "获取回复列表失败" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				50
			 | 
			
			
				+  }, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				51
			 | 
			
			
				+  "en-US": { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				52
			 | 
			
			
				+    "not found": "no data", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				53
			 | 
			
			
				+    "auth failed": "please log in first", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				54
			 | 
			
			
				+    "create comment failed": "Failed to create comment", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				55
			 | 
			
			
				+    "comment favor failed": "Comment likes failure", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				56
			 | 
			
			
				+    "delete comment favor failed": "评论取消点赞失败", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				57
			 | 
			
			
				+    "get comments failed": "Comment cancels praise failure", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				58
			 | 
			
			
				+    "create reply failed": "Create reply failed", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				59
			 | 
			
			
				+    "reply favor failed": "Reply to praise failed", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				60
			 | 
			
			
				+    "delete reply favor failed": "Delete reply clicks failed", 
			 | 
		
	
		
			
			| 
				
			 | 
			
				61
			 | 
			
			
				+    "get replies failed": "Failed to get reply list" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				62
			 | 
			
			
				+  } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				63
			 | 
			
			
				+}; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				64
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				38
			 | 
			
				65
			 | 
			
			
				 class App extends Component { 
			 | 
		
	
		
			
			| 
				39
			 | 
			
				66
			 | 
			
			
				   constructor(props) { 
			 | 
		
	
		
			
			| 
				40
			 | 
			
				67
			 | 
			
			
				     super(props); 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -119,13 +146,15 @@ class App extends Component { 
			 | 
		
	
		
			
			| 
				119
			 | 
			
				146
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				120
			 | 
			
				147
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				121
			 | 
			
				148
			 | 
			
			
				   errorHandler(error) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				149
			 | 
			
			
				+    const { locale } = this.state; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				150
			 | 
			
			
				+    const localResponse = LOCALES_RESPONSE[locale]; 
			 | 
		
	
		
			
			| 
				122
			 | 
			
				151
			 | 
			
			
				     if (error.response && error.response.data && error.response.data.msg) { 
			 | 
		
	
		
			
			| 
				123
			 | 
			
				
			 | 
			
			
				-      this.error(lang[error.response.data.msg] || ERROR_DEFAULT, { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				152
			 | 
			
			
				+      this.error(localResponse[error.response.data.msg] || ERROR_DEFAULT, { 
			 | 
		
	
		
			
			| 
				124
			 | 
			
				153
			 | 
			
			
				         response: error.response 
			 | 
		
	
		
			
			| 
				125
			 | 
			
				154
			 | 
			
			
				       }); 
			 | 
		
	
		
			
			| 
				126
			 | 
			
				155
			 | 
			
			
				       return; 
			 | 
		
	
		
			
			| 
				127
			 | 
			
				156
			 | 
			
			
				     } 
			 | 
		
	
		
			
			| 
				128
			 | 
			
				
			 | 
			
			
				-    this.error(lang[error.message] || ERROR_DEFAULT, { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				157
			 | 
			
			
				+    this.error(localResponse[error.response.data.msg] || ERROR_DEFAULT, { 
			 | 
		
	
		
			
			| 
				129
			 | 
			
				158
			 | 
			
			
				       response: error.response 
			 | 
		
	
		
			
			| 
				130
			 | 
			
				159
			 | 
			
			
				     }); 
			 | 
		
	
		
			
			| 
				131
			 | 
			
				160
			 | 
			
			
				   } 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -174,7 +203,7 @@ class App extends Component { 
			 | 
		
	
		
			
			| 
				174
			 | 
			
				203
			 | 
			
			
				             total 
			 | 
		
	
		
			
			| 
				175
			 | 
			
				204
			 | 
			
			
				           }); 
			 | 
		
	
		
			
			| 
				176
			 | 
			
				205
			 | 
			
			
				         } else { 
			 | 
		
	
		
			
			| 
				177
			 | 
			
				
			 | 
			
			
				-          message.info("没有更多评论了"); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				206
			 | 
			
			
				+          message.info(intl.get("message.noMoreComment")); 
			 | 
		
	
		
			
			| 
				178
			 | 
			
				207
			 | 
			
			
				           this.setState({ 
			 | 
		
	
		
			
			| 
				179
			 | 
			
				208
			 | 
			
			
				             isNoMoreComment: true 
			 | 
		
	
		
			
			| 
				180
			 | 
			
				209
			 | 
			
			
				           }); 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -196,7 +225,7 @@ class App extends Component { 
			 | 
		
	
		
			
			| 
				196
			 | 
			
				225
			 | 
			
			
				       .get(`${API}/replies?comment_id=${commentId}&page=${page}&limit=${LIMIT}`) 
			 | 
		
	
		
			
			| 
				197
			 | 
			
				226
			 | 
			
			
				       .then(response => { 
			 | 
		
	
		
			
			| 
				198
			 | 
			
				227
			 | 
			
			
				         if (!response.data.list) { 
			 | 
		
	
		
			
			| 
				199
			 | 
			
				
			 | 
			
			
				-          message.info("没有更多数据了!"); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				228
			 | 
			
			
				+          message.info(intl.get("message.noMoreData")); 
			 | 
		
	
		
			
			| 
				200
			 | 
			
				229
			 | 
			
			
				         } 
			 | 
		
	
		
			
			| 
				201
			 | 
			
				230
			 | 
			
			
				         const list = this.state.list.map(item => { 
			 | 
		
	
		
			
			| 
				202
			 | 
			
				231
			 | 
			
			
				           if (item.id === commentId) { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -233,7 +262,7 @@ class App extends Component { 
			 | 
		
	
		
			
			| 
				233
			 | 
			
				262
			 | 
			
			
				    * @param {object} {content} comment content 
			 | 
		
	
		
			
			| 
				234
			 | 
			
				263
			 | 
			
			
				    */ 
			 | 
		
	
		
			
			| 
				235
			 | 
			
				264
			 | 
			
			
				   sCreateComment({ content } = {}, cb) { 
			 | 
		
	
		
			
			| 
				236
			 | 
			
				
			 | 
			
			
				-    if (!content) return this.error("评论内容不能为空 "); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				265
			 | 
			
			
				+    if (!content) return this.error(intl.get("message.notNull")); 
			 | 
		
	
		
			
			| 
				237
			 | 
			
				266
			 | 
			
			
				     this.handleChangeLoading("sCreateComment", true); 
			 | 
		
	
		
			
			| 
				238
			 | 
			
				267
			 | 
			
			
				     const { API, type, businessId } = this.props; 
			 | 
		
	
		
			
			| 
				239
			 | 
			
				268
			 | 
			
			
				     this.axios(`${API}/comments`, { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -247,7 +276,7 @@ class App extends Component { 
			 | 
		
	
		
			
			| 
				247
			 | 
			
				276
			 | 
			
			
				     }) 
			 | 
		
	
		
			
			| 
				248
			 | 
			
				277
			 | 
			
			
				       .then(response => { 
			 | 
		
	
		
			
			| 
				249
			 | 
			
				278
			 | 
			
			
				         if (this.props.showAlertComment) { 
			 | 
		
	
		
			
			| 
				250
			 | 
			
				
			 | 
			
			
				-          message.success("评论成功!"); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				279
			 | 
			
			
				+          message.success(intl.get("message.success")); 
			 | 
		
	
		
			
			| 
				251
			 | 
			
				280
			 | 
			
			
				         } 
			 | 
		
	
		
			
			| 
				252
			 | 
			
				281
			 | 
			
			
				         if (isFunction(cb)) cb(); 
			 | 
		
	
		
			
			| 
				253
			 | 
			
				282
			 | 
			
			
				         // 将数据写入到 list 中 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -293,7 +322,7 @@ class App extends Component { 
			 | 
		
	
		
			
			| 
				293
			 | 
			
				322
			 | 
			
			
				    * @param {object} data { comment_id, content, [reply_id] } 
			 | 
		
	
		
			
			| 
				294
			 | 
			
				323
			 | 
			
			
				    */ 
			 | 
		
	
		
			
			| 
				295
			 | 
			
				324
			 | 
			
			
				   sCreateReply(data, cb) { 
			 | 
		
	
		
			
			| 
				296
			 | 
			
				
			 | 
			
			
				-    if (!data.content) return this.error("回复内容不能为空 "); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				325
			 | 
			
			
				+    if (!data.content) return this.error(intl.get("message.replyNoNull")); 
			 | 
		
	
		
			
			| 
				297
			 | 
			
				326
			 | 
			
			
				     this.handleChangeLoading("sCreateReply", true); 
			 | 
		
	
		
			
			| 
				298
			 | 
			
				327
			 | 
			
			
				     const { API } = this.props; 
			 | 
		
	
		
			
			| 
				299
			 | 
			
				328
			 | 
			
			
				     this.axios(`${API}/replies`, { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -303,7 +332,7 @@ class App extends Component { 
			 | 
		
	
		
			
			| 
				303
			 | 
			
				332
			 | 
			
			
				     }) 
			 | 
		
	
		
			
			| 
				304
			 | 
			
				333
			 | 
			
			
				       .then(response => { 
			 | 
		
	
		
			
			| 
				305
			 | 
			
				334
			 | 
			
			
				         if (this.props.showAlertReply) { 
			 | 
		
	
		
			
			| 
				306
			 | 
			
				
			 | 
			
			
				-          message.success("回复成功!"); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				335
			 | 
			
			
				+          message.success(intl.get("message.replySuccess")); 
			 | 
		
	
		
			
			| 
				307
			 | 
			
				336
			 | 
			
			
				         } 
			 | 
		
	
		
			
			| 
				308
			 | 
			
				337
			 | 
			
			
				         if (isFunction(cb)) cb(); 
			 | 
		
	
		
			
			| 
				309
			 | 
			
				338
			 | 
			
			
				         // 将数据写入到 list 中 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -371,7 +400,11 @@ class App extends Component { 
			 | 
		
	
		
			
			| 
				371
			 | 
			
				400
			 | 
			
			
				     }) 
			 | 
		
	
		
			
			| 
				372
			 | 
			
				401
			 | 
			
			
				       .then(response => { 
			 | 
		
	
		
			
			| 
				373
			 | 
			
				402
			 | 
			
			
				         if (this.props.showAlertFavor) { 
			 | 
		
	
		
			
			| 
				374
			 | 
			
				
			 | 
			
			
				-          message.success(favored ? "取消点赞成功!" : "点赞成功!"); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				403
			 | 
			
			
				+          message.success( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				404
			 | 
			
			
				+            favored 
			 | 
		
	
		
			
			| 
				
			 | 
			
				405
			 | 
			
			
				+              ? intl.get("message.cancelLickSuccess") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				406
			 | 
			
			
				+              : intl.get("message.likeSuccess") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				407
			 | 
			
			
				+          ); 
			 | 
		
	
		
			
			| 
				375
			 | 
			
				408
			 | 
			
			
				         } 
			 | 
		
	
		
			
			| 
				376
			 | 
			
				409
			 | 
			
			
				         // 更新 list 中的该项数据的 favored 
			 | 
		
	
		
			
			| 
				377
			 | 
			
				410
			 | 
			
			
				         const list = this.state.list.map(item => { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -406,7 +439,11 @@ class App extends Component { 
			 | 
		
	
		
			
			| 
				406
			 | 
			
				439
			 | 
			
			
				       withCredentials: true 
			 | 
		
	
		
			
			| 
				407
			 | 
			
				440
			 | 
			
			
				     }) 
			 | 
		
	
		
			
			| 
				408
			 | 
			
				441
			 | 
			
			
				       .then(response => { 
			 | 
		
	
		
			
			| 
				409
			 | 
			
				
			 | 
			
			
				-        message.success(favored ? "取消点赞成功!" : "点赞成功!"); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				442
			 | 
			
			
				+        message.success( 
			 | 
		
	
		
			
			| 
				
			 | 
			
				443
			 | 
			
			
				+          favored 
			 | 
		
	
		
			
			| 
				
			 | 
			
				444
			 | 
			
			
				+            ? intl.get("message.cancelLickSuccess") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				445
			 | 
			
			
				+            : intl.get("message.likeSuccess") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				446
			 | 
			
			
				+        ); 
			 | 
		
	
		
			
			| 
				410
			 | 
			
				447
			 | 
			
			
				         // 更新 list 中的该项数据的 favored 
			 | 
		
	
		
			
			| 
				411
			 | 
			
				448
			 | 
			
			
				         const list = this.state.list.map(item => { 
			 | 
		
	
		
			
			| 
				412
			 | 
			
				449
			 | 
			
			
				           if (item.id === commentId) { 
			 |