feige
2024-02-20 8251d3ac36429c3522b589518b60cecbd1d3ec5b
ruoyi-ui/src/views/secret/secretInfo.vue
@@ -1,20 +1,33 @@
<template>
    <div class="app-container">
    <div class="app-container" id="printable-content">
      <div class="form-header mt">
        <h4 class="dt h4">隐私详细信息 </h4>
        <h1 style="font-size:21px;padding-top:30px;display: flex;justify-content: space-between;align-items: center;">
          <span>隐私详情</span>
          <div   style="display: flex; align-items: center;">
            <el-button size="mini" type="text"  @click="checkNote()" v-hasPermi="['person:information:memo']">
              <div class="form" ><el-icon  style="padding-right:110px;"></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>
            <el-button size="mini" type="text"  v-print="'#printable-content'" v-hasPermi="['person:information:memo']">
              <div class="form" ><el-icon  style="padding-right:110px;"></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>
      </div>
      <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="120px">
        <el-form-item label="发生时间" prop="happenTime">
          <el-input v-model="formData.happenTime" placeholder="请选择时间" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
          <el-input v-model="formData.happenTime" placeholder="请选择时间" type="date" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
        </el-form-item>
        <el-form-item label="类型" prop="type">
          <el-select v-model="formData.type" placeholder="请选择基金/台账" clearable :style="{width: '100%'}" :disabled="dsb" >
          </el-select>
        </el-form-item>
        <el-form-item label="有效期" prop="validityDate">
          <el-input v-model="formData.validityDate" placeholder="请选择时间" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
          <el-input v-model="formData.validityDate" placeholder="请选择时间" type="date" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
        </el-form-item>
        <el-form-item label="账号" prop="accNo">
          <el-input v-model="formData.accNo" placeholder="请输入用途" clearable :style="{width: '100%'}" :disabled="dsb">
@@ -25,15 +38,27 @@
          </el-input>
        </el-form-item>
        <el-form-item label="是否开启指纹" prop="isFinger">
          <el-input v-model="formData.isFinger" placeholder="请输入持有人" clearable :style="{width: '100%'}" :disabled="dsb">
    <el-select v-model="formData.isFinger" placeholder="请选择是/否" clearable :style="{width: '100%'}" :disabled="dsb" >
              <el-option v-for="(item, index) in typeOptions2" :key="index" :label="item.label" :value="item.value"
              ></el-option>
            </el-select>
          <!-- <el-input v-model="formData.isFinger" :active-value="是" :inactive-value="否" placeholder="请输入持有人" clearable :style="{width: '100%'}" :disabled="dsb"> -->
          </el-input>
        </el-form-item>
        <el-form-item label="是否开启人脸" prop="isFace">
          <el-input v-model="formData.isFace" placeholder="请选择现金/自动划扣" clearable :style="{width: '100%'}" :disabled="dsb">
            </el-input>
            <el-select v-model="formData.isFace" placeholder="请选择是/否" clearable :style="{width: '100%'}" :disabled="dsb" >
                      <el-option v-for="(item, index) in typeOptions2" :key="index" :label="item.label" :value="item.value"
                      ></el-option>
                    </el-select>
        </el-form-item>
        <el-form-item label="私有/公有" prop="isPrivate">
          <el-input v-model="formData.isPrivate" placeholder="请输入余额" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
          <el-select v-model="formData.isPrivate" placeholder="请选择是/否" clearable :style="{width: '100%'}" :disabled="dsb" >
                    <el-option v-for="(item, index) in typeOptions3" :key="index" :label="item.label" :value="item.value"
                    ></el-option>
                  </el-select>
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="formData.remark" placeholder="请输入备注" clearable :style="{width: '100%'}" :disabled="dsb"></el-input>
@@ -47,8 +72,11 @@
          multiple
          :http-request="requestUpload"
          :file-list="fileList"
          :disabled="!btn"
          :class="{ hide: !btn }"
        >
          <i slot="default" class="el-icon-plus"></i>
          <div v-if="uploading" class="upload-status">正在上传...</div>
          <i v-if="!uploading" slot="default" class="el-icon-plus"></i>
          <div slot="file" slot-scope="{file}">
            <img
              class="el-upload-list__item-thumbnail"
@@ -60,14 +88,14 @@
            >
            <span class="el-upload-list__item-actions">
          <span
            v-if="isShow"
            class="el-upload-list__item-preview"
            @click="handlePictureCardPreview(file)"
          >
            <i class="el-icon-zoom-in"></i>
          </span>
          <span
            v-if="isShow"
            class="el-upload-list__item-delete"
            @click="handleDownload(file.url)"
          >
@@ -97,44 +125,52 @@
              :on-remove="handleRemoveFile"
              :http-request="requestUpload"
              :show-file-list="true"
              :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 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="../../assets/401_images/401.gif"
               alt=""
               style="width: 147px; height: 147px"
               fit="cover">
                <i slot="default" class="el-icon-plus"></i>
                <div slot="file" slot-scope="{file}">
                  <img
                    class="el-upload-list__item-thumbnail"
                    src="../../assets/401_images/401.gif"
                    alt=""
                    style="width: 147px; height: 147px"
                    fit="cover"
                  >
                  <span class="el-upload-list__item-actions">
                  <span
                    v-if="isShow"
                    class="el-upload-list__item-preview"
                    @click="handleFileCardPreview(file)"
                  >
                    <i class="el-icon-zoom-in"></i>
                  </span>
                  <span
                    v-if="isShow"
                    @click="handleRemove(file)"
                    class="el-upload-list__item-delete"
          <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
                  >
                    <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>
                      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>
        </div>
            </el-upload>
