|
|
@ -2,28 +2,19 @@ |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<el-row :gutter="20"> |
|
|
|
<el-row :gutter="20"> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-card shadow="hover" |
|
|
|
<el-card shadow="hover" class="mgb20"> |
|
|
|
class="mgb20"> |
|
|
|
|
|
|
|
<div class="flex-between"> |
|
|
|
<div class="flex-between"> |
|
|
|
<div class="per_title" |
|
|
|
<div class="per_title" v-preventReClick @click="back"> |
|
|
|
v-preventReClick |
|
|
|
|
|
|
|
@click="back"> |
|
|
|
|
|
|
|
<i class="el-icon-arrow-left"></i> |
|
|
|
<i class="el-icon-arrow-left"></i> |
|
|
|
<span class="per_back">返回</span> |
|
|
|
<span class="per_back">返回</span> |
|
|
|
<span class="per_school" |
|
|
|
<span class="per_school" v-text="form.cid ? '编辑课程' : '新建课程'"></span> |
|
|
|
v-text="form.cid ? '编辑课程' : '新建课程'"></span> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<el-button type="primary" |
|
|
|
<el-button type="primary" round class="mag" v-preventReClick @click="saveAdd">确定 |
|
|
|
round |
|
|
|
|
|
|
|
class="mag" |
|
|
|
|
|
|
|
v-preventReClick |
|
|
|
|
|
|
|
@click="saveAdd">确定 |
|
|
|
|
|
|
|
</el-button> |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
</el-card> |
|
|
|
|
|
|
|
|
|
|
|
<el-card shadow="hover" |
|
|
|
<el-card shadow="hover" class="mgb20 "> |
|
|
|
class="mgb20 "> |
|
|
|
|
|
|
|
<div class="flex-center mgb20"> |
|
|
|
<div class="flex-center mgb20"> |
|
|
|
<p class="addhr_tag"></p> |
|
|
|
<p class="addhr_tag"></p> |
|
|
|
<span>课程信息</span> |
|
|
|
<span>课程信息</span> |
|
|
@ -31,112 +22,65 @@ |
|
|
|
<div class="border-b-dashed"></div> |
|
|
|
<div class="border-b-dashed"></div> |
|
|
|
|
|
|
|
|
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<el-form :model="form" |
|
|
|
<el-form :model="form" :rules="rules" ref="form" label-width="100px"> |
|
|
|
:rules="rules" |
|
|
|
<el-col :span="6" :offset="5"> |
|
|
|
ref="form" |
|
|
|
<el-form-item label="课程名称" prop="curriculumName"> |
|
|
|
label-width="100px"> |
|
|
|
<el-input placeholder="请输入课程名称" v-model.trim="form.curriculumName"></el-input> |
|
|
|
<el-col :span="6" |
|
|
|
|
|
|
|
:offset="5"> |
|
|
|
|
|
|
|
<el-form-item label="课程名称" |
|
|
|
|
|
|
|
prop="curriculumName"> |
|
|
|
|
|
|
|
<el-input placeholder="请输入课程名称" |
|
|
|
|
|
|
|
v-model.trim="form.curriculumName"></el-input> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="学科类别" |
|
|
|
<el-form-item label="学科类别" prop="categoryId"> |
|
|
|
prop="categoryId"> |
|
|
|
<el-select v-model="form.categoryId" clearable placeholder="请选择学科类别" @change="getProfessionalClass()" |
|
|
|
<el-select v-model="form.categoryId" |
|
|
|
|
|
|
|
clearable |
|
|
|
|
|
|
|
placeholder="请选择学科类别" |
|
|
|
|
|
|
|
@change="getProfessionalClass()" |
|
|
|
|
|
|
|
@clear="clearsubjectType()"> |
|
|
|
@clear="clearsubjectType()"> |
|
|
|
<el-option v-for="(item,index) in subjectList" |
|
|
|
<el-option v-for="(item, index) in subjectList" :key="index" :label="item.disciplineName" |
|
|
|
:key="index" |
|
|
|
|
|
|
|
:label="item.disciplineName" |
|
|
|
|
|
|
|
:value="item.disciplineId"></el-option> |
|
|
|
:value="item.disciplineId"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="专业" |
|
|
|
<el-form-item label="专业" prop="professionalId"> |
|
|
|
prop="professionalId"> |
|
|
|
<el-select v-model="form.professionalId" clearable placeholder="请选择专业" |
|
|
|
<el-select v-model="form.professionalId" |
|
|
|
|
|
|
|
clearable |
|
|
|
|
|
|
|
placeholder="请选择专业" |
|
|
|
|
|
|
|
:disabled="form.professionalCategoryId ? false : true"> |
|
|
|
:disabled="form.professionalCategoryId ? false : true"> |
|
|
|
<el-option v-for="(item,index) in ProfessionalList" |
|
|
|
<el-option v-for="(item, index) in ProfessionalList" :key="index" :label="item.professionalName" |
|
|
|
:key="index" |
|
|
|
|
|
|
|
:label="item.professionalName" |
|
|
|
|
|
|
|
:value="item.professionalId"></el-option> |
|
|
|
:value="item.professionalId"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="供应厂商" |
|
|
|
<el-form-item label="供应厂商" prop="supplier"> |
|
|
|
prop="supplier"> |
|
|
|
<el-select v-model="form.supplier" clearable placeholder="请选择供应厂商" multiple> |
|
|
|
<el-select v-model="form.supplier" |
|
|
|
<el-option v-for="(item, i) in suppliers" :key="i" :label="item.supplierName" |
|
|
|
clearable |
|
|
|
|
|
|
|
placeholder="请选择供应厂商" |
|
|
|
|
|
|
|
multiple> |
|
|
|
|
|
|
|
<el-option v-for="(item, i) in suppliers" |
|
|
|
|
|
|
|
:key="i" |
|
|
|
|
|
|
|
:label="item.supplierName" |
|
|
|
|
|
|
|
:value="item.supplierId"></el-option> |
|
|
|
:value="item.supplierId"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="6" |
|
|
|
<el-col :span="6" :offset="2"> |
|
|
|
:offset="2"> |
|
|
|
<el-form-item label="课程类别" prop="curriculumType"> |
|
|
|
<el-form-item label="课程类别" |
|
|
|
<el-select v-model="form.curriculumType" clearable placeholder="请选择课程类型"> |
|
|
|
prop="curriculumType"> |
|
|
|
<el-option label="理论课程" :value="0"></el-option> |
|
|
|
<el-select v-model="form.curriculumType" |
|
|
|
<el-option label="实训课程" :value="1"></el-option> |
|
|
|
clearable |
|
|
|
|
|
|
|
placeholder="请选择课程类型"> |
|
|
|
|
|
|
|
<el-option label="理论课程" |
|
|
|
|
|
|
|
:value="0"></el-option> |
|
|
|
|
|
|
|
<el-option label="实训课程" |
|
|
|
|
|
|
|
:value="1"></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="专业类" |
|
|
|
<el-form-item label="专业类" prop="professionalCategoryId"> |
|
|
|
prop="professionalCategoryId"> |
|
|
|
<el-select v-model="form.professionalCategoryId" clearable placeholder="请选择专业类" |
|
|
|
<el-select v-model="form.professionalCategoryId" |
|
|
|
:disabled="form.categoryId ? false : true" @change="getProfessional()" |
|
|
|
clearable |
|
|
|
|
|
|
|
placeholder="请选择专业类" |
|
|
|
|
|
|
|
:disabled="form.categoryId ? false : true" |
|
|
|
|
|
|
|
@change="getProfessional()" |
|
|
|
|
|
|
|
@clear="clearProfessionalClass()"> |
|
|
|
@clear="clearProfessionalClass()"> |
|
|
|
<el-option v-for="(item,index) in ProfessionalClassList" |
|
|
|
<el-option v-for="(item, index) in ProfessionalClassList" :key="index" |
|
|
|
:key="index" |
|
|
|
:label="item.professionalClassName" :value="item.professionalClassId"></el-option> |
|
|
|
:label="item.professionalClassName" |
|
|
|
|
|
|
|
:value="item.professionalClassId"></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="预计课时" |
|
|
|
<el-form-item label="预计课时" prop="expectedCourse"> |
|
|
|
prop="expectedCourse"> |
|
|
|
<el-select v-model="form.expectedCourse" clearable placeholder="请选择预计课时"> |
|
|
|
<el-select v-model="form.expectedCourse" |
|
|
|
<el-option label="32课时" value="32课时"></el-option> |
|
|
|
clearable |
|
|
|
<el-option label="64课时" value="64课时"></el-option> |
|
|
|
placeholder="请选择预计课时"> |
|
|
|
|
|
|
|
<el-option label="32课时" |
|
|
|
|
|
|
|
value="32课时"></el-option> |
|
|
|
|
|
|
|
<el-option label="64课时" |
|
|
|
|
|
|
|
value="64课时"></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="14" |
|
|
|
<el-col :span="14" :offset="5"> |
|
|
|
:offset="5"> |
|
|
|
<el-form-item label="课程简介" prop="briefIntroduction"> |
|
|
|
<el-form-item label="课程简介" |
|
|
|
<el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="请输入课程简介" |
|
|
|
prop="briefIntroduction"> |
|
|
|
|
|
|
|
<el-input type="textarea" |
|
|
|
|
|
|
|
:autosize="{ minRows: 4 }" |
|
|
|
|
|
|
|
placeholder="请输入课程简介" |
|
|
|
|
|
|
|
v-model.trim="form.briefIntroduction"></el-input> |
|
|
|
v-model.trim="form.briefIntroduction"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="教学目标" |
|
|
|
<el-form-item label="教学目标" prop="teachingObjectives"> |
|
|
|
prop="teachingObjectives"> |
|
|
|
<el-input type="textarea" :autosize="{ minRows: 4 }" placeholder="请输入教学目标" |
|
|
|
<el-input type="textarea" |
|
|
|
|
|
|
|
:autosize="{ minRows: 4 }" |
|
|
|
|
|
|
|
placeholder="请输入教学目标" |
|
|
|
|
|
|
|
v-model.trim="form.teachingObjectives"></el-input> |
|
|
|
v-model.trim="form.teachingObjectives"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
@ -145,8 +89,7 @@ |
|
|
|
</el-card> |
|
|
|
</el-card> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 练习项目配置 --> |
|
|
|
<!-- 练习项目配置 --> |
|
|
|
<el-card shadow="hover" |
|
|
|
<el-card shadow="hover" class="mgb20"> |
|
|
|
class="mgb20"> |
|
|
|
|
|
|
|
<div class="mgb20 flex-between"> |
|
|
|
<div class="mgb20 flex-between"> |
|
|
|
<div class="flex-center "> |
|
|
|
<div class="flex-center "> |
|
|
|
<p class="addhr_tag"></p> |
|
|
|
<p class="addhr_tag"></p> |
|
|
@ -154,61 +97,36 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<el-button @click="handleBatchDelete(0)">批量移除</el-button> |
|
|
|
<el-button @click="handleBatchDelete(0)">批量移除</el-button> |
|
|
|
<el-button @click="handleConfig(0)" |
|
|
|
<el-button @click="handleConfig(0)" icon="el-icon-plus" circle></el-button> |
|
|
|
icon="el-icon-plus" |
|
|
|
|
|
|
|
circle></el-button> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="border-b-dashed"></div> |
|
|
|
<div class="border-b-dashed"></div> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<el-table :data="practiceData" |
|
|
|
<el-table :data="practiceData" class="table" stripe header-align="center" max-height="400" |
|
|
|
class="table" |
|
|
|
|
|
|
|
stripe |
|
|
|
|
|
|
|
header-align="center" |
|
|
|
|
|
|
|
max-height="400" |
|
|
|
|
|
|
|
@selection-change="handleSelectionPractice"> |
|
|
|
@selection-change="handleSelectionPractice"> |
|
|
|
<el-table-column type="selection" |
|
|
|
<el-table-column type="selection" width="55" align="center"></el-table-column> |
|
|
|
width="55" |
|
|
|
<el-table-column type="index" width="100" label="序号" align="center"></el-table-column> |
|
|
|
align="center"></el-table-column> |
|
|
|
<el-table-column prop="projectName" label="项目名称" align="center"></el-table-column> |
|
|
|
<el-table-column type="index" |
|
|
|
<el-table-column prop="remark" label="备注名称" align="center"></el-table-column> |
|
|
|
width="100" |
|
|
|
<el-table-column prop="applicationName" label="系统名称" align="center"> |
|
|
|
label="序号" |
|
|
|
|
|
|
|
align="center"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="projectName" |
|
|
|
|
|
|
|
label="项目名称" |
|
|
|
|
|
|
|
align="center"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="remark" |
|
|
|
|
|
|
|
label="备注名称" |
|
|
|
|
|
|
|
align="center"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="applicationName" |
|
|
|
|
|
|
|
label="系统名称" |
|
|
|
|
|
|
|
align="center"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }} |
|
|
|
{{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }} |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="排序" |
|
|
|
<el-table-column label="排序" align="center" width="100"> |
|
|
|
align="center" |
|
|
|
|
|
|
|
width="100"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-input v-model.trim="scope.row.sort" |
|
|
|
<el-input v-model.trim="scope.row.sort" |
|
|
|
@input="practiceSortChange(scope.row, scope.$index)"></el-input> |
|
|
|
@input="practiceSortChange(scope.row, scope.$index)"></el-input> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="展示控制" |
|
|
|
<el-table-column label="展示控制" align="center" width="100"> |
|
|
|
align="center" |
|
|
|
|
|
|
|
width="100"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-switch v-model="scope.row.isShow" |
|
|
|
<el-switch v-model="scope.row.isShow" :active-value="0" :inactive-value="1" |
|
|
|
:active-value="0" |
|
|
|
|
|
|
|
:inactive-value="1" |
|
|
|
|
|
|
|
:disabled="scope.row.disabled"> |
|
|
|
:disabled="scope.row.disabled"> |
|
|
|
</el-switch> |
|
|
|
</el-switch> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="操作" |
|
|
|
<el-table-column label="操作" align="center" width="100"> |
|
|
|
align="center" |
|
|
|
|
|
|
|
width="100"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button :disabled="scope.row.disabled" |
|
|
|
<el-button :disabled="scope.row.disabled" |
|
|
|
@click.native.prevent="handleDelete(scope.$index, practiceData)">移除 |
|
|
|
@click.native.prevent="handleDelete(scope.$index, practiceData)">移除 |
|
|
@ -220,8 +138,7 @@ |
|
|
|
</el-card> |
|
|
|
</el-card> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 考核项目配置 --> |
|
|
|
<!-- 考核项目配置 --> |
|
|
|
<el-card shadow="hover" |
|
|
|
<el-card shadow="hover" class="mgb20"> |
|
|
|
class="mgb20"> |
|
|
|
|
|
|
|
<div class="mgb20 flex-between"> |
|
|
|
<div class="mgb20 flex-between"> |
|
|
|
<div class="flex-center "> |
|
|
|
<div class="flex-center "> |
|
|
|
<p class="addhr_tag"></p> |
|
|
|
<p class="addhr_tag"></p> |
|
|
@ -229,62 +146,37 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<el-button @click="handleBatchDelete(1)">批量移除</el-button> |
|
|
|
<el-button @click="handleBatchDelete(1)">批量移除</el-button> |
|
|
|
<el-button @click="handleConfig(1)" |
|
|
|
<el-button @click="handleConfig(1)" icon="el-icon-plus" circle></el-button> |
|
|
|
icon="el-icon-plus" |
|
|
|
|
|
|
|
circle></el-button> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="border-b-dashed"></div> |
|
|
|
<div class="border-b-dashed"></div> |
|
|
|
<!-- 实训配置 --> |
|
|
|
<!-- 实训配置 --> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<el-table :data="assessmentData" |
|
|
|
<el-table :data="assessmentData" class="table" stripe header-align="center" max-height="400" |
|
|
|
class="table" |
|
|
|
|
|
|
|
stripe |
|
|
|
|
|
|
|
header-align="center" |
|
|
|
|
|
|
|
max-height="400" |
|
|
|
|
|
|
|
@selection-change="handleSelectionAssessment"> |
|
|
|
@selection-change="handleSelectionAssessment"> |
|
|
|
<el-table-column type="selection" |
|
|
|
<el-table-column type="selection" width="55" align="center"></el-table-column> |
|
|
|
width="55" |
|
|
|
<el-table-column type="index" width="100" label="序号" align="center"></el-table-column> |
|
|
|
align="center"></el-table-column> |
|
|
|
<el-table-column prop="projectName" label="项目名称" align="center"></el-table-column> |
|
|
|
<el-table-column type="index" |
|
|
|
<el-table-column prop="remark" label="备注名称" align="center"></el-table-column> |
|
|
|
width="100" |
|
|
|
<el-table-column prop="applicationName" label="系统名称" align="center"> |
|
|
|
label="序号" |
|
|
|
|
|
|
|
align="center"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="projectName" |
|
|
|
|
|
|
|
label="项目名称" |
|
|
|
|
|
|
|
align="center"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="remark" |
|
|
|
|
|
|
|
label="备注名称" |
|
|
|
|
|
|
|
align="center"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="applicationName" |
|
|
|
|
|
|
|
label="系统名称" |
|
|
|
|
|
|
|
align="center"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }} |
|
|
|
{{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }} |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="排序" |
|
|
|
<el-table-column label="排序" align="center" width="100"> |
|
|
|
align="center" |
|
|
|
|
|
|
|
width="100"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-input v-model.trim="scope.row.sort" |
|
|
|
<el-input v-model.trim="scope.row.sort" |
|
|
|
@input="assessmentSortChange(scope.row, scope.$index)"></el-input> |
|
|
|
@input="assessmentSortChange(scope.row, scope.$index)"></el-input> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="展示控制" |
|
|
|
<el-table-column label="展示控制" align="center" width="100"> |
|
|
|
align="center" |
|
|
|
|
|
|
|
width="100"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-switch v-model="scope.row.isShow" |
|
|
|
<el-switch v-model="scope.row.isShow" :active-value="0" :inactive-value="1" |
|
|
|
:active-value="0" |
|
|
|
|
|
|
|
:inactive-value="1" |
|
|
|
|
|
|
|
:disabled="scope.row.disabled"> |
|
|
|
:disabled="scope.row.disabled"> |
|
|
|
</el-switch> |
|
|
|
</el-switch> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="操作" |
|
|
|
<el-table-column label="操作" align="center" width="100"> |
|
|
|
align="center" |
|
|
|
|
|
|
|
width="100"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button :disabled="scope.row.disabled" |
|
|
|
<el-button :disabled="scope.row.disabled" |
|
|
|
@click.native.prevent="handleDelete(scope.$index, assessmentData)">移除</el-button> |
|
|
|
@click.native.prevent="handleDelete(scope.$index, assessmentData)">移除</el-button> |
|
|
@ -295,8 +187,7 @@ |
|
|
|
</el-card> |
|
|
|
</el-card> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 大赛项目配置 --> |
|
|
|
<!-- 大赛项目配置 --> |
|
|
|
<el-card shadow="hover" |
|
|
|
<el-card shadow="hover" class="mgb20"> |
|
|
|
class="mgb20"> |
|
|
|
|
|
|
|
<div class="mgb20 flex-between"> |
|
|
|
<div class="mgb20 flex-between"> |
|
|
|
<div class="flex-center "> |
|
|
|
<div class="flex-center "> |
|
|
|
<p class="addhr_tag"></p> |
|
|
|
<p class="addhr_tag"></p> |
|
|
@ -304,59 +195,36 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<el-button @click="handleBatchDelete(2)">批量移除</el-button> |
|
|
|
<el-button @click="handleBatchDelete(2)">批量移除</el-button> |
|
|
|
<el-button @click="handleConfig(2)" |
|
|
|
<el-button @click="handleConfig(2)" icon="el-icon-plus" circle></el-button> |
|
|
|
icon="el-icon-plus" |
|
|
|
|
|
|
|
circle></el-button> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="border-b-dashed"></div> |
|
|
|
<div class="border-b-dashed"></div> |
|
|
|
<!-- 实训配置 --> |
|
|
|
<!-- 实训配置 --> |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<el-table :data="matches" |
|
|
|
<el-table :data="matches" class="table" stripe header-align="center" max-height="400" |
|
|
|
class="table" |
|
|
|
|
|
|
|
stripe |
|
|
|
|
|
|
|
header-align="center" |
|
|
|
|
|
|
|
max-height="400" |
|
|
|
|
|
|
|
@selection-change="handleSelectionMatch"> |
|
|
|
@selection-change="handleSelectionMatch"> |
|
|
|
<el-table-column type="selection" |
|
|
|
<el-table-column type="selection" width="55" align="center"></el-table-column> |
|
|
|
width="55" |
|
|
|
<el-table-column type="index" width="100" label="序号" align="center"></el-table-column> |
|
|
|
align="center"></el-table-column> |
|
|
|
<el-table-column prop="projectName" label="项目名称" align="center"></el-table-column> |
|
|
|
<el-table-column type="index" |
|
|
|
<el-table-column prop="applicationName" label="系统名称" align="center"> |
|
|
|
width="100" |
|
|
|
|
|
|
|
label="序号" |
|
|
|
|
|
|
|
align="center"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="projectName" |
|
|
|
|
|
|
|
label="项目名称" |
|
|
|
|
|
|
|
align="center"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="applicationName" |
|
|
|
|
|
|
|
label="系统名称" |
|
|
|
|
|
|
|
align="center"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }} |
|
|
|
{{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }} |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="排序" |
|
|
|
<el-table-column label="排序" align="center" width="100"> |
|
|
|
align="center" |
|
|
|
|
|
|
|
width="100"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-input v-model.trim="scope.row.sort" |
|
|
|
<el-input v-model.trim="scope.row.sort" |
|
|
|
@input="assessmentSortChange(scope.row, scope.$index)"></el-input> |
|
|
|
@input="assessmentSortChange(scope.row, scope.$index)"></el-input> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="展示控制" |
|
|
|
<el-table-column label="展示控制" align="center" width="100"> |
|
|
|
align="center" |
|
|
|
|
|
|
|
width="100"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-switch v-model="scope.row.isShow" |
|
|
|
<el-switch v-model="scope.row.isShow" :active-value="0" :inactive-value="1" |
|
|
|
:active-value="0" |
|
|
|
|
|
|
|
:inactive-value="1" |
|
|
|
|
|
|
|
:disabled="scope.row.disabled"> |
|
|
|
:disabled="scope.row.disabled"> |
|
|
|
</el-switch> |
|
|
|
</el-switch> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="操作" |
|
|
|
<el-table-column label="操作" align="center" width="100"> |
|
|
|
align="center" |
|
|
|
|
|
|
|
width="100"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button :disabled="scope.row.disabled" |
|
|
|
<el-button :disabled="scope.row.disabled" |
|
|
|
@click.native.prevent="handleDelete(scope.$index, matches)">移除</el-button> |
|
|
|
@click.native.prevent="handleDelete(scope.$index, matches)">移除</el-button> |
|
|
@ -370,29 +238,20 @@ |
|
|
|
</el-row> |
|
|
|
</el-row> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 配置弹窗 --> |
|
|
|
<!-- 配置弹窗 --> |
|
|
|
<el-dialog :visible.sync="configVisible" |
|
|
|
<el-dialog :visible.sync="configVisible" width="1200px" center custom-class="config-dia"> |
|
|
|
width="1200px" |
|
|
|
|
|
|
|
center |
|
|
|
|
|
|
|
custom-class="config-dia"> |
|
|
|
|
|
|
|
<div class="config-wrap"> |
|
|
|
<div class="config-wrap"> |
|
|
|
<div class="item system"> |
|
|
|
<div class="item system"> |
|
|
|
<div class="title-wrap flex-center"> |
|
|
|
<div class="title-wrap flex-center"> |
|
|
|
<p class="addhr_tag"></p> |
|
|
|
<p class="addhr_tag"></p> |
|
|
|
<span>系统列表</span> |
|
|
|
<span>系统列表</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<el-input placeholder="请输入系统名称" |
|
|
|
<el-input placeholder="请输入系统名称" prefix-icon="el-icon-search" v-model.trim="systemKeyword" |
|
|
|
prefix-icon="el-icon-search" |
|
|
|
|
|
|
|
v-model.trim="systemKeyword" |
|
|
|
|
|
|
|
clearable></el-input> |
|
|
|
clearable></el-input> |
|
|
|
|
|
|
|
|
|
|
|
<ul class="systems"> |
|
|
|
<ul class="systems"> |
|
|
|
<li v-for="(item, i) in systems" |
|
|
|
<li v-for="(item, i) in systems" :key="i" :title="item.systemName"> |
|
|
|
:key="i" |
|
|
|
<el-checkbox v-model="item.check" @change="val => systemChange(val, item)"></el-checkbox> |
|
|
|
:title="item.systemName"> |
|
|
|
<div :class="['name', { active: curSystem == item.systemId }]" @click="getProject(item)"> |
|
|
|
<el-checkbox v-model="item.check" |
|
|
|
|
|
|
|
@change="val => systemChange(val, item)"></el-checkbox> |
|
|
|
|
|
|
|
<div :class="['name', {active: curSystem == item.systemId}]" |
|
|
|
|
|
|
|
@click="getProject(item)"> |
|
|
|
|
|
|
|
<span>{{ item.systemName }}</span> |
|
|
|
<span>{{ item.systemName }}</span> |
|
|
|
<i class="el-icon-arrow-right"></i> |
|
|
|
<i class="el-icon-arrow-right"></i> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -405,19 +264,13 @@ |
|
|
|
<p class="addhr_tag"></p> |
|
|
|
<p class="addhr_tag"></p> |
|
|
|
<span>项目列表</span> |
|
|
|
<span>项目列表</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<el-input placeholder="请输入项目名称" |
|
|
|
<el-input placeholder="请输入项目名称" prefix-icon="el-icon-search" v-model.trim="projectKeyword" |
|
|
|
prefix-icon="el-icon-search" |
|
|
|
|
|
|
|
v-model.trim="projectKeyword" |
|
|
|
|
|
|
|
clearable></el-input> |
|
|
|
clearable></el-input> |
|
|
|
|
|
|
|
|
|
|
|
<ul class="systems"> |
|
|
|
<ul class="systems"> |
|
|
|
<el-checkbox v-if="projects.length" |
|
|
|
<el-checkbox v-if="projects.length" v-model="checkAll" label="全选" |
|
|
|
v-model="checkAll" |
|
|
|
|
|
|
|
label="全选" |
|
|
|
|
|
|
|
@change="val => checkAllChange(val, projects[0].systemId)"></el-checkbox> |
|
|
|
@change="val => checkAllChange(val, projects[0].systemId)"></el-checkbox> |
|
|
|
<li v-for="(item, i) in projects" |
|
|
|
<li v-for="(item, i) in projects" :key="i" :title="item.projectName"> |
|
|
|
:key="i" |
|
|
|
|
|
|
|
:title="item.projectName"> |
|
|
|
|
|
|
|
<el-checkbox v-model="item.check" |
|
|
|
<el-checkbox v-model="item.check" |
|
|
|
:label="item.remark ? item.remark + '(' + item.projectName + ')' : item.projectName" |
|
|
|
:label="item.remark ? item.remark + '(' + item.projectName + ')' : item.projectName" |
|
|
|
@change="val => projectChange(val, item)"></el-checkbox> |
|
|
|
@change="val => projectChange(val, item)"></el-checkbox> |
|
|
@ -430,46 +283,25 @@ |
|
|
|
<p class="addhr_tag"></p> |
|
|
|
<p class="addhr_tag"></p> |
|
|
|
<span>已选择项目({{ checkeds.length }}个)</span> |
|
|
|
<span>已选择项目({{ checkeds.length }}个)</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<el-input style="width: 200px;margin-bottom: 20px;" |
|
|
|
<el-input style="width: 200px;margin-bottom: 20px;" placeholder="请输入项目名称" prefix-icon="el-icon-search" |
|
|
|
placeholder="请输入项目名称" |
|
|
|
v-model.trim="checkedKeyword" clearable></el-input> |
|
|
|
prefix-icon="el-icon-search" |
|
|
|
<el-table :data="checkeds" class="table" stripe header-align="center" max-height="470"> |
|
|
|
v-model.trim="checkedKeyword" |
|
|
|
<el-table-column type="index" width="55" label="序号" align="center"></el-table-column> |
|
|
|
clearable></el-input> |
|
|
|
<el-table-column prop="applicationName" label="系统名称" align="center"> |
|
|
|
<el-table :data="checkeds" |
|
|
|
|
|
|
|
class="table" |
|
|
|
|
|
|
|
stripe |
|
|
|
|
|
|
|
header-align="center" |
|
|
|
|
|
|
|
max-height="470"> |
|
|
|
|
|
|
|
<el-table-column type="index" |
|
|
|
|
|
|
|
width="55" |
|
|
|
|
|
|
|
label="序号" |
|
|
|
|
|
|
|
align="center"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="applicationName" |
|
|
|
|
|
|
|
label="系统名称" |
|
|
|
|
|
|
|
align="center"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }} |
|
|
|
{{ scope.row.applicationName || systemAll.find(e => e.systemId == scope.row.systemId).systemName }} |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="projectName" |
|
|
|
<el-table-column prop="projectName" width="80" label="系统类型" align="center"> |
|
|
|
width="80" |
|
|
|
|
|
|
|
label="系统类型" |
|
|
|
|
|
|
|
align="center"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.type ? '流程类' : '编程类' }} |
|
|
|
{{ scope.row.type ? '流程类' : '编程类' }} |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="remark" |
|
|
|
<el-table-column prop="remark" label="备注名称" align="center"></el-table-column> |
|
|
|
label="备注名称" |
|
|
|
<el-table-column prop="projectName" label="项目名称" align="center"></el-table-column> |
|
|
|
align="center"></el-table-column> |
|
|
|
<el-table-column label="操作" align="center" width="55"> |
|
|
|
<el-table-column prop="projectName" |
|
|
|
|
|
|
|
label="项目名称" |
|
|
|
|
|
|
|
align="center"></el-table-column> |
|
|
|
|
|
|
|
<el-table-column label="操作" |
|
|
|
|
|
|
|
align="center" |
|
|
|
|
|
|
|
width="55"> |
|
|
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<i :class="['el-icon-delete rm', {disabled: scope.row.disabled}]" |
|
|
|
<i :class="['el-icon-delete rm', { disabled: scope.row.disabled }]" |
|
|
|
@click="delProject(scope.$index, scope.row)"></i> |
|
|
|
@click="delProject(scope.$index, scope.row)"></i> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
@ -477,11 +309,9 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<span slot="footer" |
|
|
|
<span slot="footer" class="dialog-footer"> |
|
|
|
class="dialog-footer"> |
|
|
|
|
|
|
|
<el-button @click="configVisible = false">取 消</el-button> |
|
|
|
<el-button @click="configVisible = false">取 消</el-button> |
|
|
|
<el-button type="primary" |
|
|
|
<el-button type="primary" @click="handleConfirm">确 定</el-button> |
|
|
|
@click="handleConfirm">确 定</el-button> |
|
|
|
|
|
|
|
</span> |
|
|
|
</span> |
|
|
|
</el-dialog> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -1093,6 +923,7 @@ export default { |
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
|
<style lang="scss" scoped> |
|
|
|
$avatar-width: 104px; |
|
|
|
$avatar-width: 104px; |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .avatar-uploader { |
|
|
|
/deep/ .avatar-uploader { |
|
|
|
.el-upload { |
|
|
|
.el-upload { |
|
|
|
position: relative; |
|
|
|
position: relative; |
|
|
@ -1151,28 +982,34 @@ $avatar-width: 104px; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.settlement { |
|
|
|
.settlement { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
align-items: center; |
|
|
|
margin-bottom: 10px; |
|
|
|
margin-bottom: 10px; |
|
|
|
|
|
|
|
|
|
|
|
.label { |
|
|
|
.label { |
|
|
|
margin-right: 10px; |
|
|
|
margin-right: 10px; |
|
|
|
white-space: nowrap; |
|
|
|
white-space: nowrap; |
|
|
|
color: #606266; |
|
|
|
color: #606266; |
|
|
|
font-size: 14px; |
|
|
|
font-size: 14px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.el-input { |
|
|
|
.el-input { |
|
|
|
width: 150px; |
|
|
|
width: 150px; |
|
|
|
margin-right: 30px; |
|
|
|
margin-right: 30px; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/.config-dia { |
|
|
|
/deep/.config-dia { |
|
|
|
.config-wrap { |
|
|
|
.config-wrap { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.title-wrap { |
|
|
|
.title-wrap { |
|
|
|
margin-bottom: 15px; |
|
|
|
margin-bottom: 15px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.item { |
|
|
|
.item { |
|
|
|
width: 250px; |
|
|
|
width: 250px; |
|
|
|
max-height: 600px; |
|
|
|
max-height: 600px; |
|
|
@ -1180,18 +1017,22 @@ $avatar-width: 104px; |
|
|
|
margin-right: 20px; |
|
|
|
margin-right: 20px; |
|
|
|
overflow: hidden; |
|
|
|
overflow: hidden; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.system { |
|
|
|
.system { |
|
|
|
background-color: #f9f9f9; |
|
|
|
background-color: #f9f9f9; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.systems { |
|
|
|
.systems { |
|
|
|
margin-top: 10px; |
|
|
|
margin-top: 10px; |
|
|
|
max-height: 520px; |
|
|
|
max-height: 520px; |
|
|
|
overflow: auto; |
|
|
|
overflow: auto; |
|
|
|
|
|
|
|
|
|
|
|
li { |
|
|
|
li { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
align-items: center; |
|
|
|
margin: 10px 0; |
|
|
|
margin: 10px 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.name { |
|
|
|
.name { |
|
|
|
display: inline-flex; |
|
|
|
display: inline-flex; |
|
|
|
flex: 1; |
|
|
|
flex: 1; |
|
|
@ -1199,10 +1040,12 @@ $avatar-width: 104px; |
|
|
|
align-items: center; |
|
|
|
align-items: center; |
|
|
|
margin-left: 5px; |
|
|
|
margin-left: 5px; |
|
|
|
cursor: pointer; |
|
|
|
cursor: pointer; |
|
|
|
|
|
|
|
|
|
|
|
&.active, |
|
|
|
&.active, |
|
|
|
&:hover { |
|
|
|
&:hover { |
|
|
|
color: #9076ff; |
|
|
|
color: #9076ff; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
span { |
|
|
|
span { |
|
|
|
max-width: 200px; |
|
|
|
max-width: 200px; |
|
|
|
text-overflow: ellipsis; |
|
|
|
text-overflow: ellipsis; |
|
|
@ -1211,20 +1054,25 @@ $avatar-width: 104px; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.checked { |
|
|
|
.checked { |
|
|
|
flex: 1; |
|
|
|
flex: 1; |
|
|
|
width: auto; |
|
|
|
width: auto; |
|
|
|
|
|
|
|
|
|
|
|
.el-table .cell { |
|
|
|
.el-table .cell { |
|
|
|
font-size: 12px; |
|
|
|
font-size: 12px; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.rm { |
|
|
|
.rm { |
|
|
|
font-size: 14px; |
|
|
|
font-size: 14px; |
|
|
|
cursor: pointer; |
|
|
|
cursor: pointer; |
|
|
|
|
|
|
|
|
|
|
|
&.disabled { |
|
|
|
&.disabled { |
|
|
|
color: #ccc; |
|
|
|
color: #ccc; |
|
|
|
cursor: not-allowed; |
|
|
|
cursor: not-allowed; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
&:hover { |
|
|
|
&:hover { |
|
|
|
color: #17161f; |
|
|
|
color: #17161f; |
|
|
|
} |
|
|
|
} |
|
|
|