dedsudiyu 1 rok pred
rodič
commit
055659ba1f

+ 2 - 0
src/assets/styles/color.sass

@@ -92,3 +92,5 @@ $subMenuBg:#1f2d3d
 $subMenuHover:#001528
 
 $sideBarWidth: 200px
+
+//$acquiesceColorA:

+ 0 - 1
src/assets/styles/commonality.scss

@@ -147,7 +147,6 @@
 }
 .el-table__body-wrapper::-webkit-scrollbar-thumb{
   border-radius: 5px;
-  //background: #CBCDD1;
   background: #CBCDD1;
 }
 .el-table__body-wrapper::-webkit-scrollbar-track{

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 461 - 0
src/components/lookDocumentDialog/components/informDom.vue


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 421 - 0
src/components/lookDocumentDialog/components/noticeDom.vue


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 359 - 0
src/components/lookDocumentDialog/components/rectificationReportDom.vue


+ 179 - 0
src/components/lookDocumentDialog/lookDocumentDataDialog.vue

@@ -0,0 +1,179 @@
+<!--
+    查看单个文档
+    <lookDocumentDataDialog v-if="lookDocumentType" :propsLookDocumentData="propsLookDocumentData"></lookDocumentDataDialog>
+
+    import lookDocumentDataDialog from '@/components/lookDocumentDialog/lookDocumentDataDialog.vue'
+
+    components: {
+      lookDocumentDataDialog
+    },
+
+    data(){
+      return{
+        //子组件数据
+        lookDocumentType:false,
+        propsLookDocumentData:{},
+      }
+    }
+
+    //查看单个文档
+    lookDocumentButton(type,row){
+      if(type==1){
+        this.$set(this,'propsLookDocumentData',{
+          title:"整改报告",
+          type:1,
+          id:row.id,
+          name:row.title
+        });
+        this.$set(this,'lookDocumentType',true);
+      }else{
+        this.$set(this,'lookDocumentType',false);
+      }
+    },
+-->
+<template>
+  <el-dialog class="lookDocumentDataDialog" :title="lookDocumentTitle"
+             :class="fullScreenType?'lookDocumentDataDialog-fullScreen':''"
+             :visible.sync="lookDocumentType" v-if="lookDocumentType"
+             @close="outLook"
+             width="834px" height="645px" append-to-body>
+    <div class="lookDocumentDataDialog-page scrollbar-box">
+      <rectificationReportDom v-if="documentType == 1" :propsRectificationReportData="propsRectificationReportData"></rectificationReportDom>
+      <noticeDom v-if="documentType == 2" :propsNoticeDomData="propsNoticeDomData"></noticeDom>
+      <informDom v-if="documentType == 3" :propsInformDomData="propsInformDomData"></informDom>
+    </div>
+    <p class="positionButton" @click="fullScreenButton">{{fullScreenType?'退出':'全屏'}}</p>
+    <div slot="footer" class="dialog-footer dialog-footer-box" style="display: flex">
+      <p class="dialog-footer-button-null"></p>
+      <p class="dialog-footer-button-info" @click="outLook">取消</p>
+      <p class="dialog-footer-button-primary" @click="downloadButton">下载</p>
+      <p class="dialog-footer-button-null"></p>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+  import rectificationReportDom from './components/rectificationReportDom.vue'
+  import noticeDom from './components/noticeDom.vue'
+  import informDom from './components/informDom.vue'
+  export default {
+    name: 'lookDocumentDataDialog',
+    props:{
+      propsLookDocumentData:{},
+    },
+    components: {
+      rectificationReportDom,
+      noticeDom,
+      informDom
+    },
+    data(){
+      return{
+        //全屏状态
+        fullScreenType:false,
+        lookDocumentType:true,
+        lookDocumentTitle:"",
+        lookDocumentSrc:"",
+        documentType:null,//1.整改报告 2.通知书 3.告知书,
+        //整改报告
+        propsRectificationReportData:{},
+        //通知书
+        propsNoticeDomData:{},
+        //告知书
+        propsInformDomData:{},
+      }
+    },
+    created(){
+      this.$set(this,'lookDocumentTitle',this.propsLookDocumentData.title);
+      if(this.propsLookDocumentData.type == 1){
+        this.$set(this.propsRectificationReportData,'id',this.propsLookDocumentData.id)
+        this.$set(this,'documentType',1)
+      }else if(this.propsLookDocumentData.type == 2){
+        this.$set(this.propsNoticeDomData,'id',this.propsLookDocumentData.id)
+        this.$set(this,'documentType',2)
+      }else if(this.propsLookDocumentData.type == 3){
+        this.$set(this.propsInformDomData,'id',this.propsLookDocumentData.id)
+        this.$set(this,'documentType',3)
+      }
+    },
+    mounted(){
+
+    },
+    methods:{
+      // 返回按钮
+      outLook(){
+        this.$parent.lookDocumentButton(2)
+      },
+      // 下载按钮
+      downloadButton(){
+        if(this.documentType == 1){
+          this.download('/zd-security/checkRectify/genReport/'+this.propsLookDocumentData.id, {}, this.propsLookDocumentData.name+'(整改报告).docx')
+        }else if(this.documentType == 2){
+          this.download('/zd-security/checkManage/getRectifyAdviceNote/'+this.propsLookDocumentData.id, {}, this.propsLookDocumentData.name+'(整改通知书).docx')
+        }else if(this.documentType == 3){
+          this.download('/zd-security/checkManage/getRectifyNotification/'+this.propsLookDocumentData.id, {}, this.propsLookDocumentData.name+'(整改告知书).docx')
+        }
+      },
+      fullScreenButton(){
+        this.fullScreenType = !this.fullScreenType
+      },
+      //打开新窗口
+      goPage(){
+        window.open(this.lookDocumentSrc)
+      },
+    }
+  }
+</script>
+
+<style scoped lang="scss">
+  .lookDocumentDataDialog{
+    .lookDocumentDataDialog-page{
+      display: flex;
+      flex-direction: column;
+      flex:1;
+      height:645px;
+      position: relative;
+    }
+    .positionButton{
+      position: absolute;
+      top:15px;
+      right: 15px;
+      border:1px solid #0183fa;
+      border-radius:4px;
+      line-height:30px;
+      width:60px;
+      text-align: center;
+      cursor: pointer;
+      color:#0183fa;
+      background-color: #fff;
+    }
+    .positionButton:hover{
+      background-color:#0183fa;
+      color:#fff;
+    }
+  }
+  .lookDocumentDataDialog-fullScreen{
+    background-color: #666;
+    .positionButton{
+      top:25px;
+      right: 15px;
+    }
+    ::v-deep .el-dialog{
+      width:100% !important;
+      height:100% !important;
+      box-shadow: none;
+    }
+    ::v-deep .el-dialog__header{
+      display: none;
+    }
+    ::v-deep .el-dialog__body{
+      height:100% !important;
+      background-color: #666;
+      .lookDocumentDataDialog-page{
+        height:100%;
+      }
+    }
+    ::v-deep .el-dialog__footer{
+      display: none;
+    }
+  }
+</style>

+ 111 - 0
src/components/lookDocumentDialog/lookDocumentDialog.vue

@@ -0,0 +1,111 @@
+<!--
+    查看单个文档
+
+    import lookDocumentDialog from '@/components/lookDocumentDialog/lookDocumentDialog.vue'
+
+    components: {
+      lookDocumentDialog
+    },
+
+    <lookDocumentDialog v-if="lookDocumentType" :propsLookDocumentData="propsLookDocumentData"></lookDocumentDialog>
+
+    //查看单个文档
+    lookDocumentButton(type){
+      if(type==1){
+        this.$set(this,'propsLookDocumentData',{
+          title:"整改报告",
+          url:this.addForm.data7[0].url
+        });
+        this.$set(this,'lookDocumentType',true);
+      }else{
+        this.$set(this,'lookDocumentType',false);
+      }
+    },
+-->
+<template>
+  <el-dialog class="lookDocumentDialog" :title="lookDocumentTitle"
+             :visible.sync="lookDocumentType" v-if="lookDocumentType"
+             @close="outLook"
+             width="1300px" height="700" append-to-body>
+    <div class="lookDocumentDialog-page">
+      <iframe
+        v-if="lookDocumentSrc"
+        class="iframe"
+        :src="lookDocumentSrc" scrolling="auto" frameborder="0">
+      </iframe>
+      <p class="positionButton" @click="goPage">全屏</p>
+    </div>
+    <div slot="footer" class="dialog-footer dialog-footer-box" style="display: flex">
+      <p class="dialog-footer-button-null"></p>
+      <p class="dialog-footer-button-info" @click="outLook">取消</p>
+      <p class="dialog-footer-button-primary" @click="downloadButton">下载</p>
+      <p class="dialog-footer-button-null"></p>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+  export default {
+    name: 'lookDocumentDialog',
+    props:{
+      propsLookDocumentData:{},
+    },
+    data(){
+      return{
+        lookDocumentType:true,
+        lookDocumentTitle:"",
+        lookDocumentSrc:"",
+      }
+    },
+    created(){
+      this.$set(this,'lookDocumentTitle',this.propsLookDocumentData.title);
+      this.$set(this,'lookDocumentSrc',this.urlJudge(this.propsLookDocumentData.url));
+    },
+    mounted(){
+
+    },
+    methods:{
+      // 返回按钮
+      outLook(){
+        this.$parent.lookDocumentButton(2)
+      },
+      // 下载按钮
+      downloadButton(){
+        this.download(this.propsLookDocumentData.url, {}, this.propsLookDocumentData.name)
+      },
+      //打开新窗口
+      goPage(){
+        window.open(this.lookDocumentSrc)
+      },
+    }
+  }
+</script>
+
+<style scoped lang="scss">
+  .lookDocumentDialog{
+    .lookDocumentDialog-page{
+      display: flex;
+      flex:1;
+      height:645px;
+      overflow: hidden;
+      padding:0 50px;
+      position: relative;
+      .positionButton{
+        position: absolute;
+        top:15px;
+        right: 225px;
+        border:1px solid #0183fa;
+        border-radius:4px;
+        line-height:30px;
+        width:60px;
+        text-align: center;
+        cursor: pointer;
+        color:#0183fa;
+        background-color: #fff;
+      }
+      .iframe{
+        flex:1;
+      }
+    }
+  }
+</style>

+ 222 - 0
src/components/lookDocumentDialog/lookDocumentListDialog.vue

@@ -0,0 +1,222 @@
+<!--
+    查看多个文档
+
+    import lookDocumentListDialog from '@/components/lookDocumentDialog/lookDocumentListDialog.vue'
+
+    components: {
+      lookDocumentListDialog
+    },
+
+    <lookDocumentListDialog v-if="lookDocumentListType" :propsLookDocumentListData="propsLookDocumentListData"></lookDocumentListDialog>
+
+      //查看多个文档
+      lookDocumentListButton(type){
+        if(type==1){
+          this.$set(this,'propsLookDocumentListData',{
+            title:"查看附件",
+            list:this.addForm.data7
+          });
+          this.$set(this,'lookDocumentListType',true);
+        }else{
+          this.$set(this,'lookDocumentListType',false);
+        }
+      },
+-->
+<template>
+  <el-dialog class="lookDocumentListDialog" :title="lookDocumentListTitle"
+             :visible.sync="lookDocumentListType" v-if="lookDocumentListType"
+             @close="outLook"
+             width="1300px" height="700" append-to-body>
+    <div class="lookDocumentListDialog-page">
+      <div class="left-box">
+        <div class="left-title-box">
+          <img src="@/assets/ZDimages/safetyCheck/icon_dr_wj.png">
+          <p>材料附件</p>
+          <p class="button-p" @click="allDownloadButton">全部下载</p>
+        </div>
+        <div class="left-for-box scrollbar-box">
+          <p class="left-for-p" v-for="(iframeItem,iframeIndex) in lookDocumentList" :key="iframeIndex"
+             @click="lookDocumentListCheck(iframeIndex)"
+             :class="lookDocumentListIndex == iframeIndex?'check-p':''">{{iframeItem.name}}</p>
+        </div>
+      </div>
+      <div class="center-border"></div>
+      <div class="right-box">
+        <iframe
+          v-if="lookDocumentSrc"
+          class="iframe"
+          :src="lookDocumentSrc" scrolling="auto" frameborder="0">
+        </iframe>
+        <p class="positionButton" @click="goPage">全屏</p>
+      </div>
+    </div>
+    <div slot="footer" class="dialog-footer dialog-footer-box" style="display: flex">
+      <p class="dialog-footer-button-null"></p>
+      <p class="dialog-footer-button-info" @click="outLook">取消</p>
+      <p class="dialog-footer-button-primary" @click="downloadButton">下载</p>
+      <p class="dialog-footer-button-null"></p>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+  export default {
+    name: 'lookDocumentListDialog',
+    props:{
+      propsLookDocumentListData:{},
+    },
+    data(){
+      return{
+        lookDocumentListType:true,
+        lookDocumentListTitle:"",
+        lookDocumentList:[],
+        lookDocumentSrc:"",
+        lookDocumentListIndex:0,
+      }
+    },
+    created(){
+      this.$set(this,'lookDocumentListTitle',this.propsLookDocumentListData.title);
+      this.$set(this,'lookDocumentList',this.propsLookDocumentListData.list);
+      this.$set(this,'lookDocumentSrc',this.urlJudge(this.propsLookDocumentListData.list[0].url));
+    },
+    mounted(){
+
+    },
+    methods:{
+      //全部下载
+      allDownloadButton(){
+        let self = this;
+        for(let i=0;i<self.lookDocumentList.length;i++){
+          this.downloadUrl(this.lookDocumentList[i].url,this.lookDocumentList[i].name)
+        }
+      },
+      // 切换按钮
+      lookDocumentListCheck(val){
+        console.log(val)
+        this.$set(this,'lookDocumentListIndex',val);
+        this.$set(this,'lookDocumentSrc',this.urlJudge(this.lookDocumentList[val].url));
+      },
+      // 返回按钮
+      outLook(){
+        this.$parent.lookDocumentListButton(2)
+      },
+      // 下载按钮
+      downloadButton(){
+        this.downloadUrl(this.lookDocumentList[this.lookDocumentListIndex].url,this.lookDocumentList[this.lookDocumentListIndex].name)
+      },
+      //打开新窗口
+      goPage(){
+        window.open(this.lookDocumentSrc)
+      },
+    }
+  }
+</script>
+
+<style scoped lang="scss">
+  .lookDocumentListDialog{
+    .lookDocumentListDialog-page{
+      display: flex;
+      flex:1;
+      height:645px;
+      overflow: hidden;
+      padding:0 50px;
+      .left-box{
+        display: flex;
+        flex-direction: column;
+        overflow: hidden;
+        width:265px;
+        .left-title-box{
+          padding-bottom:20px;
+          display: flex;
+          width:230px;
+          border-bottom:1px dashed #D8D8D8;
+          img{
+            width:16px;
+            height:13px;
+            margin:13px 15px 13px 0;
+          }
+          p:nth-child(2){
+            flex:1;
+            line-height:40px;
+            font-size:16px;
+            color:#0183FA;
+          }
+          .button-p{
+            padding:0 10px;
+            margin-top:5px;
+            height:30px;
+            line-height:30px;
+            font-size:14px;
+            color:#0183FA;
+            border:1px solid #0183FA;
+            border-radius:4px;
+            cursor: pointer;
+          }
+          .button-p:hover{
+            color:#fff;
+            border:1px solid #0183FA;
+            background-color: #0183FA;
+          }
+        }
+        .left-for-box{
+          flex:1;
+          .left-for-p{
+            padding:0 10px;
+            width:230px;
+            line-height:40px;
+            margin-top:10px;
+            font-size:16px;
+            color:#333;
+            display:block;
+            overflow:hidden;
+            text-overflow:ellipsis;
+            white-space:nowrap;
+            cursor: pointer;
+          }
+          .check-p{
+            background-color:rgba(1,131,250,0.2);
+            color:#0183FA;
+          }
+        }
+      }
+      .center-border{
+        border-right:1px dashed #D8D8D8;
+      }
+      .right-box{
+        flex:1;
+        display: flex;
+        margin-left:57px;
+        position: relative;
+        .positionButton{
+          position: absolute;
+          top:15px;
+          right: 35px;
+          border:1px solid #0183fa;
+          border-radius:4px;
+          line-height:30px;
+          width:60px;
+          text-align: center;
+          cursor: pointer;
+          color:#0183fa;
+          background-color: #fff;
+        }
+        .iframe{
+          flex:1;
+        }
+      }
+      .out-button{
+        width:60px;
+        line-height:30px;
+        color:#999;
+        background-color: #dedede;
+        border-radius:4px;
+        text-align: center;
+        cursor: pointer;
+        position: absolute;
+        top:17px;
+        right:17px;
+        z-index:99999;
+      }
+    }
+  }
+</style>

+ 121 - 0
src/components/lookImgDialog/lookImgDialog.vue

@@ -0,0 +1,121 @@
+<!--照片浏览DIALOG-->
+<!--
+        <lookImgDialog ref="lookImgDialog"></lookImgDialog>
+  import lookImgDialog from '/@/components/lookImgDialog/lookImgDialog.vue'
+        components: {
+          lookImgDialog
+        },
+        /*
+          传入3个参数(1,list,index)
+          1-开启
+          list-图片数据 [{url:"xxxxx"}]
+          index-默认显示第几张图片
+        */
+        this.$refs.lookImgDialog.lookImgDialogOpen(1,list,index);
+-->
+<template>
+  <el-dialog class="look-img-dialog" :title="lookImgDialogTitle" :visible.sync="lookImgDialogType" v-if="lookImgDialogType" width="1070px" height="700" append-to-body>
+    <div class="look-img-dialog-min scrollbar-box">
+      <img style="width:1026px;" :src="lookImgList[lookImgIndex].url">
+    </div>
+    <p class="el-icon-arrow-left left-i-button" @click="infoLeftButton"></p>
+    <p class="el-icon-arrow-right right-i-button" @click="infoRightButton"></p>
+    <p class="look-img-dialog-bottom-text">{{lookImgIndex+1}} / {{lookImgList.length}}</p>
+  </el-dialog>
+</template>
+
+<script>
+  export default {
+    name: 'lookImgDialog',
+    data(){
+      return{
+        lookImgDialogTitle:"",
+        lookImgDialogType:false,
+        lookImgList:[],
+        lookImgIndex:null,
+      }
+    },
+    created(){
+
+    },
+    mounted(){
+
+    },
+    methods:{
+      lookImgDialogOpen(type,list,index,title){
+        if(type == 1){
+          this.$set(this,'lookImgList',list);
+          this.$set(this,'lookImgIndex',index?index:0);
+          this.$set(this,'lookImgDialogTitle',title?title:'照片');
+          this.$set(this,'lookImgDialogType',true);
+        }else if(type == 2){
+          this.$set(this,'lookImgDialogType',false);
+        }
+      },
+      infoLeftButton(){
+        if (this.lookImgIndex == 0){
+          this.msgError('当前是第一张')
+        }else{
+          this.lookImgIndex--
+        }
+      },
+      infoRightButton(){
+        if (this.lookImgIndex == this.lookImgList.length-1){
+          this.msgError('当前是最后一张')
+        }else{
+          this.lookImgIndex++
+        }
+      },
+    },
+  }
+</script>
+
+<style scoped lang="scss">
+  .look-img-dialog{
+    .left-i-button{
+      cursor: pointer;
+      text-align: center;
+      line-height:30px;
+      color:#fff;
+      font-size:16px;
+      top:350px;
+      left:40px;
+      position: absolute;
+      width:30px;
+      height:30px;
+      background-color: #0045AF;
+      border-radius:50%;
+    }
+    .right-i-button{
+      cursor: pointer;
+      text-align: center;
+      line-height:30px;
+      color:#fff;
+      font-size:16px;
+      position: absolute;
+      top:350px;
+      right:40px;
+      width:30px;
+      height:30px;
+      background-color: #0045AF;
+      border-radius:50%;
+    }
+    .right-i-button:hover{
+      background-color: #0183fa;
+    }
+    .left-i-button:hover{
+      background-color: #0183fa;
+    }
+    .look-img-dialog-bottom-text{
+      text-align: center;
+      line-height: 30px;
+      font-size:16px;
+      position: absolute;
+      bottom:0;
+      width:1026px;
+    }
+    .look-img-dialog-min{
+      height:560px;
+    }
+  }
+</style>

+ 102 - 0
src/components/lookSingleImgDialog/lookSingleImgDialog.vue

@@ -0,0 +1,102 @@
+<!--照片浏览DIALOG-->
+<!--
+        <lookSingleImgDialog ref="lookSingleImgDialog"></lookSingleImgDialog>
+        import lookSingleImgDialog from '@/components/lookSingleImgDialog/lookSingleImgDialog.vue'
+        components: {
+          lookSingleImgDialog
+        },
+        /*
+          传入3个参数(1,url,title)
+          1-开启
+          url-地址
+          title-标题
+        */
+        this.$refs.lookSingleImgDialog.lookImgDialogOpen(1,item.fileUrl,'预览');
+-->
+<template>
+  <el-dialog class="look-img-dialog" :title="lookImgDialogTitle" :visible.sync="lookImgDialogType" v-if="lookImgDialogType" width="1070px" height="700" append-to-body>
+    <div class="look-img-dialog-min scrollbar-box">
+      <img style="width:1026px;" :src="lookImgUrl">
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+  export default {
+    name: 'lookSingleImgDialog',
+    data(){
+      return{
+        lookImgDialogTitle:"",
+        lookImgDialogType:false,
+        lookImgUrl:[],
+      }
+    },
+    created(){
+
+    },
+    mounted(){
+
+    },
+    methods:{
+      lookImgDialogOpen(type,url,title){
+        if(type == 1){
+          this.$set(this,'lookImgUrl',url);
+          this.$set(this,'lookImgDialogTitle',title?title:'照片');
+          this.$set(this,'lookImgDialogType',true);
+        }else{
+          this.$set(this,'lookImgDialogType',false);
+        }
+      },
+    },
+  }
+</script>
+
+<style scoped lang="scss">
+  .look-img-dialog{
+    .left-i-button{
+      cursor: pointer;
+      text-align: center;
+      line-height:30px;
+      color:#fff;
+      font-size:16px;
+      top:350px;
+      left:40px;
+      position: absolute;
+      width:30px;
+      height:30px;
+      background-color: #0045AF;
+      border-radius:50%;
+    }
+    .right-i-button{
+      cursor: pointer;
+      text-align: center;
+      line-height:30px;
+      color:#fff;
+      font-size:16px;
+      position: absolute;
+      top:350px;
+      right:40px;
+      width:30px;
+      height:30px;
+      background-color: #0045AF;
+      border-radius:50%;
+    }
+    .right-i-button:hover{
+      background-color: #0183fa;
+    }
+    .left-i-button:hover{
+      background-color: #0183fa;
+    }
+    .look-img-dialog-bottom-text{
+      text-align: center;
+      line-height: 30px;
+      font-size:16px;
+      position: absolute;
+      bottom:0;
+      width:1026px;
+    }
+    .look-img-dialog-min{
+      height:560px;
+    }
+  }
+</style>

+ 59 - 0
src/components/lookVideoDialog/lookVideoDialog.vue

@@ -0,0 +1,59 @@
+<!--视频浏览DIALOG-->
+<!--
+        <lookVideoDialog ref="lookVideoDialog"></lookVideoDialog>
+        import lookVideoDialog from '@/components/lookVideoDialog/lookVideoDialog.vue'
+        components: {
+          lookVideoDialog
+        },
+        /*
+          传入3个参数(1,list,index)
+          1-开启
+          rul视频地址
+          '报警抓拍'title名称
+        */
+        this.$refs.lookVideoDialog.lookVideoDialogOpen(1,item.url,'报警抓拍');
+-->
+<template>
+  <el-dialog class="look-img-dialog" :title="lookVideoDialogTitle" :visible.sync="lookVideoDialogType" v-if="lookVideoDialogType" width="1070px" height="700" append-to-body>
+    <video style="width:1029px;height:578px;" controls="" autoplay="" name="media" :poster="videoCover">
+      <source :src="lookVideoDialogUrl" type="video/mp4">
+    </video>
+  </el-dialog>
+</template>
+
+<script>
+  export default {
+    name: 'lookVideoDialog',
+    data(){
+      return{
+        videoCover:window.location.href.split('://')[0]+'://' + this.judgmentNetworkReturnAddress() + "/admin/" + localStorage.getItem('videoCover'),
+        lookVideoDialogUrl:"",
+        lookVideoDialogTitle:"",
+        lookVideoDialogType:false,
+      }
+    },
+    created(){
+
+    },
+    mounted(){
+
+    },
+    methods:{
+      lookVideoDialogOpen(type,url,title){
+        if(type == 1){
+          this.$set(this,'lookVideoDialogUrl',url);
+          this.$set(this,'lookVideoDialogTitle',title?title:'视频');
+          this.$set(this,'lookVideoDialogType',true);
+        }else if(type == 2){
+          this.$set(this,'lookVideoDialogType',false);
+        }
+      },
+    },
+  }
+</script>
+
+<style scoped lang="scss">
+  .look-img-dialog{
+
+  }
+</style>

+ 4 - 2
src/main.js

@@ -9,12 +9,13 @@ import store from './store'
 import router from './router'
 import directive from './directive'
 import { download,downloadUrl } from '@/utils/request'
-import { uploadUrl,judgmentNetworkReturnAddress,versionField } from '@/utils/ruoyi'
 import hasPermiDom from './directive/permission/hasPermiDom'
 import './assets/icons'
 import './permission'
 import { getConfigKey,getDicts } from "@/api/commonality/noPermission";
-import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree, spaceJudgment, spaceJudgmentHTML, isNum, urlJudge } from "@/utils/ruoyi";
+import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels,
+        handleTree, spaceJudgment, spaceJudgmentHTML, isNum, urlJudge, uploadUrl,
+        judgmentNetworkReturnAddress,versionField, clickCopy } from "@/utils/ruoyi";
 import Pagination from "@/components/Pagination";
 // 自定义表格工具组件
 import RightToolbar from "@/components/RightToolbar"
