feige
2024-04-17 39c0ad120acd120b62cb69dc92b6fe63e8edf902
ruoyi-ui/src/views/note/memo.vue
@@ -0,0 +1,744 @@
<template>
  <div class="app-container" style="opacity: 1;">
    <div class="box1"><h2>备忘本</h2></div>
    <el-button class="button1" size="mini" type="text"  @click="handleAdd"  v-hasPermi="['system:role:add']">
      <sapn v-html="'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"></sapn> </el-button>
    <el-table v-loading="loading" :data="memoList"  @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" style="background: #FFEFF2;  border-radius: 14px 14px 14px 14px;width: 60%;">
      <el-table-column  label="序号" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="150"/>
      <el-table-column label="时间" prop="happenTime" sortable width="180px" align="center">
        <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: '————'}}</template>
      </el-table-column>
      <el-table-column label="内容" prop="content" sortable width="180px" />
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope" v-if="scope.row.roleId !== 1">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="editAutobiography(scope.row)"
            v-hasPermi="['familymodel:economy:info']"
          >修改</el-button>
          <el-button
            size="mini"
            type="text"
            class="button_delete"
            @click="handleDelete(scope.row)"
            v-hasPermi="['system:role:remove']"
          > <sapn v-html="'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"></sapn></el-button>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
      style="background: #FEF7FC;"
    />
    <el-dialog :title="isEdit1 ? '编辑' : '新增'" :visible.sync="open" width="900px" append-to-body>
      <el-col >
        <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px">
          <el-form-item label="时间" prop="happenTime">
            <el-date-picker
              v-model='formDat.happenTime'
              type='date'
              placeholder='选择日期'
           value-format="yyyy-MM-dd"
            ></el-date-picker>
          </el-form-item>
          <el-form-item label="内容" prop="content">
            <el-input v-model="formDat.content" placeholder="请输入内容" clearable :style="{width: '100%'}" >
            </el-input>
          </el-form-item>
        <h4 class="form-header">相关图片 </h4>
          <el-upload
            action="#"
            list-type="picture-card"
            multiple
            :http-request="requestUpload"
            :file-list="fileList"
        :on-change="handleChange"
        :auto-upload="false"
          ref="upload"
          >
          <i slot="default" class="el-icon-plus"></i>
          <div slot="file" slot-scope="{file}">
            <img
              class="el-upload-list__item-thumbnail"
              :src="file.url"
              alt=""
              style="width: 126px; height: 126px"
              fit="cover"
              :preview-src-list="[file.url]"
            >
            <span class="el-upload-list__item-actions">
        <span
          class="el-upload-list__item-preview"
          @click="handlePictureCardPreview(file)"
        >
          <i class="el-icon-zoom-in"></i>
        </span>
        <span
          v-if="!disabled"
          class="el-upload-list__item-delete"
          @click="handleRemove(file)"
        >
          <i class="el-icon-delete"></i>
        </span>
      </span>
          </div>
        </el-upload>
      <el-button
               style="margin-left: 10px"
               size="small"
               type="success"
               @click="picUpload"
             >上传到服务器</el-button>
        <h4 class="form-header">其他附件 </h4>
<el-upload
          action=""
          :file-list="fileListOther"
          class="upload-demo"
          multiple
          :on-remove="handleRemoveFile"
          :show-file-list="true"
        ref="upload1"
        :on-change="handleChange1"
        :auto-upload="false"
        list-type="picture-card"
          :http-request="requestUpload1"
        >
          <el-button type="primary">点击上传</el-button>
          <template #tip>
            <div class="el-upload__tip">
            </div>
          </template>
        </el-upload>
<el-button
                style="margin-left: 10px"
                size="small"
                type="success"
                @click="fileUpload"
              >上传到服务器</el-button>
        </el-form>
      </el-col>
      <h4 class="form-header"> </h4>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitDataScope6">保 存</el-button>
        <el-button @click="cancelData">取 消</el-button>
      </div>
    </el-dialog>
    <!-- 分配角色数据权限对话框 -->
    <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body>
    </el-dialog>
  </div>
