Browse Source

修改内容

qaz 21 hours ago
parent
commit
a466914610

+ 1 - 1
.env.development

@@ -5,7 +5,7 @@ ENV = 'development'
 #线下:http://192.168.100.187:8083
 # 本地环境接口地址 121.36.251.245
 
-VITE_API_URL = 'http://1.94.168.85:8086'
+VITE_API_URL = 'http://192.168.100.101:8086'
 # VITE_API_URL = 'http://192.168.100.187:9084'
 # VITE_API_URL = 'https://backend.qicai321.com'
 VITE_API_WX_URL='https://api.weixin.qq.com/'

+ 1 - 1
src/views/system/borrow/api.ts

@@ -29,7 +29,7 @@ export function AddObj(obj: AddReq) {
 
 export function UpdateObj(obj: EditReq) {
 	return request({
-		url: apiPrefix + obj.id + '/',
+		url:`/api/system/borrow/application/${obj.id}/`, //+ obj.id + '/',
 		method: 'put',
 		data: obj
 	});

+ 10 - 4
src/views/system/borrow/component/ClassroomBorrow/index.vue

@@ -454,6 +454,7 @@ function addItem() {
 function onDeviceSelected(devices) {
 	form.value.items.push(
 		...devices.map((d) => ({
+			device_category: d.category,
 			device: d.id,
 			remark: d.category_name,
 			quantity: 1,
@@ -478,15 +479,20 @@ 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 = 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)||2;
-			emit('submit', { ...form.value });
+			
+			// 添加mode和id信息
+			const submitData = {
+				...form.value,
+				mode: isEdit.value ? 'edit' : 'add',
+				id: isEdit.value ? props.modelValue?.id : undefined
+			};
+			
+			emit('submit', submitData);
 			emit('update:visible', false);
-			// ElMessage.success("添加成功!");	
 			emit('update:lastFormSnapshot', cloneDeep(form.value));
-
 		}
 	});
 }

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

@@ -9,7 +9,7 @@
 			<el-table-column type="index" label="序号" width="60" />
 			<el-table-column prop="name" label="设备名称" />
 			<el-table-column prop="inventory.available_quantity" label="可用数量" />
-		<!-- 	<el-table-column prop="category_name" label="设备分类" /> -->
+			<el-table-column prop="category_name" label="设备分类" />
 			<el-table-column prop="warehouse" label="存放仓库" />
 		</el-table>
 		<el-pagination

+ 47 - 3
src/views/system/borrow/component/CollectEquipment/index.vue

@@ -73,7 +73,7 @@
                     <div style="margin: 16px 0 8px 0; font-weight: bold"> {{ isCollect ? '借用明细表' : '归还明细表' }}</div>
                     <el-table :data="form.items" border style="width: 100%; margin-bottom: 12px">
                         <el-table-column type="index" label="序号" width="60" />
-                        <el-table-column prop="remark" label="设备分类" />
+                        <el-table-column prop="device_category_name" label="设备分类" />
                         <!-- <el-table-column prop="quantity" label="借用数量" /> -->
                         <el-table-column :label="isCollect ? '借用数量' : '归还数量'">
                         <template #default="{ row }">
@@ -247,13 +247,34 @@
                     <el-col :span="8">
                         <div style="font-weight: bold; margin-bottom: 8px">当前状态</div>
                         <el-input v-model="form.status_label"  :disabled="true" placeholder="" style="width: 150px" />
-                        <el-button type="primary" style="margin-left: 16px" @click="clickReturn">归还</el-button>
+                      <el-button type="primary" style="margin-left: 16px" @click="clickReturn" :disabled="form.status_label=='已归还'">归还</el-button>
                     </el-col>
                     <el-col :span="24" style="margin-top: 16px">
                         <div style="font-weight: bold; margin-bottom: 8px">备注</div>
                         <el-input v-model="returnRemark" type="textarea" placeholder="请输入备注" />
                     </el-col>
                 </el-row>
+                <el-row :gutter="16" style="margin-top: 16px">
+                    <el-col :span="24">
+                        <div style="font-weight: bold; margin-bottom: 8px">异常记录 <span>{{ 0 }}</span> 条</div>
+                        <el-table v-if="returnAbnormalList.length > 0" :data="returnAbnormalList" border style="width: 100%">
+                            <el-table-column type="index" label="序号" width="60" align="center" />
+                            <el-table-column prop="borrowNo" label="借用单编号" align="center" />
+                            <el-table-column prop="borrower" label="借用人" align="center" />
+                            <el-table-column prop="time" label="发生时间" align="center" />
+                            <el-table-column prop="type" label="异常类型" align="center">
+                                <template #default="{ row }">
+                                    <el-tag :type="row.type === '逾期' ? 'danger' : 'warning'">{{ row.type }}</el-tag>
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="operation" label="操作" align="center" width="80">
+                                <template #default="{ row }">
+                                    <el-button type="text" @click="handleView(row)">查看</el-button>
+                                </template>
+                            </el-table-column>
+                        </el-table>
+                    </el-col>
+                </el-row>
             </el-form>
         </el-tab-pane>
         </el-tabs>
@@ -478,6 +499,10 @@ const abnormalList = ref([
         type: '损坏'
     } */
 ]);
+/* 归还设备异常记录 */
+const returnAbnormalList = ref([
+    
+]);
 
 // 查看异常记录详情
 const handleView = (row: any) => {
@@ -520,6 +545,7 @@ function onDeviceSelected(devices: Device[]) {
         borrow_count: 1,
         brand: d.brand || '',
         model: d.model || '',
+        device_specification: d.device_specification || '',
         warehouse: d.warehouse
       }))
     );
