Przeglądaj źródła

教育培训任务管理页面

zhulu 2 lat temu
rodzic
commit
16743b75a3

+ 291 - 0
src/views/core/edu/task/dialog.info.vue

@@ -0,0 +1,291 @@
+<template>
+    <div class="edu-training-edit">
+        <el-dialog title="教育培训详情" :visible.sync="isShow" width="960px">
+            <div class="page-body">
+                <el-form :model="formData" size="small" ref="form" label-position="right" label-width="120px"
+                    label-suffix=":">
+                    <el-row>
+
+                         <!-- 培训主题 -->
+                         <el-col :span="12">
+                            <el-form-item prop="type" label="培训主题">{{
+                                formData.title
+                            }}</el-form-item>
+                        </el-col>
+
+                        <!-- 机构 -->
+                        <el-col :span="12">
+                            <el-form-item label="培训机构">{{
+                                formData.orgName
+                            }}</el-form-item>
+                        </el-col>
+                        <!-- 执行角色 -->
+                        <!-- <el-col :span="12">
+                            <el-form-item prop="eduJobId" label="执行角色">{{
+                                formData.eduJobNames
+                            }}</el-form-item>
+                        </el-col> -->
+                        <!-- 类型 -->   
+                        <el-col :span="12">
+                            <el-form-item label="类型"> 
+                                <template>
+                                    <dict-tag :options="dict.type.edu_type" :value="formData.type"/>
+                                </template>
+                            </el-form-item>
+                        </el-col>
+                        <!-- 主持人 -->
+                        <el-col :span="12">
+                            <el-form-item prop="hostId" label="主持人">{{
+                                formData.hostName
+                            }}</el-form-item>
+                        </el-col>
+                        <!-- 记录人 -->
+                        <el-col :span="24">
+                            <el-form-item prop="recorderId" label="记录人">{{
+                                formData.recorder == null
+                                ? ""
+                                : formData.recorder.name
+                            }}</el-form-item>
+                        </el-col>
+
+                           <!-- 培训截止时间 -->
+                           <el-col :span="12">
+                            <el-form-item prop="trainingStartDateTime" label="培训开始时间">{{
+                                formData.trainingStartDateTime
+                            }}</el-form-item>
+                        </el-col>
+                          <!-- 培训截止时间 -->
+                          <el-col :span="12">
+                            <el-form-item prop="trainingEndDateTime" label="培训截止时间">{{
+                                formData.trainingEndDateTime
+                            }}</el-form-item>
+                        </el-col>
+                        <!-- 开始日期 -->
+                        <!-- <el-col :span="12">
+                            <el-form-item prop="dateTime" label="开始日期">{{
+                                formData.startDate 
+                            }}</el-form-item>
+                        </el-col> -->
+                        <!-- 截止日期 -->
+                        <!-- <el-col :span="12">
+                            <el-form-item prop="dateTime" label="截止日期">{{
+                                formData.endDate 
+                            }}</el-form-item>
+                        </el-col> -->
+                        <!-- 内容 -->
+                        <el-col :span="24">
+                            <el-form-item prop="content" label="培训内容">{{
+                                formData.content
+                            }}</el-form-item>
+                        </el-col>
+                        <!-- 总结 -->
+                        <el-col :span="24">
+                            <el-form-item prop="note" label="总结">{{
+                                formData.note
+                            }}</el-form-item>
+                        </el-col>
+                     
+                       
+                        <!-- 参与人数 -->
+                        <el-col :span="12">
+                            <el-form-item prop="dueCount" label="参与人员">{{
+                                formData.taskUserList ? formData.taskUserList.filter((x) => x.type===1)
+                                    .map((v) => v.name)
+                                    .join(","):""
+                            }}</el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item prop="dueCount" label="缺陷人员">{{
+                                 formData.taskUserList ? formData.taskUserList.filter((x) => x.type===2)
+                                    .map((v) => v.name)
+                                    .join(","):""
+                            }}</el-form-item>
+                        </el-col>
+                          <!-- 图片 -->
+                        <el-col :span="12">
+                            <el-form-item prop="imageList" label="培训图片">
+                                <k-multi-upload :disabled="!!id" v-model="formData.imageList" limit="4" byModule
+                                    moduleName="edu-training" v-if="isShow" />
+                            </el-form-item>
+                        </el-col>
+                         <!-- 图片 -->
+                        <el-col :span="12">
+                            <el-form-item prop="imageList" label="签名图片">
+                                <k-multi-upload :disabled="!!id" v-model="formData.imageList" limit="4" byModule
+                                    moduleName="edu-training" v-if="isShow" />
+                            </el-form-item>
+                        </el-col>
+
+                         <!-- 文件 -->
+                        <el-col :span="12">
+                            <el-form-item prop="fileList" label="文件" :disabled="true">
+                                <div v-for="(v, i) in formData.fileList" :key="i">
+                                    <a class="downloadLink" @click="onDownload(v.url, v.name)">
+                                        {{ v.name }}
+                                    </a>
+                                </div>
+                                
+                            </el-form-item>
+                        </el-col>
+                        <!-- 实到人数 -->
+                        <!-- <el-col :span="12">
+                            <el-form-item prop="actualCount" label="实到人数">{{
+                                formData.actualCount
+                            }}</el-form-item>
+                        </el-col> -->
+                        <!-- 参与人员 -->
+                        <!-- <el-col :span="12">
+                            <el-form-item prop="absenceList" label="参与人员">{{
+                                formData.absenceList
+                                    .map((v) => v.name)
+                                    .join(",")
+                            }}</el-form-item>
+                        </el-col> -->
+                        <!-- 缺席人员 -->
+                        <!-- <el-col :span="12">
+                            <el-form-item prop="absenceList" label="缺席人员">{{
+                                formData.absentList
+                                    .map((v) => v.name)
+                                    .join(",")
+                            }}</el-form-item> 
+                        </el-col>-->
+                        <!-- 总结 -->
+                        <!-- <el-col :span="12">
+                            <el-form-item prop="note" label="总结">{{
+                                formData.note
+                            }}</el-form-item>
+                        </el-col> -->
+                        <!-- 图片 -->
+                        <!-- <el-col :span="12">
+                            <el-form-item prop="imageList" label="图片">
+                                <k-multi-upload :disabled="!!id" v-model="formData.imageList" limit="4" byModule
+                                    moduleName="edu-training" v-if="isShow" />
+                            </el-form-item>
+                        </el-col> -->
+                        <!-- 文件 -->
+                        <!-- <el-col :span="12">
+                            <el-form-item prop="fileList" label="文件" :disabled="true">
+                                <div v-for="(v, i) in formData.fileList" :key="i">
+                                    <a class="downloadLink" @click="onDownload(v.url, v.name)">
+                                        {{ v.name }}
+                                    </a>
+                                </div>
+                                
+                            </el-form-item>
+                        </el-col> -->
+                    </el-row>
+                </el-form>
+            </div>
+
+            <div slot="footer" class="dialog-footer">
+                <el-button @click="onHide">关闭</el-button>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import { mapState, mapMutations } from "vuex";
+import { getEduTask } from "@/api/core/edu/eduTask";
+
+export default {
+    components: {},
+    dicts: ['edu_type', 'edu_task_status'],
+    data() {
+        const params = this.$route.params;
+        return {
+            id: params ? params.id : null,
+            isShow: false,
+            formData: this.reset(),
+        };
+    },
+    props: {},
+    watch: {},
+    computed: {
+        ...mapState(["loginUser"]),
+    },
+    methods: {
+        ...mapMutations([]),
+        reset(other = {}) {
+            return {
+                id: null,
+                type: null,
+                host: {},
+                recorder: {},
+                dateTime: null,
+                dueCount: null,
+                actualCount: null,
+                content: null,
+                imageList: null,
+                org: {},
+                ...other,
+            };
+        },
+        async refresh(id, other) {
+            if (!id) {
+                this.reset(other);
+            }
+            else {
+                getEduTask(id).then(response => {
+                    this.formData = response.data;
+                    this.loading = false;
+                })
+            }
+        },
+        async show(id, other = {}) {
+            this.id = id;
+            await this.refresh(id, other);
+            this.isShow = true;
+        },
+        // 事件
+        onHide() {
+            this.isShow = false;
+        },
+        onDownload(url, filename) {
+            let this_ = this;
+            this.getBlob(url, function (blob) {
+                this_.saveAs(blob, filename);
+            });
+        },
+        getBlob(url, cb) {
+            var xhr = new XMLHttpRequest();
+            xhr.open("GET", url, true);
+            xhr.responseType = "blob";
+            xhr.onload = function () {
+                if (xhr.status === 200) {
+                    cb(xhr.response);
+                }
+            };
+            xhr.send();
+        },
+        saveAs(blob, filename) {
+            if (window.navigator.msSaveOrOpenBlob) {
+                navigator.msSaveBlob(blob, filename);
+            } else {
+                var link = document.createElement("a");
+                var body = document.querySelector("body");
+
+                link.href = window.URL.createObjectURL(blob);
+                link.download = filename;
+
+                // fix Firefox
+                link.style.display = "none";
+                body.appendChild(link);
+
+                link.click();
+                body.removeChild(link);
+
+                window.URL.revokeObjectURL(link.href);
+            }
+        },
+        // 事件
+        //apimark//
+    },
+    mounted() { },
+};
+</script>
+
+<!-- <style lang="less">
+.edu-training-edit {
+}
+</style> -->

