zhangsq пре 7 месеци
родитељ
комит
63a6018c42

+ 1 - 1
src/api/resourceAudit.js

@@ -29,7 +29,7 @@ export default {
 	},
 	},
 	//院校下拉接口
 	//院校下拉接口
 	orgTreeSelector(data = {}) {
 	orgTreeSelector(data = {}) {
-		return request('disk/college/orgTreeSelector', data, 'get')
+		return request('sys/org/orgTreeSelector', data, 'get')
 	},
 	},
 	//根据院校id获取专业下拉接口
 	//根据院校id获取专业下拉接口
 	zyselect(data = {}) {
 	zyselect(data = {}) {

+ 24 - 12
src/views/myResources/resourceUpload.vue

@@ -116,7 +116,8 @@
 			</a-form-item>
 			</a-form-item>
 			<!-- 选择成员 -->
 			<!-- 选择成员 -->
 			<userSelection
 			<userSelection
-				v-if="userReleaseVisible"
+				:visible="userReleaseVisible"
+				:userRelateIds="userRelateIdss"
 				@close="userReleaseVisible = false"
 				@close="userReleaseVisible = false"
 				@confirm="confirmUser"
 				@confirm="confirmUser"
 			></userSelection>
 			></userSelection>
@@ -179,7 +180,7 @@
 		keywordValue: [], // 添加关键词
 		keywordValue: [], // 添加关键词
 		keyword: [], // 热门关键词
 		keyword: [], // 热门关键词
 		authType: '0', // 资源是否公开
 		authType: '0', // 资源是否公开
-		userRelateIds: [], //资源公开人员id
+		userRelateIds: null, //资源公开人员id
 		isRecommend: 0, // 资源是否推荐
 		isRecommend: 0, // 资源是否推荐
 		isHot: 0 // 资源是否热门
 		isHot: 0 // 资源是否热门
 	})
 	})
@@ -192,6 +193,7 @@
 	const resourceName = ref([]) //资源回显
 	const resourceName = ref([]) //资源回显
 	const majorOptions = ref([]) //专业
 	const majorOptions = ref([]) //专业
 	const courseOptions = ref([]) //课程
 	const courseOptions = ref([]) //课程
+	const userRelateIdss = ref([])
 	// 上传资源模态框
 	// 上传资源模态框
 	const uploadModalVisible = ref(true)
 	const uploadModalVisible = ref(true)
 	// 用户选择模态框
 	// 用户选择模态框
