doum
2025-09-25 c5675caab8392bfafd217d06529c2547edaa6aa8
admin/src/components/system/menu/OperaMenuWindow.vue
@@ -8,7 +8,7 @@
  >
    <p class="tip" v-if="form.parent != null && form.id == null">为 <em>{{parentName}}</em> 新建子菜单</p>
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="上级菜单" prop="parentId">
      <el-form-item label="上级菜单" prop="parentId"  v-if="form.type !== 1">
        <MenuSelect v-if="visible" v-model="form.parentId" placeholder="请选择上级菜单" :exclude-id="excludeMenuId" clearable :inline="false"/>
      </el-form-item>
      <el-form-item label="菜单名称" prop="name" required>
@@ -20,7 +20,13 @@
      <el-form-item label="携带参数" prop="params">
        <el-input v-model="form.params" placeholder="请输入携带参数" v-trim maxlength="200"/>
      </el-form-item>
      <el-form-item label="图标" prop="icon" class="form-item-icon">
      <el-form-item label="菜单类型" prop="linkType" >
        <el-radio-group v-model="form.linkType">
          <el-radio :label="0" :value="0" >内部菜单</el-radio>
          <el-radio :label="1" :value="1" >外部系统</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="图标" prop="icon" class="form-item-icon" v-if="form.type !== 1">
        <el-radio-group v-model="form.icon">
          <el-radio :label="icon" v-for="icon in icons" :key="icon">
            <i :class="{[icon]: true}"></i>
@@ -55,14 +61,19 @@
        id: null,
        parentId: null,
        name: '',
        params:'',
        params: '',
        path: '',
        icon: '',
        type: '',
        linkType: 0,
        remark: ''
      },
      // 验证规则
      rules: {
        name: [
          { required: true, message: '请输入菜单名称' }
        ],
        linkType: [
          { required: true, message: '请输入菜单名称' }
        ]
      }
@@ -74,9 +85,10 @@
     * @target: 编辑的菜单对象
     * @parent: 新建时的上级菜单
     */
    open (title, target, parent) {
    open (title, target, parent,type) {
      this.title = title
      this.visible = true
      this.form.type = type || 0
      // 新建,menu为空时表示新建菜单
      if (target == null) {
        this.excludeMenuId = null
@@ -85,6 +97,7 @@
          this.form.id = null
          this.form.parentId = parent == null ? null : parent.id
          this.parentName = parent == null ? null : parent.name
          // this.form.type = parent == null ? 0 : parent.type
        })
        return
      }
@@ -94,6 +107,7 @@
        for (const key in this.form) {
          this.form[key] = target[key]
        }
        this.form.type = this.form.type || 0
      })
    }
  },