+ 289 - 0
src/views/core/edu/task/dialog.perform.vue

@@ -0,0 +1,289 @@
+<template>
+  <div class="edu-training-edit">
+    <el-dialog :title="'执行教育培训'" :visible.sync="isShow" width="960px">
+      <div class="page-body">
+        <el-form
+          :model="formData"
+          :rules="formDataRules"
+          size="small"
+          ref="form"
+          label-position="right"
+          label-width="120px"
+          label-prefix=":"
+        >
+          <el-row>
+             <!-- 培训主题 -->
+             <el-col :span="24">
+                <el-form-item prop="title" label="培训主题">
+                    <el-input
+                        v-model="formData.title"
+                        :maxlength="32"
+                        placeholder="请输入培训主题"
+                        clearable
+                        readonly
+                        disabled
+                    />
+                </el-form-item>
+            </el-col>
+             <!-- 类型 -->
+             <el-col :span="24">
+                <el-form-item prop="type" label="类型">
+                    <k-select-constant
+                        name="EduTrainingType"
+                        v-model="formData.type"
+                        placeholder="请选择类型"
+                    ></k-select-constant>
+                </el-form-item>
+            </el-col>
+             <!-- 内容 -->
+             <el-col :span="24">
+                            <el-form-item prop="content" label="内容">
+                                <k-textarea
+                                    v-model="formData.content"
+                                    placeholder="请输入内容"
+                                    :length="2000"
+                                />
+                            </el-form-item>
+                        </el-col>
+           
+            <!-- 主持人 -->
+            <el-col :span="24">
+              <el-form-item v-if="formData.id" prop="hostId" label="主持人">
+                <k-select
+                  v-model="formData.hostId"
+                  url="/user/find/all"
+                  :params="{ orgId: formData.orgId }"
+                  placeholder="请选择主持人"
+                ></k-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item v-if="formData.id" prop="recorderId" label="记录人">
+                <k-select
+                  v-model="formData.recorderId"
+                  url="/user/find/all"
+                  :params="{ orgId: formData.orgId }"
+                  placeholder="请选择记录人"
+                ></k-select>
+              </el-form-item>
+            </el-col>
+            <!-- 截止日期 -->
+            <el-col :span="24">
+              <el-form-item v-if="formData.id" prop="dateTime" label="培训时间">
+                <el-date-picker
+                  v-model="formData.dateTime"
+                  type="datetime"
+                  placeholder="选择日期"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <!-- 总结 -->
+            <el-col :span="24">
+              <el-form-item v-if="formData.id" prop="note" label="总结">
+                <k-textarea
+                  v-model="formData.note"
+                  placeholder="请输入总结"
+                  :length="1000"
+                />
+              </el-form-item>
+            </el-col>
+            <!-- 应到人数 -->
+            <el-col :span="24">
+              <el-form-item v-if="formData.id" prop="dueCount" label="应到人数">
+                <el-input-number
+                  v-model="formData.dueCount"
+                  :min="0"
+                  placeholder="请输入应到人数"
+                ></el-input-number>
+              </el-form-item>
+            </el-col>
+            <!-- 实到人数 -->
+            <el-col :span="24">
+              <el-form-item
+                v-if="formData.id"
+                prop="actualCount"
+                label="实到人数"
+              >
+                <el-input-number
+                  v-model="formData.actualCount"
+                  :min="0"
+                  placeholder="请输入实到人数"
+                ></el-input-number>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item v-if="formData.id" label="参与人员">
+                <k-select
+                  :multiple="true"
+                  v-model="formData.absenceList"
+                  url="/user/find/all"
+                  :params="{ orgId: formData.orgId }"
+                  placeholder="请选择参与人员"
+                ></k-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item v-if="formData.id" label="缺席人员">
+                <k-select
+                  :multiple="true"
+                  v-model="formData.absentList"
+                  url="/user/find/all"
+                  :params="{ orgId: formData.orgId }"
+                  placeholder="请选择缺席人员"
+                ></k-select>
+              </el-form-item>
+            </el-col>
+            <!-- 上传文件 -->
+            <el-col :span="24">
+                <el-form-item prop="fileList" label="上传文件">
+                    <k-upload-file-multiple
+                        :disabled="!!id"
+                        v-model="formData.fileList"
+                        max="4"
+                        @uploadTriggerEvent="uploadTriggerEvent"
+                        byModule
+                        moduleName="edu-traning-perform"
+                    ></k-upload-file-multiple>
+                </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item prop="imageList" label="上传图片">
+                <k-multi-upload
+                  v-model="formData.imageList"
+                  limit="4"
+                  byModule
+                  moduleName="edu-training"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="onHide">取消</el-button>
+        <el-button type="primary" @click="onSubmit">确定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { mapState, mapMutations } from "vuex";
+
+export default {
+  components: {},
+  data() {
+    const params = this.$route.params;
+    return {
+      id: params ? params.id : null,
+      isShow: false,
+      formData: this.reset(),
+      formDataRules: {        
+        type: [{ required: true, message: "请选择类型" }],
+        content: [{ required: true, message: "请输入内容" }],
+        hostId: [{ required: true, message: "请输入主持人" }],
+        recorderId: [{ required: true, message: "请输入记录人" }],
+        dateTime: [{ required: true, message: "请输入培训时间" }],
+        note: [{ required: true, message: "请输入总结" }],
+        dueCount: [{ required: true, message: "请输入应到人数" }],
+        actualCount: [{ required: true, message: "请输入实到人数" }],
+      },
+    };
+  },
+  props: {},
+  watch: {},
+  computed: {
+    ...mapState(["loginUser", "org"]),
+  },
+  methods: {
+    ...mapMutations([]),
+    reset(other = {}) {
+      return {
+        hostId: null,
+        recorderId: null,
+        dateTime: null,
+        dueCount: null,
+        actualCount: null,
+        content: null,
+        title: null,
+        eduJobId: null,
+        imageList: [],
+        absenceList: [],
+        absentList: [],
+        orgList: [],
+        fileList: [],
+        ...other,
+      };
+    },
+    async refresh(id, other) {
+      this.formData = id
+        ? await this.$api.eduTraining.one(id)
+        : this.reset(other);
+      if (this.formData.imageList == null) {
+        this.formData.imageList = [];
+      }
+      if (this.formData.fileList == null) {
+        this.formData.fileList = [];
+      }
+      let alist = [];
+      if (this.formData.absenceList != null) {
+        this.formData.absenceList.forEach((element) => {
+          alist.push(element.id);
+        });
+      }
+      this.formData.absenceList = alist;
+      this.formData.absentList = this.formData.absentList
+        ? this.formData.absentList.map((a) => a.id)
+        : [];
+    },
+    async show(id, other = {}) {
+      this.id = id;
+      await this.refresh(id, other);
+      this.isShow = true;
+    },
+
+    // 事件
+    onHide() {
+      this.isShow = false;
+    },
+    async onSubmit() {
+      await this.$refs.form.validate();
+      console.log("onSubmit this.formData",this.formData)
+      let due = this.formData.dueCount;
+      let actual = this.formData.actualCount;
+      if (actual > due) {
+        this.$message.error("实到人数不能大于应到人数!");
+      } else if (!this.validatePerson()) {
+        this.$message.error("参与人员与缺席人员重复,请重新选择!");
+      } else {
+        await this.$api.eduTraining.executed(this.formData).then((v) => {
+          this.$emit("success", this.formData);
+          this.onHide();
+        });
+        this.$emit("success");
+        this.onHide();
+      }
+    },
+    validatePerson() {
+      for (let i = 0; i < this.formData.absenceList.length; i++) {
+        let absence = this.formData.absenceList[i];
+        if (this.formData.absentList.indexOf(absence) >= 0) {
+          return false;
+        }
+      }
+      return true;
+    },
+    uploadTriggerEvent(value) {},
+    // 事件
+    //apimark//
+  },
+  mounted() {},
+};
+</script>
+
+<!-- <style lang="less">
+.edu-training-edit {
+}
+</style> -->