@@ -754,7 +780,25 @@ function onSubmit() {
         // 准备结算单数据
         settlementData.value = {
           ...form.value,
-          items: deviceList.value,
+          items: deviceList.value.map(item => ({
+            ...item,
+            device_category_name: item.device_type,
+            device_name: item.device_name,
+            device_specification: item.device_specification,
+            device_storage_location: item.warehouse,
+            remark: item.device_type,
+            quantity: item.borrow_count,
+            device_id: item.device_no,
+            device_category: item.device_type,
+            device_code: item.device_no,
+            borrow_type: form.value.borrow_type,
+            /* borrow_type_label: form.value.borrow_type_label,
+            borrower_info: form.value.borrower_info, */
+            borrower_dept: form.value.borrower_dept,
+            emergency_contact: form.value.emergency_contact,
+            emergency_phone: form.value.emergency_phone,
+            team_type: form.value.team_type,
+          })),
           accessory_info: accessoryInfo.value,
           remark: remark.value,
           expected_start_time: dayjs().format('YYYY-MM-DD HH:mm:ss')

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

@@ -7,7 +7,7 @@
 		<el-table :data="tableData" border style="width: 100%" @selection-change="onSelectionChange" ref="tableRef">
 			<el-table-column type="selection" width="50" />
 			<el-table-column type="index" label="序号" width="60" />
-			<el-table-column prop="name" label="设备名称" />
+			<el-table-column prop="name" label="设备分类" />
 			<el-table-column prop="inventory.available_quantity" label="可用数量" />
 		<!-- 	<el-table-column prop="category_name" label="设备分类" /> -->
 			<el-table-column prop="warehouse" label="存放仓库" />

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

@@ -370,6 +370,7 @@ function onSubmit() {
 			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.value.team_members_count)||1;
+			form.value.mode = isEdit.value ? 'edit' : 'add';
 			emit('submit', { ...form.value });
 			emit('update:visible', false);
 			ElMessage.success("添加成功!");

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

@@ -64,16 +64,22 @@ function onBorrowTypeSelected(type: number, mode: 'view' | 'edit' | 'add' |'coll
 
 async function handleBorrowSubmit(formData: any) {
 	try {
-		await api.AddObj(formData);
-		// showCommonBorrowDialog.value = false;
-		ElMessage.success('保存成功');
+		if (formData.mode === 'edit') {
+			await api.UpdateObj(formData);
+			ElMessage.success('编辑成功');
+		} else {
+			await api.AddObj(formData);
+			ElMessage.success('添加成功');
+		}
+		
 		// 刷新列表
 		crudRef.value && crudRef.value.doRefresh && crudRef.value.doRefresh();	
 		crudExpose.doRefresh();
 
 	} catch (e) {
 		// 错误处理
-		console.error('提交失败', e);
+		console.error(formData.mode === 'edit' ? '编辑失败' : '提交失败', e);
+		ElMessage.error(formData.mode === 'edit' ? '编辑失败' : '提交失败');
 	}
 }