Invite.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <template>
  2. <div class="container">
  3. <el-row class="row-item title">
  4. <h4>生成邀请码</h4>
  5. </el-row>
  6. <div class="row-item">
  7. <span>邀请码:</span>
  8. <span>{{relateCode}}</span>
  9. </div>
  10. <div class="row-item">
  11. <span>
  12. <el-button
  13. @click="generateRelateCode()"
  14. type="primary"
  15. size="small"
  16. >
  17. 生成
  18. </el-button>
  19. </span>
  20. </div>
  21. <el-divider content-position="left">或</el-divider>
  22. <el-row class="row-item title">
  23. <h4>关联其他项目</h4>
  24. </el-row>
  25. <el-row style="row-item">
  26. <el-input v-model="targetCode" placeholder="请输入要关联的项目生成的邀请码" style="width: 270px"></el-input>
  27. <el-button
  28. @click="relate()"
  29. type="primary"
  30. size="small"
  31. style="margin-left: 16px"
  32. >
  33. 关联
  34. </el-button>
  35. </el-row>
  36. </div>
  37. </template>
  38. <script>
  39. import { ProjectAPI } from '@/api';
  40. import { ElMessage } from 'element-plus';
  41. export default {
  42. data() {
  43. return {
  44. relateCode: '',
  45. targetCode: '',
  46. };
  47. },
  48. methods: {
  49. async generateRelateCode() {
  50. this.relateCode = await ProjectAPI.generateRelateCode(this.$store.state.workspace.currentProjectId);
  51. ElMessage.success('邀请码将在5分钟后失效,请及时完成操作!');
  52. },
  53. async relate() {
  54. await ProjectAPI.relateProject(this.$store.state.workspace.currentProjectId, this.targetCode);
  55. ElMessage.success('关联成功');
  56. this.targetCode = '';
  57. },
  58. },
  59. };
  60. </script>
  61. <style scoped>
  62. .container {
  63. margin: 50px 100px;
  64. width: 30%
  65. }
  66. .row-item {
  67. display: flex;
  68. flex-direction: row;
  69. align-items: center;
  70. margin-bottom: 10px;
  71. }
  72. .title {
  73. color: #333333
  74. }
  75. </style>