Browse Source

解决部分bug

于添 5 tháng trước cách đây
mục cha
commit
f5270cb0b1

+ 113 - 0
src/components/SelectorList/index.vue

@@ -0,0 +1,113 @@
+<template>
+	<a-select
+		:value="modelValue"
+		placeholder="请选择"
+		:mode="props.mode"
+		style="width: 100%"
+		:options="props.options"
+		@change="handleChange"
+	>
+		<template #dropdownRender="{ menuNode: menu }">
+			<v-nodes :vnodes="menu" />
+			<div style="display: flex; width: 100%;   justify-content: center"    @mousedown.prevent>
+				<a-pagination
+
+					v-model:current="currentPage.current"
+					v-model:pageSize="currentPage.size"
+					size="small"
+					:total="props.total"
+					:show-size-changer="false"
+					:show-less-items="true"
+					@change="onChange"
+				/>
+			</div>
+
+
+		</template>
+
+	</a-select>
+</template>
+
+<script setup>
+
+ import {ref,reactive,defineComponent ,defineProps} from "vue";
+ const emit = defineEmits(['update:modelValue','onChange','onInit'])
+ const props = defineProps({
+	 modelValue: {
+		 type: [String],
+		 default: null
+	 },
+	 options: {
+		 type: Array,
+		 default: []
+	 },
+	 size: {
+		 type: Number,
+		 default: 10
+	 },
+	 total: {
+		 type: Number,
+		 default: 0
+	 },
+	 //'multiple' | 'tags' | 'combobox'
+	 mode: {
+		 type: String,
+		 default: ''
+	 }
+ })
+
+ const VNodes = defineComponent({
+	 props: {
+		 vnodes: {
+			 type: Object,
+			 required: true,
+		 },
+	 },
+	 render() {
+		 return this.vnodes;
+	 },
+ });
+ // 在 form.vue 中监听值的变化
+ watch(() => props.modelValue, (newVal) => {
+	 console.log('等眼看着:', newVal);
+ }, { deep: true });
+ const item = ref(null)
+
+ const currentPage = reactive({
+	 current: 1,
+	 size: props.size,
+
+ })
+ const itemIds = ref(['1935565895337304066'])
+let  options = ref(
+	[
+		// {
+		// 	value : 1,
+		// label : '大佬'},
+		// {
+		// 	value : 2,
+		// label : '小佬'}
+
+]
+
+)
+ const handleChange = (value) => {
+	 emit('update:modelValue', value);
+ };
+ const onChange = (page, pageSize) => {
+
+	 emit('onChange', page, pageSize)
+	 // getList()
+	 // setTimeout(() => {
+		//  paginationRef.value?.focus();
+	 // }, 0);
+ }
+ onMounted(()=>{
+
+	 console.log('什么参水呢',props.modelValue)
+	 emit('onInit')
+ })
+</script>
+<style scoped >
+
+</style>

+ 4 - 1
src/views/forum/addForum.vue

@@ -62,6 +62,7 @@
 								:options="usertypeOptions"
 								:filter-option="filterOption"
 							></a-select>
+<!--							<SelectorList></SelectorList>-->
 						</a-form-item>
 					</a-col>
 					<a-col :span="24">
@@ -85,6 +86,7 @@
 	import tool from '@/utils/tool'
 	import forumApi from '@/api/forum/forumApi'
 	import XnEditor from '@/components/Editor/index.vue'
+	import SelectorList from '@/components/SelectorList/index.vue'
 	import Bowser from 'bowser'
 	import { useRoute, useRouter } from 'vue-router'
 	import sysConfig from '@/config/index'
