yz3456
2024-04-20 610444214e4440749056574f8a198fb46c70d426
修改完成家庭资产备忘录添加图片和附件
3个文件已修改
434 ■■■■■ 已修改文件
ruoyi-ui/src/api/allmemo/index.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/note/memo.vue 422 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/pet/noteInfo.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/allmemo/index.js
@@ -63,3 +63,13 @@
    data: data
  })
}
//下载文件
export function download(data) {
  return request({
    url: '/common/downLoadFile',
    method: 'get',
    params: data,
    responseType: 'blob'
  })
}
ruoyi-ui/src/views/note/memo.vue
@@ -29,6 +29,9 @@
            @click="handleDelete(scope.row)"
            v-hasPermi="['system:role:remove']"
          > <sapn v-html="'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'"></sapn></el-button>
          <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['familymodel:property:info']">
            <el-button size="mini" type="text" icon="el-icon-d-arrow-right"  @click="handleCheck(scope.row)">查看详情</el-button>
          </el-dropdown>
        </template>
      </el-table-column>
    </el-table>
@@ -92,7 +95,7 @@
        <span
          v-if="!disabled"
          class="el-upload-list__item-delete"
          @click="handleRemove(file)"
          @click="handleRemove2(file)"
        >
          <i class="el-icon-delete"></i>
        </span>
@@ -112,8 +115,7 @@
          :file-list="fileListOther"
          class="upload-demo"
          multiple
          :on-remove="handleRemoveFile"
          :on-remove="handleRemoveFile2"
          :show-file-list="true"
          ref="upload1"
          :on-change="handleChange1"
@@ -121,11 +123,54 @@
          list-type="picture-card"
            :http-request="requestUpload1"
        >
          <el-button type="primary">点击上传</el-button>
          <!-- <el-button type="primary">点击上传</el-button> -->
          <template #tip>
            <div class="el-upload__tip">
            </div>
          </template>
          <i v-if="true" slot="default" class="el-icon-plus"></i>
          <div slot="file" slot-scope="{file}">
            <!-- 添加video元素用于显示视频 -->
            <video
              v-if="file.url.includes('.mp4')"
              class="el-upload-list__item-thumbnail"
              :src="file.url"
              style="width: 147px; height: 147px"
              fit="cover"
            ></video>
            <img v-else
                 class="el-upload-list__item-thumbnail"
                 :src="file.url"
                 alt=""
                 style="width: 100%; height: 100%"
                 fit="cover">
            <span class="el-upload-list__item-actions">
                 <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-delete"
                        @click="handleDownload(file.url)"
                      >
                   <i class="el-icon-download"></i>
                   </span>
                      <span
                        class="el-upload-list__item-delete"
                        @click="handleRemoveFile2(file)"
                      >
                        <i class="el-icon-delete"></i>
                      </span>
                </span>
          </div>
        </el-upload>
