diff --git a/src/api/server.js b/src/api/server.js index bf03faf..7151d34 100644 --- a/src/api/server.js +++ b/src/api/server.js @@ -35,10 +35,10 @@ export const FILE_URL = app.FILE_URL_APP; export const Train = new (class { constructor() { this.getCaseListApi = trainApi + "/trainCaseManage/list"; //实训管理列表 - this.insertCaseApi = trainApi + "/trainCaseManage/add";//添加 - this.updCaseApi = trainApi + "/trainCaseManage/edit";//修改 - this.delCaseApi = trainApi + "/trainCaseManage/remove";//删除 - + this.insertCaseApi = trainApi + "/trainCaseManage/add";//添加实训案例 + this.updCaseApi = trainApi + "/trainCaseManage/edit";//修改实训案例 + this.delCaseApi = trainApi + "/trainCaseManage/remove";//删除实训案例 + this.getCaseDetailApi = trainApi + "/trainCaseManage/detail";//获取实训案例详情 this.getTargetListApi = trainApi + "/trainCaseManage/targetList";//量化指标列表 } @@ -67,6 +67,13 @@ export const Train = new (class { .then(res => res.data); } + //实训案例详情 + getCaseDetail(params) { + return axios + .get(this.getCaseDetailApi, {params: params}) + .then(res => res.data); + } + //量化指标列表 getTargetList(params) { return axios diff --git a/src/common/js/interceptor.js b/src/common/js/interceptor.js index 10606d4..b875f10 100644 --- a/src/common/js/interceptor.js +++ b/src/common/js/interceptor.js @@ -29,7 +29,6 @@ axios.interceptors.request.use( axios.interceptors.response.use( function(response){ - debugger; let location = window.location.href.split("#")[0]+'#/login'; let code = response.data.code; if(parseInt(code) === 101||parseInt(code) === 10){//token无效 diff --git a/src/views/train/case-detail.vue b/src/views/train/case-detail.vue index 9264b10..ad1304a 100644 --- a/src/views/train/case-detail.vue +++ b/src/views/train/case-detail.vue @@ -19,13 +19,12 @@
判分设置 -
量化指标 - @@ -42,7 +41,7 @@ - + @@ -51,7 +50,8 @@ - + + % @@ -69,7 +69,6 @@ @@ -80,7 +79,7 @@
- 确定 + 确定 取消
@@ -114,7 +113,7 @@ } }; return { - leftListData: [], + leftDictTargetList: [], tableData: [{ name: '王小虎', }, { @@ -138,66 +137,51 @@ }, { name: '王小虎', }], - isShowData: false, - tradeDialogVisible: false, - isShowTradeDelBtn: false, formAction: 0, // 0:add,1:edit,2:view dataForm: { id: '', type: '', name: '', - content: '', - totalScore: 0, - caseDataList: [], - tradeList: [], + taskList: [], isAdmin: 1, // 默认 管理员内置 }, + totalScore: 0,//总分 dataRule: { name: [ - { required: true, message: '请输入项目名称', trigger: 'blur' }, + { required: true, message: '请输入实训名称', trigger: 'blur' }, { min: 1, max: 30, message: '长度在 1 到 30 个字符', trigger: 'blur' } ], type: [ - { required: true, message: '请选择项目权限', trigger: 'change' } - ], - content: [ - {validator: validateContent, trigger: 'blur'} - ], - score: [ - {validator: validateScore, trigger: 'blur'} + { required: true, message: '请选择实训用途', trigger: 'change' } ], + // content: [ + // {validator: validateContent, trigger: 'blur'} + // ], + // score: [ + // {validator: validateScore, trigger: 'blur'} + // ], }, - dictCaseDataList: [], selectedItemRows: [], selectedTradeItems: [], - delTradeItems: [], - tradeNotInIds: [], } }, created() { if (this.$route.query.id) { this.dataForm.id = this.$route.query.id; - this.$http.get('/authapi/bs_projectManage/getDetail?id=' + this.dataForm.id).then(response => { - this.dataForm = response; + Train.getCaseDetail({id: this.dataForm.id}).then((res) => { + this.dataForm = res.data; // 下拉框标签回显问题 - this.dataForm.type = String(response.type); - // 回显案例数据 - this.selectedItemRows = this.dataForm.caseDataList; - // 计分交易赋值 - this.selectedTradeItems = this.dataForm.tradeList; - + this.dataForm.type = String(res.type); if (this.$route.query.isEdit === 1) { // 编辑 this.formAction = 1; - if (this.selectedTradeItems && this.selectedTradeItems.length > 0) { - this.isShowTradeDelBtn = true;// 显示删除按钮 - } } else { // 查看 this.formAction = 2; } - }); + }) } + //获取左侧指标字典数据 this.initTargetList(); }, methods: { @@ -208,148 +192,12 @@ initTargetList(searchObj) { Train.getTargetList(searchObj).then(res => { if (res.code == 200) { - this.leftListData = res.data; + this.leftDictTargetList = res.data; } }).catch(error => { console.info(error) }); }, - goBackAdd() { - this.isShowData = false; - }, - toAddCaseData() { - // 页面滚动条回到顶部 - window.scrollTo(0, 0); - this.isShowData = true; - this.getCaseData(null); - }, - getCaseData(condition) { - this.$http.get('/authapi/bs_projectManage/getDictCaseDataList', {params: condition}).then(response => { - this.dictCaseDataList = response; - - // 对于已经确定勾选的,在此打开选择界面,需回显已勾选的数据 - if (this.selectedItemRows && this.selectedItemRows.length > 0) { - let selectedItemIds = this.selectedItemRows.map(function (row) { - return row.id; - }); - this.dictCaseDataList.forEach(p => { - if (selectedItemIds.indexOf(p.id) > -1) { - p.checked = true; - } - }); - } - }); - }, - handleItemSelectionChange(val) { - this.selectedItemRows = val; - }, - doAddCaseData() { - if (!this.selectedItemRows || this.selectedItemRows.length === 0) { - this.$notify.warning({ - title: '系统提示', - message: '您没选择任何数据,请先选择!', - duration: 2000, - }); - return; - } - this.isShowData = false; - this.dataForm.caseDataList = this.selectedItemRows; - }, - cancelAddCaseData() { - this.isShowData = false; - this.selectedItemRows = this.dataForm.caseDataList; - }, - getFileUrl(file) { - return window.SITE_CONFIG['serverUrl'] + file.imgUrl; - }, - toAddTrade() { // 打开添加计分点弹窗 - this.tradeDialogVisible = true; - // 获取已添加的交易id集合 - this.tradeNotInIds = this.selectedTradeItems.map(item => { - return item.id; - }); - }, - doAddSelectTrade(val) {// 添加已选中的计分点到新增界面 - if (this.selectedTradeItems && this.selectedTradeItems.length > 0) { - // 追加val数组的所有元素 - this.selectedTradeItems.push.apply(this.selectedTradeItems, val); - } else { - this.selectedTradeItems = val; - } - this.dataForm.tradeList = this.selectedTradeItems; - this.dataForm.tradeList.forEach(item => { - this.$set(item, 'score', ''); - // this.$set(item, 'tradeId', item.id); - }); - - this.isShowTradeDelBtn = true;// 显示删除按钮 - }, - closeTradeDialog() { // 关闭计分点弹窗 - this.tradeDialogVisible = false; - }, - handleTradeSelectionChange(val) { - this.delTradeItems = val; - }, - checkboxIsEnabled() { // 复选框是否可用 - if (this.formAction === 2) { - return false; - } else { - return true; - } - }, - removeTradeItemBatch() { // 批量移除选中项 - if (!this.delTradeItems || this.delTradeItems.length === 0) { - this.$notify.warning({ - title: '系统提示', - message: '您没选择任何数据,请先选择!', - duration: 2000, - }); - return; - } - // 遍历当前选中项 - this.delTradeItems.forEach(item => { - if (this.selectedTradeItems.indexOf(item) > -1) { - // 移除当前项 - this.selectedTradeItems.splice(this.selectedTradeItems.indexOf(item), 1); - // this.dataForm.tradeList.splice(this.dataForm.tradeList.indexOf(item), 1); - } - }); - if (this.selectedTradeItems.length === 0) { - this.isShowTradeDelBtn = false; // 隐藏删除按钮 - } - }, - removeTradeItem(row) { // 移除当前行 - let index = this.selectedTradeItems.findIndex(item => { - return item.id == row.id; - }); - if (index > -1) { - this.selectedTradeItems.splice(this.selectedTradeItems.indexOf(row), 1); - } - }, - moveUpTradeItem(index,row) { // 向上移动 - let that = this; - // console.log('上移', index, row); - // console.log(that.dataForm.tradeList[index]); - if (index > 0) { - let upDate = that.dataForm.tradeList[index - 1]; - that.dataForm.tradeList.splice(index - 1, 1); - that.dataForm.tradeList.splice(index, 0, upDate); - } else { - alert('已经是第一条,不可上移'); - } - }, - moveDownTradeItem(index,row) { // 向下移动 - let that = this; - // console.log('下移', index, row); - if ((index + 1) === that.dataForm.tradeList.length) { - alert('已经是最后一条,不可下移'); - } else { - // console.log(index); - let downDate = that.dataForm.tradeList[index + 1]; - that.dataForm.tradeList.splice(index + 1, 1); - that.dataForm.tradeList.splice(index, 0, downDate); - } - }, getScoreSummaries(param) { // 计算总分 const { columns, data } = param; const sums = []; @@ -360,7 +208,7 @@ return; } - if (index === 6) { // 分数栏 + if (index === 3) { // 分数栏 values = data.map(item => Number(item['score'])); sums[index] = values.reduce((prev, curr) => { const value = Number(curr); @@ -380,60 +228,39 @@ return sums; }, - submitForm(formName) { + submitForm() { let self = this; - self.$refs[formName].validate((valid) => { + self.$refs['dataForm'].validate((valid) => { if (valid) { - let totalScore = self.dataForm.totalScore; + let totalScore = self.totalScore; if (totalScore === 0) { - self.$notify.error({ - title: '错误提示', - message: '判分设置模块没有添加计分点!', - duration: 2000, - }); + self.$message.error("判分设置模块没有添加计分点!"); return; } else if (totalScore > 100) { - self.$notify.error({ - title: '错误提示', - message: '判分设置模块总分超过100分!', - duration: 2000, - }); + self.$message.error("判分设置模块总分超过100分!"); return; } else if (totalScore < 100) { - self.$notify.error({ - title: '错误提示', - message: '判分设置模块总分不足100分!', - duration: 2000, - }); + self.$message.error("判分设置模块总分不足100分!"); return; } // userType 0学生 1教师 2管理员 - if (self.formAction == 0 && self.$store.state.app.user.userType) { - self.dataForm.isAdmin = self.$store.state.app.user.userType == 1 ? 0 : 1; - } - - self.$http.post('/authapi/bs_projectManage/addOrUpdateProject', self.dataForm).then(response => { - if(response.status==1) { - self.dataForm = Object.assign({}, self.dataForm, response.id); + // if (self.formAction == 0 && self.$store.state.app.user.userType) { + // self.dataForm.isAdmin = self.$store.state.app.user.userType == 1 ? 0 : 1; + // } + Train.insertCase(self.dataForm).then(res => { + if (res.code == 200) { + // self.dataForm = Object.assign({}, self.dataForm, response.id); self.formAction = 1; - self.$notify.success({ - title: '操作成功!', - message: '新增项目成功!', - duration: 2000, - }); + self.$message.success("操作成功!"); self.goBackList(); - }else{ - self.$message.error(response.msg); + } else { + self.$message.error(res.msg); } }).catch(error => { self.$message.error(error); - }) - } else { - self.$notify.error({ - title: '错误提示', - message: '系统输入验证失败!', - duration: 2000, }); + } else { + self.$message.error('系统输入验证失败!'); return false; } }); diff --git a/src/views/train/case-list.vue b/src/views/train/case-list.vue index 121cbc1..f6b4b9f 100644 --- a/src/views/train/case-list.vue +++ b/src/views/train/case-list.vue @@ -14,7 +14,7 @@ - + @@ -26,15 +26,11 @@ 创建 -
- - + @@ -53,12 +49,8 @@ @@ -87,7 +79,6 @@ name: '' }, listData: [], - delProjectItems: [], totalCount: 0, currentPage: 1, pageSize: 10, @@ -109,81 +100,35 @@ }); }, isShowEditOrDelBtn(row) { - let userType = this.$store.state.app.user.userType; - let projectType = row.isAdmin; - if (userType == 1 && projectType == 1) {// 教师只能查看内置项目 - return false; - } - if(userType==2 && projectType==0 ) {// 管理员只能查看教师项目 - return false; - } + // let userType = this.$store.state.user.userType; + // let projectType = row.isAdmin; + // if (userType == 1 && projectType == 1) {// 教师只能查看内置项目 + // return false; + // } + // if(userType==2 && projectType==0 ) {// 管理员只能查看教师项目 + // return false; + // } return true; }, doNew() {// 新增 this.toInputForm(); }, - handleProjectSelectionChange(val) { - this.delProjectItems = val; - }, - doBatchDel() {// 批量删除 - if (!this.delProjectItems || this.delProjectItems.length === 0) { - this.$notify.warning({ - title: '系统提示', - message: '您没选择任何行,无法操作!', - duration: 2000, - }); - return; - } - let ids = this.delProjectItems.map(function (row) { - return row.id; - }); - this.$confirm('确认要删除这 ' + ids.length + ' 项数据吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }).then(() => { - this.$http.post('/authapi/bs_projectManage/batchDeleteProjects', ids).then(response => { - - if (response.status==1) { - this.$notify.success({ - title: '系统删除成功', - message: '系统批量删除成功!', - }); - this.initList(); - } else { - this.$notify.error({ - title: '错误提示', - message: response.msg, - }); - } - }).catch(error => { - console.info(error) - }) - }).catch(() => { - }); - }, doSingleDel(row) { // 单个删除 this.$confirm('确认要删除这项数据吗?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { - this.$http.post('/authapi/bs_projectManage/singleDeleteProject', {id: row.id}).then(response => { - if (response.status==1) { - this.$notify.success({ - title: '系统删除成功', - message: '系统删除成功!', - }); + Train.delCase({id: row.id}).then((res) => { + if (res.code == 200) { + this.$message.success('删除成功!'); this.initList(); } else { - this.$notify.error({ - title: '错误提示', - message: response.msg, - }); + this.$message.error(res.msg); } }).catch(error => { console.info(error) - }) + }); }).catch(() => { }); },