Просмотр исходного кода

设备管理产品列表修改详情字体大小

yukai 3 лет назад
Родитель
Сommit
12e7d5ccbc

+ 3 - 2
src/views/device/product/component/editAttr.vue

@@ -157,7 +157,6 @@
 				<el-form-item label="是否只读" prop="accessMode">
 					<el-radio-group v-model="ruleForm.accessMode" >
 						<el-radio label="0">读写</el-radio>
-
 						<el-radio label="1">只读</el-radio>
 					</el-radio-group>
 				</el-form-item>
@@ -277,7 +276,7 @@ export default defineComponent({
 				console.log(productId);
 				state.typeData = datat || [];
 			});
-	
+			state.ruleForm = row;
 			if (row.valueType) {	
 				state.ruleForm = row;
 
@@ -287,6 +286,8 @@ export default defineComponent({
 				state.ruleForm.type = row.valueType.type;
 				state.type = row.valueType.type ;
 			}
+
+			
 			state.isShowDialog = true;
 		};
 		const resetForm = () => {

+ 21 - 4
src/views/device/product/component/editEvent.vue

@@ -11,14 +11,14 @@
 
                 <el-form-item label="事件级别" prop="level">
 					<el-radio-group v-model="ruleForm.level" >
-						<el-radio label="0">普通</el-radio>
+						<el-radio :label="0">普通</el-radio>
 
-						<el-radio label="1">警告</el-radio>
-						<el-radio label="2">紧急</el-radio>
+						<el-radio :label="1">警告</el-radio>
+						<el-radio :label="2">紧急</el-radio>
 					</el-radio-group>
 				</el-form-item>
 
-				<el-form-item label="输出参数" prop="type" required>
+				<el-form-item label="输出参数" prop="type" >
 					<el-select v-model="valueType.type" placeholder="请选择数据类型" @change="seletChange">
 						<el-option-group v-for="group in typeData" :key="group.label" :label="group.label">
 							<el-option v-for="item in group.options" :key="item.type" :label="item.title" :value="item.type" />
@@ -289,6 +289,19 @@ export default defineComponent({
 				state.ruleForm.valueType.type = row.valueType.type;
 				state.ruleForm.type = row.valueType.type;
 				state.type = row.valueType.type ;
+				state.ruleForm.accessMode=row.accessMode
+				if(row.valueType.elementType){
+					state.elementType=row.valueType.elementType;
+					state.types = row.valueType.elementType.type;
+				}
+
+				if (row.type == 'enum') {
+							state.enumdata = row.valueType.elements;;
+				}
+
+				if (row.type == 'object') {
+					state.jsondata = row.valueType.properties;
+				}
 			}
 			state.isShowDialog = true;
 		};
@@ -305,6 +318,10 @@ export default defineComponent({
 
 				desc: '',
 			};
+				state.type="";
+			state.types="";
+			state.valueType = {};
+			state.elementType={};
 		};
 
 		const seletChange = (val) => {

+ 55 - 29
src/views/device/product/component/editTab.vue

@@ -9,7 +9,7 @@
 					<el-input v-model="ruleForm.name" placeholder="请输入标签定义名称" />
 				</el-form-item>
 
-				<el-form-item label="数据类型" prop="type" required>
+				<el-form-item label="数据类型" prop="type">
 					<el-select v-model="valueType.type" placeholder="请选择数据类型" @change="seletChange">
 						<el-option-group v-for="group in typeData" :key="group.label" :label="group.label">
 							<el-option v-for="item in group.options" :key="item.type" :label="item.title" :value="item.type" />
@@ -131,7 +131,6 @@
 					</el-form-item>
 				</div>
 
-				
 				<el-form-item label="JSON对象" prop="maxLength" v-if="types == 'object'">
 					<div v-for="(item, index) in jsondata" :key="index" class="jslist">
 						<div class="jsonlist">
@@ -155,10 +154,10 @@
 				<!--根据数据类型输出不同表单-->
 
 				<el-form-item label="是否只读" prop="accessMode">
-					<el-radio-group v-model="ruleForm.accessMode" >
-						<el-radio label="0">读写</el-radio>
+					<el-radio-group v-model="ruleForm.accessMode">
+						<el-radio :label="0">读写</el-radio>
 
-						<el-radio label="1">只读</el-radio>
+						<el-radio :label="1">只读</el-radio>
 					</el-radio-group>
 				</el-form-item>
 				<el-form-item label="标签定义描述	" prop="desc">
@@ -188,6 +187,7 @@ import { ElMessage, UploadProps } from 'element-plus';
 interface RuleFormState {
 	id: number;
 	productId: number;
+	accessMode: number;
 	name: string;
 	dictType: string;
 	valueType: Object;
@@ -212,14 +212,14 @@ export default defineComponent({
 			typeData: [], //
 			type: '',
 			types: '',
-			productId:0,
+			productId: 0,
 			valueType: {
 				type: '',
 				maxLength: '',
-				trueText:'是',
-				trueValue:'true',
-				falseText:'否',
-				falseValue:'false',
+				trueText: '是',
+				trueValue: 'true',
+				falseText: '否',
+				falseValue: 'false',
 			},
 			elementType: {
 				type: '',
@@ -235,8 +235,8 @@ export default defineComponent({
 			jsondata: [],
 
 			ruleForm: {
-				id:0,
-				productId:0,
+				id: 0,
+				productId: 0,
 				name: '',
 				key: '',
 				transportProtocol: '',
@@ -254,12 +254,11 @@ export default defineComponent({
 				key: [{ required: true, message: '标签定义标识不能为空', trigger: 'blur' }],
 				accessMode: [{ required: true, message: '请选择是否只读', trigger: 'blur' }],
 				type: [{ required: true, message: '请选择数据类型', trigger: 'blur' }],
-				
 			},
 		});
 
 		// 打开弹窗
-		const openDialog = (row: RuleFormState | null,productId:number | null) => {
+		const openDialog = (row: RuleFormState | null, productId: number | null) => {
 			resetForm();
 
 			api.product.getDataType({ status: -1 }).then((res: any) => {
@@ -273,20 +272,34 @@ export default defineComponent({
 						datat[index]['options'] = item;
 					}
 				});
-				console.log(row);
-				console.log(productId);
+
 				state.typeData = datat || [];
 			});
 			state.ruleForm = row;
-			if (row.valueType) {	
+			if (row.valueType) {
 				state.ruleForm = row;
 
-				state.productId=productId;
+				state.productId = productId;
 				state.valueType = row.valueType;
 				state.ruleForm.valueType.type = row.valueType.type;
 				state.ruleForm.type = row.valueType.type;
-				state.type = row.valueType.type ;
+				state.type = row.valueType.type;
+				state.ruleForm.accessMode = row.accessMode;
+				if (row.valueType.elementType) {
+					state.elementType = row.valueType.elementType;
+					state.types = row.valueType.elementType.type;
+				}
+
+				if (row.type == 'enum') {
+					state.enumdata = row.valueType.elements;
+				}
+
+				if (row.type == 'object') {
+					state.jsondata = row.valueType.properties;
+				}
 			}
+
+			console.log(row);
 			state.isShowDialog = true;
 		};
 		const resetForm = () => {
@@ -294,7 +307,7 @@ export default defineComponent({
 				name: '',
 				key: '',
 				transportProtocol: '',
-				accessMode: '0',
+				accessMode: 0,
 				status: 1,
 				valueType: {
 					type: '',
@@ -303,13 +316,16 @@ export default defineComponent({
 
 				desc: '',
 			};
+			state.type = '';
+			state.types = '';
+			state.valueType = {};
+			state.elementType = {};
 		};
 
 		const seletChange = (val) => {
 			state.type = val;
 			state.ruleForm.type = val;
-		
-			
+
 			console.log(val);
 		};
 		const seletChanges = (val) => {
@@ -330,15 +346,13 @@ export default defineComponent({
 
 		const deljson = (index) => {
 			state.jsondata.splice(index, 1);
-		}
+		};
 
 		const addJson = () => {
 			editOptionRef.value.openDialog({ product_id: 0, id: 0 });
 		};
 		const getOptionData = (data) => {
 			state.jsondata.push(data);
-
-			console.log(state.jsondata);
 		};
 		// 关闭弹窗
 		const closeDialog = () => {
@@ -366,11 +380,18 @@ export default defineComponent({
 
 						if (state.type == 'array') {
 							state.valueType.elementType = state.elementType;
+							//如果是选中数组,并选择了枚举
+							if(state.types=='enum'){
+								state.valueType.elementType = {
+									elements: state.enumdata,
+									type: 'enum'
+								}
+							}
 						}
-
-
 						state.ruleForm.valueType = state.valueType;
-						state.ruleForm.productId = state.productId
+						state.ruleForm.productId = state.productId;
+
+						console.log(state.ruleForm);
 						api.model.tagedit(state.ruleForm).then(() => {
 							ElMessage.success('标签定义类型修改成功');
 							closeDialog(); // 关闭弹窗
@@ -388,9 +409,14 @@ export default defineComponent({
 
 						if (state.type == 'array') {
 							state.valueType.elementType = state.elementType;
+							//如果是选中数组,并选择了枚举
+							if(state.types=='enum'){
+								state.valueType.elementType = {
+									elements: state.enumdata
+								}
+							}
 						}
 
-
 						state.ruleForm.valueType = state.valueType;
 						api.model.tagadd(state.ruleForm).then(() => {
 							ElMessage.success('标签定义类型添加成功');

+ 3 - 3
src/views/device/product/detail.vue

@@ -270,7 +270,7 @@ export default defineComponent({
 
 			//打开添加属性弹窗
 		const onOpenEditAttr = () => {
-			editAttrRef.value.openDialog({ product_id: route.params.id, id: 0 });
+			editAttrRef.value.openDialog({ product_id: route.params.id, id: 0,accessMode:0 });
 		};
 
 		//打开添加功能弹窗
@@ -279,12 +279,12 @@ export default defineComponent({
 		};
 		//打开添加事件弹窗
 		const onOpenEditEvent = () => {
-			editEventRef.value.openDialog({ product_id: route.params.id, id: 0 });
+			editEventRef.value.openDialog({ product_id: route.params.id, id: 0,level:0 });
 		};
 
 		//打开添加事件弹窗
 		const onOpenEditTab = () => {
-			editTabRef.value.openDialog({ product_id: route.params.id, id: 0 });
+			editTabRef.value.openDialog({ product_id: route.params.id, id: 0,accessMode:0 });
 		};
 
 		// 打开修改产品弹窗

+ 2 - 1
src/views/device/product/index.vue

@@ -66,7 +66,8 @@
         <!-- <el-table-column prop="createdAt" label="创建时间" align="center" width="180"></el-table-column> -->
         <el-table-column label="操作" width="300" align="center">
           <template #default="scope">
-		     <router-link :to="'/device/product/detail/' + scope.row.id" class="link-type" style="padding-right: 10px;color: #409eff;">
+		     <router-link :to="'/device/product/detail/' + scope.row.id" class="link-type" style="padding-right: 10px;
+    font-size: 12px;color: #409eff;">
               <span>详情</span>
             </router-link>
             <el-button size="small" text type="warning" @click="onOpenEditDic(scope.row)">修改</el-button>