@@ -393,13 +395,14 @@
 			})
 			})
 	}
 	}
 	const confirmUser = (userIds) => {
 	const confirmUser = (userIds) => {
+		console.log(userIds, '用户id')
+		userReleaseVisible.value = false
 		formState.userRelateIds = userIds.join(',')
 		formState.userRelateIds = userIds.join(',')
 	}
 	}
 	// 确认上传
 	// 确认上传
 	const handleUploadOk = async () => {
 	const handleUploadOk = async () => {
 		try {
 		try {
 			await formRef.value.validate()
 			await formRef.value.validate()
-
 			if (!formState.userfileIds) {
 			if (!formState.userfileIds) {
 				Modal.error({ content: '请先上传文件!' })
 				Modal.error({ content: '请先上传文件!' })
 				return
 				return
@@ -419,7 +422,9 @@
 					isHot: formState.isHot,
 					isHot: formState.isHot,
 					isRecommend: formState.isRecommend,
 					isRecommend: formState.isRecommend,
 					coverImage: formState.coverImage,
 					coverImage: formState.coverImage,
-					publicStatus: formState.publicStatus
+					publicStatus: formState.publicStatus,
+					authType: formState.authType,
+					userRelateIds: formState.authType == 1 ? formState.userRelateIds : null
 				}
 				}
 				resourceAuditApi
 				resourceAuditApi
 					.edit(formData)
 					.edit(formData)
@@ -445,8 +450,11 @@
 					isHot: formState.isHot,
 					isHot: formState.isHot,
 					isRecommend: formState.isRecommend,
 					isRecommend: formState.isRecommend,
 					coverImage: formState.coverImage,
 					coverImage: formState.coverImage,
-					publicStatus: formState.publicStatus
+					publicStatus: formState.publicStatus,
+					authType: formState.authType,
+					userRelateIds: formState.authType == 1 ? formState.userRelateIds : null
 				}
 				}
+				console.log(formData, '上传数据')
 				resourceAuditApi
 				resourceAuditApi
 					.add(formData)
 					.add(formData)
 					.then((res) => {
 					.then((res) => {
@@ -474,6 +482,8 @@
 		resourceAuditApi.detail({ id: props.resourcesId }).then((res) => {
 		resourceAuditApi.detail({ id: props.resourcesId }).then((res) => {
 			console.log(res.data, '资源详情')
 			console.log(res.data, '资源详情')
 			formState.userfileIds = res.data.fileId
 			formState.userfileIds = res.data.fileId
+			formState.userRelateIds = res.data.userRelateIdList?.join(',')
+			userRelateIdss.value = res.data.userRelateIdList
 			formState.resourceType = res.data.resourceType
 			formState.resourceType = res.data.resourceType
 			formState.resourceTwoType = res.data.resourceTwoType
 			formState.resourceTwoType = res.data.resourceTwoType
 			formState.collegeId = res.data.collegeId
 			formState.collegeId = res.data.collegeId
@@ -481,12 +491,12 @@
 			coverImagePath.value = res.data.coverImagePath
 			coverImagePath.value = res.data.coverImagePath
 			formState.collegeTwoId = res.data.collegeTwoId
 			formState.collegeTwoId = res.data.collegeTwoId
 			formState.collegeThreeId = res.data.collegeThreeId
 			formState.collegeThreeId = res.data.collegeThreeId
-			majorIdName.value = res.data.collegeAllId.split(',')
-			resourceName.value = res.data.resourceALLTypeName.split(',')
+			majorIdName.value = res.data.collegeAllId?.split(',')
+			resourceName.value = res.data.resourceALLTypeName?.split(',')
 			getCollegeMajor(majorIdName.value[majorIdName.value.length - 1])
 			getCollegeMajor(majorIdName.value[majorIdName.value.length - 1])
 			formState.resourceDesc = res.data.resourceDesc
 			formState.resourceDesc = res.data.resourceDesc
 			// formState.majorId = res.data.majorId
 			// formState.majorId = res.data.majorId
-			formState.keywordValue = res.data.keywordValue.split(',')
+			formState.keywordValue = res.data.keywordValue?.split(',')
 			formState.keyword = res.data.keyword.split(',').filter(Boolean).map(Number)
 			formState.keyword = res.data.keyword.split(',').filter(Boolean).map(Number)
 		})
 		})
 	}
 	}
@@ -495,17 +505,19 @@
 		resourceAuditApi.recentlyRecord().then((res) => {
 		resourceAuditApi.recentlyRecord().then((res) => {
 			console.log(res.data, '历史表单数据')
 			console.log(res.data, '历史表单数据')
 			formState.resourceType = res.data.resourceType
 			formState.resourceType = res.data.resourceType
+			formState.userRelateIds = res.data.userRelateIdList?.join(',')
+			userRelateIdss.value = res.data.userRelateIdList
 			formState.resourceTwoType = res.data.resourceTwoType
 			formState.resourceTwoType = res.data.resourceTwoType
 			formState.collegeId = res.data.collegeId
 			formState.collegeId = res.data.collegeId
 			formState.collegeTwoId = res.data.collegeTwoId
 			formState.collegeTwoId = res.data.collegeTwoId
 			formState.collegeThreeId = res.data.collegeThreeId
 			formState.collegeThreeId = res.data.collegeThreeId
-			majorIdName.value = res.data.collegeAllId.split(',')
-			resourceName.value = res.data.resourceAllType.split(',')
+			majorIdName.value = res.data.collegeAllId?.split(',')
+			resourceName.value = res.data.resourceAllType?.split(',')
 			getCollegeMajor(majorIdName.value[majorIdName.value.length - 1])
 			getCollegeMajor(majorIdName.value[majorIdName.value.length - 1])
 			formState.resourceDesc = res.data.resourceDesc
 			formState.resourceDesc = res.data.resourceDesc
 			// formState.majorId = res.data.majorId
 			// formState.majorId = res.data.majorId
-			formState.keywordValue = res.data.keywordValue.split(',')
-			formState.keyword = res.data.keyword.split(',').filter(Boolean).map(Number)
+			formState.keywordValue = res.data.keywordValue?.split(',')
+			formState.keyword = res.data.keyword?.split(',').filter(Boolean).map(Number)
 		})
 		})
 	}
 	}
 	// 上传前的钩子函数
 	// 上传前的钩子函数

+ 33 - 13
src/views/myResources/userSelection.vue

@@ -83,7 +83,18 @@
 	import resourceAuditApi from '@/api/resourceAudit.js'
 	import resourceAuditApi from '@/api/resourceAudit.js'
 	import { Modal, Input, Tree, List, Avatar, Button } from 'ant-design-vue'
 	import { Modal, Input, Tree, List, Avatar, Button } from 'ant-design-vue'
 	const emit = defineEmits(['close', 'confirm'])
 	const emit = defineEmits(['close', 'confirm'])
-	const visible = ref(true)
+	// const visible = ref(true)
+	const props = defineProps({
+		visible: {
+			type: Boolean,
+			default: false
+		},
+		userRelateIds: {
+			type: Array,
+			default: () => {}
+		}
+	})
+
 	const searchValue = ref('')
 	const searchValue = ref('')
 	const treeData = ref([
 	const treeData = ref([
 		{
 		{
@@ -123,6 +134,19 @@
 			]
 			]
 		}
 		}
 	])
 	])
