瀏覽代碼

no message

kllay 1 天之前
父節點
當前提交
81b8359a04

+ 67 - 19
src/views/system/borrow/component/ClassroomBorrow/index.vue

@@ -120,25 +120,24 @@
 </template>
 
 <script setup lang="ts">
-import { ref, watch, defineProps, defineEmits, onMounted, computed } from 'vue';
+import { ref, watch, defineProps, defineEmits, onMounted, computed,inject,Ref, } from 'vue';
 import SelectDeviceDialog from '../SpecialBorrow/SelectDeviceDialog/index.vue';
 import timetablemanage from '../../../timetablemanage/index.vue';
 import * as apis from '../../../timetablemanage/api';
 import { provide } from 'vue';
 import dayjs from 'dayjs';
 import { ElMessage } from 'element-plus';
-
+import { cloneDeep } from 'lodash-es';
 
 provide('isEmbedded', true);
 provide('onCourseSelected', handleCourseSelected);
 
-const props = defineProps<{ visible: boolean; modelValue?: any }>();
-const emit = defineEmits(['update:visible', 'update:modelValue', 'submit']);
+const props = defineProps<{ visible: boolean; modelValue?: any ; lastFormSnapshot: Record<string, any>;}>();
+const emit = defineEmits(['update:visible', 'update:modelValue', 'submit','update:lastFormSnapshot']);
 const visible = ref(props.visible);
 const formRef = ref();
 
 