@@ -55,6 +56,7 @@ Vue.prototype.download = download
 Vue.prototype.downloadUrl = downloadUrl
 Vue.prototype.uploadUrl = uploadUrl
 Vue.prototype.versionField = versionField
+Vue.prototype.clickCopy = clickCopy
 Vue.prototype.hasPermiDom = hasPermiDom.hasPermiDom
 Vue.prototype.handleTree = handleTree
 Vue.prototype.spaceJudgment = spaceJudgment

+ 20 - 0
src/utils/ruoyi.js

@@ -321,3 +321,23 @@ export function urlJudge(url) {
 export function versionField() {
   return process.env.VUE_APP_VERSION_DIFFERENCE_FIELD
 }
+
+/**
+ * 点击复制文本
+ */
+export function clickCopy(context) {
+  // 创建输入框元素
+  let oInput = document.createElement('input');
+  // 将想要复制的值
+  oInput.value = context;
+  // 页面底部追加输入框
+  document.body.appendChild(oInput);
+  // 选中输入框
+  oInput.select();
+  // 执行浏览器复制命令
+  document.execCommand('Copy');
+  // 弹出复制成功信息
+  this.msgSuccess('复制成功');
+  // 复制后移除输入框
+  oInput.remove();
+}

+ 4 - 0
src/views/serviceCenter/apkManage/applyList/index.vue

@@ -316,6 +316,10 @@
         // 上传完毕。
       },
       filesAdded(file, fileList, event) {
+        if(file.fileType !== "application/vnd.android.package-archive"){
+          this.msgError('请上传APK文件')
+          return
+        }
         this.fileData = {
           name:file[0].name,
           size:"",

+ 9 - 9
src/views/systemManagement/dict/data.vue

@@ -2,15 +2,6 @@
 <template>
   <div class="dict-data">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px" class="form-box">
-      <el-form-item style="margin:0 20px;">
-        <p class="reset-button-one" @click="backPage"><i class="el-icon-arrow-left"></i>返回</p>
-      </el-form-item>
-      <el-col :span="1.5">
-        <p class="add-button-one-120"
-           @click="handleAdd"
-           v-hasPermi="['system:dict:add']"
-        ><i class="el-icon-plus"></i>新增字典</p>
-      </el-col>
       <!--<el-form-item label="字典名称" prop="dictCode">-->
         <!--<el-select v-model="queryParams.dictCode" size="small">-->
           <!--<el-option-->
@@ -43,6 +34,15 @@
         <p class="inquire-button-one" @click="handleQuery">查询</p>
         <p class="reset-button-one" @click="resetQuery">重置</p>
       </el-form-item>
+      <el-form-item style="float: right">
+        <p class="reset-button-one" @click="backPage"><i class="el-icon-arrow-left"></i>返回</p>
+      </el-form-item>
+      <el-col :span="1.5" style="margin-right:20px;float: right">
+        <p class="add-button-one-90"
+           @click="handleAdd"
+           v-hasPermi="['system:dict:add']"
+        >新增</p>
+      </el-col>
     </el-form>
 
     <el-table v-loading="loading" border :data="dataList" @selection-change="handleSelectionChange" class="table-box">

+ 4 - 4
src/views/systemManagement/dict/index.vue

@@ -31,14 +31,14 @@
         ></el-date-picker>
       </el-form-item>
       <el-form-item style="float: right;">
-        <el-col :span="1.5" style="margin-right:20px">
-          <p class="add-button-one-120"
+        <el-col :span="1.5" >
+          <p class="add-button-one-90"
              @click="handleAdd"
              v-hasPermi="['system:dict:add']"
-          ><i class="el-icon-plus"></i>新增字典</p>
+          >新增字典</p>
         </el-col>
       </el-form-item>
-      <el-form-item style="float: right;">
+      <el-form-item>
         <p class="inquire-button-one" @click="handleQuery">查询</p>
         <p class="reset-button-one" @click="resetQuery">重置</p>
       </el-form-item>

+ 49 - 5
src/views/systemManagement/filePreview/index.vue

@@ -45,14 +45,18 @@
         <el-table-column label="文件名" align="center" prop="fileName" show-overflow-tooltip/>
         <el-table-column label="类型" align="center" prop="fileType" show-overflow-tooltip width="130"/>
         <el-table-column label="尺寸(MB)" align="center" prop="fileSize" show-overflow-tooltip width="130"/>
-        <el-table-column label="文件地址" align="center" prop="fileUrl" show-overflow-tooltip width="470"/>
+        <el-table-column label="文件地址" align="center" prop="fileUrl" show-overflow-tooltip width="470">
+          <template slot-scope="scope">
+            <p @click="clickCopy(scope.row.fileUrl)">{{scope.row.fileUrl}}</p>
+          </template>
+        </el-table-column>
         <el-table-column label="上传时间" align="center" prop="createTime" show-overflow-tooltip width="200"/>
         <el-table-column label="上传人" align="center" prop="userName" show-overflow-tooltip width="170"/>
         <el-table-column label="操作" align="center" prop="deptName" width="170">
           <template slot-scope="scope">
             <div class="table-button-box">
               <p class="table-button-null"></p>
-              <p class="table-button-p" @click="tableButton">预览</p>
+              <p class="table-button-p" @click="tableButton(scope.row)">预览</p>
               <p class="table-button-null"></p>
             </div>
           </template>
@@ -66,14 +70,27 @@
                   @pagination="getList"
       />
     </div>
-
+    <!--单张图片预览-->
+    <lookSingleImgDialog ref="lookSingleImgDialog"></lookSingleImgDialog>
+    <!--视频预览-->
+    <lookVideoDialog ref="lookVideoDialog"></lookVideoDialog>
+    <!--文件预览-->
+    <lookDocumentDialog v-if="lookDocumentType" :propsLookDocumentData="propsLookDocumentData"></lookDocumentDialog>
   </div>
 </template>
 
 <script>
   import { getFileList,getFileCategory } from "@/api/systemManagement/index";
+  import lookSingleImgDialog from '@/components/lookSingleImgDialog/lookSingleImgDialog.vue'
+  import lookVideoDialog from '@/components/lookVideoDialog/lookVideoDialog.vue'
+  import lookDocumentDialog from '@/components/lookDocumentDialog/lookDocumentDialog.vue'
   export default {
     name: 'filePreview',
+    components: {
+      lookSingleImgDialog,
+      lookVideoDialog,
+      lookDocumentDialog
+    },
     data(){
       return{
         loading:false,
@@ -87,6 +104,8 @@
         dateRange:[],
         tableList:[],
         total:0,
+        propsLookDocumentData:{},
+        lookDocumentType:false,
       }
     },
     created(){
@@ -129,8 +148,33 @@
         });
       },
       //预览
-      tableButton(){
-
+      tableButton(item){
+        if(item.fileType.indexOf("image") !== -1){
+          //图片预览
+          this.$refs.lookSingleImgDialog.lookImgDialogOpen(1,item.fileUrl,'预览');
+        }else if(item.fileType.indexOf("video") !== -1){
+          //视频预览
+          this.$refs.lookVideoDialog.lookVideoDialogOpen(1,item.url,'预览');
+        }else if( item.fileType.indexOf("application/vnd.ms-excel") !== -1 ||
+                  item.fileType.indexOf("application/vnd.ms-powerpoint") !== -1 ||
+                  item.fileType.indexOf("application/vnd.ms-word") !== -1 ||
+                  item.fileType.indexOf("application/pdf") !== -1 ){
+          //文档预览
+          this.lookDocumentButton(1,item.url)
+        }else{
+          this.msgError('该类型文件暂无法预览')
+        }
+      },
+      lookDocumentButton(type,url){
+        if(type==1){
+          this.$set(this,'propsLookDocumentData',{
+            title:"预览",
+            url:url
+          });
+          this.$set(this,'lookDocumentType',true);
+        }else{
+          this.$set(this,'lookDocumentType',false);
+        }
       },
       //获取文件分类列表
       getFileCategory(){