yz3456
2024-05-18 87e28c4bc7fe04eb14629482e97541d183c1d067
ruoyi-ui/src/views/secret/index.vue
@@ -5,7 +5,10 @@
        <el-form-item label="时间" prop="happenTime">
          <el-date-picker
            v-model="dateRange"
            style="width: 240px;"
            style="width: 240px;
                   height: 35px;
                   border-radius: 16px 16px 16px 16px;
                   opacity: 0.5;"
            value-format="yyyy-MM-dd"
            type="daterange"
            range-separator="-"
@@ -13,20 +16,47 @@
            end-placeholder="结束日期"
          ></el-date-picker>
        </el-form-item>
        <el-form-item label="类别" prop="type">
          <el-input
       <!--   <el-input
            v-model="queryParams.type"
            placeholder="请输入类别"
            clearable
            style="width: 240px"
            style="width: 200px;
                   height: 35px;
                   border-radius: 16px 16px 16px 16px;
                   opacity: 0.5;"
            @keyup.enter.native="handleQuery"
          />
        -->
        <el-select v-model="queryParams.type" placeholder="请选择类别" clearable
          style="width: 200px;
                   height: 35px;
                   border-radius: 16px 16px 16px 16px;
                   opacity: 0.5;" allow-create
        filterable clearable :style="{width: '100%'}"  >
          <el-option v-for="(item, index) in typeOpt" :key="index" :label="item.label" :value="item.value"
          ></el-option>
        </el-select>
        </el-form-item>
        <el-form-item label="账号" prop="accNo">
          <el-input
            v-model="queryParams.accNo"
            placeholder="请输入账号"
            clearable
            style="width: 200px;
                   height: 35px;
                   border-radius: 16px 16px 16px 16px;
                   opacity: 0.5;"
            @keyup.enter.native="handleQuery"
          />
        </el-form-item>
        <el-form-item label="期限" prop="timeLimit">
          <el-input
            v-model="queryParams.timeLimit"
            placeholder="请输入期限"
            clearable
            style="width: 240px"
            @keyup.enter.native="handleQuery"
@@ -81,7 +111,7 @@
            v-hasPermi="['family:note:export']"
          >导入模板下载</el-button>
        </el-col>
        <el-col :span="1.2">
        <el-col :span="1.5">
          <el-upload
            action=""
            class="upload-demo"
@@ -90,7 +120,7 @@
          >
            <el-button size="mini"   type="primary"
                       plain
                       icon="el-icon-plus" >导入</el-button>
                       icon="el-icon-top" >导入</el-button>
          </el-upload>
        </el-col>
@@ -98,15 +128,15 @@
      </el-row>
      <el-table v-loading="loading" :data="secretList"  :row-key="getRowId" ref="multipleTable" @selection-change="handleSelectionChange" @row-click="handleCheck" :row-class-name="tableRowClassName" style="background: #FFEFF2;  border-radius: 14px 14px 14px 14px;">
      <el-table v-loading="loading" :data="secretList"  :row-key="getRowId" ref="multipleTable" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" style="background: #FFEFF2;  border-radius: 14px 14px 14px 14px;">
        <el-table-column type="selection"  :reserve-selection="true" width="55"  align="center" />
        <el-table-column  label="序号" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="120"/>
        <el-table-column label="发生时间" prop="happenTime" sortable width="100" align="center">
        <el-table-column fixed label="序号" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="80"/>
        <el-table-column label="发生时间" prop="happenTime" sortable width="150" align="center">
          <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: '————'}}</template>
        </el-table-column>
        <el-table-column label="类别" prop="type" sortable width="100" />
        <el-table-column label="账号" prop="accNo" sortable width="100" />
        <el-table-column label="有效期" prop="validityDate" sortable width="100" align="center">
        <el-table-column label="有效期" prop="validityDate" sortable width="150" align="center">
          <template slot-scope="scope">{{scope.row.validityDate? scope.row.validityDate: '————'}}</template>
        </el-table-column>
        <el-table-column label="密码" prop="password" sortable width="100" />
@@ -117,7 +147,7 @@
            <template slot-scope="scope">{{scope.row.isFace===1 ?'是': '否'}}</template>
        </el-table-column>
        <el-table-column label="私有/公有" prop="isPrivate" sortable width="100" >
          <template slot-scope="scope">{{scope.row.isFace===1 ?'私有': '公有'}}</template>
          <template slot-scope="scope">{{scope.row.isPrivate===1 ?'私有': '公有'}}</template>
        </el-table-column>
        <el-table-column label="存放位置" prop="location" sortable width="100" >
          <template slot-scope="scope">{{scope.row.location? scope.row.location: '————'}}</template>
