浏览代码

Merge branch 'mergeBranch' into xiaoqin

codeMan 3 年之前
父节点
当前提交
ffeffd31e4

+ 120 - 0
src/HManagement/archives_ad/modules/filterList.vue

@@ -0,0 +1,120 @@
+<template>
+    <div class="flex-align-center">
+        <div>
+            <p>一级分类:</p>
+            <el-select clear="select" v-model="activeClass1" @clear="clearClass1" size="small" clearable>
+                <el-option v-for="item in selectList" :key="item.rowindex" :value="item.sat_sharematerial_classid"
+                    :label="item.classname" @click.native="handleChange(item)" />
+            </el-select>
+        </div>
+        <div>
+            <p>二级分类:</p>
+            <el-select clear="select" v-model="activeClass2" size="small" @clear="clearClass2" clearable>
+                <el-option v-for="item in childrens" :key="item.rowindex" :value="item.sat_sharematerial_classid"
+                    :label="item.classname" @click.native="handleChange(item)" />
+            </el-select>
+        </div>
+        <div>
+            <p>搜索:</p>
+            <el-input style="width:200px" size="small" placeholder="请输入查询内容" @clear="changeSearchContent"
+                @keyup.native.enter="changeSearchContent" v-model="condition" prefix-icon="el-icon-search" clearable />
+        </div>
+        <slot />
+    </div>
+</template>
+
+<script>
+export default {
+    name: "filterList",
+    mounted() {
+        this.getSelectList()
+    },
+    props: ["changeTypeId", "startSearch"],
+    data() {
+        return {
+            selectList: [],//分类列表
+            childrens: [],//子分类列表
+            activeClass1: "",//选择分类1
+            activeClass2: "",//选择分类2
+            class1id: "",
+            class2id: "",
+            returnId: 0,//最终返回id
+            condition: "",//搜索内容
+        }
+    },
+    methods: {
+        /* 获取分类列表 */
+        getSelectList(i = 0) {
+            this.$api.requested({
+                "classname": "webmanage.saletool.sharematerial.sharematerialClass",
+                "method": "select",
+                "content": {
+                    parentid: 0
+                }
+            }).then(res => {
+                if (res.msg != '成功') return i < 5 ? this.getSelectList(i + 1) : this.$message.error(res.msg);
+                this.selectList = res.data;
+            })
+        },
+        /* 选择分类 */
+        handleChange(item) {
+            if (item.children) {
+                this.childrens = item.children;
+                this.activeClass2 = "";
+                this.class1id = item.sat_sharematerial_classid;
+            } else {
+                this.class2id = item.sat_sharematerial_classid;
+            }
+            this.returnId = item.sat_sharematerial_classid;
+            this.setId();
+        },
+        clearClass1() {
+            this.childrens = [];
+            this.activeClass1 = "";
+            this.activeClass2 = "";
+            this.class1id = "";
+            this.class2id = "";
+            this.returnId = 0;
+            this.setId();
+        },
+        clearClass2() {
+            this.class2id = "";
+            this.activeClass2 = "";
+            this.returnId = this.class1id ? this.class1id : 0;
+            this.setId();
+        },
+        /* 返回分类ID */
+        setId() {
+            this.$emit("changeTypeId", this.returnId)
+        },
+        /* 开始搜索 */
+        changeSearchContent() {
+            this.$emit("startSearch", this.condition.trim())
+        }
+    }
+}
+</script>
+
+<style scoped>
+.flex-align-center {
+    width: 100%;
+    padding-bottom: 15px;
+}
+
+.flex-align-center>div {
+    display: flex;
+    align-items: center;
+    max-width: 350px;
+}
+
+.flex-align-center>div>p {
+    font-size: 14px;
+    margin: 0 10px;
+    max-width: 80px;
+}
+
+.select {
+    width: 120px;
+    margin-right: 16px;
+}
+</style>

+ 14 - 42
src/HManagement/archives_ad/modules/list.vue

