perf: 优化项目邀请链接

This commit is contained in:
kuaifan 2025-07-07 20:46:42 +08:00
parent b4101f856a
commit 2a465b5f1d
3 changed files with 9 additions and 7 deletions

View File

@ -424,7 +424,7 @@ class ProjectController extends AbstractController
*/ */
public function invite() public function invite()
{ {
User::auth(); $user = User::auth();
// //
$project_id = intval(Request::input('project_id')); $project_id = intval(Request::input('project_id'));
$refresh = Request::input('refresh', 'no'); $refresh = Request::input('refresh', 'no');
@ -440,17 +440,17 @@ class ProjectController extends AbstractController
if (empty($projectInvite)) { if (empty($projectInvite)) {
$projectInvite = ProjectInvite::createInstance([ $projectInvite = ProjectInvite::createInstance([
'project_id' => $project->id, 'project_id' => $project->id,
'code' => Base::generatePassword(64), 'code' => base64_encode("{$project->id},{$user->userid}," . Base::generatePassword()),
]); ]);
$projectInvite->save(); $projectInvite->save();
} else { } else {
if ($refresh == 'yes') { if ($refresh == 'yes') {
$projectInvite->code = Base::generatePassword(64); $projectInvite->code = base64_encode("{$project->id},{$user->userid}," . Base::generatePassword());
$projectInvite->save(); $projectInvite->save();
} }
} }
return Base::retSuccess('success', [ return Base::retSuccess('success', [
'url' => Base::fillUrl('manage/project/invite?code=' . $projectInvite->code), 'url' => Base::fillUrl('manage/project/invite/' . $projectInvite->code),
'num' => $projectInvite->num 'num' => $projectInvite->num
]); ]);
} }

View File

@ -6,7 +6,7 @@
</div> </div>
<div v-else class="invite-warp"> <div v-else class="invite-warp">
<Card v-if="project.id > 0"> <Card v-if="project.id > 0">
<p slot="title">{{project.name}}</p> <p slot="title" v-html="transformEmojiToHtml(project.name)"></p>
<div v-if="project.desc" class="invite-desc" :title="$L('项目介绍')">{{project.desc}}</div> <div v-if="project.desc" class="invite-desc" :title="$L('项目介绍')">{{project.desc}}</div>
<div v-else>{{$L('暂无介绍')}}</div> <div v-else>{{$L('暂无介绍')}}</div>
<div class="invite-footer"> <div class="invite-footer">
@ -47,6 +47,7 @@
</style> </style>
<script> <script>
import {mapState} from "vuex"; import {mapState} from "vuex";
import transformEmojiToHtml from "../../utils/emoji";
export default { export default {
data() { data() {
@ -65,7 +66,7 @@ export default {
'$route': { '$route': {
handler(route) { handler(route) {
if (route.name == 'manage-project-invite') { if (route.name == 'manage-project-invite') {
this.code = route.query ? route.query.code : ''; this.code = route.query?.code || route.params?.inviteId || '';
this.getData(); this.getData();
this.wakeApp(); this.wakeApp();
} }
@ -74,6 +75,7 @@ export default {
}, },
}, },
methods: { methods: {
transformEmojiToHtml,
/** /**
* 获取邀请信息 * 获取邀请信息
*/ */

View File

@ -103,7 +103,7 @@ export default [
}, },
{ {
name: 'manage-project-invite', name: 'manage-project-invite',
path: 'project/invite', path: 'project/invite/:inviteId?',
component: () => import('./pages/manage/projectInvite.vue'), component: () => import('./pages/manage/projectInvite.vue'),
}, },
{ {