|
|
@@ -118,6 +118,15 @@
|
|
|
新建项目
|
|
|
</el-button>
|
|
|
</div>
|
|
|
+ <!--组队-->
|
|
|
+ <div v-if="isCourseSelected">
|
|
|
+ <div v-if="tabName==='group'">
|
|
|
+ <el-button v-if="tabName==='group'&&isRuleExisted!==null"
|
|
|
+ plain type="primary" :disabled="isGroupExisted" @click="CreateTeam">
|
|
|
+ {{ isGroupExisted ? '队伍已创建' : '创建队伍' }}
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<!--tab内容-->
|
|
|
<div v-if="isCreator || isCourseSelected" class="course-tab-content">
|
|
|
@@ -302,13 +311,13 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
<!--小组规则-->
|
|
|
- <el-dialog v-model="ruleFormDialog" :before-close="beforeFormClose" :title="ruleForm.dialogTitle">
|
|
|
+ <el-dialog v-model="ruleFormDialog" :before-close="beforeRuleFormClose" :title="ruleForm.dialogTitle">
|
|
|
<el-form ref="ruleFormRef" :model="ruleForm" :rules="ruleFormRule" label-position="right" label-width="150px">
|
|
|
<el-form-item label="小组最大人数" prop="maxSize">
|
|
|
- <el-input v-model="ruleForm.maxSize"></el-input>
|
|
|
+ <el-input v-model="ruleForm.maxSize" type="number" min="1" max="5" placeholder="输入小组最大人数(1~5)" maxlength="1" onkeypress='return( /[1-5]/.test(String.fromCharCode(event.keyCode)))'></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="组名最大长度" prop="maxNameLen">
|
|
|
- <el-input v-model="ruleForm.maxNameLen"></el-input>
|
|
|
+ <el-input v-model="ruleForm.maxNameLen" type="number" min="1" max="9" placeholder="输入组名最大长度(1~9)" maxlength="1" onkeypress='return( /[1-9]/.test(String.fromCharCode(event.keyCode)))'></el-input>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div style="margin: auto;width: fit-content">
|
|
|
@@ -339,6 +348,18 @@
|
|
|
</el-button>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
+ <!--组队信息-->
|
|
|
+ <el-dialog v-model="createGroupDialog" :before-close="beforeGroupFormClose" :title="createTeamForm.dialogTitle">
|
|
|
+ <el-form ref="createGroupFormRef" :model="createTeamForm" label-position="right" label-width="150px">
|
|
|
+ <el-form-item label="组名" prop="name">
|
|
|
+ <el-input v-model="createTeamForm.name" placeholder="输入组名" maxlength="5"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div style="margin: auto;width: fit-content">
|
|
|
+ <el-button plain type="primary" @click="createTeam">确认</el-button>
|
|
|
+ <el-button plain type="danger" @click="beforeGroupFormClose">我再想想</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
@@ -391,7 +412,11 @@ export default {
|
|
|
announcementList: [],
|
|
|
// group
|
|
|
isRuleExisted: null,
|
|
|
+ isGroupExisted: null,
|
|
|
ruleFormDialog: false,
|
|
|
+ createGroupDialog: false,
|
|
|
+ maxSize: null,
|
|
|
+ maxNameLen: null,
|
|
|
ruleForm: {
|
|
|
dialogTitle: "制定组队规则",
|
|
|
courseVO: null,
|
|
|
@@ -401,12 +426,17 @@ export default {
|
|
|
},
|
|
|
ruleFormRule: {
|
|
|
maxSize: {
|
|
|
- required: true, message: "请输入小组最大成员人数", trigger: "blur",
|
|
|
+ required: true, message: "请选择小组最大成员人数", trigger: "change",
|
|
|
},
|
|
|
maxNameLen: {
|
|
|
- required: true, message: "请输入组名最大长度", trigger: "blur",
|
|
|
+ required: true, message: "请选择组名最大长度", trigger: "change",
|
|
|
}
|
|
|
},
|
|
|
+ createTeamForm: {
|
|
|
+ dialogTitle: "队伍信息",
|
|
|
+ courseId: null,
|
|
|
+ name: null,
|
|
|
+ },
|
|
|
//
|
|
|
commentContent: "",
|
|
|
commentTree: [],
|
|
|
@@ -501,7 +531,7 @@ export default {
|
|
|
return function (senderId) {
|
|
|
return senderId === Number(_this.$store.state.user.id);
|
|
|
};
|
|
|
- }
|
|
|
+ },
|
|
|
},
|
|
|
mounted() {
|
|
|
switch (this.$route.params.jump_from_message) {
|
|
|
@@ -626,6 +656,13 @@ export default {
|
|
|
this.ruleFormDialog = true;
|
|
|
},
|
|
|
|
|
|
+ createTeam() {
|
|
|
+ this.createGroupDialog = true;
|
|
|
+ this.getRule();
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
beforeFormClose() {
|
|
|
ElMessageBox.confirm("是否确认退出?退出后将不保存表格信息。", "提示", {
|
|
|
confirmButtonText: "确认退出",
|
|
|
@@ -675,6 +712,50 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ getRule() {
|
|
|
+ this.$apis.findGroupRule(this.courseInfo.id)
|
|
|
+ .then(res =>{
|
|
|
+ this.maxSize=res.data.data.maxSize;
|
|
|
+ console.log(this.maxSize);
|
|
|
+ this.maxNameLen=res.data.data.maxNameLen;
|
|
|
+ console.log(this.maxNameLen);
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ beforeGroupFormClose() {
|
|
|
+ ElMessageBox.confirm("是否确认退出?退出后将不保存队伍信息。", "提示", {
|
|
|
+ confirmButtonText: "确认退出",
|
|
|
+ cancelButtonText: "我再想想",
|
|
|
+ type: "warning",
|
|
|
+ center: true,
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.createGroupDialog = false;
|
|
|
+ this.$refs.createGroupFormRef.resetFields();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ createTeam() {
|
|
|
+ this.$refs.createGroupFormRef.validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ let GroupVO = {
|
|
|
+ courseId: this.courseInfo.id,
|
|
|
+ name: this.createTeamForm.name,
|
|
|
+ };
|
|
|
+ console.log(GroupVO);
|
|
|
+ this.$apis.createGroup(GroupVO)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code) {
|
|
|
+ ElMessage.error(res.data.message);
|
|
|
+ } else {
|
|
|
+ this.isGroupExisted = true;
|
|
|
+ this.createGroupDialog = false;
|
|
|
+ this.$refs.createGroupFormRef.resetFields();
|
|
|
+ ElMessage.success("创建队伍成功");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
// announcement
|
|
|
handlePublishAnnouncement() {
|
|
|
const _this = this;
|