@@ -1,26 +1,9 @@
 <template>
   <div>
     <slot name="add"></slot>
-    <!-- <div class="container normal-panel normal-margin"></div> -->
     <div class="container normal-panel">
-      <!-- 表格筛选搜索 -->
-      <div class="flex-align-center search-panel" style="margin-bottom:16px">
-        <div class="flex-align-center">
-          <p style="flex:1 0 auto;font-size:14px">素材分类:&nbsp;</p>
-
-          <el-cascader class="cascader" size="small" v-model="selectClassId" :options="selectList"
-            :props="{ expandTrigger: 'hover', label: 'classname', value: 'sat_sharematerial_classid', checkStrictly: true }"
-            @change="handleChange" clearable />
-
-          <el-input style="width:270px" v-model="params.content.where.condition" @change="getList(true)"
-            @clear="getList(true)" placeholder="请输入内容" class="input-with-select" size="small" clearable>
-            <el-button style="width:82px;" slot="append" icon="el-icon-search">查 询
-            </el-button>
-          </el-input>
-
-        </div>
-      </div>
-
+      <!-- 分类筛选及搜索 -->
+      <filter-list @changeTypeId="changeTypeId" @startSearch="startSearch" />
       <!-- 表格 -->
       <tableLayout :layout="tablecols" :data="list" :custom="true" :height="tableHieght">
         <template v-slot:customcol="scope">
@@ -57,9 +40,10 @@
 </template>
 
 <script>
