Browse Source

静态页面

codeMan 2 years ago
parent
commit
006770b949

+ 88 - 10
package-lock.json

@@ -10,6 +10,7 @@
       "dependencies": {
         "@antv/g2": "^4.1.46",
         "@antv/g2plot": "^2.4.8",
+        "@riophae/vue-treeselect": "^0.4.0",
         "axios": "^0.26.0",
         "core-js": "^3.8.3",
         "countup.js": "^2.0.8",
@@ -1845,7 +1846,6 @@
       "version": "7.17.2",
       "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.17.2.tgz",
       "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==",
-      "dev": true,
       "dependencies": {
         "regenerator-runtime": "^0.13.4"
       },
@@ -2052,6 +2052,24 @@
       "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
       "dev": true
     },
+    "node_modules/@riophae/vue-treeselect": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmmirror.com/@riophae/vue-treeselect/-/vue-treeselect-0.4.0.tgz",
+      "integrity": "sha512-J4atYmBqXQmiPFK/0B5sXKjtnGc21mBJEiyKIDZwk0Q9XuynVFX6IJ4EpaLmUgL5Tve7HAS7wkiGGSti6Uaxcg==",
+      "dependencies": {
+        "@babel/runtime": "^7.3.1",
+        "babel-helper-vue-jsx-merge-props": "^2.0.3",
+        "easings-css": "^1.0.0",
+        "fuzzysearch": "^1.0.3",
+        "is-promise": "^2.1.0",
+        "lodash": "^4.0.0",
+        "material-colors": "^1.2.6",
+        "watch-size": "^2.0.0"
+      },
+      "peerDependencies": {
+        "vue": "^2.2.0"
+      }
+    },
     "node_modules/@sideway/address": {
       "version": "4.1.3",
       "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.3.tgz",
@@ -5070,6 +5088,11 @@
       "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
       "dev": true
     },
+    "node_modules/easings-css": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/easings-css/-/easings-css-1.0.0.tgz",
+      "integrity": "sha512-7Uq7NdazNfVtr0RNmPAys8it0zKCuaqxJStYKEl72D3j4gbvXhhaM7iWNbqhA4C94ygCye6VuyhzBRQC4szeBg=="
+    },
     "node_modules/easy-stack": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/easy-stack/-/easy-stack-1.0.1.tgz",
@@ -6436,6 +6459,11 @@
       "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
       "dev": true
     },
+    "node_modules/fuzzysearch": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/fuzzysearch/-/fuzzysearch-1.0.3.tgz",
+      "integrity": "sha512-s+kNWQuI3mo9OALw0HJ6YGmMbLqEufCh2nX/zzV5CrICQ/y4AwPxM+6TIiF9ItFCHXFCyM/BfCCmN57NTIJuPg=="
+    },
     "node_modules/gensync": {
       "version": "1.0.0-beta.2",
       "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz",
@@ -7190,6 +7218,11 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/is-promise": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/is-promise/-/is-promise-2.2.2.tgz",
+      "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
+    },
     "node_modules/is-regex": {
       "version": "1.1.4",
       "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz",
@@ -7584,8 +7617,7 @@
     "node_modules/lodash": {
       "version": "4.17.21",
       "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
-      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-      "dev": true
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
     },
     "node_modules/lodash.debounce": {
       "version": "4.0.8",
@@ -7869,6 +7901,11 @@
         "node": ">=8"
       }
     },
+    "node_modules/material-colors": {
+      "version": "1.2.6",
+      "resolved": "https://registry.npmmirror.com/material-colors/-/material-colors-1.2.6.tgz",
+      "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg=="
+    },
     "node_modules/mdn-data": {
       "version": "2.0.14",
       "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz",
@@ -9617,8 +9654,7 @@
     "node_modules/regenerator-runtime": {
       "version": "0.13.9",
       "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
-      "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
-      "dev": true
+      "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
     },
     "node_modules/regenerator-transform": {
       "version": "0.14.5",
@@ -11377,6 +11413,11 @@
         "vue": "^2.0.0"
       }
     },
+    "node_modules/watch-size": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/watch-size/-/watch-size-2.0.0.tgz",
+      "integrity": "sha512-M92R89dNoTPWyCD+HuUEDdhaDnh9jxPGOwlDc0u51jAgmjUvzqaEMynXSr3BaWs+QdHYk4KzibPy1TFtjLmOZQ=="
+    },
     "node_modules/watchpack": {
       "version": "2.3.1",
       "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.3.1.tgz",
@@ -13467,7 +13508,6 @@
       "version": "7.17.2",
       "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.17.2.tgz",
       "integrity": "sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==",
-      "dev": true,
       "requires": {
         "regenerator-runtime": "^0.13.4"
       }
@@ -13637,6 +13677,21 @@
       "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
       "dev": true
     },
+    "@riophae/vue-treeselect": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmmirror.com/@riophae/vue-treeselect/-/vue-treeselect-0.4.0.tgz",
+      "integrity": "sha512-J4atYmBqXQmiPFK/0B5sXKjtnGc21mBJEiyKIDZwk0Q9XuynVFX6IJ4EpaLmUgL5Tve7HAS7wkiGGSti6Uaxcg==",
+      "requires": {
+        "@babel/runtime": "^7.3.1",
+        "babel-helper-vue-jsx-merge-props": "^2.0.3",
+        "easings-css": "^1.0.0",
+        "fuzzysearch": "^1.0.3",
+        "is-promise": "^2.1.0",
+        "lodash": "^4.0.0",
+        "material-colors": "^1.2.6",
+        "watch-size": "^2.0.0"
+      }
+    },
     "@sideway/address": {
       "version": "4.1.3",
       "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.3.tgz",
@@ -16134,6 +16189,11 @@
       "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
       "dev": true
     },
+    "easings-css": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/easings-css/-/easings-css-1.0.0.tgz",
+      "integrity": "sha512-7Uq7NdazNfVtr0RNmPAys8it0zKCuaqxJStYKEl72D3j4gbvXhhaM7iWNbqhA4C94ygCye6VuyhzBRQC4szeBg=="
+    },
     "easy-stack": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/easy-stack/-/easy-stack-1.0.1.tgz",
@@ -17238,6 +17298,11 @@
       "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
       "dev": true
     },
+    "fuzzysearch": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/fuzzysearch/-/fuzzysearch-1.0.3.tgz",
+      "integrity": "sha512-s+kNWQuI3mo9OALw0HJ6YGmMbLqEufCh2nX/zzV5CrICQ/y4AwPxM+6TIiF9ItFCHXFCyM/BfCCmN57NTIJuPg=="
+    },
     "gensync": {
       "version": "1.0.0-beta.2",
       "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz",
@@ -17824,6 +17889,11 @@
         "isobject": "^3.0.1"
       }
     },
+    "is-promise": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/is-promise/-/is-promise-2.2.2.tgz",
+      "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
+    },
     "is-regex": {
       "version": "1.1.4",
       "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz",
@@ -18139,8 +18209,7 @@
     "lodash": {
       "version": "4.17.21",
       "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
-      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-      "dev": true
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
     },
     "lodash.debounce": {
       "version": "4.0.8",
@@ -18371,6 +18440,11 @@
         "semver": "^6.0.0"
       }
     },
