diff --git a/snowy-admin-web/src/views/sys/role/grantPermissionForm.vue b/snowy-admin-web/src/views/sys/role/grantPermissionForm.vue
index 00e21f49..595b45fa 100644
--- a/snowy-admin-web/src/views/sys/role/grantPermissionForm.vue
+++ b/snowy-admin-web/src/views/sys/role/grantPermissionForm.vue
@@ -5,8 +5,13 @@
 		:visible="visible"
 		:destroy-on-close="true"
 		:show-pagination="false"
-		@close="onClose">
-		<a-alert message="注:此功能界面需要与代码查询条件配合使用,并非所有接口都需设置数据范围,多用于业务模块!" type="warning" closable/>
+		@close="onClose"
+	>
+		<a-alert
+			message="注:此功能界面需要与代码查询条件配合使用,并非所有接口都需设置数据范围,多用于业务模块!"
+			type="warning"
+			closable
+		/>
 		<a-spin :spinning="spinningLoading">
 			<a-table
 				class="mt-4"
@@ -14,31 +19,30 @@
 				:columns="columns"
 				:data-source="loadDatas"
 				:row-key="(record) => record.api"
-				bordered>
+				bordered
+			>
 				<template #headerCell="{ column }">
 					<template v-if="column.key === 'api'">
 						<a-checkbox @update:checked="(val) => onCheckAllChange(val)"> 接口 </a-checkbox>
 					</template>
 					<template v-if="column.key === 'dataScope'">
 						<span>{{ column.title }}</span>
-						<a-radio-group v-model:value="scopeRadioValue"
-									   @change="radioChange" style="padding: 0 10px">
+						<a-radio-group v-model:value="scopeRadioValue" @change="radioChange" style="padding: 0 10px">
 							<a-radio value="SCOPE_ALL"> 全部 </a-radio>
 							<a-radio value="SCOPE_SELF"> 仅自已 </a-radio>
-							<a-radio value="SCOPE_ORG"> 所属机构 </a-radio>
-							<a-radio value="SCOPE_ORG_CHILD"> 所属机构及以下 </a-radio>
+							<a-radio value="SCOPE_ORG"> 所属组织 </a-radio>
+							<a-radio value="SCOPE_ORG_CHILD"> 所属组织及以下 </a-radio>
 						</a-radio-group>
 					</template>
 				</template>
-				<!---->
 				<template #customFilterDropdown="{ setSelectedKeys, selectedKeys, confirm, clearFilters, column }">
 					<div style="padding: 8px">
 						<a-input
 							ref="searchInput"
-							:placeholder="`Search ${column.dataIndex}`"
+							placeholder="请输入接口或接口名称"
 							:value="selectedKeys[0]"
 							style="width: 188px; margin-bottom: 8px; display: block"
-							@change="e => setSelectedKeys(e.target.value ? [e.target.value] : [])"
+							@change="(e) => setSelectedKeys(e.target.value ? [e.target.value] : [])"
 							@pressEnter="handleSearch(selectedKeys, confirm, column.dataIndex)"
 						/>
 						<a-button
@@ -48,17 +52,14 @@
 							@click="handleSearch(selectedKeys, confirm, column.dataIndex)"
 						>
 							<template #icon><SearchOutlined /></template>
-							Search
-						</a-button>
-						<a-button size="small" style="width: 90px" @click="handleReset(clearFilters)">
-							Reset
+							搜索
 						</a-button>
+						<a-button size="small" style="width: 90px" @click="handleReset(clearFilters)"> 重置 </a-button>
 					</div>
 				</template>
 				<template #customFilterIcon="{ filtered }">
 					<search-outlined :style="{ color: filtered ? '#108ee9' : undefined }" />
 				</template>
-				<!---->
 				<template #bodyCell="{ column, record }">
 					<template v-if="column.dataIndex === 'api'">
 						<a-checkbox :checked="record.check" @update:checked="(val) => changeApi(record, val)">
@@ -71,7 +72,8 @@
 								<a-radio
 									v-model:checked="item.check"
 									:name="item.title"
-									@change="(evt) => changeDataScope(record, evt)">
+									@change="(evt) => changeDataScope(record, evt)"
+								>
 									<a-badge
 										v-if="
 											(item.value === 'SCOPE_ORG_DEFINE') &
@@ -79,13 +81,15 @@
 											(item.scopeDefineOrgIdList !== undefined)
 										"
 										:count="item.scopeDefineOrgIdList.length"
-										:number-style="{ backgroundColor: '#52c41a' }">
-										{{ item.title }}</a-badge>
+										:number-style="{ backgroundColor: '#52c41a' }"
+									>
+										{{ item.title }}</a-badge
+									>
 									<div v-else>{{ item.title }}</div>
 								</a-radio>
 							</template>
 							<a-button v-if="record.dataScope[4].check" type="link" size="small" @click="handleDefineOrg(record)"
