11 changed files with 1037 additions and 58 deletions
			
			
		| @ -0,0 +1,372 @@ | |||
| <template> | |||
|   <div> | |||
| 
 | |||
|     <div class="dialog-h-content scroll-h"> | |||
|       <el-form ref="ref_form" | |||
|                :inline="true" | |||
|                :model="formData" | |||
|                :rules="dataRule" | |||
|                class="form"> | |||
| 
 | |||
|         <el-form-item label="内容" | |||
|                       prop="content" | |||
|                       label-width="150px" | |||
|                       style="display: block"> | |||
|           <el-input class="item_width_1" | |||
|                     type="textarea" | |||
|                     maxlength="100" | |||
|                     show-word-limit | |||
|                     :rows="3" | |||
|                     :disabled="disabled" | |||
|                     placeholder="请输入内容" | |||
|                     v-model="formData.content"></el-input> | |||
|         </el-form-item> | |||
| 
 | |||
|         <el-form-item label="工作事项" | |||
|                       prop="workType" | |||
|                       label-width="150px" | |||
|                       style="display: block"> | |||
|           <el-input class="item_width_1" | |||
|                     type="textarea" | |||
|                     maxlength="100" | |||
|                     show-word-limit | |||
|                     :rows="3" | |||
|                     :disabled="disabled" | |||
|                     placeholder="请输入工作事项" | |||
|                     v-model="formData.workType"></el-input> | |||
|         </el-form-item> | |||
|         <el-form-item label="提醒时间" | |||
|                       style="display: block" | |||
|                       prop="remindTime" | |||
|                       label-width="150px"> | |||
|           <el-date-picker class="item_width_1" | |||
|                           v-model="formData.remindTime" | |||
|                           format="yyyy-MM-dd HH:mm" | |||
|                           value-format="yyyy-MM-dd HH:mm" | |||
|                           type="datetime" | |||
|                           :disabled="disabled" | |||
|                           :picker-options="pickerOptions" | |||
|                           @change="handleTime" | |||
|                           placeholder="选择时间"> | |||
|           </el-date-picker> | |||
|         </el-form-item> | |||
|         <el-form-item class="block" | |||
|                       label-width="150px" | |||
|                       style="display: block" | |||
|                       label="添加附件" | |||
|                       prop="attach"> | |||
| 
 | |||
|           <el-upload class="upload-demo" | |||
|                      :action="uploadUlr" | |||
|                      accept=".doc,.pdf,.xls,.docx,.xlsx" | |||
|                      :on-success="handleFileSuccess" | |||
|                      :on-remove="handleFileRemove" | |||
|                      :on-preview="handleFileDownload" | |||
|                      :limit="3" | |||
|                      :disabled="disabled" | |||
|                      :before-upload="beforeUpload" | |||
|                      :file-list="fileList"> | |||
|             <el-button size="small" | |||
|                        :disabled="fileList.length==3 || disabled" | |||
|                        type="primary">点击上传</el-button> | |||
|             <div slot="tip" | |||
|                  class="el-upload__tip">最多三个附件,只能上传word、excel、pdf文件</div> | |||
|           </el-upload> | |||
|         </el-form-item> | |||
| 
 | |||
|       </el-form> | |||
|     </div> | |||
| 
 | |||
|     <div class="div_btn"> | |||
|       <el-button size="small" | |||
|                  @click="handleCancle">取 消</el-button> | |||
|       <el-button v-if="!disabled" size="small" | |||
|                  type="primary" | |||
|                  :disabled="btnDisable" | |||
|                  @click="handleComfirm">确 定</el-button> | |||
|     </div> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| import { mapGetters } from 'vuex' | |||
| import { Loading } from 'element-ui' // 引入Loading服务 | |||
| import { requestPost } from '@/js/dai/request' | |||
| import { dateFormats } from '@/utils/index' | |||
| 
 | |||
| 
 | |||
| 
 | |||
| 
 | |||