<el-button
@@ -144,11 +189,147 @@
        <el-button type="primary" @click="submitDataScope6">保 存</el-button>
        <el-button @click="cancelData">取 消</el-button>
      </div>
    </el-dialog>
    <!-- 查看详情弹窗 -->
    <el-dialog title="详情" :visible.sync="open2" 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"
            disabled
                ></el-date-picker>
              </el-form-item>
              <el-form-item label="内容" prop="content">
                <el-input v-model="formDat.content" placeholder="请输入内容" clearable :style="{width: '100%'}" disabled>
                </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"
            disabled
            :auto-upload="false"
              ref="upload"
              :class="{ hide: no }"
              >
              <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
              class="el-upload-list__item-delete"
              @click="handleDownload(file.url)"
            >
              <i class="el-icon-download"></i>
            </span>
          </span>
              </div>
            </el-upload>
            <h4 class="form-header">其他附件 </h4>
    <el-upload
              action=""
              :file-list="fileListOther"
              class="upload-demo"
              multiple
              disabled
              :on-remove="handleRemoveFile2"
              :show-file-list="true"
              ref="upload1"
              :on-change="handleChange1"
              :auto-upload="false"
              list-type="picture-card"
                :http-request="requestUpload1"
            :class="{ hide: no }"
            >
            <div slot="file" slot-scope="{file}">
              <!-- 添加video元素用于显示视频 -->
              <video
                v-if="file.url.includes('.mp4')"
                class="el-upload-list__item-thumbnail"
                :src="file.url"
                style="width: 147px; height: 147px"
                fit="cover"
              ></video>
              <img v-else
                   class="el-upload-list__item-thumbnail"
                   :src="file.url"
                   alt=""
                   style="width: 100%; height: 100%"
                   fit="cover">
              <span class="el-upload-list__item-actions">
                   <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-delete"
                          @click="handleDownload(file.url)"
                        >
                     <i class="el-icon-download"></i>
                     </span>
                  </span>
            </div>
            </el-upload>
            </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>
    <el-dialog  :visible.sync="dialogVisible">
      <img w-full :src="dialogImageUrl"    style="width: 100%; height: 100%" alt="Preview Image" />
    </el-dialog>
  </div>
@@ -161,8 +342,9 @@
//在system/note/index.js中导入接口函数  --接好了
import {addNote,listNote,updateNote,delNote, uploadPic} from "@/api/allmemo/index";
import {addNote,listNote,updateNote,delNote, uploadPic,download} from "@/api/allmemo/index";
import { TimeSelect } from "element-ui";
import {blobValidate} from "@/utils/ruoyi";
import {addAutobiography, updateAutobiography} from "@/api/self";
export default {
@@ -170,13 +352,21 @@
  dicts: ['sys_normal_disable'],
  data() {
    return {
      // dialogImageUrl: '',
      // dialogVisible: false,
      no:true,
      dialogImageUrl: '',
      dialogVisible: false,
      isEdit1:false,
      // 遮罩层
      disabled: false,
      loading: true,
      formData:[],
      formData:{
        id:undefined,
        content: undefined,
        happenTime: undefined,
        fid:2007,
        cid:undefined,
        url:''
      },
      // 选中数组
      ids: [],
      id:undefined,
@@ -200,6 +390,7 @@
      title: "",
      // 是否显示弹出层
      open: false,
      open2: false,
      // 是否显示弹出层(数据权限)
      openDataScope: false,
      menuExpand: false,
@@ -313,6 +504,17 @@
          })
    },
    // 查看文件
    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")
      //alert(this.dialogFileUrl)
      const Base64 = require('js-base64').Base64
      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');
    },
    picUpload()
    {
      // alert('1321321')
@@ -329,19 +531,30 @@
      this.formDat.cid = parseInt(cid) ;
        let _this = this
        uploadPic(formData).then(response => {
    if(this.isEdit1){
      uploadPic(formData).then(response => {
          _this.formDat.url = _this.formDat.url+","+response.fileNames
      alert(_this.formDat.url)
          _this.uploadFileList = []
      // alert(_this.formDat.url)
        _this.uploadFileList = []
        console.log(_this.formDat)
        updateNote(_this.formDat).then(response => {
          alert(984)
          _this.$modal.msgSuccess("图片上传成功");
          alert('修改')
        _this.$modal.msgSuccess("图片上传成功");
        })
      });
    }else{
      uploadPic(formData).then(response => {
          _this.formDat.url = _this.formDat.url+","+response.fileNames
      // alert('新增')
      // alert(_this.formDat.url)
        _this.uploadFileList = []
        _this.$modal.msgSuccess("图片上传成功");
      });
    }
            console.log(this.formDat,'formDatformDatformDatformDat')
    },
@@ -425,7 +638,6 @@
      this.open = true;
      //console.log(this.formDat)
      let paths = this.formDat.url.split(",");
      //      alert( this.formDat.url)
      let _this = this
      _this.fileList = []
      _this.fileListOther = []
@@ -443,8 +655,6 @@
                 _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]=="/")