-							>选择机构</a-button
+								>选择组织</a-button
 							>
 						</template>
 					</template>
@@ -101,12 +105,11 @@
 </template>
 
 <script setup name="grantResourceForm">
-	import { SearchOutlined } from '@ant-design/icons-vue';
+	import { SearchOutlined } from '@ant-design/icons-vue'
 	import roleApi from '@/api/sys/roleApi'
-	import { remove } from 'lodash-es'
 	import ScopeDefineOrg from './scopeDefineOrg.vue'
 
-	let visible = ref(false)
+	const visible = ref(false)
 	const spinningLoading = ref(false)
 	const scopeDefineOrgModal = ref(null)
 	const emit = defineEmits({ successful: null })
@@ -121,9 +124,9 @@
 	const scopeRadioValue = ref()
 	const state = reactive({
 		searchText: '',
-		searchedColumn: '',
-	});
-	const searchInput = ref();
+		searchedColumn: ''
+	})
+	const searchInput = ref()
 
 	const columns = [
 		{
@@ -133,13 +136,13 @@
 			width: 380,
 			customFilterDropdown: true,
 			onFilter: (value, record) => record.api.includes(value),
-			onFilterDropdownVisibleChange: visible => {
+			onFilterDropdownVisibleChange: (visible) => {
 				if (visible) {
 					setTimeout(() => {
-						searchInput.value.focus();
-					}, 100);
+						searchInput.value.focus()
+					}, 100)
 				}
-			},
+			}
 		},
 		{
 			key: 'dataScope',
@@ -204,13 +207,13 @@
 			},
 			{
 				id: `SCOPE_ORG_${id}`,
-				title: '所属机构',
+				title: '所属组织',
 				value: 'SCOPE_ORG',
 				check: false
 			},
 			{
 				id: `SCOPE_ORG_CHILD_${id}`,
-				title: '所属机构及以下',
+				title: '所属组织及以下',
 				value: 'SCOPE_ORG_CHILD',
 				check: false
 			},
@@ -369,28 +372,27 @@
 	}
 	// 标题接口列搜索
 	const handleSearch = (selectedKeys, confirm, dataIndex) => {
-		confirm();
-		state.searchText = selectedKeys[0];
-		state.searchedColumn = dataIndex;
+		confirm()
+		state.searchText = selectedKeys[0]
+		state.searchedColumn = dataIndex
 	}
 	// 标题接口列搜索重置
