mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-14 21:02:49 +00:00
feat: 新增任务发送功能
This commit is contained in:
parent
bd157d305e
commit
b560c0bafd
@ -19,6 +19,7 @@ use App\Module\TimeRange;
|
||||
use App\Module\MsgTool;
|
||||
use App\Module\Table\OnlineData;
|
||||
use App\Models\FileContent;
|
||||
use App\Models\ProjectTask;
|
||||
use App\Models\AbstractModel;
|
||||
use App\Models\WebSocketDialog;
|
||||
use App\Models\WebSocketDialogMsg;
|
||||
@ -1543,6 +1544,45 @@ class DialogController extends AbstractController
|
||||
return WebSocketDialogMsg::sendMsgBatch($user, $userids, $dialogids, $fileMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
* @api {get} api/dialog/msg/sendtaskid 29. 通过任务ID发送任务
|
||||
*
|
||||
* @apiDescription 需要token身份
|
||||
* @apiVersion 1.0.0
|
||||
* @apiGroup dialog
|
||||
* @apiName msg__sendtaskid
|
||||
*
|
||||
* @apiParam {Number} task_id 消息ID
|
||||
* @apiParam {Array} dialogids 转发给的对话ID
|
||||
* @apiParam {Array} userids 转发给的成员ID
|
||||
* @apiParam {String} leave_message 转发留言
|
||||
*
|
||||
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
|
||||
* @apiSuccess {String} msg 返回信息(错误描述)
|
||||
* @apiSuccess {Object} data 返回数据
|
||||
*/
|
||||
public function msg__sendtaskid()
|
||||
{
|
||||
$user = User::auth();
|
||||
//
|
||||
$task_id = intval(Request::input("task_id"));
|
||||
$dialogids = Request::input('dialogids');
|
||||
$userids = Request::input('userids');
|
||||
$leave_message = Request::input('leave_message');
|
||||
//
|
||||
if (empty($dialogids) && empty($userids)) {
|
||||
return Base::retError("请选择对话或成员");
|
||||
}
|
||||
//
|
||||
$task = ProjectTask::userTask($task_id, null);
|
||||
$taskMsg = "<p><span class=\"mention task\" data-id=\"{$task_id}\">#{$task->name}</span></p>";
|
||||
if ($leave_message) {
|
||||
$taskMsg .= "<p>{$leave_message}</p>";
|
||||
}
|
||||
//
|
||||
return WebSocketDialogMsg::sendMsgBatch($user, $userids, $dialogids, $taskMsg);
|
||||
}
|
||||
|
||||
/**
|
||||
* @api {post} api/dialog/msg/sendanon 30. 发送匿名消息
|
||||
*
|
||||
|
||||
@ -43,7 +43,12 @@
|
||||
|
||||
<template v-if="task.parent_id === 0">
|
||||
<template v-if="operationShow">
|
||||
<EDropdownItem :divided="turns.length > 0" command="archived">
|
||||
<EDropdownItem command="send" :divided="turns.length > 0">
|
||||
<div class="item">
|
||||
<i class="taskfont movefont"></i>{{$L('发送')}}
|
||||
</div>
|
||||
</EDropdownItem>
|
||||
<EDropdownItem command="archived">
|
||||
<div class="item">
|
||||
<Icon type="ios-filing" />{{$L(task.archived_at ? '还原归档' : '归档')}}
|
||||
</div>
|
||||
@ -89,16 +94,28 @@
|
||||
footer-hide>
|
||||
<TaskMove ref="addTask" v-model="moveTaskShow" :task="task"/>
|
||||
</Modal>
|
||||
|
||||
<!-- 发送任务 -->
|
||||
<Forwarder
|
||||
ref="forwarder"
|
||||
:title="$L('发送任务')"
|
||||
:confirm-title="$L('确认发送')"
|
||||
:confirm-placeholder="$L('附言')"
|
||||
:multiple-max="50"
|
||||
:before-submit="onSendTask"
|
||||
sender-hidden/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapGetters, mapState} from "vuex";
|
||||
import TaskMove from "./TaskMove";
|
||||
import Forwarder from "./Forwarder/index.vue";
|
||||
|
||||
export default {
|
||||
name: "TaskOperation",
|
||||
components: {
|
||||
Forwarder,
|
||||
TaskMove,
|
||||
},
|
||||
data() {
|
||||
@ -285,6 +302,10 @@ export default {
|
||||
})
|
||||
break;
|
||||
|
||||
case 'send':
|
||||
this.$refs.forwarder.onSelection()
|
||||
break;
|
||||
|
||||
case 'archived':
|
||||
case 'remove':
|
||||
this.archivedOrRemoveTask(command);
|
||||
@ -435,6 +456,28 @@ export default {
|
||||
getStyleComputedProperty(element, property) {
|
||||
const css = window.getComputedStyle(element, null);
|
||||
return css[property];
|
||||
},
|
||||
|
||||
onSendTask({dialogids, userids, message}) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.$store.dispatch("call", {
|
||||
url: 'dialog/msg/sendtaskid',
|
||||
data: {
|
||||
dialogids,
|
||||
userids,
|
||||
leave_message: message,
|
||||
task_id: this.task.id
|
||||
}
|
||||
}).then(({data, msg}) => {
|
||||
this.$store.dispatch("saveDialogMsg", data.msgs);
|
||||
this.$store.dispatch("updateDialogLastMsg", data.msgs);
|
||||
$A.messageSuccess(msg);
|
||||
resolve();
|
||||
}).catch(({msg}) => {
|
||||
$A.modalError(msg);
|
||||
reject();
|
||||
});
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user