Prechádzať zdrojové kódy

fix: 修复部分页面变量无引用问题,修复系统通知页面删除报错操作

yanglzh 2 rokov pred
rodič
commit
c45090dc12

+ 1 - 1
src/api/message/index.ts

@@ -6,7 +6,7 @@ export default {
   // 一键清空消息
   clear: () => get('/system/message/clear'),
   // 批量删除消息
-  del: (ids: number[]) => del('/system/message/del', ids),
+  del: (ids: number[]) => del('/system/message/del', { ids }),
   // 获取消息列表
   getList: (data: object) => get('/system/message/list', data),
   // 阅读消息

+ 49 - 33
src/views/iot/alarm/setting/component/edit.vue

@@ -8,7 +8,7 @@
 
 				<el-form-item label="告警级别" prop="level">
 					<el-radio-group v-model="ruleForm.level">
-						<el-radio :label="item.level" v-for="item in levelData">{{ item.name }}</el-radio>
+						<el-radio :label="item.level" v-for="item in levelData" :key="item.level">{{ item.name }}</el-radio>
 					</el-radio-group>
 				</el-form-item>
 
@@ -32,11 +32,11 @@
 
 				<el-form-item label="触发方式" prop="triggerType" v-if="ruleForm.productKey">
 					<el-radio-group v-model="ruleForm.triggerType" @change="getRadio()">
-						<el-radio :label="item.type" v-for="item in typeData">{{ item.title }}</el-radio>
+						<el-radio :label="item.type" v-for="item in typeData" :key="item.type">{{ item.title }}</el-radio>
 					</el-radio-group>
 				</el-form-item>
 
-				<el-form-item label="选择事件" prop="eventKey" v-if="ruleForm.triggerType===4">
+				<el-form-item label="选择事件" prop="eventKey" v-if="ruleForm.triggerType === 4">
 					<el-select v-model="ruleForm.eventKey" filterable placeholder="请选择事件" @change="eventTypeChange">
 						<el-option v-for="item in eventList" :key="item.key" :label="item.name" :value="item.key"></el-option>
 					</el-select>
@@ -46,7 +46,9 @@
 				<div class="box-content">
 					<div v-for="(item, index) in requestParams" :key="index">
 						<div style="text-align: center" v-if="index > 0">
-							<el-icon><Top /></el-icon>
+							<el-icon>
+								<Top />
+							</el-icon>
 							<div>
 								<el-select v-model="item.andOr" placeholder="选择条件关系">
 									<el-option label="无" :value="0" />
@@ -54,20 +56,22 @@
 									<el-option label="或" :value="2" />
 								</el-select>
 							</div>
-							<el-icon><Bottom /></el-icon>
+							<el-icon>
+								<Bottom />
+							</el-icon>
 						</div>
 
-						<div
-							style="
+						<div style="
 								padding: 10px;
 								border: 1px solid var(--next-border-color-light);
 								background-color: var(--next-border-color-light);
 								margin-bottom: 10px;
 								position: relative;
-							"
-						>
+							">
 							<div class="conicon" style="width: 100%; text-align: right; position: absolute; right: -8px; top: -8px; color: red">
-								<el-icon @click="delParams(index)"><CircleClose /></el-icon>
+								<el-icon @click="delParams(index)">
+									<CircleClose />
+								</el-icon>
 							</div>
 
 							<div style="display: flex">
@@ -76,7 +80,9 @@
 
 							<div v-for="(aaa, bbb) in item.filters" :key="bbb">
 								<div style="text-align: center" v-if="bbb > 0">
-									<el-icon><Top /></el-icon>
+									<el-icon>
+										<Top />
+									</el-icon>
 									<div>
 										<el-select v-model="aaa.andOr" placeholder="选择条件关系" style="width: 150px">
 											<el-option label="无" :value="0" />
@@ -84,10 +90,12 @@
 											<el-option label="或" :value="2" />
 										</el-select>
 									</div>
-									<el-icon><Bottom /></el-icon>
+									<el-icon>
+										<Bottom />
+									</el-icon>
 								</div>
 								<div class="content-f">
-									<el-select v-model="aaa.key" :placeholder="ruleForm.triggerType  ===  4 && !ruleForm.eventKey ? '请先选择事件' : '选择参数'" style="width: 320px">
+									<el-select v-model="aaa.key" :placeholder="ruleForm.triggerType === 4 && !ruleForm.eventKey ? '请先选择事件' : '选择参数'" style="width: 320px">
 										<el-option v-for="a in triData" :key="a.paramKey" :label="a.title" :value="a.paramKey" />
 									</el-select>
 									<el-select v-model="aaa.operator" placeholder="选择操作符" style="width: 320px">
@@ -96,7 +104,9 @@
 									<el-input v-model="aaa.value" placeholder="请输入条件值" style="width: 320px" />
 
 									<div class="conicon">
-										<el-icon @click="delParamss(index, bbb)"><Delete /></el-icon>
+										<el-icon @click="delParamss(index, bbb)">
+											<Delete />
+										</el-icon>
 									</div>
 								</div>
 							</div>
@@ -110,17 +120,17 @@
 				<el-divider content-position="left">执行动作</el-divider>
 				<div class="box-content">
 					<div v-for="(item, index) in action" :key="index">
-						<div
-							style="
+						<div style="
 								padding: 10px;
 								border: 1px solid var(--next-border-color-light);
 								background-color: var(--next-border-color-light);
 								margin-bottom: 10px;
 								position: relative;
-							"
-						>
+							">
 							<div class="conicon" style="width: 100%; text-align: right; position: absolute; right: -8px; top: -8px; color: red">
-								<el-icon @click="delAction(index)"><CircleClose /></el-icon>
+								<el-icon @click="delAction(index)">
+									<CircleClose />
+								</el-icon>
 							</div>
 
 							<div style="display: flex">
@@ -141,10 +151,12 @@
 							<div>
 								<div style="display: flex; margin-bottom: 10px" v-for="(ph, phindex) in item.addressee" :key="phindex">
 									<el-input v-model="ph.phone" placeholder="请输入接收人信息" style="width: 320px" />
-									<el-icon style="width: 32px; height: 32px; font-size: 24px" v-if="phindex == 0" @click="AddPhone(index)"><CirclePlus /></el-icon>
-									<el-icon style="width: 32px; height: 32px; font-size: 24px" v-if="phindex > 0" @click="DelPhone(index, phindex)"
-										><Remove
-									/></el-icon>
+									<el-icon style="width: 32px; height: 32px; font-size: 24px" v-if="phindex == 0" @click="AddPhone(index)">
+										<CirclePlus />
+									</el-icon>
+									<el-icon style="width: 32px; height: 32px; font-size: 24px" v-if="phindex > 0" @click="DelPhone(index, phindex)">
+										<Remove />
+									</el-icon>
 								</div>
 							</div>
 						</div>
@@ -170,7 +182,7 @@ import alarm from '/@/api/alarm';
 import notice from '/@/api/notice';
 
 import { ElMessage } from 'element-plus';
-import { Delete, Plus, CircleClose, Top, Bottom, Minus, Right, CirclePlus, Remove } from '@element-plus/icons-vue';
+import { Delete, CircleClose, Top, Bottom, CirclePlus, Remove } from '@element-plus/icons-vue';
 
 interface RuleFormState {
 	id: number;
@@ -202,7 +214,7 @@ interface DicState {
 
 export default defineComponent({
 	name: 'Edit',
-	components: { Delete, Plus, CircleClose, Minus, Right, Top, Bottom, CirclePlus, Remove },
+	components: { Delete, CircleClose, Top, Bottom, CirclePlus, Remove },
 
 	setup(prop, { emit }) {
 		const myRef = ref<HTMLElement | null>(null);
@@ -299,7 +311,7 @@ export default defineComponent({
 							state.sendGatewayData[index] = res.Data;
 						});
 
-						if(value.noticeConfig){
+						if (value.noticeConfig) {
 							notice.template.configIddetail(value.noticeConfig).then((res: any) => {
 								state.noticeConfigData[index] = [res];
 							});
@@ -407,9 +419,9 @@ export default defineComponent({
 			// 切换产品时候重新获取事件列表,清空之前选中的事件
 			state.ruleForm.eventKey = ''
 
-			iotapi.product.event({key}).then((res: any) => {
+			iotapi.product.event({ key }).then((res: any) => {
 				state.eventList = res || []
-			// state.eventList = [{name: '事件1',  key: 1}]
+				// state.eventList = [{name: '事件1',  key: 1}]
 			})
 		})
 
@@ -521,10 +533,10 @@ export default defineComponent({
 				state.typeData = res.list || [];
 			});
 			gettriData();
-		
+
 		};
 
-		const getRadio=()=>{
+		const getRadio = () => {
 			gettriData();
 		}
 		const gettriData = () => {
@@ -556,7 +568,7 @@ export default defineComponent({
 			// 如果是事件上报,需要传eventKey参数
 			if (triggerType === 4) {
 				form.eventKey = state.ruleForm.eventKey
-				if(!form.eventKey) return
+				if (!form.eventKey) return
 			}
 
 			alarm.common.trigger_params(form).then((res: any) => {
@@ -610,6 +622,7 @@ export default defineComponent({
 .inline {
 	display: inline-flex;
 }
+
 .el-input__wrapper {
 	width: 98%;
 }
@@ -624,9 +637,11 @@ export default defineComponent({
 	display: flex;
 	margin-bottom: 10px;
 }
+
 .content-f .el-input__wrapper {
 	margin-right: 5px;
 }
+
 .addbutton {
 	width: 100%;
 	margin-top: 10px;
@@ -634,6 +649,7 @@ export default defineComponent({
 	border: 1px solid #d1d1d1;
 	color: #8d8b8b;
 }
+
 .conicon {
 	width: 55px;
 	height: 25px;
@@ -642,8 +658,8 @@ export default defineComponent({
 	line-height: 28px;
 	cursor: pointer;
 }
+
 .jv-node {
 	margin-left: 25px;
-}
-</style>
+}</style>
  

+ 2 - 2
src/views/iot/alarm/setting/component/level.vue

@@ -21,7 +21,7 @@
 </template>
 
 <script lang="ts">
-import { reactive, toRefs, defineComponent, ref, unref } from 'vue';
+import { reactive, toRefs, defineComponent, ref } from 'vue';
 import api from '/@/api/alarm';
 import { ElMessage } from 'element-plus';
 
@@ -36,7 +36,7 @@ interface DeptSate {
 
 export default defineComponent({
 	name: 'level',
-	setup(prop, { emit }) {
+	setup() {
 		const formRef = ref<HTMLElement | null>(null);
 		const state = reactive<DeptSate>({
 			isShowDialog: false,

+ 63 - 100
src/views/iot/alarm/setting/index.vue

@@ -3,50 +3,7 @@
 		<el-card shadow="hover">
 			<div class="system-user-search mb15">
 				<el-form :model="tableData.param" ref="queryRef" :inline="true">
-					<!--
-					<el-form-item label="名称" prop="name">
-						<el-input
-							v-model="tableData.param.name"
-							placeholder="请输入模型名称"
-							clearable
-							size="default"
-							style="width: 240px"
-							@keyup.enter.native="dataList"
-						/>
-					</el-form-item> -->
-					<!-- <el-form-item label="触发方式" prop="name">
-						<el-input
-							v-model="tableData.param.triggerType"
-							placeholder="请输入模型名称"
-							clearable
-							size="default"
-							style="width: 240px"
-							@keyup.enter.native="dataList"
-						/>
-					</el-form-item> -->
-					<!-- <el-form-item label="级别" prop="level">
-						<el-input
-							v-model="tableData.param.level"
-							placeholder="请输入模型名称"
-							clearable
-							size="default"
-							style="width: 240px"
-							@keyup.enter.native="dataList"
-						/>
-					</el-form-item> -->
 					<el-form-item>
-						<!-- <el-button size="default" type="primary" class="ml10" @click="dataList">
-							<el-icon>
-								<ele-Search />
-							</el-icon>
-							查询
-						</el-button>
-						<el-button size="default" @click="resetQuery(queryRef)">
-							<el-icon>
-								<ele-Refresh />
-							</el-icon>
-							重置
-						</el-button> -->
 						<el-button size="default" type="success" class="ml10" @click="onOpenAdd" v-auth="'add'">
 							<el-icon>
 								<ele-FolderAdd />
@@ -65,18 +22,13 @@
 			<div>
 				<div style="border: 1px solid var(--next-border-color-light)"></div>
 				<el-row>
-					<el-col :span="6" v-for="(item, index) in tableData.data" :key="index"
-						><div class="grid-content card">
+					<el-col :span="6" v-for="(item, index) in tableData.data" :key="index">
+						<div class="grid-content card">
 							<div class="ant-card">
 								<div class="ant-card-body">
 									<div class="pro-table-card-item">
 										<div class="card-item-avatar" v-col="'image'">
-											<img
-												width="88"
-												height="88"
-												src="/src/assets/img/alarm.svg"
-												alt=""
-											/>
+											<img width="88" height="88" src="/src/assets/img/alarm.svg" alt="" />
 										</div>
 										<div class="card-item-body">
 											<div class="card-item-header">
@@ -89,11 +41,11 @@
 												<div>
 													<label>触发:</label>
 													<div class="">
-														<div >级别:</div>
+														<div>级别:</div>
 													</div>
 												</div>
 												<div>
-													<label>{{item.triggerTypeName}}</label>
+													<label>{{ item.triggerTypeName }}</label>
 													<div class="">
 														<div>{{ item.alarmLevel.name }}</div>
 													</div>
@@ -110,17 +62,15 @@
 											</span>
 										</div>
 									</div>
-									<div class="card-state error" v-if="item.status == 0"  v-col="'liststatus'">
+									<div class="card-state error" v-if="item.status == 0" v-col="'liststatus'">
 										<div class="card-state-content">
-											<span class="ant-badge ant-badge-status ant-badge-not-a-wrapper"
-												><span class="ant-badge-status-dot ant-badge-status-error"></span><span class="ant-badge-status-text">未启用</span></span
-											>
+											<span class="ant-badge ant-badge-status ant-badge-not-a-wrapper"><span class="ant-badge-status-dot ant-badge-status-error"></span><span class="ant-badge-status-text">未启用</span></span>
 										</div>
 									</div>
 								</div>
 							</div>
 							<div class="card-tools">
-								<div class="card-button" @click="onOpenEdit(item)"  v-auth="'edit'">
+								<div class="card-button" @click="onOpenEdit(item)" v-auth="'edit'">
 									<el-button size="default" type="primary" class="ml10" text bg>
 										<el-icon>
 											<ele-Edit />
@@ -130,8 +80,8 @@
 								</div>
 
 
-								<div class="card-button" v-if="item.status==0" v-auth="'status'">
-									<el-button size="default" type="warning" text bg  @click="onActionStatus(item)">
+								<div class="card-button" v-if="item.status == 0" v-auth="'status'">
+									<el-button size="default" type="warning" text bg @click="onActionStatus(item)">
 										<el-icon>
 											<ele-Check />
 										</el-icon>
@@ -139,8 +89,8 @@
 									</el-button>
 								</div>
 
-                <div class="card-button" v-if="item.status==1"  v-auth="'status'">
-									<el-button size="default" type="info" text bg  @click="onActionStatus(item)">
+								<div class="card-button" v-if="item.status == 1" v-auth="'status'">
+									<el-button size="default" type="info" text bg @click="onActionStatus(item)">
 										<el-icon>
 											<ele-Close />
 										</el-icon>
@@ -148,9 +98,7 @@
 									</el-button>
 								</div>
 
-
-
-								<div class="card-button" @click="onRowDel(item)"  v-auth="'del'">
+								<div class="card-button" @click="onRowDel(item)" v-auth="'del'">
 									<el-button size="default" type="danger" text bg>
 										<el-icon>
 											<ele-Delete />
@@ -163,13 +111,7 @@
 					</el-col>
 				</el-row>
 			</div>
-			<pagination
-				v-show="tableData.total > 0"
-				:total="tableData.total"
-				v-model:page="tableData.param.pageNum"
-				v-model:limit="tableData.param.pageSize"
-				@pagination="dataList"
-			/>
+			<pagination v-show="tableData.total > 0" :total="tableData.total" v-model:page="tableData.param.pageNum" v-model:limit="tableData.param.pageSize" @pagination="dataList" />
 		</el-card>
 
 		<EditDic ref="editDicRef" @dataList="dataList" />
@@ -210,11 +152,11 @@ interface TableDataState {
 
 export default defineComponent({
 	name: 'setlist',
-	components: { EditDic,LevelDic },
+	components: { EditDic, LevelDic },
 
 	setup() {
 		const addDicRef = ref();
-    const levelDicRef=ref();
+		const levelDicRef = ref();
 		const editDicRef = ref();
 		const detailRef = ref();
 		const queryRef = ref();
@@ -247,10 +189,10 @@ export default defineComponent({
 				.finally(() => (state.tableData.loading = false));
 		};
 		// 打开新增菜单弹窗
-		const onOpenAdd = (row?: TableDataRow) => {
+		const onOpenAdd = () => {
 			editDicRef.value.openDialog();
 		};
-    const onOpenLevel = (row?: TableDataRow) => {
+		const onOpenLevel = () => {
 			levelDicRef.value.openDialog();
 		};
 		// 打开修改模型弹窗
@@ -285,7 +227,6 @@ export default defineComponent({
 						dataList();
 					});
 				})
-				.catch(() => {});
 		};
 
 		// 页面加载时
@@ -298,29 +239,27 @@ export default defineComponent({
 			formEl.resetFields();
 			dataList();
 		};
-    const onActionStatus = (item: TableDataRow[]) => {
-      if (item.status == 0) {
-        alarm.common.deploy({ id: item.id }).then((res: any) => {
-          dataList();
-
-        });
-      } else {
-        alarm.common.undeploy({ id: item.id }).then((res: any) => {
-          dataList();
-
-        });
-      }
-    }
+		const onActionStatus = (item: TableDataRow[]) => {
+			if (item.status == 0) {
+				alarm.common.deploy({ id: item.id }).then(() => {
+					dataList();
+				});
+			} else {
+				alarm.common.undeploy({ id: item.id }).then(() => {
+					dataList();
+				});
+			}
+		}
 
 		return {
-      onActionStatus,
+			onActionStatus,
 			addDicRef,
 			editDicRef,
 			detailRef,
 			queryRef,
-      levelDicRef,
+			levelDicRef,
 			onOpenRecord,
-      onOpenLevel,
+			onOpenLevel,
 			onOpenAdd,
 			onOpenEdit,
 			onRowDel,
@@ -335,9 +274,11 @@ export default defineComponent({
 .el-button.is-text:not(.is-disabled).is-has-bg {
 	background-color: var(--next-border-color-light);
 }
+
 .card {
 	padding: 10px;
 }
+
 .ant-card {
 	box-sizing: border-box;
 	margin: 10px;
@@ -354,28 +295,34 @@ export default defineComponent({
 	transition: all 0.3s;
 	overflow: hidden;
 }
+
 .ant-card-body {
 	padding: 24px;
 	zoom: 1;
 	overflow: hidden;
 }
+
 .pro-table-card-item {
 	display: flex;
 }
+
 .pro-table-card-item .card-item-avatar {
 	margin-right: 16px;
 }
+
 .pro-table-card-item .card-item-body {
 	display: flex;
 	flex-direction: column;
 	flex-grow: 1;
 	width: 0;
 }
+
 .pro-table-card-item .card-item-body .card-item-header {
 	display: flex;
 	margin-bottom: 12px;
 	margin-top: 10px;
 }
+
 .pro-table-card-item .card-item-body .card-item-content {
 	display: flex;
 	flex-wrap: wrap;
@@ -390,10 +337,12 @@ export default defineComponent({
 	text-overflow: ellipsis;
 	word-break: break-all;
 }
+
 .card-item-body .card-item-header .card-item-header-name {
 	font-weight: 700;
 	font-size: 16px;
 }
+
 .card-state {
 	position: absolute;
 	top: 0px;
@@ -405,22 +354,28 @@ export default defineComponent({
 	background-color: rgba(89, 149, 245, 0.15);
 	transform: skewX(45deg);
 }
+
 .card-state.success {
 	background-color: #f6ffed;
 	color: #000;
 }
+
 .iot-card .card-warp .card-content .card-state.error {
-    background-color: rgba(229,0,18,.1);
+	background-color: rgba(229, 0, 18, .1);
 }
+
 .card-state .card-state-content {
 	transform: skewX(-45deg);
 }
+
 .ant-badge-status-success {
 	background-color: #52c41a;
 }
+
 .ant-badge-status-error {
-    background-color: #ff4d4f;
+	background-color: #ff4d4f;
 }
+
 .ant-badge-status-dot {
 	position: relative;
 	top: -1px;
@@ -435,14 +390,17 @@ export default defineComponent({
 	display: flex;
 	margin-top: 2px;
 }
+
 .card-tools .card-button:not(:last-child) {
 	margin-right: 8px;
 }
+
 .card-tools .card-button {
 	display: flex;
 	flex-grow: 1;
 }
-.card-tools .card-button > span,
+
+.card-tools .card-button>span,
 .card-tools .card-button button {
 	width: 100%;
 	border-radius: 0;
@@ -454,10 +412,12 @@ export default defineComponent({
 	background: transparent;
 	box-shadow: none;
 }
+
 .ant-badge-status-text {
 	margin-left: 8px;
 	font-size: 14px;
 }
+
 .ant-btn {
 	line-height: 1.5715;
 	position: relative;
@@ -482,10 +442,12 @@ export default defineComponent({
 	border: 1px solid #d9d9d9;
 	background: #fff;
 }
-.ant-btn > .anticon {
+
+.ant-btn>.anticon {
 	line-height: 1;
 }
-.ant-btn > span {
+
+.ant-btn>span {
 	display: inline-block;
 }
 
@@ -493,14 +455,15 @@ export default defineComponent({
 	display: flex;
 	justify-content: space-between;
 }
+
 .statusname {
 	font-size: 30px;
 	margin-top: 10px;
 	margin-bottom: 15px;
 }
+
 .comtest {
 	margin-top: 20px;
 	height: 30px;
 	line-height: 30px;
-}
-</style>
+}</style>

+ 12 - 149
src/views/iot/certificate/component/editParams.vue

@@ -31,138 +31,6 @@
 				<el-input size="default" type="textarea" :rows="6" v-model="state.ruleForm.description"></el-input>
 			</el-form-item>
 		</el-form>
-		<!-- </el-tab-pane> -->
-		<!-- <el-tab-pane label="字段信息" name="2">
-				<el-table :data="state.columns" style="width: 100%">
-					<el-table-column label="字段描述" align="center" width="150" fixed="left">
-						<template #default="{ row }">
-							<el-input size="default" v-model="row.columnComment" placeholder=""></el-input>
-						</template>
-					</el-table-column>
-					<el-table-column label="序号" type="index" width="60" align="center" />
-					<el-table-column label="字段列名" prop="columnName" width="150"> </el-table-column>
-					<el-table-column label="物理类型" prop="columnType" width="120"> </el-table-column>
-					<el-table-column label="go类型" prop="goType" width="120">
-						<template #default="{ row }">
-							<el-select size="default" v-model="row.goType" placeholder="">
-								<el-option label="int" value="int" />
-								<el-option label="unit" value="unit" />
-								<el-option label="int64" value="int64" />
-								<el-option label="unit64" value="unit64" />
-								<el-option label="float64" value="float64" />
-								<el-option label="string" value="string" />
-								<el-option label="Time" value="Time" />
-								<el-option label="byte" value="byte" />
-							</el-select>
-						</template>
-					</el-table-column>
-					<el-table-column label="go属性" prop="goField" width="150">
-						<template #default="{ row }">
-							<el-input size="default" v-model="row.goField" placeholder=""></el-input>
-						</template>
-					</el-table-column>
-					<el-table-column label="json属性" prop="jsonField" width="150">
-						<template #default="{ row }">
-							<el-input size="default" v-model="row.jsonField" placeholder=""></el-input>
-						</template>
-					</el-table-column>
-					<el-table-column label="插入" prop="isInsert" width="70">
-						<template #default="{ row }">
-							<el-checkbox size="default" v-model="row.isInsert"></el-checkbox>
-						</template>
-					</el-table-column>
-					<el-table-column label="编辑" prop="isEdit" width="70">
-						<template #default="{ row }">
-							<el-checkbox size="default" v-model="row.isEdit"></el-checkbox>
-						</template>
-					</el-table-column>
-					<el-table-column label="列表" prop="isList" width="70">
-						<template #default="{ row }">
-							<el-checkbox size="default" v-model="row.isList"></el-checkbox>
-						</template>
-					</el-table-column>
-					<el-table-column label="查询" prop="isQuery" width="70">
-						<template #default="{ row }">
-							<el-checkbox size="default" v-model="row.isQuery"></el-checkbox>
-						</template>
-					</el-table-column>
-					<el-table-column label="必填" prop="isRequired" width="70">
-						<template #default="{ row }">
-							<el-checkbox size="default" v-model="row.isRequired"></el-checkbox>
-						</template>
-					</el-table-column>
-					<el-table-column label="查询方式" prop="queryType" width="120">
-						<template #default="{ row }">
-							<el-select size="default" v-model="row.queryType" placeholder="">
-								<el-option label="=" value="EQ" />
-								<el-option label="!=" value="NE" />
-								<el-option label=">" value="GT" />
-								<el-option label=">=" value="GTE" />
-								<el-option label="<" value="LT" />
-								<el-option label="<=" value="LTE" />
-								<el-option label="LIKE" value="LIKE" />
-							</el-select>
-						</template>
-					</el-table-column>
-					<el-table-column label="显示类型" prop="htmlType" width="140">
-						<template #default="{ row }">
-							<el-select size="default" v-model="row.htmlType" placeholder="">
-								<el-option label="文本框" value="input" />
-								<el-option label="下拉框" value="select" />
-								<el-option label="开关" value="switch" />
-								<el-option label="单选框" value="radio" />
-								<el-option label="多选框" value="checkbox" />
-								<el-option label="文件选择" value="file" />
-								<el-option label="文本域" value="textarea" />
-								<el-option label="日期控件" value="datetime" />
-							</el-select>
-						</template>
-					</el-table-column>
-					<el-table-column label="字典类型" prop="dictType" width="160">
-						<template #default="{ row }">
-							<el-select size="default" v-model="row.dictType" placeholder="">
-								<el-option v-for="item in []" :key="item.value" :label="item.label" :value="item.value"> </el-option>
-							</el-select>
-						</template>
-					</el-table-column>
-					<el-table-column label="关系表" prop="linkTableName" width="160">
-						<template #default="{ row }">
-							<el-select size="default" v-model="row.linkTableName" placeholder="">
-								<el-option v-for="item in []" :key="item.value" :label="item.label" :value="item.value"> </el-option>
-							</el-select>
-						</template>
-					</el-table-column>
-				</el-table>
-			</el-tab-pane>
-			<el-tab-pane label="生成信息" name="3">
-				<el-form ref="ruleForm" :model="state.ruleForm" label-width="120px">
-					<el-row>
-						<el-col :span="12">
-							<el-form-item label="指定应用名" prop="packageName">
-								<el-input size="default" v-model="state.ruleForm.packageName"></el-input>
-							</el-form-item>
-						</el-col>
-						<el-col :span="12">
-							<el-form-item label="生成模块名" prop="moduleName">
-								<el-input size="default" v-model="state.ruleForm.moduleName"></el-input>
-							</el-form-item>
-						</el-col>
-					</el-row>
-					<el-row>
-						<el-col :span="12">
-							<el-form-item label="生成业务名" prop="businessName">
-								<el-input size="default" v-model="state.ruleForm.businessName"></el-input>
-							</el-form-item>
-						</el-col>
-						<el-col :span="12">
-							<el-form-item label="生成功能名" prop="functionName">
-								<el-input size="default" v-model="state.ruleForm.functionName"></el-input>
-							</el-form-item>
-						</el-col>
-					</el-row>
-				</el-form>
-			</el-tab-pane> -->
-		<!-- </el-tabs> -->
 
 		<template #footer>
 			<div class="dialog-footer">
@@ -174,10 +42,9 @@
 </template>
 
 <script lang="ts" setup>
-import { reactive, ref, unref, getCurrentInstance } from 'vue'
-import { genFileId, FormRules, FormInstance } from 'element-plus'
+import { reactive, ref, getCurrentInstance } from 'vue'
+import { FormInstance } from 'element-plus'
 import uploadFile from '/@/components/upload/uploadFile.vue'
-import type { UploadInstance, UploadProps, UploadRawFile } from 'element-plus'
 
 import api from '/@/api/certificateManagement'
 import { ElMessage } from 'element-plus'
@@ -186,7 +53,6 @@ const emit = defineEmits(['update'])
 
 const ruleForm = ref<FormInstance>()
 
-// const tagOption = ref(['api', 'editVue', 'entity', 'jsApi', 'listVue', 'router', 'service']);
 const state = reactive({
 	dialogVisible: false,
 	activeName: '1',
@@ -416,13 +282,13 @@ const openDialog = (row: any) => {
 }
 
 // 关闭弹窗
-const closeDialog = () => {
-	state.dialogVisible = false
-}
+// const closeDialog = () => {
+// 	state.dialogVisible = false
+// }
 // 取消
-const onCancel = () => {
-	closeDialog()
-}
+// const onCancel = () => {
+// 	closeDialog()
+// }
 
 const submitData = async (formEl: any | undefined) => {
 	if (!formEl) return
@@ -430,7 +296,7 @@ const submitData = async (formEl: any | undefined) => {
 		if (valid) {
 			if (state.ruleForm.id) {
 				// 编辑
-				api.certificateManagement.edit(state.ruleForm).then((res: any) => {
+				api.certificateManagement.edit(state.ruleForm).then(() => {
 					ElMessage.success('证书编辑成功')
 					state.dialogVisible = false
 					emit('update')
@@ -438,21 +304,18 @@ const submitData = async (formEl: any | undefined) => {
 				})
 			} else {
 				// 新增
-				api.certificateManagement.add(state.ruleForm).then((res: any) => {
+				api.certificateManagement.add(state.ruleForm).then(() => {
 					ElMessage.success('证书添加成功')
 					state.dialogVisible = false
 					emit('update')
 					state.ruleForm = {}
 				})
 			}
-		} else {
-			// @ts-ignore
-			console.log('error submit!', fields)
 		}
 	})
 }
 
-const beforePublicUpload = (response: any, file: any, fileList: any) => {
+const beforePublicUpload = (response: any, file: any) => {
 	let reader = new FileReader()
 	reader.readAsText(file[file.length - 1].raw, 'UTF-8') //读取,转换字符编码
 	reader.onload = function (e: any) {
@@ -462,7 +325,7 @@ const beforePublicUpload = (response: any, file: any, fileList: any) => {
 	}
 }
 
-const beforePrivateUpload = (response: any, file: any, fileList: any) => {
+const beforePrivateUpload = (response: any, file: any) => {
 	let reader = new FileReader()
 	reader.readAsText(file[file.length - 1].raw, 'UTF-8') //读取,转换字符编码
 	reader.onload = function (e: any) {

+ 0 - 8
src/views/iot/configuration/screen/edit.vue

@@ -20,19 +20,11 @@
 <script lang="ts" setup>
 import { ref, reactive, nextTick } from 'vue';
 import api from '/@/api/screen';
-import axios from 'axios';
 import { ruleRequired } from '/@/utils/validator';
 import { ElMessage } from 'element-plus';
 
 const emit = defineEmits(['getList']);
 
-const headers = {
-	Authorization: 'Bearer ' + localStorage.token,
-};
-const flowsUrl = window.location.origin + '/rule-engine/flow';
-// const flowsUrl = 'http://zhgy.sagoo.cn/rule-engine/flow';
-
-
 const showDialog = ref(false);
 const formRef = ref();
 

+ 27 - 33
src/views/iot/configuration/screen/index.vue

@@ -3,12 +3,6 @@
     <div class="search">
       <el-form :inline="true">
         <el-form-item>
-          <!-- <el-button size="default" type="primary" class="ml10" @click="getList(1)">
-							<el-icon>
-								<ele-Search />
-							</el-icon>
-							查询
-						</el-button> -->
           <el-button type="success" @click="addOrEdit()">
             <el-icon>
               <ele-FolderAdd />
@@ -61,33 +55,33 @@ const addOrEdit = async (row?: any) => {
   }
 };
 
-const add = async () => {
-  ElMessageBox.prompt('请输入项目名称', '创建大屏项目', {
-    confirmButtonText: '确认',
-    cancelButtonText: '取消',
-    inputValidator: (value: string) => {
-      if (value.trim()) {
-        return true;
-      } else {
-        return '请输入项目名称';
-      }
-    },
-    inputErrorMessage: '请输入描述',
-  }).then(async ({ value: projectName }) => {
-    ElMessageBox.prompt('请输入描述', '创建大屏项目', {
-      confirmButtonText: '确认',
-      cancelButtonText: '取消',
-    }).then(async ({ value: remarks }) => {
-      await api.add({
-        indexImage: null,
-        projectName,
-        remarks,
-      });
-      ElMessage.success('新增成功');
-      getList();
-    });
-  });
-};
+// const add = async () => {
+//   ElMessageBox.prompt('请输入项目名称', '创建大屏项目', {
+//     confirmButtonText: '确认',
+//     cancelButtonText: '取消',
+//     inputValidator: (value: string) => {
+//       if (value.trim()) {
+//         return true;
+//       } else {
+//         return '请输入项目名称';
+//       }
+//     },
+//     inputErrorMessage: '请输入描述',
+//   }).then(async ({ value: projectName }) => {
+//     ElMessageBox.prompt('请输入描述', '创建大屏项目', {
+//       confirmButtonText: '确认',
+//       cancelButtonText: '取消',
+//     }).then(async ({ value: remarks }) => {
+//       await api.add({
+//         indexImage: null,
+//         projectName,
+//         remarks,
+//       });
+//       ElMessage.success('新增成功');
+//       getList();
+//     });
+//   });
+// };
 
 const edit = async (row: any) => {
   const url = import.meta.env.VITE_SCREEN_URL + '#/chart/home/' + row.id;

+ 2 - 4
src/views/iot/device-tree/tree/index.vue

@@ -146,8 +146,7 @@ import { toRefs, reactive, onMounted, ref, defineComponent, getCurrentInstance,
 import { ElMessageBox, ElMessage, FormInstance } from 'element-plus';
 import AddOrUpdate from './component/edit.vue';
 import api from '/@/api/device';
-import LrLayout from '/@/components/lrLayout/index.vue'
-import { Fold, Expand, More, Plus, Edit, Delete, Search } from '@element-plus/icons-vue'
+import { More, Plus, Edit, Delete } from '@element-plus/icons-vue'
 
 // 定义接口来定义对象的类型
 interface TableDataRow {
@@ -182,9 +181,8 @@ interface TableDataState {
 
 export default defineComponent({
   name: 'deviceTree',
-  components: { AddOrUpdate, LrLayout, Fold, Expand, More, Plus, Edit, Delete, Search },
+  components: { AddOrUpdate, More, Plus, Edit, Delete },
   setup() {
-    const { proxy } = getCurrentInstance() as any;
     const addOrUpdateRef = ref();
     const queryRef = ref();
     const state = reactive<TableDataState>({

+ 45 - 47
src/views/iot/device/category/component/edit.vue

@@ -1,55 +1,53 @@
 <template>
-  <div class="system-edit-dept-container">
-    <el-dialog :title="(ruleForm.id?'修改':'添加')+'分类'" v-model="isShowDialog" width="769px">
-      <el-form ref="formRef" :model="ruleForm" :rules="rules" size="default" label-width="90px">
-        <el-row :gutter="35">
-        
-          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
-            <el-form-item label="上级分类">
-              <el-cascader :options="deptData" :props="{ checkStrictly: true,emitPath: false, value: 'id', label: 'name' }" placeholder="请选择分类" clearable class="w100" v-model="ruleForm.parentId">
-                <template #default="{ node, data }">
-                  <span>{{ data.name }}</span>
-                  <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
-                </template>
-              </el-cascader>
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" >
-            <el-form-item label="分类名称" prop="name">
-              <el-input v-model="ruleForm.name" placeholder="请输入分类名称" clearable></el-input>
-            </el-form-item>
-          </el-col>
-		  <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-			<el-form-item label="排序">
-			  <el-input-number v-model="ruleForm.sort" :min="0" controls-position="right" placeholder="请输入排序" class="w100" />
-			</el-form-item>
-		  </el-col>
-           <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
-            <el-form-item label="分类标识" prop="key">
-              <el-input v-model="ruleForm.key" placeholder="请输入分类名称" clearable></el-input>
-            </el-form-item>
-          </el-col>
-         <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
-            <el-form-item label="描述">
-              <el-input v-model="ruleForm.desc" type="textarea" placeholder="请输入描述" maxlength="150"></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <template #footer>
-        <span class="dialog-footer">
-          <el-button @click="onCancel" size="default">取 消</el-button>
-          <el-button type="primary" @click="onSubmit" size="default">{{ruleForm.id?'修 改':'添 加'}}</el-button>
-        </span>
-      </template>
-    </el-dialog>
-  </div>
+	<div class="system-edit-dept-container">
+		<el-dialog :title="(ruleForm.id ? '修改' : '添加') + '分类'" v-model="isShowDialog" width="769px">
+			<el-form ref="formRef" :model="ruleForm" :rules="rules" size="default" label-width="90px">
+				<el-row :gutter="35">
+					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+						<el-form-item label="上级分类">
+							<el-cascader :options="deptData" :props="{ checkStrictly: true, emitPath: false, value: 'id', label: 'name' }" placeholder="请选择分类" clearable class="w100" v-model="ruleForm.parentId">
+								<template #default="{ node, data }">
+									<span>{{ data.name }}</span>
+									<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
+								</template>
+							</el-cascader>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+						<el-form-item label="分类名称" prop="name">
+							<el-input v-model="ruleForm.name" placeholder="请输入分类名称" clearable></el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+						<el-form-item label="排序" prop="sort">
+							<el-input-number v-model="ruleForm.sort" :min="0" controls-position="right" placeholder="请输入排序" class="w100" />
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+						<el-form-item label="分类标识" prop="key">
+							<el-input v-model="ruleForm.key" placeholder="请输入分类名称" clearable></el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+						<el-form-item label="描述" prop="desc">
+							<el-input v-model="ruleForm.desc" type="textarea" placeholder="请输入描述" maxlength="150"></el-input>
+						</el-form-item>
+					</el-col>
+				</el-row>
+			</el-form>
+			<template #footer>
+				<span class="dialog-footer">
+					<el-button @click="onCancel" size="default">取 消</el-button>
+					<el-button type="primary" @click="onSubmit" size="default">{{ ruleForm.id ? '修 改' : '添 加' }}</el-button>
+				</span>
+			</template>
+		</el-dialog>
+	</div>
 </template>
 
 <script lang="ts">
 import { reactive, toRefs, defineComponent, ref, unref } from 'vue';
 import api from '/@/api/device';
-import { phoneValidate } from '/@/utils/validator';
 import { ElMessage } from 'element-plus';
 
 interface RuleFormState {
@@ -101,7 +99,7 @@ export default defineComponent({
 				state.deptData = res.category || [];
 			});
 
-			
+
 			if (row && typeof row === 'object') {
 				state.ruleForm = row;
 			} else if (row && typeof row === 'number') {

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

@@ -171,7 +171,7 @@ export default {
 					this.listLoading = false;
 				});
 		},
-		handleDelete(row: any, index: number) {
+		handleDelete(row: any) {
 			this.$confirm('是否确认删除任务名称为"' + row.Job.title + '"的数据项?', '警告', {
 				confirmButtonText: '确定',
 				cancelButtonText: '取消',
@@ -184,7 +184,7 @@ export default {
 					this.handleFilter();
 					ElMessage.success('删除成功!');
 				})
-				.catch(function () {});
+				.catch(function () { });
 		},
 		handleCreate() {
 			(this.$refs.taskDialog as any).openDialog({
@@ -213,14 +213,14 @@ export default {
 						let content = `${obj.type === 'request' ? '请求:' : '应答:'} ${obj.msg}`;
 						this.$refs.logContainer.insertAdjacentHTML('afterbegin', `<li style="color: ${color}">${content}</li>`);
 					}
-				} catch (e) {
+				} catch (_e) {
 					// @ts-ignore
-					console.log('error', e);
+					// console.log('error', e);
 				}
 			};
-			this.evsrc.onerror = function (ev: any) {
+			this.evsrc.onerror = function (_ev: any) {
 				// @ts-ignore
-				console.log('readyState = ' + ev.currentTarget.readyState);
+				// console.log('readyState = ' + ev.currentTarget.readyState);
 			};
 		},
 		openEv() {

+ 66 - 119
src/views/system/datahub/source/component/edit.vue

@@ -16,31 +16,10 @@
 				<el-form-item label="数据来源" prop="from">
 					<el-radio-group v-model="ruleForm.from">
 						<el-radio :label="1">api导入</el-radio>
-						<!-- <el-radio :label="2">数据库</el-radio>
-						<el-radio :label="3">文件</el-radio> -->
 						<el-radio :label="4">设备</el-radio>
 						<el-radio :label="2">数据库</el-radio>
 					</el-radio-group>
 				</el-form-item>
-
-				<!-- <el-divider content-position="left">规则表达式</el-divider>
-
-				<div v-for="(item, index) in rule" :key="index">
-					<el-form-item label="正则表达式">
-						<el-input v-model="item.expression" placeholder="请输入正则表达式" />
-					</el-form-item>
-
-					<el-form-item label="替换内容">
-						<el-input v-model="item.replace" placeholder="请输入替换内容" class="w-35" />
-		
-						<div class="conicon">
-							<el-icon @click="delRule(index)" v-if="index > 0"><Delete /></el-icon>
-						</div>
-					</el-form-item>
-				</div>
-				<div style="padding: 10px">
-					<el-button type="primary" class="addbutton" @click="addRule">增加</el-button>
-				</div> -->
 				<el-divider content-position="left">数据源配置</el-divider>
 
 				<div v-if="ruleForm.from == 1">
@@ -57,43 +36,17 @@
 					<el-form-item label="定时请求">
 						<div style="display:flex">
 							<el-input v-model="config.cronExpression" placeholder="请输入cron表达式" />
-							<el-button type="success"  @click="showCron('config')" style="    margin-left: 5px;">设置</el-button>
+							<el-button type="success" @click="showCron('config')" style="    margin-left: 5px;">设置</el-button>
 
 						</div>
-						<!-- <ul style="list-style: none">
-							<li>
-								<el-icon><ele-WarningFilled /></el-icon> */5 * * * * ? : 每隔5秒执行一次
-							</li>
-							<li>
-								<el-icon><ele-WarningFilled /></el-icon> 20 */1 * * * ? : 每隔1分钟执行一次
-							</li>
-							<li>
-								<el-icon><ele-WarningFilled /></el-icon> 30 0 23 * * ? : 每天23点执行一次
-							</li>
-							<li>
-								<el-icon><ele-WarningFilled /></el-icon> 0 0 1 * * ? : 每天凌晨1点执行一次
-							</li>
-							<li>
-								<el-icon><ele-WarningFilled /></el-icon> 0 0 1 1 * ? : 每月1号凌晨1点执行一次
-							</li>
-						</ul> -->
 					</el-form-item>
-
-					<!-- <el-form-item label="更新时间">
-							<el-input v-model="config.interval" placeholder="请输入更新时间" class="w-35" />
-							<el-select v-model="config.intervalUnit" placeholder="请选择单位">
-								<el-option v-for="item in unitData" :key="item.value" :label="item.label" :value="item.value" />
-							</el-select>
-						</el-form-item> -->
-
 					<div class="box-content">
 						<div>
-							<div
-								v-for="(item, index) in requestParams"
-								:key="index"
-								style="padding: 10px; border: 1px solid #eee; margin-bottom: 10px; position: relative">
+							<div v-for="(item, index) in requestParams" :key="index" style="padding: 10px; border: 1px solid #eee; margin-bottom: 10px; position: relative">
 								<div class="conicon" style="width: 100%; text-align: right; position: absolute; right: -8px; top: -8px; color: red">
-									<el-icon @click="delParams(index)"><CircleClose /></el-icon>
+									<el-icon @click="delParams(index)">
+										<CircleClose />
+									</el-icon>
 								</div>
 
 								<div style="display: flex">
@@ -107,16 +60,13 @@
 									<el-input v-model="aaa.key" placeholder="请输入参数名" style="width: 320px" />
 									<el-input v-model="aaa.value" placeholder="请输入参数值" style="width: 320px" />
 									<div class="conicon">
-										<el-icon @click="delParamss(index, bbb)"><Delete /></el-icon>
+										<el-icon @click="delParamss(index, bbb)">
+											<Delete />
+										</el-icon>
 									</div>
 								</div>
 								<el-button type="primary" class="addbutton" @click="addParams(index)">增加</el-button>
 								<div style=""></div>
-								<!-- <el-button type="danger" class="addbutton" @click="delParams(index)">删除分组</el-button> -->
-
-								<!-- <div class="conicon" style="  width: 100%; text-align: right;">
-									<el-icon @click="delParams(index)" style="border: 2px solid rgb(96 98 102);;border-radius: 5px;   "><Minus /></el-icon>
-								</div> -->
 							</div>
 						</div>
 					</div>
@@ -132,22 +82,22 @@
 							</el-option>
 						</el-select>
 					</el-form-item>
-			
+
 				</div>
 
 				<div v-if="ruleForm.from == 2">
 
 					<el-form-item label="数据来源" prop="type">
-					<el-radio-group v-model="tabconfig.type" >
-						<el-radio label="mysql">mysql</el-radio>
-						<el-radio label="mssql">mssql</el-radio>
-					
-					</el-radio-group>
-				</el-form-item>
+						<el-radio-group v-model="tabconfig.type">
+							<el-radio label="mysql">mysql</el-radio>
+							<el-radio label="mssql">mssql</el-radio>
+
+						</el-radio-group>
+					</el-form-item>
 
 					<div class="inline">
-						<el-form-item label="主机地址" >
-							<el-input v-model="tabconfig.host" placeholder="请输入主机地址"   />
+						<el-form-item label="主机地址">
+							<el-input v-model="tabconfig.host" placeholder="请输入主机地址" />
 						</el-form-item>
 
 						<el-form-item label="端口号">
@@ -163,48 +113,40 @@
 							<el-input v-model="tabconfig.passwd" placeholder="请输入密码" />
 						</el-form-item>
 					</div>
-					
-						<el-form-item label="数据库名称">
-							<el-input v-model="tabconfig.dbName" placeholder="请输入数据库名称" />
-						</el-form-item>
 
-						<el-form-item label="执行方式" prop="queryType">
-							<el-radio-group v-model="tabconfig.queryType" >
-								<el-radio label="tableName">数据表</el-radio>
-								<el-radio label="sql">Sql</el-radio>
-							
-							</el-radio-group>
-						</el-form-item>
-						
-						<el-form-item label="">
-							<el-input
-								v-model="tabconfig.tableName"
-								type="textarea"
-								:placeholder="tabconfig.queryType=='sql'?'请输入sql语句':'请输入表名称'"
-							/>
-						</el-form-item>
+					<el-form-item label="数据库名称">
+						<el-input v-model="tabconfig.dbName" placeholder="请输入数据库名称" />
+					</el-form-item>
 
-						<!-- <el-form-item label="表名称">
-							<el-input v-model="tabconfig.tableName" placeholder="请输入表名称" />
-						</el-form-item> -->
+					<el-form-item label="执行方式" prop="queryType">
+						<el-radio-group v-model="tabconfig.queryType">
+							<el-radio label="tableName">数据表</el-radio>
+							<el-radio label="sql">Sql</el-radio>
 
-						<el-form-item label="主键字段">
-							<el-input v-model="tabconfig.pk" placeholder="请输入主键字段" />
-						</el-form-item>
+						</el-radio-group>
+					</el-form-item>
 
-						<el-form-item label="每次获取数量">
-							<el-input v-model="tabconfig.num" placeholder="请输入每次获取数量" />
-						</el-form-item>
+					<el-form-item label="">
+						<el-input v-model="tabconfig.tableName" type="textarea" :placeholder="tabconfig.queryType == 'sql' ? '请输入sql语句' : '请输入表名称'" />
+					</el-form-item>
+
+					<el-form-item label="主键字段">
+						<el-input v-model="tabconfig.pk" placeholder="请输入主键字段" />
+					</el-form-item>
+
+					<el-form-item label="每次获取数量">
+						<el-input v-model="tabconfig.num" placeholder="请输入每次获取数量" />
+					</el-form-item>
 
-						<el-form-item label="任务表达式">
+					<el-form-item label="任务表达式">
 
 						<div style="display:flex">
-								<el-input v-model="tabconfig.cronExpression" placeholder="请输入cron任务表达式" />
-							    <el-button type="success"  @click="showCron('tabconfig')" style="    margin-left: 5px;">设置</el-button>
+							<el-input v-model="tabconfig.cronExpression" placeholder="请输入cron任务表达式" />
+							<el-button type="success" @click="showCron('tabconfig')" style="    margin-left: 5px;">设置</el-button>
 
 						</div>
-							
-						</el-form-item>
+
+					</el-form-item>
 				</div>
 			</el-form>
 			<template #footer>
@@ -259,7 +201,7 @@ interface DicState {
 
 export default defineComponent({
 	name: 'Edit',
-	components: { Delete, Plus, CircleClose, Minus, Right,vue3cron },
+	components: { Delete, Plus, CircleClose, Minus, Right, vue3cron },
 
 	setup(prop, { emit }) {
 		const myRef = ref<HTMLElement | null>(null);
@@ -267,8 +209,8 @@ export default defineComponent({
 		const state = reactive<DicState>({
 			isShowDialog: false,
 			dialogVisible: false,
-			cronShow:false,
-			crontype:'',
+			cronShow: false,
+			crontype: '',
 			config: {},
 			devconfig: {},
 			tabconfig: {},
@@ -507,7 +449,7 @@ export default defineComponent({
 			const formWrap = unref(formRef) as any;
 			if (!formWrap) return;
 			formWrap.validate((valid: boolean) => {
-				
+
 				if (valid) {
 					//修改rule数据
 					// state.rule.forEach((item, index) => {
@@ -522,11 +464,11 @@ export default defineComponent({
 						state.ruleForm.config = state.config;
 					} else if (state.ruleForm.from == 4) {
 						state.ruleForm.config = state.devconfig;
-					}else if (state.ruleForm.from == 2) {
+					} else if (state.ruleForm.from == 2) {
 						state.ruleForm.config = state.tabconfig;
 					}
 
-					
+
 					if (state.ruleForm.sourceId !== 0) {
 						//修改
 
@@ -542,7 +484,7 @@ export default defineComponent({
 								closeDialog(); // 关闭弹窗
 								emit('typeList');
 							});
-						}else if (state.ruleForm.from == 2) {
+						} else if (state.ruleForm.from == 2) {
 							api.common.dbedit(state.ruleForm).then(() => {
 								ElMessage.success('数据源类型修改成功');
 								closeDialog(); // 关闭弹窗
@@ -563,7 +505,7 @@ export default defineComponent({
 								closeDialog(); // 关闭弹窗
 								emit('typeList');
 							});
-						}else if (state.ruleForm.from == 2) {
+						} else if (state.ruleForm.from == 2) {
 							api.common.dbadd(state.ruleForm).then(() => {
 								ElMessage.success('数据源类型添加成功');
 								closeDialog(); // 关闭弹窗
@@ -574,21 +516,21 @@ export default defineComponent({
 				}
 			});
 		};
-		
+
 		const handlelisten = (e) => {
-			if(e.type=='config'){
-				state.config.cronExpression=e.cron
-			}else if(e.type=='tabconfig'){
-				state.tabconfig.cronExpression=e.cron
+			if (e.type == 'config') {
+				state.config.cronExpression = e.cron
+			} else if (e.type == 'tabconfig') {
+				state.tabconfig.cronExpression = e.cron
 			}
 		};
-		const showCron=(type)=>{
-				state.crontype=type
-				state.cronShow=true;
+		const showCron = (type) => {
+			state.crontype = type
+			state.cronShow = true;
 
 		};
-		const cronclose=()=>{
-			state.cronShow=false;
+		const cronclose = () => {
+			state.cronShow = false;
 		}
 
 		return {
@@ -617,9 +559,10 @@ export default defineComponent({
 });
 </script>
 <style>
-.inline{
+.inline {
 	display: inline-flex;
 }
+
 .el-input__wrapper {
 	width: 98%;
 }
@@ -634,9 +577,11 @@ export default defineComponent({
 	display: flex;
 	margin-bottom: 10px;
 }
+
 .content-f .el-input__wrapper {
 	margin-right: 5px;
 }
+
 .addbutton {
 	width: 100%;
 	margin-top: 10px;
@@ -644,6 +589,7 @@ export default defineComponent({
 	border: 1px solid #d1d1d1;
 	color: #8d8b8b;
 }
+
 .conicon {
 	width: 55px;
 	height: 25px;
@@ -652,6 +598,7 @@ export default defineComponent({
 	line-height: 28px;
 	cursor: pointer;
 }
+
 .jv-node {
 	margin-left: 25px;
 }

+ 12 - 7
src/views/system/datahub/source/component/editNode.vue

@@ -3,7 +3,7 @@
 		<el-dialog :title="(ruleForm.nodeId !== 0 ? '修改' : '添加') + '数据节点'" v-model="isShowDialog" width="769px">
 			<el-form :model="ruleForm" ref="formRef" :rules="rules" size="default" label-width="110px">
 				<el-form-item label="数据节点标识" prop="key">
-					<el-input v-model="ruleForm.key" placeholder="请输入数据节点名称" :disabled="detail.lockKey==1 && ruleForm.nodeId !== 0" />
+					<el-input v-model="ruleForm.key" placeholder="请输入数据节点名称" :disabled="detail.lockKey == 1 && ruleForm.nodeId !== 0" />
 				</el-form-item>
 				<el-form-item label="数据节点名称" prop="name">
 					<el-input v-model="ruleForm.name" placeholder="请输入数据节点名称" />
@@ -60,7 +60,9 @@
 						<!-- <el-input v-model="rule[index].params.name" placeholder="请输入键值" class="w-35" />
 						<el-input v-model="rule[index].params.value" placeholder="请输入值" class="w-35" /> -->
 						<div class="conicon">
-							<el-icon @click="delRule(index)" v-if="index > 0"><Delete /></el-icon>
+							<el-icon @click="delRule(index)" v-if="index > 0">
+								<Delete />
+							</el-icon>
 						</div>
 					</el-form-item>
 				</div>
@@ -332,18 +334,18 @@ export default defineComponent({
 		};
 
 		const getNodeList = (e) => {
-			state.propertyData.forEach((item, index) => {
+			state.propertyData.forEach((item) => {
 				if (item.key === e) {
 					state.ruleForm.dataType = item.valueType.type;
 				}
 			});
 		};
 
-		const getDbList = (e)=>{
+		const getDbList = (e) => {
 			state.ruleForm.dataType = state.dbData[e].Type;
 		}
 
-		const onKeyclick = (e) => {
+		const onKeyclick = () => {
 		};
 
 		const jsonPath = (arr, json, basePath) => {
@@ -471,13 +473,16 @@ export default defineComponent({
 	display: flex;
 	margin-bottom: 10px;
 }
+
 .content-f .el-input__wrapper {
 	margin-right: 5px;
 }
+
 .addbutton {
 	width: 100%;
 	margin-top: 10px;
 }
+
 .conicon {
 	width: 55px;
 	height: 25px;
@@ -486,8 +491,8 @@ export default defineComponent({
 	line-height: 28px;
 	cursor: pointer;
 }
+
 .jv-key {
 	cursor: pointer;
 	color: #0034f1;
-}
-</style>
+}</style>

+ 37 - 46
src/views/system/datahub/source/component/list.vue

@@ -1,48 +1,43 @@
 <template>
 	<div class="system-edit-dic-container">
-		<el-dialog  v-model="isShowDialog" :show-close="false"  width="75%" :fullscreen="dialogFullScreen">
-		 <template #header="{ close, titleId, titleClass }">
-      <div class="my-header">
-        <h4 :id="titleId" :class="titleClass">数据记录</h4>
-		 
-		 <div>
-            <i class="iconfont "  :class="!dialogFullScreen ? 'icon-fullscreen' : 'icon-tuichuquanping'"   @click="quanping"  style="font-size: 22px;cursor: pointer;"></i>
-			<i class="el-icon"  @click="close" style="font-size: 22px;cursor: pointer;    margin-left: 10px; position: relative; top: 3px;"><svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" data-v-029747aa=""><path fill="currentColor" d="M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"></path></svg></i>
-			
-		</div>
-      </div>
-    </template>
+		<el-dialog v-model="isShowDialog" :show-close="false" width="75%" :fullscreen="dialogFullScreen">
+			<template #header="{ close, titleId, titleClass }">
+				<div class="my-header">
+					<h4 :id="titleId" :class="titleClass">数据记录</h4>
+					<div>
+						<i class="iconfont " :class="!dialogFullScreen ? 'icon-fullscreen' : 'icon-tuichuquanping'" @click="quanping" style="font-size: 22px;cursor: pointer;"></i>
+						<i class="el-icon" @click="close" style="font-size: 22px;cursor: pointer;    margin-left: 10px; position: relative; top: 3px;"><svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" data-v-029747aa="">
+								<path fill="currentColor"
+									d="M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z">
+								</path>
+							</svg></i>
+					</div>
+				</div>
+			</template>
 
-			<el-table :data="tableData.data" style="width: 100%"  v-loading="tableData.loading">
+			<el-table :data="tableData.data" style="width: 100%" v-loading="tableData.loading">
 				<el-table-column v-for="(item, index) in jData" :key="item" :label="item" :prop="item" show-overflow-tooltip align="center" style="min-width:200px">
 					<template #header>
-					<div >
-						{{item}}
-					</div>
-					<div >
-						<span v-if="item=='created_at'">时间</span>
-						{{titleData[item]}}
-					</div>
-				</template>
+						<div>
+							{{ item }}
+						</div>
+						<div>
+							<span v-if="item == 'created_at'">时间</span>
+							{{ titleData[item] }}
+						</div>
+					</template>
 				</el-table-column>
 			</el-table>
-			<pagination
-				v-show="tableData.total > 0"
-				:total="tableData.total"
-				v-model:page="tableData.param.pageNum"
-				v-model:limit="tableData.param.pageSize"
-				@pagination="typeList"
-			/>
+			<pagination v-show="tableData.total > 0" :total="tableData.total" v-model:page="tableData.param.pageNum" v-model:limit="tableData.param.pageSize" @pagination="typeList" />
 		</el-dialog>
 	</div>
 </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/datahub';
-import { ElMessage } from 'element-plus';
 
 interface DicState {
 	isShowDialog: boolean;
@@ -72,12 +67,12 @@ interface TableDataState {
 
 export default defineComponent({
 	name: 'deviceEditPro',
-	setup(prop, { emit }) {
+	setup() {
 		const formRef = ref<HTMLElement | null>(null);
 		const state = reactive<DicState>({
 			isShowDialog: false,
-		    dialogFullScreen: false,
-			titleData:{},
+			dialogFullScreen: false,
+			titleData: {},
 			jsonsData: [],
 			jData: [],
 			tableData: {
@@ -96,9 +91,6 @@ export default defineComponent({
 			resetForm();
 			if (row) {
 				state.tableData.param.sourceId = row.sourceId;
-
-
-      
 				typeList();
 
 			}
@@ -116,19 +108,18 @@ export default defineComponent({
 				});
 
 				state.tableData.total = res.Total;
-				//state.ruleForm = res.data.dictType
 			}).finally(() => (state.tableData.loading = false));
 
 			api.node.getList(state.tableData.param).then((res: any) => {
 				res.list.forEach((item, index) => {
-						state.titleData[item.key] = item.name;
-					});
+					state.titleData[item.key] = item.name;
+				});
 			});
 		};
 		const resetForm = () => {
 			state.jsonsData = [];
 			state.jData = [];
-			state.tableData= {
+			state.tableData = {
 				data: [],
 				total: 0,
 				loading: false,
@@ -142,8 +133,8 @@ export default defineComponent({
 		const closeDialog = () => {
 			state.isShowDialog = false;
 		};
-		const quanping=()=>{
-			state.dialogFullScreen = state.dialogFullScreen?false:true;
+		const quanping = () => {
+			state.dialogFullScreen = state.dialogFullScreen ? false : true;
 		}
 		// 取消
 		const onCancel = () => {
@@ -151,7 +142,7 @@ export default defineComponent({
 		};
 
 		return {
-            Close,
+			Close,
 			quanping,
 			typeList,
 			openDialog,
@@ -165,8 +156,8 @@ export default defineComponent({
 </script>
 <style scoped>
 .my-header {
-  display: flex;
-  flex-direction: row;
-  justify-content: space-between;
+	display: flex;
+	flex-direction: row;
+	justify-content: space-between;
 }
 </style>

+ 100 - 92
src/views/system/datahub/source/detail.vue

@@ -33,7 +33,7 @@
 						</el-form-item>
 
 
-						<div v-if="detail.from==4">
+						<div v-if="detail.from == 4">
 							<el-divider content-position="left">数据源配置</el-divider>
 							<el-form-item label="设备key:" prop="deviceKey">
 								{{ detail.deviceConfig.deviceKey }}
@@ -81,54 +81,54 @@
 							<el-form-item label="任务表达式:" prop="cronExpression">
 								{{ detail.dbConfig.cronExpression }}
 							</el-form-item>
-						
-						</div>
-						<div  v-if="detail.from == 1">
-
-						<el-divider content-position="left">规则表达式</el-divider>
-
-						<div v-for="(item, index) in rule" :key="index">
-							<el-form-item label="表达式:">
-								{{ item.expression }}
-							</el-form-item>
-
-							<el-form-item label="参数:"> {{ item.params.name }}~ {{ item.params.value }} </el-form-item>
-
-							<el-divider content-position="left">数据源配置</el-divider>
-
-							<el-form-item label="请求方法:" prop="method">
-								{{ config.method }}
-							</el-form-item>
-							<el-form-item label="请求地址:" prop="method">
-								{{ config.url }}
-							</el-form-item>
-							<el-form-item label="更新时间:" prop="method">
-								{{ config.interval }}
-								{{ config.intervalUnit }}
-							</el-form-item>
 
-							<el-divider content-position="left">请求参数</el-divider>
-
-							<div class="content-f" v-for="(item, index) in requestParams" :key="index" style="    border: 1px solid #d9d9d9; padding: 10px;margin-bottom: 10px;">
-								
-								<div v-for="(aa, bb) in item" :key="inbbdex">
-									<el-form-item label="参数类型:">
-										{{ aa.type }}
-									</el-form-item>
-									<el-form-item label="参数标题:">
-										{{ aa.name }}
-									</el-form-item>
-									<el-form-item label="参数名:">
-										{{ aa.key }}
-									</el-form-item>
-									<el-form-item label="参数值:">
-										{{ aa.value }}
-									</el-form-item>
+						</div>
+						<div v-if="detail.from == 1">
+
+							<el-divider content-position="left">规则表达式</el-divider>
+
+							<div v-for="(item, index) in rule" :key="index">
+								<el-form-item label="表达式:">
+									{{ item.expression }}
+								</el-form-item>
+
+								<el-form-item label="参数:"> {{ item.params.name }}~ {{ item.params.value }} </el-form-item>
+
+								<el-divider content-position="left">数据源配置</el-divider>
+
+								<el-form-item label="请求方法:" prop="method">
+									{{ config.method }}
+								</el-form-item>
+								<el-form-item label="请求地址:" prop="method">
+									{{ config.url }}
+								</el-form-item>
+								<el-form-item label="更新时间:" prop="method">
+									{{ config.interval }}
+									{{ config.intervalUnit }}
+								</el-form-item>
+
+								<el-divider content-position="left">请求参数</el-divider>
+
+								<div class="content-f" v-for="(item, index) in requestParams" :key="index" style="    border: 1px solid #d9d9d9; padding: 10px;margin-bottom: 10px;">
+
+									<div v-for="(aa, bb) in item" :key="inbbdex">
+										<el-form-item label="参数类型:">
+											{{ aa.type }}
+										</el-form-item>
+										<el-form-item label="参数标题:">
+											{{ aa.name }}
+										</el-form-item>
+										<el-form-item label="参数名:">
+											{{ aa.key }}
+										</el-form-item>
+										<el-form-item label="参数值:">
+											{{ aa.value }}
+										</el-form-item>
+									</div>
 								</div>
 							</div>
-						</div>
 
-					</div>
+						</div>
 					</el-form>
 				</el-tab-pane>
 
@@ -136,48 +136,43 @@
 					<div class="wu-box">
 						<div class="wu-title">
 							<div class="title">数据节点</div>
-							<div v-if="developer_status==0" v-auth="'add'"><el-button type="primary" @click="onOpenEdit()" >添加</el-button></div>
+							<div v-if="developer_status == 0" v-auth="'add'"><el-button type="primary" @click="onOpenEdit()">添加</el-button></div>
 						</div>
-				
-						<el-table :data="tableData.data" style="width: 100%"  v-loading="tableData.loading">
-							<el-table-column label="ID" align="center" prop="nodeId" width="80"  v-col="'id'"/>
-							<el-table-column label="数据标识" prop="key" :show-overflow-tooltip="true" v-col="'key'"/>
-							<el-table-column label="数据名称" prop="name" :show-overflow-tooltip="true"  v-col="'name'"/>
-							<el-table-column label="数据类型" prop="dataType" :show-overflow-tooltip="true"  v-col="'dataType'" />
-							<el-table-column label="数据取值项" prop="value" :show-overflow-tooltip="true"   v-col="'value'"/>
 
-							<el-table-column prop="createdAt" label="创建时间" align="center"  v-col="'createdAt'" width="180"></el-table-column>
+						<el-table :data="tableData.data" style="width: 100%" v-loading="tableData.loading">
+							<el-table-column label="ID" align="center" prop="nodeId" width="80" v-col="'id'" />
+							<el-table-column label="数据标识" prop="key" :show-overflow-tooltip="true" v-col="'key'" />
+							<el-table-column label="数据名称" prop="name" :show-overflow-tooltip="true" v-col="'name'" />
+							<el-table-column label="数据类型" prop="dataType" :show-overflow-tooltip="true" v-col="'dataType'" />
+							<el-table-column label="数据取值项" prop="value" :show-overflow-tooltip="true" v-col="'value'" />
+
+							<el-table-column prop="createdAt" label="创建时间" align="center" v-col="'createdAt'" width="180"></el-table-column>
 
 							<el-table-column label="操作" width="200" align="center" fixed="right">
 								<template #default="scope">
-									<el-button size="small" text type="warning" @click="onOpenEdit1(scope.row)" v-if="developer_status==0" v-auth="'edit'">修改</el-button>
-									<el-button size="small" text type="danger" @click="onRowDel(scope.row)" v-if="developer_status==0" v-auth="'del'">删除</el-button>
+									<el-button size="small" text type="warning" @click="onOpenEdit1(scope.row)" v-if="developer_status == 0" v-auth="'edit'">修改</el-button>
+									<el-button size="small" text type="danger" @click="onRowDel(scope.row)" v-if="developer_status == 0" v-auth="'del'">删除</el-button>
 								</template>
 							</el-table-column>
 						</el-table>
-						<pagination
-							v-show="tableData.total > 0"
-							:total="tableData.total"
-							v-model:page="tableData.param.pageNum"
-							@pagination="typeList"
-						/>
+						<pagination v-show="tableData.total > 0" :total="tableData.total" v-model:page="tableData.param.pageNum" @pagination="typeList" />
 					</div>
 				</el-tab-pane>
 				<el-tab-pane label="查看数据" name="3">
 					<div class="wu-box">
-						<JsonViewer :value="jsonData"  boxed sort theme="jv-dark" @click="onKeyclick" />
+						<JsonViewer :value="jsonData" boxed sort theme="jv-dark" @click="onKeyclick" />
 					</div>
 				</el-tab-pane>
 			</el-tabs>
 		</div>
 		<EditDic ref="editDicRef" @typeList="typeList" />
-		
+
 	</div>
 </template>            
 <script lang="ts">
 import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
-import { Delete, Edit, Search, Share, Upload } from '@element-plus/icons-vue';
-import { ElMessageBox, ElMessage, FormInstance } from 'element-plus';
+import { Edit } from '@element-plus/icons-vue';
+import { ElMessageBox, ElMessage } from 'element-plus';
 import { useRoute } from 'vue-router';
 import "vue3-json-viewer/dist/index.css";
 
@@ -203,13 +198,13 @@ interface TableDataState {
 export default defineComponent({
 	name: 'dataDetail',
 	components: { EditDic },
-	setup(prop, context) {
+	setup() {
 		const editDicRef = ref();
 
 		const route = useRoute();
 		const state = reactive<TableDataState>({
 			config: {},
-			jsonData:{},
+			jsonData: {},
 			ruledata: [
 				{
 					expression: '',
@@ -259,17 +254,7 @@ export default defineComponent({
 				state.developer_status = res.data.status;
 				state.config = res.data.apiConfig;
 				state.requestParams = res.data.apiConfig.requestParams;
-				// res.data.sourceRule.forEach((item, index) => {
-				// 	state.rule[index].expression = item.expression;
-				// 	state.rule[index].params.name = Object.keys(item.params);
-				// 	state.rule[index].params.value = item.params[Object.keys(item.params)];
-				// });
-
-				
-			
-			}); 
-
-		
+			});
 
 			typeList();
 		});
@@ -284,34 +269,33 @@ export default defineComponent({
 
 		const CkOption = () => {
 			if (state.developer_status == 1) {
-				api.common.undeploy({ sourceId: route.params.sourceId }).then((res: any) => {
+				api.common.undeploy({ sourceId: route.params.sourceId }).then(() => {
 					ElMessage.success('操作成功');
 					state.developer_status = 0;
 				});
 			} else {
-				api.common.deploy({ sourceId: route.params.sourceId }).then((res: any) => {
+				api.common.deploy({ sourceId: route.params.sourceId }).then(() => {
 					ElMessage.success('操作成功');
 					state.developer_status = 1;
 				});
 			}
 		};
-		const handleClick = (tab: TabsPaneContext, event: Event) => {
-			if(tab.props.name==3){
-				if(state.detail.from==1){
+		const handleClick = (tab: TabsPaneContext) => {
+			if (tab.props.name == 3) {
+				if (state.detail.from == 1) {
 					api.common.api(state.detail.sourceId).then((res: any) => {
-						state.jsonData=JSON.parse(res.data);
+						state.jsonData = JSON.parse(res.data);
 					})
-				}else if(state.detail.from==4){
+				} else if (state.detail.from == 4) {
 					api.common.devapi(state.detail.sourceId).then((res: any) => {
-						state.jsonData=JSON.parse(res.data);
+						state.jsonData = JSON.parse(res.data);
 					})
-				}else if(state.detail.from==2){
+				} else if (state.detail.from == 2) {
 					api.common.devdb(state.detail.sourceId).then((res: any) => {
-						state.jsonData=JSON.parse(res.data);
+						state.jsonData = JSON.parse(res.data);
 					})
 				}
 			}
-
 		};
 
 		const onRowDel = (row: TableDataRow) => {
@@ -338,7 +322,6 @@ export default defineComponent({
 						typeList();
 					});
 				})
-				.catch(() => {});
 		};
 
 		// 打开修改数据源弹窗
@@ -369,28 +352,35 @@ export default defineComponent({
 	width: 100%;
 	padding: 20px;
 }
+
 .content-box {
 	background: #fff;
 	width: 100%;
 	padding: 20px;
 	margin-top: 20px;
 }
+
 .cont_box {
 	display: flex;
 }
+
 .cont_box .title {
 	font-size: 18px;
 }
+
 .cont_box .pro-status {
 	line-height: 30px;
 	margin-left: 30px;
 }
+
 .cont_box .pro-status .on {
 	background: #52c41a;
 }
+
 .cont_box .pro-status .off {
 	background: #c41a1a;
 }
+
 .cont_box .pro-status span {
 	position: relative;
 	top: -1px;
@@ -401,30 +391,36 @@ export default defineComponent({
 	border-radius: 50%;
 	margin-right: 5px;
 }
+
 .cont_box .pro-option {
 	line-height: 30px;
 	margin-left: 10px;
 	color: #1890ff;
 	cursor: pointer;
 }
+
 .content-box .pro-box {
 	display: flex;
 	padding: 10px;
 }
+
 .content-box .pro-box .protitle {
 	font-size: 18px;
 	font-weight: bold;
 	line-height: 35px;
 }
+
 .content-box .pro-box .buttonedit {
 	border: 0px;
 	color: #1890ff;
 }
+
 table {
 	border-collapse: collapse;
 	text-indent: initial;
 	border-spacing: 2px;
 }
+
 tbody {
 	box-sizing: border-box;
 	display: table-row-group;
@@ -437,37 +433,46 @@ tr {
 	vertical-align: inherit;
 	border-color: inherit;
 }
+
 .ant-descriptions-view {
 	width: 100%;
 	overflow: hidden;
 	border-radius: 4px;
 }
+
 .ant-descriptions-view {
 	border: 1px solid #e8e8e8;
 }
+
 .ant-descriptions-view table {
 	width: 100%;
 	table-layout: fixed;
 }
-.ant-descriptions-view > table {
+
+.ant-descriptions-view>table {
 	table-layout: auto;
 }
+
 .ant-descriptions-row {
 	border-bottom: 1px solid #e8e8e8;
 }
+
 .ant-descriptions-item-label {
 	color: rgba(0, 0, 0, 0.85);
 	font-weight: 400;
 	font-size: 14px;
 	line-height: 1.5;
 }
+
 .ant-descriptions-item-label {
 	padding: 16px 24px;
 	border-right: 1px solid #e8e8e8;
 }
+
 .ant-descriptions-item-label {
 	background-color: #fafafa;
 }
+
 .ant-descriptions-item-content {
 	padding: 16px 24px;
 	border-right: 1px solid #e8e8e8;
@@ -476,11 +481,13 @@ tr {
 	font-size: 14px;
 	line-height: 1.5;
 }
+
 .wu-box {
 	border: #e8e8e8 solid 1px;
 	padding: 20px;
 	width: 100%;
 }
+
 .wu-box .wu-title {
 	display: flex;
 	flex-direction: row;
@@ -488,6 +495,7 @@ tr {
 	padding: 20px;
 	border-bottom: #e8e8e8 1px solid;
 }
+
 .wu-box .wu-title .title {
 	font-size: 18px;
 }

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 271 - 679
src/views/system/monitor/cache/index.vue


+ 2 - 47
src/views/system/monitor/notice/index.vue

@@ -1,34 +1,6 @@
 <template>
 	<div class="page">
 		<el-card shadow="hover">
-			<div class="search">
-				<el-form :model="params" :inline="true" ref="queryRef">
-					<!-- <el-form-item label="接口名称" prop="name">
-            <el-input v-model="params.name" placeholder="请输入接口名称" clearablestyle="width: 240px" @keyup.enter.native="getList(1)" />
-          </el-form-item> -->
-					<!-- <el-form-item label="状态" prop="status" style="width: 200px">
-            <el-select v-model="params.status" placeholder="接口状态" clearablestyle="width: 240px">
-              <el-option label="全部" :value="-1" />
-              <el-option label="启用" :value="1" />
-              <el-option label="禁用" :value="0" />
-            </el-select>
-          </el-form-item> -->
-					<el-form-item>
-						<!-- <el-button size="default" type="primary" class="ml10" @click="getList(1)">
-							<el-icon>
-								<ele-Search />
-							</el-icon>
-							查询
-						</el-button> -->
-						<!-- <el-button size="default" type="primary" class="ml10" @click="getList(1)">
-							<el-icon>
-								<ele-Search />
-							</el-icon>
-							清空
-						</el-button> -->
-					</el-form-item>
-				</el-form>
-			</div>
 			<el-table :data="tableData" style="width: 100%" v-loading="loading">
 				<el-table-column type="index" label="序号" width="60" align="center" />
 				<el-table-column prop="MessageInfo.title" label="标题" show-overflow-tooltip></el-table-column>
@@ -62,35 +34,18 @@ import { ElMessageBox, ElMessage } from 'element-plus';
 import { useSearch } from '/@/hooks/useCommon';
 
 const editFormRef = ref();
-const queryRef = ref();
 
 const { params, tableData, getList, loading } = useSearch<ApiRow[]>(api.getList, 'Info', { name: '', address: '', types: -1 });
 
 getList();
 
-const addOrEdit = async (row?: ApiRow) => {
-	if (row) {
-		const res = await api.api.detail(row.id as number);
-		editFormRef.value.open(res);
-		return;
-	} else {
-		editFormRef.value.open();
-	}
-};
-
-// 重置表单
-const resetQuery = () => {
-	queryRef.value.resetFields();
-	getList(1);
-};
-
 const onDel = (row: ApiRow) => {
-	ElMessageBox.confirm(`此操作将删除接口:“${row.name}”,是否继续?`, '提示', {
+	ElMessageBox.confirm(`确定删除该条记录?`, '提示', {
 		confirmButtonText: '确认',
 		cancelButtonText: '取消',
 		type: 'warning',
 	}).then(async () => {
-		await api.api.del(row.id as number);
+		await api.del([row.id as number]);
 		ElMessage.success('删除成功');
 		getList();
 	});

+ 2 - 2
src/views/system/monitor/plugin/index.vue

@@ -66,7 +66,7 @@
 
 <script lang="ts" setup>
 import { ref, h } from 'vue'
-import { ElMessage, ElMessageBox, ElUpload } from 'element-plus'
+import { ElMessage, ElMessageBox } from 'element-plus'
 import api from '/@/api/system'
 import { useSearch } from '/@/hooks/useCommon'
 import EditForm from './edit.vue'
@@ -134,7 +134,7 @@ const addOrEdit = (row?: any) => {
 }
 
 const changeStatus = (row: any, status: number) => {
-	api.plugin.changeStatus({ id: row.id, status: status }).then((res: any) => {
+	api.plugin.changeStatus({ id: row.id, status: status }).then(() => {
 		ElMessage.success('操作成功')
 		getList()
 	})

+ 33 - 33
src/views/system/monitor/server/index.vue

@@ -200,22 +200,22 @@
           </template>
           <div class="flex-row">
             <el-form label-position="right" label-width="100px" class="flex1" style="max-width: 460px">
-              <el-form-item label="操作系统">{{hostData.os}}</el-form-item>
-              <el-form-item label="启动时间">{{goInfoData.startTime}}</el-form-item>
-              <el-form-item label="运行时长">{{timeFormat(goInfoData.runTime)}}</el-form-item>
-              <el-form-item label="运行内存">{{goInfoData.goMem}}</el-form-item>
+              <el-form-item label="操作系统">{{ hostData.os }}</el-form-item>
+              <el-form-item label="启动时间">{{ goInfoData.startTime }}</el-form-item>
+              <el-form-item label="运行时长">{{ timeFormat(goInfoData.runTime) }}</el-form-item>
+              <el-form-item label="运行内存">{{ goInfoData.goMem }}</el-form-item>
             </el-form>
             <el-form label-position="right" label-width="100px" class="flex1" style="max-width: 460px">
-              <el-form-item label="系统架构">{{goInfoData.arch}}</el-form-item>
-              <el-form-item label="语言环境">{{goInfoData.goName}}</el-form-item>
-              <el-form-item label="磁盘占用">{{goInfoData.goSize}}</el-form-item>
-              <el-form-item label="项目地址">{{goInfoData.pwd}}</el-form-item>
+              <el-form-item label="系统架构">{{ goInfoData.arch }}</el-form-item>
+              <el-form-item label="语言环境">{{ goInfoData.goName }}</el-form-item>
+              <el-form-item label="磁盘占用">{{ goInfoData.goSize }}</el-form-item>
+              <el-form-item label="项目地址">{{ goInfoData.pwd }}</el-form-item>
             </el-form>
             <el-form label-position="right" label-width="100px" class="flex1" style="max-width: 460px">
-              <el-form-item label="架构版本">{{hostData.kernelArch}}</el-form-item>
-              <el-form-item label="GO 版本">{{goInfoData.goVersion}}</el-form-item>
-              <el-form-item label="协程数量">{{goInfoData.goroutine}}</el-form-item>
-              <el-form-item label="服务器IP">{{hostData.intranet_ip}} (内) &nbsp;&nbsp;&nbsp; {{hostData.public_ip}} (公) </el-form-item>
+              <el-form-item label="架构版本">{{ hostData.kernelArch }}</el-form-item>
+              <el-form-item label="GO 版本">{{ goInfoData.goVersion }}</el-form-item>
+              <el-form-item label="协程数量">{{ goInfoData.goroutine }}</el-form-item>
+              <el-form-item label="服务器IP">{{ hostData.intranet_ip }} (内) &nbsp;&nbsp;&nbsp; {{ hostData.public_ip }} (公) </el-form-item>
             </el-form>
           </div>
         </el-card>
@@ -265,7 +265,7 @@ export default defineComponent({
       "virtualizationSystem": ""
     });
     const goInfoData = reactive({
-      "goOs": "-", "arch": "-", "goVersion": "-", "goMem": "-", "goName": "-", "goSize": "-", "goVersion": "-", "goroutine": '-', "pwd": "-", "rootPath": "-",
+      "goOs": "-", "arch": "-", "goVersion": "-", "goMem": "-", "goName": "-", "goSize": "-", "goroutine": '-', "pwd": "-", "rootPath": "-",
       "runTime": '', "startTime": "-", "intranet_ip": "-"
     });
 
@@ -737,41 +737,41 @@ export default defineComponent({
 
 <style scoped lang="scss">
 .el-card {
-	height: 300px;
-	overflow-y: auto;
+  height: 300px;
+  overflow-y: auto;
 }
 
 .marg-b-15 {
-	margin-bottom: 15px;
+  margin-bottom: 15px;
 }
 
 .cell {
-	box-sizing: border-box;
-	overflow: hidden;
-	text-overflow: ellipsis;
-	white-space: normal;
-	word-break: break-all;
-	line-height: 36px;
-	padding-left: 10px;
-	padding-right: 10px;
+  box-sizing: border-box;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: normal;
+  word-break: break-all;
+  line-height: 36px;
+  padding-left: 10px;
+  padding-right: 10px;
 }
 
 .cell-card {
-	box-sizing: border-box;
-	overflow: hidden;
-	text-overflow: ellipsis;
-	white-space: normal;
-	word-break: break-all;
-	line-height: 36px;
+  box-sizing: border-box;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: normal;
+  word-break: break-all;
+  line-height: 36px;
 }
 
 .box-card {
-	min-height: 380px;
+  min-height: 380px;
 }
 
 .box-card-meter {
-	height: 230px;
+  height: 230px;
 
-	min-height: 180px;
+  min-height: 180px;
 }
 </style>

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov