Преглед изворни кода

fix: 优化部分页面的代码报红提示

yanglzh пре 1 година
родитељ
комит
a4ac122f3f

+ 1 - 1
src/views/iot/alarm/log/component/detail.vue

@@ -24,7 +24,7 @@
           {{ ruleForm.createdAt }}
         </el-form-item>
         <el-form-item label="告警数据">
-          <JsonViewer style="width:100%;" :value="jsonData" boxed sort theme="jv-dark" @click="onKeyclick" />
+          <JsonViewer style="width:100%;" :value="jsonData" boxed sort theme="jv-dark" />
         </el-form-item>
 
         <el-form-item label="处理意见">

+ 1 - 1
src/views/iot/alarm/log/component/edit.vue

@@ -56,7 +56,7 @@ export default defineComponent({
 		});
 
 		// 打开弹窗
-		const openDialog = (row: RuleFormState | null) => {
+		const openDialog = (row: any) => {
 			resetForm();
 			api.log.detail(row.id).then((res: any) => {
 				state.ruleForm.id = res.data.id;

+ 4 - 4
src/views/iot/device/channel/component/detail.vue

@@ -42,13 +42,13 @@
 						<el-table-column label="操作" align="center" width="200">
 							<template #default="{ row, $index }">
 								<el-button type="primary" size="small" @click="handleUpdate(row)"> 详情 </el-button>
-								<el-button v-if="row.status != 'deleted'" size="small" type="danger" @click="handleDelete(row, $index)"> 删除 </el-button>
+								<el-button v-if="row.status != 'deleted'" size="small" type="danger" @click="handleDelete(row)"> 删除 </el-button>
 							</template>
 						</el-table-column>
 					</el-table>
 
 					<pagination v-if="total > 0" :total="total" v-model:page="listQuery.page" v-model:limit="listQuery.size" @pagination="getList()" />
-					<TaskDialog ref="taskDialog" :formatOptions="formatOptions" @finish="getList(1)" />
+					<TaskDialog ref="taskDialog" :formatOptions="formatOptions" @finish="getList()" />
 				</el-tab-pane>
 				<el-tab-pane label="通道码流" name="3">
 					<div>
@@ -65,7 +65,7 @@
 </template>
 
 <script lang="ts">
-import { ElMessage } from 'element-plus';
+import { ElMessage, ElMessageBox } from 'element-plus';
 import api from '/@/api/device/modbus';
 import getOrigin from '/@/utils/origin';
 import TaskDialog from './taskDialog.vue';
@@ -168,7 +168,7 @@ export default {
 				});
 		},
 		handleDelete(row: any) {
-			this.$confirm('是否确认删除任务名称为"' + row.Job.title + '"的数据项?', '警告', {
+			ElMessageBox.confirm('是否确认删除任务名称为"' + row.Job.title + '"的数据项?', '警告', {
 				confirmButtonText: '确定',
 				cancelButtonText: '取消',
 				type: 'warning',

+ 5 - 3
src/views/iot/device/channel/component/taskDialog.vue

@@ -29,6 +29,7 @@
 </template>
 
 <script lang="ts">
+import { PropType } from 'vue';
 import api from '/@/api/device/modbus';
 import { ElMessage } from 'element-plus';
 
@@ -37,6 +38,7 @@ export default {
 	props: {
 		formatOptions: {
 			default: () => [],
+			type: Array as PropType<any[]>
 		},
 	},
 	data() {
@@ -57,17 +59,17 @@ export default {
 			},
 			dialogVisible: false,
 			listLoading: false,
-			dialogStatus: '',
+			dialogStatus: 'update' as 'update' | 'create',
 			textMap: {
 				update: '任务详情',
 				create: '添加任务',
 			},
-			templateOptions: '',
+			templateOptions: [] as any[],
 		};
 	},
 
 	methods: {
-		openDialog({ dialogStatus, row, deviceNumber }) {
+		openDialog({ dialogStatus, row, deviceNumber }: any) {
 			this.dialogStatus = dialogStatus;
 			this.temp.deviceNumber = deviceNumber;
 			if (row) {

+ 6 - 6
src/views/iot/device/instance/component/edit.vue

@@ -66,13 +66,13 @@
           <el-input v-model="intro" type="textarea" placeholder="请输入设备说明"></el-input>
         </el-form-item>
         <el-form-item label="设备图片">
-<!--					<upload-vue :imgs="phone" @set-imgs="setImgsPhone" :limit="deviceImgLimit"></upload-vue>-->
+          <!--					<upload-vue :imgs="phone" @set-imgs="setImgsPhone" :limit="deviceImgLimit"></upload-vue>-->
           <uploadVue :img="phone" @set-imgs="setImgsPhone"></uploadVue>
-				</el-form-item>
+        </el-form-item>
         <el-form-item label="证书图片">
-<!--					<upload-vue :imgs="certificate" @set-imgs="setImgsCertificate" :limit="deviceImgLimit"></upload-vue>-->
+          <!--					<upload-vue :imgs="certificate" @set-imgs="setImgsCertificate" :limit="deviceImgLimit"></upload-vue>-->
           <uploadVue :img="certificate" @set-imgs="setImgsCertificate"></uploadVue>
-				</el-form-item>
+        </el-form-item>
       </el-form>
       <template #footer>
         <span class="dialog-footer">
@@ -90,7 +90,7 @@
 import { reactive, toRefs, defineComponent, ref, unref, nextTick, onMounted } from 'vue';
 import api from '/@/api/device';
 import apiSystem from '/@/api/system';
-import {ElMessage, UploadProps} from "element-plus";
+import { ElMessage, UploadProps } from "element-plus";
 import tagVue from './tag.vue';
 import Map from './map.vue';
 import UploadVue from '/@/components/upload/index.vue';
@@ -163,7 +163,7 @@ export default defineComponent({
     const formRef = ref<HTMLElement | null>(null);
     const tagRef = ref<HTMLElement | null>(null);
     const mapRef = ref();
-    const certList = ref([])
+    const certList = ref<any[]>([])
     const state = reactive<DicState>({
       isShowDialog: false,
       product: {},

+ 6 - 10
src/views/iot/device/instance/component/list.vue

@@ -27,21 +27,15 @@
 </template>
 
 <script lang="ts">
-import { reactive, toRefs, defineComponent, ref, unref } from 'vue';
+import { reactive, toRefs, defineComponent, ref } from 'vue';
 import { Close } from '@element-plus/icons-vue';
-
 import api from '/@/api/device';
-import { ElMessage } from 'element-plus';
-
-interface DicState {
-	isShowDialog: boolean;
-}
 
 export default defineComponent({
 	name: 'deviceEditPro',
 	setup(prop, { emit }) {
 		const formRef = ref<HTMLElement | null>(null);
-		const state = reactive<DicState>({
+		const state = reactive({
 			isShowDialog: false,
 			dialogFullScreen: false,
 			tableData: {
@@ -51,13 +45,13 @@ export default defineComponent({
 				param: {
 					pageNum: 1,
 					pageSize: 10,
-          deviceKey: '',
+					deviceKey: '',
 					propertyKey: '',
 				},
 			},
 		});
 		// 打开弹窗
-		const openDialog = (row: RuleFormState | null, deviceKey) => {
+		const openDialog = (row: any, deviceKey: string) => {
 			resetForm();
 			if (row) {
 				state.tableData.param.deviceKey = deviceKey;
@@ -85,6 +79,8 @@ export default defineComponent({
 				param: {
 					pageNum: 1,
 					pageSize: 10,
+					deviceKey: '',
+					propertyKey: '',
 				},
 			}
 		};

+ 4 - 4
src/views/iot/device/instance/component/map.vue

@@ -62,7 +62,7 @@ const openDialog = (row: any) => {
     const { BMapGL: theBMapGL, centerPoint } = await initMap()
 
     BMapGL = theBMapGL
-    
+
     map = new BMapGL.Map(mapContainer.value!);
 
     // 如果添加了经纬度则进入地图后还原上次地址
@@ -132,7 +132,7 @@ const setAddressByCoordinate = (lng: string | number, lat: string | number) => {
   // 创建地理编码实例, 并配置参数获取乡镇级数据
   const myGeo = new BMapGL.Geocoder({ extensions_town: true });
   // 根据坐标得到地址描述
-  myGeo.getLocation(new BMapGL.Point(lng, lat), function (result) {
+  myGeo.getLocation(new BMapGL.Point(lng, lat), function (result: any) {
     if (result) {
       address.value = result.content.poi_desc;
       if (oldAddress.value) {
@@ -141,7 +141,7 @@ const setAddressByCoordinate = (lng: string | number, lat: string | number) => {
     }
   });
 
-  // TODO旧查询经纬度方法
+  // 旧查询经纬度方法
   // const point = new BMapGL.Point(lng, lat);
   // const geocoder = new BMapGL.Geocoder();
   // geocoder.getPoint(point, (pointResult: any) => {
@@ -175,7 +175,7 @@ const searchByCoordinate = () => {
 const searchByKeyword = (keyword?: string) => {
   if (keyword) {
     const localSearch = new BMapGL.LocalSearch(map);
-    localSearch.setSearchCompleteCallback((searchResult) => {
+    localSearch.setSearchCompleteCallback((searchResult: any) => {
       if (searchResult) {
         const poi = searchResult.getPoi(0);
         if (poi) {

+ 1 - 2
src/views/iot/device/instance/component/setAttr.vue

@@ -53,7 +53,6 @@ const loading = ref(false)
 const typeData = ref<any[]>([])
 
 const form = {
-
   "key": "",
   "name": "",
   "accessMode": 0,
@@ -65,7 +64,7 @@ const form = {
   "value": ""
 }
 
-const data = reactive({
+const data = reactive<any>({
   ...form
 })
 

+ 2 - 4
src/views/iot/device/instance/component/subDeviceMutipleBind.vue

@@ -114,14 +114,12 @@ export default defineComponent({
 				state.tableData.data = res.device;
 				state.tableData.total = res.Total;
 			}).finally(() => (state.tableData.loading = false));
-
 		};
 
 		const getProductList = () => {
 			api.product.getSubList().then((res: any) => {
-				let productDataList = res.product
-				state.productData = productDataList;
-				state.ruleForm.productKey = state.productData[0].key
+				state.productData = res.product;
+				state.ruleForm.productKey = res.product[0].key
 				getDeviceList()
 				state.isShowDialog = true;
 			});

+ 1 - 1
src/views/iot/device/instance/component/tag.vue

@@ -23,7 +23,7 @@
 <script lang="ts" setup>
 import { reactive, ref, getCurrentInstance } from 'vue';
 
-const { proxy } = getCurrentInstance()
+const { proxy } = getCurrentInstance() as any
 
 interface Tag {
   key: string;

+ 10 - 10
src/views/iot/device/product/component/typeItem.vue

@@ -83,16 +83,16 @@ import { Plus, Minus, Right } from '@element-plus/icons-vue';
 import TypeItem from './typeItem.vue';
 
 interface IValyeType {
-  type: string;
-  min?: string;
-  max?: string;
-  unit?: string;
-  decimals?: string;
-  trueText?: string;
-  falseText?: string;
-  trueValue?: string;
-  falseValue?: string;
-  maxLength?: string;
+  type: string | null;
+  min?: string | null;
+  max?: string | null;
+  unit?: string | null;
+  decimals?: string | null;
+  trueText?: string | null;
+  falseText?: string | null;
+  trueValue?: string | null;
+  falseValue?: string | null;
+  maxLength?: string | null;
   elements: { text: string, value: string }[];
   elementType?: IValyeType;
   properties: { key: string, name: string, desc: string, valueType: IValyeType }[];

+ 3 - 3
src/views/iot/device/template/component/dataAreaDialog.vue

@@ -42,7 +42,7 @@
 			</el-table-column>
 			<el-table-column label="操作" align="center" width="180px">
 				<template #default="{ row, $index }">
-					<el-button type="primary" size="small" @click="handleSubmit(row, $index)"> 保存 </el-button>
+					<el-button type="primary" size="small" @click="handleSubmit(row)"> 保存 </el-button>
 					<el-button type="danger" size="small" @click="handleDelete(row, $index)"> 删除 </el-button>
 				</template>
 			</el-table-column>
@@ -52,7 +52,7 @@
 
 <script lang="ts">
 import api from '/@/api/device/modbus';
-import { ElMessage } from 'element-plus';
+import { ElMessage, ElMessageBox } from 'element-plus';
 
 export default {
 	props: {
@@ -99,7 +99,7 @@ export default {
 			});
 		},
 		handleDelete(row: any, index: number) {
-			this.$confirm('是否确认删除数据区名称为"' + row.name + '"的数据项?', '警告', {
+			ElMessageBox.confirm('是否确认删除数据区名称为"' + row.name + '"的数据项?', '警告', {
 				confirmButtonText: '确定',
 				cancelButtonText: '取消',
 				type: 'warning',

+ 3 - 3
src/views/iot/device/template/component/deviceTemplateDialog.vue

@@ -108,7 +108,7 @@ import api from '/@/api/device/modbus';
 export default {
 	props: {
 		templateNumber: String,
-		mode: String,
+		mode: Number,
 	},
 	data() {
 		return {
@@ -120,7 +120,7 @@ export default {
 				page: 1,
 				size: 20,
 				template_number: '',
-			},
+			} as any,
 			temp: {
 				title: '',
 				unit: '',
@@ -198,7 +198,7 @@ export default {
 			// this.listQuery.page = 1
 			this.getList();
 		},
-		handleDelete(row) {
+		handleDelete(row: any) {
 			this.$confirm('是否确认删除变量名称为"' + row.title + '"的数据项?', '警告', {
 				confirmButtonText: '确定',
 				cancelButtonText: '取消',

+ 2 - 2
src/views/iot/device/template/component/edit.vue

@@ -55,7 +55,7 @@ export default {
 				mode: [{ required: true, message: '请选择模式', trigger: 'change' }],
 			},
 			dialogVisible: false,
-			dialogStatus: '',
+			dialogStatus: 'update' as 'update' | 'create',
 			textMap: {
 				update: '模板详情',
 				create: '添加模板',
@@ -72,7 +72,7 @@ export default {
 	},
 
 	methods: {
-		open(dialogStatus: string, row: any) {
+		open(dialogStatus: 'update' | 'create', row: any) {
 			this.dialogStatus = dialogStatus;
 			this.tabsKey = Date.now();
 			this.dialogVisible = true;