yangg 2 өдөр өмнө
parent
commit
829197cf19

+ 53 - 19
src/views/system/devicemaintenance/crud.tsx

@@ -129,24 +129,6 @@ export const createCrudOptions = function ({ crudExpose,  dialogId,
 						rules: [{ required: true, message: '' }],
 					}
 				},
-				
-				device_code:{
-					title: '设备编号',
-					type: 'input',
-					column: {
-						show:true,
-						minWidth: 120,
-					},
-					form: {
-						show:true,
-						component: { placeholder: '请填写设备编号' },
-						rules: [{ required: true, message: '请填写设备编号' }],
-					},
-					viewForm:{
-						component: { placeholder: '' },
-						rules: [{ required: true, message: '' }],
-					}
-				},
 				device:{
 					title: '设备名称',
 					type: 'dict-select',
@@ -160,7 +142,38 @@ export const createCrudOptions = function ({ crudExpose,  dialogId,
 						label: 'name',
 					}),
 					form: {
-						component: { placeholder: '请填写设备名称' },
+						component: { placeholder: '请选择设备名称',
+							onChange: async (context: any) => {
+							// 当选择设备时,自动回填设备编号和设备名称
+							console.log("onChange context:", context);
+							
+							// 获取选中的设备ID
+							const selectedDeviceId = context;
+							if (!selectedDeviceId) return;
+							
+							try {
+								// 通过API获取设备详情
+								const response = await request({
+									url: `/api/system/device/${selectedDeviceId}/`,
+									method: 'get'
+								});
+								console.log("response::::",response)
+								if (response.code==2000) {
+									const deviceData = response.data;
+									console.log("设备数据:", deviceData);
+									
+									// 使用 crudExpose 来设置表单数据
+									const formData = crudExpose.getFormData();
+									formData.device_code = deviceData.code;
+									formData.device_name = deviceData.name;
+									crudExpose.setFormData(formData);
+								}
+							} catch (error) {
+								console.error("获取设备信息失败:", error);
+							}
+						},
+						 },
+						
 						rules: [{ required: true, message: '请填写设备名称' }],
 					},
 					editForm:{
@@ -171,6 +184,27 @@ export const createCrudOptions = function ({ crudExpose,  dialogId,
 						rules: [{ required: true, message: '' }],
 					}
 				},
+				device_code:{
+					title: '设备编号',
+					type: 'input',
+					column: {
+						show:true,
+						minWidth: 120,
+					},
+					form: {
+						show:true,
+						component: { placeholder: '请填写设备编号' },
+						rules: [{ required: true, message: '请填写设备编号' }],
+					},
+					editForm:{
+						component: { disabled: true },
+					},
+					viewForm:{
+						component: { placeholder: '' },
+						rules: [{ required: true, message: '' }],
+					}
+				},
+				
 				device_name:{
 					title: '设备名称',
 					type: 'input',

+ 37 - 4
src/views/system/devicemanual/crud.tsx

@@ -1,6 +1,9 @@
 import { AddReq,useCompute, CreateCrudOptionsProps, CreateCrudOptionsRet, UserPageQuery,EditReq ,DelReq,dict} from '@fast-crud/fast-crud';
 import * as api from './api';
 import { auth } from '/@/utils/authFunction';
+import {request} from '/@/utils/service';
+import {Ref} from 'vue'
+import Cookies from 'js-cookie';
 
 const { compute } = useCompute();
 
@@ -96,7 +99,7 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
 					column: {show:false}
 				},
 				device:{
-					title: '设备编号',
+					title: '设备名称',
 					search: {
 						show: false,
 					},
@@ -113,8 +116,38 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
 					}),
 					form: {
 						show:true,
-						component: { placeholder: '请选择设备编号' },
-						rules: [{ required: true, message: '请选择设备编号' }],
+						component: { placeholder: '请选择设备名称',
+							onChange: async (context: any) => {
+								// 当选择设备时,自动回填设备编号和设备名称
+								console.log("onChange context:", context);
+								
+								// 获取选中的设备ID
+								const selectedDeviceId = context;
+								if (!selectedDeviceId) return;
+								
+								try {
+									// 通过API获取设备详情
+									const response = await request({
+										url: `/api/system/device/${selectedDeviceId}/`,
+										method: 'get'
+									});
+									console.log("response::::",response)
+									if (response.code==2000) {
+										const deviceData = response.data;
+										console.log("设备数据:", deviceData);
+										
+										// 使用 crudExpose 来设置表单数据
+										const formData = crudExpose.getFormData();
+										formData.device_code = deviceData.code;
+										formData.device_name = deviceData.name;
+										crudExpose.setFormData(formData);
+									}
+								} catch (error) {
+									console.error("获取设备信息失败:", error);
+								}
+							},
+						 },
+						rules: [{ required: true, message: '请选择设备名称' }],
 					},
 				},
 				article:{
@@ -143,7 +176,7 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
 						minWidth: 120,
 					},
 					form: {
-						show:false,
+						show:true,
 					},
 				},
 				article_title: {//article_title

+ 4 - 3
src/views/system/devicepreserve/crud.tsx

@@ -161,9 +161,10 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
 					}
 				},
 				device:{
-					title: '设备id',
+					title: '设备名称',
 					type: 'dict-select',
 					column: {
+						show:false,
 						minWidth: 120,
 					},
 					dict: dict({
@@ -173,8 +174,8 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
 					}),
 					form: {
 						show:true,
-						component: { placeholder: '请选择设备id' },
-						rules: [{ required: true, message: '请选择设备id' }],
+						component: { placeholder: '请选择设备名称' },
+						rules: [{ required: true, message: '请选择设备名称' }],
 					},
 					viewForm:{
 						component: { placeholder: '' },

+ 4 - 3
src/views/system/devicepreserveplan/crud.tsx

@@ -155,9 +155,10 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
 					}
 				},
 				device:{
-					title: '设备id',
+					title: '设备名称',
 					type: 'dict-select',
 					column: {
+						show:false,
 						minWidth: 120,
 					},
 					dict: dict({
@@ -167,8 +168,8 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
 					}),
 					form: {
 						show:true,
-						component: { placeholder: '请选择设备id' },
-						rules: [{ required: true, message: '请选择设备id' }],
+						component: { placeholder: '请选择设备名称' },
+						rules: [{ required: true, message: '请选择设备名称' }],
 					},
 					viewForm:{
 						component: { placeholder: '' },

+ 8 - 4
src/views/system/home/index.vue

@@ -905,12 +905,16 @@ export default defineComponent({
         				shadowStyle: { color: 'rgba(0,0,0,0.1)' }
 					}
 				},
-				legend: {
+				/* legend: {
+					z: 4,
 					data: ['借用次数', '借用时长'],
-					top: '0',
+					show: true,
+					orient: 'horizontal',
+					left: 'center',
+					bottom: '0',
 					textStyle: { color: '#fff' },
 					itemGap: 20
-				},
+				}, */
 				grid: {
 					left: '40',
 					right: '40',
@@ -1217,7 +1221,7 @@ export default defineComponent({
 			const isFullscreen = document.fullscreenElement !== null;
 			const windowHeight = window.innerHeight;
 			
-			let chartHeight = '100%';
+			let chartHeight = '400px';
 			let marginTop = '30px';
 			
 			// 全屏状态下调整图表样式