edit.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <template>
  2. <div>
  3. <el-form ref="form" :rules="rules" :model="form" label-width="120px">
  4. <el-form-item
  5. label="菜单名称:"
  6. prop="label"
  7. >
  8. <el-input v-model.number="form.label" placeholder="请输入菜单名称"></el-input>
  9. </el-form-item>
  10. <el-form-item
  11. label="父级菜单:"
  12. prop="pid"
  13. >
  14. <el-cascader
  15. v-model="form.pid"
  16. :options="menulist"
  17. :props="{
  18. checkStrictly: true,
  19. value:'id',
  20. label:'label',
  21. children:'children',
  22. }"
  23. clearable></el-cascader>
  24. </el-form-item>
  25. <el-form-item label="路由地址:" prop="url">
  26. <el-input v-model="form.url" placeholder="输入路由地址" ></el-input>
  27. </el-form-item>
  28. <el-form-item label="图标:" prop="icon">
  29. <el-input v-model="form.icon" placeholder="输入图标地址" ></el-input>
  30. </el-form-item>
  31. <el-form-item label="排序:" prop="sort">
  32. <el-input v-model="form.sort" placeholder="输入排序" ></el-input>
  33. </el-form-item>
  34. <el-form-item label="是否外链:" prop="is_links">
  35. <el-switch
  36. v-model="form.is_links"
  37. :active-value="1"
  38. :inactive-value="0"
  39. >
  40. </el-switch>
  41. </el-form-item>
  42. <el-form-item label="是否隐藏:" prop="hidden">
  43. <el-switch
  44. v-model="form.hidden"
  45. :active-value="1"
  46. :inactive-value="0"
  47. >
  48. </el-switch>
  49. </el-form-item>
  50. <el-form-item>
  51. <div style="text-align: center">
  52. <el-button type="primary" @click="onSubmit" :disabled="Isdisabled" :loading="isloading">保存</el-button>
  53. <el-button style="color: #5075FC " @click="closeDlg">取消</el-button>
  54. </div>
  55. </el-form-item>
  56. </el-form>
  57. </div>
  58. </template>
  59. <script>
  60. export default {
  61. props: {
  62. menuDataForm: {
  63. type: Object,
  64. default: () => {}
  65. },
  66. isloading:{
  67. type:Boolean,
  68. default: true
  69. },
  70. closeDlg:{
  71. type:Function
  72. }
  73. },
  74. data() {
  75. return {
  76. form: {
  77. label: '',
  78. url:"",
  79. icon:"",
  80. sort:"",
  81. is_links:"",
  82. hidden:"",
  83. pid:[0]
  84. },
  85. menulist: [],
  86. Isdisabled: false,
  87. rules: {
  88. label: [
  89. { required: true, message: '菜单名称必填' },
  90. ],
  91. url: [
  92. { required: true, message: '路由地址必填' }
  93. ],
  94. sort: [
  95. { pattern: /^[1-9]\d*$/, message: '排序值格式错误' },
  96. ]
  97. }
  98. }
  99. },
  100. mounted() {
  101. if(this.menuDataForm) {
  102. this.form = Object.assign({} , this.menuDataForm)
  103. }
  104. this.getRecursionMenu()
  105. },
  106. methods: {
  107. closeDlg() {
  108. // this.isloading = false
  109. console.log("edit提交")
  110. this.$emit('closeDlg',1)
  111. },
  112. onSubmit() {
  113. let that = this
  114. that.$refs['form'].validate((valid) => {
  115. if (valid) {
  116. this.$emit('menuSubmitClick', this.form)
  117. }
  118. })
  119. },
  120. getRecursionMenu(){
  121. let _t= this
  122. let parames = {}
  123. this.$api.pub.getMenuList(parames).then(res=>{
  124. if(res.code==200){
  125. // id: 4, pid: 1, label: "权限设置"
  126. // res.data.concat({"id":1,"label":"一级目录","children":[]});
  127. // console.log(res.data)
  128. _t.menulist = res.data
  129. }else{
  130. this.$message.error("查询失败")
  131. }
  132. })
  133. },
  134. }
  135. }
  136. </script>
  137. <style>
  138. .el-cascader-node>.el-radio{
  139. margin-top:25px;
  140. }
  141. </style>