|  | @@ -1,167 +1,86 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |    <div class="edu-training-edit">
 | 
	
		
			
				|  |  | -    <DialogCom title="培训任务详情" :visible.sync="isShow" width="960px">
 | 
	
		
			
				|  |  | +    <DialogCom title="培训任务详情" :visible.sync="isShow" width="1200px" >
 | 
	
		
			
				|  |  |        <div class="page-body">
 | 
	
		
			
				|  |  | -        <el-form :model="formData" size="small" ref="form" label-position="right" label-width="120px"
 | 
	
		
			
				|  |  | -                 label-suffix=":">
 | 
	
		
			
				|  |  | -          <el-row>
 | 
	
		
			
				|  |  | +        <el-descriptions class="margin-top" :column="2" size="medium" border :label-style="labelStyle" :contentStyle="content_style">
 | 
	
		
			
				|  |  | +          <el-descriptions-item labelClassName="gx_info_label" label="任务名称" >
 | 
	
		
			
				|  |  | +            {{
 | 
	
		
			
				|  |  | +            formData.title
 | 
	
		
			
				|  |  | +            }}
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item labelClassName="gx_info_label" label="培训类型" >
 | 
	
		
			
				|  |  | +            {{
 | 
	
		
			
				|  |  | +            formData.typeText
 | 
	
		
			
				|  |  | +            }}
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item labelClassName="gx_info_label" label="任务进度" >
 | 
	
		
			
				|  |  | +            {{
 | 
	
		
			
				|  |  | +            formData.statusText
 | 
	
		
			
				|  |  | +            }}
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item labelClassName="gx_info_label" label="任务时间" >
 | 
	
		
			
				|  |  | +            {{formData.startDate}}-{{formData.endDate}}
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item labelClassName="gx_info_label" label="受训机构" >
 | 
	
		
			
				|  |  | +            {{formData.orgName}}
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item labelClassName="gx_info_label" label="主持人" >
 | 
	
		
			
				|  |  | +            {{
 | 
	
		
			
				|  |  | +            formData.hostName
 | 
	
		
			
				|  |  | +            }}
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item labelClassName="gx_info_label" label="登记人" >
 | 
	
		
			
				|  |  | +            {{
 | 
	
		
			
				|  |  | +            formData.recorderName
 | 
	
		
			
				|  |  | +            }}
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item labelClassName="gx_info_label" label="培训开始时间" >
 | 
	
		
			
				|  |  | +            {{
 | 
	
		
			
				|  |  | +            formData.trainingStartDateTime
 | 
	
		
			
				|  |  | +            }}
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item labelClassName="gx_info_label" label="培训结束时间" >
 | 
	
		
			
				|  |  | +            {{
 | 
	
		
			
				|  |  | +            formData.trainingEndDateTime
 | 
	
		
			
				|  |  | +            }}
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item labelClassName="gx_info_label" label="" >
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item span="2" labelClassName="gx_info_label" label="培训内容" >
 | 
	
		
			
				|  |  | +            {{
 | 
	
		
			
				|  |  | +            formData.content
 | 
	
		
			
				|  |  | +            }}
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item span="2" labelClassName="gx_info_label" label="培训总结" >
 | 
	
		
			
				|  |  | +            {{
 | 
	
		
			
				|  |  | +            formData.note
 | 
	
		
			
				|  |  | +            }}
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item labelClassName="gx_info_label" label="参会人员" >
 | 
	
		
			
				|  |  | +            {{
 | 
	
		
			
				|  |  | +            formData.taskUserList ? formData.taskUserList.filter((x) => x.type === 1)
 | 
	
		
			
				|  |  | +            .map((v) => v.userName).join(",") : ""
 | 
	
		
			
				|  |  | +            }}
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item labelClassName="gx_info_label" label="缺席人员" >
 | 
	
		
			
				|  |  | +            {{
 | 
	
		
			
				|  |  | +            formData.taskUserList ? formData.taskUserList.filter((x) => x.type === 2)
 | 
	
		
			
				|  |  | +            .map((v) => v.userName).join(",") : ""
 | 
	
		
			
				|  |  | +            }}
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item span="2" labelClassName="gx_info_label" label="培训图片" >
 | 
	
		
			
				|  |  | +            <ImageListPreview v-model="formData.imageList"></ImageListPreview>
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item span="2" labelClassName="gx_info_label" label="参会人员签名" >
 | 
	
		
			
				|  |  | +            <ImageListPreview v-model="formData.signImageList"></ImageListPreview>
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  | +          <el-descriptions-item labelClassName="gx_info_label" label="资料文件" >
 | 
	
		
			
				|  |  | +            <K-file-upload ref="upload" :isShowUploadBtn="false"
 | 
	
		
			
				|  |  | +                           :defaultValue="formFileListDefualtValue"
 | 
	
		
			
				|  |  | +                           v-model="formData.fileList"/>
 | 
	
		
			
				|  |  | +          </el-descriptions-item>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            <!-- 培训主题 -->
 | 
	
		
			
				|  |  | -            <el-col :span="24">
 | 
	
		
			
				|  |  | -              <el-form-item prop="type" label="任务名称">{{
 | 
	
		
			
				|  |  | -                  formData.title
 | 
	
		
			
				|  |  | -                }}
 | 
	
		
			
				|  |  | -              </el-form-item>
 | 
	
		
			
				|  |  | -            </el-col>
 | 
	
		
			
				|  |  | -            <el-col :span="12">
 | 
	
		
			
				|  |  | -              <el-form-item prop="typeText" label="培训类型">{{
 | 
	
		
			
				|  |  | -                  formData.typeText
 | 
	
		
			
				|  |  | -                }}
 | 
	
		
			
				|  |  | -              </el-form-item>
 | 
	
		
			
				|  |  | -            </el-col>
 | 
	
		
			
				|  |  | -            <el-col :span="12">
 | 
	
		
			
				|  |  | -              <el-form-item prop="statusText" label="任务进度">{{
 | 
	
		
			
				|  |  | -                  formData.statusText
 | 
	
		
			
				|  |  | -                }}
 | 
	
		
			
				|  |  | -              </el-form-item>
 | 
	
		
			
				|  |  | -            </el-col>
 | 
	
		
			
				|  |  | -            <el-col :span="12">
 | 
	
		
			
				|  |  | -              <el-form-item prop="startDate" label="任务时间">{{
 | 
	
		
			
				|  |  | -                  formData.startDate
 | 
	
		
			
				|  |  | -                }}-{{ formData.endDate }}
 | 
	
		
			
				|  |  | -              </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="12">
 | 
	
		
			
				|  |  | -              <el-form-item prop="recorderId" label="登记人">{{
 | 
	
		
			
				|  |  | -                  formData.recorderName
 | 
	
		
			
				|  |  | -                }}
 | 
	
		
			
				|  |  | -              </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.userName).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.userName).join(",") : ""
 | 
	
		
			
				|  |  | -                }}
 | 
	
		
			
				|  |  | -              </el-form-item>
 | 
	
		
			
				|  |  | -            </el-col>
 | 
	
		
			
				|  |  | -            <!-- 图片 -->
 | 
	
		
			
				|  |  | -            <el-col :span="24">
 | 
	
		
			
				|  |  | -              <el-form-item prop="imageList" label="培训图片">
 | 
	
		
			
				|  |  | -                <ImageListPreview v-model="formData.imageList"></ImageListPreview>
 | 
	
		
			
				|  |  | -                <!-- <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="24">
 | 
	
		
			
				|  |  | -              <el-form-item prop="imageList" label="参会人员签名">
 | 
	
		
			
				|  |  | -                <ImageListPreview v-model="formData.signImageList"></ImageListPreview>
 | 
	
		
			
				|  |  | -                <!-- <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="24">
 | 
	
		
			
				|  |  | -              <el-form-item label="资料文件" prop="fileList">
 | 
	
		
			
				|  |  | -                <K-file-upload ref="upload" :isShowUploadBtn="false"
 | 
	
		
			
				|  |  | -                               :defaultValue="formFileListDefualtValue"
 | 
	
		
			
				|  |  | -                               v-model="formData.fileList"/>
 | 
	
		
			
				|  |  | -              </el-form-item>
 | 
	
		
			
				|  |  | -            </el-col>
 | 
	
		
			
				|  |  | -            <!--                        <el-col :span="24">
 | 
	
		
			
				|  |  | -                                        <el-form-item prop="fileList" label="文件" :disabled="true">
 | 
	
		
			
				|  |  | -                                            <div v-for="(v, i) in formData.fileList" :key="i">
 | 
	
		
			
				|  |  | -                                                <a class="downloadLink" @click="onDownload(JSON.parse(v).url, JSON.parse(v).name)">
 | 
	
		
			
				|  |  | -                                                    {{ JSON.parse(v).name }}
 | 
	
		
			
				|  |  | -                                                </a>
 | 
	
		
			
				|  |  | -                                            </div>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                                        </el-form-item>
 | 
	
		
			
				|  |  | -                                    </el-col>-->
 | 
	
		
			
				|  |  | -          </el-row>
 | 
	
		
			
				|  |  | -        </el-form>
 | 
	
		
			
				|  |  | +        </el-descriptions>
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        <div slot="footer" class="dialog-footer">
 | 
	
	
		
			
				|  | @@ -172,119 +91,125 @@
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <script>
 | 
	
		
			
				|  |  | -import {mapState, mapMutations} from "vuex";
 | 
	
		
			
				|  |  | -import {getEduTask} from "@/api/core/edu/eduTask";
 | 
	
		
			
				|  |  | -import KFileUpload from "@/components/K-FileUpload/index.vue";
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -export default {
 | 
	
		
			
				|  |  | -  components: {KFileUpload},
 | 
	
		
			
				|  |  | -  dicts: ['edu_type', 'edu_task_status'],
 | 
	
		
			
				|  |  | -  data() {
 | 
	
		
			
				|  |  | -    const params = this.$route.params;
 | 
	
		
			
				|  |  | -    return {
 | 
	
		
			
				|  |  | -      id: params ? params.id : null,
 | 
	
		
			
				|  |  | -      isShow: false,
 | 
	
		
			
				|  |  | -      formData: this.reset(),
 | 
	
		
			
				|  |  | -      formFileListDefualtValue: [],
 | 
	
		
			
				|  |  | -    };
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  props: {},
 | 
	
		
			
				|  |  | -  watch: {},
 | 
	
		
			
				|  |  | -  computed: {
 | 
	
		
			
				|  |  | -    ...mapState(["loginUser"]),
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  methods: {
 | 
	
		
			
				|  |  | -    ...mapMutations([]),
 | 
	
		
			
				|  |  | -    reset(other = {}) {
 | 
	
		
			
				|  |  | +  import { mapState, mapMutations } from "vuex";
 | 
	
		
			
				|  |  | +  import { getEduTask } from "@/api/core/edu/eduTask";
 | 
	
		
			
				|  |  | +  import KFileUpload from "@/components/K-FileUpload/index.vue";
 | 
	
		
			
				|  |  | +  export default {
 | 
	
		
			
				|  |  | +    components: {KFileUpload},
 | 
	
		
			
				|  |  | +    dicts: ['edu_type', 'edu_task_status'],
 | 
	
		
			
				|  |  | +    data() {
 | 
	
		
			
				|  |  | +      const params = this.$route.params;
 | 
	
		
			
				|  |  |        return {
 | 
	
		
			
				|  |  | -        id: null,
 | 
	
		
			
				|  |  | -        type: null,
 | 
	
		
			
				|  |  | -        host: {},
 | 
	
		
			
				|  |  | -        recorder: {},
 | 
	
		
			
				|  |  | -        dateTime: null,
 | 
	
		
			
				|  |  | -        dueCount: null,
 | 
	
		
			
				|  |  | -        actualCount: null,
 | 
	
		
			
				|  |  | -        content: null,
 | 
	
		
			
				|  |  | -        imageList: null,
 | 
	
		
			
				|  |  | -        signImageList: null,
 | 
	
		
			
				|  |  | -        typeText: null,
 | 
	
		
			
				|  |  | -        org: {},
 | 
	
		
			
				|  |  | -        ...other,
 | 
	
		
			
				|  |  | +        id: params ? params.id : null,
 | 
	
		
			
				|  |  | +        isShow: false,
 | 
	
		
			
				|  |  | +        formData: this.reset(),
 | 
	
		
			
				|  |  | +        formFileListDefualtValue: [],
 | 
	
		
			
				|  |  | +        labelStyle: {
 | 
	
		
			
				|  |  | +          'color': '#000',
 | 
	
		
			
				|  |  | +          'text-align': 'center',
 | 
	
		
			
				|  |  | +          'height': '40px',
 | 
	
		
			
				|  |  | +          'min-width': '200px',
 | 
	
		
			
				|  |  | +          'word-break': 'keep-all'
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        content_style: {
 | 
	
		
			
				|  |  | +          'text-align': 'left',
 | 
	
		
			
				|  |  | +          'min-width': '300px',
 | 
	
		
			
				|  |  | +          'word-break': 'break-all'
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  |        };
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    async refresh(id, other) {
 | 
	
		
			
				|  |  | -      if (!id) {
 | 
	
		
			
				|  |  | -        this.reset(other);
 | 
	
		
			
				|  |  | -      } else {
 | 
	
		
			
				|  |  | -        getEduTask(id).then(response => {
 | 
	
		
			
				|  |  | -          this.formData = response.data;
 | 
	
		
			
				|  |  | -          this.formFileListDefualtValue = response.data.fileList;
 | 
	
		
			
				|  |  | -          this.formData.signImageList = this.getSingImageList();
 | 
	
		
			
				|  |  | -          this.loading = false;
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    async show(id, other = {}) {
 | 
	
		
			
				|  |  | -      this.id = id;
 | 
	
		
			
				|  |  | -      await this.refresh(id, other);
 | 
	
		
			
				|  |  | -      this.isShow = true;
 | 
	
		
			
				|  |  | +    props: {},
 | 
	
		
			
				|  |  | +    watch: {},
 | 
	
		
			
				|  |  | +    computed: {
 | 
	
		
			
				|  |  | +      ...mapState(["loginUser"]),
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    // 事件
 | 
	
		
			
				|  |  | -    onHide() {
 | 
	
		
			
				|  |  | -      this.isShow = false;
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    onDownload(url, filename) {
 | 
	
		
			
				|  |  | -      let this_ = this;
 | 
	
		
			
				|  |  | -      this.getBlob(url, function (blob) {
 | 
	
		
			
				|  |  | -        this_.saveAs(blob, filename);
 | 
	
		
			
				|  |  | -      });
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    getSingImageList() {
 | 
	
		
			
				|  |  | -      let res = this.formData.taskUserList ? this.formData.taskUserList.filter((x) => x.type === 1 && x.sign == 1)
 | 
	
		
			
				|  |  | -        .map((v) => v.signImage).join(",") : null;
 | 
	
		
			
				|  |  | -      return res;
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    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);
 | 
	
		
			
				|  |  | +    methods: {
 | 
	
		
			
				|  |  | +      ...mapMutations([]),
 | 
	
		
			
				|  |  | +      reset(other = {}) {
 | 
	
		
			
				|  |  | +        return {
 | 
	
		
			
				|  |  | +          id: null,
 | 
	
		
			
				|  |  | +          type: null,
 | 
	
		
			
				|  |  | +          host: {},
 | 
	
		
			
				|  |  | +          recorder: {},
 | 
	
		
			
				|  |  | +          dateTime: null,
 | 
	
		
			
				|  |  | +          dueCount: null,
 | 
	
		
			
				|  |  | +          actualCount: null,
 | 
	
		
			
				|  |  | +          content: null,
 | 
	
		
			
				|  |  | +          imageList: null,
 | 
	
		
			
				|  |  | +          signImageList: null,
 | 
	
		
			
				|  |  | +          typeText: null,
 | 
	
		
			
				|  |  | +          org: {},
 | 
	
		
			
				|  |  | +          ...other,
 | 
	
		
			
				|  |  | +        };
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      async refresh(id, other) {
 | 
	
		
			
				|  |  | +        if (!id) {
 | 
	
		
			
				|  |  | +          this.reset(other);
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          getEduTask(id).then(response => {
 | 
	
		
			
				|  |  | +            this.formData = response.data;
 | 
	
		
			
				|  |  | +            this.formFileListDefualtValue = response.data.fileList;
 | 
	
		
			
				|  |  | +            this.formData.signImageList = this.getSingImageList();
 | 
	
		
			
				|  |  | +            this.loading = false;
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      };
 | 
	
		
			
				|  |  | -      xhr.send();
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    saveAs(blob, filename) {
 | 
	
		
			
				|  |  | -      console.log("saveAs", blob, filename)
 | 
	
		
			
				|  |  | -      if (window.navigator.msSaveOrOpenBlob) {
 | 
	
		
			
				|  |  | -        navigator.msSaveBlob(blob, filename);
 | 
	
		
			
				|  |  | -      } else {
 | 
	
		
			
				|  |  | -        let link = document.createElement("a");
 | 
	
		
			
				|  |  | -        let body = document.querySelector("body");
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      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);
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      getSingImageList() {
 | 
	
		
			
				|  |  | +        let res = this.formData.taskUserList ? this.formData.taskUserList.filter((x) => x.type === 1 && x.sign == 1)
 | 
	
		
			
				|  |  | +          .map((v) => v.signImage).join(",") : null;
 | 
	
		
			
				|  |  | +        return res;
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      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) {
 | 
	
		
			
				|  |  | +        console.log("saveAs", blob, filename)
 | 
	
		
			
				|  |  | +        if (window.navigator.msSaveOrOpenBlob) {
 | 
	
		
			
				|  |  | +          navigator.msSaveBlob(blob, filename);
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          let link = document.createElement("a");
 | 
	
		
			
				|  |  | +          let body = document.querySelector("body");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        link.href = URL.createObjectURL(blob);
 | 
	
		
			
				|  |  | -        link.download = filename;
 | 
	
		
			
				|  |  | +          link.href = URL.createObjectURL(blob);
 | 
	
		
			
				|  |  | +          link.download = filename;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        // fix Firefox
 | 
	
		
			
				|  |  | -        link.style.display = "none";
 | 
	
		
			
				|  |  | -        body.appendChild(link);
 | 
	
		
			
				|  |  | +          // fix Firefox
 | 
	
		
			
				|  |  | +          link.style.display = "none";
 | 
	
		
			
				|  |  | +          body.appendChild(link);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        link.click();
 | 
	
		
			
				|  |  | -        body.removeChild(link);
 | 
	
		
			
				|  |  | +          link.click();
 | 
	
		
			
				|  |  | +          body.removeChild(link);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        window.URL.revokeObjectURL(link.href);
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +          window.URL.revokeObjectURL(link.href);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      // 事件
 | 
	
		
			
				|  |  | +      //apimark//
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    // 事件
 | 
	
		
			
				|  |  | -    //apimark//
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  mounted() {
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | +    mounted() {
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  };
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -<!-- <style lang="less">
 | 
	
		
			
				|  |  | -.edu-training-edit {
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -</style> -->
 |