feige
2025-04-20 7eb199649939226c3f11fd6f4cda830a389253b8
ruoyi-ui/src/views/self/memoInfo.vue
@@ -1,8 +1,17 @@
<template>
  <div class="app-container">
  <div class="app-container" id="printable-content">
    <div class="form-header mt">
      <el-page-header @back="goBack" content="个人记事本详细信息">
      </el-page-header>
      <h1 style="font-size:21px;padding-top:30px;display: flex;justify-content: space-between;align-items: center;" >
              <el-page-header @back="goBack" content="个人记事本详细信息">
              </el-page-header>
<!--        <span>个人记事本详细信息</span>-->
        <div style="display: flex; align-items: center;">
          <el-button size="mini" type="text"  v-print="'#printable-content'" v-hasPermi="['person:information:memo']">
            <div class="form" ><el-icon  style="padding-right:100px;"></el-icon>
              <span class="text" style="width: 69px;height: 26px;font-size: 16px;
            font-family: Microsoft YaHei-Regular, Microsoft YaHei; color: #EBA4AA;">打印</span></div>
          </el-button></div>
      </h1>
<!--      <h4 class="dt h4"> </h4>-->
    </div>
    <div>
@@ -13,8 +22,9 @@
              <el-row>
                <el-cow :span="8">
                  <el-form-item label="时间" prop="happenTime" label-width="50px" style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
                    <el-input v-model="formData.happenTime" placeholder="请输入时间" type="date" clearable :style="{width: '100%'}" :disabled="dsb">
                    </el-input>
                    <el-date-picker v-model="formData.happenTime" type="date" placeholder="请选择日期"
                                    :editable="false" :clearable="false" :style="{width: '100%'}" :disabled="dsb" value-format="yyyy-MM-dd"
                    ></el-date-picker>
                  </el-form-item>
                </el-cow>
                <el-cow :span="8">
@@ -45,13 +55,19 @@
          </div>
        </el-container>
        <h4 class="form-header">电子文件 </h4>
        <h4 class="form-header">相关图片 </h4>
        <el-upload
          action="#"
          list-type="picture-card"
          multiple
          :http-request="requestUpload"
          :file-list="fileList"
          :disabled="!btn"
          :class="{ hide: !btn }"
          ref="upload"
          :show-file-list="true"
               :on-change="handleChange"
               :auto-upload="false"
        >
          <div v-if="uploading" class="upload-status">正在上传...</div>
          <i v-if="!uploading" slot="default" class="el-icon-plus"></i>
@@ -60,7 +76,7 @@
              class="el-upload-list__item-thumbnail"
              :src="file.url"
              alt=""
              style="width: 147px; height: 147px"
              style="width: 100%; height: 100%; object-fit: cover;"
              fit="cover"
              :preview-src-list="[file.url]"
            >
@@ -91,66 +107,93 @@
          </div>
        </el-upload>
        <el-button
                 style="margin-left: 10px"
                 size="small"
                 type="success"
                      v-if="btn"
                 @click="picUpload"
               >上传到服务器</el-button>
        <h4 class="form-header">其他附件 </h4>
        <el-upload
          action=""
          :file-list="fileListOther"
          class="upload-demo"
          ref="upload1"
          multiple
          list-type="picture-card"
          :on-preview="handleFileCardPreview"
          :on-remove="handleRemoveFile"
          :http-request="requestUpload"
          :on-change="handleChange1"
          :http-request="requestUpload1"
          :show-file-list="true"
          :auto-upload="false"
          :disabled="!btn"
          :class="{ hide: !btn }"
        >
          <div v-if="uploading" class="upload-status">正在上传...</div>
          <i v-if="!uploading" slot="default" class="el-icon-plus"></i>
          <div v-if="uploading1" class="upload-status">正在上传...</div>
          <i v-if="!uploading1" slot="default" class="el-icon-plus"></i>
          <div slot="file" slot-scope="{file}">
            <img
            <!-- 添加video元素用于显示视频 -->
            <video
              v-if="file.url.includes('.mp4')"
              class="el-upload-list__item-thumbnail"
              src="../../assets/401_images/401.gif"
              alt=""
              :src="file.url"
              style="width: 147px; height: 147px"
              fit="cover"
            >
            ></video>
            <img v-else
                 class="el-upload-list__item-thumbnail"
                 src="../../assets/images/deviceLis.png"
                 alt=""
                 style="width: 147px; height: 147px"
                 fit="cover">
            <span class="el-upload-list__item-actions">
                <span
               <span class="el-upload-list__item-name">{{ file.name }}</span>
                    <span
                      class="el-upload-list__item-preview"
                      @click="handleFileCardPreview(file)"
                    >
                      <i class="el-icon-zoom-in"></i>
                    </span>
                    <span
                  class="el-upload-list__item-preview"
                  @click="handleFileCardPreview(file)"
                >
                  <i class="el-icon-zoom-in"></i>
                </span>
                <span
                  class="el-upload-list__item-delete"
                  @click="handleDownload(file.url)"
                >
          <i class="el-icon-download"></i>
                </span>
                <span
                  v-if="isShow"
                  class="el-upload-list__item-delete"
                  @click="handleRemoveFile(file)"
                >
                  <i class="el-icon-delete"></i>
                </span>
                      class="el-upload-list__item-delete"
                      @click="handleDownload(file.url)"
                    >
                 <i class="el-icon-download"></i>
                 </span>
                    <span
                      v-if="isShow"
                      class="el-upload-list__item-delete"
                      @click="handleRemoveFile(file)"
                    >
                      <i class="el-icon-delete"></i>
                    </span>
              </span>
          </div>
        </el-upload>
        <el-button
          style="margin-left: 10px"
          size="small"
          type="success"
          v-if="btn"
          @click="fileUpload"
        >上传到服务器</el-button>
          <h4 class="form-header"> </h4>
        <el-form-item size="large">
          <el-button v-if="isShow" type="primary" @click="submitForm" :disabled="dsb">修改</el-button>
        </el-form-item>
      </el-form>
    </div>