+import filterList from "./filterList";
 export default {
   name: "list",
-  components: {},
+  components: { filterList },
   data() {
     return {
       list: [],
@@ -78,17 +62,13 @@ export default {
       },
       currentPage: 1,
       total: 0,
-
-      selectList: [],//分类列表
-      selectClassId: "",
-
+      selectClassId: "",//筛选分类ID
     }
   },
   created() {
     //获取表结构
     this.tablecols = this.tool.tabelCol(this.$route.name)['listTable'].tablecols;
     this.getList();
-    this.getSelectList();
   },
   methods: {
     getType(type) {
@@ -100,20 +80,6 @@ export default {
         return '图文'
       }
     },
-    /* 获取分类列表 */
-    getSelectList() {
-      this.$api.requested({
-        "classname": "webmanage.saletool.sharematerial.sharematerialClass",
-        "method": "select",
-        "content": {
-          parentid: 0
-        }
-      }).then(res => {
-        console.log("分类列表",res)
-        if (res.msg != '成功') return this.$message.error(res.data);
-        this.selectList = res.data;
-      })
-    },
     /* 获取列表 */
     getList(init = false) {
       let initID = '9999' + JSON.parse(window.sessionStorage.getItem("active_account")).userid;
@@ -152,9 +118,15 @@ export default {
       this.params.content.pageNumber = e;
       this.getList();
     },
-    handleChange(value) {
-      if(value.length==0)  value[0] = "";
-      this.selectClassId = value[1] ? value[1] : value[0];
+    /* 改变分类ID */
+    changeTypeId(id) {
+      this.selectClassId = id == 0 ? "" : id;
+      this.getList(true);
+    },
+    /* 开始搜索 */
+    startSearch(value) {
+      console.log(value)
+      this.params.content.where.condition = value;
       this.getList(true);
     }
   }

+ 24 - 25
src/HManagement/archvies_mag/modules/add.vue

@@ -11,8 +11,7 @@
       </scopeOfauth>
       <div class="dialog-footer">
         <el-button size="small" @click="dialogFolderVisible = false" class="normal-btn-width">取 消</el-button>
-        <el-button size="small" type="warning" @click="createFolderComplete(folder)"
-          class="normal-btn-width btn-warning">确 定</el-button>
+        <el-button size="small" type="warning" @click="createFolderComplete(folder)" class="normal-btn-width btn-warning">确 定</el-button>
       </div>
     </el-dialog>
   </div>
@@ -21,55 +20,55 @@
 <script>
 import scopeOfauth from '@/components/scopeOfAuthority/index.vue'
 export default {
-  components: {
+  components:{
     scopeOfauth,
   },
-  data() {
+  data () {
     return {
-      dialogFolderVisible: false,
-      defaultData: {},
-      folder: {
-        document: ''
+      dialogFolderVisible:false,
+      defaultData:{},
+      folder:{
+        document:''
       },
-      attachmentid: null,
-      params: {
+      attachmentid:null,
+      params:{
         "classname": "system.attachment.MediaCenter",
         "method": "createFolder",
         "content": {
           "foldername": "文件夹名称",
-          "parentid": ''
+          "parentid":  ''
         }
       }
     }
   },
-  methods: {
-    createFolder() { },
-    // 获取保存授权范围数据
-    onChecked(param) {
+  methods:{
+    createFolder () {},
+     // 获取保存授权范围数据
+    onChecked (param) {
       this.authData = param
     },
-    async createFolderComplete(folder) {
-      let id = this.$route.query.id ? this.$route.query.id : JSON.parse(sessionStorage.getItem("folderid")).salematerialfolderid
+    async createFolderComplete (folder) {
+      let id = this.$route.query.id?this.$route.query.id:JSON.parse(sessionStorage.getItem("folderid")).salematerialfolderid
       this.params.content.parentid = id
       this.params.content.foldername = folder.document
       const res = await this.$api.requested(this.params)
       this.$emit('onSuccess')
-      this.tool.showMessage(res, () => { this.dialogFolderVisible = false })
-      res.code === 1 ? this.insertCoursewareauth(res.data.attachmentid) : ''
+      this.tool.showMessage(res,()=>{this.dialogFolderVisible = false})
+      res.code === 1?this.insertCoursewareauth(res.data.attachmentid):''
     },
     // 新增授权范围
-    async insertCoursewareauth(attachmentid) {
+    async insertCoursewareauth (attachmentid) {
       this.authData.attachmentid = attachmentid
       const res = await this.$api.requested({
         "classname": "webmanage.saletool.salematerial.salematerialAuth",
         "method": "insertOrUpdate",
         "content": this.authData
       })
-      res.code === 0 ? this.$notify({
-        title: '失败',
-        message: res.data,
-        type: 'error'
-      }) : ''
+      res.code === 0?this.$notify({
+        title:'失败',
+        message:res.data,
+        type:'error'
+      }):''
     },
   }
 }

+ 35 - 42
src/SManagement/archives_ad/index.vue

@@ -1,17 +1,12 @@
 <template>
   <div style="height:100%">
     <div class="normal-card">
-      <div class="header-panl">
-        <div class="left">
-          <search @searchActive="searchActive" @clearData="clearData()" v-if="tool.checkAuth($route.name, 'read')">
-          </search>
-          <category-select label="素材分类" :selectList="selectList" @changeSelect="changeSelect"
-            @clearSelect="clearSelect()" v-if="tool.checkAuth($route.name, 'read')">
-          </category-select>
-        </div>
-        <!--最新最热切换-->
-        <hot-new-control @sortTypeChange="sortTypeChange" v-if="tool.checkAuth($route.name, 'read')"></hot-new-control>
-      </div>
+      <!-- 搜索及分类筛选 -->
+      <filterList @changeTypeId="changeTypeId" @startSearch="startSearch">
+        <span style="flex: 1;display: flex;justify-content: flex-end;">
+          <hot-new-control @sortTypeChange="sortTypeChange" />
+        </span>
+      </filterList>
       <!--素材列表-->
       <list :fileData="fileData" @listItemClick="listItemClick" :isHandle="false"
         v-if="tool.checkAuth($route.name, 'read')">
@@ -25,6 +20,7 @@
 </template>
 
 <script>
+import filterList from "@/HManagement/archives_ad/modules/filterList.vue";
 import HotNewControl from '@/components/hot-new-control/HotNewControl'
 import CategorySelect from '@/components/category-select/CategorySelect'
 import list from '@/SManagement/archives_ad/components/list'
@@ -77,6 +73,7 @@ export default {
     detail,
     Delete,
     Edit,
+    filterList
   },
   computed: {
   },
@@ -86,23 +83,34 @@ export default {
   },
   methods: {
     //获取文件数据
-    async getFileList() {
+    async getFileList(init = false) {
+      if (init) this.params.content.pageNumber = 1;
       let res = await this.$api.requested(this.params)
-        this.total = res.total
-        for (let i = 0; i < res.data.length; i++) {
-          let list = this.fileType.fileList(res.data[i].attinfos)
-          if (!list.length) continue;
-          let obj = list.find(item => item.fileType == 'image')
-          if (!obj) continue;
-          res.data[i].cover = this.fileType.getSpecifiedImage(obj)
-          res.data.attinfos = list
-        }
-        let initID = '9999' + JSON.parse(window.sessionStorage.getItem("active_account")).userid;
-        let deleteList = [];
-        res.data.forEach(v => (initID == v.sat_sharematerial_classid && v.title == '') ? deleteList.push(v.sat_sharematerialid) : '');
-        if (deleteList.length != 0) this.handleDelete(deleteList);
-        this.fileData = res.data
-        this.params.content.sort = res.sort
+      this.total = res.total
+      for (let i = 0; i < res.data.length; i++) {
+        let list = this.fileType.fileList(res.data[i].attinfos)
+        if (!list.length) continue;
+        let obj = list.find(item => item.fileType == 'image')
+        if (!obj) continue;
+        res.data[i].cover = this.fileType.getSpecifiedImage(obj)
+        res.data.attinfos = list
+      }
+      let initID = '9999' + JSON.parse(window.sessionStorage.getItem("active_account")).userid;
+      let deleteList = [];
+      res.data.forEach(v => (initID == v.sat_sharematerial_classid && v.title == '') ? deleteList.push(v.sat_sharematerialid) : '');
+      if (deleteList.length != 0) this.handleDelete(deleteList);
+      this.fileData = res.data
+      this.params.content.sort = res.sort
+    },
+    /* 改变分类ID */
+    changeTypeId(id) {
+      this.params.content.where.sat_sharematerial_classid = id == 0 ? null : id;
+      this.getFileList(true);
+    },
+    /* 开始搜索 */
+    startSearch(value) {
+      this.params.content.where.condition = value;
+      this.getFileList(true);
     },
     /* 处理批量删除 */
     handleDelete(list) {
@@ -122,27 +130,12 @@ export default {
         this.selectList = res.data
       })
     },
-    //查询
-    searchActive(result) {
-      if (!result) return
-      this.params.content.where.condition = result
-      this.getFileList()
-    },
     sortTypeChange(name) {
       for (let i = 0; i < this.params.content.sort.length; i++) {
         this.params.content.sort[i].sorted = this.params.content.sort[i].sortname == name ? 1 : 0
       }
       this.getFileList()
     },
-    //赛选
-    changeSelect(id) {
-      this.params.content.where.sat_sharematerial_classid = id[id.length - 1]
-      this.getFileList()
-    },
-    //清空赛选
-    clearSelect() {
-      this.getFileList()
-    },
     //列表单击事件
     async listItemClick(data) {
       let param = {

+ 31 - 42
src/SManagement/archives_admag/index.vue

@@ -4,17 +4,12 @@
       <save></save>
     </Header>
     <div class="normal-card">
-      <div class="header-panl">
-        <div class="left">
-          <search @searchActive="searchActive" @clearData="clearData()" v-if="tool.checkAuth($route.name, 'read')">
-          </search>
-          <category-select label="素材分类" :selectList="selectList" @changeSelect="changeSelect"
-            @clearSelect="clearSelect()" v-if="tool.checkAuth($route.name, 'read')">
-          </category-select>
-        </div>
-        <!--最新最热切换-->
-        <hot-new-control @sortTypeChange="sortTypeChange" v-if="tool.checkAuth($route.name, 'read')"></hot-new-control>
-      </div>
+      <!-- 搜索及分类筛选 -->
+      <filterList @changeTypeId="changeTypeId" @startSearch="startSearch">
+        <span style="flex: 1;display: flex;justify-content: flex-end;">
+          <hot-new-control @sortTypeChange="sortTypeChange" />
+        </span>
+      </filterList>
       <!--素材列表-->
       <list :fileData="fileData" @listItemClick="listItemClick" :isHandle="true"
         v-if="tool.checkAuth($route.name, 'read')">
@@ -35,6 +30,7 @@
 </template>
 
 <script>
+import filterList from "@/HManagement/archives_ad/modules/filterList.vue";
 import Header from '@/SManagement/archives_upload/components/Header'
 import save from '@/SManagement/archives_upload/components/save'
 import HotNewControl from '@/components/hot-new-control/HotNewControl'
@@ -59,7 +55,7 @@ export default {
         "content": {
           "pageNumber": 1,
           "pageSize": 12,
-          "nocache":true,
+          "nocache": true,
           "where": {
             "condition": "",
             "sat_sharematerial_classid": null
@@ -94,7 +90,8 @@ export default {
     Delete,
     Edit,
     Header,
-    save
+    save,
+    filterList
   },
   computed: {
   },
@@ -103,8 +100,19 @@ export default {
     this.getSelectList()
   },
   methods: {
+    /* 改变分类ID */
+    changeTypeId(id) {
+      this.params.content.where.sat_sharematerial_classid = id == 0 ? null : id;
+      this.getFileList(true);
+    },
+    /* 开始搜索 */
+    startSearch(value) {
+      this.params.content.where.condition = value;
+      this.getFileList(true);
+    },
     //获取文件数据
-    async getFileList() {
+    async getFileList(init = false) {
+      if (init) this.params.content.pageNumber = 1;
       let res = await this.$api.requested(this.params)
       let initID = '9999' + JSON.parse(window.sessionStorage.getItem("active_account")).userid;
       let deleteList = [];
@@ -119,46 +127,27 @@ export default {
     },
     /* 处理批量删除 */
     handleDelete(list) {
-        this.$api.requested({
-            "classname": "webmanage.saletool.sharematerial.sharematerial",
-            "method": "delete",
-            "content": {
-                "sat_sharematerialid": list
-            }
-        }).then(res => {
-            if(res.msg=='成功') this.getFileList();
-        })
+      this.$api.requested({
+        "classname": "webmanage.saletool.sharematerial.sharematerial",
+        "method": "delete",
+        "content": {
+          "sat_sharematerialid": list
+        }
+      }).then(res => {
+        if (res.msg == '成功') this.getFileList();
+      })
     },
     //获取分类列表
     async getSelectList() {
       let res = await this.$api.requested(this.select)
       this.selectList = res.data
     },
-    //查询
-    async searchActive(result) {
-      if (!result) return
-      this.params.content.where.condition = result
-      let res = await this.$api.requested(this.params)
-      this.fileData = res.data
-      this.fileData.forEach((item) => {
-        item.attinfos = matchingFileType.fileList(item.attinfos)
-      })
-    },
     sortTypeChange(name) {
       for (let i = 0; i < this.params.content.sort.length; i++) {
         this.params.content.sort[i].sorted = this.params.content.sort[i].sortname == name ? 1 : 0
       }
       this.getFileList()
     },
-    //赛选
-    changeSelect(id) {
-      this.params.content.where.sat_sharematerial_classid = id[id.length - 1]
-      this.getFileList()
-    },
-    //清空赛选
-    clearSelect() {
-      this.getFileList()
-    },
     //列表单击事件
     async listItemClick(data) {
       let param = {