Merge branch 'dev_product' of https://git.qcloud.com/joylink/jl-nclient into dev_product
# Conflicts: # src/api/designPlatform.js # src/i18n/langs/en/approval.js # src/i18n/langs/zh/approval.js
This commit is contained in:
commit
a622effdde
@ -82,7 +82,7 @@ export function rejectedLessonRelease(data, id) {
|
||||
});
|
||||
}
|
||||
|
||||
/** 普通用户申请发布和撤销申请 */
|
||||
/** 普通用户申请课程发布和撤销申请 */
|
||||
export function releaseOrCancel(id, status) {
|
||||
return request({
|
||||
url: `/api/review/lesson/releaseOrCancel/${id}/${status}`,
|
||||
@ -98,22 +98,6 @@ export function reviewScriptList(params) {
|
||||
params
|
||||
});
|
||||
}
|
||||
/** 管理员发布剧本 */
|
||||
export function publishScript(id, data) {
|
||||
return request({
|
||||
url: `/api/review/${id}/publishScript`,
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
/** 管理员剧本申请驳回 */
|
||||
export function rejectScript(id, data) {
|
||||
return request({
|
||||
url: `/api/review/script/${id}`,
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
}
|
||||
/** 管理员获取需审核的运行图列表 */
|
||||
export function reviewRunPlanList(params) {
|
||||
return request({
|
||||
@ -131,6 +115,13 @@ export function publishRunPlan(planId, data) {
|
||||
data: data
|
||||
});
|
||||
}
|
||||
/** 普通用户申请或撤销运行图发布 */
|
||||
export function releaseOrCancelRunPlan(planId, status) {
|
||||
return request({
|
||||
url: `/api/review/runPlan/releaseOrCancel/${planId}/${status}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 管理员运行图申请驳回 */
|
||||
export function rejectRunPlan(id, data) {
|
||||
return request({
|
||||
@ -148,3 +139,17 @@ export function releaseScript(id, status) {
|
||||
});
|
||||
}
|
||||
|
||||
/** 查看课程详情 */
|
||||
export function reviewLessonDetail(id) {
|
||||
return request({
|
||||
url: `/api/review/previewLesson/${id}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
/** 管理员预览草稿运行图*/
|
||||
export function previewRunPlan(planId) {
|
||||
return request({
|
||||
url: `/api/review/previewRunPlan/${planId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
@ -27,5 +27,10 @@ export default {
|
||||
runPlanPreview: 'RunPlan Preview',
|
||||
inputRunPlanName: 'Please input run plan name',
|
||||
releaseScriptSuccess: 'release script success',
|
||||
releaseScriptFailed: 'release script failed'
|
||||
releaseScriptFailed: 'release script failed',
|
||||
courseDescription: 'Course description',
|
||||
lookOver: 'Look over',
|
||||
courseDetails: 'Course details',
|
||||
instructions: 'Instructions',
|
||||
chapterTrainingName: 'Chapter/training name'
|
||||
};
|
||||
|
@ -91,5 +91,7 @@ export default {
|
||||
getRunGraphDataFailed: 'Failed to get run graph data',
|
||||
getStationListFail: 'Failed to get station list',
|
||||
obtainTrainGroupNumberFailed: 'Failed to obtain train group number',
|
||||
getTrainListFailed: 'Failed to get train list'
|
||||
getTrainListFailed: 'Failed to get train list',
|
||||
getDraftCourseDataFailed: 'Failed to get draft course data!',
|
||||
failedToGetCourseData: 'Failed to get course data!'
|
||||
};
|
||||
|
@ -104,5 +104,12 @@ export default {
|
||||
trainingRule: 'Training rule',
|
||||
trainingManage: 'Training manage',
|
||||
newConstruction: 'New',
|
||||
applicationForRelease: 'Application for release'
|
||||
applicationForRelease: 'Application for release',
|
||||
rejectReason: 'Reason for rejection',
|
||||
withdraw: 'Withdraw',
|
||||
notRelease: 'Not release',
|
||||
pendingReview: 'Pending review',
|
||||
published: 'Published',
|
||||
rejected: 'Rejected',
|
||||
review: 'Review'
|
||||
};
|
||||
|
@ -301,5 +301,6 @@ export default {
|
||||
enterTheElevatorCode: 'Please enter the elevator code',
|
||||
enterTheElevatorWidth: 'Please enter the elevator width',
|
||||
enterTheElevatorHeight: 'Please enter the elevator height',
|
||||
enterTheElevatorColor: 'Please enter the elevator color'
|
||||
enterTheElevatorColor: 'Please enter the elevator color',
|
||||
enterRejectReason: 'Please enter reject reason'
|
||||
};
|
||||
|
@ -198,5 +198,11 @@ export default {
|
||||
runGraphNameModifiedSuccessfully: 'Run graph name modified successfully!',
|
||||
modifyRunGraphNameFailed: 'Modify run graph name failed!',
|
||||
planCreationSuccessful: 'Plan creation successful!',
|
||||
createPlanFailed: 'Failed to create plan!'
|
||||
createPlanFailed: 'Failed to create plan!',
|
||||
cancelCoursePublicationHint: 'This action will cancel the course publication application, is it OK?',
|
||||
cancelTheSuccessfulApplicationOfTheCourseRelease: 'Cancel the successful application of the course release!',
|
||||
cancellationOfCoursePublicationApplicationFailed: 'Cancellation of course publication application failed!',
|
||||
publishTheCourseHint: 'This operation will publish the course. Are you sure?',
|
||||
rejectedCourseReleaseApplicationSuccessful: 'Rejected course release application successful!',
|
||||
rejectedCourseReleaseApplicationFailed: 'Rejected course release application failed!'
|
||||
};
|
||||
|
@ -27,5 +27,10 @@ export default {
|
||||
runPlanPreview: '预览',
|
||||
inputRunPlanName: '请输入运行图名称',
|
||||
releaseScriptSuccess: '申请发布成功',
|
||||
releaseScriptFailed: '申请发布失败'
|
||||
releaseScriptFailed: '申请发布失败',
|
||||
courseDescription: '课程说明',
|
||||
lookOver: '查看',
|
||||
courseDetails: '课程详情',
|
||||
instructions: '说明',
|
||||
chapterTrainingName: '章节/课程名称'
|
||||
};
|
||||
|
@ -91,5 +91,7 @@ export default {
|
||||
getRunGraphDataFailed: '获取运行图数据失败',
|
||||
getStationListFail: '获取车站列表失败',
|
||||
obtainTrainGroupNumberFailed: '获取列车车组号失败',
|
||||
getTrainListFailed: '获取列车列表失败'
|
||||
getTrainListFailed: '获取列车列表失败',
|
||||
getDraftCourseDataFailed: '获取草稿课程数据失败!',
|
||||
failedToGetCourseData: '获取课程数据失败!'
|
||||
};
|
||||
|
@ -103,6 +103,13 @@ export default {
|
||||
trainingRule: '操作定义',
|
||||
trainingManage: '实训管理',
|
||||
newConstruction: '新建',
|
||||
applicationForRelease: '申请发布'
|
||||
applicationForRelease: '申请发布',
|
||||
rejectReason: '驳回原因',
|
||||
withdraw: '撤销',
|
||||
notRelease: '未发布',
|
||||
pendingReview: '待审核',
|
||||
published: '已发布',
|
||||
rejected: '已驳回',
|
||||
review: '查看'
|
||||
};
|
||||
|
||||
|
@ -303,5 +303,6 @@ export default {
|
||||
enterTheElevatorCode: '请输入电梯编号',
|
||||
enterTheElevatorWidth: '请输入电梯宽度',
|
||||
enterTheElevatorHeight: '请输入电梯高度',
|
||||
enterTheElevatorColor: '请输入电梯颜色'
|
||||
enterTheElevatorColor: '请输入电梯颜色',
|
||||
enterRejectReason: '请输入驳回说明'
|
||||
};
|
||||
|
@ -198,5 +198,11 @@ export default {
|
||||
runGraphNameModifiedSuccessfully: '修改运行图名称成功!',
|
||||
modifyRunGraphNameFailed: '修改运行图名称失败!',
|
||||
planCreationSuccessful: '创建计划成功!',
|
||||
createPlanFailed: '创建计划失败!'
|
||||
createPlanFailed: '创建计划失败!',
|
||||
cancelCoursePublicationHint: '此操作将撤销课程发布申请,是否确定?',
|
||||
cancelTheSuccessfulApplicationOfTheCourseRelease: '撤销课程发布申请成功!',
|
||||
cancellationOfCoursePublicationApplicationFailed: '撤销课程发布申请失败!',
|
||||
publishTheCourseHint: '此操作将发布课程,是否确定?',
|
||||
rejectedCourseReleaseApplicationSuccessful: '驳回课程发布申请成功!',
|
||||
rejectedCourseReleaseApplicationFailed: '驳回课程发布申请失败!'
|
||||
};
|
||||
|
@ -1,10 +1,52 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
:title="this.$t('approval.courseDetails')"
|
||||
:visible.sync="showDetail"
|
||||
top="20px"
|
||||
width="90%"
|
||||
:before-do-close="doClose"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div>
|
||||
<QueryListPage></QueryListPage>
|
||||
<el-card v-loading="loading">
|
||||
<div slot="header" style="text-align: center;">
|
||||
<b>{{ $t('global.courseName') }}: {{ lessonName }}</b>
|
||||
</div>
|
||||
<div style="margin:50px">
|
||||
<p style="font-size: 14px; margin-bottom: 20px"> {{ $t('approval.courseDescription')}}:
|
||||
<span style="color: #808080 !important;">{{ lessonRemark }}</span>
|
||||
</p>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card v-loading="loading">
|
||||
<el-scrollbar wrap-class="scrollbar-wrapper" :style="{height: height -60 + 'px'}">
|
||||
<el-table
|
||||
:data="tableData"
|
||||
row-key="id"
|
||||
border
|
||||
default-expand-all
|
||||
:tree-props="{children: 'children', hasChildren: 'hasChildren'}">
|
||||
<el-table-column
|
||||
prop="name"
|
||||
border
|
||||
:label="this.$t('approval.chapterTrainingName')">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="remarks"
|
||||
border
|
||||
:label="this.$t('approval.instructions')">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-scrollbar>
|
||||
</el-card>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {reviewLessonDetail} from '@/api/designPlatform';
|
||||
|
||||
export default {
|
||||
name: 'LessonApprovalDetail',
|
||||
components: {
|
||||
@ -12,21 +54,47 @@
|
||||
},
|
||||
watch: {
|
||||
|
||||
},
|
||||
computed: {
|
||||
height() {
|
||||
return this.$store.state.app.height - 260;
|
||||
}
|
||||
},
|
||||
data() {
|
||||
|
||||
return{
|
||||
loading: false,
|
||||
tableData: [],
|
||||
lessonName: '',
|
||||
lessonRemark: '',
|
||||
showDetail: false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
// this.loadInitData();
|
||||
},
|
||||
beforeDestroy(){
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
show(lessonId){
|
||||
this.showDetail = true;
|
||||
this.loadInitData(lessonId);
|
||||
},
|
||||
loadInitData(lessonId) {
|
||||
this.loading =true;
|
||||
reviewLessonDetail(lessonId).then(response =>{
|
||||
this.tableData = response.data[0].children;
|
||||
this.lessonName = response.data[0].name;
|
||||
this.lessonRemark = response.data[0].remarks;
|
||||
this.loading = false;
|
||||
}).catch(error=>{
|
||||
this.$messageBox(this.$t('approval.failedToGetCourseData'))
|
||||
});
|
||||
},
|
||||
doClose() {
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -1,20 +1,39 @@
|
||||
<template>
|
||||
<div>
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList"></QueryListPage>
|
||||
<el-dialog :title="this.$t('approval.explanation')" :visible.sync="dialogFormVisible">
|
||||
<el-input type="textarea"
|
||||
:rows="2"
|
||||
:placeholder="this.$t('rules.enterRejectReason')"
|
||||
@focus="inputFocus"
|
||||
@blur="inputBlur"
|
||||
v-model="textarea"></el-input>
|
||||
<span v-show="needReason" style="color: red">{{'*'+$t('rules.enterRejectReason')}}</span>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="rejectCancel">{{$t('global.cancel')}}</el-button>
|
||||
<el-button type="primary" @click="rejectConfirm">{{$t('global.confirm')}}</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<lesson-detail ref="lessonDetail"></lesson-detail>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {adminPublishLesson,rejectedLessonRelease,reviewLessonList} from '@/api/designPlatform';
|
||||
import { listPublishMap } from '@/api/jmap/map';
|
||||
import LessonDetail from './detail';
|
||||
|
||||
export default {
|
||||
name: 'LessonApproval',
|
||||
components: {
|
||||
|
||||
LessonDetail
|
||||
},
|
||||
data() {
|
||||
return{
|
||||
dialogFormVisible: false,
|
||||
rejectId: '',
|
||||
textarea: '',
|
||||
needReason: false,
|
||||
formModel: {
|
||||
name: '',
|
||||
creator: '',
|
||||
@ -31,7 +50,7 @@
|
||||
queryObject: {
|
||||
mapId: {
|
||||
type: 'select',
|
||||
label: '地图:',
|
||||
label: this.$t('approval.map')+this.$t('global.colon'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
@ -42,7 +61,7 @@
|
||||
},
|
||||
userName: {
|
||||
type: 'text',
|
||||
label: '申请人:'
|
||||
label: this.$t('approval.applicant')+this.$t('global.colon'),
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -56,22 +75,22 @@
|
||||
prop: 'name'
|
||||
},
|
||||
{
|
||||
title: '地图',
|
||||
title: this.$t('approval.map'),
|
||||
prop: 'mapId ',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.mapId , this.mapList, ['value', 'label']); },
|
||||
tagType: (row) => { return ''; }
|
||||
},
|
||||
{
|
||||
title: '课程说明',
|
||||
title: this.$t('approval.courseDescription'),
|
||||
prop: 'remarks'
|
||||
},
|
||||
{
|
||||
title: '申请人',
|
||||
title: this.$t('approval.applicant'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: '申请时间',
|
||||
title: this.$t('approval.applyTime'),
|
||||
prop: 'uploadTime',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.handleTime(row.uploadTime)},
|
||||
@ -83,12 +102,17 @@
|
||||
width: '250',
|
||||
buttons: [
|
||||
{
|
||||
name: '通过',
|
||||
name: this.$t('approval.lookOver'),
|
||||
handleClick: this.goDetail,
|
||||
type: ''
|
||||
},
|
||||
{
|
||||
name: this.$t('approval.applyPassed'),
|
||||
handleClick: this.pass,
|
||||
type: ''
|
||||
},
|
||||
{
|
||||
name: '驳回',
|
||||
name: this.$t('approval.applyReject'),
|
||||
handleClick: this.noPass,
|
||||
type: ''
|
||||
}
|
||||
@ -116,21 +140,81 @@
|
||||
|
||||
},
|
||||
methods: {
|
||||
refresh() {
|
||||
|
||||
},
|
||||
goDetail() {
|
||||
this.$router.push({path:``});
|
||||
goDetail(index,row) {
|
||||
this.$refs.lessonDetail.show(row.id);
|
||||
},
|
||||
pass(index,row) {
|
||||
|
||||
this.$confirm(this.$t('tip.publishTheCourseHint'), this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
const params = {
|
||||
cityCode: row.cityCode,
|
||||
mapId: row.mapId,
|
||||
name: row.name,
|
||||
prdCode: row.prdCode
|
||||
};
|
||||
adminPublishLesson(params,row.id).then(response => {
|
||||
this.loading = false;
|
||||
this.$message.success(this.$t('tip.coursePublishSuccessful'));
|
||||
this.doClose();
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
this.$messageBox(this.$t('tip.coursePublishFailed'));
|
||||
})
|
||||
});
|
||||
},
|
||||
noPass(index,row) {
|
||||
|
||||
this.needReason = false;
|
||||
this.textarea = '';
|
||||
this.dialogFormVisible = true;
|
||||
this.rejectId = row.id;
|
||||
},
|
||||
handleTime(time) {
|
||||
let timeList = time.split("T");
|
||||
return timeList[0] + ' ' +timeList[1];
|
||||
},
|
||||
doClose() {
|
||||
this.$refs.queryListPage.refresh(true);
|
||||
},
|
||||
rejectConfirm() {
|
||||
if (!this.textarea){
|
||||
this.needReason = true;
|
||||
return;
|
||||
}
|
||||
if (this.rejectId){
|
||||
rejectedLessonRelease({explanation:this.textarea},this.rejectId).then(rep =>{
|
||||
this.loading = false;
|
||||
this.$message.success(this.$t('tip.rejectedCourseReleaseApplicationSuccessful'));
|
||||
this.dialogFormVisible = false;
|
||||
this.rejectId = '';
|
||||
this.textarea = '';
|
||||
this.doClose();
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
this.$messageBox(this.$t('tip.rejectedCourseReleaseApplicationSuccessful'));
|
||||
this.dialogFormVisible = false;
|
||||
this.rejectId = '';
|
||||
this.textarea = '';
|
||||
this.doClose();
|
||||
})
|
||||
}
|
||||
},
|
||||
rejectCancel() {
|
||||
this.dialogFormVisible = false;
|
||||
this.rejectId = '';
|
||||
this.textarea = '';
|
||||
},
|
||||
inputFocus() {
|
||||
this.needReason = false;
|
||||
},
|
||||
inputBlur() {
|
||||
if (this.textarea){
|
||||
this.needReason = false;
|
||||
}else {
|
||||
this.needReason = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,32 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'LessonApprovalReject',
|
||||
components: {
|
||||
|
||||
},
|
||||
watch: {
|
||||
|
||||
},
|
||||
data() {
|
||||
|
||||
},
|
||||
created() {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
beforeDestroy(){
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
@ -9,8 +9,10 @@
|
||||
</template>
|
||||
<script>
|
||||
import RunPlanOperate from './operate';
|
||||
import { reviewRunPlanList,publishRunPlan,rejectRunPlan } from '@/api/designPlatform';
|
||||
import { reviewRunPlanList,publishRunPlan,rejectRunPlan,previewRunPlan } from '@/api/designPlatform';
|
||||
import { listPublishMap } from '@/api/jmap/map';
|
||||
import { launchFullscreen } from '@/utils/screen';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
export default {
|
||||
name: 'ScriptApproval',
|
||||
components: {
|
||||
@ -142,7 +144,15 @@
|
||||
this.$refs.applyReject.doShow(row);
|
||||
},
|
||||
runPlanPreview(index,row){
|
||||
debugger;
|
||||
previewRunPlan(row.id).then(resp => {
|
||||
const query = {
|
||||
skinCode: row.skinCode, prdType: '01', group: resp.data, mapId: row.mapId, planId: row.id,from:''
|
||||
};
|
||||
this.$router.push({ path: `${UrlConfig.display}/plan`, query: query });
|
||||
launchFullscreen();
|
||||
}).catch(error => {
|
||||
this.$messageBox(this.$t('tip.createSimulationFaild')+this.$t('global.colon')+error.message);
|
||||
});
|
||||
},
|
||||
handleConfirmPass(data){
|
||||
publishRunPlan(data.id,data).then(resp => {
|
||||
|
@ -22,11 +22,19 @@
|
||||
:label="this.$t('lesson.lesson')">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="status"
|
||||
label="状态"
|
||||
:label="this.$t('global.status')"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>{{handlerStatus(scope.row)}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="explanation"
|
||||
show-overflow-tooltip
|
||||
:label="this.$t('lesson.rejectReason')">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
width="500"
|
||||
:label="this.$t('global.operate')">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
@ -35,6 +43,14 @@
|
||||
v-if="scope.row.status!=='1'"
|
||||
@click="createChapter(scope.row)"
|
||||
>{{ scope.row.type==='lesson'? $t('lesson.createChapter'):$t('lesson.updateChapter')}}</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
v-if="scope.row.status==='1'"
|
||||
@click="goDetail(scope.row)"
|
||||
>
|
||||
{{$t('lesson.review')}}
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="primary" plain
|
||||
@ -48,7 +64,7 @@
|
||||
>{{$t('lesson.editCourse')}}</el-button>
|
||||
<el-button size="mini"
|
||||
type="primary"
|
||||
v-if="scope.row.type === 'lesson'&& scope.row.status!=='1'"
|
||||
v-if="scope.row.type === 'lesson'&& scope.row.status==='0'"
|
||||
@click="publish(scope.row)"
|
||||
>{{hasRelease?$t('global.release'):$t('lesson.applicationForRelease')}}</el-button>
|
||||
<el-button size="mini"
|
||||
@ -56,28 +72,37 @@
|
||||
v-if="scope.row.type === 'lesson'&& scope.row.status!=='1'"
|
||||
@click="deleteLesson(scope.row)"
|
||||
>{{$t('global.delete')}}</el-button>
|
||||
<el-button size="mini"
|
||||
type="danger"
|
||||
v-if="scope.row.status ==='1'"
|
||||
@click="revertLesson(scope.row)"
|
||||
>
|
||||
{{$t('lesson.withdraw')}}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
<publish-create @refresh="refresh" ref="publishCreate" />
|
||||
<publish-lesson ref="publishLesson" />
|
||||
<publish-lesson ref="publishLesson" @refresh="refresh" />
|
||||
<lesson-detail ref="lessonDetail"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getDraftLesson } from '@/api/designPlatform';
|
||||
import { getDraftLesson,releaseOrCancel } from '@/api/designPlatform';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
import PublishCreate from './lessoncategory/edit/create';
|
||||
import PublishLesson from './lessoncategory/edit/lesson/publish';
|
||||
import { delLesson } from '@/api/jmap/lessondraft';
|
||||
|
||||
import LessonDetail from '@/views/approval/lesson/detail';
|
||||
|
||||
export default {
|
||||
name: 'LessonHome',
|
||||
components: {
|
||||
PublishCreate,
|
||||
PublishLesson
|
||||
PublishLesson,
|
||||
LessonDetail
|
||||
},
|
||||
computed: {
|
||||
mapId() {
|
||||
@ -116,8 +141,42 @@
|
||||
});
|
||||
this.tableData = response.data;
|
||||
this.loading = false;
|
||||
}).catch(error=>{
|
||||
this.$messageBox(this.$t('error.getDraftCourseDataFailed'))
|
||||
});
|
||||
},
|
||||
refuse() {
|
||||
this.loading = true;
|
||||
getDraftLesson({},this.mapId).then(response=> {
|
||||
response.data.forEach(elem => {
|
||||
if (elem.children) {
|
||||
elem.children.forEach( it => {
|
||||
it.parentId = elem.id;
|
||||
} )
|
||||
}
|
||||
});
|
||||
this.tableData = response.data;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
handlerStatus(row) {
|
||||
let lessonStatus = '';
|
||||
switch (row.status){
|
||||
case '0':
|
||||
lessonStatus = this.$t('lesson.notRelease');
|
||||
break;
|
||||
case '1':
|
||||
lessonStatus = this.$t('lesson.pendingReview');
|
||||
break;
|
||||
case '2':
|
||||
lessonStatus = this.$t('lesson.published');
|
||||
break;
|
||||
case '3':
|
||||
lessonStatus = this.$t('lesson.rejected');
|
||||
break;
|
||||
}
|
||||
return lessonStatus;
|
||||
},
|
||||
refresh() {
|
||||
this.loading = true;
|
||||
this.loadInitData();
|
||||
@ -165,6 +224,26 @@
|
||||
},
|
||||
operationManage() {
|
||||
this.$router.push({path: `${UrlConfig.design.trainingRule}`, query: {mapId: this.$route.params.mapId, skinCode: this.$route.params.skinCode}})
|
||||
},
|
||||
revertLesson(row) {
|
||||
this.$confirm(this.$t('tip.cancelCoursePublicationHint'), this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
releaseOrCancel(row.id,"0").then(response => {
|
||||
this.loading = false;
|
||||
this.$message.success(this.$t('tip.cancelTheSuccessfulApplicationOfTheCourseRelease'));
|
||||
this.refuse();
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
this.$messageBox(this.$t('tip.cancellationOfCoursePublicationApplicationFailed'));
|
||||
this.refuse();
|
||||
});
|
||||
});
|
||||
},
|
||||
goDetail(row) {
|
||||
this.$refs.lessonDetail.show(row.id);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -118,6 +118,7 @@
|
||||
doClose() {
|
||||
this.$refs.form.resetFields();
|
||||
this.dialogShow = false;
|
||||
this.$emit('refresh')
|
||||
},
|
||||
doSave() {
|
||||
this.loading = true;
|
||||
|
@ -30,6 +30,9 @@
|
||||
</el-tree>
|
||||
</el-scrollbar>
|
||||
</el-card>
|
||||
<div class="draft">
|
||||
<el-button type="primary" @click="goBack">{{$t('global.back')}}</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -50,7 +53,7 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
height() {
|
||||
return this.$store.state.app.height - 140;
|
||||
return this.$store.state.app.height - 180;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@ -112,6 +115,9 @@ export default {
|
||||
this.$emit('refresh');
|
||||
});
|
||||
}
|
||||
},
|
||||
goBack() {
|
||||
this.$router.go(-1);
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -145,4 +151,9 @@ export default {
|
||||
margin: 0 auto;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.draft {
|
||||
width: 300px;
|
||||
text-align: center;
|
||||
margin: 20px auto;
|
||||
}
|
||||
</style>
|
||||
|
@ -77,7 +77,7 @@ export default {
|
||||
const self = this;
|
||||
this.$refs.dataform.validateForm(() => {
|
||||
if (this.isShow) {
|
||||
this.$confirm(this.$t('global.wellClearOperate'), this.$t('global.tips'), {
|
||||
this.$confirm(this.$t('lesson.wellClearOperate'), this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
|
@ -1,25 +1,5 @@
|
||||
<template>
|
||||
<el-card :style="{height: height+'px'}">
|
||||
<!-- <div slot="header" style="text-align: center;">
|
||||
<span class=" title">{{ $t('global.line')+courseModel.name }}</span>
|
||||
</div>
|
||||
<div style="margin:50px; overflow-x: auto;" :style="{ height: height - 150 +'px' }">
|
||||
<p class="list-item">
|
||||
<span class="list-label">{{ $t('global.updateTime') }}</span>
|
||||
<span class="list-elem">{{ courseModel.updateTime }}</span>
|
||||
</p>
|
||||
<p class="list-item">
|
||||
<span class="list-label">{{ $t('global.permissionList') }}</span>
|
||||
</p>
|
||||
<limit-list ref="limitList" :course-model="courseModel" @initLoadPage="getScreenLists" />
|
||||
<p style="display: flex; justify-content: center;">
|
||||
<span class="list-label" />
|
||||
<el-button type="success" @click="buy">{{ $t('global.buy') }}</el-button>
|
||||
<el-button v-if="hasPermssion" type="primary" @click="distribute">{{ $t('global.distributePermission') }}</el-button>
|
||||
<el-button v-if="hasPermssion" type="primary" @click="transfer">{{ $t('global.transferQRCode') }}</el-button>
|
||||
<el-button type="primary" @click="start">{{ $t('planMonitor.offlineMappingSoftware') }}</el-button>
|
||||
</p>
|
||||
</div> -->
|
||||
<div class="runPlanHeader">
|
||||
<div class="runPlanList">运行图列表</div>
|
||||
<el-button size="small" type="primary" @click="handleCreate" class="createRunPlan" v-if="isCreate">创建运行图</el-button>
|
||||
@ -28,12 +8,28 @@
|
||||
border
|
||||
style="width: 90%;margin-left:5%;margin-top:20px;display: inline-block;">
|
||||
<el-table-column prop="name" label="运行图名称" />
|
||||
<el-table-column prop="createTime" label="创建日期" width="180" />
|
||||
<el-table-column label="操作">
|
||||
<el-table-column label="状态">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" class="button_box" @click="handleConfirm(scope.row)">加载</el-button>
|
||||
<el-button size="mini" class="button_box" @click="handleEdit(scope.row)" v-if="isCreate">修改名称</el-button>
|
||||
<el-button size="mini" class="button_box" type="danger" @click="handleDelete(scope.row)" v-if="isCreate">删除</el-button>
|
||||
<span>{{handlerStatus(scope.row)}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="explanation"
|
||||
show-overflow-tooltip
|
||||
label="驳回说明">
|
||||
</el-table-column>
|
||||
<el-table-column label="创建日期">
|
||||
<template slot-scope="scope">
|
||||
<span>{{handleTime(scope.row.createTime)}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="500">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" class="button_box" @click="handleConfirm(scope.row)" v-if="scope.row.status !=='1'">加载</el-button>
|
||||
<el-button size="mini" class="button_box" @click="handleEdit(scope.row)" v-if="isCreate && scope.row.status !=='1'">修改名称</el-button>
|
||||
<el-button size="mini" class="button_box" type="danger" @click="handleDelete(scope.row)" v-if="isCreate && scope.row.status !=='1'">删除</el-button>
|
||||
<el-button size="mini" class="button_box" type="primary" @click="handlePublish(scope.row)" v-if="isCreate && scope.row.status ==='0'">{{hasRelease?'发布':'申请发布'}}</el-button>
|
||||
<el-button size="mini" class="button_box" type="danger" @click="handelRevert(scope.row)" v-if="scope.row.status === '1'" >撤销</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -42,112 +38,9 @@
|
||||
</el-card>
|
||||
</template>
|
||||
<script>
|
||||
// import { getPublishMapInfo } from '@/api/jmap/map';
|
||||
// import { PermissionType } from '@/scripts/ConstDic';
|
||||
// import { UrlConfig } from '@/router/index';
|
||||
// import LimitList from '@/views/components/limits/index';
|
||||
|
||||
// export default {
|
||||
// name: 'ExamDetailList',
|
||||
// components: {
|
||||
// LimitList
|
||||
// },
|
||||
// filters: {
|
||||
// },
|
||||
// data() {
|
||||
// return {
|
||||
// courseModel: {
|
||||
// mapId: '',
|
||||
// name: '',
|
||||
// skinCode: '',
|
||||
// updateTime: '',
|
||||
// pmsList: []
|
||||
// },
|
||||
// EffectiveTypeList: [],
|
||||
// screenList: []
|
||||
// };
|
||||
// },
|
||||
// computed: {
|
||||
// hasPermssion() {
|
||||
// let isShow = false;
|
||||
// this.courseModel.pmsList.forEach(item => {
|
||||
// if (item.canDistribute) {
|
||||
// isShow = true;
|
||||
// }
|
||||
// });
|
||||
// return isShow;
|
||||
// },
|
||||
// height() {
|
||||
// return this.$store.state.app.height;
|
||||
// }
|
||||
// },
|
||||
// watch: {
|
||||
// $route(newVal) {
|
||||
// this.initLoadPage();
|
||||
// }
|
||||
// },
|
||||
// async mounted() {
|
||||
// this.$Dictionary.effectiveType().then(list => {
|
||||
// this.EffectiveTypeList = list;
|
||||
// });
|
||||
// await this.getScreenLists();
|
||||
// this.initLoadPage();
|
||||
// },
|
||||
// methods: {
|
||||
// async getScreenLists() {
|
||||
// },
|
||||
// async initLoadPage() {
|
||||
// const that = this;
|
||||
// const data = { id: this.$route.params.lessonId };
|
||||
// if (parseInt(data.id)) {
|
||||
// try {
|
||||
// const res = await getPublishMapInfo(data.id);
|
||||
// this.tryUser = 0;
|
||||
// that.courseModel = {
|
||||
// name: res.data.name,
|
||||
// mapId: res.data.id,
|
||||
// skinCode: res.data.skinCode,
|
||||
// updateTime: res.data.updateTime,
|
||||
// pmsList: that.screenList || [],
|
||||
// PermissionType: PermissionType.PLAN
|
||||
// };
|
||||
|
||||
// this.$store.dispatch('training/setPrdType', res.data.prdType);
|
||||
// } catch (error) {
|
||||
// this.$messageBox(this.$t('error.refreshFailed'));
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
// buy() {
|
||||
// this.$router.push({
|
||||
// path: `${UrlConfig.plan.pay}/${this.$route.params.lessonId}`,
|
||||
// query: { permissionType: PermissionType.SCREEN, prdCode: this.courseModel.prdCode, mapId: this.courseModel.mapId }
|
||||
// });
|
||||
// },
|
||||
// transfer() {
|
||||
// if (this.$refs) {
|
||||
// this.$refs.limitList.transfer(this.courseModel);
|
||||
// }
|
||||
// },
|
||||
// distribute() {
|
||||
// if (this.$refs) {
|
||||
// this.$refs.limitList.distribute(this.courseModel);
|
||||
// }
|
||||
// },
|
||||
// jump() {
|
||||
// const query = {
|
||||
// skinCode: this.courseModel.skinCode, mapId: this.courseModel.mapId
|
||||
// };
|
||||
// this.$router.push({ path: `${UrlConfig.plan.tool}`, query: query });
|
||||
// },
|
||||
// start() {
|
||||
// this.jump();
|
||||
// }
|
||||
// }
|
||||
// };
|
||||
import EditPlanName from './editTool/menus/editPlanName';
|
||||
import CreateEmptyPlan from './editTool/menus/createEmptyPlan';
|
||||
import { getRpListByUserMapId} from '@/api/designPlatform';
|
||||
import { getRpListByUserMapId, publishRunPlan, releaseOrCancelRunPlan} from '@/api/designPlatform';
|
||||
import { getRpListByMapId, deleteRunPlan } from '@/api/runplan';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
export default {
|
||||
@ -184,6 +77,10 @@ export default {
|
||||
skinCode() {
|
||||
return this.$route.query.skinCode || '02';
|
||||
},
|
||||
hasRelease() {
|
||||
return this.$store.state.user.roles.includes('04') ||
|
||||
this.$store.state.user.roles.includes('05');
|
||||
}
|
||||
},
|
||||
created(){
|
||||
this.PlanConvert = this.$theme.loadPlanConvert(this.$route.query.skinCode);
|
||||
@ -282,6 +179,68 @@ export default {
|
||||
this.$messageBox(this.$t('tip.deleteOperationGraphFailed'));
|
||||
});
|
||||
}).catch(() => { });
|
||||
},
|
||||
handlePublish(row) {
|
||||
this.$confirm(this.hasRelease? '此操作将发布运行图,是否继续?':'此操作将发起运行图发布申请,是否继续?',this.$t('tip.hint'),{
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
cancelButtonText: this.$t('tip.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
if (this.hasRelease){
|
||||
publishRunPlan(row.id,{runPlanName: name}).then(resp => {
|
||||
this.$message.success('发布运行图成功!');
|
||||
this.refresh();
|
||||
}).catch(() => {
|
||||
this.$messageBox('发布运行图失败!');
|
||||
this.refresh();
|
||||
})
|
||||
} else {
|
||||
releaseOrCancelRunPlan(row.id, '1').then(resp => {
|
||||
this.$message.success('提交运行图发布申请成功!');
|
||||
this.refresh();
|
||||
}).catch(() => {
|
||||
this.$messageBox('提交运行图发布申请失败!');
|
||||
this.refresh();
|
||||
})
|
||||
}
|
||||
});
|
||||
},
|
||||
handelRevert(row) {
|
||||
this.$confirm('此操作将撤销发布运行图申请,是否继续?',this.$t('tip.hint'),{
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
cancelButtonText: this.$t('tip.cancel'),
|
||||
type:'warning'
|
||||
}).then(() => {
|
||||
releaseOrCancelRunPlan(row.id,'0').then(resp=> {
|
||||
this.$message.success('撤销运行图发布申请成功!');
|
||||
this.refresh();
|
||||
}).catch(() => {
|
||||
this.$messageBox('撤销运行图发布申请失败!')
|
||||
this.refresh();
|
||||
})
|
||||
})
|
||||
},
|
||||
handlerStatus(row) {
|
||||
let lessonStatus = '';
|
||||
switch (row.status){
|
||||
case '0':
|
||||
lessonStatus = this.$t('lesson.notRelease');
|
||||
break;
|
||||
case '1':
|
||||
lessonStatus = this.$t('lesson.pendingReview');
|
||||
break;
|
||||
case '2':
|
||||
lessonStatus = this.$t('lesson.published');
|
||||
break;
|
||||
case '3':
|
||||
lessonStatus = this.$t('lesson.rejected');
|
||||
break;
|
||||
}
|
||||
return lessonStatus;
|
||||
},
|
||||
handleTime(time) {
|
||||
let timeList = time.split("T");
|
||||
return timeList[0] + ' ' +timeList[1];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user