+ 138 - 108
src/views/core/edu/task/index.vue

@@ -1,31 +1,56 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="教育培训计划Id" prop="planId">
+    <el-row :gutter="20">
+    <el-col :span="4" :xs="24">
+      <org-tree v-model="queryParams.orgId" @defaultKey="getDefaultKey" @checkChange="checkChange"
+                @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="100px">
+      
+      <el-form-item label="培训主题" prop="title">
         <el-input
-          v-model="queryParams.planId"
-          placeholder="请输入教育培训计划Id"
+          v-model="queryParams.title"
+          placeholder="请输入培训岗位"
           clearable
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="培训岗位" prop="roleId">
-        <el-input
-          v-model="queryParams.roleId"
-          placeholder="请输入培训岗位"
+      <el-form-item label="培训类型" prop="type">
+        <el-select v-model="queryParams.type" placeholder="请选择执行机构类型" clearable>
+            <el-option
+              v-for="dict in dict.type.edu_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+      </el-form-item>
+      <el-form-item label="培训状态" prop="status">
+        <!-- <el-input
+          v-model="queryParams.status"
+          placeholder=""
           clearable
           @keyup.enter.native="handleQuery"
-        />
+        /> -->
+        <el-select v-model="queryParams.status" placeholder="请选择培训状态" clearable>
+            <el-option
+              v-for="dict in dict.type.edu_task_status"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
       </el-form-item>
