丰都增加显示字段
This commit is contained in:
		| @@ -3,31 +3,31 @@ | ||||
|     <template slot="content"> | ||||
|       <ai-search-bar class="search-bar"> | ||||
|         <template slot="left"> | ||||
| <!--          <ai-select--> | ||||
| <!--            v-model="search.owner"--> | ||||
| <!--            filterable--> | ||||
| <!--            @change="search.current = 1, getList()"--> | ||||
| <!--            placeholder="群主"--> | ||||
| <!--            :selectList="userList">--> | ||||
| <!--          </ai-select>--> | ||||
|           <!--          <ai-select--> | ||||
|           <!--            v-model="search.owner"--> | ||||
|           <!--            filterable--> | ||||
|           <!--            @change="search.current = 1, getList()"--> | ||||
|           <!--            placeholder="群主"--> | ||||
|           <!--            :selectList="userList">--> | ||||
|           <!--          </ai-select>--> | ||||
|           <ai-select | ||||
|             v-model="search.tagId" | ||||
|             @change="search.current = 1, getList()" | ||||
|             placeholder="选择标签" | ||||
|             :selectList="subTags"> | ||||
|               v-model="search.tagId" | ||||
|               @change="search.current = 1, getList()" | ||||
|               placeholder="选择标签" | ||||
|               :selectList="subTags"> | ||||
|           </ai-select> | ||||
|         </template> | ||||
|         <template slot="right"> | ||||
|           <el-input | ||||
|             v-model="search.name" | ||||
|             class="search-input" | ||||
|             size="small" | ||||
|             v-throttle="() => {search.current = 1, getList()}" | ||||
|             placeholder="请输入群主/群名称" | ||||
|             clearable | ||||
|             @change="getList" | ||||
|             @clear="search.current = 1, search.name = '', getList()" | ||||
|             suffix-icon="iconfont iconSearch"> | ||||
|               v-model="search.name" | ||||
|               class="search-input" | ||||
|               size="small" | ||||
|               v-throttle="() => {search.current = 1, getList()}" | ||||
|               placeholder="请输入群主/群名称" | ||||
|               clearable | ||||
|               @change="getList" | ||||
|               @clear="search.current = 1, search.name = '', getList()" | ||||
|               suffix-icon="iconfont iconSearch"> | ||||
|           </el-input> | ||||
|         </template> | ||||
|       </ai-search-bar> | ||||
| @@ -45,15 +45,15 @@ | ||||
|         </template> | ||||
|       </ai-search-bar> | ||||
|       <ai-table | ||||
|         :tableData="tableData" | ||||
|         :col-configs="colConfigs" | ||||
|         :total="total" | ||||
|         ref="aitableex" | ||||
|         :current.sync="search.current" | ||||
|         @selection-change="handleSelectionChange" | ||||
|         :size.sync="search.size" | ||||
|         v-loading="isLoading" | ||||
|         @getList="getList"> | ||||
|           :tableData="tableData" | ||||
|           :col-configs="colConfigs" | ||||
|           :total="total" | ||||
|           ref="aitableex" | ||||
|           :current.sync="search.current" | ||||
|           @selection-change="handleSelectionChange" | ||||
|           :size.sync="search.size" | ||||
|           v-loading="isLoading" | ||||
|           @getList="getList"> | ||||
|         <el-table-column slot="avatar" label="" width="80" align="center"> | ||||
|           <template slot-scope="{ row }"> | ||||
|             <div class="avatar" style="text-align: right;justify-content: end;"> | ||||
| @@ -89,20 +89,20 @@ | ||||
|         </el-table-column> | ||||
|       </ai-table> | ||||
|       <ai-dialog | ||||
|         :visible.sync="isShow" | ||||
|         width="800px" | ||||
|         title="批量打标签" | ||||
|         @close="chooseTags = []" | ||||
|         @onConfirm="onConfirm"> | ||||
|           :visible.sync="isShow" | ||||
|           width="800px" | ||||
|           title="批量打标签" | ||||
|           @close="chooseTags = []" | ||||
|           @onConfirm="onConfirm"> | ||||
|         <div class="tags"> | ||||
|           <div class="tag-item" v-for="(item, index) in tags" :key="index"> | ||||
|             <h2>{{ item.name }}</h2> | ||||
|             <div class="tag-item__right"> | ||||
|               <el-button | ||||
|                 :type="chooseTags.indexOf(item.id) === -1 ? '' : 'primary'" | ||||
|                 v-for="(item, index) in item.tagList" | ||||
|                 @click="choose(item.id)" | ||||
|                 :key="index"> | ||||
|                   :type="chooseTags.indexOf(item.id) === -1 ? '' : 'primary'" | ||||
|                   v-for="(item, index) in item.tagList" | ||||
|                   @click="choose(item.id)" | ||||
|                   :key="index"> | ||||
|                 {{ item.name }} | ||||
|               </el-button> | ||||
|             </div> | ||||
| @@ -114,288 +114,285 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   import {mapState} from 'vuex' | ||||
| import {mapState} from 'vuex' | ||||
|  | ||||
|   export default { | ||||
|     name: 'List', | ||||
| export default { | ||||
|   name: 'List', | ||||
|  | ||||
|     props: { | ||||
|       instance: Function, dict: Object | ||||
|     }, | ||||
|   props: { | ||||
|     instance: Function, dict: Object | ||||
|   }, | ||||
|  | ||||
|     data() { | ||||
|       return { | ||||
|         search: { | ||||
|           current: 1, | ||||
|           size: 10, | ||||
|           name: '', | ||||
|           // tagId: '', | ||||
|           owner: '' | ||||
|         }, | ||||
|         isLoading: false, | ||||
|         isShow: false, | ||||
|         ids: [], | ||||
|         total: 10, | ||||
|         chooseTags: [], | ||||
|         tags: [], | ||||
|         colConfigs: [ | ||||
|           {type: 'selection'}, | ||||
|           // {slot: 'avatar'}, | ||||
|           {slot: 'userinfo'}, | ||||
|           {prop: 'ownerName', label: '群主', align: 'center'}, | ||||
|           {slot: 'tags'}, | ||||
|           { | ||||
|             prop: 'personCount', label: '群人数', align: 'center' | ||||
|           }, | ||||
|           {prop: 'increase', label: '当日入群人数', align: 'center'}, | ||||
|           {prop: 'decrease', label: '当日退群人数', align: 'center'}, | ||||
|           { | ||||
|             prop: 'createTime', label: '创建时间', align: 'left' | ||||
|           }, | ||||
|           {slot: 'options', label: '操作', align: 'center'}], | ||||
|         tableData: [], | ||||
|         subTags: [], | ||||
|         userList: [] | ||||
|       } | ||||
|     }, | ||||
|  | ||||
|     computed: { | ||||
|       ...mapState(['user']) | ||||
|     }, | ||||
|  | ||||
|     mounted() { | ||||
|       this.getTags() | ||||
|       this.getSubTags() | ||||
|       // this.getWxUserList() | ||||
|       this.getList() | ||||
|       this.isLoading = true | ||||
|     }, | ||||
|  | ||||
|     methods: { | ||||
|       getWxUserList () { | ||||
|         this.instance.post(`/app/wxcp/wxuser/listByDepartId`, { | ||||
|         }).then(res => { | ||||
|           if (res.code == 0) { | ||||
|             this.userList = res.data.map(item => { | ||||
|               item.dictName = item.name | ||||
|               item.dictValue = item.id | ||||
|  | ||||
|               return item | ||||
|             }) | ||||
|           } | ||||
|         }) | ||||
|   data() { | ||||
|     return { | ||||
|       search: { | ||||
|         current: 1, | ||||
|         size: 10, | ||||
|         name: '', | ||||
|         // tagId: '', | ||||
|         owner: '' | ||||
|       }, | ||||
|       isLoading: false, | ||||
|       isShow: false, | ||||
|       ids: [], | ||||
|       total: 10, | ||||
|       chooseTags: [], | ||||
|       tags: [], | ||||
|       colConfigs: [ | ||||
|         {type: 'selection'}, | ||||
|         // {slot: 'avatar'}, | ||||
|         {slot: 'userinfo'}, | ||||
|         {prop: 'ownerName', label: '群主', align: 'center'}, | ||||
|         {prop: 'departmentName', label: '部门', align: 'center'}, | ||||
|         {prop: 'areaName', label: '地区', align: 'center'}, | ||||
|         {slot: 'tags'}, | ||||
|         {prop: 'personCount', label: '群人数', align: 'center'}, | ||||
|         {prop: 'increase', label: '当日入群人数', align: 'center'}, | ||||
|         {prop: 'decrease', label: '当日退群人数', align: 'center'}, | ||||
|         {prop: 'createTime', label: '创建时间', align: 'left'}, | ||||
|         {slot: 'options', label: '操作', align: 'center'}], | ||||
|       tableData: [], | ||||
|       subTags: [], | ||||
|       userList: [] | ||||
|     } | ||||
|   }, | ||||
|  | ||||
|       update() { | ||||
|         this.instance.post(`/app/wxcp/wxgroup/sync`).then(res => { | ||||
|           if (res.code == 0) { | ||||
|             this.$message.success('更新成功') | ||||
|             this.getList() | ||||
|           } | ||||
|         }) | ||||
|       }, | ||||
|   computed: { | ||||
|     ...mapState(['user']) | ||||
|   }, | ||||
|  | ||||
|       getSubTags() { | ||||
|         this.instance.post(`/app/wxcp/wxgroupchattag/listAllTag`).then(res => { | ||||
|           if (res.code == 0) { | ||||
|             this.subTags = res.data?.map(item => { | ||||
|               return { | ||||
|                 dictName: item.name, | ||||
|                 dictValue: item.id | ||||
|               } | ||||
|             }) | ||||
|           } | ||||
|         }) | ||||
|       }, | ||||
|   mounted() { | ||||
|     this.getTags() | ||||
|     this.getSubTags() | ||||
|     // this.getWxUserList() | ||||
|     this.getList() | ||||
|     this.isLoading = true | ||||
|   }, | ||||
|  | ||||
|       getList() { | ||||
|         this.instance.post(`/app/wxcp/wxgroup/list`, null, { | ||||
|           params: { | ||||
|             ...this.search | ||||
|           } | ||||
|         }).then(res => { | ||||
|           if (res.code == 0) { | ||||
|             this.tableData = res.data.records | ||||
|             this.total = res.data.total | ||||
|           } | ||||
|           this.isLoading = false | ||||
|         }).catch(() => { | ||||
|           this.isLoading = false | ||||
|         }) | ||||
|       }, | ||||
|   methods: { | ||||
|     getWxUserList() { | ||||
|       this.instance.post(`/app/wxcp/wxuser/listByDepartId`, {}).then(res => { | ||||
|         if (res.code == 0) { | ||||
|           this.userList = res.data.map(item => { | ||||
|             item.dictName = item.name | ||||
|             item.dictValue = item.id | ||||
|  | ||||
|       choose(id) { | ||||
|         const index = this.chooseTags.indexOf(id) | ||||
|         if (index === -1) { | ||||
|           this.chooseTags.push(id) | ||||
|         } else { | ||||
|           this.chooseTags.splice(index, 1) | ||||
|             return item | ||||
|           }) | ||||
|         } | ||||
|       }, | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       onConfirm(type = 0) { | ||||
|         if (type == 0 && !this.chooseTags.length) { | ||||
|           return this.$message.error('请选择标签') | ||||
|     update() { | ||||
|       this.instance.post(`/app/wxcp/wxgroup/sync`).then(res => { | ||||
|         if (res.code == 0) { | ||||
|           this.$message.success('更新成功') | ||||
|           this.getList() | ||||
|         } | ||||
|         this.instance.post(`/app/wxcp/wxgroupchattag/markTagForWeb`, { | ||||
|           tagIds: this.chooseTags, groupIds: this.ids.map(v => v.id), type, | ||||
|         }).then(res => { | ||||
|           if (res.code == 0) { | ||||
|             type == 0 ? (this.isShow = false) : false | ||||
|             this.$message.success(type == 0 ? "添加成功" : "删除成功") | ||||
|             this.getList() | ||||
|           } | ||||
|         }) | ||||
|       }, | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       getTags() { | ||||
|         this.instance.post(`/app/wxcp/wxgroupchattag/listAll?size=999`).then(res => { | ||||
|           if (res.code == 0) { | ||||
|             this.tags = res.data.records | ||||
|           } | ||||
|         }) | ||||
|       }, | ||||
|  | ||||
|       onAdd() { | ||||
|         this.$emit('change', { | ||||
|           type: 'add' | ||||
|         }) | ||||
|       }, | ||||
|  | ||||
|       handleSelectionChange(e) { | ||||
|         this.ids = e | ||||
|       }, | ||||
|  | ||||
|       removeAll() { | ||||
|         this.remove(this.ids.map(v => v.id).join(',')) | ||||
|       }, | ||||
|  | ||||
|       remove(id) { | ||||
|         this.$confirm('确定删除该数据?').then(() => { | ||||
|           this.instance.post(`/app/apppetition/delete?ids=${id}`).then(res => { | ||||
|             if (res.code == 0) { | ||||
|               this.$message.success('删除成功!') | ||||
|               this.getList() | ||||
|     getSubTags() { | ||||
|       this.instance.post(`/app/wxcp/wxgroupchattag/listAllTag`).then(res => { | ||||
|         if (res.code == 0) { | ||||
|           this.subTags = res.data?.map(item => { | ||||
|             return { | ||||
|               dictName: item.name, | ||||
|               dictValue: item.id | ||||
|             } | ||||
|           }) | ||||
|         }) | ||||
|       }, | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       toDetail(id) { | ||||
|         this.$emit('change', { | ||||
|           type: 'detail', params: { | ||||
|             id: id | ||||
|     getList() { | ||||
|       this.instance.post(`/app/wxcp/wxgroup/list`, null, { | ||||
|         params: { | ||||
|           ...this.search | ||||
|         } | ||||
|       }).then(res => { | ||||
|         if (res.code == 0) { | ||||
|           this.tableData = res.data.records | ||||
|           this.total = res.data.total | ||||
|         } | ||||
|         this.isLoading = false | ||||
|       }).catch(() => { | ||||
|         this.isLoading = false | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|     choose(id) { | ||||
|       const index = this.chooseTags.indexOf(id) | ||||
|       if (index === -1) { | ||||
|         this.chooseTags.push(id) | ||||
|       } else { | ||||
|         this.chooseTags.splice(index, 1) | ||||
|       } | ||||
|     }, | ||||
|  | ||||
|     onConfirm(type = 0) { | ||||
|       if (type == 0 && !this.chooseTags.length) { | ||||
|         return this.$message.error('请选择标签') | ||||
|       } | ||||
|       this.instance.post(`/app/wxcp/wxgroupchattag/markTagForWeb`, { | ||||
|         tagIds: this.chooseTags, groupIds: this.ids.map(v => v.id), type, | ||||
|       }).then(res => { | ||||
|         if (res.code == 0) { | ||||
|           type == 0 ? (this.isShow = false) : false | ||||
|           this.$message.success(type == 0 ? "添加成功" : "删除成功") | ||||
|           this.getList() | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|     getTags() { | ||||
|       this.instance.post(`/app/wxcp/wxgroupchattag/listAll?size=999`).then(res => { | ||||
|         if (res.code == 0) { | ||||
|           this.tags = res.data.records | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|     onAdd() { | ||||
|       this.$emit('change', { | ||||
|         type: 'add' | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|     handleSelectionChange(e) { | ||||
|       this.ids = e | ||||
|     }, | ||||
|  | ||||
|     removeAll() { | ||||
|       this.remove(this.ids.map(v => v.id).join(',')) | ||||
|     }, | ||||
|  | ||||
|     remove(id) { | ||||
|       this.$confirm('确定删除该数据?').then(() => { | ||||
|         this.instance.post(`/app/apppetition/delete?ids=${id}`).then(res => { | ||||
|           if (res.code == 0) { | ||||
|             this.$message.success('删除成功!') | ||||
|             this.getList() | ||||
|           } | ||||
|         }) | ||||
|       }, | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       onAdd() { | ||||
|         this.$emit('change', { | ||||
|           type: 'add' | ||||
|         }) | ||||
|       } | ||||
|     toDetail(id) { | ||||
|       this.$emit('change', { | ||||
|         type: 'detail', params: { | ||||
|           id: id | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|     onAdd() { | ||||
|       this.$emit('change', { | ||||
|         type: 'add' | ||||
|       }) | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
|   .table-tags { | ||||
|     .el-tag { | ||||
|       margin-right: 8px; | ||||
|       margin-bottom: 8px; | ||||
|       border: 1px solid #D0D4DC; | ||||
|       background: #F3F4F7; | ||||
|       border-radius: 4px; | ||||
|       font-size: 13px; | ||||
|       color: #222222; | ||||
| .table-tags { | ||||
|   .el-tag { | ||||
|     margin-right: 8px; | ||||
|     margin-bottom: 8px; | ||||
|     border: 1px solid #D0D4DC; | ||||
|     background: #F3F4F7; | ||||
|     border-radius: 4px; | ||||
|     font-size: 13px; | ||||
|     color: #222222; | ||||
|  | ||||
|       &:last-child { | ||||
|         margin-right: 0; | ||||
|       } | ||||
|     &:last-child { | ||||
|       margin-right: 0; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
|   .ellipsis { | ||||
|     overflow: hidden; | ||||
|     text-overflow: ellipsis; | ||||
|     white-space: nowrap; | ||||
|   } | ||||
| .ellipsis { | ||||
|   overflow: hidden; | ||||
|   text-overflow: ellipsis; | ||||
|   white-space: nowrap; | ||||
| } | ||||
|  | ||||
|   .tags { | ||||
|     .tag-item { | ||||
|       display: flex; | ||||
|       align-items: center; | ||||
|       padding-bottom: 30px; | ||||
|       padding-top: 30px; | ||||
|       border-bottom: 1px solid #EEEEEE; | ||||
|  | ||||
|       &:first-child { | ||||
|         padding-top: 0; | ||||
|       } | ||||
|  | ||||
|       .el-tag { | ||||
|         margin-right: 8px; | ||||
|         color: #222222; | ||||
|       } | ||||
|  | ||||
|       h2 { | ||||
|         width: 88px; | ||||
|         margin-right: 40px; | ||||
|         text-align: right; | ||||
|         color: #888888; | ||||
|         font-size: 14px; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   .avatar { | ||||
|     text-align: right; | ||||
|  | ||||
|     img { | ||||
|       position: relative; | ||||
|       top: 4px; | ||||
|       width: 40px; | ||||
|       height: 40px; | ||||
|       border-radius: 2px; | ||||
|       border: 1px solid #CCCCCC; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   .userinfo { | ||||
| .tags { | ||||
|   .tag-item { | ||||
|     display: flex; | ||||
|     align-items: center; | ||||
|     line-height: 1; | ||||
|     padding-bottom: 30px; | ||||
|     padding-top: 30px; | ||||
|     border-bottom: 1px solid #EEEEEE; | ||||
|  | ||||
|     .userinfo-right__top { | ||||
|       display: flex; | ||||
|       align-items: center; | ||||
|       cursor: pointer; | ||||
|       white-space: nowrap; | ||||
|     &:first-child { | ||||
|       padding-top: 0; | ||||
|     } | ||||
|  | ||||
|     .userinfo-right__bottom { | ||||
|       text-align: left; | ||||
|     .el-tag { | ||||
|       margin-right: 8px; | ||||
|       color: #222222; | ||||
|     } | ||||
|  | ||||
|     i { | ||||
|       cursor: pointer; | ||||
|       font-style: normal; | ||||
|     h2 { | ||||
|       width: 88px; | ||||
|       margin-right: 40px; | ||||
|       text-align: right; | ||||
|       color: #888888; | ||||
|       font-size: 14px; | ||||
|     } | ||||
|  | ||||
|     h3 { | ||||
|       margin-top: 0; | ||||
|       margin-bottom: 0; | ||||
|       margin-right: 8px; | ||||
|       color: #222222; | ||||
|       font-weight: normal; | ||||
|       font-size: 14px; | ||||
|     } | ||||
|  | ||||
|     span { | ||||
|       color: #2EA222; | ||||
|       white-space: nowrap; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| .avatar { | ||||
|   text-align: right; | ||||
|  | ||||
|   img { | ||||
|     position: relative; | ||||
|     top: 4px; | ||||
|     width: 40px; | ||||
|     height: 40px; | ||||
|     border-radius: 2px; | ||||
|     border: 1px solid #CCCCCC; | ||||
|   } | ||||
| } | ||||
|  | ||||
| .userinfo { | ||||
|   display: flex; | ||||
|   align-items: center; | ||||
|   line-height: 1; | ||||
|  | ||||
|   .userinfo-right__top { | ||||
|     display: flex; | ||||
|     align-items: center; | ||||
|     cursor: pointer; | ||||
|     white-space: nowrap; | ||||
|   } | ||||
|  | ||||
|   .userinfo-right__bottom { | ||||
|     text-align: left; | ||||
|   } | ||||
|  | ||||
|   i { | ||||
|     cursor: pointer; | ||||
|     font-style: normal; | ||||
|     color: #888888; | ||||
|     font-size: 14px; | ||||
|   } | ||||
|  | ||||
|   h3 { | ||||
|     margin-top: 0; | ||||
|     margin-bottom: 0; | ||||
|     margin-right: 8px; | ||||
|     color: #222222; | ||||
|     font-weight: normal; | ||||
|     font-size: 14px; | ||||
|   } | ||||
|  | ||||
|   span { | ||||
|     color: #2EA222; | ||||
|     white-space: nowrap; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user