codeMan 3 år sedan
förälder
incheckning
e33fdd18e3

+ 31 - 16
src/SManagement/archives_ad/components/detail.vue

@@ -3,25 +3,32 @@
     <div class="header">
       <p class="title">{{currentSelectFile.title}}</p>
       <div class="detail-info">
-        <span><span>浏览数:</span>{{currentSelectFile.readcount}}</span>
-        <span><span>分享数:</span>{{currentSelectFile.sharecount}}</span>
-        <span><span>拉新数:</span>{{currentSelectFile.newcount}}</span>
-        <span><span>创建人:</span>{{currentSelectFile.changeby}}</span>
-        <span><span>上传时间:</span>{{currentSelectFile.createdate}}</span>
+        <el-row>
+          <el-col :span="8"><span><span>浏览数:</span>{{currentSelectFile.readcount}}</span></el-col>
+          <el-col :span="8"><span><span>分享数:</span>{{currentSelectFile.sharecount}}</span></el-col>
+          <el-col :span="8"><span><span>拉新数:</span>{{currentSelectFile.newcount}}</span></el-col>
+          <el-col :span="8"><span><span>创建人:</span>{{currentSelectFile.changeby}}</span></el-col>
+          <el-col :span="14"><span><span>上传时间:</span>{{currentSelectFile.createdate}}</span></el-col>
+        </el-row>
       </div>
     </div>
     <div class="content"  v-if="this.currentSelectFile.content && decodeURIComponent(this.currentSelectFile.content) != '<p><br></p>'">
-      <p class="title">素材文本</p>
-      <div ref="fwb">
+      <div ref="fwb" class="fwb">
       </div>
     </div>
     <div class="file2">
-      <p class="title" v-if="currentSelectFile.attinfos && currentSelectFile.attinfos.length > 0">附件</p>
-      <div class="file-item" v-for="(item,index) in currentSelectFile.attinfos" :key="index">
+      <!-- <p class="title" v-if="currentSelectFile.attinfos && currentSelectFile.attinfos.length > 0">附件</p> -->
+      <!-- <div class="file-item" v-for="(item,index) in currentSelectFile.attinfos" :key="index">
         <file-item :itemStyle="itemStyle" 
                    :fileData="[item]"
                    :isDownLoad="true">
         </file-item>
+      </div> -->
+      <div class="image" v-if="currentSelectFile.type == 1">
+        <img :src="item.url" alt="" v-for="(item,index) in currentSelectFile.attinfos" :key="index">
+      </div>
+      <div class="video" v-if="currentSelectFile.type == 2">
+        <video :src="item.url" v-for="(item,index) in currentSelectFile.attinfos" controls :key="index"></video>
       </div>
     </div>
   </el-drawer>
@@ -85,7 +92,7 @@ export default {
   box-sizing: border-box;
 }
 /deep/.el-drawer {
-    width: 1080px !important;
+    width: 546px !important;
   }
   
   /deep/.el-drawer__header {
@@ -104,14 +111,13 @@ export default {
     color: #333333;
   }
   .header {
-    margin-bottom: 40px;
-    padding: 0 20px;
+    padding: 20px 20px;
+    border-bottom: 10px solid #FAFAFA;
   }
   .title {
     margin-bottom: 10px;
   }
   .header .detail-info {
-    display: flex;
   }
   .header .detail-info span {
     margin-right: 50px;
@@ -123,10 +129,19 @@ export default {
     margin-right: 8px;
   }
   .content {
-    border-bottom: 10px solid #FAFAFA;
-    padding: 0 0 20px 20px;
+    padding: 20px;
+    width: 100%;
+  }
+  .fwb {
+    width: 100%;
+  }
+  /deep/.fwb p img {
+    width: 100%;
   }
   .file2 {
-    padding: 20px 0 20px 20px;
+    padding: 20px;
+  }
+  .image,.image img,.video,.video video {
+    width: 100%;
   }
 </style>

+ 11 - 38
src/SManagement/archives_upload/components/upload.vue

@@ -8,7 +8,7 @@
     <el-dialog title="文件上传" :visible.sync="dialogUploadVisible" width="500px" :close-on-click-modal="false"
       :before-close="clearFiles">
       <el-upload style="width:100%" ref="my-upload" class="upload-demo" action="#" :auto-upload="false"
-        :show-file-list="false" :on-change="handleChange" drag multiple>
+        :show-file-list="false" :on-change="handleChange" drag multiple :accept="calcFileType">
         <i class="el-icon-upload"></i>
         <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
       </el-upload>
@@ -62,49 +62,22 @@ export default {
       default() {
         return ''
       }
-    }
+    },
   },
