|
|
@@ -1,207 +1,148 @@
|
|
|
<template>
|
|
|
- <div class="app-container ele-body">
|
|
|
- <div class="zw-page-table">
|
|
|
- <!-- 条件区 -->
|
|
|
- <el-form label-width="100px" class="zw-criterion">
|
|
|
- <div class="zw-criterion-normal">
|
|
|
- <el-row>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label-width="80px" label="类型编码">
|
|
|
- <el-input placeholder="请输入内容"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4">
|
|
|
- <el-form-item label-width="80px" label="类型编码">
|
|
|
- <el-input placeholder="请输入内容"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="4" style="padding-left: 10px">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- @click="search"
|
|
|
- icon="el-icon-search"
|
|
|
-
|
|
|
- >搜索</el-button
|
|
|
- >
|
|
|
- <el-button @click="reset" icon="el-icon-refresh-left"
|
|
|
- >重置</el-button
|
|
|
- >
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <div class="butn-wrap">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- @click="add"
|
|
|
- icon="el-icon-search"
|
|
|
- size="small"
|
|
|
- >新增</el-button
|
|
|
+ <div class="ele-body">
|
|
|
+ <el-card shadow="never" v-loading="loading">
|
|
|
+ <ele-split-layout
|
|
|
+ width="266px"
|
|
|
+ allow-collapse
|
|
|
+ :right-style="{ overflow: 'hidden' }"
|
|
|
>
|
|
|
- </div>
|
|
|
- <div class="container-main">
|
|
|
- <div class="tree-wrap">
|
|
|
- <tree ref="tree" :data="treeData" @change="treeChange"></tree>
|
|
|
- </div>
|
|
|
- <div class="main-wrap">
|
|
|
- <el-table class="table" :data="tableData">
|
|
|
- <el-table-column prop="s1" label="编码" width="180">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="name" label="名称" width="180">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="address" label="描述"></el-table-column>
|
|
|
- <el-table-column prop="address" label="操作">
|
|
|
- <template slot-scope="{ row }">
|
|
|
- <el-button type="text" @click="junmpEdit(row)" size="small"
|
|
|
- >编辑</el-button
|
|
|
- >
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
-
|
|
|
- <div class="pagination-wrap">
|
|
|
- <el-pagination
|
|
|
- background
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- :total="total"
|
|
|
- :page-size="size"
|
|
|
- :current-page.sync="page"
|
|
|
- @current-change="handleCurrentChange"
|
|
|
- @size-change="handleSizeChange"
|
|
|
- >
|
|
|
- </el-pagination>
|
|
|
+ <div>
|
|
|
+ <!-- 操作按钮 -->
|
|
|
+ <ele-toolbar class="ele-toolbar-actions">
|
|
|
+ <div style="margin: 5px 0">
|
|
|
+ <el-input size="small" suffix-icon="el-icon-search" placeholder="请输入功能名称" v-model="filterText"> </el-input>
|
|
|
+ </div>
|
|
|
+ </ele-toolbar>
|
|
|
+ <div class="ele-border-lighter sys-organization-list">
|
|
|
+ <el-tree
|
|
|
+ ref="tree"
|
|
|
+ :data="data"
|
|
|
+ highlight-current
|
|
|
+ node-key="id"
|
|
|
+ :props="{ label: 'name' }"
|
|
|
+ :expand-on-click-node="false"
|
|
|
+ :default-expand-all="true"
|
|
|
+ @node-click="onNodeClick"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <addDialog ref="addDialog"></addDialog>
|
|
|
+ <template v-slot:content>
|
|
|
+ <code-list
|
|
|
+ v-if="current"
|
|
|
+ :organization-list="data"
|
|
|
+ :organization-id="current.id"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </ele-split-layout>
|
|
|
+ </el-card>
|
|
|
</div>
|
|
|
</template>
|
|
|
+
|
|
|
<script>
|
|
|
-import tree from './components/tree.vue';
|
|
|
-import addDialog from './components/addDialog.vue'
|
|
|
-export default {
|
|
|
- components: {
|
|
|
- tree,
|
|
|
- addDialog
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- treeData: [
|
|
|
- {
|
|
|
- id: 1,
|
|
|
- label: '一级 1',
|
|
|
- children: [
|
|
|
- {
|
|
|
- id: 4,
|
|
|
- label: '二级 1-1',
|
|
|
- children: [
|
|
|
- {
|
|
|
- id: 9,
|
|
|
- label: '三级 1-1-1'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 10,
|
|
|
- label: '三级 1-1-2'
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- id: 2,
|
|
|
- label: '一级 2',
|
|
|
- children: [
|
|
|
- {
|
|
|
- id: 5,
|
|
|
- label: '二级 2-1'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 6,
|
|
|
- label: '二级 2-2'
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- id: 3,
|
|
|
- label: '一级 3',
|
|
|
- children: [
|
|
|
- {
|
|
|
- id: 7,
|
|
|
- label: '二级 3-1'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 8,
|
|
|
- label: '二级 3-2'
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- ],
|
|
|
- tableData: [
|
|
|
- {
|
|
|
- s1: '1'
|
|
|
- }
|
|
|
- ],
|
|
|
- total: 0,
|
|
|
- size: 10,
|
|
|
- page: 1
|
|
|
- };
|
|
|
- },
|
|
|
- methods: {
|
|
|
- treeChange(val) {
|
|
|
- console.log(val);
|
|
|
+ import CodeList from './components/code-list.vue';
|
|
|
+ import {
|
|
|
+ listOrganizations,
|
|
|
+ removeOrganization
|
|
|
+ } from '@/api/system/organization';
|
|
|
+
|
|
|
+ export default {
|
|
|
+ name: 'codeManagement',
|
|
|
+ components: { CodeList },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ // 加载状态
|
|
|
+ loading: true,
|
|
|
+ // 列表数据
|
|
|
+ data: [],
|
|
|
+ // 选中数据
|
|
|
+ current: null,
|
|
|
+ // 是否显示表单弹窗
|
|
|
+ showEdit: false,
|
|
|
+ // 编辑回显数据
|
|
|
+ editData: null,
|
|
|
+ // 上级id
|
|
|
+ parentId: null,
|
|
|
+ filterText:''
|
|
|
+ };
|
|
|
},
|
|
|
- // 编辑
|
|
|
- junmpEdit(row) {
|
|
|
- // this.$router.push({
|
|
|
- // path: '/codeManagement/details'
|
|
|
- // });
|
|
|
- this.$refs.addDialog.open('edit')
|
|
|
+ created() {
|
|
|
+ this.query();
|
|
|
},
|
|
|
- search() {},
|
|
|
- reset() {},
|
|
|
- handleCurrentChange() {},
|
|
|
- handleSizeChange() {},
|
|
|
- add(){
|
|
|
- this.$refs.addDialog.open('add')
|
|
|
+ methods: {
|
|
|
+ /* 查询 */
|
|
|
+ query() {
|
|
|
+ this.loading = true;
|
|
|
+ listOrganizations()
|
|
|
+ .then((list) => {
|
|
|
+ this.loading = false;
|
|
|
+ this.data = this.$util.toTreeData({
|
|
|
+ data: list,
|
|
|
+ idField: 'id',
|
|
|
+ parentIdField: 'parentId'
|
|
|
+ });
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.onNodeClick(this.data[0]);
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ this.loading = false;
|
|
|
+ this.$message.error(e.message);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /* 选择数据 */
|
|
|
+ onNodeClick(row) {
|
|
|
+ if (row) {
|
|
|
+ this.current = row;
|
|
|
+ this.parentId = row.id;
|
|
|
+ this.$refs.tree.setCurrentKey(row.id);
|
|
|
+ } else {
|
|
|
+ this.current = null;
|
|
|
+ this.parentId = null;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /* 显示编辑 */
|
|
|
+ openEdit(item) {
|
|
|
+ this.editData = item;
|
|
|
+ this.showEdit = true;
|
|
|
+ },
|
|
|
+ /* 删除 */
|
|
|
+ remove() {
|
|
|
+ this.$confirm('确定要删除选中的机构吗?', '提示', {
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ const loading = this.$loading({ lock: true });
|
|
|
+ removeOrganization([this.current.id])
|
|
|
+ .then((msg) => {
|
|
|
+ loading.close();
|
|
|
+ this.$message.success(msg);
|
|
|
+ this.query();
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ loading.close();
|
|
|
+ this.$message.error(e.message);
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
-};
|
|
|
+ };
|
|
|
</script>
|
|
|
+
|
|
|
<style lang="scss" scoped>
|
|
|
-.app-container {
|
|
|
- min-height: calc(100vh - 150px);
|
|
|
-}
|
|
|
-.container-main {
|
|
|
- display: flex;
|
|
|
- height: calc(100vh - 230px);
|
|
|
- .tree-wrap {
|
|
|
- width: 220px;
|
|
|
- }
|
|
|
- .main-wrap {
|
|
|
- flex: 1;
|
|
|
- margin-left: 20px;
|
|
|
+ .sys-organization-list {
|
|
|
+ height: calc(100vh - 264px);
|
|
|
+ box-sizing: border-box;
|
|
|
+ border-width: 1px;
|
|
|
+ border-style: solid;
|
|
|
+ overflow: auto;
|
|
|
}
|
|
|
-}
|
|
|
|
|
|
-.btn {
|
|
|
- background: #157a2c;
|
|
|
- color: #ffffff;
|
|
|
-}
|
|
|
-.zw-page-table {
|
|
|
- background: #ffffff;
|
|
|
- padding-top: 20px;
|
|
|
- margin-bottom: 20px;
|
|
|
-}
|
|
|
-.pagination-wrap {
|
|
|
- display: flex;
|
|
|
- justify-content: flex-end;
|
|
|
- padding: 10px 0;
|
|
|
-}
|
|
|
-.tree-wrap {
|
|
|
- background: #ffffff;
|
|
|
-}
|
|
|
-.butn-wrap{
|
|
|
- margin-bottom: 10px;
|
|
|
-}
|
|
|
-</style>
|
|
|
+ .sys-organization-list :deep(.el-tree-node__content) {
|
|
|
+ height: 40px;
|
|
|
+
|
|
|
+ & > .el-tree-node__expand-icon {
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|