-	const handleReset = clearFilters => {
-		clearFilters();
-		state.searchText = '';
+	const handleReset = (clearFilters) => {
+		clearFilters()
+		state.searchText = ''
 	}
 	// 标题数据范围列radio-group事件
 	const radioChange = (obj) => {
 		loadDatas.value.forEach((data) => {
 			data.dataScope.forEach((data) => {
-				if (obj.target.value === data.value){
+				if (obj.target.value === data.value) {
 					data.check = true
-				}else {
+				} else {
 					data.check = false
 				}
 			})
 		})
 	}
-
 	// 调用这个函数将子组件的一些数据和方法暴露出去
 	defineExpose({
 		onOpen
diff --git a/snowy-admin-web/src/views/sys/role/scopeDefineOrg.vue b/snowy-admin-web/src/views/sys/role/scopeDefineOrg.vue
index 256a2e1b..81d84e0d 100644
--- a/snowy-admin-web/src/views/sys/role/scopeDefineOrg.vue
+++ b/snowy-admin-web/src/views/sys/role/scopeDefineOrg.vue
@@ -1,7 +1,7 @@
 <template>
 	<a-modal
 		v-model:visible="visible"
-		title="选择机构"
+		title="选择组织"
 		:width="400"
 		:mask-closable="false"
 		:destroy-on-close="true"
diff --git a/snowy-admin-web/src/views/sys/user/grantPermissionForm.vue b/snowy-admin-web/src/views/sys/user/grantPermissionForm.vue
index 101f1788..c63d338d 100644
--- a/snowy-admin-web/src/views/sys/user/grantPermissionForm.vue
+++ b/snowy-admin-web/src/views/sys/user/grantPermissionForm.vue
@@ -25,6 +25,40 @@
 					<template v-if="column.key === 'api'">
 						<a-checkbox @update:checked="(val) => onCheckAllChange(val)"> 接口 </a-checkbox>
 					</template>
+					<template v-if="column.key === 'dataScope'">
+						<span>{{ column.title }}</span>
+						<a-radio-group v-model:value="scopeRadioValue" @change="radioChange" style="padding: 0 10px">
+							<a-radio value="SCOPE_ALL"> 全部 </a-radio>
+							<a-radio value="SCOPE_SELF"> 仅自已 </a-radio>
+							<a-radio value="SCOPE_ORG"> 所属组织 </a-radio>
+							<a-radio value="SCOPE_ORG_CHILD"> 所属组织及以下 </a-radio>
+						</a-radio-group>
+					</template>
+				</template>
+				<template #customFilterDropdown="{ setSelectedKeys, selectedKeys, confirm, clearFilters, column }">
+					<div style="padding: 8px">
+						<a-input
+							ref="searchInput"
+							placeholder="请输入接口或接口名称"
+							:value="selectedKeys[0]"
+							style="width: 188px; margin-bottom: 8px; display: block"
+							@change="(e) => setSelectedKeys(e.target.value ? [e.target.value] : [])"
+							@pressEnter="handleSearch(selectedKeys, confirm, column.dataIndex)"
+						/>
+						<a-button
+							type="primary"
+							size="small"
+							style="width: 90px; margin-right: 8px"
+							@click="handleSearch(selectedKeys, confirm, column.dataIndex)"
+						>
+							<template #icon><SearchOutlined /></template>
+							搜索
+						</a-button>
+						<a-button size="small" style="width: 90px" @click="handleReset(clearFilters)"> 重置 </a-button>
+					</div>
+				</template>
+				<template #customFilterIcon="{ filtered }">
+					<search-outlined :style="{ color: filtered ? '#108ee9' : undefined }" />
 				</template>
 				<template #bodyCell="{ column, record }">
 					<template v-if="column.dataIndex === 'api'">
@@ -55,7 +89,7 @@
 								</a-radio>
 							</template>
 							<a-button v-if="record.dataScope[4].check" type="link" size="small" @click="handleDefineOrg(record)"
-								>选择机构</a-button
+								>选择组织</a-button
 							>
 						</template>
 					</template>
@@ -71,11 +105,12 @@
 </template>
 
 <script setup name="grantResourceForm">
+	import { SearchOutlined } from '@ant-design/icons-vue'
 	import userApi from '@/api/sys/userApi'
 	import roleApi from '@/api/sys/roleApi'
 	import ScopeDefineOrg from './scopeDefineOrg.vue'
 
-	let visible = ref(false)
+	const visible = ref(false)
 	const spinningLoading = ref(false)
 	const scopeDefineOrgModal = ref(null)
 	const emit = defineEmits({ successful: null })
@@ -85,14 +120,30 @@
 	const drawerWidth = 1000
 	// 自动获取宽度,默认获取浏览器的宽度的90%
 	//(window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) * 0.9
-	let loadDatas = ref([])
+	const loadDatas = ref([])
+	// 标题接口列搜索, 数据范围默认
+	const scopeRadioValue = ref()
+	const state = reactive({
+		searchText: '',
+		searchedColumn: ''
+	})
+	const searchInput = ref()
 
 	const columns = [
 		{
 			key: 'api',
 			title: '接口',
 			dataIndex: 'api',
-			width: 380
+			width: 380,
+			customFilterDropdown: true,
+			onFilter: (value, record) => record.api.includes(value),
+			onFilterDropdownVisibleChange: (visible) => {
+				if (visible) {
+					setTimeout(() => {
+						searchInput.value.focus()
+					}, 100)
+				}
+			}
 		},
 		{
 			key: 'dataScope',
@@ -232,6 +283,7 @@
 	const onClose = () => {
 		// 将这些缓存的给清空
 		loadDatas.value = []
+		scopeRadioValue.value = ''
 		visible.value = false
 	}
 	// 全选
@@ -319,6 +371,29 @@
 				submitLoading.value = false
 			})
 	}
+	// 标题接口列搜索
+	const handleSearch = (selectedKeys, confirm, dataIndex) => {
+		confirm()
+		state.searchText = selectedKeys[0]
+		state.searchedColumn = dataIndex
+	}
+	// 标题接口列搜索重置
+	const handleReset = (clearFilters) => {
+		clearFilters()
+		state.searchText = ''
+	}
+	// 标题数据范围列radio-group事件
+	const radioChange = (obj) => {
+		loadDatas.value.forEach((data) => {
+			data.dataScope.forEach((data) => {
+				if (obj.target.value === data.value) {
+					data.check = true
+				} else {
+					data.check = false
+				}
+			})
+		})
+	}
 	// 调用这个函数将子组件的一些数据和方法暴露出去
 	defineExpose({
 		onOpen
diff --git a/snowy-admin-web/src/views/sys/user/scopeDefineOrg.vue b/snowy-admin-web/src/views/sys/user/scopeDefineOrg.vue
index 4a8bcd74..2252d444 100644
--- a/snowy-admin-web/src/views/sys/user/scopeDefineOrg.vue
+++ b/snowy-admin-web/src/views/sys/user/scopeDefineOrg.vue
@@ -1,7 +1,7 @@
 <template>
 	<a-modal
 		v-model:visible="visible"
-		title="选择机构"
+		title="选择组织"
 		:width="500"
 		:mask-closable="false"
 		:destroy-on-close="true"