+    "material-colors": {
+      "version": "1.2.6",
+      "resolved": "https://registry.npmmirror.com/material-colors/-/material-colors-1.2.6.tgz",
+      "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg=="
+    },
     "mdn-data": {
       "version": "2.0.14",
       "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz",
@@ -19682,8 +19756,7 @@
     "regenerator-runtime": {
       "version": "0.13.9",
       "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
-      "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
-      "dev": true
+      "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
     },
     "regenerator-transform": {
       "version": "0.14.5",
@@ -21126,6 +21199,11 @@
       "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==",
       "requires": {}
     },
+    "watch-size": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/watch-size/-/watch-size-2.0.0.tgz",
+      "integrity": "sha512-M92R89dNoTPWyCD+HuUEDdhaDnh9jxPGOwlDc0u51jAgmjUvzqaEMynXSr3BaWs+QdHYk4KzibPy1TFtjLmOZQ=="
+    },
     "watchpack": {
       "version": "2.3.1",
       "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.3.1.tgz",

+ 1 - 0
package.json

@@ -10,6 +10,7 @@
   "dependencies": {
     "@antv/g2": "^4.1.46",
     "@antv/g2plot": "^2.4.8",
+    "@riophae/vue-treeselect": "^0.4.0",
     "axios": "^0.26.0",
     "core-js": "^3.8.3",
     "countup.js": "^2.0.8",

+ 16 - 15
src/HManagement/archives/index.vue

@@ -15,9 +15,10 @@
     <!--文件展示-->
     <file-list :fileData="fileData" 
                @upFileData="upFileData"
-               @statusChange="statusChange"></file-list>
+               @statusChange="statusChange"
+               :isCollect="true"></file-list>
     <!--文件信息面板-->
-    <drawer :isFileInfoPanlShow="isFileInfoPanlShow"></drawer>
+    <drawer ref="drawer"></drawer>
     <!--分页-->
     <pagination :total="total"
                 :pageSize="params.content.pageSize"
@@ -27,12 +28,12 @@
 </template>
 
 <script>
-import FileList from '@/HManagement/archives/fileList/FileList'
-import SelectPanl from '@/HManagement/archives/select-panl/SelectPanl'
-import HotNewControl from '@/HManagement/archives/hot-new-control/HotNewControl'
-import BreadCrumbs from '@/HManagement/archives/bread-crumbs/BreadCrumbs'
-import Drawer from '@/HManagement/archives/drawer/Drawer'
-import Pagination from '@/HManagement/archives/pagination/Pagination'
+import FileList from '@/components/fileList/FileList'
+import SelectPanl from '@/components/select-panl/SelectPanl'
+import HotNewControl from '@/components/hot-new-control/HotNewControl'
+import BreadCrumbs from '@/components/bread-crumbs/BreadCrumbs'
+import Drawer from '@/components/drawer/Drawer'
+import Pagination from '@/components/pagination/Pagination'
 export default {
   name: 'index',
   data() {
@@ -55,12 +56,10 @@ export default {
        * data:存放临时文件数据
        * @param filename : 文件夹名
        * @param data     : 文件夹id
-       * @param tempData :临时数据
        */
       tempFileData: [{
         filename: '根目录',
         id: null,
-        tempData: ''
       }],
       //类型选择数据
       titleLists: [
@@ -79,7 +78,7 @@ export default {
       //当前所在文件夹位置
       currentFileIndex: 0,
       //文件信息面板是否显示
-      isFileInfoPanlShow: false,
+      isFileInfoPanlShow: true,
       total:0,
     };
   },
@@ -96,7 +95,7 @@ export default {
   watch:{
 
   },
-  async created() {
+  created() {
     this.getFileList()
     this.tempFileData[0].id = 1
   },
@@ -145,7 +144,7 @@ export default {
       this.getFileList()
     },
     //监听最热组件变化
-    async sortTypeChange(id) {
+    sortTypeChange(id) {
       this.isType = 'all'
       this.$refs.selectPanl.currentName = 'all'
       this.params.content.where.sorttype = id
@@ -171,13 +170,15 @@ export default {
 </script>
 
 <style scoped>
+  * {
+    box-sizing: border-box;
+  }
   .normal-card {
-    margin-top: 3px;
     -webkit-user-select: none;
     -moz-user-select: none;
     -ms-user-select: none;
     user-select: none;
-    height: calc(100% - 51px);
+    height: 100%;
     position: relative;
   }
   .normal-card .el-breadcrumb {

+ 263 - 0
src/HManagement/archives_ad/index.vue

@@ -0,0 +1,263 @@
+<template>
+  <div class="normal-card">
+      <bread-crumbs :tempFileData="tempFileData"
+                  @BreadCrumbsChange="BreadCrumbsChange"></bread-crumbs>
+      <div class="header-panl">
+        <div class="left">
+          <category-select label="素材分类" :selectList="selectList"></category-select> 
+          <div class="search">
+            <el-input placeholder="请输入" v-model="params.content.where.condition" class="input-with-select">
+              <el-button slot="append" icon="el-icon-search" @click.native="queryClick()">查询</el-button>
+            </el-input>
+          </div>
+        </div>
+        <!--最新最热切换-->
+        <hot-new-control :sortType= 'params.content.where.sorttype'
+                           @sortTypeChange="sortTypeChange"></hot-new-control>
+      </div>
+      <div class="file">
+        <file-list :fileData="fileData" 
+               @upFileData="upFileData"
+               @statusChange="statusChange"
+               :isCollect="false"></file-list>
+      </div>
+      <!--分页-->
+      <pagination :total="total"
+                  :pageSize="params.content.pageSize"
+                  :currentPage="params.content.pageNumber"
+                  @pageChange="pageChange"></pagination>
+  </div>
+</template>
+
+<script>
+import HotNewControl from '@/components/hot-new-control/HotNewControl'
+import Pagination from '@/components/pagination/Pagination'
+import FileList from '@/components/fileList/FileList'
+import BreadCrumbs from '@/components/bread-crumbs/BreadCrumbs'
+import CategorySelect from '@/components/category-select/CategorySelect'
+
+
+export default {
+  name: 'index',
+  data() {
+    return {
+      params: {
+          "accesstoken": "14fed62faa62714a6a1e2ebe2d3997e3",
+          "classname": "saletool.salematerial.salematerial",
+          "method": "selectList",
+          "content": {
+              "pageNumber": 1,
+              "pageSize": 10,
+              "parentid": 1,
+              "where": {
+                  "condition": "",
+                  "sorttype": 1
+              }
+          }
+      },
+      //分类配置
+      select: {
+        "accesstoken": "a642ccb6357ea170f2bc875694b5b902",
+        "classname": "saletool.courseware.courseware",
+        "method": "selectMenu",
+        "content": {
+
+        }
+      },
+      /**
+       * data:存放临时文件数据
+       * @param filename : 文件夹名
+       * @param data     : 文件夹id
+       * @param tempData :临时数据
+       */
+      tempFileData: [{
+        filename: '根目录',
+        id: null,
+        tempData: ''
+      }],
+      fileData:[],
+      //列表数据
+      list: [],
+      //分类列表
+      selectList: [],
+      //赛选结果
+      
+      total:20
+    };
+  },
+  components: {
+    HotNewControl,
+    Pagination,
+    FileList,
+    BreadCrumbs,
+    CategorySelect
+  },
+  computed:{
+  },
+  watch:{
+    selectResult: 'selectChangeHandle'
+  },
+  created() {
+    this.getFileList()
+    this.getSelectList()
+  },
+  methods: {
+    //监听赛选改变
+    selectChangeHandle(val) {
+    },
+    //获取文件数据
+    getFileList() {
+      this.$api.requested(this.params).then(res => {
+        this.total = res.total
+        this.fileData = res.data
+      })
+    },
+    //监听文件单击事件
+     upFileData(parentid,name,id) {
+      this.params.content.parentid = id
+      this.currentFileIndex = id
+      this.tempFileData[this.tempFileData.length - 1].id = parentid
+      this.getFileList()
+      this.tempFileData.push({
+        filename:name,
+        id: id
+      })      
+      
+    },
+    //修改收藏状态
+    statusChange(id,item) {
+      this.params.content.parentid = item.parentid
+      this.getFileList()
+    },
+    //获取分类列表
+    getSelectList() {
+      this.$api.requested(this.select).then( res => {
+        this.selectList = res.data
+        console.log(this.selectList);
+        
+      })
+    },
+    //面包屑发出的事件
+    BreadCrumbsChange(index) {
+      if(this.tempFileData.length <=1) return 
+      this.params.content.parentid = index
+      this.tempFileData.splice(this.tempFileData.indexOf(this.tempFileData.find(item => item.id == index)) + 1)
+      this.getFileList()  
+    },
+    //查询
+    queryClick() {
+
+    },
+    sortTypeChange(id) {
+      this.params.content.where.sorttype = id
+      this.getFileData()
+    },
+    //分页切换
+    pageChange() {
+
+    },
+    //单击进入详情
+    itemClick() {
+      this.$router.push({
+        path: '/archives_sc_detail'
+      })
+    },
+    
+  },
+};
+</script>
+
+<style scoped>
+  .normal-card {
+    height: 100%;
+    box-sizing: border-box;
+    position: relative;
+  }
+  .normal-card .header-panl {
+    display: flex;
+    justify-content: space-between;
+    margin: 20px 0 30px 0;
+  }
+  .normal-card .header-panl .left {
+    display: flex;
+  }
+  .normal-card .header-panl .left .select {
+    margin-right: 16px;
+    display: flex;
+    align-items: center;
+  }
+  .normal-card .header-panl .left .select span {
+    margin-right: 8px;
+  }
+  .normal-card .header-panl .left .search {
+    width: 320px;
+    height: 36px;
+  }
+  .normal-card .file {
+    display: flex;
+    flex-wrap: wrap;
+  }
+  .normal-card .file .file-item {
+    width: 212px;
+    height: 204px;
+    background: #FFFFFF;
+    border-radius: 4px;
+    border: 1px solid #CCCCCC;
+    transition: all 0.2s ease-in;
+    margin: 0 16px 16px 0;
+  }
+  .normal-card .file .file-item:hover {
+    box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.16);
+  }
+  .normal-card .file .file-item .top {
+    background: red;
+    width: 212px;
+    height: 118px;
+    border-top-right-radius: 4px;
+    border-top-left-radius: 4px;
+  }
+  .normal-card .file .file-item .top img {
+    
+  }
+  .normal-card .file .file-item .bottom {
+    padding: 10px 20px 16px 16px;
+  }
+  .normal-card .file .file-item .bottom .title {
+    font-size: 14px;
+    font-family: PingFang SC-Bold, PingFang SC;
+    font-weight: bold;
+    color: #333333;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    width: 100%;
+    margin-bottom: 5px;
+  }
+  .normal-card .file .file-item .bottom .descript {
+    font-size: 12px;
+    font-family: PingFang SC-Regular, PingFang SC;
+    font-weight: 400;
+    color: #666666;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    width: 100%;
+    margin-bottom: 4px;
+  }
+  .normal-card .file .file-item .bottom .people {
+    font-size: 10px;
+    font-family: PingFang SC-Regular, PingFang SC;
+    font-weight: 400;
+    color: #999999;
+  }
+  .normal-card .el-pagination {
+    position: absolute;
+    bottom: 0;
+    right: 16px;
+  }
+</style>
+<style>
+  .input-with-select {
+    height: 34px;
+  }
+</style>

+ 265 - 0
src/HManagement/archives_admag/index.vue

@@ -0,0 +1,265 @@
+<template>
+  <div class="normal-card">
+      <bread-crumbs :tempFileData="tempFileData"
+                  @BreadCrumbsChange="BreadCrumbsChange"></bread-crumbs>
+      <div class="header-panl">
+        <div class="left">
+          <category-select label="素材分类" :selectList="selectList"></category-select>
+          <div class="search">
+            <el-input placeholder="请输入" v-model="params.content.where.condition" class="input-with-select">
+              <el-button slot="append" icon="el-icon-search" @click.native="queryClick()">查询</el-button>
+            </el-input>
+          </div>
+        </div>
+        <!--最新最热切换-->
+        <hot-new-control :sortType= 'params.content.where.sorttype'
+                           @sortTypeChange="sortTypeChange"></hot-new-control>
+      </div>
+      <div class="file">
+        <file-list :fileData="fileData" 
+               @upFileData="upFileData"
+               @statusChange="statusChange"
+               :isCollect="false"></file-list>
+      </div>
+      <!--分页-->
+      <pagination :total="total"
+                  :pageSize="params.content.pageSize"
+                  :currentPage="params.content.pageNumber"
+                  @pageChange="pageChange"></pagination>
+  </div>
+</template>
+
+<script>
+import HotNewControl from '@/components/hot-new-control/HotNewControl'
+import Pagination from '@/components/pagination/Pagination'
+import FileList from '@/components/fileList/FileList'
+import BreadCrumbs from '@/components/bread-crumbs/BreadCrumbs'
+import CategorySelect from '@/components/category-select/CategorySelect'
+export default {
+  name: 'index',
+  data() {
+    return {
+      params: {
+          "accesstoken": "14fed62faa62714a6a1e2ebe2d3997e3",
+          "classname": "saletool.salematerial.salematerial",
+          "method": "selectList",
+          "content": {
+              "pageNumber": 1,
+              "pageSize": 10,
+              "parentid": 1,
+              "where": {
+                  "condition": "",
+                  "sorttype": 1
+              }
+          }
+      },
+      //分类配置
+      select: {
+        "accesstoken": "a642ccb6357ea170f2bc875694b5b902",
+        "classname": "saletool.courseware.courseware",
+        "method": "selectMenu",
+        "content": {
+
+        }
+      },
+      /**
+       * data:存放临时文件数据
+       * @param filename : 文件夹名
+       * @param data     : 文件夹id
+       * @param tempData :临时数据
+       */
+      tempFileData: [{
+        filename: '根目录',
+        id: null,
+        tempData: ''
+      }],
+      fileData:[],
+      //列表数据
+      list: [],
+      //分类列表
+      selectList: [],
+      total:20
+    };
+  },
+  components: {
+    HotNewControl,
+    Pagination,
+    FileList,
+    BreadCrumbs,
+    CategorySelect
+
+  },
+  computed:{
+  },
+  created() {
+    this.getFileList()
+    this.getSelectList()
+  },
+  methods: {
+    //监听赛选改变
+    selectChangeHandle(val) {
+    },
+    //获取文件数据
+    getFileList() {
+      this.$api.requested(this.params).then(res => {
+        this.total = res.total
+        this.fileData = res.data
+      })
+    },
+    //监听文件单击事件
+     upFileData(parentid,name,id) {
+      this.params.content.parentid = id
+      this.currentFileIndex = id
+      this.tempFileData[this.tempFileData.length - 1].id = parentid
+      this.getFileList()
+      this.tempFileData.push({
+        filename:name,
+        id: id
+      })      
+      
+    },
+    //修改收藏状态
+    statusChange(id,item) {
+      this.params.content.parentid = item.parentid
+      this.getFileList()
+    },
+    //获取分类列表
+    getSelectList() {
+      this.$api.requested(this.select).then( res => {
+        this.selectList = res.data
+      })
+    },
+    //面包屑发出的事件
+    BreadCrumbsChange(index) {
+      if(this.tempFileData.length <=1) return 
+      this.params.content.parentid = index
+      this.tempFileData.splice(this.tempFileData.indexOf(this.tempFileData.find(item => item.id == index)) + 1)
+      this.getFileList()  
+    },
+    //查询
+    queryClick() {
+
+    },
+    sortTypeChange(id) {
+      this.params.content.where.sorttype = id
+      this.getFileData()
+    },
+    //分页切换
+    pageChange() {
+
+    },
+    //单击进入详情
+    itemClick() {
+      this.$router.push({
+        path: '/archives_sc_detail'
+      })
+    },
+    //自定义treeselect绑定键
+    normalizer(node) { //方法
+      console.log(node);
+      // 去掉children=[]的children属性 respectively
+      if (node.children && !node.children.length) {
+        delete node.children
+      }
+      return {
+        id: node.sat_courseware_classid, // 键名转换,方法默认是label和children进行树状渲染
+        label: node.classname,
+        children: node.children,
+      }
+    },
+  },
+};
+</script>
+
+<style scoped>
+  .normal-card {
+    height: 100%;
+    box-sizing: border-box;
+    position: relative;
+  }
+  .normal-card .header-panl {
+    display: flex;
+    justify-content: space-between;
+    margin: 20px 0 30px 0;
+  }
+  .normal-card .header-panl .left {
+    display: flex;
+  }
+  .normal-card .header-panl .left .select {
+    margin-right: 16px;
+    display: flex;
+    align-items: center;
+  }
+  .normal-card .header-panl .left .search {
+    width: 320px;
+    height: 36px;
+  }
+  .normal-card .file {
+    display: flex;
+    flex-wrap: wrap;
+  }
+  .normal-card .file .file-item {
+    width: 212px;
+    height: 204px;
+    background: #FFFFFF;
+    border-radius: 4px;
+    border: 1px solid #CCCCCC;
+    transition: all 0.2s ease-in;
+    margin: 0 16px 16px 0;
+  }
+  .normal-card .file .file-item:hover {
+    box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.16);
+  }
+  .normal-card .file .file-item .top {
+    background: red;
+    width: 212px;
+    height: 118px;
+    border-top-right-radius: 4px;
+    border-top-left-radius: 4px;
+  }
+  .normal-card .file .file-item .top img {
+    
+  }
+  .normal-card .file .file-item .bottom {
+    padding: 10px 20px 16px 16px;
+  }
+  .normal-card .file .file-item .bottom .title {
+    font-size: 14px;
+    font-family: PingFang SC-Bold, PingFang SC;
+    font-weight: bold;
+    color: #333333;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    width: 100%;
+    margin-bottom: 5px;
+  }
+  .normal-card .file .file-item .bottom .descript {
+    font-size: 12px;
+    font-family: PingFang SC-Regular, PingFang SC;
+    font-weight: 400;
+    color: #666666;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    width: 100%;
+    margin-bottom: 4px;
+  }
+  .normal-card .file .file-item .bottom .people {
+    font-size: 10px;
+    font-family: PingFang SC-Regular, PingFang SC;
+    font-weight: 400;
+    color: #999999;
+  }
+  .normal-card .el-pagination {
+    position: absolute;
+    right: 16px;
+    bottom: 0;
+  }
+</style>
+<style>
+  .normal-card .header-panl .left .select .vue-treeselect {
+    width: 150px;
+    height: 100%;
+  }
+</style>

+ 251 - 0
src/HManagement/archives_sc/archives_details/index.vue

@@ -0,0 +1,251 @@
+<template>
+  <div class="detail">
+    <div class="left">
+      <div class="left-box">
+        <div class="top">
+          <video src="@/assets/序列 01.mp4" controls v-if="false"></video>
+          <div class="see" v-else>
+            <div class="image">
+              <img src="@/assets/file_icons/image.png" alt="">
+            </div>
+            <el-button type="primary" size="small">在线预览</el-button>
+          </div>
+        </div>
+        <div class="footer">
+          <span class="title">销售技巧——第一节销售基础概念</span>
+          <span class="people">25人学习</span>
+        </div>
+      </div>
+      
+    </div>
+    <div class="right">
+      <div class="header">
+        <p class="title">第一章 销售技巧——第一节销售基础概念</p>
+        <div class="info">
+          <p>发布者:<span>张三丰</span></p>
+          <p>2022-13-02 15:0:2</p>
+        </div>
+      </div>
+      <div class="body">
+        <div class="descript">
+          <p class="title">课程描述</p>
+          <p class="content">产品知识要点,产品知识要点,产品知识要点,产品知识要点,产品知识要点,产品知识要点产品知识要点,产品知识要点,产品知识要点,产品知识要点,产品知识要点,产品知识要点产品知识要点,产品知识要点,产品知识要点,产品知识要点,产品知识要点,产品知识要点</p>
+        </div>
+        <div class="main">
+          <p class="title">课件</p>
+          <div class="file">
+            <div class="file-item">
+              <div class="left1">
+                <img src="@/assets/file_icons/image.png" alt="">
+                <div class="info">
+                  <p class="title">销售策略</p>
+                  <p class="time">2011-01-02 15:56:42</p>
+                </div>
+              </div>
+              <div style="color:#3874F6">预览</div>
+            </div>
+            <div class="file-item">
+              <div class="left1">
+                <img src="@/assets/file_icons/image.png" alt="">
+                <div class="info">
+                  <p class="title">销售策略</p>
+                  <p class="time">2011-01-02 15:56:42</p>
+                </div>
+              </div>
+              <div style="color:#3874F6">预览</div>
+            </div>
+          </div>
+          <el-button type="primary" size="small">下载文件</el-button>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'index',
+  data() {
+    return {
+        param: {
+          "accesstoken": "305def8607e623c06f118e94adcebaf1",
+          "classname": "saletool.courseware.courseware",
+          "method": "selectDetail",
+          "content": {
+              "sat_coursewareid": 12
+          }
+        },
+    };
+  },
+  computed:{
+  },
+  watch:{
+  },
+  created() {
+    this.getDetailData()
+  },
+  methods: {
+    getDetailData() {
+      this.$api.requested(this.param).then( res => {
+        console.log(res);
+      })
+    }
+  },
+};
+</script>
+
+<style scoped>
+  * {
+    box-sizing: border-box;   
+  }
+  .detail {
+    width: 100%;
+    height: 100%;
+    display: flex;
+    font-family: PingFang SC-Bold, PingFang SC;
+  }
+  .detail .left {
+    width: calc(100% - 475px);
+  }
+  .detail .left .left-box {
+    width: 100%;
+    height: 100%;
+    background: #EEEEEE;
+    border-radius: 4px 4px 0px 0px;
+  }
+  .detail .left .left-box .top {
+    height: calc(100% - 73px);
+    position: relative;
+  }
+  .detail .left .left-box .top video {
+    width: 100%;
+    height: 100%;
+  }
+  .detail .left .left-box .top .see {
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    transform: translate(-50%,-50%);
+    width: 120px;
+    height: 180px;
+  }
+  .detail .left .left-box .top .see .image {
+    width: 100%;
+    height: 120px;
+    padding: 0 11px;
+  }
+  .detail .left .left-box .top .see .image img {
+    width: 100%;
+    height: 100%;
+  }
+  .detail .left .left-box .top .see .el-button {
+    position: absolute;
+    width: 100%;
+    margin-top: 20px;
+  }
+  .detail .left .left-box .footer {
+    height: 73px;
+    padding: 0 30px;
+    background: #000000;
+    display: flex;
+    line-height: 73px;
+    justify-content: space-between;
+  }
+
+  .detail .left .left-box .footer span:first-child {
+    font-size: 24px;
+    font-family: PingFang SC-Bold, PingFang SC;
+    font-weight: bold;
+    color: #FFFFFF;
+  }
+  .detail .left .left-box .footer span:last-child {
+    font-size: 16px;
+    font-family: PingFang SC-Regular, PingFang SC;
+    font-weight: 400;
+    color: #FFFFFF;
+  }
+  .detail .right {
+    width: 475px;
+    background: #FFFFFF;
+  }
+  .detail .right .header {
+    padding: 30px;
+  }
+  .detail .right .header .title {
+    font-size: 16px;
+    font-weight: bold;
+    color: #333333;
+    margin-bottom: 20px;
+  }
+  .detail .right .header .info {
+    font-weight: 400;
+    color: #666666;
+    display: flex;
+    justify-content: space-between;
+    font-size: 14px;
+  }
+  .detail .right .body {
+    padding: 30px;
+    border-top: 1px solid #DDDDDD;
+  }
+  .detail .right .body .descript {
+    margin-bottom: 40px;
+  }
+  .detail .right .body .descript .title {
+    font-size: 16px;
+    font-weight: bold;
+    margin-bottom: 20px;
+  }
+  .detail .right .body .descript .content {
+    font-size: 14px;
+  }
+  .detail .right .body .main {
+
+  }
+  .detail .right .body .main .title {
+    margin-bottom: 20px;
+  }
+  .detail .right .body .main .file {
+    width: 415px;
+    margin-bottom: 20px;
+  }
+  .detail .right .body .main .file .file-item {
+    width: 100%;
+    height: 96px;
+    padding: 16px 30px 16px 16px;
+    margin-bottom: 10px;
+    border: 1px solid #CCCCCC;
+    border-radius: 4px;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+  }
+  .detail .right .body .main .file .file-item .left1 {
+    display: flex;
+    justify-content: space-between;
+    margin-right: 22px;
+    align-items: center;
+  }
+  .detail .right .body .main .file .file-item .left1 img {
+    width: 53px;
+    height: 64px;
+    margin-right: 16px;
+  }
+  .detail .right .body .main .file .file-item .left1 .info {
+    
+  }
+  .detail .right .body .main .file .file-item .left1 .info .title {
+    font-size: 16px;
+    font-weight: bold;
+    color: #333333;
+    margin-bottom: 16px;
+  }
+  .detail .right .body .main .file .file-item .left1 .info .time {
+    font-size: 12px;
+    font-weight: 400;
+    color: #999999;
+  }
+  .detail .right .body .main .file .file-item .right {
+    
+  }
+</style>

+ 277 - 0
src/HManagement/archives_sc/index.vue

@@ -0,0 +1,277 @@
+<template>
+  <div class="normal-card">
+      <div class="header-panl">
+        <div class="left">
+          <div class="select">
+            <span>素材分类: </span>
+            <el-select v-model="selectId" placeholder="请选择" style="width:100px">
+              <el-option
+                :key="11111"
+                :label="1111"
+                :value="1111">
+              </el-option>
+          </el-select>
+          </div>
+          <div class="search">
+            <el-input placeholder="请输入" v-model="param.content.where.condition" class="input-with-select">
+              <el-button slot="append" icon="el-icon-search" @click.native="queryClick()">查询</el-button>
+            </el-input>
+          </div>
+        </div>
+        <!--最新最热切换-->
+        <hot-new-control :sortType= 'param.content.where.sorttype'
+                           @sortTypeChange="sortTypeChange"></hot-new-control>
+      </div>
+      <div class="file">
+        <div class="file-item" @click="itemClick()">
+          <div class="top"></div>
+          <div class="bottom">
+            <p class="title">销售技巧培训小白课</p>
+            <p class="descript">1111111111111111111111111</p>
+            <p class="people">5人学习</p>
+          </div>
+        </div>
+        <div class="file-item">
+          <div class="top"></div>
+          <div class="bottom">
+            <p class="title">销售技巧培训小白课</p>
+            <p class="descript">1111111111111111111111111</p>
+            <p class="people">5人学习</p>
+          </div>
+        </div>
+        <div class="file-item">
+          <div class="top"></div>
+          <div class="bottom">
+            <p class="title">销售技巧培训小白课</p>
+            <p class="descript">1111111111111111111111111</p>
+            <p class="people">5人学习</p>
+          </div>
+        </div>
+        <div class="file-item">
+          <div class="top"></div>
+          <div class="bottom">
+            <p class="title">销售技巧培训小白课</p>
+            <p class="descript">1111111111111111111111111</p>
+            <p class="people">5人学习</p>
+          </div>
+        </div>
+        <div class="file-item">
+          <div class="top"></div>
+          <div class="bottom">
+            <p class="title">销售技巧培训小白课</p>
+            <p class="descript">1111111111111111111111111</p>
+            <p class="people">5人学习</p>
+          </div>
+        </div>
+        <div class="file-item">
+          <div class="top"></div>
+          <div class="bottom">
+            <p class="title">销售技巧培训小白课</p>
+            <p class="descript">1111111111111111111111111</p>
+            <p class="people">5人学习</p>
+          </div>
+        </div>
+        <div class="file-item">
+          <div class="top"></div>
+          <div class="bottom">
+            <p class="title">销售技巧培训小白课</p>
+            <p class="descript">1111111111111111111111111</p>
+            <p class="people">5人学习</p>
+          </div>
+        </div>
+        <div class="file-item">
+          <div class="top"></div>
+          <div class="bottom">
+            <p class="title">销售技巧培训小白课</p>
+            <p class="descript">1111111111111111111111111</p>
+            <p class="people">5人学习</p>
+          </div>
+        </div>
+        <div class="file-item">
+          <div class="top"></div>
+          <div class="bottom">
+            <p class="title">销售技巧培训小白课</p>
+            <p class="descript">1111111111111111111111111</p>
+            <p class="people">5人学习</p>
+          </div>
+        </div>
+      </div>
+      <!--分页-->
+      <pagination :total="total"
+                  :pageSize="param.content.pageSize"
+                  :currentPage="param.content.pageNumber"
+                  @pageChange="pageChange"></pagination>
+  </div>
+</template>
+
+<script>
+import HotNewControl from '@/components/hot-new-control/HotNewControl'
+import Pagination from '@/components/pagination/Pagination'
+export default {
+  name: 'index',
+  data() {
+    return {
+      param: {
+        "accesstoken": "90bb795b4b8bd8f5cc6aa97d6d1d1820",
+        "classname": "saletool.courseware.courseware",
+        "method": "selectList",
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 10,
+          "where": {
+            "condition": "",
+            "sorttype": 1,
+            "sat_courseware_classid": ''
+          }
+        }
+      },
+      //分类配置
+      select: {
+        "accesstoken": "a642ccb6357ea170f2bc875694b5b902",
+        "classname": "saletool.courseware.courseware",
+        "method": "selectMenu",
+        "content": {
+
+        }
+      },
+      //列表数据
+      list: [],
+      //分类列表
+      selectList: [],
+      selectId: 11111,
+      total:20
+    };
+  },
+  components: {
+    HotNewControl,
+    Pagination
+  },
+  computed:{
+  },
+  watch:{
+  },
+  created() {
+    this.getFileData()
+    this.getSelectList()
+  },
+  methods: {
+    //获取列表数据
+    getFileData() {
+      this.$api.requested(this.param).then( res => {
+        console.log(res);
+        this.list = res.data
+      })
+    },
+    //获取分类列表
+    getSelectList() {
+      this.$api.requested(this.select).then( res => {
+        console.log(res)
+        this.selectList = res.data
+      })
+    },
+    //查询
+    queryClick() {
+
+    },
+    sortTypeChange(id) {
+      this.param.content.where.sorttype = id
+      this.getFileData()
+    },
+    //分页切换
+    pageChange() {
+
+    },
+    //单击进入详情
+    itemClick() {
+      this.$router.push({
+        path: '/archives_sc_detail'
+      })
+    }
+  },
+};
+</script>
+
+<style scoped>
+  .normal-card {
+    height: 100%;
+    box-sizing: border-box;
+    position: relative;
+  }
+  .normal-card .header-panl {
+    display: flex;
+    justify-content: space-between;
+    margin-bottom: 30px;
+  }
+  .normal-card .header-panl .left {
+    display: flex;
+  }
+  .normal-card .header-panl .left .select {
+    margin-right: 16px;
+  }
+  .normal-card .header-panl .left .search {
+    width: 320px;
+    height: 36px;
+  }
+  .normal-card .file {
+    display: flex;
+    flex-wrap: wrap;
+  }
+  .normal-card .file .file-item {
+    width: 212px;
+    height: 204px;
+    background: #FFFFFF;
+    border-radius: 4px;
+    border: 1px solid #CCCCCC;
+    transition: all 0.2s ease-in;
+    margin: 0 16px 16px 0;
+  }
+  .normal-card .file .file-item:hover {
+    box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.16);
+  }
+  .normal-card .file .file-item .top {
+    background: red;
+    width: 212px;
+    height: 118px;
+    border-top-right-radius: 4px;
+    border-top-left-radius: 4px;
+  }
+  .normal-card .file .file-item .top img {
+    
+  }
+  .normal-card .file .file-item .bottom {
+    padding: 10px 20px 16px 16px;
+  }
+  .normal-card .file .file-item .bottom .title {
+    font-size: 14px;
+    font-family: PingFang SC-Bold, PingFang SC;
+    font-weight: bold;
+    color: #333333;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    width: 100%;
+    margin-bottom: 5px;
+  }
+  .normal-card .file .file-item .bottom .descript {
+    font-size: 12px;
+    font-family: PingFang SC-Regular, PingFang SC;
+    font-weight: 400;
+    color: #666666;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    width: 100%;
+    margin-bottom: 4px;
+  }
+  .normal-card .file .file-item .bottom .people {
+    font-size: 10px;
+    font-family: PingFang SC-Regular, PingFang SC;
+    font-weight: 400;
+    color: #999999;
+  }
+  .normal-card .el-pagination {
+    position: absolute;
+    right: 16px;
+    bottom: 0;
+  }
+</style>

+ 8 - 8
src/HManagement/archivesmag/index.vue

@@ -27,12 +27,12 @@
 </template>
 
 <script>
-import FileList from '@/HManagement/archives/fileList/FileList'
-import SelectPanl from '@/HManagement/archives/select-panl/SelectPanl'
-import HotNewControl from '@/HManagement/archives/hot-new-control/HotNewControl'
-import BreadCrumbs from '@/HManagement/archives/bread-crumbs/BreadCrumbs'
-import Drawer from '@/HManagement/archives/drawer/Drawer'
-import Pagination from '@/HManagement/archives/pagination/Pagination'
+import FileList from '@/components/fileList/FileList'
+import SelectPanl from '@/components/select-panl/SelectPanl'
+import HotNewControl from '@/components/hot-new-control/HotNewControl'
+import BreadCrumbs from '@/components/bread-crumbs/BreadCrumbs'
+import Drawer from '@/components/drawer/Drawer'
+import Pagination from '@/components/pagination/Pagination'
 export default {
   name: 'index',
   data() {
@@ -174,12 +174,12 @@ export default {
 
 <style scoped>
   .normal-card {
-    margin-top: 3px;
+    box-sizing: border-box;
     -webkit-user-select: none;
     -moz-user-select: none;
     -ms-user-select: none;
     user-select: none;
-    height: calc(100% - 51px);
+    height: 100%;
     position: relative;
   }
   .normal-card .el-breadcrumb {

+ 99 - 0
src/HManagement/notice/compoents/FileItem.vue

@@ -0,0 +1,99 @@
+<template>
+  <div class="item-file">
+    <div class="left">
+      <div class="icon">
+        <img src="../../../assets/file_icons/image.png" alt />
+      </div>
+      <div class="text">
+        <p>销售策略</p>
+        <p>2022-01-02 15:30:02</p>
+      </div>
+    </div>
+    <div class="right">
+      <p>预览</p>
+      <button v-if="isDownLoad">下载</button>
+    </div>
+  </div>
+</template>
+
+<script>
+
+export default {
+  name: 'FileItem',
+  data () {
+    return {
+    };
+  },
+  props: {
+    isDownLoad: Boolean
+  },
+  computed: {
+  },
+  watch: {
+  },
+  methods: {},
+};
+</script>
+
+<style scoped>
+.item-file {
+  width: 334px;
+  height: 44px;
+  background: #ffffff;
+  border-radius: 4px 4px 4px 4px;
+  border: 1px solid #cccccc;
+  margin: 0 10px 10px 0;
+  padding: 12px 16px;
+  display: flex;
+  justify-content: space-between;
+}
+.item-file .left {
+  display: flex;
+  align-items: center;
+}
+.item-file .left .icon {
+  width: 29px;
+  height: 29px;
+  margin-right: 16px;
+}
+.item-file .left .icon img {
+  width: 29px;
+  height: 29px;
+}
+.item-file .left .text {
+}
+.item-file .left .text p:first-child {
+  font-size: 14px;
+  font-family: PingFang SC-Bold, PingFang SC;
+  font-weight: bold;
+  color: #333333;
+  line-height: 22px;
+}
+.item-file .left .text p:last-child {
+  font-size: 10px;
+  font-family: PingFang SC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #999999;
+  line-height: 22px;
+}
+.item-file .right {
+  display: flex;
+  align-items: center;
+}
+.item-file .right p {
+  font-size: 14px;
+  font-family: PingFang SC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #3874f6;
+}
+.item-file .right button {
+  width: 70px;
+  height: 32px;
+  background: #3874f6;
+  border-radius: 52px;
+  border: none;
+  color: #ffffff;
+  margin-left: 16px;
+  cursor: pointer;
+}
+</style>

+ 143 - 0
src/HManagement/notice/compoents/list.vue

@@ -0,0 +1,143 @@
+<template>
+  <div class="list">
+    <div class="list-box" v-for="(item,index) in list" :key="index" @click="itemClick(item.sat_noticeid)">
+      <div class="item-left">
+        <el-image 
+                src="https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg" 
+                lazy
+                fit="fill"></el-image>
+        <div class="text-panl">
+          <div class="title">
+            {{item.title}}
+          </div>
+          <div class="descript">
+            {{item.summary.trim()}}
+          </div>
+          <div class="info">
+            <span class="tag">{{item.classname}}</span>
+            <span>{{item.createdate}}</span>
+            <span>阅读量:<span>{{item.readcount}}</span></span>
+            <span><span>附件数量:<span>{{item.readpersoncount}}</span></span></span>
+          </div>
+        </div>
+      </div>
+      <div class="item-right">
+        <p :style="{'background':item.readstatus == '已读' ? '#FA8C16' : '#EEEEEE'}">{{item.readstatus}}</p>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'list',
+  data() {
+    return {
+    };
+  },
+  props: {
+    list: {
+      default() {
+        return []
+      }
+    }
+  },
+  computed:{
+  },
+  watch:{
+  },
+  methods: {
+    //通告iten单击事件
+    itemClick(id) {
+      this.$router.push({
+        path: '/notice_detail',
+        query: {
+          sat_noticeid: id
+        }
+      })
+    },
+  },
+};
+</script>
+
+<style scoped>
+ .list {
+  margin-top: 30px;
+}
+ .list-box {
+  display: flex;
+  justify-content: space-between;
+  padding:  20px 0;
+  border-bottom: 1px solid #DDDDDD;
+  padding-right: 30px;
+}
+ .list-box:hover {
+  cursor: pointer;
+  background: #FAFAFA;
+}
+ .list-box:first-child {
+  padding-top: 0;
+}
+ .list-box:last-child {
+  border-bottom: none;
+}
+ .list-box .item-left {
+  display: flex;
+}
+ .list-box .item-left .el-image {
+  width: 315px;
+  height: 80px;
+  margin-right: 20px;
+  border-radius: 8px;
+}
+ .list-box .item-left .text-panl .title {
+  width: 650px;
+  font-size: 14px;
+  color: #333333;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
+ .list-box .item-left .text-panl .descript {
+  width: 650px;
+  font-size: 12px;
+  color: #666666;
+  margin-top: 9px;
+}
+ .list-box .item-left .text-panl .info {
+  line-height: 22px;
+  margin-top: 10px;
+}
+ .list-box .item-left .text-panl .info .tag {
+  height: 22px;
+  border: 1px solid #FA8C16;
+  color: #FA8C16;
+  margin-right: 10px;
+  text-align: center;
+  padding: 0 10px;
+}
+ .list-box .item-left .text-panl .info span {
+  font-size: 12px;
+  display: inline-block;
+}
+ .list-box .item-left .text-panl .info span:nth-child(2) {
+  margin-right: 38px;
+}
+ .list-box .item-left .text-panl .info span:nth-child(3) {
+  margin-right: 50px;
+}
+
+ .list-box .item-right {
+
+}
+ .list-box .item-right p {
+  width: 60px;
+  height: 32px;
+  border-radius: 4px;
+  text-align: center;
+  line-height: 32px;
+  font-size: 14px;
+  color: #FFFFFF;
+  cursor: pointer;
+}
+</style>

+ 50 - 157
src/HManagement/notice/index.vue

@@ -2,116 +2,83 @@
   <div class="normal-card">
     <div class="search">
       <el-input placeholder="请输入" v-model="searchTitle" class="input-with-select">
-        <el-button slot="append" icon="el-icon-search">查询</el-button>
+        <el-button slot="append" icon="el-icon-search" @click.native="queryClick()">查询</el-button>
       </el-input>
     </div>
-    <div class="list">
-      <div class="list-box">
-        <div class="item-left" @click="itemClick()" >
-          <el-image 
-                   src="https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg" 
-                  lazy
-                  fit="fill"></el-image>
-          <div class="text-panl">
-            <div class="title">
-              通告标题通告标题通告标题通告标题通告通告标题通告标题
-            </div>
-            <div class="descript">
-              通告标题通告标题通告标题通告标题通告通告标题通告标题
-            </div>
-            <div class="info">
-              <span class="tag">促销活动</span>
-              <span>2022-01-01 11:11:11</span>
-              <span>阅读量:<span>12</span></span>
-              <span><span>附件数量:<span>1</span></span></span>
-            </div>
-          </div>
-        </div>
-        <div class="item-right">
-          <p class="message">未读</p>
-        </div>
-      </div>
-      <div class="list-box">
-        <div class="item-left">
-          <el-image src="https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg" @click="itemClick()" lazy></el-image>
-          <div class="text-panl">
-            <div class="title">
-              通告标题通告标题通告标题通告标题通告通告标题通告标题
-            </div>
-            <div class="descript">
-              通告标题通告标题通告标题通告标题通告通告标题通告标题
-            </div>
-            <div class="info">
-              <span class="tag">促销活动</span>
-              <span>2022-01-01 11:11:11</span>
-              <span>阅读量:<span>12</span></span>
-              <span><span>附件数量:<span>1</span></span></span>
-            </div>
-          </div>
-        </div>
-        <div class="item-right">
-          <p class="message">未读</p>
-        </div>
-      </div>
-    </div>
-    
-    <div class="pagination">
-      <el-pagination
-        background
-        small
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        :current-page="currentPage"
-        :page-size="param.content.pageSize"
-        layout="total, prev, pager, next, jumper"
-        :total="total">
-      </el-pagination>
-    </div>
+    <list :list="list"></list>
+    <pagination :total="total"
+                :pageSize="param.content.pageSize"
+                :currentPage="param.content.pageNumber"
+                @pageChange="pageChange">
+    </pagination>
   </div>
 </template>
 
 <script>
+import Pagination from '@/components/pagination/Pagination'
+import List from '@/HManagement/notice/compoents/list'
 export default {
   name: "Index",
   data() {
     return {
       param:{
-        "classname": "webmanage.users.users",
-        "method": "query_userList",
+        "accesstoken": "2686aade24d20b15bbaa177dc35e638c",
+        "classname": "saletool.notice.notice",
+        "method": "queryNoticeList",
         "content": {
           "pageNumber": 1,
-          "pageSize": 20,
+          "pageSize": 4,
           "where":{
-            "condition":""
+              "condition":"通告"
           }
         }
       },
+      query: {
+      "accesstoken": "8930ac9413750f2a711a2d154cb2de5a",
+      "classname": "saletool.notice.noticeclass",
+      "method": "queryNoticeClass",
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 10,
+            "where":{
+                "condition":"通告"
+            }
+        }
+      },
       searchTitle: '',
       list:[],
       total:0,
       currentPage:0,
     };
   },
-  created() {},
+  components: {
+    Pagination,
+    List
+  },
+  created() {
+    this.getNoticeData()
+  },
   mounted() {},
   methods: {
-    handleSizeChange(val) {
-      // console.log(`每页 ${val} 条`);
-      this.param.content.pageSize = val
-      this.listData()
+    //获取通告列表
+    getNoticeData() {
+      this.$api.requested(this.param).then(res =>{
+        this.list = res.data
+        this.total = res.total
+        console.log(this.list);
+      })
     },
-    handleCurrentChange(val) {
+    pageChange(val) {
       // console.log(`当前页: ${val}`);
       this.param.content.pageNumber = val
-      this.listData()
+      this.getNoticeData()
     },
-    //通告iten单击事件
-    itemClick() {
-      this.$router.push({
-        path: '/notice_detail',
-        query: {
-          id: 1
-        }
+
+    queryClick() {
+      this.query.content.where.condition = this.searchTitle
+      this.$api.requested(this.query).then(res => {
+        console.log(res);
+        
       })
     }
   }
@@ -132,83 +99,9 @@ export default {
   width: 320px;
   height: 36px;
 }
-.normal-card .list {
-  margin-top: 30px;
-}
-.normal-card .list-box {
-  display: flex;
-  justify-content: space-between;
-  padding:  20px 0;
-  border-bottom: 1px solid #DDDDDD;
-  padding-right: 30px;
-}
-.normal-card .list-box:hover {
-  cursor: pointer;
-  background: #FAFAFA;
-}
-.normal-card .list-box:first-child {
-  padding-top: 0;
-}
-.normal-card .list-box:last-child {
-  border-bottom: none;
-}
-.normal-card .list-box .item-left {
-  display: flex;
-}
-.normal-card .list-box .item-left .el-image {
-  width: 315px;
-  height: 80px;
-  margin-right: 20px;
-  border-radius: 8px;
-}
-.normal-card .list-box .item-left .text-panl .title {
-  font-size: 14px;
-  color: #333333;
-}
-.normal-card .list-box .item-left .text-panl .descript {
-  font-size: 12px;
-  color: #666666;
-  margin-top: 9px;
-}
-.normal-card .list-box .item-left .text-panl .info {
-  line-height: 22px;
-  margin-top: 10px;
-}
-.normal-card .list-box .item-left .text-panl .info .tag {
-  width: 58px;
-  height: 22px;
-  border: 1px solid #FA8C16;
-  color: #FA8C16;
-  margin-right: 10px;
-  text-align: center;
-}
-.normal-card .list-box .item-left .text-panl .info span {
-  font-size: 12px;
-  display: inline-block;
-}
-.normal-card .list-box .item-left .text-panl .info span:nth-child(2) {
-  margin-right: 38px;
-}
-.normal-card .list-box .item-left .text-panl .info span:nth-child(3) {
-  margin-right: 50px;
-}
 
-.normal-card .list-box .item-right {
-
-}
-.normal-card .list-box .item-right p {
-  width: 60px;
-  height: 32px;
-  border-radius: 4px;
-  background: #FA8C16;
-  text-align: center;
-  line-height: 32px;
-  font-size: 14px;
-  color: #FFFFFF;
-  cursor: pointer;
-}
-.normal-card .pagination {
-  margin: 25px 0 10px 0;
+.normal-card .el-pagination {
+  margin: 0 0 10px 0;
   float: right;
   padding-right: 30px;
 }

+ 72 - 100
src/HManagement/notice/notice_detail/NoticeDetail.vue

@@ -1,23 +1,16 @@
 <template>
   <div class="normal-card">
     <div class="title-box">
-      <div class="title">五一活动通报与操作指南</div>
-      <div class="descript">请赶紧布置你的门店,并按指引执行</div>
+      <div class="title">{{detailData.title}}</div>
+      <div class="descript">{{detailData.summary}}</div>
       <div class="info">
-        <span class="tag">促销活动</span>
-        <span>2022-01-01 11:11:11</span>
+        <span class="tag">{{detailData.classname}}</span>
+        <span>{{detailData.createdate}}</span>
       </div>
     </div>
     <div class="text-content">
       <span>正文小标题</span>
-      <p>
-        正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容
-        正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容
-        正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容
-        正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容
-        正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容
-        正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容正文内容
-      </p>
+      <p>{{detailData.content}}</p>
       <div class="file"></div>
     </div>
     <div class="file-content">
@@ -26,26 +19,7 @@
       <div class="file-download">
         <p class="title">附件下载</p>
         <div class="file-list">
-          <div class="item-file">
-            <div class="left">
-              <div class="icon">
-                <img src="../../../assets/file_icons/image.png" alt />
-              </div>
-              <div class="text">
-                <p>销售策略</p>
-                <p>2022-01-02 15:30:02</p>
-              </div>
-            </div>
-            <div class="right">
-              <p>预览</p>
-              <button>下载</button>
-            </div>
-          </div>
-          <div class="item-file"></div>
-          <div class="item-file"></div>
-          <div class="item-file"></div>
-          <div class="item-file"></div>
-          <div class="item-file"></div>
+          <file-item :isDownLoad="true"></file-item>
         </div>
       </div>
     </div>
@@ -54,16 +28,16 @@
         <p>评分反馈</p>
         <div class="handle">
           <p>总体</p>
-          <el-rate v-model="score" :colors="scoreColor"></el-rate>
+          <el-rate v-model="send.content.score" :colors="scoreColor"></el-rate>
           <p>满意</p>
         </div>
-        <p>5人评分</p>
+        <p>{{detailData.readpersoncount}}人评分</p>
       </div>
       <div class="text-box">
         <p>留言反馈</p>
         <div class="comment-panl">
-          <el-input type="textarea" :rows="4" placeholder="请填写留言" resize="none" v-model="textarea"></el-input>
-          <el-button type="success" size="small">发表</el-button>
+          <el-input type="textarea" :rows="4" placeholder="请填写留言" resize="none" v-model="send.content.leavemessage"></el-input>
+          <el-button type="success" size="small" @click.native="sendComment()">发表</el-button>
         </div>
       </div>
     </div>
@@ -71,21 +45,80 @@
 </template>
 
 <script>
+import FileItem from '@/HManagement/notice/compoents/FileItem'
 export default {
   name: "NoticeDetail",
   data() {
     return {
+      //拉取数据配置
+      param: {
+        "accesstoken": "c94ae676c321f1ce91e05797ba2f9bc3",
+        "classname": "saletool.notice.notice",
+        "method": "queryNoticeMain",
+        "content": {   
+          "sat_noticeid":4
+        }
+      },
+      //发表配置
+      send: {
+        "accesstoken": "2337e72d40da54ce343c631b509ca873",
+        "classname": "saletool.notice.notice",
+        "method": "updateReadRecord",
+        "content": {
+          "sat_noticeid":this.$route.query.sat_noticeid,
+          "score":0,
+          "leavemessage":""
+        }
+      },
       score: 0,
       scoreColor: ["#99A9BF", "#F7BA2A", "#FADB14"],
-      textarea: ""
+      textarea: "",
+      //详情数据
+      detailData: ''
     };
   },
+  components: {
+    FileItem
+  },
   computed: {},
   watch: {},
+  created() {
+    this.getNoticeDetail()
+  },
   mounted() {
-    console.log(this.$route.query.id);
   },
-  methods: {}
+  methods: {
+    //获取详情数据
+    getNoticeDetail() {
+      this.param.content.sat_noticeid = this.$route.query.sat_noticeid
+      this.$api.requested(this.param).then(res => {
+        this.detailData = res.data[0]
+        console.log(this.detailData);
+        
+      })
+    },
+    //发表
+    sendComment() {
+      if(this.send.content.score == 0 || this.send.content.leavemessage == '') {
+        this.$notify({
+          title:'提示',
+          message: '请填写分数或留言',
+          type: 'error'
+        })
+        return 
+      }
+      this.$api.requested(this.send).then( res => {
+        if(res.code == 1) {
+          this.$notify({
+            title:'提示',
+            message: '发表成功',
+            type: 'success'
+          })
+          this.$router.go(-1)
+        }
+      })
+    }
+  }
 };
 </script>
 
@@ -125,7 +158,6 @@ export default {
   font-size: 12px;
 }
 .normal-card .title-box .info .tag {
-  width: 48px;
   height: 16px;
   border: 1px solid #fa8c16;
   color: #fa8c16;
@@ -173,66 +205,6 @@ export default {
   display: flex;
   flex-wrap: wrap;
 }
-.normal-card .file-content .file-download .item-file {
-  width: 334px;
-  height: 44px;
-  background: #ffffff;
-  border-radius: 4px 4px 4px 4px;
-  border: 1px solid #cccccc;
-  margin: 0 10px 10px 0;
-  padding: 12px 16px;
-  display: flex;
-  justify-content: space-between;
-}
-.normal-card .file-content .file-download .item-file .left {
-  display: flex;
-  align-items: center;
-}
-.normal-card .file-content .file-download .item-file .left .icon {
-  width: 29px;
-  height: 29px;
-  margin-right: 16px;
-}
-.normal-card .file-content .file-download .item-file .left .icon img {
-  width: 29px;
-  height: 29px;
-}
-.normal-card .file-content .file-download .item-file .left .text {
-}
-.normal-card .file-content .file-download .item-file .left .text p:first-child {
-  font-size: 14px;
-  font-family: PingFang SC-Bold, PingFang SC;
-  font-weight: bold;
-  color: #333333;
-  line-height: 22px;
-}
-.normal-card .file-content .file-download .item-file .left .text p:last-child {
-  font-size: 10px;
-  font-family: PingFang SC-Regular, PingFang SC;
-  font-weight: 400;
-  color: #999999;
-  line-height: 22px;
-}
-.normal-card .file-content .file-download .item-file .right {
-  display: flex;
-  align-items: center;
-}
-.normal-card .file-content .file-download .item-file .right p {
-  font-size: 14px;
-  font-family: PingFang SC-Regular, PingFang SC;
-  font-weight: 400;
-  color: #3874f6;
-}
-.normal-card .file-content .file-download .item-file .right button {
-  width: 70px;
-  height: 32px;
-  background: #3874f6;
-  border-radius: 52px;
-  border: none;
-  color: #ffffff;
-  margin-left: 16px;
-  cursor: pointer;
-}
 .normal-card .comments {
   margin-top: 20px;
 }

+ 169 - 0
src/HManagement/submitedit_action/index.vue

@@ -0,0 +1,169 @@
+<template>
+  <div class="normal-card">
+    <!--提报选择-->
+      <select-panl :titleLists="titleLists"
+                   @CurrentSelectType="CurrentSelectType"
+                   ref="selectPanl">
+      </select-panl>
+      <div class="list">
+        <div class="list-item" @click="itemClick()">
+          <img src="@/assets/file_icons/image.png" alt="">
+          <div class="descript">
+            <p class="title">提报标题提报标题提报标题提报标题提报标题</p>
+            <div class="info1">
+              <p class="time">2022-01-01 ~ 2022-01-01</p>
+              <span class="tag">未读</span>
+              <span class="tag">未提报</span>
+            </div>
+          </div>
+        </div>
+        <div class="list-item">
+          <img src="@/assets/file_icons/image.png" alt="">
+          <div class="descript">
+            <p class="title">提报标题提报标题提报标题提报标题提报标题</p>
+            <div class="info1">
+              <p class="time">2022-01-01 ~ 2022-01-01</p>
+              <span class="tag">未读</span>
+              <span class="tag">未提报</span>
+            </div>
+          </div>
+        </div>
+        <div class="list-item">
+          <img src="@/assets/file_icons/image.png" alt="">
+          <div class="descript">
+            <p class="title">提报标题提报标题提报标题提报标题提报标题</p>
+            <div class="info1">
+              <p class="time">2022-01-01 ~ 2022-01-01</p>
+              <span class="tag">未读</span>
+              <span class="tag">未提报</span>
+            </div>
+          </div>
+        </div>
+      </div>
+      <!--分页-->
+      <pagination :total="20"
+                  :pageSize="3"
+                  :currentPage="1"
+                  @pageChange="pageChange">
+      </pagination>
+  </div>
+</template>
+
+<script>
+import Pagination from '@/components/pagination/Pagination'
+import SelectPanl from '@/components/select-panl/SelectPanl'
+export default {
+  name: 'index',
+  data () {
+    return {
+      param: {
+        "accesstoken": "7dd56a865a9c6759a52c35b6da522dcb",
+        "classname": "saletool.submitedit.submitedit",
+        "method": "select_inprogresslist",
+        "content": {
+
+        }
+      },
+      //类型选择数据
+      titleLists: [
+        { name: '一事一报',type: 'one'},
+        { name: '一事多报',type: 'two'},
+      ],
+    }
+  },
+  components: {
+    Pagination,
+    SelectPanl
+  },
+  computed: {
+  },
+  watch: {
+  },
+  created() {
+    this.getSubmitEditAction()
+  },
+  methods: {
+    //获取进行中提报
+    getSubmitEditAction() {
+      this.$api.requested(this.param).then( res => {
+        console.log(res);
+        
+      })
+    },
+    pageChange() {
+
+    },
+    CurrentSelectType() {
+
+    },
+    itemClick() {
+      this.$router.push({
+        path: '/submiteditmag_detail'
+      })
+    }
+  },
+};
+</script>
+
+<style scoped>
+  * {
+    box-sizing: border-box;
+  }
+  .normal-card {
+    height: 100%;
+    padding: 18px 20px 10px 10px;
+    position: relative;
+  }
+  .normal-card .list {
+    display: flex;
+    flex-wrap: wrap;
+    margin-top: 16px;
+  }
+  .normal-card .list .list-item {
+    width: 525px;
+    height: 93px;
+    background: #FFFFFF;
+    border-radius: 4px 4px 4px 4px;
+    border: 1px solid #CCCCCC;
+    margin: 0 16px 16px 0;
+    padding: 22px 20px;
+    display: flex;
+  }
+  .normal-card .list .list-item img {
+    width: 40px;
+    height: 48px;
+    margin-right: 20px;
+  }
+  .normal-card .list .list-item .descript {
+    
+  }
+  .normal-card .list .list-item .descript .title {
+    font-size: 14px;
+    font-weight: 500;
+    color: #333333;
+    margin-bottom: 13px;
+  }
+  .normal-card .list .list-item .descript .info1 {
+    display: flex;
+    align-items: center;
+  }
+  .normal-card .list .list-item .descript .info1 .time {
+    font-size: 12px;
+    font-weight: 400;
+    color: #666666;
+  }
+  .normal-card .list .list-item .descript .info1 .tag {
+    margin-left: 12px;
+    display: block;
+    font-size: 12px;
+    font-weight: normal;
+    color: #FF3B30;
+    padding: 4px 6px;
+    background: #FFEDEC;
+  }
+  /deep/ .el-pagination {
+    position:absolute;
+    bottom: 0;
+    right: 16px;
+  }
+</style>

+ 22 - 0
src/HManagement/submitedit_details/index.vue

@@ -0,0 +1,22 @@
+<template>
+  <div></div>
+</template>
+
+<script>
+export default {
+  name: 'index',
+  data() {
+    return {
+    };
+  },
+  computed:{
+  },
+  watch:{
+  },
+  methods: {},
+};
+</script>
+
+<style scoped>
+
+</style>

+ 164 - 0
src/HManagement/submiteditmag_hostoiry/index.vue

@@ -0,0 +1,164 @@
+<template>
+  <div class="normal-card">
+    <!--提报选择-->
+      <select-panl :titleLists="titleLists"
+                   @CurrentSelectType="CurrentSelectType"
+                   ref="selectPanl">
+      </select-panl>
+      <div class="list">
+        <div class="list-item">
+          <img src="@/assets/file_icons/image.png" alt="">
+          <div class="descript">
+            <p class="title">提报标题提报标题提报标题提报标题提报标题</p>
+            <div class="info1">
+              <p class="time">2022-01-01 ~ 2022-01-01</p>
+              <span class="tag">未读</span>
+              <span class="tag">未提报</span>
+            </div>
+          </div>
+        </div>
+        <div class="list-item">
+          <img src="@/assets/file_icons/image.png" alt="">
+          <div class="descript">
+            <p class="title">提报标题提报标题提报标题提报标题提报标题</p>
+            <div class="info1">
+              <p class="time">2022-01-01 ~ 2022-01-01</p>
+              <span class="tag">未读</span>
+              <span class="tag">未提报</span>
+            </div>
+          </div>
+        </div>
+        <div class="list-item">
+          <img src="@/assets/file_icons/image.png" alt="">
+          <div class="descript">
+            <p class="title">提报标题提报标题提报标题提报标题提报标题</p>
+            <div class="info1">
+              <p class="time">2022-01-01 ~ 2022-01-01</p>
+              <span class="tag">未读</span>
+              <span class="tag">未提报</span>
+            </div>
+          </div>
+        </div>
+      </div>
+      <!--分页-->
+      <pagination :total="20"
+                  :pageSize="3"
+                  :currentPage="1"
+                  @pageChange="pageChange">
+      </pagination>
+  </div>
+</template>
+
+<script>
+import Pagination from '@/components/pagination/Pagination'
+import SelectPanl from '@/components/select-panl/SelectPanl'
+export default {
+  name: 'index',
+  data () {
+    return {
+      param: {
+        "accesstoken": "7dd56a865a9c6759a52c35b6da522dcb",
+        "classname": "saletool.submitedit.submitedit",
+        "method": "select_inprogresslist",
+        "content": {
+
+        }
+      },
+      //类型选择数据
+      titleLists: [
+        { name: '一事一报',type: 'one'},
+        { name: '一事多报',type: 'two'},
+      ],
+    }
+  },
+  components: {
+    Pagination,
+    SelectPanl
+  },
+  computed: {
+  },
+  watch: {
+  },
+  created() {
+    this.getSubmitEditAction()
+  },
+  methods: {
+    //获取进行中提报
+    getSubmitEditAction() {
+      this.$api.requested(this.param).then( res => {
+        console.log(res);
+        
+      })
+    },
+    pageChange() {
+
+    },
+    CurrentSelectType() {
+
+    }
+  },
+};
+</script>
+
+<style scoped>
+  * {
+    box-sizing: border-box;
+  }
+  .normal-card {
+    height: 100%;
+    padding: 18px 20px 10px 10px;
+    position: relative;
+  }
+  .normal-card .list {
+    display: flex;
+    flex-wrap: wrap;
+    margin-top: 16px;
+  }
+  .normal-card .list .list-item {
+    width: 525px;
+    height: 93px;
+    background: #FFFFFF;
+    border-radius: 4px 4px 4px 4px;
+    border: 1px solid #CCCCCC;
+    margin: 0 16px 16px 0;
+    padding: 22px 20px;
+    display: flex;
+  }
+  .normal-card .list .list-item img {
+    width: 40px;
+    height: 48px;
+    margin-right: 20px;
+  }
+  .normal-card .list .list-item .descript {
+    
+  }
+  .normal-card .list .list-item .descript .title {
+    font-size: 14px;
+    font-weight: 500;
+    color: #333333;
+    margin-bottom: 13px;
+  }
+  .normal-card .list .list-item .descript .info1 {
+    display: flex;
+    align-items: center;
+  }
+  .normal-card .list .list-item .descript .info1 .time {
+    font-size: 12px;
+    font-weight: 400;
+    color: #666666;
+  }
+  .normal-card .list .list-item .descript .info1 .tag {
+    margin-left: 12px;
+    display: block;
+    font-size: 12px;
+    font-weight: normal;
+    color: #FF3B30;
+    padding: 4px 6px;
+    background: #FFEDEC;
+  }
+  /deep/ .el-pagination {
+    position:absolute;
+    bottom: 0;
+    right: 16px;
+  }
+</style>

+ 0 - 0
src/HManagement/archives/bread-crumbs/BreadCrumbs.vue → src/components/bread-crumbs/BreadCrumbs.vue


+ 67 - 0
src/components/category-select/CategorySelect.vue

@@ -0,0 +1,67 @@
+<template>
+  <div class="select">
+    <span>{{label}}: </span>
+    <tree-select v-model="selectResult" :options="selectList" :normalizer="normalizer"></tree-select>
+  </div>
+</template>
+
+<script>
+import TreeSelect from '@riophae/vue-treeselect'
+import "@riophae/vue-treeselect/dist/vue-treeselect.css"
+export default {
+  name: 'CategorySelect',
+  data() {
+    return {
+      selectResult: null,
+    };
+  },
+  props: {
+    selectList: {
+      default() {
+        return []
+      }
+    },
+    label: String
+  },
+  components: {
+    TreeSelect
+  },
+  computed:{
+  },
+  watch:{
+    selectResult: 'selectChangeHandle'
+  },
+  methods: {
+    //监听赛选改变
+    selectChangeHandle(val) {
+    },
+    //自定义treeselect绑定键
+    normalizer(node) { //方法
+      // 去掉children=[]的children属性 respectively
+      if (node.children && !node.children.length) {
+        delete node.children
+      }
+      return {
+        id: node.sat_courseware_classid, // 键名转换,方法默认是label和children进行树状渲染
+        label: node.classname,
+        children: node.children,
+      }
+    },
+  },
+};
+</script>
+
+<style>
+  .select .vue-treeselect {
+    width: 150px;
+    height: 100%;
+  }
+  .select {
+    margin-right: 16px;
+    display: flex;
+    align-items: center;
+  }
+  .select span {
+    margin-right: 8px;
+  }
+</style>

+ 7 - 7
src/HManagement/archives/drawer/Drawer.vue → src/components/drawer/Drawer.vue

@@ -21,15 +21,12 @@
 export default {
   name: "Drawer",
   data() {
-    return {};
+    return {
+      isFileInfoPanlShow: false
+    };
   },
   props: {
-    isFileInfoPanlShow: {
-        type: Boolean,
-        default() {
-            return false
-        }
-    }
+
   },
   computed: {},
   watch: {},
@@ -106,4 +103,7 @@ export default {
     font-weight: 400;
     color: #3874F6;
   }
+  .el-drawer {
+    width: 550px !important;
+  }
 </style>

+ 17 - 1
src/HManagement/archives/fileList/FileList.vue → src/components/fileList/FileList.vue

@@ -1,5 +1,6 @@
 <template>
   <div class="file-list">
+    <el-empty description="暂无文件" v-if="fileData.length == 0"></el-empty>
     <div
       v-for="(item,index) in fileData"
       :key="index"
@@ -18,7 +19,7 @@
         <img src="@/assets/file_icons/xls.png" alt v-if="item.postfix == 'xls'" />
       </div>
       <p>{{item.document}}</p>
-      <div class="icon" v-show="isIconShowIndex === index || $route.path == '/archivesmag_list'">
+      <div class="icon" v-show="isCollect == true &&isIconShowIndex === index || $route.path == '/archivesmag_list'">
         <img
           src="@/assets/file_icons/收藏.png"
           alt
@@ -60,10 +61,17 @@ export default {
       default() {
         return [];
       }
+    },
+    //是否显示收藏
+    isCollect: {
+      type: Boolean
     }
   },
   computed: {},
   watch: {},
+  created() {
+    
+  },
   methods: {
     aa(index) {
       this.isIconShowIndex = index
@@ -152,3 +160,11 @@ export default {
   margin: 8px 8px 0 0;
 }
 </style>
+<style>
+  .el-empty {
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%,-50%);  
+  }
+</style>

+ 0 - 0
src/HManagement/archives/hot-new-control/HotNewControl.vue → src/components/hot-new-control/HotNewControl.vue


+ 8 - 3
src/components/layout/index.vue

@@ -3,11 +3,11 @@
     <div class="nav-list">
       <div class="nav-top-item">
         <div class="logo-avatar"></div>
-        <div class="item active" @click="$router.push('/home')">
+        <div class="item" :class="{'active':'/home' == $route.path}" @click="itemClick('/home')">
            <img width="30" src="../../assets/nav_icon/work_station.svg" alt="">
            <p>工作台</p>
         </div>
-        <div class="item">
+        <div class="item" :class="{'active':'/message' == $route.path}" @click="itemClick('/message')">
            <img width="30" src="../../assets/nav_icon/work_station.svg" alt="">
            <p>消息</p>
         </div>
@@ -55,7 +55,7 @@ export default {
   data () {
     return {
       store,
-      routerName:''
+      routerName:'',
     }
   },
   created () {
@@ -68,6 +68,11 @@ export default {
       this.routerName = val.meta.title
       this.ast_nav = val.meta.ast_nav
     }
+  },
+  methods: {
+    itemClick(path) {
+      this.$router.push(path)
+    }
   }
 }
 

+ 4 - 10
src/components/layout/modules/aside.vue

@@ -9,10 +9,10 @@
     text-color="#666"
     active-text-color="#fff"
     router>
-    <!-- <el-menu-item index="mediaStock">
+    <el-menu-item index="mediaStock">
       <i class="el-icon-house"></i>
       <span slot="title">媒体库</span>
-    </el-menu-item> -->
+    </el-menu-item>
      <el-menu-item v-for="item in auth_data" :key="item.systemappid" :index="item.path">
       <!-- <i class="el-icon-mouse"></i> -->
       <span slot="title">{{item.meta.title}}</span>
@@ -24,7 +24,7 @@
 export default {
   data () {
     return {
-      activePath:'/role_manage',
+      activePath:'',
       auth_data:''
     }
   },
@@ -35,8 +35,7 @@ export default {
     getAuthList () {
       let active_modules = JSON.parse(sessionStorage.getItem('active_modules'))
       this.auth_data = active_modules.apps
-      console.log(this.auth_data);
-      
+      this.activePath = active_modules.apps[0].path
     }
   },
   created () {    
@@ -51,11 +50,6 @@ export default {
 }
 
 </script>
-<style>
-.el-menu-item-group__title{
-  padding: 0 !important;
-}
-</style>
 <style scoped>
 .is-active{
   margin: 10px;

+ 3 - 1
src/HManagement/archives/pagination/Pagination.vue → src/components/pagination/Pagination.vue

@@ -54,5 +54,7 @@ export default {
 </script>
 
 <style scoped>
-
+  .el-pagination {
+    margin-bottom: 16px;
+  }
 </style>

+ 3 - 0
src/HManagement/archives/select-panl/SelectPanl.vue → src/components/select-panl/SelectPanl.vue

@@ -27,6 +27,9 @@ export default {
   },
   computed: {},
   watch: {},
+  created() {
+    this.currentName = this.titleLists[0].type
+  },
   methods: {
     //类型单击事件
     itemClick(item) {

+ 1 - 0
src/main.js

@@ -14,6 +14,7 @@ import './style/style.css'
 import './style/theme/index.css'
 import './style/theme/font-icon/iconfont.css'
 
+
 Vue.prototype.$api = api
 
 Vue.prototype.$upload = upload

+ 46 - 6
src/router/HManagement.js

@@ -15,7 +15,7 @@ const HManagement = [{
     },
     component: resolve => require(['@/HManagement/accountManage/index'], resolve)
   },{
-  path: '/notice_list',
+  path: '/notice_mag_list',
   name: 'notice',
   meta: {
     title: '通报',
@@ -26,7 +26,7 @@ const HManagement = [{
   path: '/notice_detail',
   name: 'notice_detail',
   meta: {
-    title: '通告内容',
+    title: '通告详情',
     ast_nav:false
   },
   component: () => import(/* webpackChunkName: "about" */ '@/HManagement/notice/notice_detail/NoticeDetail')
@@ -34,7 +34,7 @@ const HManagement = [{
   path: '/archives_list',
   name: 'archives',
   meta: {
-    title: ' 营销物料',
+    title: ' 营销物料列表',
     ast_nav:true
   },
   component: () => import(/* webpackChunkName: "about" */ '@/HManagement/archives/index.vue')
@@ -50,18 +50,58 @@ const HManagement = [{
   path: '/archives_ad_list',
   name: 'archives_ad',
   meta: {
-    title: ' 营销物料',
+    title: ' 素材推广',
     ast_nav:true
   },
-  component: () => import(/* webpackChunkName: "about" */ '@/HManagement/archives/index.vue')
+  component: () => import(/* webpackChunkName: "about" */ '@/HManagement/archives_ad/index.vue')
+},{
+  path: '/archives_admag',
+  name: 'archives_admag_name',
+  meta: {
+    title: ' 我的素材',
+    ast_nav:true
+  },
+  component: () => import(/* webpackChunkName: "about" */ '@/HManagement/archives_admag/index.vue')
 },{
   path: '/archives_sc_list',
   name: 'archives_sc',
   meta: {
     title: '商学院',
-    ast_nav:true
+    ast_nav:false
   },
   component: () => import(/* webpackChunkName: "about" */ '@/HManagement/archives_sc/index.vue')
+},{
+  path: '/archives_sc_detail',
+  name: 'archives_sc_detail',
+  meta: {
+    title: '商学院详情',
+    ast_nav:false
+  },
+  component: () => import(/* webpackChunkName: "about" */ '@/HManagement/archives_sc/archives_details/index')
+},{
+  path: '/submitedit_action',
+  name: 'submitedit_action',
+  meta: {
+    title: '提报进行中',
+    ast_nav:true
+  },
+  component: () => import(/* webpackChunkName: "about" */ '@/HManagement/submitedit_action/index')
+},{
+  path: '/submiteditmag_hostoiry',
+  name: 'submiteditmag_hostoiry',
+  meta: {
+    title: '历史提报',
+    ast_nav:true
+  },
+  component: () => import(/* webpackChunkName: "about" */ '@/HManagement/submiteditmag_hostoiry/index')
+},{
+  path: '/submiteditmag_detail',
+  name: 'submiteditmag_detail',
+  meta: {
+    title: '提报详情',
+    ast_nav: false
+  },
+  component: () => import(/* webpackChunkName: "about" */ '@/HManagement/submitedit_details/index')
 },{
   path: '/security_config',
   name: 'securityConfig',