diff --git a/app/Http/Controllers/Api/DialogController.php b/app/Http/Controllers/Api/DialogController.php
index aa911edbe..415916d20 100755
--- a/app/Http/Controllers/Api/DialogController.php
+++ b/app/Http/Controllers/Api/DialogController.php
@@ -1991,4 +1991,71 @@ class DialogController extends AbstractController
}
return Base::retSuccess('success', $dialog);
}
+
+ /**
+ * @api {post} api/dialog/msg/wordchain 15. 发送接龙消息
+ *
+ * @apiDescription 需要token身份
+ * @apiVersion 1.0.0
+ * @apiGroup dialog
+ * @apiName msg__wordchain
+ *
+ * @apiParam {Number} dialog_id 对话ID
+ * @apiParam {String} uuid 接龙ID
+ * @apiParam {String} text 接龙内容
+ * @apiParam {Array} list 接龙列表
+ *
+ * @apiSuccess {Number} ret 返回状态码(1正确、0错误)
+ * @apiSuccess {String} msg 返回信息(错误描述)
+ * @apiSuccess {Object} data 返回数据
+ */
+ public function msg__wordchain()
+ {
+ $user = User::auth();
+ //
+ $dialog_id = intval(Request::input('dialog_id'));
+ $uuid = trim(Request::input('uuid'));
+ $text = trim(Request::input('text'));
+ $list = Request::input('list');
+ //
+ $result = [];
+ //
+ WebSocketDialog::checkDialog($dialog_id);
+ $strlen = mb_strlen($text);
+ $noimglen = mb_strlen(preg_replace("/]*?>/i", "", $text));
+ if ($strlen < 1) {
+ return Base::retError('内容不能为空');
+ }
+ if ($noimglen > 200000) {
+ return Base::retError('内容最大不能超过200000字');
+ }
+ //
+ $userid = $user->userid;
+ if($uuid){
+ $dialogMsg = WebSocketDialogMsg::whereDialogId($dialog_id)
+ ->whereType('word-chain')
+ ->orderByDesc('created_at')
+ ->where('msg','like',"%$uuid%")
+ ->value('msg');
+ $list = array_reverse(array_merge($dialogMsg['list'] ?? [], $list));
+ $list = array_reduce($list, function ($result, $item) {
+ $fieldValue = $item['id']; // 指定字段名
+ if(!isset($result[$fieldValue])) {
+ $result[$fieldValue] = $item;
+ }
+ return $result;
+ }, []);
+ $list = array_reverse(array_values($list));
+ }
+ //
+ $msgData = [
+ 'text' => $text,
+ 'list' => $list,
+ 'userid' => $userid,
+ 'uuid' => $uuid ?: Base::generatePassword(36),
+ ];
+ $result = WebSocketDialogMsg::sendMsg(null, $dialog_id, 'word-chain', $msgData, $user->userid);
+ //
+ return $result;
+ }
}
diff --git a/language/original-web.txt b/language/original-web.txt
index 0bfe56060..ec592cbcb 100644
--- a/language/original-web.txt
+++ b/language/original-web.txt
@@ -1431,3 +1431,14 @@ APP推送
状态
协助人
未变更移动项
+发起接龙
+由
+发起接龙,参与接龙目前共(*)人
+可填写接龙格式
+重复内容将不再计入接龙结果
+返回编辑
+继续发送
+例
+接龙结果
+选择群组发起接龙
+来自
diff --git a/public/css/fonts/taskfont/iconfont.ttf b/public/css/fonts/taskfont/iconfont.ttf
index 05c4de074..003d05467 100644
Binary files a/public/css/fonts/taskfont/iconfont.ttf and b/public/css/fonts/taskfont/iconfont.ttf differ
diff --git a/public/css/fonts/taskfont/iconfont.woff b/public/css/fonts/taskfont/iconfont.woff
index ea29aae3b..24052176c 100644
Binary files a/public/css/fonts/taskfont/iconfont.woff and b/public/css/fonts/taskfont/iconfont.woff differ
diff --git a/public/css/fonts/taskfont/iconfont.woff2 b/public/css/fonts/taskfont/iconfont.woff2
index 562aae244..244be81ff 100644
Binary files a/public/css/fonts/taskfont/iconfont.woff2 and b/public/css/fonts/taskfont/iconfont.woff2 differ
diff --git a/public/images/application/word-chain.svg b/public/images/application/word-chain.svg
new file mode 100644
index 000000000..c9aa05f06
--- /dev/null
+++ b/public/images/application/word-chain.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/assets/js/components/ChainReaction.vue b/resources/assets/js/components/ChainReaction.vue
deleted file mode 100644
index 03dbc48ce..000000000
--- a/resources/assets/js/components/ChainReaction.vue
+++ /dev/null
@@ -1,90 +0,0 @@
-
-