|
@@ -10,7 +10,7 @@
|
|
|
<span>角色名称 </span>
|
|
<span>角色名称 </span>
|
|
|
<el-input
|
|
<el-input
|
|
|
clearable
|
|
clearable
|
|
|
- v-model="searchInput.name"
|
|
|
|
|
|
|
+ v-model="searchInput.pname"
|
|
|
@clear="searchBtn"
|
|
@clear="searchBtn"
|
|
|
class="w-50 m-2"
|
|
class="w-50 m-2"
|
|
|
placeholder="请输入角色名称"
|
|
placeholder="请输入角色名称"
|
|
@@ -75,10 +75,15 @@
|
|
|
}"
|
|
}"
|
|
|
>
|
|
>
|
|
|
<!-- <el-table-column type="selection" width="55" /> -->
|
|
<!-- <el-table-column type="selection" width="55" /> -->
|
|
|
- <el-table-column align="center" prop="createTime" label="序号" />
|
|
|
|
|
- <el-table-column align="center" prop="createTime" label="角色级别" />
|
|
|
|
|
- <el-table-column align="center" prop="createUser" label="父级角色" />
|
|
|
|
|
- <el-table-column align="center" prop="createUser" label="角色名称" />
|
|
|
|
|
|
|
+ <el-table-column
|
|
|
|
|
+ align="center"
|
|
|
|
|
+ type="index"
|
|
|
|
|
+ label="序号"
|
|
|
|
|
+ width="80"
|
|
|
|
|
+ />
|
|
|
|
|
+ <el-table-column align="center" prop="roleLevel" label="角色级别" />
|
|
|
|
|
+ <el-table-column align="center" prop="pname" label="父级角色" />
|
|
|
|
|
+ <el-table-column align="center" prop="roleName" label="角色名称" />
|
|
|
<el-table-column align="center" prop="createTime" label="创建时间" />
|
|
<el-table-column align="center" prop="createTime" label="创建时间" />
|
|
|
<el-table-column align="center" label="操作" width="220">
|
|
<el-table-column align="center" label="操作" width="220">
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
@@ -103,70 +108,94 @@
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
|
|
|
+ </div>
|
|
|
|
|
|
|
|
- <!-- 添加角色 -->
|
|
|
|
|
- <el-dialog
|
|
|
|
|
- class="addRoles"
|
|
|
|
|
- v-model="addRolesVisible"
|
|
|
|
|
- :close-on-click-modal="false"
|
|
|
|
|
- :close-on-press-escape="false"
|
|
|
|
|
- :title="addRolesTitle"
|
|
|
|
|
- align-center
|
|
|
|
|
- width="900"
|
|
|
|
|
- :before-close="cancelAddRoles"
|
|
|
|
|
- >
|
|
|
|
|
- <div class="rolesNames">
|
|
|
|
|
- <span>角色名称: </span>
|
|
|
|
|
- <el-input
|
|
|
|
|
- :clearable="true"
|
|
|
|
|
- v-model.trim="addRoleName"
|
|
|
|
|
- class="w-50 m-2"
|
|
|
|
|
- style="width: 450px"
|
|
|
|
|
- placeholder="请输入角色名称"
|
|
|
|
|
- />
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="rolesName">
|
|
|
|
|
- <div class="rolePermission">角色权限: </div>
|
|
|
|
|
- <div>
|
|
|
|
|
- <!-- <el-table
|
|
|
|
|
- :row-class-name="tableRowClassName"
|
|
|
|
|
- :data="addRolesData.list"
|
|
|
|
|
- style="width: 100%"
|
|
|
|
|
- :span-method="arraySpanMethod"
|
|
|
|
|
- :header-cell-style="{
|
|
|
|
|
- background: 'rgba(240, 243, 247, 1)',
|
|
|
|
|
- height: '50px',
|
|
|
|
|
- }"
|
|
|
|
|
- >
|
|
|
|
|
- <el-table-column align="center" prop="one" label="一级" />
|
|
|
|
|
- <el-table-column align="center" prop="two" label="二级" />
|
|
|
|
|
- <el-table-column width="600" label="功能">
|
|
|
|
|
- <template #default="{ row }">
|
|
|
|
|
- <div class="checkBoxSel">
|
|
|
|
|
- <el-tree
|
|
|
|
|
- :ref="`addRolesData${row.four}`"
|
|
|
|
|
- style="max-width: 600px"
|
|
|
|
|
- :data="row.three"
|
|
|
|
|
- show-checkbox
|
|
|
|
|
- node-key="id"
|
|
|
|
|
- :props="defaultProps"
|
|
|
|
|
- default-expand-all
|
|
|
|
|
- @check="
|
|
|
|
|
- (data, nodes) => editMemberCheckChange(data, nodes, row)
|
|
|
|
|
- "
|
|
|
|
|
- />
|
|
|
|
|
- </div>
|
|
|
|
|
- </template></el-table-column
|
|
|
|
|
- >
|
|
|
|
|
- </el-table> -->
|
|
|
|
|
-
|
|
|
|
|
- <table cellspacing="0" border-collapse="collapse">
|
|
|
|
|
|
|
+ <!-- 分页组件 -->
|
|
|
|
|
+ <el-pagination
|
|
|
|
|
+ background
|
|
|
|
|
+ v-model:current-page="currentPage"
|
|
|
|
|
+ v-model:page-size="pageSize"
|
|
|
|
|
+ :page-sizes="[10, 20, 30, 40]"
|
|
|
|
|
+ layout="total,sizes, prev, pager, next, jumper, slot"
|
|
|
|
|
+ :total="total"
|
|
|
|
|
+ @size-change="handleSizeChange"
|
|
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <!-- 添加角色 -->
|
|
|
|
|
+ <el-dialog
|
|
|
|
|
+ class="addRoles"
|
|
|
|
|
+ v-model="addRolesVisible"
|
|
|
|
|
+ :close-on-click-modal="false"
|
|
|
|
|
+ :close-on-press-escape="false"
|
|
|
|
|
+ :title="addRolesTitle"
|
|
|
|
|
+ align-center
|
|
|
|
|
+ width="900"
|
|
|
|
|
+ :before-close="cancelAddRoles"
|
|
|
|
|
+ >
|
|
|
|
|
+ <div class="rolesNames">
|
|
|
|
|
+ <span>角色名称: </span>
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ :clearable="true"
|
|
|
|
|
+ v-model.trim="addRoleName"
|
|
|
|
|
+ class="w-50 m-2"
|
|
|
|
|
+ style="width: 450px"
|
|
|
|
|
+ placeholder="请输入角色名称"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="rolesName">
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <el-tree
|
|
|
|
|
+ ref="treeRef"
|
|
|
|
|
+ style="max-width: 600px"
|
|
|
|
|
+ :data="addtableData.list"
|
|
|
|
|
+ show-checkbox
|
|
|
|
|
+ default-expand-all
|
|
|
|
|
+ node-key="id"
|
|
|
|
|
+ highlight-current
|
|
|
|
|
+ :props="defaultProps"
|
|
|
|
|
+ />
|
|
|
|
|
+ <!-- <el-table
|
|
|
|
|
+ :data="addtableData.list"
|
|
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
|
|
+ :header-cell-style="{
|
|
|
|
|
+ background: 'rgba(240, 243, 247, 1)',
|
|
|
|
|
+ height: '45px',
|
|
|
|
|
+ border: 0,
|
|
|
|
|
+ }"
|
|
|
|
|
+ row-key="id"
|
|
|
|
|
+ :tree-props="{ children: 'menuLists', hasChildren: 'hasChildren' }"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-table-column prop="menuName" label="名称" />
|
|
|
|
|
+ <el-table-column prop="sort" label="排序号" />
|
|
|
|
|
+ <el-table-column label="权限">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <el-switch
|
|
|
|
|
+ v-model="scope.row.isRead"
|
|
|
|
|
+ active-text="可读"
|
|
|
|
|
+ inactive-text="不可读"
|
|
|
|
|
+ active-value="1"
|
|
|
|
|
+ inactive-value="0"
|
|
|
|
|
+ />
|
|
|
|
|
+ <br />
|
|
|
|
|
+ <el-switch
|
|
|
|
|
+ v-model="scope.row.isWrite"
|
|
|
|
|
+ active-text="可写"
|
|
|
|
|
+ inactive-text="不可写"
|
|
|
|
|
+ active-value="1"
|
|
|
|
|
+ inactive-value="0"
|
|
|
|
|
+ />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column prop="url" label="菜单URL" />
|
|
|
|
|
+ </el-table> -->
|
|
|
|
|
+
|
|
|
|
|
+ <!-- <table cellspacing="0" border-collapse="collapse">
|
|
|
<tr align="center">
|
|
<tr align="center">
|
|
|
<td>一级</td>
|
|
<td>一级</td>
|
|
|
<td>二级</td>
|
|
<td>二级</td>
|
|
|
<td>功能</td>
|
|
<td>功能</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
- <!-- 房态管理 1 -->
|
|
|
|
|
<tr align="center">
|
|
<tr align="center">
|
|
|
<td>房态管理</td>
|
|
<td>房态管理</td>
|
|
|
<td>/</td>
|
|
<td>/</td>
|
|
@@ -186,7 +215,6 @@
|
|
|
/>
|
|
/>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
- <!-- 楼栋单元管理 2 -->
|
|
|
|
|
<tr align="center">
|
|
<tr align="center">
|
|
|
<td :rowspan="4">房间管理</td>
|
|
<td :rowspan="4">房间管理</td>
|
|
|
<td>楼栋单元管理</td>
|
|
<td>楼栋单元管理</td>
|
|
@@ -206,85 +234,71 @@
|
|
|
/>
|
|
/>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
- </table>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="options">
|
|
|
|
|
- <div class="btn">
|
|
|
|
|
- <el-button
|
|
|
|
|
- color="rgba(41, 109, 227, 1)"
|
|
|
|
|
- class="queding"
|
|
|
|
|
- type="primary"
|
|
|
|
|
- @click="confirmEdit"
|
|
|
|
|
- >
|
|
|
|
|
- 确定
|
|
|
|
|
- </el-button>
|
|
|
|
|
- <el-button @click="cancelAddRoles">取消</el-button>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </el-dialog>
|
|
|
|
|
-
|
|
|
|
|
- <!-- 项目导入 -->
|
|
|
|
|
- <el-dialog
|
|
|
|
|
- class="projectImport"
|
|
|
|
|
- v-model="projectImportVisible"
|
|
|
|
|
- :close-on-click-modal="false"
|
|
|
|
|
- :close-on-press-escape="false"
|
|
|
|
|
- title="项目导入"
|
|
|
|
|
- align-center
|
|
|
|
|
- width="600"
|
|
|
|
|
- :before-close="cancelProjectImport"
|
|
|
|
|
- >
|
|
|
|
|
- <p class="title">当前只支持项目类型为“非装配式建筑项目”的项目导入</p>
|
|
|
|
|
- <p class="down">
|
|
|
|
|
- <span>非装配式建筑项目导入模板</span
|
|
|
|
|
- ><span @click="templateDown">模板下载</span>
|
|
|
|
|
- </p>
|
|
|
|
|
- <el-upload
|
|
|
|
|
- class="avatar-uploader"
|
|
|
|
|
- action="#"
|
|
|
|
|
- :auto-upload="false"
|
|
|
|
|
- :on-remove="projectImportRemove"
|
|
|
|
|
- :on-change="projectImportChange"
|
|
|
|
|
- :before-upload="beforeAvatarProImport"
|
|
|
|
|
- ref="projectRef"
|
|
|
|
|
- :limit="1"
|
|
|
|
|
- :on-exceed="projectImportExceed"
|
|
|
|
|
|
|
+ </table> -->
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="options">
|
|
|
|
|
+ <div class="btn">
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ color="rgba(41, 109, 227, 1)"
|
|
|
|
|
+ class="queding"
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ @click="confirmEdit"
|
|
|
>
|
|
>
|
|
|
- <template #trigger>
|
|
|
|
|
- <el-button class="queding" type="primary">
|
|
|
|
|
- 导入项目
|
|
|
|
|
- </el-button>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-upload>
|
|
|
|
|
- <div class="options">
|
|
|
|
|
- <el-button
|
|
|
|
|
- color="rgba(9, 101, 98, 1)"
|
|
|
|
|
- class="queding"
|
|
|
|
|
- type="primary"
|
|
|
|
|
- @click="projectImportConfirm(projectRef)"
|
|
|
|
|
- >
|
|
|
|
|
- 确认导入
|
|
|
|
|
- </el-button>
|
|
|
|
|
- <el-button @click="cancelProjectImport"
|
|
|
|
|
- > 取消导入 </el-button
|
|
|
|
|
- >
|
|
|
|
|
- </div>
|
|
|
|
|
- </el-dialog>
|
|
|
|
|
|
|
+ 确定
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ <el-button @click="cancelAddRoles">取消</el-button>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
-
|
|
|
|
|
- <!-- 分页组件 -->
|
|
|
|
|
- <el-pagination
|
|
|
|
|
- background
|
|
|
|
|
- v-model:current-page="currentPage"
|
|
|
|
|
- v-model:page-size="pageSize"
|
|
|
|
|
- :page-sizes="[10, 20, 30, 40]"
|
|
|
|
|
- layout="total,sizes, prev, pager, next, jumper, slot"
|
|
|
|
|
- :total="total"
|
|
|
|
|
- @size-change="handleSizeChange"
|
|
|
|
|
- @current-change="handleCurrentChange"
|
|
|
|
|
- />
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ </el-dialog>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 项目导入 -->
|
|
|
|
|
+ <el-dialog
|
|
|
|
|
+ class="projectImport"
|
|
|
|
|
+ v-model="projectImportVisible"
|
|
|
|
|
+ :close-on-click-modal="false"
|
|
|
|
|
+ :close-on-press-escape="false"
|
|
|
|
|
+ title="项目导入"
|
|
|
|
|
+ align-center
|
|
|
|
|
+ width="600"
|
|
|
|
|
+ :before-close="cancelProjectImport"
|
|
|
|
|
+ >
|
|
|
|
|
+ <p class="title">当前只支持项目类型为“非装配式建筑项目”的项目导入</p>
|
|
|
|
|
+ <p class="down">
|
|
|
|
|
+ <span>非装配式建筑项目导入模板</span
|
|
|
|
|
+ ><span @click="templateDown">模板下载</span>
|
|
|
|
|
+ </p>
|
|
|
|
|
+ <el-upload
|
|
|
|
|
+ class="avatar-uploader"
|
|
|
|
|
+ action="#"
|
|
|
|
|
+ :auto-upload="false"
|
|
|
|
|
+ :on-remove="projectImportRemove"
|
|
|
|
|
+ :on-change="projectImportChange"
|
|
|
|
|
+ :before-upload="beforeAvatarProImport"
|
|
|
|
|
+ ref="projectRef"
|
|
|
|
|
+ :limit="1"
|
|
|
|
|
+ :on-exceed="projectImportExceed"
|
|
|
|
|
+ >
|
|
|
|
|
+ <template #trigger>
|
|
|
|
|
+ <el-button class="queding" type="primary">
|
|
|
|
|
+ 导入项目
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-upload>
|
|
|
|
|
+ <div class="options">
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ color="rgba(9, 101, 98, 1)"
|
|
|
|
|
+ class="queding"
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ @click="projectImportConfirm(projectRef)"
|
|
|
|
|
+ >
|
|
|
|
|
+ 确认导入
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ <el-button @click="cancelProjectImport"
|
|
|
|
|
+ > 取消导入 </el-button
|
|
|
|
|
+ >
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -310,12 +324,13 @@ import { useStore } from "vuex";
|
|
|
const store = useStore();
|
|
const store = useStore();
|
|
|
const router = useRouter();
|
|
const router = useRouter();
|
|
|
|
|
|
|
|
|
|
+const loading = ref();
|
|
|
const tableData = reactive({
|
|
const tableData = reactive({
|
|
|
list: [{}],
|
|
list: [{}],
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
const searchInput = reactive({
|
|
const searchInput = reactive({
|
|
|
- name: "", // 项目名称
|
|
|
|
|
|
|
+ pname: "", // 项目名称
|
|
|
createTime: "", // 创建时间
|
|
createTime: "", // 创建时间
|
|
|
}); // 搜索按钮数据
|
|
}); // 搜索按钮数据
|
|
|
|
|
|
|
@@ -327,71 +342,17 @@ const selectData = reactive({
|
|
|
}); // 多选框选择的数据
|
|
}); // 多选框选择的数据
|
|
|
const api = ref("");
|
|
const api = ref("");
|
|
|
|
|
|
|
|
-// 新增账号 (--------------------------------------------------------)
|
|
|
|
|
|
|
+// 新增角色 (--------------------------------------------------------)
|
|
|
const addRolesVisible = ref(false);
|
|
const addRolesVisible = ref(false);
|
|
|
const addRolesTitle = ref();
|
|
const addRolesTitle = ref();
|
|
|
-const addRolesData = ref();
|
|
|
|
|
-const defaultProps = ref({
|
|
|
|
|
- children: "children",
|
|
|
|
|
- label: "name",
|
|
|
|
|
-});
|
|
|
|
|
-
|
|
|
|
|
-const addRoleName=ref()
|
|
|
|
|
-const addRolesData1 = ref(); // 房态管理
|
|
|
|
|
-const addRolesList1 = reactive({
|
|
|
|
|
- one: "房态管理",
|
|
|
|
|
- two: "/",
|
|
|
|
|
- three: [
|
|
|
|
|
- {
|
|
|
|
|
- name: "全部",
|
|
|
|
|
- id: 0,
|
|
|
|
|
- children: [
|
|
|
|
|
- { name: "预定", id: 1 },
|
|
|
|
|
- { name: "退房", id: 2 },
|
|
|
|
|
- { name: "维修", id: 3 },
|
|
|
|
|
- { name: "关房", id: 4 },
|
|
|
|
|
- { name: "置脏", id: 5 },
|
|
|
|
|
- { name: "置净", id: 6 },
|
|
|
|
|
- { name: "退款", id: 7 },
|
|
|
|
|
- { name: "入住", id: 8 },
|
|
|
|
|
- { name: "锁房", id: 9 },
|
|
|
|
|
- // { name: "日志", id: 10 },
|
|
|
|
|
- { name: "换房", id: 11 },
|
|
|
|
|
- { name: "开房", id: 12 },
|
|
|
|
|
- // { name: "门锁管理", id: 13 },
|
|
|
|
|
- { name: "查看界面", id: 14 },
|
|
|
|
|
- { name: "开电", id: 15 },
|
|
|
|
|
- { name: "关电", id: 16 },
|
|
|
|
|
- { name: "取消预定", id: 17 },
|
|
|
|
|
- { name: "取消维修", id: 18 },
|
|
|
|
|
- { name: "查看密码", id: 19 },
|
|
|
|
|
- { name: "退款", id: 20 },
|
|
|
|
|
- ],
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- four: "1",
|
|
|
|
|
- checkedSel: [],
|
|
|
|
|
-});
|
|
|
|
|
-
|
|
|
|
|
-const addRolesData2 = ref(); // 楼栋单元管理
|
|
|
|
|
-const addRolesList2 = reactive({
|
|
|
|
|
- one: "房间管理",
|
|
|
|
|
- two: "楼栋单元管理",
|
|
|
|
|
- three: [
|
|
|
|
|
- {
|
|
|
|
|
- name: "全部",
|
|
|
|
|
- id: 0,
|
|
|
|
|
- children: [
|
|
|
|
|
- { name: "添加", id: 1 },
|
|
|
|
|
- { name: "编辑", id: 2 },
|
|
|
|
|
- { name: "删除", id: 3 },
|
|
|
|
|
- { name: "查看界面", id: 4 },
|
|
|
|
|
- ],
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
- four: "2",
|
|
|
|
|
- checkedSel: [],
|
|
|
|
|
|
|
+const addRoleName = ref();
|
|
|
|
|
+const addtableData = reactive({
|
|
|
|
|
+ list: [],
|
|
|
});
|
|
});
|
|
|
|
|
+const defaultProps = {
|
|
|
|
|
+ children: "menuLists",
|
|
|
|
|
+ label: "menuName",
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
// 项目导入
|
|
// 项目导入
|
|
|
const projectImportVisible = ref(false);
|
|
const projectImportVisible = ref(false);
|
|
@@ -402,34 +363,29 @@ const projectFile = ref();
|
|
|
const getList = async () => {
|
|
const getList = async () => {
|
|
|
loading.value = true;
|
|
loading.value = true;
|
|
|
let data = {
|
|
let data = {
|
|
|
- currentPage: currentPage.value, // 当前页
|
|
|
|
|
- pageCount: pageSize.value, // 一页数据条数
|
|
|
|
|
- projectName: searchInput.name,
|
|
|
|
|
- pageType: 1,
|
|
|
|
|
- permitNum: searchInput.LicenseCode, // 施工许可证编码
|
|
|
|
|
- projectUnit: searchInput.unit, // 建设单位
|
|
|
|
|
- projectPurpose: searchInput.purpose, // 项目用途
|
|
|
|
|
- structureType: searchInput.structureType, // 结构类型
|
|
|
|
|
- projectType: searchInput.projectType, // 项目类型
|
|
|
|
|
|
|
+ page: currentPage.value, // 当前页
|
|
|
|
|
+ rows: pageSize.value, // 一页数据条数
|
|
|
};
|
|
};
|
|
|
-
|
|
|
|
|
- if (searchInput.createTime) {
|
|
|
|
|
- data.startDate = searchInput.createTime[0];
|
|
|
|
|
- data.endDate = searchInput.createTime[1];
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // if (searchInput.createTime) {
|
|
|
|
|
+ // data.startDate = searchInput.createTime[0];
|
|
|
|
|
+ // data.endDate = searchInput.createTime[1];
|
|
|
|
|
+ // }
|
|
|
let res = await axios({
|
|
let res = await axios({
|
|
|
- method: "get",
|
|
|
|
|
- url: api.value + "/jgcloudProject/queryPageJgcloudProject",
|
|
|
|
|
|
|
+ method: "post",
|
|
|
|
|
+ url: api.value + "/api/sysRole/queryPageSysRole",
|
|
|
headers: {
|
|
headers: {
|
|
|
- token: sessionStorage.getItem("token"),
|
|
|
|
|
|
|
+ tokenP: sessionStorage.getItem("tokenP"),
|
|
|
user_head: sessionStorage.getItem("userhead"),
|
|
user_head: sessionStorage.getItem("userhead"),
|
|
|
},
|
|
},
|
|
|
params: data,
|
|
params: data,
|
|
|
|
|
+ data: {
|
|
|
|
|
+ pname: searchInput.pname,
|
|
|
|
|
+ },
|
|
|
});
|
|
});
|
|
|
- console.log(res, "项目分页数据");
|
|
|
|
|
|
|
+ console.log(res, "查询角色分页数据");
|
|
|
if (res.data.code == 200) {
|
|
if (res.data.code == 200) {
|
|
|
- tableData.list = res.data.data.list;
|
|
|
|
|
- total.value = res.data.data.totalCount;
|
|
|
|
|
|
|
+ tableData.list = res.data.data.rows;
|
|
|
|
|
+ total.value = res.data.data.total;
|
|
|
loading.value = false;
|
|
loading.value = false;
|
|
|
} else {
|
|
} else {
|
|
|
loading.value = false;
|
|
loading.value = false;
|
|
@@ -448,14 +404,32 @@ const searchBtn = lodash.debounce(async () => {
|
|
|
}, 300);
|
|
}, 300);
|
|
|
|
|
|
|
|
// 角色新增
|
|
// 角色新增
|
|
|
-const addProjectbtn = () => {
|
|
|
|
|
|
|
+const addProjectbtn = async () => {
|
|
|
addRolesVisible.value = true;
|
|
addRolesVisible.value = true;
|
|
|
addRolesTitle.value = "角色新增";
|
|
addRolesTitle.value = "角色新增";
|
|
|
|
|
+ let res = await axios({
|
|
|
|
|
+ method: "post",
|
|
|
|
|
+ url: api.value + "/api/sysMenu/QueryMenuTreeRecords",
|
|
|
|
|
+ headers: {
|
|
|
|
|
+ tokenP: sessionStorage.getItem("tokenP"),
|
|
|
|
|
+ user_head: sessionStorage.getItem("userhead"),
|
|
|
|
|
+ },
|
|
|
|
|
+ });
|
|
|
|
|
+ console.log(res, "查看菜单");
|
|
|
|
|
+ if (res.data.code == 200) {
|
|
|
|
|
+ addtableData.list = res.data.data;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ type: "error",
|
|
|
|
|
+ showClose: true,
|
|
|
|
|
+ message: res.data.message,
|
|
|
|
|
+ center: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
};
|
|
};
|
|
|
// 取消角色新增
|
|
// 取消角色新增
|
|
|
const cancelAddRoles = () => {
|
|
const cancelAddRoles = () => {
|
|
|
addRolesVisible.value = false;
|
|
addRolesVisible.value = false;
|
|
|
- accountRef.value.resetFields();
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
//编辑项目
|
|
//编辑项目
|
|
@@ -476,7 +450,7 @@ const projectImportConfirm = async () => {
|
|
|
method: "POST",
|
|
method: "POST",
|
|
|
url: api.value + "/jgcloudProject/importExcelProject",
|
|
url: api.value + "/jgcloudProject/importExcelProject",
|
|
|
headers: {
|
|
headers: {
|
|
|
- token: sessionStorage.getItem("token"),
|
|
|
|
|
|
|
+ tokenP: sessionStorage.getItem("tokenP"),
|
|
|
user_head: sessionStorage.getItem("userhead"),
|
|
user_head: sessionStorage.getItem("userhead"),
|
|
|
},
|
|
},
|
|
|
data: data,
|
|
data: data,
|
|
@@ -508,17 +482,6 @@ const cancelProjectImport = () => {
|
|
|
projectImportVisible.value = false;
|
|
projectImportVisible.value = false;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-// (--------------------------------------------------)
|
|
|
|
|
-// cos桶中地址栏中中文地址乱码转换为中文
|
|
|
|
|
-const pdfName = (value) => {
|
|
|
|
|
- // console.log(decodeURIComponent(value));
|
|
|
|
|
- // console.log(decodeURIComponent(value).length);
|
|
|
|
|
- let index = decodeURIComponent(value).lastIndexOf("/") + 1;
|
|
|
|
|
- let name = decodeURIComponent(value).slice(index, value.length);
|
|
|
|
|
- console.log(name);
|
|
|
|
|
- return name;
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
// 多选框功能
|
|
// 多选框功能
|
|
|
const handleSelectionChange = (val) => {
|
|
const handleSelectionChange = (val) => {
|
|
|
console.log(val);
|
|
console.log(val);
|
|
@@ -542,13 +505,13 @@ const handleSizeChange = (value) => {
|
|
|
};
|
|
};
|
|
|
// 分页
|
|
// 分页
|
|
|
const handleCurrentChange = (value) => {
|
|
const handleCurrentChange = (value) => {
|
|
|
- console.log(value, "分页");
|
|
|
|
|
currentPage.value = value;
|
|
currentPage.value = value;
|
|
|
getList();
|
|
getList();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
onBeforeMount(() => {
|
|
onBeforeMount(() => {
|
|
|
api.value = store.state.user.api;
|
|
api.value = store.state.user.api;
|
|
|
|
|
+ getList();
|
|
|
});
|
|
});
|
|
|
onUnmounted(() => {
|
|
onUnmounted(() => {
|
|
|
// document.removeEventListener("keyup", Enters);
|
|
// document.removeEventListener("keyup", Enters);
|
|
@@ -716,160 +679,6 @@ onUnmounted(() => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- // 添加角色
|
|
|
|
|
- :deep(.addRoles) {
|
|
|
|
|
- // height: 420px;
|
|
|
|
|
- border-radius: 11px;
|
|
|
|
|
- .el-dialog__header {
|
|
|
|
|
- border-radius: 11px 11px 0 0;
|
|
|
|
|
- background: rgba(237, 241, 245, 1);
|
|
|
|
|
- font-weight: 600;
|
|
|
|
|
- margin: 0;
|
|
|
|
|
- .el-dialog__headerbtn {
|
|
|
|
|
- outline: none;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- .el-dialog__body {
|
|
|
|
|
- padding: 20px 30px 10px 30px;
|
|
|
|
|
-
|
|
|
|
|
- .rolesName {
|
|
|
|
|
- margin: 15px 0;
|
|
|
|
|
- color: #000;
|
|
|
|
|
- height: 600px;
|
|
|
|
|
- overflow: auto;
|
|
|
|
|
- .rolePermission {
|
|
|
|
|
- margin: 10px 0;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- .el-table--fit {
|
|
|
|
|
- height: 600px;
|
|
|
|
|
-
|
|
|
|
|
- .el-table__header-wrapper {
|
|
|
|
|
- background-color: #000;
|
|
|
|
|
- font-size: 16px;
|
|
|
|
|
- tr {
|
|
|
|
|
- color: #000;
|
|
|
|
|
- th {
|
|
|
|
|
- border-left: 1px solid #dcdfe6 !important;
|
|
|
|
|
- &:last-child {
|
|
|
|
|
- border-right: 1px solid #dcdfe6 !important;
|
|
|
|
|
- }
|
|
|
|
|
- .cell {
|
|
|
|
|
- text-align: center;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .el-table__row {
|
|
|
|
|
- height: 50px;
|
|
|
|
|
- font-size: 16px;
|
|
|
|
|
- color: #000;
|
|
|
|
|
- .el-tree-node__children {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- flex-wrap: wrap;
|
|
|
|
|
- .el-tree-node {
|
|
|
|
|
- width: 140px;
|
|
|
|
|
- .el-tree-node__content {
|
|
|
|
|
- padding-left: 0 !important;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- // border: 1px solid red;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .el-table__row td {
|
|
|
|
|
- padding: 0;
|
|
|
|
|
- // border: 0;
|
|
|
|
|
- }
|
|
|
|
|
- td {
|
|
|
|
|
- border-left: 1px solid #dcdfe6;
|
|
|
|
|
- .checkBoxSel {
|
|
|
|
|
- padding-left: 20px;
|
|
|
|
|
- .el-checkbox {
|
|
|
|
|
- .el-checkbox__label {
|
|
|
|
|
- color: #000;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- &:last-child {
|
|
|
|
|
- border-right: 1px solid #dcdfe6;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- .el-table__row:hover {
|
|
|
|
|
- td {
|
|
|
|
|
- background-color: #ffffff !important;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .el-button--primary {
|
|
|
|
|
- margin-left: 5px;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // .el-table__body .even {
|
|
|
|
|
- // background-color: #fff;
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
- // .el-table__body .odd {
|
|
|
|
|
- // background-color: rgba(240, 243, 247, 1);
|
|
|
|
|
- // }
|
|
|
|
|
- }
|
|
|
|
|
- table {
|
|
|
|
|
- width: 840px;
|
|
|
|
|
- // height: 600px;
|
|
|
|
|
- tr {
|
|
|
|
|
- td {
|
|
|
|
|
- border-top: 1px solid #7c7c7c;
|
|
|
|
|
- border-left: 1px solid #7c7c7c;
|
|
|
|
|
- }
|
|
|
|
|
- td:nth-child(1) {
|
|
|
|
|
- width: 120px;
|
|
|
|
|
- }
|
|
|
|
|
- td:last-child {
|
|
|
|
|
- border-right: 1px solid #7c7c7c;
|
|
|
|
|
- padding: 10px 0;
|
|
|
|
|
- .el-tree {
|
|
|
|
|
- .el-tree-node__children {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- flex-wrap: wrap;
|
|
|
|
|
- .el-tree-node {
|
|
|
|
|
- width: 140px;
|
|
|
|
|
- .el-tree-node__content {
|
|
|
|
|
- padding-left: 0 !important;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- // border: 1px solid red;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- tr:nth-child(1) {
|
|
|
|
|
- td {
|
|
|
|
|
- height: 40px;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- tr:last-child {
|
|
|
|
|
- td {
|
|
|
|
|
- border-bottom: 1px solid #7c7c7c;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .options {
|
|
|
|
|
- margin: 10px 20px 10px 0;
|
|
|
|
|
- width: 100%;
|
|
|
|
|
- .btn {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- flex-direction: row-reverse;
|
|
|
|
|
- }
|
|
|
|
|
- .queding {
|
|
|
|
|
- color: #fff;
|
|
|
|
|
- margin-left: 15px;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.el-pagination {
|
|
.el-pagination {
|
|
@@ -922,6 +731,122 @@ onUnmounted(() => {
|
|
|
background-color: transparent;
|
|
background-color: transparent;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // 添加角色
|
|
|
|
|
+ :deep(.addRoles) {
|
|
|
|
|
+ // height: 420px;
|
|
|
|
|
+ border-radius: 11px;
|
|
|
|
|
+ .el-dialog__header {
|
|
|
|
|
+ border-radius: 11px 11px 0 0;
|
|
|
|
|
+ background: rgba(237, 241, 245, 1);
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ .el-dialog__headerbtn {
|
|
|
|
|
+ outline: none;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .el-dialog__body {
|
|
|
|
|
+ padding: 20px 30px 10px 30px;
|
|
|
|
|
+
|
|
|
|
|
+ .rolesName {
|
|
|
|
|
+ margin: 15px 0;
|
|
|
|
|
+ color: #000;
|
|
|
|
|
+ height: 600px;
|
|
|
|
|
+ overflow: auto;
|
|
|
|
|
+ .rolePermission {
|
|
|
|
|
+ margin: 10px 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .el-table--fit {
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ :deep(.el-table__header-wrapper) {
|
|
|
|
|
+ background-color: #000;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ color: #000;
|
|
|
|
|
+
|
|
|
|
|
+ .cell {
|
|
|
|
|
+ color: #000;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .el-table__row {
|
|
|
|
|
+ height: 45px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ color: #000;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .el-table__row td {
|
|
|
|
|
+ // padding: 0;
|
|
|
|
|
+ // border: 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .el-button--primary {
|
|
|
|
|
+ margin-left: 5px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ :deep(.el-table__body .even) {
|
|
|
|
|
+ background-color: #fff;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ :deep(.el-table__body .odd) {
|
|
|
|
|
+ background-color: rgba(240, 243, 247, 1);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // table {
|
|
|
|
|
+ // width: 840px;
|
|
|
|
|
+ // // height: 600px;
|
|
|
|
|
+ // tr {
|
|
|
|
|
+ // td {
|
|
|
|
|
+ // border-top: 1px solid #7c7c7c;
|
|
|
|
|
+ // border-left: 1px solid #7c7c7c;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // td:nth-child(1) {
|
|
|
|
|
+ // width: 120px;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // td:last-child {
|
|
|
|
|
+ // border-right: 1px solid #7c7c7c;
|
|
|
|
|
+ // padding: 10px 0;
|
|
|
|
|
+ // .el-tree {
|
|
|
|
|
+ // .el-tree-node__children {
|
|
|
|
|
+ // display: flex;
|
|
|
|
|
+ // flex-wrap: wrap;
|
|
|
|
|
+ // .el-tree-node {
|
|
|
|
|
+ // width: 140px;
|
|
|
|
|
+ // .el-tree-node__content {
|
|
|
|
|
+ // padding-left: 0 !important;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+ // // border: 1px solid red;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+ // tr:nth-child(1) {
|
|
|
|
|
+ // td {
|
|
|
|
|
+ // height: 40px;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+ // tr:last-child {
|
|
|
|
|
+ // td {
|
|
|
|
|
+ // border-bottom: 1px solid #7c7c7c;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+
|
|
|
|
|
+ .options {
|
|
|
|
|
+ margin: 10px 20px 10px 0;
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ .btn {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: row-reverse;
|
|
|
|
|
+ }
|
|
|
|
|
+ .queding {
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ margin-left: 15px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.el-input {
|
|
.el-input {
|