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