| let loading // 加载动画 | |||
| export default { | |||
|   data () { | |||
|     return { | |||
|       disabled: false, | |||
|       formType: 'add', //表单操作类型 add新增,edit编辑,detail详情 | |||
| 
 | |||
|       btnDisable: false, | |||
|       pickerOptions: { | |||
|         disabledDate(time) { | |||
|           return time.getTime() <= Date.now() - 8.64e7; | |||
|         } | |||
|       }, | |||
|       id: '', | |||
|       formData: { | |||
|         content: '',//内容	 | |||
|         workType: '',//解决方式		 | |||
|         remindTime: '',//提醒时间yyyy-mm-dd hh:mm	 | |||
|         attachmentList: [] | |||
|       }, | |||
| 
 | |||
| 
 | |||
|       fileList: [], | |||
|       uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadvariedfile', | |||
|       dialogImageUrl: '', | |||
|       dialogVisible: false | |||
| 
 | |||
|     } | |||
|   }, | |||
|   components: {}, | |||
|   mounted () { | |||
| 
 | |||
|   }, | |||
| 
 | |||
|   methods: { | |||
| 
 | |||
|     async initForm (type, id) { | |||
|       // this.startLoading() | |||
|       this.$refs.ref_form.resetFields(); | |||
| 
 | |||
|       this.formType = type | |||
|       this.disabled = type == 'look' ? true : false | |||
|       if (id) { | |||
|         this.id = id | |||
|         this.formData.id = id | |||
|         await this.loadFormData() | |||
|       } | |||
|       // this.endLoading() | |||
| 
 | |||
|     }, | |||
|     handleTime() { | |||
|        var startAt = new Date(this.formData.remindTime) * 1000 /1000; | |||
|         if(startAt < Date.now()) { | |||
|             this.formData.remindTime = dateFormats('YYYY-mm-dd HH:MM', new Date()); | |||
|         } | |||
|     }, | |||
|     async loadFormData () { | |||
| 
 | |||
|       // const url = 'http://yapi.elinkservice.cn/mock/245/gov/project/memoDifficulty/detail' | |||
|       const url = '/gov/project/memoWorkDiary' | |||
|       let params = { | |||
|         id: this.id, | |||
|         readFlag: '0', | |||
|       } | |||
|       const { data, code, msg } = await requestPost(url, params) | |||
|       if (code === 0) { | |||
|         this.formData = data | |||
| 
 | |||
|         if (data.attachmentList) { | |||
|           data.attachmentList.forEach(element => { | |||
|             element.name = element.fileName | |||
|             element.type = element.attachmentType | |||
|             element.size = element.attachmentSize | |||
|           }); | |||
|           this.fileList = data.attachmentList | |||
|         } | |||
| 
 | |||
|       } else { | |||
|         this.$message.error(msg) | |||
|       } | |||
|     }, | |||
| 
 | |||
|     async handleComfirm () { | |||
|       this.btnDisable = true | |||
|       setTimeout(() => { | |||
|         this.btnDisable = false | |||
|       }, 10000) | |||
|       this.$refs['ref_form'].validate(async (valid, messageObj) => { | |||
|         if (!valid) { | |||
|           app.util.validateRule(messageObj) | |||
|           this.btnDisable = false | |||
|         } else { | |||
| 
 | |||
|           await this.addDifficulty() | |||
|            | |||
| 
 | |||
|         } | |||
| 
 | |||
|       }) | |||
| 
 | |||
|     }, | |||
|     async addDifficulty () { | |||
| 
 | |||
| 
 | |||
| 
 | |||
|       if (this.fileList.length > 0) { | |||
|         this.formData.attachmentList = this.fileList | |||
|       } | |||
| 
 | |||
|       let url = '' | |||
|       if (this.formType === 'add') { | |||
|         url = '/gov/project/memoWorkDiary/save' | |||
|         // url = "http://yapi.elinkservice.cn/mock/245/gov/project/memoDifficulty/save" | |||
|         this.formData.id = '' | |||
| 
 | |||
|       } else { | |||
|         url = '/gov/project/memoWorkDiary/update' | |||
|         // url = "http://yapi.elinkservice.cn/mock/245/gov/project/memoDifficulty/update" | |||
|       } | |||
| 
 | |||
| 
 | |||
|       const { data, code, msg } = await requestPost(url, this.formData) | |||
| 
 | |||
|       if (code === 0) { | |||
|         this.$message({ | |||
|           type: 'success', | |||
|           message: '操作成功' | |||
|         }) | |||
|         this.resetData() | |||
|          | |||
|         this.$emit('dialogOk') | |||
|         this.btnDisable = false | |||
|         this.$store.dispatch('setTipsList') | |||
|         this.$store.dispatch('setTipsTime') | |||
|       } else { | |||
|         this.btnDisable = false | |||
|         this.$message.error(msg) | |||
|       } | |||
| 
 | |||
|     }, | |||
| 
 | |||
|     handleCancle () { | |||
| 
 | |||
|       this.resetData() | |||
|       this.$emit('dialogCancle') | |||
| 
 | |||
|     }, | |||
| 
 | |||
|     beforeUpload (file) { | |||
|       const array = file.name.split('.') | |||
|       const extension = array[array.length - 1] | |||
| 
 | |||
|       if (extension !== 'xls' | |||
|         && extension !== 'xlsx' | |||
|         && extension !== 'doc' | |||
|         && extension !== 'docx' | |||
|         && extension !== 'pdf') { | |||
|         this.$message.error('只能上传word、excel、pdf文件!') | |||
|         return false | |||
|       } | |||
| 
 | |||
|     }, | |||
| 
 | |||
|     handleFileRemove (file) { | |||
| 
 | |||
|       if (file && file.status === "success") { | |||
|         this.fileList.splice(this.fileList.findIndex(item => item.uid === file.uid), 1) | |||
|       } | |||
|     }, | |||
| 
 | |||
|     handleFileSuccess (res, file) { | |||
| 
 | |||
|       if (res.code === 0 && res.msg === 'success') { | |||
|         const array = file.name.split('.') | |||
|         const fileType = array[array.length - 1] | |||
| 
 | |||
|         file.fileName = file.name | |||
|         file.attachmentUrl = res.data.url | |||
|         file.attachmentSize = file.size | |||
|         file.attachmentType = 'doc' | |||
|         file.attachmentFormat = fileType | |||
| 
 | |||
|         this.fileList.push(file) | |||
|         console.log(this.fileList) | |||
|       } else this.$message.error(res.msg) | |||
|     }, | |||
| 
 | |||
|     //下载 | |||
|     handleFileDownload (file) { | |||
| 
 | |||
|       var a = document.createElement('a'); | |||
|       var event = new MouseEvent('click'); | |||
|       a.download = file.name; | |||
|       console.log(a) | |||
|       a.href = file.url; | |||
|       a.dispatchEvent(event); | |||
| 
 | |||
| 
 | |||
|     }, | |||
| 
 | |||
|     resetData () { | |||
|       this.id = '' | |||
| 
 | |||
|       this.formData = { | |||
|         content: '',//内容	 | |||
|         workType: '',//解决方式		 | |||
|         remindTime: '',//提醒时间yyyy-mm-dd hh:mm	 | |||
|         attachmentList: [] | |||
| 
 | |||
|       } | |||
|     }, | |||
|     // 开启加载动画 | |||
|     startLoading () { | |||
|       loading = Loading.service({ | |||
|         lock: true, // 是否锁定 | |||
|         text: '正在加载……', // 加载中需要显示的文字 | |||
|         background: 'rgba(0,0,0,.7)' // 背景颜色 | |||
|       }) | |||
|     }, | |||
|     // 结束加载动画 | |||
|     endLoading () { | |||
|       // clearTimeout(timer); | |||
|       if (loading) { | |||
|         loading.close() | |||
|       } | |||
|     } | |||
|   }, | |||
|   computed: { | |||
|     dataRule () { | |||
|       return { | |||
|         content: [ | |||
|           { required: true, message: '内容不能为空', trigger: 'blur' }, | |||
|         ], | |||
| 
 | |||
|       } | |||
|     }, | |||
| 
 | |||
|   }, | |||
|   props: { | |||
| 
 | |||
| 
 | |||
| 
 | |||
|     // serviceList: { | |||
|     //   type: Array, | |||
|     //   default: [] | |||
|     // }, | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| 
 | |||
| <style lang="scss" scoped > | |||
| @import "@/assets/scss/modules/visual/communityManageForm.scss"; | |||
| </style> | |||
| <style  lang="scss" scoped> | |||
| .item_width_1 { | |||
|   width: 560px; | |||
| } | |||
| .item_width_2 { | |||
|   width: 220px; | |||
| } | |||
| 
 | |||
| .text_p { | |||
|   margin: 0; | |||
|   padding: 0 10px; | |||
|   border: 1px solid #d9d9d9; | |||
|   border-radius: 5px; | |||
|   > p { | |||
|     margin: 0; | |||
|   } | |||
| } | |||
| </style> | |||
| 
 | |||
| @ -0,0 +1,474 @@ | |||
| <template> | |||
|   <div class="div_main"> | |||
|     <div ref="div_search" class="div_search"> | |||
|       <el-form :inline="true" | |||
|                :model="formData" | |||
|                ref="ref_searchform" | |||
|                :label-width="'100px'"> | |||
|         <div> | |||
|           <el-form-item label="内容摘要" | |||
|                         prop="content"> | |||
|             <el-input v-model="formData.content" | |||
|                       size="small" | |||
|                       class="item_width_1" | |||
|                       clearable | |||
|                       placeholder="请输入内容摘要"> | |||
|             </el-input> | |||
| 
 | |||
|           </el-form-item> | |||
|           <el-form-item label="工作事项" | |||
|                         prop="content"> | |||
|             <el-input v-model="formData.workType" | |||
|                       size="small" | |||
|                       class="item_width_1" | |||
|                       clearable | |||
|                       placeholder="请输入内容摘要"> | |||
|             </el-input> | |||
| 
 | |||
|           </el-form-item> | |||
|           <el-form-item label="创建时间" | |||
|                         prop="startTime"> | |||
|             <el-date-picker v-model="timeRange" | |||
|                             size="small" | |||
|                             type="daterange" | |||
|                             value-format="yyyy-MM-dd" | |||
|                             @change="handleTimeChange" | |||
|                             range-separator="至" | |||
|                             start-placeholder="开始时间" | |||
|                             end-placeholder="结束时间"> | |||
|             </el-date-picker> | |||
| 
 | |||
|           </el-form-item> | |||
|           <el-button style="margin-left:10px" | |||
|                      class="diy-button--search" | |||
|                      size="small" | |||
|                      @click="handleSearch">查询</el-button> | |||
|           <el-button style="margin-left:10px" | |||
|                      class="diy-button--reset" | |||
|                      size="small" | |||
|                      @click="resetSearch">重置</el-button> | |||
|         </div> | |||
|       </el-form> | |||
|     </div> | |||
|     <div class="div_table"> | |||
|       <div class="div_btn"> | |||
|         <el-button style="" | |||
|                    class="diy-button--add" | |||
|                    size="small" | |||
|                    @click="handleAdd">新增</el-button> | |||
| 
 | |||
|       </div> | |||
| 
 | |||
|       <el-table class="table" | |||
|                 :data="tableData" | |||
|                 border | |||
|                 :height="tableHeight" | |||
|                 v-loading="tableLoading" | |||
|                 :header-cell-style="{background:'#2195FE',color:'#FFFFFF'}" | |||
|                 style="width: 100%"> | |||
| 
 | |||
|         <el-table-column label="序号" | |||
|                          header-align="center" | |||
|                          align="center" | |||
|                          type="index" | |||
|                          width="50"></el-table-column> | |||
| 
 | |||
|         <el-table-column prop="content" | |||
|                          header-align="center" | |||
|                          align="center" | |||
|                          label="内容" | |||
|                          min-width="180"> | |||
|           <template slot-scope="scope"> | |||
|             <div class="twoline">{{scope.row.content}}</div> | |||
| 
 | |||
|           </template> | |||
|         </el-table-column> | |||
|         <el-table-column prop="workType" | |||
|                          header-align="center" | |||
|                          align="center" | |||
|                          label="工作事项" | |||
|                          show-overflow-tooltip="" | |||
|                          min-width="120"> | |||
|         </el-table-column> | |||
|         <el-table-column prop="remindTime" | |||
|                          header-align="center" | |||
|                          align="center" | |||
|                          label="提醒时间" | |||
|                          width="170"> | |||
|         </el-table-column> | |||
|         <el-table-column prop="createdTime" | |||
|                          header-align="center" | |||
|                          align="center" | |||
|                          label="创建时间" | |||
|                          width="170"> | |||
|         </el-table-column> | |||
| 
 | |||
|         <el-table-column label="操作" | |||
|                          fixed="right" | |||
|                          width="170" | |||
|                          header-align="center" | |||
|                          align="center" | |||
|                          class="operate"> | |||
|           <template slot-scope="scope"> | |||
| 
 | |||
|             <el-button type="text" | |||
|                        class="div-table-button--detail" | |||
|                        size="small" | |||
|                        @click="handleDetail(scope.row)">查看</el-button> | |||
|             <el-button | |||
|                        type="text" | |||
|                        class="div-table-button--edit" | |||
|                        size="small" | |||
|                        @click="handleEdit(scope.row)">修改</el-button> | |||
|             <el-button | |||
|                        type="text" | |||
|                        class="div-table-button--detail" | |||
|                        size="small" | |||
|                        @click="handleExport(scope.row)">导出</el-button> | |||
| 
 | |||
|             <el-button type="text" | |||
|                        class="div-table-button--delete" | |||
|                        size="small" | |||
|                        @click="handleDelete(scope.row)">删除</el-button> | |||
|           </template> | |||
|         </el-table-column> | |||
|       </el-table> | |||
|       <div> | |||
|         <el-pagination @size-change="handleSizeChange" | |||
|                        @current-change="handleCurrentChange" | |||
|                        :current-page.sync="pageNo" | |||
|                        :page-sizes="[10, 20, 50]" | |||
|                        :page-size="pageSize" | |||
|                        layout="sizes, prev, pager, next, total" | |||
|                        :total="total"> | |||
|         </el-pagination> | |||
|       </div> | |||
|     </div> | |||
| 
 | |||
|     <!-- 修改弹出框 --> | |||
|     <el-dialog :visible.sync="formShow" | |||
|                :close-on-click-modal="false" | |||
|                :close-on-press-escape="false" | |||
|                :title="formTitle" | |||
|                width="70%" | |||
|                top="5vh" | |||
|                class="dialog-h" | |||
|                @closed="diaClose"> | |||
|       <edit-form v-if="formShow" ref="ref_form" | |||
|                        @dialogCancle="addFormCancle" | |||
|                        @dialogOk="addFormOk"></edit-form> | |||
|     </el-dialog> | |||
| 
 | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| 
 | |||
| import editForm from './form' | |||
| import { requestPost } from "@/js/dai/request"; | |||
| import { mapGetters } from 'vuex' | |||
| import { Loading } from 'element-ui' // 引入Loading服务 | |||
| 
 | |||
| let loading // 加载动画 | |||
| export default { | |||
|   name: 'WorkLog', | |||
|   data () { | |||
|     return { | |||
|       sHeight: 0, | |||
|       loading: false, | |||
|       total: 0, | |||
|       pageSize: 10, | |||
|       pageNo: 0, | |||
|       tableLoading: false, | |||
| 
 | |||
|       scheduledTimeRange: [], | |||
|       timeRange: [], | |||
|       formData: { | |||
|         content: '',//内容摘要		 | |||
|         startTime: '',//开始时间yyyy-mm-dd	 | |||
|         endTime: '',//结束时间yyyy-mm-dd	 | |||
|         workType: '' | |||
|       }, | |||
| 
 | |||
|       tableData: [], | |||
| 
 | |||
|       //form相关 | |||
|       formShow: false, | |||
|       formTitle: '新增', | |||
|       detailShow: false, | |||
| 
 | |||
| 
 | |||
|     } | |||
|   }, | |||
|   components: { | |||
|     editForm | |||
|   }, | |||
|   async created () { | |||
|     console.log('sHeightcreated-----', this.sHeight, Date.now()) | |||
|   }, | |||
|   async mounted () { | |||
|      | |||
| 
 | |||
|     //获取网格下拉框数据 | |||
|     await this.loadTable() | |||
|     console.log('sh-----', this.$refs.div_search.offsetHeight) | |||
|     this.sHeight = this.$refs.div_search.offsetHeight + 270 | |||
|     console.log('sHeight-----', this.sHeight, this.tableHeight) | |||
|   }, | |||
| 
 | |||
|   methods: { | |||
|     handleSearch () { | |||
|       this.loadTable() | |||
|     }, | |||
| 
 | |||
|     async loadTable () { | |||
|       this.tableLoading = true | |||
| 
 | |||
|       const url = "/gov/project/memoWorkDiary/page" | |||
|       // const url = "http://yapi.elinkservice.cn/mock/245/gov/project/memoDifficulty/page" | |||
|       let params = { | |||
|         pageSize: this.pageSize, | |||
|         pageNo: this.pageNo, | |||
|         ...this.formData | |||
|       } | |||
| 
 | |||
|       const { data, code, msg } = await requestPost(url, params) | |||
| 
 | |||
|       if (code === 0) { | |||
|         this.total = data.total | |||
|         this.tableData = data.list | |||
|       } else { | |||
|         this.$message.error(msg) | |||
|       } | |||
|       this.tableLoading = false | |||
|     }, | |||
| 
 | |||
| 
 | |||
| 
 | |||
|     diaClose () { | |||
|       if (this.formShow) { | |||
|         this.$refs.ref_form.resetData() | |||
|         this.formShow = false | |||
|       } else { | |||
|         this.detailShow = false | |||
|       } | |||
| 
 | |||
|     }, | |||
| 
 | |||
| 
 | |||
|     handleDetail (row) { | |||
|       this.formShow = true | |||
|       this.formTitle = '详情' | |||
|       this.$nextTick(() => { | |||
|         console.log('this.$refs-----', this.$refs) | |||
|         this.$refs.ref_form.initForm('look', row.id) | |||
|       }) | |||
|     }, | |||
| 
 | |||
|     handleAdd () { | |||
|       this.formTitle = '新增' | |||
|       this.formShow = true | |||
|       this.$nextTick(() => { | |||
|         this.$refs.ref_form.initForm('add', null) | |||
|       }) | |||
|     }, | |||
| 
 | |||
|     handleEdit (row) { | |||
|       this.formTitle = '修改' | |||
|       this.formShow = true | |||
|       this.$nextTick(() => { | |||
|         this.$refs.ref_form.initForm('edit', row.id) | |||
|       }) | |||
|     }, | |||
| 
 | |||
|     addFormCancle () { | |||
|       this.formShow = false | |||
|     }, | |||
|     addFormOk () { | |||
|       this.formShow = false | |||
|       this.loadTable() | |||
| 
 | |||
|     }, | |||
| 
 | |||
|     async handleDelete (row) { | |||
| 
 | |||
|       this.$confirm("确认删除?", "提示", { | |||
|         confirmButtonText: "确定", | |||
|         cancelButtonText: "取消", | |||
|         type: "warning" | |||
|       }) | |||
|         .then(() => { | |||
|           this.deleteDifficulty(row) | |||
|         }) | |||
|         .catch(err => { | |||
|           if (err == "cancel") { | |||
| 
 | |||
|           } | |||
| 
 | |||
|         }); | |||
|     }, | |||
| 
 | |||
|     async deleteDifficulty (row) { | |||
|       const url = "/gov/project/memoDifficulty/delete" | |||
|       // const url = "http://yapi.elinkservice.cn/mock/245/gov/project/memoDifficulty/delete" | |||
|       let ids = [row.id] | |||
|       let params = { | |||
|         ids: ids | |||
|       } | |||
| 
 | |||
|       const { data, code, msg } = await requestPost(url, ids) | |||
| 
 | |||
|       if (code === 0) { | |||
|         this.$message({ | |||
|           type: "success", | |||
|           message: "删除成功" | |||
|         }); | |||
| 
 | |||
|         this.loadTable() | |||
|       } else { | |||
|         this.$message.error(msg) | |||
|       } | |||
|     }, | |||
| 
 | |||
|     //重置搜索条件 | |||
|     resetSearch () { | |||
|       this.timeRange = [] | |||
|       this.formData = { | |||
|         content: '',//内容摘要		 | |||
|         startTime: '',//开始时间yyyy-mm-dd	 | |||
|         endTime: '',//结束时间yyyy-mm-dd	 | |||
|         workType: '' | |||
|       } | |||
|       this.pageSize = 10 | |||
|       this.pageNo = 1 | |||
|       this.loadTable() | |||
|     }, | |||
| 
 | |||
|     //导出表格 | |||
|     async handleExport (row) { | |||
|       let url = `/gov/project/memoWorkDiary/${row.id}/exportWord` | |||
| 
 | |||
|       let params = {} | |||
|       await this.$http({ | |||
|         method: 'POST', | |||
|         url, | |||
|         data: params, | |||
|         responseType: 'blob' | |||
|       }).then(res => { | |||
|         if (res.headers["content-disposition"]) { | |||
|             let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1]) | |||
|             console.log('filename', fileName) | |||
|             this.download(res.data, fileName) | |||
|           } else this.$message.error('导出失败') | |||
|       }) | |||
| 
 | |||
|     }, | |||
| 
 | |||
|     // 下载文件 | |||
|     download (data, fileName) { | |||
|       if (!data) { | |||
|         return | |||
|       } | |||
| 
 | |||
|       var csvData = new Blob([data]) | |||
| 
 | |||
|       if (window.navigator && window.navigator.msSaveOrOpenBlob) { | |||
|         window.navigator.msSaveOrOpenBlob(csvData, fileName); | |||
|       } | |||
|       // for Non-IE (chrome, firefox etc.) | |||
|       else { | |||
|         var a = document.createElement('a'); | |||
|         document.body.appendChild(a); | |||
|         a.style = 'display: none'; | |||
|         var url = window.URL.createObjectURL(csvData); | |||
|         a.href = url; | |||
|         a.download = fileName; | |||
|         a.click(); | |||
|         a.remove(); | |||
|         window.URL.revokeObjectURL(url); | |||
|       } | |||
| 
 | |||
|     }, | |||
|     handleTimeChange (time) { | |||
|       if (time) { | |||
|         this.formData.startTime = time[0] | |||
|         this.formData.endTime = time[1] | |||
| 
 | |||
|       } else { | |||
|         this.formData.startTime = '' | |||
|         this.formData.endTime = '' | |||
| 
 | |||
|       } | |||
| 
 | |||
|     }, | |||
| 
 | |||
|     handleSizeChange (val) { | |||
|       this.pageSize = val | |||
|       this.pageNo = 1 | |||
|       this.loadTable() | |||
|     }, | |||
|     handleCurrentChange (val) { | |||
|       this.pageNo = val | |||
|       this.loadTable() | |||
|     }, | |||
|   }, | |||
|   computed: { | |||
|     tableHeight () { | |||
| 
 | |||
|       return (this.clientHeight - this.sHeight) | |||
| 
 | |||
|     }, | |||
| 
 | |||
|     ...mapGetters(['clientHeight']) | |||
|   }, | |||
|   watch: { | |||
| 
 | |||
|   }, | |||
|   props: { | |||
| 
 | |||
|   } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped > | |||
| .div_main { | |||
|   width: 100%; | |||
| } | |||
| 
 | |||
| .div_search { | |||
|   background: #ffffff; | |||
|   border-radius: 4px; | |||
|   padding: 30px 20px 5px; | |||
|   box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1); | |||
| } | |||
| 
 | |||
| .item_width_1 { | |||
|   width: 260px; | |||
| } | |||
| 
 | |||
| .div_table { | |||
|   background: #ffffff; | |||
|   box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1); | |||
|   border-radius: 4px; | |||
|   margin-top: 15px; | |||
|   padding: 23px 30px 10px; | |||
| 
 | |||
|   .table { | |||
|     margin-top: 20px; | |||
|   } | |||
| } | |||
| 
 | |||
| .el-row { | |||
|   /* margin-bottom: 20px; */ | |||
|   display: flex; | |||
|   flex-wrap: wrap; | |||
|   margin-top: 10px; | |||
|   margin-right: 50px; | |||
| } | |||
| 
 | |||
| .twoline { | |||
|   display: -webkit-box; | |||
|   -webkit-box-orient: vertical; | |||
|   -webkit-line-clamp: 2; | |||
|   overflow: hidden; | |||
| } | |||
| </style> | |||
					Loading…
					
					
				
		Reference in new issue