|
|
@@ -4,38 +4,40 @@
|
|
|
<!--机构数据-->
|
|
|
<el-col :span="4" :xs="24">
|
|
|
<org-tree v-model="queryParams.belongOrgId" @defaultKey="getDefaultKey" @checkChange="checkChange"
|
|
|
- @click="clickTreeNode"></org-tree>
|
|
|
+ @click="clickTreeNode"></org-tree>
|
|
|
</el-col>
|
|
|
<!--搜索栏-->
|
|
|
<el-col :span="20" :xs="24">
|
|
|
- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
|
|
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
|
|
|
+ label-width="68px">
|
|
|
|
|
|
<el-form-item label="机构类型" prop="execOrgType">
|
|
|
<el-select v-model="queryParams.execOrgType" placeholder="请选择执行机构类型" clearable>
|
|
|
<el-option v-for="dict in dict.type.sys_org_type" :key="dict.value" :label="dict.label"
|
|
|
- :value="dict.value" />
|
|
|
+ :value="dict.value"/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="计划周期" prop="planCycle">
|
|
|
<el-select v-model="queryParams.planCycle" placeholder="请选择计划周期" clearable>
|
|
|
<el-option v-for="dict in dict.type.edu_plan_cycle" :key="dict.value" :label="dict.label"
|
|
|
- :value="dict.value" />
|
|
|
+ :value="dict.value"/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="计划状态" prop="planStatus">
|
|
|
<el-select v-model="queryParams.planStatus" placeholder="请选择计划状态" clearable>
|
|
|
<el-option v-for="dict in dict.type.plan_status" :key="dict.value" :label="dict.label"
|
|
|
- :value="dict.value" />
|
|
|
+ :value="dict.value"/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="培训角色" prop="planRoleId">
|
|
|
<el-select v-model="form.planRoleId" placeholder="请选择" clearable>
|
|
|
<el-option v-for="item in planRoleList" :key="item.roleId" :label="item.roleName"
|
|
|
- :value="item.roleId"></el-option>
|
|
|
+ :value="item.roleId"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="计划名称" prop="planName">
|
|
|
- <el-input v-model="queryParams.planName" placeholder="请输入计划名称" clearable @keyup.enter.native="handleQuery" />
|
|
|
+ <el-input v-model="queryParams.planName" placeholder="请输入计划名称" clearable
|
|
|
+ @keyup.enter.native="handleQuery"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item>
|
|
|
@@ -47,17 +49,17 @@
|
|
|
<el-row :gutter="10" class="mb8">
|
|
|
<el-col :span="1.5">
|
|
|
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
|
|
- v-hasPermi="['core:plan:add']">新增
|
|
|
+ v-hasPermi="['core:plan:add']">新增
|
|
|
</el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
|
|
- v-hasPermi="['core:plan:edit']">修改
|
|
|
+ v-hasPermi="['core:plan:edit']">修改
|
|
|
</el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
|
|
- v-hasPermi="['core:plan:remove']">删除
|
|
|
+ v-hasPermi="['core:plan:remove']">删除
|
|
|
</el-button>
|
|
|
</el-col>
|
|
|
<!-- <el-col :span="1.5">
|
|
|
@@ -75,26 +77,27 @@
|
|
|
</el-row>
|
|
|
|
|
|
<el-table :data="planList" @selection-change="handleSelectionChange" row-key="id"
|
|
|
- :tree-props="{ children: 'children' }">
|
|
|
- <el-table-column label="序号" align="center" prop="no" />
|
|
|
- <el-table-column label="计划名称" align="center" prop="planName" />
|
|
|
- <el-table-column label="计划创建机构" align="center" prop="createOrgName" />
|
|
|
- <el-table-column label="计划所属机构" align="center" prop="belongOrgName" />
|
|
|
+ :tree-props="{ children: 'children' }">
|
|
|
+ <el-table-column label="序号" align="center" prop="no"/>
|
|
|
+ <el-table-column label="计划名称" align="center" prop="planName"/>
|
|
|
+ <el-table-column label="计划创建机构" align="center" prop="createOrgName"/>
|
|
|
+ <el-table-column label="计划所属机构" align="center" prop="belongOrgName"/>
|
|
|
<el-table-column label="培训机构类型" align="center" prop="execOrgType">
|
|
|
<template slot-scope="scope">
|
|
|
- <dict-tag :options="dict.type.sys_org_type" :value="scope.row.execOrgType" />
|
|
|
+ <dict-tag :options="dict.type.sys_org_type" :value="scope.row.execOrgType"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="计划周期" align="center" prop="planCycle">
|
|
|
<template slot-scope="scope">
|
|
|
- <dict-tag :options="dict.type.edu_plan_cycle" :value="scope.row.planCycle" />
|
|
|
+ <dict-tag :options="dict.type.edu_plan_cycle" :value="scope.row.planCycle"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="planRoleNameList" label="培训角色">
|
|
|
<template slot-scope="scope">
|
|
|
<template v-if="scope.row.planRoleNameList">
|
|
|
- <el-tag size="mini" type="success" v-for="(item, index) in (scope.row.planRoleNameList || '').split(',')"
|
|
|
- :key="index">
|
|
|
+ <el-tag size="mini" type="success"
|
|
|
+ v-for="(item, index) in (scope.row.planRoleNameList || '').split(',')"
|
|
|
+ :key="index">
|
|
|
{{ item }}
|
|
|
</el-tag>
|
|
|
</template>
|
|
|
@@ -103,31 +106,32 @@
|
|
|
</template>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="培训次数" align="center" prop="execTimes" />
|
|
|
- <el-table-column label="备注" align="center" prop="remark" />
|
|
|
- <el-table-column label="修改人" align="center" prop="updateBy" />
|
|
|
+ <el-table-column label="培训次数" align="center" prop="execTimes"/>
|
|
|
+ <el-table-column label="备注" align="center" prop="remark"/>
|
|
|
+ <el-table-column label="修改人" align="center" prop="updateBy"/>
|
|
|
<el-table-column label="计划状态" align="center" prop="planStatus">
|
|
|
<template slot-scope="scope">
|
|
|
- <dict-tag :options="dict.type.plan_status" :value="scope.row.planStatus" />
|
|
|
+ <dict-tag :options="dict.type.plan_status" :value="scope.row.planStatus"/>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button v-if="checkCanPublish(scope.row)" size="mini" type="text" icon="el-icon-edit"
|
|
|
- @click="handlePublish(scope.row)" v-hasPermi="['core:plan:publish']">下发
|
|
|
+ @click="handlePublish(scope.row)" v-hasPermi="['core:plan:publish']">下发
|
|
|
</el-button>
|
|
|
<el-button v-if="checkCanEdit(scope.row)" size="mini" type="text" icon="el-icon-edit"
|
|
|
- @click="handleUpdate(scope.row)" v-hasPermi="['core:plan:edit']">修改
|
|
|
+ @click="handleUpdate(scope.row)" v-hasPermi="['core:plan:edit']">修改
|
|
|
</el-button>
|
|
|
<el-button v-if="checkCanDel(scope.row)" size="mini" type="text" icon="el-icon-delete"
|
|
|
- @click="handleDelete(scope.row)" v-hasPermi="['core:plan:remove']">删除
|
|
|
+ @click="handleDelete(scope.row)" v-hasPermi="['core:plan:remove']">删除
|
|
|
</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
|
|
|
- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
|
|
- @pagination="getList" />
|
|
|
+ <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
|
|
|
+ :limit.sync="queryParams.pageSize"
|
|
|
+ @pagination="getList"/>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<!-- 添加或修改教育培训计划对话框 -->
|
|
|
@@ -136,14 +140,14 @@
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="计划名称" prop="planName">
|
|
|
- <el-input v-model="form.planName" placeholder="请输入计划名称" />
|
|
|
+ <el-input v-model="form.planName" placeholder="请输入计划名称"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="计划周期" prop="planCycle">
|
|
|
<el-select v-model="form.planCycle" placeholder="请选择计划周期">
|
|
|
<el-option v-for="dict in dict.type.edu_plan_cycle" :key="dict.value" :label="dict.label"
|
|
|
- :value="parseInt(dict.value)"></el-option>
|
|
|
+ :value="parseInt(dict.value)"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -151,15 +155,16 @@
|
|
|
<el-row>
|
|
|
<el-col :span="12" v-show="form.planCycle == 0">
|
|
|
<el-form-item prop="startDate" label="开始日期">
|
|
|
- <el-date-picker v-model="form.startDate" @change="startDateChanged" :picker-options="startDatepickerOptions"
|
|
|
- align="right" type="date" placeholder="选择开始日期">
|
|
|
+ <el-date-picker v-model="form.startDate" @change="startDateChanged"
|
|
|
+ :picker-options="startDatepickerOptions"
|
|
|
+ align="right" type="date" placeholder="选择开始日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12" v-show="form.planCycle == 0">
|
|
|
<el-form-item prop="endDate" label="结束日期">
|
|
|
<el-date-picker v-model="form.endDate" :picker-options="endDatepickerOptions" align="right" type="date"
|
|
|
- placeholder="选择结束日期">
|
|
|
+ placeholder="选择结束日期">
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -177,7 +182,7 @@
|
|
|
<el-form-item label="计划状态" prop="planStatus">
|
|
|
<el-select v-model="form.planStatus" placeholder="请选择计划状态">
|
|
|
<el-option v-for="dict in dict.type.plan_status" :key="dict.value" :label="dict.label"
|
|
|
- :value="parseInt(dict.value)"></el-option>
|
|
|
+ :value="parseInt(dict.value)"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -194,7 +199,7 @@
|
|
|
<el-form-item label="培训机构类型" prop="execOrgType">
|
|
|
<el-select v-model="form.execOrgType" placeholder="请选择执行机构类型" @change="execOrgTypeChanged()">
|
|
|
<el-option v-for="dict in dict.type.sys_org_type" :key="dict.value" :label="dict.label"
|
|
|
- :value="parseInt(dict.value)"></el-option>
|
|
|
+ :value="parseInt(dict.value)"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -207,29 +212,30 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="12">
|
|
|
+ <el-col :span="12">
|
|
|
<el-form-item label="培训机构" prop="planExecOrgIdList">
|
|
|
<tree-select v-model="form.planExecOrgIdList" :options="deptOptions" :show-count="true"
|
|
|
- :normalizer="tenantIdnormalizer" :props="{ checkStrictly: true, label: 'name' }" placeholder="请选择培训机构" />
|
|
|
+ :normalizer="tenantIdnormalizer" :props="{ checkStrictly: true, label: 'name' }"
|
|
|
+ placeholder="请选择培训机构"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="备注" prop="remark">
|
|
|
- <el-input v-model="form.remark" placeholder="请输入备注" />
|
|
|
+ <el-input v-model="form.remark" placeholder="请输入备注"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="上传文件" prop="fileList">
|
|
|
- <K-file-upload ref="upload" v-model="form.fileList" @input="getKUploadFileList" />
|
|
|
+ <K-file-upload ref="upload" v-model="form.fileList" @input="getKUploadFileList"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="">
|
|
|
- <el-button type="primary" @click="showSelectFile" >从学习资料中选择</el-button>
|
|
|
+ <el-button type="primary" @click="showSelectFile">从学习资料中选择</el-button>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
@@ -241,36 +247,36 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
<DialogSelectFile
|
|
|
- ref="DialogSelectFile"
|
|
|
- :defaultSelect=defaultSelect
|
|
|
- @select="fileSelected"
|
|
|
- :orgId="orgId"
|
|
|
- ></DialogSelectFile>
|
|
|
+ ref="DialogSelectFile"
|
|
|
+ :defaultSelect=defaultSelect
|
|
|
+ @select="fileSelected"
|
|
|
+ :orgId="orgId"
|
|
|
+ ></DialogSelectFile>
|
|
|
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import {
|
|
|
- listPlan,
|
|
|
- getPlan,
|
|
|
- delPlan,
|
|
|
addPlan,
|
|
|
- updatePlan,
|
|
|
+ delPlan,
|
|
|
+ getPlan,
|
|
|
+ listPlan,
|
|
|
listPlanRole,
|
|
|
+ publishPlan,
|
|
|
roleList,
|
|
|
- publishPlan
|
|
|
+ updatePlan
|
|
|
} from "@/api/core/edu/plan";
|
|
|
import tableList from "@/mixins/tableList";
|
|
|
import OrgTree from "@/components/orgTree";
|
|
|
-import { deptTreeSelect } from "@/api/system/public";
|
|
|
+import {deptTreeSelect} from "@/api/system/public";
|
|
|
import KFileUpload from "@/components/K-FileUpload/index.vue";
|
|
|
import DialogSelectFile from "./dialog.select.file.vue";
|
|
|
|
|
|
export default {
|
|
|
name: "Plan",
|
|
|
dicts: ['plan_cycle', 'sys_org_type', 'plan_status', 'edu_plan_cycle'],
|
|
|
- components: { OrgTree, KFileUpload,DialogSelectFile },
|
|
|
+ components: {OrgTree, KFileUpload, DialogSelectFile},
|
|
|
mixins: [tableList],
|
|
|
data() {
|
|
|
return {
|
|
|
@@ -293,8 +299,8 @@ export default {
|
|
|
// 是否显示弹出层
|
|
|
open: false,
|
|
|
isUnfold: false,
|
|
|
- defaultSelect:[],
|
|
|
- orgId:null,
|
|
|
+ defaultSelect: [],
|
|
|
+ orgId: null,
|
|
|
// 查询参数
|
|
|
queryParams: {
|
|
|
execOrgType: null,
|
|
|
@@ -312,22 +318,22 @@ export default {
|
|
|
// 表单校验
|
|
|
rules: {
|
|
|
planName: [
|
|
|
- { required: true, message: "计划名称不能为空", trigger: "blur" }
|
|
|
+ {required: true, message: "计划名称不能为空", trigger: "blur"}
|
|
|
],
|
|
|
planCycle: [
|
|
|
- { required: true, message: "计划周期不能为空", trigger: "blur" }
|
|
|
+ {required: true, message: "计划周期不能为空", trigger: "blur"}
|
|
|
],
|
|
|
execTimes: [
|
|
|
- { required: true, message: "培训次数不能为空", trigger: "blur" }
|
|
|
+ {required: true, message: "培训次数不能为空", trigger: "blur"}
|
|
|
],
|
|
|
planStatus: [
|
|
|
- { required: true, message: "计划状态不能为空", trigger: "blur" }
|
|
|
+ {required: true, message: "计划状态不能为空", trigger: "blur"}
|
|
|
],
|
|
|
execOrgType: [
|
|
|
- { required: true, message: "培训机构类型不能为空", trigger: "blur" }
|
|
|
+ {required: true, message: "培训机构类型不能为空", trigger: "blur"}
|
|
|
],
|
|
|
planRoleId: [
|
|
|
- { required: true, message: "培训角色不能为空", trigger: "blur" }
|
|
|
+ {required: true, message: "培训角色不能为空", trigger: "blur"}
|
|
|
],
|
|
|
},
|
|
|
planRoleList: [],
|
|
|
@@ -349,7 +355,7 @@ export default {
|
|
|
created() {
|
|
|
this.getList();
|
|
|
this.initPlanRoleList();
|
|
|
- this.orgId=this.$store.getters.orgId;
|
|
|
+ this.orgId = this.$store.getters.orgId;
|
|
|
},
|
|
|
methods: {
|
|
|
/** 查询教育培训计划列表 */
|
|
|
@@ -410,7 +416,7 @@ export default {
|
|
|
},
|
|
|
execOrgTypeChanged(row) {
|
|
|
this.initRoleList(this.form.execOrgType);
|
|
|
- // this.form.planExecOrgIdList = [];
|
|
|
+ // this.form.planExecOrgIdList = [];
|
|
|
},
|
|
|
/** 查询机构树数据 */
|
|
|
getDeptTree() {
|
|
|
@@ -511,6 +517,7 @@ export default {
|
|
|
submitForm() {
|
|
|
this.$refs["form"].validate(valid => {
|
|
|
if (valid) {
|
|
|
+ this.form.planExecOrgIdList = [this.form.planExecOrgIdList];
|
|
|
if (this.form.id != null) {
|
|
|
updatePlan(this.form).then(response => {
|
|
|
this.$modal.msgSuccess("修改成功");
|
|
|
@@ -556,16 +563,15 @@ export default {
|
|
|
...this.queryParams
|
|
|
}, `plan_${new Date().getTime()}.xlsx`)
|
|
|
},
|
|
|
- showSelectFile(){
|
|
|
+ showSelectFile() {
|
|
|
// this.$refs.DialogSelectFile.show();
|
|
|
this.$refs["DialogSelectFile"].show();
|
|
|
},
|
|
|
- fileSelected(list)
|
|
|
- {
|
|
|
- console.log("fileSelected",list);
|
|
|
- if(!list) return;
|
|
|
- list.forEach(x=>{
|
|
|
- this.form.fileList= this.form.fileList.concat(x.fileList);
|
|
|
+ fileSelected(list) {
|
|
|
+ console.log("fileSelected", list);
|
|
|
+ if (!list) return;
|
|
|
+ list.forEach(x => {
|
|
|
+ this.form.fileList = this.form.fileList.concat(x.fileList);
|
|
|
})
|
|
|
|
|
|
},
|