@@ -183,7 +185,7 @@
 
 	// 验证并提交数据
 	const onSubmit = () => {
-		submitLoading.value = true
+
 		formRef.value.validate().then(() => {
 			if (formData.value.appointUserArr && formData.value.appointUserArr.length > 1) {
 				formData.value.appointUser = formData.value.appointUserArr.join(',')
@@ -201,6 +203,7 @@
 					...errorVal.value
 				}
 			}
+			submitLoading.value = true
 			forumApi
 				.submitForm(params)
 				.then(() => {

+ 39 - 13
src/views/forum/form.vue

@@ -36,16 +36,23 @@
 				</a-col>
 				<a-col :span="8">
 					<a-form-item label="指向:" name="appointUserArr">
-						<a-select
-							v-model:value="formData.appointUserArr"
-							mode="multiple"
-							show-search
-							placeholder="请选择"
-							style="width: 100%"
-							:options="usertypeOptions"
-							:filter-option="filterOption"
-						></a-select>
+<!--						<a-select-->
+<!--							v-model:value="formData.appointUserArr"-->
+<!--							mode="multiple"-->
+<!--							show-search-->
+<!--							placeholder="请选择"-->
+<!--							style="width: 100%"-->
+<!--							:options="usertypeOptions"-->
+<!--							:filter-option="filterOption"-->
+<!--						></a-select>-->
 						<!-- @popupScroll="popupScroll" -->
+					<SelectorList  v-model="formData.appointUserArr"
+								   mode="multiple"
+								   :options="usertypeOptions"
+								   :total="userTotal"
+									@onInit="onInit"
+								   @onChange="onChange"
+					></SelectorList>
 					</a-form-item>
 				</a-col>
 				<a-col :span="24">
@@ -68,6 +75,7 @@
 	import tool from '@/utils/tool'
 	import forumApi from '@/api/forum/forumApi'
 	import XnEditor from '@/components/Editor/index.vue'
+	import SelectorList from '@/components/SelectorList/index.vue'
 	const userInfo = tool.data.get('USER_INFO')
 	const typeOptions = ref([])
 	// 默认是关闭状态
@@ -77,8 +85,13 @@
 	const treeData = ref([])
 	// 表单数据,也就是默认给一些数据
 	const formData = ref({
-		postType: 0
+		postType: 0,
+		appointUserArr : []
 	})
+
+	watch(() => formData.value.appointUserArr, (newVal) => {
+		console.log('等眼看着外面:', newVal);
+	}, { deep: true });
 	// 默认展开的节点(顶级)
 	const defaultExpandedKeys = ref([0])
 	const submitLoading = ref(false)
@@ -89,7 +102,7 @@
 		return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
 	}
 	const userPagination = ref({
-		size: 99999999,
+		size: 10,
 		current: 1
 	})
 	const userTotal = ref(0)
@@ -105,6 +118,7 @@
 				}
 			})
 			usertypeOptions.value = add ? [...usertypeOptions.value, ...userList] : userList
+			console.log('是打开我 我是人员列表',usertypeOptions.value)
 		})
 	}
 	const popupScroll = (el) => {
@@ -116,6 +130,15 @@
 			}
 		}
 	}
+	const onInit = () =>{
+
+	}
+	const onChange = ( page, pageSize) =>{
+		userPagination.value.size = pageSize
+		userPagination.value.current = page
+		getUserAllList()
+	}
+
 	// 打开抽屉
 	const onOpen = (record, module) => {
 		moduleId.value = module
@@ -129,12 +152,14 @@
 				}
 			})
 		})
+		console.log('是打开我',record, module)
 		getUserAllList()
 		if (module) {
-			if (record?.appointUser) {
-				record.appointUserArr = record.appointUser.split(',')
+			if (record?.appointUserId) {
+				record.appointUserArr = record.appointUserId.split(',')
 			}
 			formData.value = Object.assign(formData.value, record)
+			console.log('是打开我 要去放进去',formData.value)
 		}
 	}
 	// 关闭抽屉
@@ -164,6 +189,7 @@
 				.submitForm(formData.value, formData.value.postId)
 				.then(() => {
 					onClose()
+					submitLoading.value = false
 					emit('successful')
 				})
 				.finally(() => {

+ 1 - 1
src/views/student/classCentre/rightMenu.vue

@@ -138,7 +138,7 @@
 						'_blank'
 					)
 				} else {
-					message.error(`没有${event.key == 5 ? '测' : '作业'}`)
+					message.error(`没有${event.key == 5 ? '测' : '作业'}`)
 				}
 
 				break