@@ -148,8 +178,9 @@
          </template>
        </el-table-column>
        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <el-table-column label="操作" align="center" width="250" class-name="small-padding fixed-width">
          <template slot-scope="scope" v-if="scope.row.roleId !== 1">
            <div class="button-container">
            <el-button
              size="mini"
              type="text"
@@ -168,6 +199,7 @@
              <el-button size="mini" type="text" icon="el-icon-d-arrow-right"  @click="handleCheck(scope.row)">查看详情</el-button>
            </el-dropdown>
            </div>
          </template>
        </el-table-column>
      </el-table>
@@ -186,15 +218,19 @@
      <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
        <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px">
          <el-form-item label="时间" prop="happenTime">
            <el-input
              v-model='formDat.happenTime'
              type='date'
              placeholder='选择日期'
            ></el-input>
          <el-form-item label="发生时间" prop="happenTime">
            <el-date-picker v-model="formDat.happenTime" type="date" placeholder="请选择日期"
                            :editable="false" :clearable="false" :style="{width: '100%'}"  value-format="yyyy-MM-dd"
            ></el-date-picker>
          </el-form-item>
            <el-form-item label="类别" prop="type">
            <el-input v-model="formDat.type" placeholder="请输入类别" clearable :style="{width: '100%'}" ></el-input>
         <el-select v-model="formDat.type" placeholder="请输入类别"  allow-create
          filterable clearable :style="{width: '100%'}"  >
           <el-option v-for="(item, index) in typeOpt" :key="index" :label="item.label" :value="item.value"
           ></el-option>
         </el-select>
          </el-form-item>
          <el-form-item label="账号" prop="accNo">
            <el-input v-model="formDat.accNo" placeholder="请输入账号" clearable :style="{width: '100%'}" ></el-input>
@@ -244,11 +280,13 @@
            action="#"
            list-type="picture-card"
            multiple
            :http-request="requestUpload"
            :file-list="fileList"
          :http-request="requestUpload"
          :file-list="fileList"
          :on-change="handleChange"
          :auto-upload="false"
             ref="upload"
          >
            <div v-if="uploading" class="upload-status">正在上传...</div>
            <i v-if="!uploading" slot="default" class="el-icon-plus"></i>
            <i  slot="default" class="el-icon-plus"></i>
            <div slot="file" slot-scope="{file}">
              <img
                class="el-upload-list__item-thumbnail"
@@ -278,6 +316,13 @@
            </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=""
@@ -285,16 +330,60 @@
            class="upload-demo"
            multiple
            :on-remove="handleRemoveFile"
            :http-request="requestUpload"
            :show-file-list="true"
         ref="upload1"
         :on-change="handleChange1"
         :auto-upload="false"
         list-type="picture-card"
           :http-request="requestUpload1"
           :show-file-list="true"
          >
            <el-button type="primary">上传</el-button>
            <template #tip>
              <div class="el-upload__tip">
              </div>
            </template>
          </el-upload>
          <i 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/images/deviceLis.png"
                         alt=""
                         style="width: 100%; height: 100%"
                         fit="cover"></img>
                    <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="handleRemoveFile(file)"
                              >
                                <i class="el-icon-delete"></i>
                              </span>
                        </span>
                  </div>
                </el-upload>
              <el-button
                          style="margin-left: 10px"
                          size="small"
                          type="success"
                          @click="fileUpload"
                        >上传到服务器</el-button>
        </el-form>
        <h4 class="form-header"> </h4>
@@ -320,7 +409,7 @@
  //在system/note/index.js中导入接口函数  --接好了
  import {listSecret,enload,delSecret, addSecret, uploadPic} from "@/api/secret/index";
  import {listSecret,enload,delSecret, addSecret, uploadPic,getCategory} from "@/api/secret/index";
  export default {
    name: "Role",
@@ -356,12 +445,16 @@
        // 日期范围
        dateRange: [],
        // 数据范围选项
        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:[
        ],
        fileList1:[],
        uploadFileList: [],
        uploadFileList1: [],
        fileListOther:[],
        dsb:true,
        btn:false,
        uploading: false,
@@ -376,7 +469,7 @@
          isPrivate:undefined,
          location:undefined,
          remark: undefined,
          url: undefined,
          url: "",
        },
        // 菜单列表
        menuOptions: [],