-const lastFormSnapshot = ref<any>(null);
 
 function handleUploadSuccess(response, file, fileList) {
 	// eslint-disable-next-line no-console
@@ -153,7 +152,7 @@ function handleUploadError(err, file, fileList) {
 
 function handleCourseSelected({ course_id, course_Name,expected_start_time }) {
 	// eslint-disable-next-line no-console
-	// console.log("course_name:::",course_Name)
+  console.log("kebiao=form.value.expected_start_time:::",form.value.expected_start_time)
   form.value.purpose = course_Name;
   form.value.expected_start_time = expected_start_time;
 }
@@ -191,15 +190,16 @@ function onCourseChange(selectedName: string) {
     form.value.teacher_name = selectedCourse.teacher_name;
     form.value.classroom = selectedCourse.classroom;
   }
+  console.log("form.value.expected_start_time ::",form.value.expected_start_time );
 }
 
 function getStartTime(time: number): string {
   const timeMap = {
-    1: '09:00',
-    2: '14:00',
-    3: '19:00'
+    1: '09:00:00',
+    2: '14:00:00',
+    3: '19:00:00'
   };
-  return timeMap[time] || '09:00';
+  return timeMap[time] || '09:00:00';
 }
 
 
@@ -213,7 +213,7 @@ const form = ref({
 	app_user_borrower: 1,
 	borrower_dept: '',
 	team_type: 1,
-	team_members_count: 1,
+	team_members_count: 2,
 	team_members: '',
 	expected_start_time:'',
     expected_end_time: "",
@@ -227,6 +227,49 @@ const showSelectDeviceDialog = ref(false);
 const isViewMode = computed(() => props.modelValue?.mode === 'view');
 
 
+const rules = {
+  emergency_contact: [
+    { required: true, message: '请输入借用人', trigger: 'change' },
+  ],
+  app_user_borrower: [
+    { required: true, message: '请输入学号或工号', trigger: 'change' },
+  ],
+  emergency_phone: [
+    { required: true, message: '请输入联系电话', trigger: 'change' },
+  ],
+  team_members_count: [
+  	{ required: true, message: '请输入团队人数', trigger: 'change' },
+	{
+		validator: (_rule, value, callback) => {
+		if (value <= 1) {
+			callback(new Error('团队人数必须大于 1'));
+		} else {
+			callback();
+		}
+		},
+		trigger: 'change'
+	}
+	],
+  borrower_dept: [
+    { required: true, message: '请输入借用部门', trigger: 'change' },
+  ],
+  expected_end_time: [
+    { required: true, message: '请输选择归还时间', trigger: 'change' },
+  ],
+  team_members:[
+    { required: true, message: '请输入团队其他人员名单', trigger: 'change' },
+  ],
+  team_type: [
+    { required: true, message: '请选择个人或者团队', trigger: 'change' },
+  ],
+  purpose: [
+    { required: true, message: '请输入借用原因', trigger: 'change' },
+  ],
+  applicant_remark: [
+    { required: true, message: '请输入备注', trigger: 'change' },
+  ],
+};
+
 onMounted(() => {
 	try {
 		const userInfo = JSON.parse(sessionStorage.getItem('userInfo') || '{}');
@@ -267,14 +310,17 @@ function resetForm() {
 
 watch(() => props.visible, (v) => {
   visible.value = v;
+//   console.log("快照visible.value::",visible.value)
   if (v) {
-    if (lastFormSnapshot.value) {
-      form.value = { ...lastFormSnapshot.value };
+    if (props.lastFormSnapshot) {
+	  console.log("快照lastFormSnapshot.value::",props.lastFormSnapshot )
+      form.value = { ...props.lastFormSnapshot };
     } else {
+		// console.log("没有快照lastFormSnapshot.value::",props.lastFormSnapshot )
       resetForm(); // 如果没有快照,初始化表单
     }
   }
-});
+}, { immediate: true });
 
 
 watch(
@@ -314,15 +360,17 @@ function onSave() {
             }));
 			const firstLocation = form.value.items[0]?.location || '';
             form.value.return_location = firstLocation;
-			form.value.expected_start_time = now;
+			// form.value.expected_start_time = now;
+			form.value.expected_start_time = form.value.expected_start_time ? form.value.expected_start_time : now;
 			form.value.expected_end_time = dayjs(form.value.expected_end_time).format('YYYY-MM-DD HH:mm:ss')|| now;
-			form.value.team_members_count=Number(form.value.team_members_count)||1;
+			form.value.team_members_count=Number(form.value.team_members_count)||2;
 			emit('submit', { ...form.value });
 			emit('update:visible', false);
-			// ElMessage.success("添加成功!");
-			lastFormSnapshot.value = { ...form.value }; //用于记忆上次记录
+			// ElMessage.success("添加成功!");	
+			emit('update:lastFormSnapshot', cloneDeep(form.value));
+
 		}
 	});
 }
-const rules = {};
+
 </script>

+ 1 - 1
src/views/system/borrow/component/SpecialBorrow/index.vue

@@ -332,7 +332,7 @@ function onSubmit() {
             form.value.return_location = firstLocation;
 			form.value.expected_start_time = now;
 			form.value.expected_end_time = dayjs(form.value.expected_end_time).format('YYYY-MM-DD HH:mm:ss')|| now;
-			form.team_members_count=Number(form.team_members_count)||1;
+			form.team_members_count=Number(form.value.team_members_count)||1;
 			emit('submit', { ...form.value });
 			emit('update:visible', false);
 			ElMessage.success("添加成功!");

+ 2 - 15
src/views/system/borrow/crud.tsx

@@ -6,22 +6,9 @@ const { compute } = useCompute();
 
 export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet {
 	const pageRequest = async (query: UserPageQuery) => {
-		try {
-			const res = await api.GetList(query);
-			return {
-				...res,
-				records: res.data,
-				total: res.total,
-			};
-		} catch (error) {
-			return {
-				code: 2000,
-				msg: 'success',
-				records: [],
-				total: 0,
-			};
-		}
+		return await api.GetList(query);
 	};
+		
 	const editRequest = async ({ form, row }: EditReq) => {
 		form.id = row.id;
 		return await api.UpdateObj(form);

+ 11 - 4
src/views/system/borrow/index.vue

@@ -7,6 +7,8 @@
 			v-if="showClassroomBorrowDialog"
 			v-model:visible="showClassroomBorrowDialog"
 			:modelValue="borrowForm"
+			:lastFormSnapshot="lastFormSnapshot"
+			@update:lastFormSnapshot="val => lastFormSnapshot = val"
 			@submit="handleBorrowSubmit"
 		/>
 		<SpecialBorrow v-if="showSpecialBorrowDialog" v-model:visible="showSpecialBorrowDialog" :modelValue="borrowForm" @submit="handleBorrowSubmit" />
@@ -15,7 +17,7 @@
 	</fs-page>
 </template>
 <script lang="ts" setup name="borrow">
-import { ref, onMounted, onBeforeUnmount,nextTick  } from 'vue';
+import { ref, onMounted, onBeforeUnmount,nextTick ,provide } from 'vue';
 import { useFs } from '@fast-crud/fast-crud';
 import { createCrudOptions } from './crud';
 // import { GetPermission } from './api';
@@ -41,6 +43,11 @@ const showSettlementDialog = ref(false);
 
 
 
+
+// const lastFormSnapshot = ref({});
+// provide('lastFormSnapshot', lastFormSnapshot);
+
+
 function onBorrowTypeSelected(type: number, mode: 'view' | 'edit' | 'add' |'collect',record?: any) {
 	showBorrowTypeDialog.value = false;
 	// 初始化表单数据,带上所选借用性质
@@ -63,10 +70,10 @@ function onBorrowTypeSelected(type: number, mode: 'view' | 'edit' | 'add' |'coll
 async function handleBorrowSubmit(formData: any) {
 	try {
 		await api.AddObj(formData);
-		showCommonBorrowDialog.value = false;
-		// 刷新列表
-		crudRef.value && crudRef.value.doRefresh && crudRef.value.doRefresh();
+		// showCommonBorrowDialog.value = false;
 		ElMessage.success('保存成功');
+		// 刷新列表
+		crudRef.value && crudRef.value.doRefresh && crudRef.value.doRefresh();	
 		crudExpose.doRefresh();
 
 	} catch (e) {