</div>
    <el-dialog  :visible.sync="dialogVisible">
      <img w-full :src="dialogImageUrl"    style="width: 700px; height: 700px" alt="Preview Image" />
      <img w-full :src="dialogImageUrl"  style="width: 100%; height: 100%" alt="Preview Image" />
    </el-dialog>
  </div>
</template>
@@ -161,6 +204,7 @@
import errorCode from "@/utils/errorCode";
import {Message} from "element-ui";
import { getNote, updateNote,download,uploadPic} from "@/api/memo/index";
import {updateCollection} from "@/api/collection";
export default {
  components: {},
@@ -169,13 +213,21 @@
    return {
      cdi:"个人记事本详情",
      udi:"个人记事本详情",
      fot:[".jpg",".jif","png"],
     // 数据范围选项
     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:[],
      fileListOther:[],
      fileListOther1:[],
      uploadFileList:[],
      uploadFileList1:[],
      dsb:true,
      btn:false,
      isShow:true,
      uploading: false,
      uploading1: false,
      // 个记事本表格数据
      noteList: [],
      formData: {
@@ -186,8 +238,9 @@
        address:undefined,
        title:undefined,
        remark:undefined,
        url: undefined,
        url: '',
      },
      desurl:'',
      dialogImageUrl: '',
      dialogVisible: false,
      disabled: false,
@@ -233,64 +286,115 @@
      this.btn= jd
      this.dsb = !jd
      this.isShow=true
      document.title = "修改个人记事本详细信息";
    //  document.title = "修改个人记事本详细信息";
      this.$route.meta.title = "修改个人记事本详细信息";//列表的名称
    }
    else{
      document.title = "个人记事本详细信息";
    //  document.title = "个人记事本详细信息";
      this.$route.meta.title = "个人记事本详细信息";//列表的名称
      this.isShow=false
      this.btn = false;
    }
    let _this = this
    if (id) {
      this.loading = true;
      getNote({id}).then((response) => {
      console.log(response.data , '6666666666')
        this.formData = response.data;
        let paths = response.data.url.split(",");
        let paths = this.formData.url.split(",");
        for(let i = 0; i < paths.length; i++)
        {
          if(paths[i]!="") {
            {
              if(paths[i]!="") {
            let pth = paths[i].substr(paths[i].length - 4, paths[i].length)
            if (_this.fot.includes(pth) === true)
              _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i]})
            else {
              // alert(paths[i])
              let nms = paths[i].split("\/")
              let nm = nms[nms.length - 1]
              _this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+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})
           //   }
          {
            if(paths[i].includes(process.env.VUE_APP_BASE_TRUE_API)){
              if(paths[i][0]=="/")
                    _this.fileList.push({name:paths[i],url: paths[i].substr(1),res:false})
              else
                 _this.fileList.push({name:paths[i],url: paths[i],res:false})
            }else{
              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})
           }
              }
        //  _this.fileList1 = _this.fileList
            }
        this.loading = false;
      });
      this.getCateInfor()
      // this.getCateInfor()
    }
  },
  mounted() {},
  methods: {
    /** 查询类别信息 */
    // getCateInfor()
    // {
    //   let _this = this
    //   getCategory().then(response=>{
    //
    //     response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{
    //       _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]})
    //     })
    //   })
    // },
    getData(){
      const id = this.$route.params && this.$route.params.id;
      let _this = this
      if (id) {
        this.loading = true;
        getNote({id}).then((response) => {
        // console.log(response.data , '6666666666')
          this.formData = response.data;
          let paths = this.formData.url.split(",");
          for(let i = 0; i < paths.length; i++)
              {
                if(paths[i]!="") {
                  let pth = paths[i].substr(paths[i].length - 4, paths[i].length)
                  if (_this.fot.includes(pth) === true){
                  console.log()
                  } else {
                    let nms = paths[i].split("\/")
                    let nm = nms[nms.length - 1]
                      if(paths[i][0]=="/")
                        _this.fileListOther1.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i].substr(1),res:false})
                      else
                        _this.fileListOther1.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i],res:false})
                  }
                }
              }
              _this.fileListOther = _this.fileListOther1
          this.loading = false;
        });
      }
    },
    submitForm() {
      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.formData.url = ul+","+uls
      // 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.formData.url = ul+","+uls
      this.$refs['elForm'].validate(valid => {
@@ -308,7 +412,7 @@
          }
        }
      })
      this.goBack()
     // this.goBack()
    },
    resetForm() {
      this.$refs['elForm'].resetFields()
@@ -327,24 +431,199 @@
      })
    },
    handleRemoveFile(file) {
      let res = false
      for(let i = 0; i < this.fileListOther.length; i++)
      {
        // if(this.fileListOther[i].url==file.url)
        //   this.$delete(this.fileListOther,i);
        // 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.formData.url = ul+","+uls;
        // updateNote(this.formData).then(response => {
        //   this.$modal.msgSuccess("删除成功");
        //   // this.open = false;
        //   // this.btn=false
        // });
        if(this.fileListOther[i].url==file.url)
          this.$delete(this.fileListOther,i);
        {
           if(this.fileListOther[i].res==false)
              res = true
           else
           {
              this.$delete(this.uploadFileList1, Math.abs(i - this.uploadFileList1.length-1))
           }
            this.$delete(this.fileListOther,i);
        }
      }
      let ul = ""
        this.fileList.map(function (elem){
              if(elem.res==false)
                 ul = ul + ","+elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
        })
        let uls = ""
        this.fileListOther.map(function (elem){
          if(elem.res==false)
                 uls = uls +","+elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
        })
        this.formData.url = ul+","+uls;
      //  alert(this.formData.url)
        if(res==true){
           updateNote(this.formData).then(response => {
            this.$modal.msgSuccess("删除成功");
            // this.open = false;
           });
        }
    },
    // handleRemove(file) {
    //   for(let i = 0; i < this.fileList.length; i++)
    //   {
    //     if(this.fileList[i].url==file.url)
    //       this.$delete(this.fileList,i);
    //     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.formData.url = ul+","+uls;
    //     updateNote(this.formData).then(response => {
    //       this.$modal.msgSuccess("删除成功");
    //       // this.open = false;
    //       // this.btn=false
    //     });
    //   }
    // },
    handleRemove(file) {
      for(let i = 0; i < this.fileList.length; i++)
      {
        if(this.fileList[i].url==file.url)
          this.$delete(this.fileList,i);
      }
      //判断是否是之前的图片
        let res = false
      //  alert(this.fileList.length)
        for(let i = 0; i < this.fileList.length; i++)
        {
          if(this.fileList[i].url==file.url)
         {
            //原来图像标记为false
            //alert(this.fileList[i].res)
           if(this.fileList[i].res==false)
            res = true
           else
           {
             this.$delete(this.uploadFileList, Math.abs(i - this.uploadFileList.length-1))
             }
            this.$delete(this.fileList,i);
        }
        }
        let ul = ""
        this.fileList.map(function (elem){
         if(elem.res==false)
            ul = ul + ","+elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
        })
        let uls = ""
        this.fileListOther.map(function (elem){
          if(elem.res==false)
            uls = uls +","+elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
        })
        this.formData.url = ul+","+uls;
        if(res==true){
           updateNote(this.formData).then(response => {
            this.$modal.msgSuccess("删除成功");
           });
        }
    },
    //自定义上传方法
        handleChange(file, fileList1) {
           //定义一个全局数组uploadFileList来做存储
         // this.uploadFileList.push(file.raw);
          console.log("=========5555=========")
         this.uploadFileList.push(file.raw);
          this.fileList.push({name:file.name,url:file.url,res:true})
        },
       //自定义上传方法
       handleChange1(file, fileListOther12) {
              //定义一个全局数组uploadFileList来做存储
            // this.uploadFileList.push(file.raw);
           this.uploadFileList1.push(file.raw);
            this.fileListOther.push({name:file.name,url:file.url,res:true})
             console.log("=========5555=========")
             //console.log(file)
           //  console.log(this.uploadFileList)
          //  this.fileList = fileList
       },
      fileUpload(){
      //   var file = params.file;
         var formData = new FormData();
         //this.$refs.upload1.submit();
      //   alert(this.uploadFileList1.length)
         // formData.append('uploadFile', file);
         if(this.uploadFileList1.length==0){
              this.$modal.msgSuccess("文档上传列表不能为空!");
              return}
         this.uploadFileList1.forEach((elem)=>{
            formData.append("files", elem)
         })
         console.log(this.uploadFileList1)
         let _this = this
         this.uploading = true;
         uploadPic(formData).then(response => {
         _this.uploadFileList1 = []
           _this.formData.url = _this.formData.url+","+response.fileNames
             updateNote(_this.formData).then(response => {
               this.$modal.msgSuccess("文档上传成功");
               // this.open = false;
              this.getData();
              this.fileListOther1=[]
             });
           })
        // this.getData();
      },
    picUpload(){
       var formData = new FormData();
    if(this.uploadFileList.length==0){
         this.$modal.msgSuccess("图像上传列表不能为空!");
         return}
       this.uploadFileList.forEach((elem)=>{
          formData.append("files", elem)
       })
       let _this = this
           uploadPic(formData).then(response => {
             // console.log(response)
             _this.formData.url = _this.formData.url+","+response.fileNames
       _this.uploadFileList = []
            // alert(87)
             updateNote(_this.formData).then(response => {
               _this.$modal.msgSuccess("图片上传成功");
             });
         });
         this.uploading = false;
    },
    handleFileCardPreview(file){
      this.dialogFileUrl = file.url;
      if(this.dialogFileUrl.includes("47.93.189.255")==true)
        this.dialogFileUrl = this.dialogFileUrl.replace("47.93.189.255","www.bendudu.com")
      const Base64 = require('js-base64').Base64
      this.desurl = process.env.VUE_APP_BASE_OTHER_API+'onlinePreview?url='+encodeURIComponent(Base64.encode(this.dialogFileUrl));
      myWindow=window.open(this.desurl,'','width=1200,height=800,top=150,left=300');
      this.desurl = process.env.VUE_APP_BASE_OTHER_API+"preview/"+'onlinePreview?url='+encodeURIComponent(Base64.encode(this.dialogFileUrl));
      let myWindow=window.open(this.desurl,'','width=1200,height=800,top=150,left=300');
    },
    handlePictureCardPreview(file) {
      this.dialogImageUrl = file.url;
@@ -371,41 +650,78 @@
    handleEdit()
    {
      this.dsb = false
      // this.btn = true
      this.btn = true
      this.isShow=false
    },
    requestUpload(params)
    {
      var file = params.file;
      var formData = new FormData();
      formData.append('uploadFile', file);
      let _this = this
      this.uploading = true;
      uploadPic(formData).then(response => {
        let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length)
        this.uploading = false;
        this.$modal.msgSuccess("上传成功");
        if(_this.fot.includes(pth) === true)
        {
          _this.fileList.push({name:response.data.fileName, "url":response.data.url})
    requestUpload(params){
      // var file = params.file;
      // var formData = new FormData();
      // formData.append('uploadFile', file);
      // let _this = this
      // this.uploading = true;
        }
      // uploadPic(formData).then(response => {
      //   let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length)
      //   this.uploading = false;
      //   if(_this.fot.includes(pth) === true)
      //   {
      //     _this.fileList.push({name:response.data.fileName, "url":response.data.url})
      //     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.formData.url = ul+","+uls
      //     console.log(this.formData.url)
      //     updateNote(this.formData).then(response => {
      //       this.$modal.msgSuccess("图片上传成功");
      //       // this.open = false;
      //       // this.btn=false
      //     });
      //   }
      //   else{
      //     _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
        else{
          _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
        }
      })
      //   }
      // })
    },
    requestUpload1(params)
    {
    //   var file = params.file;
    //   var formData = new FormData();
    //   formData.append('uploadFile', file);
    //   let _this = this
    //   this.uploading1 = true;
    //   uploadPic(formData).then(response => {
    //     let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length)
    //     this.uploading1 = false;
    //     // this.$modal.msgSuccess("上传成功");
    //     if(_this.fot.includes(pth) === true)
    //     {
    //       _this.fileList.push({name:response.data.fileName, "url":response.data.url})
    /** 导出按钮操作 */
    handleExport() {
      this.download('/zSelfNote/export', {
        ...this.queryParams
      }, `zSelfNote${new Date().getTime()}.xlsx`)
    }
    //     }
    //     else{
    //       _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
    //       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.formData.url = ul+","+uls
    //       console.log(this.formData.url)
    //       updateNote(this.formData).then(response => {
    //         this.$modal.msgSuccess("文档上传成功");
    //         // this.open = false;
    //         // this.btn=false
    //       });
    //     }
    //   })
    },
  }
}
@@ -430,4 +746,10 @@
  display: block;
  position: absolute;
}
.hide .el-upload--picture-card {
  display: none;
}
.form{
  background:center/11% no-repeat url('../../assets/icons/form.png') ;
}
</style>