-  methods: {
-    handleChange (file, filelist) {
-      var ext = file.name.substr(file.name.indexOf('.')+1)
-      let type = []
-      let result = ''
-      
+  computed: {
+    calcFileType() {
       if(this.classType == '1') {
-        console.log(1111);
-        
-        type = ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'svg', 'tiff']
-        result = type.some(item => {
-          return item == ext
-        })
-        if(!result) {
-          this.$notify({
-            title:'提示',
-            message:'只能上传图片',
-            type:'warning'
-          })
-          this.clearFiles()
-          return
-        }
+        return '.jpg,.png,.jpg,.jpeg,.bmp,.gif,.webp,.svg,.tiff'
       } else if(this.classType == '2') {
-        type = ['mp4', 'ogg', 'webm']
-        result = type.some(item => {
-          return item == ext
-        })
-        if(!result) {
-          this.$notify({
-            title:'提示',
-            message:'只能上传视频',
-            type:'warning'
-          })
-          this.clearFiles()
-          return
-        }
+        return '.mp4,.ogg,.webm'
       }
-
+    }
+  },
+  methods: {
+    handleChange (file, filelist) {
       this.filelist = filelist
       var index = file.raw.name.lastIndexOf(".");
-      
+      var ext = file.name.substr(index + 1);
       this.params.content.filename = file.raw.name
 
       this.params.content.filetype = ext

+ 31 - 17
src/SManagement/notice/notice_detail/NoticeDetail.vue

@@ -16,7 +16,7 @@
       <div class="file-download">
         <p class="title">附件下载</p>
         <div class="file-list">
-          <file-item :isDownLoad="true" :itemStyle="itemStyle" :fileData="detailData.attinfos">
+          <file-item :isDownLoad="true" :itemStyle="itemStyle" :sat_noticeid="detailData.sat_noticeid" :fileData="detailData.attinfos">
           </file-item>
         </div>
       </div>
@@ -26,7 +26,7 @@
         <p>评分反馈</p>
         <div class="handle">
           <p>总体</p>
-          <el-rate v-model="send.content.score" :colors="scoreColor"></el-rate>
+          <el-rate v-model="send.content.score" :disabled="!commentData.leavemessage == false" :colors="scoreColor"></el-rate>
           <p>满意</p>
         </div>
         <p>{{detailData.readpersoncount}}人评分</p>
@@ -34,9 +34,9 @@
       <div class="text-box">
         <p>留言反馈</p>
         <div class="comment-panl">
-          <el-input type="textarea" :rows="4" placeholder="请填写留言" resize="none" v-model="send.content.leavemessage">
+          <el-input type="textarea" :rows="4" placeholder="请填写留言" resize="none" :disabled="!commentData.leavemessage == false" v-model="send.content.leavemessage">
           </el-input>
-          <el-button type="success" size="small" @click.native="sendComment()">发表</el-button>
+          <el-button type="success" size="small" :disabled="!commentData.leavemessage == false" @click.native="sendComment()">发表</el-button>
         </div>
       </div>
     </div>
@@ -75,6 +75,7 @@ export default {
       //itemfile样式
       itemStyle: {
         itemWidth: 360,
+        margin:20,
         img: {
           width: 29,
           height: 29
@@ -86,7 +87,9 @@ export default {
       scoreColor: ["#99A9BF", "#F7BA2A", "#FADB14"],
       textarea: "",
       //详情数据
-      detailData: ''
+      detailData: '',
+      //评论数据
+      commentData:''
     };
   },
   components: {
@@ -99,32 +102,32 @@ export default {
   watch: {},
   created () {
     this.getNoticeDetail()
+    this.getCommentDetail()
   },
   mounted () {
   },
   methods: {
     //解析富文本
     compileFWB () {
-      let con = weAtob(this.detailData.content);
-      document.getElementById('fwb').innerHTML = con;
+      // let con = weAtob(this.detailData.content);
+      document.getElementById('fwb').innerHTML = this.detailData.content;
     },
     //获取详情数据
     getNoticeDetail () {
       this.param.content.sat_noticeid = this.$route.query.sat_noticeid
       this.$api.requested(this.param).then(res => {
         this.detailData = res.data
-        console.log(this.detailData);
-        
         this.detailData.attinfos = FileType.fileList(this.detailData.attinfos)
         this.compileFWB()
       })
     },
     //发表
     sendComment () {
-      if (this.send.content.leavemessage == '') {
+      
+      if (!this.send.content.leavemessage == true || this.send.content.score == 0) {
         this.$notify({
           title:'提示',
-          message:'请填写评论',
+          message:'请填写评论或评分',
           type:'warning'
         })
         return
@@ -136,14 +139,26 @@ export default {
               message: '发表成功',
               type: 'success'
             })
-            this.send.content.score = 0
-            this.send.content.leavemessage = ''
-            console.log(this.send);
-            
+            this.getCommentDetail()
           }
         })
       }
       
+    },
+    //获取评论
+    getCommentDetail() {
+      this.$api.requested({
+        "accesstoken": "148928f55b25f5c4636d5ae7cd339f93",
+        "classname": "saletool.notice.notice",
+        "method": "queryReadRecord",
+        "content": {
+            "sat_noticeid":this.$route.query.sat_noticeid
+        }
+      }).then( res => {
+        this.commentData = res.data[0]    
+        this.send.content.score = res.data[0].score
+        this.send.content.leavemessage = res.data[0].leavemessage
+      })
     }
   }
 };
@@ -209,7 +224,6 @@ export default {
   width: 200px !important;
 }
 .normal-card .file-content {
-  padding: 20px 0;
   border-bottom: 1px solid #eeeeee;
   font-size: 12px;
 }
@@ -223,7 +237,7 @@ export default {
   margin-bottom: 10px;
 }
 .normal-card .file-content .file-download {
-  margin-top: 40px;
+  margin-top: 20px;
 }
 .normal-card .file-content .file-download .file-list {
   display: flex;

+ 149 - 124
src/SManagement/submitedit_details/components/SubmiteditAction.vue

@@ -6,28 +6,21 @@
       <el-button type="warning" size="small" class="btn1" @click="save()">保存</el-button>
       <div class="content" style="word-break:break-all">
         <p>提报内容</p>
-        <el-input
-          type="textarea"
-          :autosize="{ minRows: 2, maxRows: 4}"
-          placeholder="请输入内容"
+        <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4}" placeholder="请输入内容"
           v-model="param.content.content">
-          </el-input>
+        </el-input>
       </div>
       <div class="bottom">
         <div class="file-box">
           <p>提报附件</p>
-            <file-item
-            :isDownLoad="false" 
-            :isDelete="true" 
-            :itemStyle="itemDrawerStyle" 
-            :fileData="upload_panl.attinfos" 
+          <file-item :isDownLoad="false" :isDelete="true" :itemStyle="itemDrawerStyle" :fileData="upload_panl.attinfos"
             @deleteSuccess="deleteSuccess"></file-item>
         </div>
         <upload target="submit" @onSuccess="onSuccess"></upload>
       </div>
     </el-drawer>
   </div>
-  
+
 </template>
 
 <script>
@@ -43,19 +36,18 @@ export default {
         "classname": "saletool.submitedit.submitedit",
         "method": "insertorupdate",
         "content": {
-            "sat_submiteditmodelid":"",
-            "content":"",
-            "sat_submiteditid":"0"
+          "sat_submiteditmodelid": "",
+          "content": "",
+          "sat_submiteditid": "0"
         }
       },
-      isFileInfoPanlShow:false,
+      isFileInfoPanlShow: false,
       itemDrawerStyle: {
-        itemWidth:460,
         img: {
-          width:53,
-          height:64
+          width: 53,
+          height: 64
         },
-        title:16,
+        title: 16,
         descript: 12
       },
       textarea2: '',
@@ -63,7 +55,7 @@ export default {
       upload_panl: 0,
     };
   },
-  props:['detailData','disabled'],
+  props: ['detailData', 'disabled', 'editData'],
   components: {
     FileItem,
     upload
@@ -73,91 +65,124 @@ export default {
   watch: {
     //监听字段是否删除上传模板
     isFileInfoPanlShow: {
-      handler(val) {
-        if(val == false && this.upload_panl.status == '未提报') {
+      handler (val) {
+        if (val == false && this.upload_panl.status == '未提报') {
           this.deleteSubmit()
           //删除附件
-          if(this.upload_panl.attinfos.length != 0) removeFile.removeFileList(this.upload_panl.attinfos)
+          if (this.upload_panl.attinfos.length != 0) removeFile.removeFileList(this.upload_panl.attinfos)
         }
+      },
+    },
+    editData: {
+      handler (val) {
+        this.upload_panl = val
+        this.param.content.content = val.content
       }
     }
   },
   methods: {
-    actionSubmit() {
+    actionSubmit () {
       this.isFileInfoPanlShow = true
       this.getSubmitPanl()
     },
     //获取上传模板
-    getSubmitPanl() {
+    getSubmitPanl () {
       this.param.content.sat_submiteditmodelid = this.detailData.sat_submiteditmodelid
-      this.$api.requested(this.param).then( res => {
+      this.$api.requested(this.param).then(res => {
         this.upload_panl = res.data
       })
     },
     //删除提报记录
-    deleteSubmit() {
+    deleteSubmit () {
+      this.param.content.content = ''
+      this.upload_panl.attinfos = ''
       let param = {
-          "classname": "saletool.submitedit.submitedit",
-          "method": "delete_submitdetailed",
-          "content": {
-              "sat_submiteditid":this.upload_panl.sat_submiteditid
-          }
+        "classname": "saletool.submitedit.submitedit",
+        "method": "delete_submitdetailed",
+        "content": {
+          "sat_submiteditid": this.upload_panl.sat_submiteditid
+        }
       }
-      this.$api.requested(param).then( res =>{
-        if(res.code != 1) {
+      this.$api.requested(param).then(res => {
+        if (res.code != 1) {
           console.log('提报删除失败');
-        }    
+        }
       })
     },
-    save() {
+    save () {
       //新增
-      if(this.param.content.content == false) {
+      if (this.param.content.content == false) {
         this.$notify({
-          title:'提示',
-          message:'请编辑内容',
-          type:'warning'
+          title: '提示',
+          message: '请编辑内容',
+          type: 'warning'
         })
         return
       }
-      this.param.content.sat_submiteditmodelid = this.detailData.sat_submiteditmodelid
+      this.param.content.sat_submiteditmodelid = this.editData ? this.upload_panl.sat_submiteditmodelid : this.detailData.sat_submiteditmodelid
       this.param.content.sat_submiteditid = this.upload_panl.sat_submiteditid
-      this.$api.requested(this.param).then( res => {
-        this.upload_panl.status = '发布'
-        if(res.code == 1) {
-          //提交提报明细
-          let param2 = {
-            "classname": "saletool.submitedit.submitedit",
-            "method": "sub_submitdetailed",
-            "content": {
-                "onceonly":0,
-                "sat_submiteditmodelid":this.detailData.sat_submiteditmodelid,
-                "sat_submiteditid":this.upload_panl.sat_submiteditid
+      if (this.editData.attinfos) {
+        this.$api.requested(this.param).then(res => {
+          if(res.code == 1) {
+            this.$notify({
+              title:'提示',
+              message:'修改成功',
+              type:'success'
+            })
+            this.isFileInfoPanlShow = false
+            this.$parent.getDetailData()
+            this.upload_panl = ''
+            this.param.content.content = ''
+            this.param = {
+              "classname": "saletool.submitedit.submitedit",
+              "method": "insertorupdate",
+              "content": {
+                "sat_submiteditmodelid": "",
+                "content": "",
+                "sat_submiteditid": "0"
+              }
             }
           }
-          
-          this.$api.requested(param2).then( res => {
-            if(res.code == 1) {
-              this.upload_panl.status = '发布'
-              this.upload_panl.attinfos = null
-              this.param = {
-                "classname": "saletool.submitedit.submitedit",
-                "method": "insertorupdate",
-                "content": {
-                    "sat_submiteditmodelid":"",
-                    "content":"",
-                    "sat_submiteditid":"0"
-                }
-              },
-              this.isFileInfoPanlShow = false
-              this.$parent.getDetailData()
+        })
+      } else {
+        this.$api.requested(this.param).then(res => {
+          this.upload_panl.status = '发布'
+          if (res.code == 1) {
+            //提交提报明细
+            let param2 = {
+              "classname": "saletool.submitedit.submitedit",
+              "method": "sub_submitdetailed",
+              "content": {
+                "onceonly": 0,
+                "sat_submiteditmodelid": this.detailData.sat_submiteditmodelid,
+                "sat_submiteditid": this.upload_panl.sat_submiteditid
+              }
             }
-          })
-        }
-      })
+            this.$api.requested(param2).then(res => {
+              if (res.code == 1) {
+                this.upload_panl.status = '发布'
+                this.upload_panl.attinfos = null
+                this.param = {
+                  "classname": "saletool.submitedit.submitedit",
+                  "method": "insertorupdate",
+                  "content": {
+                    "sat_submiteditmodelid": "",
+                    "content": "",
+                    "sat_submiteditid": "0"
+                  }
+                },
+                  this.isFileInfoPanlShow = false
+                this.$parent.getDetailData()
+              }
+            })
+          }
+        })
+      }
+
+
 
-        
     },
-    onSuccess(id) {
+    onSuccess (id) {
       this.fileId = id
       let param = {
         "classname": "system.attachment.Attachment",
@@ -179,64 +204,64 @@ export default {
             type: 'error'
           })
         } else {
-          this.upload_panl.attinfos = this.fileType.fileList(this.upload_panl.attinfos.concat(res.data[0])) 
+          this.upload_panl.attinfos = this.fileType.fileList(this.upload_panl.attinfos.concat(res.data[0]))
         }
       })
     },
-    deleteSuccess(data) {
-      this.upload_panl.attinfos.splice(data,1)
+    deleteSuccess (data) {
+      this.upload_panl.attinfos.splice(data, 1)
     }
   },
 };
 </script>
 
 <style scoped>
-  * {
-    box-sizing: border-box;
-  }
-  /deep/ .el-drawer__header {
-    margin-bottom: 0;
-  }
-  /deep/ .el-drawer {
-    width: 1052px !important;
-  }
-  .el-drawer__body .btn1 {
-    margin: 20px 0 20px 20px;
-    width: 88px;
-    height: 36px;
-    background: #FA8C16;
-  }
-  .el-drawer__body .content {
-    border-bottom: 10px solid #FAFAFA;
-    padding: 0 0 20px 20px;
-  }
-  .el-drawer__body .content p:first-child {
-    font-size: 16px;
-    font-weight: bold;
-    color: #333333;
-    margin-bottom: 20px;
-  }
-  .el-drawer .file-box p {
-    margin: 20px 0 20px 0;
-    font-size: 16px;
-    font-weight: bold;
-    color: #333333;
-    margin-bottom: 20px;
-  }
-  .el-drawer .file-box .file {
-    display: flex;
-    flex-wrap: wrap;
-  }
-  .upload {
-    display: flex;
-    margin-top: 20px;
-  }
-  /deep/.upload .el-button {
-    width: 100%;
-    border: 1px solid #3874F6;
-    color: #3874F6;
-  }
-  .bottom {
-    padding: 0 20px;
-  }
+* {
+  box-sizing: border-box;
+}
+/deep/ .el-drawer__header {
+  margin-bottom: 0;
+}
+/deep/ .el-drawer {
+  width: 546px !important;
+}
+.el-drawer__body .btn1 {
+  margin: 20px 0 20px 20px;
+  width: 88px;
+  height: 36px;
+  background: #fa8c16;
+}
+.el-drawer__body .content {
+  border-bottom: 10px solid #fafafa;
+  padding: 0 0 20px 20px;
+}
+.el-drawer__body .content p:first-child {
+  font-size: 16px;
+  font-weight: bold;
+  color: #333333;
+  margin-bottom: 20px;
+}
+.el-drawer .file-box p {
+  margin: 20px 0 20px 0;
+  font-size: 16px;
+  font-weight: bold;
+  color: #333333;
+  margin-bottom: 20px;
+}
+.el-drawer .file-box .file {
+  display: flex;
+  flex-wrap: wrap;
+}
+.upload {
+  display: flex;
+  margin-top: 20px;
+}
+/deep/.upload .el-button {
+  width: 100%;
+  border: 1px solid #3874f6;
+  color: #3874f6;
+}
+.bottom {
+  padding: 0 20px;
+}
 </style>

+ 23 - 13
src/SManagement/submitedit_details/components/SubmiteditItemInfo.vue

@@ -9,7 +9,9 @@
           <div class="footer">
             <p class="submit"><span>附件数:</span>{{item.attinfos.length}}</p>
           </div>
-          <span class="back" v-if="item.status == '新建' && item.content">退回</span>
+          <div class="handle" v-if="item.status == '退回' && item.content">
+            <span class="back">退回</span>
+          </div>
         </div>
       </div>
       <el-empty description="暂无数据" v-else></el-empty>
@@ -30,6 +32,7 @@
           <file-item :isDownLoad="true" :itemStyle="itemDrawerStyle" :fileData="currentFile.attinfos">
           </file-item>
         </div>
+        <el-button type="warning" @click="submitEdit" size="small" v-if="currentFile.status == '退回'">重新提交</el-button>
       </div>
     </el-drawer>
   </div>
@@ -44,7 +47,6 @@ export default {
     return {
       isFileInfoPanlShow: false,
       itemDrawerStyle: {
-        itemWidth: 486,
         img: {
           width: 53,
           height: 64
@@ -65,11 +67,6 @@ export default {
   watch: {
   },
   created() {
-    setTimeout(() => {
-    console.log(this.fileData);
-
-    },1000)
-    
   },
   methods: {
     itemClick (item) {
@@ -77,7 +74,11 @@ export default {
       this.currentFile = item
       this.currentFile.attinfos = this.fileType.fileList(this.currentFile.attinfos)
     },
-
+    //编辑
+    submitEdit() {
+      this.isFileInfoPanlShow = false
+      this.$emit('submitEdit',this.currentFile)      
+    }
   },
 };
 </script>
@@ -93,7 +94,7 @@ export default {
   height: 100%;
 }
 /deep/ .el-drawer {
-  width: 550px !important;
+  width: 546px !important;
 }
 .el-drawer__body .content {
   padding-left: 20px;
@@ -112,7 +113,7 @@ export default {
   margin-bottom: 40px;
 }
 .el-drawer .file-box {
-  padding: 20px 0 0 20px;
+  padding: 20px 20px 0 20px;
 }
 .el-drawer .file-box p {
   margin-bottom: 20px;
@@ -179,6 +180,16 @@ export default {
   font-weight: 400;
   color: #999999; 
 }
+.list .list-item .handle {
+  position: absolute;
+  bottom: 10px;
+  right: 10px;
+}
+.list .list-item .edit {
+  font-size: 14px;
+  font-weight: 400;
+  color: #3874F6;
+}
 .list .list-item .back {
   width: 42px;
   height: 24px;
@@ -189,9 +200,8 @@ export default {
   color: #FF3B30;
   line-height: 22px;
   text-align: center;
-  position: absolute;
-  bottom: 10px;
-  right: 10px;
+  margin-right: 10px;
+  display: block;
 }
 .time span,.submit span {
   margin-right: 10px;

+ 10 - 2
src/SManagement/submitedit_details/index.vue

@@ -2,7 +2,7 @@
   <div class="index" v-if="detailData">
     <div class="normal-card">
       <!--提报上传-->
-      <submit-action :detailData="detailData" :disabled="$route.query.history != 1"></submit-action>
+      <submit-action ref="submitAction" :detailData="detailData" :editData="editData" :disabled="$route.query.history != 1"></submit-action>
       <img src="@/assets/refresh.png" alt="" style="cursor:pointer" @click="$router.go(0)">
     </div>
     <div class="normal-card">
@@ -16,7 +16,7 @@
         </file-item>
     </div>
     <!--提报明细详情-->
-    <submit-item-info ref="submitDetail" :fileData="calcList(detailData.submitedit)">
+    <submit-item-info ref="submitDetail" :fileData="calcList(detailData.submitedit)" @submitEdit="submitEdit">
       <pagination v-if="detailData.submitedit && $route.query.type == 'more'" :total="detailData.submitedit.length"
                   :pageSize="pageSize"
                   :currentPage="currentIndex"
@@ -46,6 +46,7 @@ export default {
       },
       itemStyle: {
         itemWidth:366,
+        margin: 16,
         img: {
           width:29,
           height:29
@@ -54,6 +55,8 @@ export default {
         descript: 10
       },
       detailData:[],
+      //编辑数据
+      editData:[],
       currentIndex: 1,
       pageSize:6
     };
@@ -98,6 +101,11 @@ export default {
         }
       })
     },
+    submitEdit(data) {
+      data.attinfos = this.fileType.fileList(data.attinfos)
+      this.editData = data
+      this.$refs.submitAction.isFileInfoPanlShow = true
+    },
     pageChange(n) {
       this.currentIndex = n
     },

+ 1 - 1
src/SManagement/submitedit_one/components/list.vue

@@ -45,7 +45,7 @@ export default {
   },
   methods: {
     itemClick (id,history) {
-      this.$store.commit('changePath',this.$route.path)
+      window.sessionStorage.setItem('currentPath',this.$route.path)
       this.$router.push({
         path: '/submiteditmag_detail',
         query: {

+ 16 - 27
src/SManagement/user/role-edit/RoleEdit.vue

@@ -8,7 +8,7 @@
       <el-col :span="24" class="title-box">
         <p class="title">角色授权</p>
       </el-col>
-      <el-col :span="12">
+      <el-col :span="10">
         <role-power-left :roleData="power" @currentItemChange="currentItemChange" @checkList="checkList">
           <search @searchActive="searchActive()" @clearData="clearData()" slot="search"></search>
           <pagination :total="6"
@@ -19,7 +19,7 @@
           </pagination>
         </role-power-left>
       </el-col>
-      <el-col :span="12">
+      <el-col :span="14">
         <role-power-right :roleData="currentItem"></role-power-right>
       </el-col>
     </el-row>
@@ -28,9 +28,9 @@
 
 <script>
 import HandleTop from '@/components/handle-top/HandleTop'
-import roleInfoHandle from '@/SManagement/users/modules/roleInfoHandle'
-import RolePowerLeft from '@/SManagement/users/modules/RolePowerLeft'
-import RolePowerRight from '@/SManagement/users/modules/RolePowerRight'
+import roleInfoHandle from '@/SManagement/user/role-edit/components/roleInfoHandle'
+import RolePowerLeft from '@/SManagement/user/role-edit/components/RolePowerLeft'
+import RolePowerRight from '@/SManagement/user/role-edit/components/RolePowerRight'
 import search from '@/components/search/index'
 import Pagination from '@/components/pagination/Pagination'
 
@@ -57,20 +57,18 @@ export default {
         "classname": "sale.role.role",
         "method": "insertormodify_role",
         "content": {
-          "roleid": 0,
-          "rolename": "",
-          "remarks": ""
+            "roleid":3,
+            "rolename":"店长",
+            "remarks":"店长角色"
         }
       },
       pullPower: {
         "classname": "sale.role.role",
         "method": "query_appselect",
         "content": {
-          "roleid": -1,
+          "roleid": 0,
         }
       },
-      //新增数据
-      addObj: {},
       //拉取的权限列表
       power: [],
       //编辑逻辑时数据储存
@@ -85,8 +83,8 @@ export default {
   watch: {
   },
   created () {
-    this.getRoleAdd()
     this.roleEdit()
+    this.getRoleAdd()
   },
   methods: {
     //编辑角色
@@ -102,25 +100,17 @@ export default {
         })
       }
     },
-    //角色新增请求
+    //获取功能列表
     getRoleAdd () {
-      this.$api.requested(this.add).then(res => {
-        if (res.code == 1) {
-          this.addObj = res.data
-          //查询权限
-          if(this.editData) this.pullPower.content.roleid = this.editData.roleid
-          this.$api.requested(this.pullPower).then(res => {
-            this.power = res.data
-            //默认选中数据
-            this.currentItem = res.data[0]
-            console.log(res);
-          })
-        }
+      if(this.editData) this.pullPower.content.roleid = this.editData.roleid
+      this.$api.requested(this.pullPower).then(res => {
+        this.power = res.data
+        console.log(res);
       })
     },
     currentItemChange(data) {
       this.currentItem = data
-      
+      console.log(data);
     },
     //勾选复选框事件
     checkList(data) {
@@ -130,7 +120,6 @@ export default {
     save () {
       this.$refs.info.$refs.ruleForm.validate((val) => {
         if(val) {
-          if(!this.$route.params.data) this.add.content.roleid = this.addObj.roleid
           this.add.content.rolename = this.$refs.info.ruleForm.name
           this.add.content.remarks = this.$refs.info.ruleForm.descript
           this.$api.requested(this.add).then( res => {

+ 6 - 7
src/SManagement/users/modules/RolePowerLeft.vue → src/SManagement/user/role-edit/components/RolePowerLeft.vue

@@ -8,15 +8,15 @@
                                   :header-cell-style="{background:'#EEEEEE'}"
                                   highlight-current-row
                                   @row-click="rowClick">
-      <el-table-column label="应用" width="120">
+      <!-- <el-table-column label="应用" width="120">
         <template slot-scope="scope">{{ scope.row.clients[0].modules[0].apps[0].systemappname }}</template>
-      </el-table-column>
-      <el-table-column label="模块">
+      </el-table-column> -->
+      <!-- <el-table-column label="模块">
         <template slot-scope="scope">{{ scope.row.clients[0].modules[0].systemmodulename }}</template>
-      </el-table-column>
-      <el-table-column label="端口">
+      </el-table-column> -->
+      <!-- <el-table-column label="端口">
         <template slot-scope="scope">{{ scope.row.clients[0].systemclientname }}</template>
-      </el-table-column>
+      </el-table-column> -->
       <el-table-column label="系统">
         <template slot-scope="scope">{{ scope.row.systemname }}</template>
       </el-table-column>
@@ -47,7 +47,6 @@ export default {
     },
     rowClick(data) {
       if(this.currentItem == data) return
-      console.log(data);
       this.currentItem = data      
       this.$emit('currentItemChange',data)
     }

+ 98 - 0
src/SManagement/user/role-edit/components/RolePowerRight.vue

@@ -0,0 +1,98 @@
+<template>
+  <div class="role-power-right">
+    <el-row>
+      <el-col :span="8" style="border-right:1px solid #eeeeee;height:100%">
+        <div class="power-block">
+          <p class="title">模块</p>
+          <el-row :gutter="50" v-if="roleData">
+            <el-col :span="24" v-for="(item,index) in roleData.clients[0].modules" :key="index" style="margin-bottom:6px">
+              <span class="block" :class="{'active':currentIndex==index}" @click="blockClick(index,item)">{{item.systemmodulename}}</span>
+            </el-col>
+          </el-row>
+        </div>
+      </el-col>
+      <el-col :span="8">
+        <div class="power-block">
+          <p class="title">功能</p>
+            <el-row :gutter="100">
+              <el-col :span="12" v-for="(item,index) in currentBlock.apps" :key="index" style="margin-bottom:16px">
+                <el-checkbox :label="item.optionid" :checked="item.isauth == 1">{{item.optionname}}</el-checkbox>
+              </el-col>
+            </el-row>
+        </div>
+      </el-col>
+      <el-col :span="8">
+        <div class="power-block">
+          <p class="title">授权</p>
+
+        </div>
+      </el-col>
+    </el-row>
+    
+  </div>
+</template>
+
+<script>
+export default {
+  name: '',
+  data() {
+    return {
+      powerResult:[],
+      //当前选中的模块
+      currentBlock:'',
+      //当前选中的模块
+      currentIndex:-1
+    };
+  },
+  props:['roleData'],
+  computed:{
+  },
+  watch:{
+    powerResult: {
+      handler(val) {
+        this.$emit('checkChange',val)        
+      }
+    }
+  },
+  created() {
+    
+  },
+  methods: {
+    blockClick(index,item) {
+      this.currentIndex = index
+      this.currentBlock =item
+      console.log(this.currentBlock);
+      
+    }
+  },
+};
+</script>
+
+<style scoped>
+  *{
+    box-sizing: border-box;
+  }
+  .role-power-right {
+    min-height: 100%;
+    width: 100%;
+  }
+  .role-power-right .power-block .title {
+    height: 20px;
+    line-height: 20px;
+    border-left: 4px solid #3874F6;
+    padding-left: 7px;
+    font-size: 14px;
+    font-weight: bold;
+    color: #333333;
+    margin-bottom: 16px;
+  }
+  .block {
+    display: block;
+    height: 32px;
+    line-height: 32px;
+    padding-left: 16px;
+  }
+  .active {
+    background: #EAF1FE;
+  }
+</style>

+ 0 - 0
src/SManagement/users/modules/roleInfoHandle.vue → src/SManagement/user/role-edit/components/roleInfoHandle.vue


+ 20 - 22
src/SManagement/user/role-manage/RoleManage.vue

@@ -56,9 +56,7 @@ export default {
     getRoleData () {
       this.$api.requested(this.param).then(res => {
         this.roleData = res.data
-        this.deleteNoRole()
         console.log(this.roleData);
-
       })
     },
     //角色编辑
@@ -74,28 +72,28 @@ export default {
       this.$router.push('role_edit')
     },
     //删除未提交角色角色
-    deleteNoRole () {
-      let result = this.roleData
-        .filter(item => item.remarks == false && item.rolename == false)
-        .map(item => item.roleid)
-      if(!result) return 
-      result.forEach(item => {
-        this.$api.requested({
-          "classname": "sale.role.role",
-          "method": "delete_role",
-          "content": {
-            "roleid": item
-          }
-        }).then(res => {
-          if(res.code == 1) {
-            this.getRoleData()
-            console.log(111);
+    // deleteNoRole () {
+    //   let result = this.roleData
+    //     .filter(item => item.remarks == false && item.rolename == false)
+    //     .map(item => item.roleid)
+    //   if(!result) return 
+    //   result.forEach(item => {
+    //     this.$api.requested({
+    //       "classname": "sale.role.role",
+    //       "method": "delete_role",
+    //       "content": {
+    //         "roleid": item
+    //       }
+    //     }).then(res => {
+    //       if(res.code == 1) {
+    //         this.getRoleData()
+    //         console.log(111);
             
-          }
-        })
-      })
+    //       }
+    //     })
+    //   })
 
-    }
+    // }
   },
 };
 </script>

+ 8 - 8
src/SManagement/user/team-manage/components/AddUser.vue

@@ -4,22 +4,22 @@
       <el-form ref="formInfo" :model="param.content" :rules="rules" label-width="102px" label-position="left">
         <el-col :span="12">
           <el-form-item label="姓名:" prop="name">
-            <el-input v-model="param.content.name" placeholder="请输入"></el-input>
+            <el-input v-model="param.content.name" placeholder="请输入" size="small"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="职位:" prop="position">
-            <el-input v-model="param.content.position" placeholder="请输入"></el-input>
+            <el-input v-model="param.content.position" placeholder="请输入" size="small"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="手机号:" prop="phonenumber">
-            <el-input v-model="param.content.phonenumber" placeholder="请输入"></el-input>
+            <el-input v-model="param.content.phonenumber" placeholder="请输入" size="small"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="24">
           <el-form-item label="角色配置:" label-width="102px" prop="roleids">
-            <el-select v-model="param.content.roleids" multiple placeholder="请选择">
+            <el-select v-model="param.content.roleids" multiple placeholder="请选择" size="small">
               <el-option
                 v-for="item in checkList"
                 :key="item.rolename"
@@ -32,8 +32,8 @@
       </el-form>
       <el-col :span="24">
         <div class="footer" style="margin-left:50%;transform: translateX(-40%);">
-          <el-button @click="dialogVisible=false">取消</el-button>
-          <el-button type="primary" @click="submitTeam()">提交</el-button>
+          <el-button @click="dialogVisible=false" size="small">取消</el-button>
+          <el-button type="primary" @click="submitTeam()" size="small">提交</el-button>
         </div>
       </el-col>
 
@@ -62,9 +62,9 @@ export default {
       dialogVisible: false,
       rules: {
           name: [
-            { required: true, message: '请输入活动名称', trigger: 'blur' },
+            { required: true, message: '请输入名称', trigger: 'blur' },
           ],
-        phone: [
+        phonenumber: [
           { min: 11, max: 11, message: '请输入正确的电话号', trigger: 'blur' }
         ],
       },

+ 4 - 2
src/SManagement/user/user-info/UserInfo.vue

@@ -16,7 +16,7 @@
       </wx-bind>
 
       <div class="logout">
-        <slot name="logout" :data="userInfo"></slot>
+        <!-- <log-out></log-out> -->
       </div>
     </div>
 </template>
@@ -27,6 +27,7 @@ import upLoad from '@/SManagement/archives_upload/components/upload'
 import baseInfo from '@/SManagement/user/user-info/components/baseInfo'
 import phoneEdit from '@/SManagement/user/user-info/components/PhoneEdit'
 import passEdit from '@/SManagement/user/user-info/components/PassEdit'
+import logOut from '@/SManagement/user/user-info/components/LogOut'
 import wxBind from '@/SManagement/user/user-info/components/wxBind'
 import wxPanl from '@/SManagement/user/user-info/components/wxPanl'
 
@@ -51,7 +52,8 @@ export default {
     phoneEdit,
     passEdit,
     wxBind,
-    wxPanl
+    wxPanl,
+    logOut
   },
   computed:{
     getAvatar() {

+ 0 - 0
src/SManagement/users/modules/LogOut.vue → src/SManagement/user/user-info/components/LogOut.vue


+ 1 - 0
src/SManagement/user/user-info/components/baseInfo.vue

@@ -60,6 +60,7 @@ export default {
     };
   },
   directives: {
+    //监听name input的焦点失去
     focus: {
       bind(el,node,vm) {
         let handle = (e) => {

+ 0 - 111
src/SManagement/users/index.vue

@@ -1,111 +0,0 @@
-<template>
-  <div class="user">
-    <div class="tab-page">
-      <div v-for="(item,index) in tabPageTitle" 
-           :key="index" 
-           class="tab-page-item"
-           :class="{active: currentTabPage == item.auth}"
-           @click="tabPageClick(item)">
-        {{item.name}}
-      </div>
-    </div>
-    <!--团队管理-->
-    <team-manage v-show="currentTabPage == 'team'"></team-manage>
-    <!--角色-->
-    <role-manage v-show="currentTabPage == 'role'"></role-manage>
-    <!--个人中心-->
-    <user-info v-show="currentTabPage == 'user'">
-      <template v-slot:nameEdit="scope">
-        <name-edit :userInfo="scope.data" slot="nameEdit"></name-edit>
-      </template>
-      <template v-slot:phoneEdit="scope">
-        <phone-edit :userInfo="scope.data"></phone-edit>
-      </template>
-      <template v-slot:passEdit="scope">
-        <pass-edit :userInfo="scope.data"></pass-edit>
-      </template>
-      <template v-slot:logout="scope">
-        <log-out :userInfo="scope.data"></log-out>
-      </template>
-    </user-info>
-  </div>
-</template>
-
-<script>
-import TeamManage from '@/SManagement/users/components/TeamManage'
-import RoleManage from '@/SManagement/users/components/RoleManage'
-import UserInfo from '@/SManagement/users/components/UserInfo'
-
-import PassEdit from '@/SManagement/users/modules/PassEdit'
-import PhoneEdit from '@/SManagement/users/modules/PhoneEdit'
-import NameEdit from '@/SManagement/users/modules/NameEdit'
-import LogOut from '@/SManagement/users/modules/LogOut'
-
-export default {
-  name: 'index',
-  data() {
-    return {
-      tabPageTitle: [
-        {name:'团队管理',auth:'team'},
-        {name:'角色管理',auth:'role'},
-        {name:'个人信息',auth:'user'},
-      ],
-      currentTabPage: 'role'
-    };
-  },
-  components: {
-    TeamManage,
-    RoleManage,
-    UserInfo,
-    NameEdit,
-    PhoneEdit,
-    PassEdit,
-    LogOut
-  },
-  computed:{
-  },
-  watch:{
-  },
-  created() {
-  },
-  methods: {
-    tabPageClick(item) {
-      this.currentTabPage = item.auth 
-    },
-    
-  },
-};
-</script>
-
-<style scoped>
-* {
-  box-sizing:border-box;
-}
-  .user {
-    width: 1200px;
-    min-height: 100%;
-    padding: 16px 0;
-    display: flex;
-    margin: 0 auto;
-  }
-  .user .tab-page {
-    width: 204px;
-    height: 128px;
-    background: #ffffff;
-    margin-right: 16px;
-  }
-  .user .tab-page .tab-page-item {
-    width: 100%;
-    height: 40px;
-    text-align: center;
-    line-height: 40px;
-    cursor: pointer;
-    border-left: 4px solid transparent;
-  }
-  
-  .active {
-    background: rgba(56, 116, 246, 0.1);
-    border-left: solid 4px #3874F6 !important;
-  }
-  
-</style>

+ 0 - 74
src/SManagement/users/modules/RolePowerRight.vue

@@ -1,74 +0,0 @@
-<template>
-  <div class="role-power-right" v-if="roleData">
-    <el-row>
-      <el-col :span="8" style="border-right:1px solid #eeeeee;height:100%">
-        <div class="power-block">
-          <p class="title">功能</p>
-            <el-checkbox-group v-model="powerResult">
-              <el-row :gutter="100">
-                <el-col :span="12" v-for="(item,index) in roleData.clients[0].modules[0].apps[0].options" :key="index" style="margin-bottom:16px">
-                  <el-checkbox :label="item.optionid" :checked="item.isauth == 1">{{item.optionname}}</el-checkbox>
-                </el-col>
-              </el-row>
-            </el-checkbox-group>
-        </div>
-      </el-col>
-      <el-col :span="8">
-        <div class="power-block">
-          <p class="title">隐藏字段</p>
-
-        </div>
-      </el-col>
-      <el-col :span="8">
-        <div class="power-block">
-          <p class="title">基础数据</p>
-
-        </div>
-      </el-col>
-    </el-row>
-    
-  </div>
-</template>
-
-<script>
-export default {
-  name: '',
-  data() {
-    return {
-      powerResult:[]
-    };
-  },
-  props:['roleData'],
-  computed:{
-  },
-  watch:{
-    powerResult: {
-      handler(val) {
-        this.$emit('checkChange',val)        
-      }
-    }
-  },
-  methods: {},
-};
-</script>
-
-<style scoped>
-  *{
-    box-sizing: border-box;
-  }
-  .role-power-right {
-    padding: 16px;
-    min-height: 100%;
-    width: 100%;
-  }
-  .role-power-right .power-block .title {
-    height: 20px;
-    line-height: 20px;
-    border-left: 4px solid #3874F6;
-    padding-left: 7px;
-    font-size: 14px;
-    font-weight: bold;
-    color: #333333;
-    margin-bottom: 16px;
-  }
-</style>

+ 9 - 2
src/components/file-block/components/SeeFile.vue

@@ -5,7 +5,10 @@
     :before-close="handleClose"
     v-if="fileData">
     <video :src="fileData.url" controls v-if="fileData.fileType == 'video'"></video>
-    <img :src="fileData.url" alt="" v-if="fileData.fileType == 'image'">
+    <el-image 
+      :src="fileData.url" 
+      v-if="fileData.fileType == 'image'">
+    </el-image>
   </el-dialog>
 </template>
 
@@ -40,7 +43,11 @@ export default {
   img {
     width: 100%;
   }
-
+  /deep/.el-dialog__body {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+  }
   /deep/.el-dialog {
     z-index: 9999;
   }

+ 15 - 5
src/components/file-block/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="file1" v-if="fileData">
-    <div class="item-file" :style="{width:itemStyle.itemWidth + 'px'}" v-for="(item,index) in fileData" :key="index">
+    <div class="item-file" :style="[{width:(!itemStyle.itemWidth ? '100%' : itemStyle.itemWidth + 'px')},{'margin-right':itemStyle.margin + 'px'}]" v-for="(item,index) in fileData" :key="index">
       <div class="left">
         <div class="icon" :style="{width:itemStyle.img.width+'px',height:itemStyle.img.height+'px',}">
           <img :src="item.cover" alt  />
@@ -41,7 +41,8 @@ export default {
       default() {
         return []
       }
-    }
+    },
+    sat_noticeid:''
   },
   components: {
     SeeFile,
@@ -55,8 +56,7 @@ export default {
   methods: {
     deleteFile(item) {
       let temp = item
-      
-      removeFile.removeFileList(item).then(res => {
+      removeFile.removeFileList([item]).then(res => {
         if(res == 1) {
           this.$notify({
             title:'提示',
@@ -87,6 +87,16 @@ export default {
       }
     },
     downLoad(item) {
+      if(this.sat_noticeid) {
+        this.$api.requested({
+          "classname": "saletool.notice.notice",
+          "method": "updateDownloadRecord",
+          "content": {
+                  "sat_noticeid":this.sat_noticeid
+          }
+        }).then(res => {
+        })
+      }
       window.open(item.url,'_self')
     }
   },
@@ -106,7 +116,7 @@ export default {
   background: #ffffff;
   border-radius: 4px 4px 4px 4px;
   border: 1px solid #cccccc;
-  margin: 0 20px 10px 0;
+  margin: 0 0 10px 0;
   padding: 12px 16px;
   display: flex;
   justify-content: space-between;

+ 13 - 2
src/components/layout/modules/aside.vue

@@ -25,7 +25,9 @@ export default {
   },
   computed: {
     getCurrentPath() {
-      return window.sessionStorage.getItem('currentPath') ? window.sessionStorage.getItem('currentPath') : this.$route.path
+      if(this.activePath) {
+        return window.sessionStorage.getItem('currentPath')
+      }
     }
   },
   methods:{
@@ -39,7 +41,7 @@ export default {
     },
     itemClick(path) {
       window.sessionStorage.setItem('currentPath',path)
-    }
+    },
   },
   
   created () {    
@@ -48,6 +50,15 @@ export default {
   },
   watch:{
     $route(){
+      if(this.$route.path == '/submiteditmag_detail' || this.$route.path == '/upload_archives') {
+        return 
+      }
+      this.activePath = this.$route.path
+    },
+    activePath: {
+      handler(val) {
+        window.sessionStorage.setItem('currentPath',this.$route.path)
+      }
     }
   }
 }

+ 2 - 1
src/components/search/index.vue

@@ -6,7 +6,8 @@
       v-model="search"
       clearable
       @clear="clearData()"
-      size="small">
+      size="small"
+      @keyup.enter.native="queryClick()">
       <i slot="prefix" class="el-icon-search" @click="queryClick()"></i>
     </el-input>
   </div>

+ 1 - 1
src/router/SManagement.js

@@ -57,7 +57,7 @@ meta: {
 },
 component: () => import(/* webpackChunkName: "about" */ '@/SManagement/archives_upload/index.vue')
 },{
-path: '/archives_sc_list',
+path: '/archives_scmag',
 name: 'archives_sc',
 meta: {
   title: '商学院',

+ 1 - 4
src/store/index.js

@@ -6,14 +6,11 @@ Vue.use(Vuex);
 export default new Vuex.Store({
   state: {
     loading:false,
-    currentPath:''
   },
   getters: {
   },
   mutations: {
-    changePath(state,path) {
-      state.currentPath = path
-    }
+
   },
   actions: {
   },

+ 3 - 2
src/utils/removeFile.js

@@ -5,12 +5,15 @@
 import api from '@/api/api'
 export default {
   removeFileList(file) {
+    
     let linksids = [];
     if (file.length) {
       for (let i = 0; i < file.length; i++) {
         linksids.push(file[i].linksid)
       }
     }
+    console.log(linksids);
+    
     let param = {
       "accesstoken": "4a6559d45d2a4c6e0ebac2c803344106",
       "classname": "system.attachment.Attachment",
@@ -24,8 +27,6 @@ export default {
     return new Promise(resolve => {
       param.content.linksids = linksids
       api.requested(param).then( res => {
-        console.log(res);
-        
         if(res.code == 1) {
           resolve(res.code)
         }