|
@@ -1,55 +1,39 @@
|
|
<template>
|
|
<template>
|
|
<div class="app-container">
|
|
<div class="app-container">
|
|
<div class="filter-container">
|
|
<div class="filter-container">
|
|
- <el-input
|
|
|
|
- placeholder="角色组名称|标识"
|
|
|
|
- class="filter-item"
|
|
|
|
- style="width: 300px;"
|
|
|
|
- v-model="listQuery.keywords"
|
|
|
|
- v-has="'sysOrg:list'"
|
|
|
|
- @keyup.enter.native="handleFilter"
|
|
|
|
- />
|
|
|
|
-
|
|
|
|
- <el-select
|
|
|
|
- class="filter-item"
|
|
|
|
- clearable
|
|
|
|
- placeholder="请选择组织类型"
|
|
|
|
- v-model="listQuery.orgGroupCode"
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in options"
|
|
|
|
- :key="item.orgGroupId"
|
|
|
|
- :label="item.orgGroupName"
|
|
|
|
- :value="item.orgGroupCode"
|
|
|
|
|
|
+ <div class="filter-container-lt">
|
|
|
|
+ <el-input
|
|
|
|
+ placeholder="组织名称"
|
|
|
|
+ class="filter-item"
|
|
|
|
+ style="width: 300px;"
|
|
|
|
+ clearable
|
|
|
|
+ v-model="listQuery.searchKey"
|
|
|
|
+ @keyup.enter.native="handleFilter"
|
|
|
|
+ />
|
|
|
|
+ <el-button
|
|
|
|
+ v-waves
|
|
|
|
+ type="primary"
|
|
|
|
+ class="filter-item"
|
|
|
|
+ icon="el-icon-search"
|
|
|
|
+ @click="handleFilter"
|
|
|
|
+ >搜索</el-button
|
|
>
|
|
>
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
-
|
|
|
|
- <el-button
|
|
|
|
- v-waves
|
|
|
|
- type="primary"
|
|
|
|
- class="filter-item"
|
|
|
|
- icon="el-icon-search"
|
|
|
|
- v-has="'sysOrg:list'"
|
|
|
|
- @click="handleFilter"
|
|
|
|
- >搜索</el-button
|
|
|
|
- >
|
|
|
|
-
|
|
|
|
- <el-button
|
|
|
|
- v-waves
|
|
|
|
- type="primary"
|
|
|
|
- class="filter-item"
|
|
|
|
- icon="el-icon-circle-plus-outline"
|
|
|
|
- style="margin-left: 10px;"
|
|
|
|
- v-has="'sysOrg:save'"
|
|
|
|
- @click="handleCreate"
|
|
|
|
- >新建</el-button
|
|
|
|
- >
|
|
|
|
|
|
+ </div>
|
|
|
|
+ <div class="filter-container-rt">
|
|
|
|
+ <el-button
|
|
|
|
+ v-waves
|
|
|
|
+ type="primary"
|
|
|
|
+ class="filter-item"
|
|
|
|
+ icon="el-icon-circle-plus-outline"
|
|
|
|
+ style="margin-left: 10px;"
|
|
|
|
+ @click="handleCreate"
|
|
|
|
+ >新建</el-button
|
|
|
|
+ >
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<el-table
|
|
<el-table
|
|
v-loading="listLoading"
|
|
v-loading="listLoading"
|
|
- :key="tableKey"
|
|
|
|
:data="list"
|
|
:data="list"
|
|
stripe
|
|
stripe
|
|
border
|
|
border
|
|
@@ -57,73 +41,64 @@
|
|
highlight-current-row
|
|
highlight-current-row
|
|
style="width: 100%;"
|
|
style="width: 100%;"
|
|
>
|
|
>
|
|
- <el-table-column label="id" align="center" width="65" prop="orgId">
|
|
|
|
- </el-table-column>
|
|
|
|
|
|
+ <el-table-column type="index" label="序号" align="center" width="120" />
|
|
|
|
+ <el-table-column label="id" align="center" width="200" prop="id" />
|
|
|
|
|
|
<el-table-column
|
|
<el-table-column
|
|
- label="名称"
|
|
|
|
- min-width="100px"
|
|
|
|
|
|
+ label="组织名称"
|
|
|
|
+ min-width="100"
|
|
align="center"
|
|
align="center"
|
|
prop="name"
|
|
prop="name"
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
-
|
|
|
|
- <el-table-column label="标识" prop="identify"> </el-table-column>
|
|
|
|
-
|
|
|
|
- <el-table-column label="级别" align="center" width="60" prop="typesStr">
|
|
|
|
- </el-table-column>
|
|
|
|
-
|
|
|
|
- <el-table-column label="类型" width="120" prop="orgGroupName">
|
|
|
|
- </el-table-column>
|
|
|
|
-
|
|
|
|
- <el-table-column label="创建时间">
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
- <span>{{
|
|
|
|
- scope.row.createTime | parseTime("{y}-{m}-{d} {h}:{i}")
|
|
|
|
- }}</span>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
|
|
+ />
|
|
|
|
|
|
- <el-table-column label="更新时间">
|
|
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="组织分类"
|
|
|
|
+ align="center"
|
|
|
|
+ width="180"
|
|
|
|
+ prop="category"
|
|
|
|
+ >
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <span>{{
|
|
|
|
- scope.row.lastUpdate | parseTime("{y}-{m}-{d} {h}:{i}")
|
|
|
|
- }}</span>
|
|
|
|
|
|
+ {{ getValueByKey(scope.row.category, orgCategory) }}
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="排序"
|
|
|
|
+ align="center"
|
|
|
|
+ width="150"
|
|
|
|
+ prop="sortCode"
|
|
|
|
+ />
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="创建时间"
|
|
|
|
+ align="center"
|
|
|
|
+ width="150"
|
|
|
|
+ prop="createTime"
|
|
|
|
+ />
|
|
|
|
+ <el-table-column
|
|
|
|
+ label="更新时间"
|
|
|
|
+ align="center"
|
|
|
|
+ width="150"
|
|
|
|
+ prop="updateTime"
|
|
|
|
+ />
|
|
|
|
|
|
- <el-table-column label="操作" align="center" width="200">
|
|
|
|
|
|
+ <el-table-column fixed="right" label="操作" align="center" width="200">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
<el-button
|
|
type="primary"
|
|
type="primary"
|
|
size="mini"
|
|
size="mini"
|
|
icon="el-icon-edit"
|
|
icon="el-icon-edit"
|
|
- v-has="'sysOrg:update'"
|
|
|
|
circle
|
|
circle
|
|
title="编辑"
|
|
title="编辑"
|
|
@click="handleUpdate(scope.row)"
|
|
@click="handleUpdate(scope.row)"
|
|
/>
|
|
/>
|
|
|
|
|
|
<el-button
|
|
<el-button
|
|
- v-if="scope.row.orgId !== -1000"
|
|
|
|
size="mini"
|
|
size="mini"
|
|
type="danger"
|
|
type="danger"
|
|
- icon="el-icon-switch-button"
|
|
|
|
- v-has="'sysOrg:delete'"
|
|
|
|
|
|
+ icon="el-icon-delete"
|
|
circle
|
|
circle
|
|
- title="关闭"
|
|
|
|
|
|
+ title="删除"
|
|
@click="handleDelete(scope.row)"
|
|
@click="handleDelete(scope.row)"
|
|
/>
|
|
/>
|
|
-
|
|
|
|
- <el-button
|
|
|
|
- type="primary"
|
|
|
|
- size="mini"
|
|
|
|
- circle
|
|
|
|
- title="查看资源"
|
|
|
|
- icon="el-icon-s-data"
|
|
|
|
- @click="handleOrgRes(scope.row)"
|
|
|
|
- >
|
|
|
|
- </el-button>
|
|
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
@@ -143,120 +118,70 @@
|
|
:addOrEditData="addOrEditData"
|
|
:addOrEditData="addOrEditData"
|
|
@refreshTable="refreshData"
|
|
@refreshTable="refreshData"
|
|
/>
|
|
/>
|
|
-
|
|
|
|
- <!-- 组织配置信息-->
|
|
|
|
- <authOrgDialog
|
|
|
|
- v-if="authData.visible"
|
|
|
|
- :authData="authData"
|
|
|
|
- @refreshTable="refreshData"
|
|
|
|
- />
|
|
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import waves from "@/directive/waves"; // 水波纹指令
|
|
import waves from "@/directive/waves"; // 水波纹指令
|
|
import addOrEditOrgDialog from "./components/org/addOrEditOrgDialog";
|
|
import addOrEditOrgDialog from "./components/org/addOrEditOrgDialog";
|
|
-import authOrgDialog from "./components/org/authOrgDialog";
|
|
|
|
|
|
+// import authOrgDialog from "./components/org/authOrgDialog";
|
|
import swPage from "@/views/common/swPage";
|
|
import swPage from "@/views/common/swPage";
|
|
|
|
+import { orgCategory } from "@/constants/index";
|
|
|
|
+import { getValueByKey } from "@/utils/index";
|
|
|
|
|
|
-import { fetchList, getParentTree, deleteOrg } from "@/api/auth/org";
|
|
|
|
-import { queryOrgGroupALL } from "@/api/auth/orgGroup";
|
|
|
|
-import { parseTime, randomString } from "@/utils";
|
|
|
|
-
|
|
|
|
-const typesOptions = [
|
|
|
|
- { key: -1, display_name: "平台" },
|
|
|
|
- { key: 0, display_name: "客户" }
|
|
|
|
-];
|
|
|
|
-
|
|
|
|
-const typesKeyValue = typesOptions.reduce((acc, cur) => {
|
|
|
|
- acc[cur.key] = cur.display_name;
|
|
|
|
- return acc;
|
|
|
|
-}, {});
|
|
|
|
|
|
+import { fetchList, deleteOrg } from "@/api/auth/org";
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: "orgIndex",
|
|
name: "orgIndex",
|
|
components: {
|
|
components: {
|
|
addOrEditOrgDialog,
|
|
addOrEditOrgDialog,
|
|
- authOrgDialog,
|
|
|
|
swPage
|
|
swPage
|
|
},
|
|
},
|
|
directives: {
|
|
directives: {
|
|
waves
|
|
waves
|
|
},
|
|
},
|
|
- filters: {
|
|
|
|
- typeFilter(key) {
|
|
|
|
- return typesKeyValue[key];
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- computed: {
|
|
|
|
- hasOrgCombobox: function() {
|
|
|
|
- return sessionStorage.getItem("userBtns").includes("sysOrg:combobox");
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
- options: [], //组织组类型查询
|
|
|
|
- tableKey: 0,
|
|
|
|
|
|
+ orgCategory,
|
|
list: null,
|
|
list: null,
|
|
- buttonSelectedList: "",
|
|
|
|
total: null,
|
|
total: null,
|
|
listLoading: true,
|
|
listLoading: true,
|
|
listQuery: {
|
|
listQuery: {
|
|
- orgGroupCode: null,
|
|
|
|
page: 1,
|
|
page: 1,
|
|
limit: 20,
|
|
limit: 20,
|
|
- keywords: null
|
|
|
|
|
|
+ searchKey: null
|
|
},
|
|
},
|
|
- typesOptions,
|
|
|
|
|
|
|
|
addOrEditData: {
|
|
addOrEditData: {
|
|
//添加 或者 编辑 dialog 数据
|
|
//添加 或者 编辑 dialog 数据
|
|
status: "create", //[create ,update]
|
|
status: "create", //[create ,update]
|
|
visible: false,
|
|
visible: false,
|
|
- orgId: null //选中的组织
|
|
|
|
- },
|
|
|
|
- authData: {
|
|
|
|
- //授权弹框数据
|
|
|
|
- orgId: null, //授权 组织
|
|
|
|
- orgName: null, //组织名称
|
|
|
|
- visible: false //弹框 显示标识
|
|
|
|
- },
|
|
|
|
- downloadLoading: false,
|
|
|
|
-
|
|
|
|
- resLabelTree: null, //资源tree
|
|
|
|
- topCategoryList: [], //顶级目录
|
|
|
|
- topCategoryIdsList: [], //顶级目录
|
|
|
|
- checkedCategorys: [], //选中的目录
|
|
|
|
- categoryCheckAll: false, //是否全选
|
|
|
|
- isCategoryAll: false // ture 上面的是false 半选 ,两个都是false 不选, 上面是true,这边是false 全选
|
|
|
|
|
|
+ orgData: null //选中的组织
|
|
|
|
+ }
|
|
};
|
|
};
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
this.getList();
|
|
this.getList();
|
|
- this.getOrgGroupList();
|
|
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
- getOrgGroupList() {
|
|
|
|
- queryOrgGroupALL().then(response => {
|
|
|
|
- this.options = response.data;
|
|
|
|
- });
|
|
|
|
- },
|
|
|
|
|
|
+ getValueByKey,
|
|
refreshData() {
|
|
refreshData() {
|
|
this.addOrEditData.status = "create";
|
|
this.addOrEditData.status = "create";
|
|
this.addOrEditData.visible = false;
|
|
this.addOrEditData.visible = false;
|
|
- this.addOrEditData.orgId = null; //选中的组织
|
|
|
|
|
|
+ this.addOrEditData.orgData = null; //选中的组织
|
|
this.handleFilter();
|
|
this.handleFilter();
|
|
},
|
|
},
|
|
getList() {
|
|
getList() {
|
|
//查询
|
|
//查询
|
|
this.listLoading = true;
|
|
this.listLoading = true;
|
|
- fetchList(this.listQuery).then(response => {
|
|
|
|
- this.list = response.data.list;
|
|
|
|
- this.total = response.data.total;
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
|
+ fetchList(this.listQuery)
|
|
|
|
+ .then(response => {
|
|
|
|
+ this.list = response.data.rows;
|
|
|
|
+ this.total = response.data.total;
|
|
|
|
+ })
|
|
|
|
+ .finally(() => {
|
|
this.listLoading = false;
|
|
this.listLoading = false;
|
|
- }, 0.5 * 1000);
|
|
|
|
- });
|
|
|
|
|
|
+ });
|
|
},
|
|
},
|
|
retPage() {
|
|
retPage() {
|
|
//分页
|
|
//分页
|
|
@@ -272,23 +197,23 @@ export default {
|
|
//查询组织 - 角色
|
|
//查询组织 - 角色
|
|
this.addOrEditData.status = "create";
|
|
this.addOrEditData.status = "create";
|
|
this.addOrEditData.visible = true;
|
|
this.addOrEditData.visible = true;
|
|
- this.addOrEditData.orgId = null;
|
|
|
|
|
|
+ this.addOrEditData.orgData = null;
|
|
},
|
|
},
|
|
handleUpdate(row) {
|
|
handleUpdate(row) {
|
|
//触发更新Dialog和创建的dialog共用一个dialog
|
|
//触发更新Dialog和创建的dialog共用一个dialog
|
|
this.addOrEditData.status = "update";
|
|
this.addOrEditData.status = "update";
|
|
this.addOrEditData.visible = true;
|
|
this.addOrEditData.visible = true;
|
|
- this.addOrEditData.orgId = row.orgId;
|
|
|
|
|
|
+ this.addOrEditData.orgData = row;
|
|
},
|
|
},
|
|
|
|
|
|
handleDelete(row) {
|
|
handleDelete(row) {
|
|
//删除
|
|
//删除
|
|
- this.$confirm("是否删除该记录?", "提示", {
|
|
|
|
|
|
+ this.$confirm("删除此组织与下级组织吗??", "提示", {
|
|
confirmButtonText: "确定",
|
|
confirmButtonText: "确定",
|
|
cancelButtonText: "取消",
|
|
cancelButtonText: "取消",
|
|
type: "warning"
|
|
type: "warning"
|
|
}).then(() => {
|
|
}).then(() => {
|
|
- deleteOrg(row.orgId).then(() => {
|
|
|
|
|
|
+ deleteOrg([{ id: row.id }]).then(() => {
|
|
this.$notify({
|
|
this.$notify({
|
|
title: "成功",
|
|
title: "成功",
|
|
message: "删除成功",
|
|
message: "删除成功",
|
|
@@ -299,16 +224,11 @@ export default {
|
|
this.list.splice(index, 1); //数值删除
|
|
this.list.splice(index, 1); //数值删除
|
|
});
|
|
});
|
|
});
|
|
});
|
|
- },
|
|
|
|
-
|
|
|
|
- handleOrgRes(row) {
|
|
|
|
- //触发授权dialog
|
|
|
|
- this.authData.orgId = row.orgId;
|
|
|
|
- this.authData.orgName = row.name;
|
|
|
|
- this.authData.visible = true;
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
|
|
|
|
-<style scoped></style>
|
|
|
|
|
|
+<style rel="stylesheet/scss" lang="scss" scoped>
|
|
|
|
+@import "@/styles/layout.scss";
|
|
|
|
+</style>
|