@@ -460,6 +670,7 @@
    // 取消按钮
    cancelData() {
      this.open = false;
      this.open2=false;
      this.reset();
    },
@@ -484,27 +695,140 @@
      listNote(cid, 2007).then(response => {
          this.memoList = response.data;
          console.log(response,'11111111111111111111111')
          // console.log(response,'formDataformDataformDataformDataformData')
          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++)
handleRemove(file) {
      for(let i = 0; i < this.fileList.length; i++)
      {
        if(this.fileList[i].url==file.url)
        {
          if(this.fileList[i].url==file.url)
          {
            this.$delete(this.fileList,i);
                 this.$delete(this.uploadFileList,i);
                 }
          this.$delete(this.fileList,i);
               this.$delete(this.uploadFileList,i);
               }
              //alert(this.formData.url)
      }
    },
    handleRemoveFile2(file) {
      this.formData=this.formDat
      //判读是否是之前的图片
      let res = false
        for(let i = 0; i < this.fileListOther.length; i++)
        {
          if(this.fileListOther[i].url==file.url)
        {
            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;
          });
      }
      },
    handleRemove2(file) {
      this.formData=this.formDat
              //判断是否是之前的图片
      let res = false
      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;
    console.log(this.fileList,'fileListfileListfileListfileListfileListfileList')
    console.log(this.fileListOther,'uploadFileListuploadFileListuploadFileListuploadFileList')
    console.log(this.formData,'formDataformDataformDataformDataformDataformDataformData222222222')
      if(res==true){
          updateNote(this.formData).then(response => {
            this.$modal.msgSuccess("删除成功");
          });
      }
    },
      handleCheck(row){
      const id = row.id;
      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.open2 = true;
      //console.log(this.formDat)
      let paths = this.formDat.url.split(",");
      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 {
              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})
            }
          }
      }
      },
    handleRemoveFile(file) {
      for(let i = 0; i < this.fileListOther.length; i++)
@@ -542,6 +866,10 @@
      if (this.$refs.menu != undefined) {
        this.$refs.menu.setCheckedKeys([]);
      }
      // this.fileList = [],
      // this.fileListOther = [],
      // this.formDat.happenTime=undefined,
      // this.formDat.content=undefined,
      this.menuExpand = false,
        this.menuNodeAll = false,
        this.deptExpand = true,
@@ -580,9 +908,36 @@
      this.single = selection.length!=1
      this.multiple = !selection.length
    },
    // 下载按钮
    handleDownload(url) {
      var formData = {'path':"/"+url.replace(process.env.VUE_APP_BASE_TRUE_API,"")};
      let lens = formData.path.split(".")
      let suffix = lens[lens.length-1]
      download(formData).then(async (response) => {
        const isLogin = await blobValidate(response);
        let nt = new Date().getTime()
        let filename = 'familyevent_'+nt+'.'+suffix
        const blob = new Blob([response])
        saveAs(blob, filename)
      })
    },
    /** 新增按钮操作 */
    handleAdd() {
      for(let i=0;i<2;i++){
        //清空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.reset();
      this.isEdit1=false;
      this.open = true;
@@ -722,6 +1077,9 @@
  background: #FFEFF2;
}
.hide .el-upload--picture-card{
  display:none;   /* 上传按钮隐藏 */
}
.button1 {
  background:center no-repeat url('../../assets/icons/add1.png') ;
ruoyi-ui/src/views/pet/noteInfo.vue
@@ -197,7 +197,6 @@
      isShow:true,
      uploading: false,
      formData: {
        type: undefined,
        title: undefined,
        location: undefined,
@@ -469,6 +468,7 @@
             uls = uls +","+elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
       })
       this.formData.url = ul+","+uls;
       console.log(this.formData,'formDataformDataformDataformDataformDataformDataformData')
       if(res==true){
           updatenotePet(this.formData).then(response => {
             this.$modal.msgSuccess("删除成功");