@@ -389,7 +482,7 @@
          type:undefined,
          accNo:undefined,
          happenTime:undefined,
          useFor:undefined,
          timeLimit:undefined,
        },
        // 表单参数
@@ -465,16 +558,36 @@
            value: '1',
            label: '私有',
          }
        ],
      typeOpt: [
        ]
      };
    },
    created() {
      this.getList();
      this.getCateInfor()
      this.getCateInfo();
    },
    methods: {
      getCateInfo()
      {
         let _this = this
           _this.typeOpt = []
           getCategory().then(response=>{
             console.log(response.data)
         //   alert(9801)
             response.data.map(elem=>{
               _this.typeOpt.push({"label":elem, "value":elem})
             })
             // response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{
             //   _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]})
             // })
           })
      },
      //基金/台账的选择
      getSrc1(type) {
        if (type === 0) {
@@ -531,14 +644,20 @@
        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);
                }
        }
      },
@@ -577,13 +696,14 @@
            deptCheckStrictly: true,
            remark: undefined
          };
        this.resetForm("form");
        this.resetForm("elForm");
      },
      /** 搜索按钮操作 */
      handleQuery() {
        this.queryParams.pageNum = 1;
        this.getList();
      },
      /** 重置按钮操作 */
      resetQuery() {
        this.dateRange = [];
@@ -632,13 +752,13 @@
      /** 提交按钮(数据权限) */
      submitDataScope: function() {
        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.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.formDat.url = ul+","+uls
        this.$refs["elForm"].validate(valid => {
          if (valid) {
@@ -661,30 +781,89 @@
          this.handleRemoveFile(this.fileListOther[0]);
        }
      },
      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)
         handleChange(file, fileList1) {
            //定义一个全局数组uploadFileList来做存储
          // this.uploadFileList.push(file.raw);
           console.log("=========5555=========")
           console.log(file)
         //  console.log(this.uploadFileList)
         //  this.fileList = fileList
         //alert(file)
             this.uploadFileList.push(file.raw);
              this.fileList.push({name:file.name,url:file.url})
         //alert(fileList1.length)
         },
         handleChange1(file, fileOtherList1) {
            //定义一个全局数组uploadFileList来做存储
         this.uploadFileList1.push(file.raw);
          this.fileListOther.push({name:file.name,url:file.url})
          // this.uploadFileList.push(file.raw);
           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();
            // 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()
         {
            var formData = new FormData();
            //alert(976)
            //this.$refs.upload.submit();
            //alert(8)
            //alert(this.uploadFileList.length)
         if(this.uploadFileList.length==0){
              this.$modal.msgSuccess("图片上传列表不能为空!");
              return}
         //console.log(this.uploadFileList)
            this.uploadFileList.forEach((elem)=>{
               formData.append("files", elem)
            })
            //alert(90)
            let _this = this
            //alert(9)
             uploadPic(formData).then(response => {
            //   alert("dds")
               _this.formDat.url = _this.formDat.url+","+response.fileNames
              _this.uploadFileList = []
              _this.$modal.msgSuccess("图片上传成功");
           });
         },
          requestUpload(params) {
      //alert(98)
       //    this.uploadFileList.push(params.file);
          },
          requestUpload1(params)
          {
            _this.fileList.push({name:response.data.fileName, "url":response.data.url})
          }
          else{
            _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
          }
        })
      },
            //     this.uploadFileList1.push(params.file);
          },
      /** 删除按钮操作 */
      handleDelete(row) {
        const Ids = row.id || this.ids;
@@ -722,8 +901,10 @@
      var formData = new FormData();
      formData.append('excelImport', file);
      let _this = this
      alert(file)
      console.log(formData,'2132132123123123121')
      // alert(file)
      enload(formData).then(response => {
        _this.getList();
        Message({ message: "导入成功", type: 'warning' })
@@ -747,4 +928,10 @@
    background: #FFEFF2;
  }
  .el-table__cell {
    font-size: 14px; /* 设置字体大小 */
  }
  .button-container {
    display: inline-flex; /* 设置按钮容器为行内元素 */
  }
  </style>