+	watch(
+		() => props.userRelateIds,
+		(newVal) => {
+			if (newVal) {
+				console.log(newVal, 'props.userRelateIds')
+				checkedKeys.value = newVal
+				// selectedUsers.value = flatTree(treeData.value)
+				// 	.filter((node) => newVal.includes(node.id))
+				// 	.map((node) => ({ id: node.id, name: node.name }))
+			}
+		},
+		{ deep: true }
+	)
 	const selectedKeys = ref([])
 	const selectedKeys = ref([])
 	const selectedUsers = ref([])
 	const selectedUsers = ref([])
 	const checkedKeys = ref([])
 	const checkedKeys = ref([])
@@ -144,20 +168,13 @@
 
 
 	// 替换原来的onSelect方法
 	// 替换原来的onSelect方法
 	const onCheck = (checkedKeysValue, { checked, node, checkedNodes }) => {
 	const onCheck = (checkedKeysValue, { checked, node, checkedNodes }) => {
-		// console.log(checkedKeysValue, checked, node, checkedNodes, 'checkedKeysValue')
-		checkedKeys.value = checkedKeysValue
-		// selectedUsers.value = checkedNodes
-		// 	.filter((node) => node.isLeaf) // 只保留叶子节点
-		// 	.map((node) => ({
-		// 		id: node.id,
-		// 		name: node.name,
-		// 		// avatar: node.avatar,
-		// 		department: findDepartmentName(node.id, treeData.value)
-		// 	}))
-		selectedUsers.value = checkedNodes.map((node) => ({
+		// 过滤掉非叶子节点
+		const leafNodes = checkedNodes.filter((node) => node.isLeaf)
+		checkedKeys.value = leafNodes.map((node) => node.id)
+		selectedUsers.value = leafNodes.map((node) => ({
 			id: node.id,
 			id: node.id,
 			name: node.name
 			name: node.name
-			// avatar: node.avatar,
+			// 可选: 保留部门信息
 			// department: findDepartmentName(node.id, treeData.value)
 			// department: findDepartmentName(node.id, treeData.value)
 		}))
 		}))
 	}
 	}
@@ -239,6 +256,9 @@
 	}
 	}
 	onMounted(() => {
 	onMounted(() => {
 		getOrgUserTreeRespectively()
 		getOrgUserTreeRespectively()
+		// if (props.userRelateIds) {
+		// 	checkedKeys.value = props.userRelateIds // 直接赋值给树组件的checkedKeys
+		// }
 	})
 	})
 </script>
 </script>
 
 

+ 14 - 1
src/views/sys/user/form.vue

@@ -86,6 +86,15 @@
 								/>
 								/>
 							</a-form-item>
 							</a-form-item>
 						</a-col>
 						</a-col>
+						<a-col :span="8">
+							<a-form-item label="选择教育身份:" name="eduIdentity">
+								<a-select
+									v-model:value="formData.eduIdentity"
+									placeholder="请选择选择项类型"
+									:options="eduIdentityOptions"
+								/>
+							</a-form-item>
+						</a-col>
 						<a-col :span="8">
 						<a-col :span="8">
 							<a-form-item label="选择主管:" name="directorId">
 							<a-form-item label="选择主管:" name="directorId">
 								<xn-page-select
 								<xn-page-select
@@ -337,6 +346,9 @@
 	const formLoading = ref(false)
 	const formLoading = ref(false)
 	const treeData = ref([])
 	const treeData = ref([])
 	const treeDefaultExpandedKeys = ref([])
 	const treeDefaultExpandedKeys = ref([])
+	const eduIdentityOptions = tool.dictList('SYS_USER_EDU_IDENTITY')
+	console.log(eduIdentityOptions, 'eduIdentityOptions')
+
 	// 分页select组件dom定义
 	// 分页select组件dom定义
 	const xnPositionPageSelectRef = ref()
 	const xnPositionPageSelectRef = ref()
 	const xnUserPageSelectRef = ref()
 	const xnUserPageSelectRef = ref()
@@ -420,7 +432,8 @@
 		name: [required('请输入姓名')],
 		name: [required('请输入姓名')],
 		sex: [required('请选择性别')],
 		sex: [required('请选择性别')],
 		orgId: [required('请选择组织')],
 		orgId: [required('请选择组织')],
-		positionId: [required('请选择职位')]
+		positionId: [required('请选择职位')],
+		eduIdentity: [required('请选择教育身份')]
 	}
 	}
 	// 机构选择后查询对应的职位
 	// 机构选择后查询对应的职位
 	const selePositionData = (orgId, type) => {
 	const selePositionData = (orgId, type) => {

+ 5 - 0
src/views/sys/user/index.vue

@@ -198,6 +198,11 @@
 			dataIndex: 'positionName',
 			dataIndex: 'positionName',
 			ellipsis: true
 			ellipsis: true
 		},
 		},
+		{
+			title: '教育身份',
+			dataIndex: 'eduIdentityName',
+			ellipsis: true
+		},
 		{
 		{
 			title: '状态',
 			title: '状态',
 			dataIndex: 'userStatus',
 			dataIndex: 'userStatus',