|
@@ -4,13 +4,7 @@
|
|
|
<el-card>
|
|
<el-card>
|
|
|
<el-container>
|
|
<el-container>
|
|
|
<el-aside :width="treeWidth">
|
|
<el-aside :width="treeWidth">
|
|
|
- <tree
|
|
|
|
|
- title="Menu"
|
|
|
|
|
- :api="this.$api.sysMenu.tree"
|
|
|
|
|
- :data-query="treeQuery"
|
|
|
|
|
- :call-back="getTreeDataCallBack"
|
|
|
|
|
- :click="treeClick"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <tree :fetch="this.$api.sysMenu.tree" :query="nodeQuery" :call-back="getTreeDataCallBack" :click="nodeClick" />
|
|
|
</el-aside>
|
|
</el-aside>
|
|
|
<el-container>
|
|
<el-container>
|
|
|
<el-header height="120">
|
|
<el-header height="120">
|
|
@@ -69,6 +63,53 @@
|
|
|
</el-container>
|
|
</el-container>
|
|
|
</el-card>
|
|
</el-card>
|
|
|
</el-main>
|
|
</el-main>
|
|
|
|
|
+ <el-dialog :title="dialogStatus==='create'?'Create':'Edit'" :visible.sync="dialogVisible" width="40%" @close="dialogClose">
|
|
|
|
|
+ <el-form ref="dataForm" :size="size" :rules="rules" :model="temp" label-width="85px">
|
|
|
|
|
+ <el-form-item label="Name:" prop="name">
|
|
|
|
|
+ <el-input v-model="temp.name" placeholder="Please input name" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="Code:" prop="code">
|
|
|
|
|
+ <el-input v-model="temp.code" placeholder="Please input code" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="Url:" prop="url">
|
|
|
|
|
+ <el-input v-model="temp.url" placeholder="Please input url" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="Com:" prop="component">
|
|
|
|
|
+ <el-input v-model="temp.component" placeholder="Please input component" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="Order:" prop="order_num">
|
|
|
|
|
+ <el-input v-model.number="temp.order_num" placeholder="Please input order" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="Icon:" prop="icon">
|
|
|
|
|
+ <el-input v-model="temp.icon" placeholder="Please input icon" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="Perms:" prop="perms">
|
|
|
|
|
+ <el-input v-model="temp.perms" placeholder="Please input perms" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="Type:" prop="type">
|
|
|
|
|
+ <el-select v-model="temp.type" placeholder="Please input type" style="width: 100%;">
|
|
|
|
|
+ <el-option v-for="item in menuTypes" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="Parent:" prop="parent">
|
|
|
|
|
+ <cascader
|
|
|
|
|
+ :api="this.$api.sysMenu.tree"
|
|
|
|
|
+ :data-query="nodeQuery"
|
|
|
|
|
+ :value.sync="temp.parent"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="Hidden:" prop="hidden">
|
|
|
|
|
+ <el-radio v-model="temp.hidden" :label="1">是</el-radio>
|
|
|
|
|
+ <el-radio v-model="temp.hidden" :label="0">否</el-radio>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+ <footer slot="footer" class="dialog-footer">
|
|
|
|
|
+ <el-button :size="size" @click="dialogVisible = false">取 消</el-button>
|
|
|
|
|
+ <el-button :size="size" type="primary" @click="dialogStatus==='create'?createData():updateData()">确 定
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ </footer>
|
|
|
|
|
+ </el-dialog>
|
|
|
|
|
+
|
|
|
</el-container>
|
|
</el-container>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -76,10 +117,11 @@
|
|
|
import { mapGetters } from 'vuex'
|
|
import { mapGetters } from 'vuex'
|
|
|
import Tree from '@/components/Tree'
|
|
import Tree from '@/components/Tree'
|
|
|
import Sheet from '@/components/Sheet'
|
|
import Sheet from '@/components/Sheet'
|
|
|
|
|
+import Cascader from '@/components/Cascader'
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
name: 'Menu',
|
|
name: 'Menu',
|
|
|
- components: { Tree, Sheet },
|
|
|
|
|
|
|
+ components: { Tree, Sheet, Cascader },
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
tableColumns: [
|
|
tableColumns: [
|
|
@@ -147,11 +189,10 @@ export default {
|
|
|
name: '',
|
|
name: '',
|
|
|
code: '',
|
|
code: '',
|
|
|
cn_id: '',
|
|
cn_id: '',
|
|
|
- type_op: '>=',
|
|
|
|
|
- type: '0',
|
|
|
|
|
- hidden: 0
|
|
|
|
|
|
|
+ type: '0'
|
|
|
|
|
+ },
|
|
|
|
|
+ nodeQuery: {
|
|
|
},
|
|
},
|
|
|
- treeQuery: { del_falg: 0, hidden: 0, type_op: '>=', type: 0 },
|
|
|
|
|
temp: {
|
|
temp: {
|
|
|
id: undefined,
|
|
id: undefined,
|
|
|
name: '',
|
|
name: '',
|
|
@@ -203,7 +244,10 @@ export default {
|
|
|
},
|
|
},
|
|
|
created() {},
|
|
created() {},
|
|
|
methods: {
|
|
methods: {
|
|
|
- treeClick(node) {},
|
|
|
|
|
|
|
+ nodeClick(node) {
|
|
|
|
|
+ this.dataQuery.cn_id = node.id
|
|
|
|
|
+ this.$refs.qtable.getData()
|
|
|
|
|
+ },
|
|
|
getTreeDataCallBack(tree) {},
|
|
getTreeDataCallBack(tree) {},
|
|
|
handleChange(value) {},
|
|
handleChange(value) {},
|
|
|
createData() {},
|
|
createData() {},
|
|
@@ -214,7 +258,14 @@ export default {
|
|
|
deleteBatch() {},
|
|
deleteBatch() {},
|
|
|
dialogClose() {},
|
|
dialogClose() {},
|
|
|
create() {},
|
|
create() {},
|
|
|
- edit(row) {}
|
|
|
|
|
|
|
+ edit(row) {
|
|
|
|
|
+ this.dialogStatus = 'update'
|
|
|
|
|
+ this.dialogVisible = true
|
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
|
+ this.$refs['dataForm'].clearValidate()
|
|
|
|
|
+ this.temp = Object.assign({}, row)
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
</script>
|
|
</script>
|