-      <el-form-item label="开始日期" prop="startDate">
-        <el-date-picker clearable
-          v-model="queryParams.startDate"
-          type="date"
+      <el-form-item label="任务时间" prop="rangen">
+        <el-date-picker
+          v-model="queryParams.range"
+          type="daterange"
           value-format="yyyy-MM-dd"
           placeholder="请选择开始日期">
         </el-date-picker>
       </el-form-item>
-      <el-form-item label="截止日期" prop="endDate">
+      <!-- <el-form-item label="截止日期" prop="endDate">
         <el-date-picker clearable
           v-model="queryParams.endDate"
           type="date"
@@ -112,14 +137,13 @@
           clearable
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
-
-    <el-row :gutter="10" class="mb8">
+    <!-- <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
         <el-button
           type="primary"
@@ -163,65 +187,79 @@
         >导出</el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+    </el-row> -->
 
-    <el-table v-loading="loading" :data="eduTaskList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="id" align="center" prop="id" />
-      <el-table-column label="教育培训计划Id" align="center" prop="planId" />
-      <el-table-column label="培训岗位" align="center" prop="roleId" />
-      <el-table-column label="开始日期" align="center" prop="startDate" width="180">
+    <el-table height="550px" v-loading="loading" :data="eduTaskList" @selection-change="handleSelectionChange">
+      <!-- <el-table-column type="selection" width="55" align="center" /> -->
+      <!-- <el-table-column label="id" align="center" prop="id" /> -->
+      <!-- <el-table-column label="教育培训计划Id" align="center" prop="planId" /> -->
+      
+      <el-table-column label="培训机构" align="center" prop="orgName" />
+      <el-table-column label="培训角色" align="center" >
+        <template slot-scope="scope">
+            <template v-if="scope.row.taskRoleNameList  ">
+              <el-tag size="mini" type="success" v-for="(item, index) in (scope.row.taskRoleNameList || '').split(',')"
+                      :key="index">
+                {{ item }}
+              </el-tag>
+            </template>          
+          </template>
+      </el-table-column>
+      <el-table-column label="培训主题" align="center" prop="title" />
+      <el-table-column label="类型" align="center"  >
         <template slot-scope="scope">
