diff --git a/src/components.d.ts b/src/components.d.ts
index 4a86bac..45a4679 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -11,6 +11,8 @@ declare module 'vue' {
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
ElButton: typeof import('element-plus/es')['ElButton']
+ ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
+ ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElContainer: typeof import('element-plus/es')['ElContainer']
ElDialog: typeof import('element-plus/es')['ElDialog']
@@ -32,6 +34,8 @@ declare module 'vue' {
ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
+ ElTree: typeof import('element-plus/es')['ElTree']
+ ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
MapSelector: typeof import('./components/MapSelector.vue')['default']
Pagination: typeof import('./components/Pagination/index.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
diff --git a/src/views/AuthManage/HandleDialog.vue b/src/views/AuthManage/HandleDialog.vue
index 41ce99c..085dea9 100644
--- a/src/views/AuthManage/HandleDialog.vue
+++ b/src/views/AuthManage/HandleDialog.vue
@@ -43,6 +43,7 @@ const submitForm = async () => {
...formField.value,
id: isAdd.value ? null : props.row.id,
}
+ loading.value = true
RPC.post(api, params)
.then((res) => {
ElMessage.success('操作成功')
diff --git a/src/views/ModelManage/index.vue b/src/views/ModelManage/index.vue
index 32dd5c1..1f5311b 100644
--- a/src/views/ModelManage/index.vue
+++ b/src/views/ModelManage/index.vue
@@ -1,6 +1,6 @@
-
角色管理
+
模板管理
+import RPC from '@/utils/rpc'
+const props = defineProps({
+ row: [Object],
+ authList: {
+ type: Array,
+ default: [],
+ },
+})
+
+const emit = defineEmits(['closed', 'onSuccess'])
+
+const dialogVisible = ref(false)
+
+const isAdd = computed(() => props.type === 'add')
+
+onMounted(() => {
+ dialogVisible.value = true
+})
+
+const formRef = ref(null)
+const formField = ref({})
+const formRules = reactive({})
+
+const loading = ref(false)
+
+function closed() {
+ emit('closed')
+}
+
+const submitForm = async () => {
+ const checkedNodes = treeRef.value.getCheckedNodes() || []
+ loading.value = true
+ RPC.post('/assign_permissions', {
+ role_id: props.row.id,
+ permission_ids: checkedNodes.map((item) => item.id) || [],
+ })
+ .then((res) => {
+ ElMessage.success('操作成功')
+ emit('onSuccess')
+ emit('closed')
+ })
+ .finally(() => {
+ loading.value = false
+ })
+}
+const authValue = ref(props.row?.permissions?.map((item) => item.id) || [])
+
+const treeRef = ref()
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/RoleManage/HandleDialog.vue b/src/views/RoleManage/HandleDialog.vue
index 204bc1e..b731513 100644
--- a/src/views/RoleManage/HandleDialog.vue
+++ b/src/views/RoleManage/HandleDialog.vue
@@ -42,6 +42,7 @@ const submitForm = async () => {
...formField.value,
id: isAdd.value ? null : props.row.id,
}
+ loading.value = true
RPC.post(api, params)
.then((res) => {
ElMessage.success('操作成功')
diff --git a/src/views/RoleManage/index.vue b/src/views/RoleManage/index.vue
index 32dd5c1..ee8ea62 100644
--- a/src/views/RoleManage/index.vue
+++ b/src/views/RoleManage/index.vue
@@ -37,15 +37,12 @@
-
+
-
- 编辑
-
+ 分配权限
+ 编辑
-
- 删除
-
+ 删除
@@ -67,12 +64,56 @@
@closed="isShowDialog = false"
@on-success="getList"
/>
+
+
diff --git a/src/views/UserManage/RoleDialog.vue b/src/views/UserManage/RoleDialog.vue
new file mode 100644
index 0000000..482f36f
--- /dev/null
+++ b/src/views/UserManage/RoleDialog.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/UserManage/index.vue b/src/views/UserManage/index.vue
index e941f7f..3a64a65 100644
--- a/src/views/UserManage/index.vue
+++ b/src/views/UserManage/index.vue
@@ -37,15 +37,17 @@
-
+
-
- 编辑
-
+ {{ row.roles?.map((item) => item.name)?.join(',') }}
+
+
+
+
+ 分配角色
+ 编辑
-
- 删除
-
+ 删除
@@ -63,10 +65,16 @@
v-if="isShowDialog"
:type="rowType"
:row="currentRow"
- :categoryList="categoryList"
@closed="isShowDialog = false"
@on-success="getList"
/>
+
@@ -75,6 +83,7 @@ import { useTableRPC } from '@/utils/hook'
import dayjs from 'dayjs'
import RPC from '@/utils/rpc'
import HandleDialog from './HandleDialog.vue'
+import RoleDialog from './RoleDialog.vue'
const rowType = ref('')
const currentRow = ref(null)
@@ -88,6 +97,16 @@ const edit = (row) => {
rowType.value = 'edit'
currentRow.value = row
}
+const editRole = (row) => {
+ isShowRoleDialog.value = true
+ currentRow.value = row
+}
+
+const isShowRoleDialog = ref(false)
+const roleList = ref([])
+RPC.post('/role/list', { page: 1, limit: -1 }).then((res) => {
+ roleList.value = res.rows || []
+})
const {
loading,