张卓
2022-09-20 5aead44ba1be31db948dfd8362c2bfcbedbbce29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<template >
  <div>
    <a-collapse accordion>
      <a-collapse-panel @click.stop  v-for="item in menuListData" :key="item.id" :header="item.name" >
        <span  v slot="extra" style="position: absolute;left: 32%; width:10%; text-align: center;" >{{ item.order }}</span>
        <span  v slot="extra" style="position: absolute;left: 58%; width:10%; text-align: center" >{{ item.url }}</span>
        <span  v slot="extra" style="position: absolute;left: 82%; width:15%;text-align: center">
          <a v slot="extra" @click="edit($event,item)">编辑</a>
            <a-divider type = 'vertical' />
          <a v slot="extra" @click="addMenu($event,item.id)">新增</a>
            <a-divider type = 'vertical' />
          <a-popconfirm placement="top" title="是否删除" ok-text="是" cancel-text="否" @confirm ="deleteMenu(item.id)"  >
       <a @click="prohibitShow">删除</a>
      </a-popconfirm>
        </span>
          <div v-if="item.children && item.children.length > 0" >
<!--            <a-collapse>-->
<!--              <a-collapse-panel @click.stop  v-for="item1 in item.children" :key="item1.id" :header="item1.name" >-->
<!--                <span  v slot="extra" style="position: absolute;left: 32%; width:10%; text-align: center;" >{{ item1.order }}</span>-->
<!--                <span  v slot="extra" style="position: absolute;left: 58%; width:10%; text-align: center" >{{ item1.url }}</span>-->
<!--                <span  v slot="extra" style="position: absolute;left: 82%; width:15%;text-align: center">-->
<!--               <a v slot="extra" @click="edit($event,item1)">编辑</a>-->
<!--            <a-divider type = 'vertical' />-->
<!--          <a-popconfirm placement="top" title="是否删除" ok-text="是" cancel-text="否" @confirm ="deleteMenu(item1.id)"  >-->
<!--       <a @click="prohibitShow">删除</a>-->
<!--          </a-popconfirm>-->
<!--                </span>-->
<!--              </a-collapse-panel>-->
<!--            </a-collapse>-->
            <menu-list-item :menuListData="item.children" :key="item.id">
            </menu-list-item>
          </div>
      </a-collapse-panel>
    </a-collapse>
  </div>
</template>
 
<script lang="tsx">
import { get, post } from "@/util/request";
    import {Component, Emit, Prop, Vue, Watch} from 'vue-property-decorator';
    import Bus from '@/bus'
  @Component({
    components:{
    }
  })
  export default class MenuListItem extends Vue{
    @Prop({
      type: Array
    })
    private menuListData: any[];
 
 
  private created(){
 
  }
 
    private edit(event: any, item: any[]) {
        event.stopPropagation()
        this.$store.state.webMenu.editMenu = item
        Bus.$emit('edit', item)
        this.$store.state.webMenu.editModelFlag = true
    }
    private addMenu(event: any,id:number) {
        this.$store.state.webMenu.webMenuParentId = id
        event.stopPropagation()
        this.$store.state.webMenu.webMenuAddFlag = true
    }
    private deleteMenu(id: number) {
      post('menu/delete',
            {
                id: id
            }
        ).then((res: any) => {
          if (res.data.code === 0) {
            this.$message.success('删除成功')
            // 用于爷爷孙子组件传值
            Bus.$emit('delete', true)
          }else {
            this.$message.warning(res.data.message)
          }
 
        })
    }
      private prohibitShow(event: any) {
          event.stopPropagation()
      }
  }
</script>
 
<style scoped>
 
</style>