+            <dict-tag :options="dict.type.edu_type" :value="scope.row.type"/>
+          </template>
+      </el-table-column>
+
+      <el-table-column label="主持人" align="center" prop="hostName" />
+      <el-table-column label="开始日期" align="center" prop="startDate" width="180">
+        <!-- <template slot-scope="scope">
           <span>{{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }}</span>
-        </template>
+        </template> -->
       </el-table-column>
       <el-table-column label="截止日期" align="center" prop="endDate" width="180">
-        <template slot-scope="scope">
+        <!-- <template slot-scope="scope">
           <span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
-        </template>
+        </template> -->
       </el-table-column>
-      <el-table-column label="实到人数" align="center" prop="actualCount" />
-      <el-table-column label="内容" align="center" prop="content" />
-      <el-table-column label="培训岗位名称" align="center" prop="roleName" />
-      <el-table-column label="岗位id集合" align="center" prop="roleIds" />
-      <el-table-column label="岗位名集合" align="center" prop="roleNames" />
-      <el-table-column label="学习主题" align="center" prop="title" />
-      <el-table-column label="总结" align="center" prop="note" />
-      <el-table-column label="时间" align="center" prop="dateTime" width="180">
+      <el-table-column label="培训时间" align="center" width="180">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.dateTime, '{y}-{m}-{d}') }}</span>
+          <span>{{ parseTime(scope.row.trainingStartDateTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
       <el-table-column label="应到人数" align="center" prop="dueCount" />
-      <el-table-column label="主持人" align="center" prop="hostId" />
-      <el-table-column label="附件" align="center" prop="fileList" />
-      <el-table-column label="图片" align="center" prop="imageList" width="100">
+      <el-table-column label="状态" align="center" prop="status" >
         <template slot-scope="scope">
-          <image-preview :src="scope.row.imageList" :width="50" :height="50"/>
-        </template>
+            <dict-tag :options="dict.type.edu_task_status" :value="scope.row.status"/>
+          </template>
       </el-table-column>
-      <el-table-column label="机构" align="center" prop="orgId" />
-      <el-table-column label="记录人" align="center" prop="recorderId" />
-      <el-table-column label="类型" align="center" prop="type" />
-      <el-table-column label="机构名称" align="center" prop="orgName" />
-      <el-table-column label="机构" align="center" prop="orgPath" />
-      <el-table-column label="pdf下载地址" align="center" prop="pdfUrl" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column label="操作" width="120px" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
             size="mini"
             type="text"
             icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:eduTask:edit']"
-          >修改</el-button>
+            @click="handleDetail(scope.row.id)"
+            v-hasPermi="['system:eduTask:detail']"
+          >详情</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
+            @click="handleRecorded(scope.row.id)"
             v-hasPermi="['system:eduTask:remove']"
-          >删除</el-button>
+          >培训登记</el-button>
+          <!-- <el-button type="text" @click="onEdit(scope.row)">查看</el-button>            
+          <el-button
+              type="text"
+              v-if="
+              r.row.auditFlag == 'PASS' &&
+                (isExecute || loginOrgId == r.row.orgId) && canPerform(r.row.eduJobIds)&&isOverOrUnStart(r.row)
+            "
+              @click="onPerform(r.row.id, r.row.eduJobIds, r.row.endDate)"
+          >执行
+          </el-button> -->
         </template>
       </el-table-column>
     </el-table>
@@ -233,7 +271,8 @@
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
-
+  </el-col>
+  </el-row>
     <!-- 添加或修改教育任务对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
@@ -321,14 +360,27 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+
+    <dialog-info ref="infoDialog" @success="refresh(true)"></dialog-info>
+    <dialog-perform
+        ref="performDialog"
+        @success="refresh(true)"
+    ></dialog-perform>
   </div>
 </template>
 
 <script>
 import { listEduTask, getEduTask, delEduTask, addEduTask, updateEduTask } from "@/api/core/edu/eduTask";
-
+import OrgTree from "@/components/orgTree";
+import DialogInfo from "./dialog.info";
+import DialogPerform from "./dialog.perform";
 export default {
   name: "EduTask",
+  dicts: ['edu_task_status', 'edu_type'],
+  components: {
+    DialogInfo,
+    DialogInfo,OrgTree
+  },
   data() {
     return {
       // 遮罩层
@@ -353,28 +405,12 @@ export default {
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        planId: null,
-        roleId: null,
-        startDate: null,
-        endDate: null,
-        actualCount: null,
-        content: null,
-        roleName: null,
-        roleIds: null,
-        roleNames: null,
+        checkSub:false,
         title: null,
-        note: null,
-        dateTime: null,
-        dueCount: null,
-        hostId: null,
-        fileList: null,
-        imageList: null,
         orgId: null,
-        recorderId: null,
         type: null,
-        orgName: null,
-        orgPath: null,
-        pdfUrl: null,
+        status: null,
+        range: null,
       },
       // 表单参数
       form: {},
@@ -389,6 +425,7 @@ export default {
   created() {
     this.getList();
   },
+  
   methods: {
     /** 查询教育任务列表 */
     getList() {
@@ -407,33 +444,10 @@ export default {
     // 表单重置
     reset() {
       this.form = {
-        id: null,
-        planId: null,
-        roleId: null,
-        startDate: null,
-        endDate: null,
-        actualCount: null,
-        content: null,
-        roleName: null,
-        roleIds: null,
-        roleNames: null,
-        title: null,
-        note: null,
-        dateTime: null,
-        dueCount: null,
-        hostId: null,
-        fileList: null,
-        imageList: null,
-        orgId: null,
-        recorderId: null,
+        range:[],
+        title: null,       
         type: null,
-        orgName: null,
-        orgPath: null,
-        pdfUrl: null,
-        createBy: null,
-        createTime: null,
-        updateBy: null,
-        updateTime: null
+        status : null,
       };
       this.resetForm("form");
     },
@@ -447,6 +461,20 @@ export default {
       this.resetForm("queryForm");
       this.handleQuery();
     },
+    //单选框状态改变
+    checkChange(state) {
+      this.queryParams.checkSub = state;
+      this.handleQuery();
+    },
+    getDefaultKey(key) {
+      this.queryParams.orgId = key;
+      this.getList();
+    },
+    // 节点单击事件
+    clickTreeNode(data) {
+      this.queryParams.orgId = data.id;
+      this.handleQuery();
+    },
     // 多选框选中数据
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id)
@@ -460,14 +488,16 @@ export default {
       this.title = "添加教育任务";
     },
     /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const id = row.id || this.ids
-      getEduTask(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改教育任务";
-      });
+    handleDetail(id) {
+      console.log("this.$refs",this.$refs["infoDialog"])
+      this.$refs["infoDialog"].show(id,{});
+      // this.reset();
+      // const id = row.id || this.ids
+      // getEduTask(id).then(response => {
+      //   this.form = response.data;
+      //   this.open = true;
+      //   this.title = "修改教育任务";
+      // });
     },
     /** 提交按钮 */
     submitForm() {