</template>
<script>
import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
//在system/note/index.js中导入接口函数  --接好了
import {addNote,listNote,updateNote,delNote, uploadPic} from "@/api/allmemo/index";
import { TimeSelect } from "element-ui";
import {addAutobiography, updateAutobiography} from "@/api/self";
export default {
  name: "Role",
  dicts: ['sys_normal_disable'],
  data() {
    return {
      // dialogImageUrl: '',
      // dialogVisible: false,
      isEdit1:false,
      // 遮罩层
      disabled: false,
      loading: true,
      formData:[],
      // 选中数组
      ids: [],
      id:undefined,
      // 非单个禁用
      single: true,
      // 非多个禁用
      multiple: true,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      total: 0,
      // 家大事记表格数据
      memoList: {
        id:undefined,
        content: undefined,
        happenTime: undefined,
        fid:2007,
        cid:undefined,
        url:''},
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 是否显示弹出层(数据权限)
      openDataScope: false,
      menuExpand: false,
      menuNodeAll: false,
      deptExpand: true,
      deptNodeAll: false,
      // 日期范围
      dateRange: [],
      // 数据范围选项
     // 数据范围选项
     fot:['.bmp','.jpg','.jpeg','.png','.tif','.gif','.pcx','.tga','.exif','.fpx',
       '.svg','.psd','.cdr','.pcd','.dxf','.ufo','.eps','.ai','.aw','.WMF','.webp','.apng'],
      fileList:[
      ],
      fileList1:[],
      uploadFileList: [],
      uploadFileList1: [],
      fileListOther:[],
      dsb:true,
      btn:false,
      formDat: {
        id:undefined,
        content: undefined,
        happenTime: undefined,
        fid:2007,
        cid:undefined,
        url:''
      },
      // 菜单列表
      menuOptions: [],
      // 部门列表
      deptOptions: [],
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
      },
      // 表单参数
      form: {},
      defaultProps: {
        children: "children",
        label: "label"
      },
      // 表单校验
      rules: {
        happenTime: [{
          required: true,
          message: '请选择日期选择',
          trigger: 'change'
        }],
        content: [{
          required: true,
          message: '请输入内容',
          trigger: 'blur'
        }],
        fid: [{
          required: true,
          // message: '请输入内容',
          // trigger: 'blur'
        }],
        cid: [{
          required: true,
          // message: '请输入内容',
          // trigger: 'blur'
        }],
      },
      typeOptions: [],
    };
  },
  created() {
    const cid = this.$route.params && this.$route.params.id;
    this.getList(2007,cid);
  },
  methods: {
    //  弹窗
    handleShow(scope){
      this.openDataScope = true
      this.getList()
    },
    fileUpload(){
    //   var file = params.file;
       var formData = new FormData();
    //   this.$refs.upload1.submit();
       // formData.append('uploadFile', file);
       if(this.uploadFileList1.length==0){
            this.$modal.msgSuccess("文档上传列表不能为空!");
            return
       }
       this.uploadFileList1.forEach((elem)=>{
          formData.append("files", elem)
       })
       let _this = this
       this.uploading = true;
       uploadPic(formData).then(response => {
       _this.uploadFileList1 = []
       _this.formDat.url = _this.formDat.url+","+response.fileNames
       _this.$modal.msgSuccess("文件上传成功!");
         })
    },
    picUpload()
    {
      // alert('1321321')
       var formData = new FormData();
    if(this.uploadFileList.length==0){
         this.$modal.msgSuccess("图片上传列表不能为空!");
         return}
       this.uploadFileList.forEach((elem)=>{
          formData.append("files", elem)
       })
    const cid = this.$route.params && this.$route.params.id;
      const fid =2007;
      this.formDat.fid = 2007;
      this.formDat.cid = parseInt(cid) ;
       let _this = this
        uploadPic(formData).then(response => {
          _this.formDat.url = _this.formDat.url+","+response.fileNames
      alert(_this.formDat.url)
         _this.uploadFileList = []
        console.log(_this.formDat)
        updateNote(_this.formDat).then(response => {
          alert(984)
         _this.$modal.msgSuccess("图片上传成功");
        })
      });
            console.log(this.formDat,'formDatformDatformDatformDat')
    },
    //个人自传的保存
    submitDataScope6: function() {
      const cid = this.$route.params && this.$route.params.id;
      const fid =2007;
      this.formDat.fid = 2007;
      this.formDat.cid = cid ;
      // console.log(this.formDat,'formDatformDatformDatformDat')
      // console.log(this.isEdit1)
      this.$refs["elForm"].validate(valid => {
        if (valid) {
          if (this.isEdit1) {
            // 执行修改操作
            updateNote(this.formDat).then(response => {
              // console.log("1")
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              //清空formDat对象的数据
              Object.keys(this.formDat).forEach(key => {
                this.formDat[key] = '';
              });
              for(let i = 0; i <= this.fileList.length; i++)
              {
                this.handleRemove(this.fileList[0]);
              }
              for(let i = 0; i < this.fileListOther.length; i++){
                this.handleRemoveFile(this.fileListOther[0]);
              }
              this.isEdit1 = false;
              this.getList(2007,cid);
            }).catch(error => {
              console.log(error,'erroerro1');
              this.isEdit1 = false;
              this.open = false;
            });
          } else {
            // 执行新增操作
         // console.log(this.formDat)
            addNote(this.formDat).then(response => {
              // this.formDat.term = selectedOption.label;
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              //清空formDat对象的数据
              Object.keys(this.formDat).forEach(key => {
                this.formDat[key] = '';
              });
              for(let i = 0; i <= this.fileList.length; i++)
              {
                this.handleRemove(this.fileList[0]);
              }
              for(let i = 0; i < this.fileListOther.length; i++){
                this.handleRemoveFile(this.fileListOther[0]);
              }
              this.getList(2007,cid);
            }).catch(error => {
              console.log(error,'erroerro2');
              this.open = false;
            });
          }
        }
      });
      // 重置isEdit为false,以便下次点击新增时为新增操作
      this.isEdit1 = false;
    },
    editAutobiography(row) {
      const id = row.id;
      // console.log(id)
      // console.log(row.content)
      this.isEdit1 = true;
      this.formDat.cid = row.cid;
      this.formDat.id = row.id;
      this.formDat.happenTime = row.happenTime;
      this.formDat.content = row.content;
      this.formDat.url = row.url
      this.open = true;
      //console.log(this.formDat)
      let paths = this.formDat.url.split(",");
      //      alert( this.formDat.url)
      let _this = this
      _this.fileList = []
      _this.fileListOther = []
      for(let i = 0; i < paths.length; i++)
      {
        if(paths[i]!="") {
            let pth = paths[i].substr(paths[i].length - 4, paths[i].length)
        //   alert(pth)
            if (_this.fot.includes(pth) === true)
           {
              if(paths[i][0]=="/")
              _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i].substr(1),res:false})
             else
                _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i],res:false})
             }
            else {
              // alert(paths[i])
            // alert()
              let nms = paths[i].split("\/")
              let nm = nms[nms.length - 1]
             if(paths[i][0]=="/")
              _this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i].substr(1),res:false})
              else
              _this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i],res:false})
           }
          }
      }
      },
    // 取消按钮
    cancelData() {
      this.open = false;
      this.reset();
    },
    //隔行变色
    tableRowClassName({ row, rowIndex }) {
      if (rowIndex % 2 == 0) {
        return "statistics-warning-row1";
      } else {
        return "statistics-warning-row";
      }
    },
    /** 查询角色列表 */
    getList(fid,cid) {
      this.loading = true;
      this.queryParams.cid = cid
      this.queryParams.fid = fid
      this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0]
      this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1]
      listNote(cid, 2007).then(response => {
          this.memoList = response.data;
          console.log(response,'11111111111111111111111')
          this.loading = false;
        }
      );
    },
    // handleRemove(file) {
    //   for(let i = 0; i < this.fileListOther.length; i++)
    //   {
    //     if(this.fileListOther[i].url==file.url)
    //       this.$delete(this.fileListOther,i);
    //   }
    // },
    handleRemove(file) {
        for(let i = 0; i < this.fileList.length; i++)
        {
          if(this.fileList[i].url==file.url)
          {
            this.$delete(this.fileList,i);
               this.$delete(this.uploadFileList,i);
               }
        }
      },
    handleRemoveFile(file) {
      for(let i = 0; i < this.fileListOther.length; i++)
      {
        if(this.fileListOther[i].url==file.url)
       {
          this.$delete(this.fileListOther,i);
         this.$delete(this.uploadFileList1,i);
         }
      }
    },
    // 取消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    getCid(){
      const cid = this.$route.params && this.$route.params.id;
      return cid
    },
    getRowId(row)
    {
      return row.id
    },
    // 取消按钮(数据权限)
    cancelDataScope() {
      this.openDataScope = false;
      this.reset();
    },
    // 表单重置
    reset() {
      if (this.$refs.menu != undefined) {
        this.$refs.menu.setCheckedKeys([]);
      }
      this.menuExpand = false,
        this.menuNodeAll = false,
        this.deptExpand = true,
        this.deptNodeAll = false,
        this.form = {
          roleId: undefined,
          roleName: undefined,
          roleKey: undefined,
          roleSort: 0,
          status: "0",
          menuIds: [],
          deptIds: [],
          menuCheckStrictly: true,
          deptCheckStrictly: true,
          remark: undefined
        };
      this.resetForm("form");
    },
    /** 搜索按钮操作 */
    handleQuery() {
      const fid = 2007;
      const cid = this.$route.params && this.$route.params.id;
      this.queryParams.pageNum = 1;
      this.getList(fid,cid);
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.dateRange = [];
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.id)
      console.log(this.ids)
      this.single = selection.length!=1
      this.multiple = !selection.length
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.reset();
      this.isEdit1=false;
      this.open = true;
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      const id = row.id;
      let jd = true
    },
    handlePictureCardPreview(file) {
      this.dialogImageUrl = file.url;
      this.dialogVisible = true;
    },
    /** 提交按钮(数据权限) */
    submitDataScope: function() {
      const cid = this.$route.params && this.$route.params.id;
      const fid =2007;
      let ul = this.fileList.map(function (elem){
        return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
      }).join(",")
      let uls = this.fileListOther.map(function (elem){
        return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
      }).join(",")
      this.formDat.fid = 2007;
      this.formDat.cid = cid ;
      this.formDat.url = ul+","+uls
      this.$refs["elForm"].validate(valid => {
        if (valid) {
          addNote(this.formDat).then(response => {
            this.$modal.msgSuccess("新增成功");
            this.open = false;
            //清空formDat对象的数据
            Object.keys(this.formDat).forEach(key => {
              this.formDat[key] = '';
            });
            this.getList(2007,cid);
          });
        }
      });
    },
    requestUpload(params) {
    //alert(98)
     //    this.uploadFileList.push(params.file);
    },
    requestUpload1(params)
    {
    //     this.uploadFileList1.push(params.file);
    },
    handleChange(file, fileList1) {
          //定义一个全局数组uploadFileList来做存储
         console.log("=========5555=========")
         console.log(file)
           this.uploadFileList.push(file.raw);
            this.fileList.push({name:file.name,url:file.url})
       },
       handleChange1(file, fileOtherList1) {
          //定义一个全局数组uploadFileList来做存储
       this.uploadFileList1.push(file.raw);
        this.fileListOther.push({name:file.name,url:file.url})
         console.log("=========5555=========")
       },
    /** 删除按钮操作 */
    handleDelete(row) {
      const id = row.id || this.id;
      const fid = 2007;
      const cid = this.$route.params && this.$route.params.id;
      this.$modal.confirm('是否确认删除所选数据项?').then(function() {
        return delNote(id);
      }).then(() => {
        // this.getList(fid,cid);
        this.$modal.msgSuccess("删除成功");
        this.getList(fid,cid);
      }).catch(() => {});
    },
    /** 导出按钮操作 */
    handleExport() {
      const Ids = this.ids;
      if(Ids.length==0)
      {
        this.download('/zfEconomy/export', {
          ...this.queryParams
        }, `zfEconomy_${new Date().getTime()}.xlsx`)
      }else
      {
        this.download('/zfEconomy/export1/'+Ids, {
        }, `zfEconomy_${new Date().getTime()}.xlsx`)
      }
    }
    ,
    handleExportTemplate(){
      this.download('/zfEconomy/model', {
      }, `zfEconomy_${new Date().getTime()}.xlsx`)
    },
    /** 导入操作*/
    handleEnport(params){
      var file = params.file;
      var formData = new FormData();
      formData.append('excelImport', file);
      let _this = this
      enload(formData).then(response => {
        _this.getList();
        Message({ message: "导入成功", type: 'warning' })
      }).catch(err)
      {
        Message({ message: "导入失败", type: 'error' })
      }
    }
  },
};
</script>
<style>
.el-table__row.statistics-warning-row {
  background: #E0EEFE;
}
.el-table__row.statistics-warning-row1 {
  background: #FFEFF2;
}
.button1 {
  background:center no-repeat url('../../assets/icons/add1.png') ;
  /* margin-left: 69.5vw; */
  margin-left: 780px;
}
.button_delete {
  background: center no-repeat url('../../assets/images/删除2.png') ;
  /* margin-left: 66vw; */
  width: 5px;
  /* background: #000000; */
}
.box1,.button1{
  display: inline-block;
}
</style>