@@ -146,7 +182,7 @@
      <el-dialog  :visible.sync="dialogVisible">
        <img w-full :src="dialogImageUrl" alt="Preview Image" />
        <img w-full :src="dialogImageUrl" style="width: 100%; height: 100%" alt="Preview Image" />
      </el-dialog>
    </div>
  </template>
@@ -164,7 +200,10 @@
      return {
        cdi:"隐私详细信息",
        udi:"隐私信息修改",
        fot:[".jpg",".jif"],
       // 数据范围选项
       fot:['.bmp','.jpg','.jpeg','.png','.tif','.gif','.pcx','.tga','.exif','.fpx',
         '.svg','.psd','.cdr','.pcd','.dxf','.ufo','.eps','.ai','.aw','.WMF','.webp','.apng'],
        fileList:[
        ],
        fileListOther:[
@@ -173,13 +212,13 @@
        dsb:true,
        btn:false,
        isShow:true,
        uploading: false,
        formData: {
          type: undefined,
          happenTime: undefined,
          accNo:undefined,
          validityDate:undefined,
          password:undefined,
          validityDate:undefined,
          isFinger:undefined,
          isFace:undefined,
          isPrivate:undefined,
@@ -233,6 +272,26 @@
          }],
        },
        typeOptions2: [
          {
            value: '否',
            label: '否',
          },
          {
            value: '是',
            label: '是',
          }
        ],
        typeOptions3: [
          {
            value: '私有',
            label: '私有',
          },
          {
            value: '公有',
            label: '公有',
          }
        ],
        typeOptions: [{
    value: '0',
    label: '基金',
@@ -254,13 +313,14 @@
        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
@@ -268,6 +328,18 @@
        this.loading = true;
        getSecretInfo({id}).then((response) => {
          this.formData = response.data;
          if(this.formData.isFinger==1)
            this.formData.isFinger = '是'
          else
          this.formData.isFinger = '否'
     if(this.formData.isFace==1)
            this.formData.isFace = '是'
          else
          this.formData.isFace = '否'
          if(this.formData.isPrivate==0)
                 this.formData.isPrivate = '公有'
               else
               this.formData.isPrivate = '私有'
          let paths = response.data.url.split(",");
          for(let i = 0; i < paths.length; i++)
          {
@@ -318,7 +390,18 @@
          return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
         }).join(",")
          this.formData.url = ul+","+uls
if(this.formData.isFinger=='是')
            this.formData.isFinger = 1
          else
          this.formData.isFinger = 0
     if(this.formData.isFace=='是')
            this.formData.isFace = 1
          else
          this.formData.isFace = 0
          if(this.formData.isPrivate== '公有')
                 this.formData.isPrivate =0
               else
               this.formData.isPrivate = 1
        this.$refs['elForm'].validate(valid => {
@@ -326,10 +409,34 @@
            if (this.formData.id != undefined) {
              updateSecret(this.formData).then(response => {
                this.$modal.msgSuccess("修改成功");
                if(this.formData.isFinger==1)
                       this.formData.isFinger = '是'
                     else
                     this.formData.isFinger = '否'
                if(this.formData.isFace==1)
                       this.formData.isFace = '是'
                     else
                     this.formData.isFace = '否'
                     if(this.formData.isPrivate==0)
                            this.formData.isPrivate = '公有'
                          else
                          this.formData.isPrivate = '私有'
                // this.open = false;
                this.btn=false
              });
            } else {
              if(this.formData.isFinger==1)
                     this.formData.isFinger = '是'
                   else
                   this.formData.isFinger = '否'
              if(this.formData.isFace==1)
                     this.formData.isFace = '是'
                   else
                   this.formData.isFace = '否'
                   if(this.formData.isPrivate==0)
                          this.formData.isPrivate = '公有'
                        else
                        this.formData.isPrivate = '私有'
              this.$modal.msgSuccess("修改失败");
            }
@@ -368,9 +475,16 @@
      },
      handleFileCardPreview(file){
        this.dialogFileUrl = file.url;
        // alert(file.url)
        // this.dialogFileUrl = 'https://www.bendudu.com:8080/profile/upload/2023/10/18/20231018214647A011.doc'
        // this.dialogFileUrl = 'https://47.93.189.255:8080/profile/upload/2023/03/19/test7_20230319222030A007.jpg'
        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+'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;
@@ -401,10 +515,11 @@
        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})
@@ -415,6 +530,20 @@
            _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)
        //  alert(87)
          updateSecret(_this.formData).then(response => {
            this.$modal.msgSuccess("图片上传成功");
            // this.open = false;
          });
        })
      },
@@ -424,13 +553,20 @@
        this.download('/zfEconomy/export', {
          ...this.queryParams
        }, `zfEconomy_${new Date().getTime()}.xlsx`)
      }
      },
      // 查看备忘本
      checkNote(row){
        // const id =row.id;
        const id = this.$route.params && this.$route.params.id;
        // const fid =2031
        this.$router.push("/self/secret/memo/" + id);
      },
    }
  }
  </script>
  <style scoped lang="scss">
  <style scoped>
  .mt
  {
    position: relative;
@@ -445,4 +581,10 @@
    display: block;
    position: absolute;
  }
  .hide /deep/ .el-upload--picture-card {
    display: none;
  }
  .form{
    background:center/11% no-repeat url('../../assets/icons/form.png') ;
  }
  </style>