Преглед на файлове

fea: 增加ice104模块

vera_min преди 1 година
родител
ревизия
1e3873ea43

+ 1 - 1
src/utils/request_ice104.ts

@@ -5,7 +5,7 @@ import getOrigin from '/@/utils/origin'
 // 配置新建一个 axios 实例
 const service = axios.create({
 	baseURL: getOrigin(import.meta.env.VITE_ICE104_API),
-	// baseURL: 'http://awzr9z.natappfree.cc',
+	// baseURL: 'http://jfg4xi.natappfree.cc',
 	timeout: 50000,
 	headers: { 'Content-Type': 'application/json' },
 });

+ 10 - 26
src/views/iot/ice104/device/component/addOrEditDeviceTask.vue

@@ -4,30 +4,25 @@
 		:title="isEdit ? '修改设备任务' : '添加设备任务'"
 		v-model="dialogVisible"
 		width="600px"
-		:before-close="clsoeDialog"
+		:before-close="closeDialog"
 		:close-on-click-modal="false"
 	>
 		<el-form ref="formRef" :rules="formRules" :model="ruleForm" label-position="left" label-width="120px" style="width: 90%; margin: 0 auto">
-			<el-form-item label="设备任务名称">
+			<el-form-item label="设备任务名称" prop="title">
 				<el-input v-model="ruleForm.title" placeholder="请输入设备任务名称" />
 			</el-form-item>
-			<!-- <el-form-item label="所属设备">
-				<el-select v-model="ruleForm.deviceNumber" placeholder="请选择所属设备" class="width100">
-					<el-option :label="item.title" :value="item.number" v-for="(item, index) in deviceList" :key="index" />
-				</el-select>
-			</el-form-item> -->
-            <el-form-item label="执行间隔">
+            <el-form-item label="执行间隔" prop="interval">
 				<el-input type="number" :min="0" v-model.number="ruleForm.interval" placeholder="请输入执行间隔" />
 			</el-form-item>
-			<el-form-item label="任务类型">
+			<el-form-item label="任务类型" prop="jobType">
 				<el-select v-model="ruleForm.jobType" placeholder="请选择任务类型" class="width100">
 					<el-option v-for="dict in device_job_types" :key="dict.value" :label="dict.label" :value="dict.value"> </el-option>
 				</el-select>
 			</el-form-item>
 		</el-form>
 		<template #footer>
-			<el-button @click="clsoeDialog()"> 取 消 </el-button>
-			<el-button :loading="btnLoading" type="primary" @click="submitData"> 保 存 </el-button>
+			<el-button v-auth="'cancelTask'" @click="closeDialog()"> 取 消 </el-button>
+			<el-button v-auth="'addTask'" :loading="btnLoading" type="primary" @click="submitData"> 保 存 </el-button>
 		</template>
 	</el-dialog>
 </template>
@@ -50,11 +45,9 @@ getList();
 
 const dialogVisible = ref(false);
 const btnLoading = ref(false);
-// const deviceList = ref([]);
 const emit = defineEmits(['updateList']);
 const formRef = ref();
 const ruleForm = ref({
-	// number: route.params && route.params.id,
     number: 0,
 	title: '',
     deviceNumber: route.params && route.params.id,
@@ -64,14 +57,15 @@ const ruleForm = ref({
 const isEdit = ref(false);
 
 const formRules = computed(() => ({
-	number: [{ required: true, trigger: 'change', message: '请输入设备编码' }],
+	title: [{ required: true, trigger: 'blur', message: '请输入设备任务名称' }],
+	interval: [{ required: true, trigger: 'blur', message: '请输入执行间隔' }],
+	jobType: [{ required: true, trigger: 'blur', message: '请选择任务类型' }],
 }));
 const getRandom = (num:number) =>{
     return Math.floor((Math.random()+Math.floor(Math.random()*9+1))*Math.pow(10,num-1));
 }
 const submitData = async () => {
 	formRef.value.validate((valid: boolean) => {
-		console.log(valid)
 		if (!valid) return
 		btnLoading.value = true
 		if (isEdit.value) {
@@ -104,6 +98,7 @@ const submitData = async () => {
  */
 const closeDialog = () => {
   dialogVisible.value = false;
+  isEdit.value = false;
   ruleForm.value = {
 	number: 0,
 	title: '',
@@ -116,26 +111,15 @@ const closeDialog = () => {
 
 const open = async (row: any) => {
 	dialogVisible.value = true
-	console.log(row)
 	if (row && row.number.toString()) {
-		console.log(row)
         row.jobType = row.jobType.toString();
 		ruleForm.value = row;
 		isEdit.value = true;
-        console.log(ruleForm.value)
 	}else {
 		isEdit.value = false;
 	}
 }
 
-
-
-
-// 页面加载时
-onMounted(() => {
-    // getDeviceList();
-});
-
 defineExpose({ open })
 </script>
 

+ 13 - 13
src/views/iot/ice104/device/component/deviceTaskTable.vue

@@ -5,19 +5,19 @@
                 <el-input v-model="params.title" placeholder="请输入任务名称" clearablestyle="width: 240px" @keyup.enter.native="getList()" />
             </el-form-item>
             <el-form-item>
-                <el-button size="default" type="primary" class="ml10" @click="getList()">
+                <el-button v-auth="'query'" size="default" type="primary" class="ml10" @click="getList()">
                     <el-icon>
                         <ele-Search />
                     </el-icon>
                     查询
                 </el-button>
-                <el-button size="default" @click="resetQuery()">
+                <el-button v-auth="'reset'" size="default" @click="resetQuery()">
                     <el-icon>
                         <ele-Refresh />
                     </el-icon>
                     重置
                 </el-button>
-                <el-button type="primary" @click="addOrEdit()">
+                <el-button v-auth="'add'" type="primary" @click="addOrEdit()">
                     <el-icon>
                         <ele-FolderAdd />
                     </el-icon>
@@ -26,21 +26,21 @@
             </el-form-item>
         </el-form>
         <el-table :data="tableData" style="width: 100%" v-loading="loading">
-            <el-table-column type="index" label="序号" width="80" align="center" />
-            <el-table-column prop="title" label="任务名称"  align="center" show-overflow-tooltip></el-table-column>
-            <el-table-column prop="deviceNumber" label="设备编码" min-width="120" align="center" show-overflow-tooltip></el-table-column>
-            <el-table-column prop="interval" label="执行间隔(s)" min-width="120" align="center" show-overflow-tooltip></el-table-column>
-            <el-table-column prop="interval" label="任务类型" min-width="120" align="center" show-overflow-tooltip>
+            <el-table-column v-col="'index'" type="index" label="序号" width="80" align="center" />
+            <el-table-column v-col="'title'" prop="title" label="任务名称"  align="center" show-overflow-tooltip></el-table-column>
+            <el-table-column v-col="'deviceNumber'" prop="deviceNumber" label="设备编码" min-width="120" align="center" show-overflow-tooltip></el-table-column>
+            <el-table-column v-col="'interval'" prop="interval" label="执行间隔(s)" min-width="120" align="center" show-overflow-tooltip></el-table-column>
+            <el-table-column v-col="'jobType'" prop="jobType" label="任务类型" min-width="120" align="center" show-overflow-tooltip>
                 <template #default="scope">
 						<el-tag type="info" size="small" v-if="scope.row.jobType == 100">总召唤</el-tag>
 						<el-tag type="info" size="small" v-if="scope.row.jobType == 101">电度召唤</el-tag>
 						<el-tag type="info" size="small" v-if="scope.row.jobType == 103">时钟同步</el-tag>
 					</template>
             </el-table-column>
-             <el-table-column fixed="right" label="操作" width="100" align="center">
+             <el-table-column v-col="'handle'" fixed="right" label="操作" width="100" align="center">
                 <template #default="scope">
-                    <el-button size="small" text type="primary" @click="addOrEdit(scope.row)">修改</el-button>
-                    <el-button size="small" text type="info" @click="onDel(scope.row)">删除</el-button>
+                    <el-button size="small" v-auth="'edit'" text type="primary" @click="addOrEdit(scope.row)">修改</el-button>
+                    <el-button size="small" v-auth="'del'" text type="info" @click="onDel(scope.row)">删除</el-button>
                 </template>
             </el-table-column>
         </el-table>
@@ -70,7 +70,8 @@ const queryRef = ref();
  * 新增设备任务
  */
 const addOrEdit = async (row?: any) => {
-	editFormRef.value.open(row);
+    const data = {...row};
+	editFormRef.value.open(data);
 };
 
 /**
@@ -99,7 +100,6 @@ onMounted(() => {
     getList();
 });
 
-// defineExpose({ open })
 </script>
 
 <style lang="scss" scoped>

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

@@ -36,8 +36,8 @@
 			</el-form-item>
 		</el-form>
 		<template #footer>
-			<el-button @click="closeDialog()"> 取 消 </el-button>
-			<el-button :loading="btnLoading" type="primary" @click="submitData"> 保 存 </el-button>
+			<el-button v-auth="'cancelSaveDevice'" @click="closeDialog()"> 取 消 </el-button>
+			<el-button v-auth="'saveDevice'" :loading="btnLoading" type="primary" @click="submitData"> 保 存 </el-button>
 		</template>
 	</el-dialog>
 </template>
@@ -75,7 +75,6 @@ const formRules = computed(() => ({
 
 const submitData = async () => {
 	formRef.value.validate((valid: boolean) => {
-		console.log(valid)
 		if (!valid) return
 		btnLoading.value = true
 		if (isEdit.value) {
@@ -103,16 +102,13 @@ const submitData = async () => {
 }
 
 const handleProductChange = (data:any) => {
-	console.log(data)
 	ruleForm.value.deviceKey = "";
 	let findItem:any = productList.value.find((v: any) => v.key === data);
-	console.log(findItem)
 	getDeviceList(findItem.id)
 }
 
 const getDeviceList = (id:number) => {
 	apiDevice.device.allList({productId: id}).then((res: any) => {
-		console.log(res)
 		deviceList.value = res.device
 	})
 }
@@ -123,7 +119,6 @@ const getDeviceList = (id:number) => {
 const closeDialog = () => {
   dialogVisible.value = false;
   ruleForm.value = {
-	// id: '',
 	number: '',
 	title: '',
 	commonAddr: '',
@@ -137,9 +132,7 @@ const closeDialog = () => {
 
 const open = async (row: any) => {
 	dialogVisible.value = true
-	console.log(row)
 	if (row && row.number.toString()) {
-		console.log(row)
 		ruleForm.value = row;
 		isEdit.value = true;
 	}else {

+ 1 - 7
src/views/iot/ice104/device/component/editDeviceForm.vue

@@ -28,7 +28,7 @@
             </el-select>
         </el-form-item>
         <el-form-item>
-            <el-button type="primary" :loading="btnLoading" @click="submitData"> 保 存 </el-button>
+            <el-button type="primary" v-auth="'save'" :loading="btnLoading" @click="submitData"> 保 存 </el-button>
         </el-form-item>
     </el-form>
 </template>
@@ -65,7 +65,6 @@ const formRules = computed(() => ({
 
 const submitData = async () => {
 	formRef.value.validate((valid: boolean) => {
-		console.log(valid)
 		if (!valid) return
 		btnLoading.value = true
 		if (isEdit.value) {
@@ -87,23 +86,19 @@ const handleProductChange = (data:any, isClear: boolean) => {
 		ruleForm.value.deviceKey = "";
 	}
 	let findItem:any = productList.value.find((v: any) => v.key === data);
-	console.log(findItem)
 	if(!findItem) return;
 	getDeviceList(findItem.id)
 }
 
 const getDeviceList = (id:number) => {
 	apiDevice.device.allList({productId: id}).then((res: any) => {
-		console.log(res)
 		deviceList.value = res.device
 	})
 }
 
 
 const open = async (row: any) => {
-	console.log(row)
 	if (row && row.number.toString()) {
-		console.log(row)
 		ruleForm.value = row;
 		isEdit.value = true;
 		handleProductChange(ruleForm.value.productKey, false)
@@ -112,7 +107,6 @@ const open = async (row: any) => {
 	}
 }
 
-
 const getDeviceProduct = () => {
 	apiDevice.product.getLists({}).then((res: any) => {
 		productList.value = res.product

+ 46 - 101
src/views/iot/ice104/device/detail.vue

@@ -9,123 +9,73 @@
 <template>
 	<div class="page page-full">
 		<el-card shadow="hover" class="page-full-part">
-			<el-tabs
-				v-model="activeName"
-				class="demo-tabs"
-				@tab-click="handleClick"
-			>
-				<el-tab-pane label="设备详情" name="1">
+			<el-tabs v-model="activeName" class="demo-tabs">
+				<el-tab-pane label="设备详情" name="detail">
 					<EditDeviceForm ref="editFormRef" />
 				</el-tab-pane>
-				<el-tab-pane label="设备任务" name="2">
+				<el-tab-pane label="设备任务" name="task">
 					<DeviceTaskTable />
 				</el-tab-pane>
 			</el-tabs>
-			<!-- <div style="height: 100px;"></div>
-			<div class="search">
-				<el-form :model="params" :inline="true" ref="queryRef">
-					<el-form-item label="设备名称" prop="title">
-						<el-input v-model="params.title" placeholder="请输入设备名称" clearablestyle="width: 240px" @keyup.enter.native="getList()" />
-					</el-form-item>
-					<el-form-item>
-						<el-button size="default" type="primary" class="ml10" @click="getList()">
-							<el-icon>
-								<ele-Search />
-							</el-icon>
-							查询
-						</el-button>
-						<el-button size="default" @click="resetQuery()">
-							<el-icon>
-								<ele-Refresh />
-							</el-icon>
-							重置
-						</el-button>
-						<el-button type="primary" @click="addOrEdit()">
-							<el-icon>
-								<ele-FolderAdd />
-							</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="80" align="center" />
-				<el-table-column prop="title" label="设备名称"  align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="commonAddr" label="设备通用地址" min-width="120" align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="subCode" label="mac地址" min-width="120" align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="templateNumber" label="模版编号" align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="productKey" label="产品key" align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="deviceKey" label="设备key" align="center" show-overflow-tooltip></el-table-column>
-
-				<el-table-column prop="number" label="设备编码" min-width="120" align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="createdAt" label="创建时间" min-width="160" align="center"></el-table-column>
-				<el-table-column prop="updatedAt" label="更新时间" min-width="160" align="center"></el-table-column>
-				<el-table-column fixed="right" label="操作" width="100" align="center">
-					<template #default="scope">
-						<el-button size="small" text type="primary" @click="addOrEdit(scope.row)">详情</el-button>
-						<el-button size="small" text type="info" @click="onDel(scope.row)">删除</el-button>
-					</template>
-				</el-table-column>
-			</el-table>
-			<pagination v-if="params.total" :total="params.total" v-model:page="params.page" v-model:limit="params.size" @pagination="getList()" />
-		 -->
 		</el-card>
-		
 	</div>
 </template>
 
 <script lang="ts" setup>
-import { ref, onMounted } from 'vue';
-import EditDeviceForm from './component/editDeviceForm.vue';
-import DeviceTaskTable from './component/deviceTaskTable.vue';
-
-import api from '/@/api/ice104/index';
-import { ElMessageBox, ElMessage } from 'element-plus';
-import { useSearch } from '/@/hooks/useCommonIce104';
-import { useRoute } from 'vue-router';
+import { ref, onMounted } from 'vue'
+import EditDeviceForm from './component/editDeviceForm.vue'
+import DeviceTaskTable from './component/deviceTaskTable.vue'
+
+import api from '/@/api/ice104/index'
+import { ElMessageBox, ElMessage } from 'element-plus'
+import { useSearch } from '/@/hooks/useCommonIce104'
+import { useRoute } from 'vue-router'
 import type { TabsPaneContext } from 'element-plus'
 
-const route = useRoute();
-const editFormRef = ref();
-const detailFormData = ref({});
-const queryRef = ref();
-
-const activeName = ref('1')
-
-
+const route = useRoute()
+const editFormRef = ref()
+const detailFormData = ref({})
+const queryRef = ref()
 
-const { params, tableData, getList, loading } = useSearch(api.device.getList, 'data', { title: '' });
-
-getList();
+const activeName = ref('detail')
 
+const { params, tableData, getList, loading } = useSearch(api.device.getList, 'data', { title: '' })
 
+getList()
 
 const handleClick = (tab: TabsPaneContext, event: Event) => {
-  console.log(tab, event)
+	console.log(activeName)
+	if (activeName.value == 'task') {
+		console.log('获取详情')
+		initDeviceInfo()
+	} else {
+		console.log('获取任务列表')
+		getList()
+	}
 }
 
-const addOrEdit = async (row?: any) => {
-	
-};
-
-// 重置表单
+/**
+ * 重置表单
+ */
 const resetQuery = () => {
-	queryRef.value.resetFields();
-	getList();
-};
+	queryRef.value.resetFields()
+	getList()
+}
 
+/**
+ * 删除
+ */
 const onDel = (row: any) => {
 	ElMessageBox.confirm(`此操作将删除接口:“${row.title}”,是否继续?`, '提示', {
 		confirmButtonText: '确认',
 		cancelButtonText: '取消',
 		type: 'warning',
 	}).then(async () => {
-		await api.device.deleteItem({number: row.number});
-		ElMessage.success('删除成功');
-		getList();
-	});
-};
+		await api.device.deleteItem({ number: row.number })
+		ElMessage.success('删除成功')
+		getList()
+	})
+}
 
 /**
  * 获取设备详情
@@ -133,16 +83,11 @@ const onDel = (row: any) => {
 const initDeviceInfo = async () => {
 	const res = await api.device.detailItem(route.params && route.params.id)
 	console.log(res)
-	detailFormData.value = res.data;
-	editFormRef.value.open(res.data);
+	detailFormData.value = res.data
+	editFormRef.value.open(res.data)
 }
-	// 页面加载时
-	onMounted(() => {
-		// const id: = route.params && route.params.id;
-		// console.log(id)
-		initDeviceInfo()
-	});
-	
-
-
+// 页面加载时
+onMounted(() => {
+	initDeviceInfo()
+})
 </script>

+ 16 - 21
src/views/iot/ice104/device/index.vue

@@ -15,19 +15,19 @@
 						<el-input v-model="params.title" placeholder="请输入设备名称" clearablestyle="width: 240px" @keyup.enter.native="getList()" />
 					</el-form-item>
 					<el-form-item>
-						<el-button size="default" type="primary" class="ml10" @click="getList()">
+						<el-button v-auth="'query'" size="default" type="primary" class="ml10" @click="getList()">
 							<el-icon>
 								<ele-Search />
 							</el-icon>
 							查询
 						</el-button>
-						<el-button size="default" @click="resetQuery()">
+						<el-button v-auth="'reset'" size="default" @click="resetQuery()">
 							<el-icon>
 								<ele-Refresh />
 							</el-icon>
 							重置
 						</el-button>
-						<el-button type="primary" @click="addOrEdit()">
+						<el-button v-auth="'add'" type="primary" @click="addOrEdit()">
 							<el-icon>
 								<ele-FolderAdd />
 							</el-icon>
@@ -37,21 +37,21 @@
 				</el-form>
 			</div>
 			<el-table :data="tableData" style="width: 100%" v-loading="loading">
-				<el-table-column type="index" label="序号" width="80" align="center" />
-				<el-table-column prop="title" label="设备名称"  align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="commonAddr" label="设备通用地址" min-width="120" align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="subCode" label="mac地址" min-width="120" align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="templateNumber" label="模版编号" align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="productKey" label="产品key" align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="deviceKey" label="设备key" align="center" show-overflow-tooltip></el-table-column>
+				<el-table-column v-col="'index'" type="index" label="序号" width="80" align="center" />
+				<el-table-column v-col="'title'" prop="title" label="设备名称"  align="center" show-overflow-tooltip></el-table-column>
+				<el-table-column v-col="'commonAddr'" prop="commonAddr" label="设备通用地址" min-width="120" align="center" show-overflow-tooltip></el-table-column>
+				<el-table-column v-col="'subCode'" prop="subCode" label="mac地址" min-width="120" align="center" show-overflow-tooltip></el-table-column>
+				<el-table-column v-col="'templateNumber'" prop="templateNumber" label="模版编号" align="center" show-overflow-tooltip></el-table-column>
+				<el-table-column v-col="'productKey'" prop="productKey" label="产品key" align="center" show-overflow-tooltip></el-table-column>
+				<el-table-column v-col="'deviceKey'" prop="deviceKey" label="设备key" align="center" show-overflow-tooltip></el-table-column>
 
-				<el-table-column prop="number" label="设备编码" min-width="120" align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="createdAt" label="创建时间" min-width="160" align="center"></el-table-column>
-				<el-table-column prop="updatedAt" label="更新时间" min-width="160" align="center"></el-table-column>
-				<el-table-column fixed="right" label="操作" width="100" align="center">
+				<el-table-column v-col="'number'" prop="number" label="设备编码" min-width="120" align="center" show-overflow-tooltip></el-table-column>
+				<el-table-column v-col="'createdAt'" prop="createdAt" label="创建时间" min-width="160" align="center"></el-table-column>
+				<el-table-column v-col="'updatedAt'" prop="updatedAt" label="更新时间" min-width="160" align="center"></el-table-column>
+				<el-table-column v-col="'handle'" fixed="right" label="操作" width="100" align="center">
 					<template #default="scope">
-						<el-button size="small" text type="primary" @click="toDetailPage(scope.row)">详情</el-button>
-						<el-button size="small" text type="info" @click="onDel(scope.row)">删除</el-button>
+						<el-button size="small" v-auth="'del'" text type="primary" @click="toDetailPage(scope.row)">详情</el-button>
+						<el-button size="small" v-auth="'detail'" text type="info" @click="onDel(scope.row)">删除</el-button>
 					</template>
 				</el-table-column>
 			</el-table>
@@ -82,10 +82,6 @@ getList();
  * 去往设备详情页面
  */
 const toDetailPage = async (row?: any) => {
-	// editFormRef.value.open(row);
-	// router.push('/monitor/notice');
-	
-	// router.push(`/iotmanager/network/tunnel/edit/${route.params && route.params.id}`)
 	router.push(`/ice104/device/detail/${row.number}`)
 };
 
@@ -116,5 +112,4 @@ const onDel = (row: any) => {
 		getList();
 	});
 };
-
 </script>

+ 4 - 5
src/views/iot/ice104/template/component/addOrEditTemplateTask.vue

@@ -4,7 +4,7 @@
 		:title="isEdit ? '修改模版点位' : '添加模版点位'"
 		v-model="dialogVisible"
 		width="600px"
-		:before-close="clsoeDialog"
+		:before-close="closeDialog"
 		:close-on-click-modal="false"
 	>
 		<el-form ref="formRef" :rules="formRules" :model="ruleForm" label-position="left" label-width="120px" style="width: 90%; margin: 0 auto">
@@ -23,8 +23,8 @@
 
 		</el-form>
 		<template #footer>
-			<el-button @click="clsoeDialog()"> 取 消 </el-button>
-			<el-button :loading="btnLoading" type="primary" @click="submitData"> 保 存 </el-button>
+			<el-button v-auth="'cancelData'" @click="closeDialog()"> 取 消 </el-button>
+			<el-button v-auth="'saveData'" :loading="btnLoading" type="primary" @click="submitData"> 保 存 </el-button>
 		</template>
 	</el-dialog>
 </template>
@@ -67,7 +67,6 @@ const getRandom = (num:number) =>{
 }
 const submitData = async () => {
 	formRef.value.validate((valid: boolean) => {
-		console.log(valid)
 		if (!valid) return
 		btnLoading.value = true
 		if (isEdit.value) {
@@ -100,6 +99,7 @@ const submitData = async () => {
  */
 const closeDialog = () => {
   dialogVisible.value = false;
+  isEdit.value = false;
   ruleForm.value = {
     dtId: 0,
 	title: '',
@@ -113,7 +113,6 @@ const closeDialog = () => {
 
 const open = async (row: any) => {
 	dialogVisible.value = true
-	console.log(row)
 	if (row && row.dtId.toString()) {
 		row.DataCoef = row.dataCoef
 		ruleForm.value = row;

+ 4 - 7
src/views/iot/ice104/template/component/edit.vue

@@ -10,8 +10,8 @@
 			<el-form-item label="模版编码" prop="number">
 				<el-input :disabled="isEdit" v-model="ruleForm.number" placeholder="请输入模版编码" />
 			</el-form-item>
-			<el-form-item label="名称">
-				<el-input v-model="ruleForm.title" placeholder="请输入名称" />
+			<el-form-item label="模版名称">
+				<el-input v-model="ruleForm.title" placeholder="请输入模版名称" />
 			</el-form-item>
 			<el-form-item label="状态">
 				<el-switch
@@ -30,8 +30,8 @@
 			</el-form-item>
 		</el-form>
 		<template #footer>
-			<el-button @click="clsoeDialog()"> 取 消 </el-button>
-			<el-button :loading="btnLoading" type="primary" @click="submitData"> 保 存 </el-button>
+			<el-button v-auth="'canceSaveTemplate'" @click="clsoeDialog()"> 取 消 </el-button>
+			<el-button v-auth="'saveTemplate'" :loading="btnLoading" type="primary" @click="submitData"> 保 存 </el-button>
 		</template>
 	</el-dialog>
 </template>
@@ -60,7 +60,6 @@ const formRules = computed(() => ({
 
 const submitData = async () => {
 	formRef.value.validate((valid: boolean) => {
-		console.log(valid)
 		if (!valid) return
 		btnLoading.value = true
 		if (isEdit.value) {
@@ -104,9 +103,7 @@ const closeDialog = () => {
 
 const open = async (row: any) => {
 	dialogVisible.value = true
-	console.log(row)
 	if (row && row.number.toString()) {
-		console.log(row)
 		ruleForm.value = row;
 		isEdit.value = true;
 	}else {

+ 0 - 8
src/views/iot/ice104/template/component/editTemplateForm.vue

@@ -56,7 +56,6 @@ const formRules = computed(() => ({
 
 const submitData = async () => {
 	formRef.value.validate((valid: boolean) => {
-		console.log(valid)
 		if (!valid) return
 		btnLoading.value = true
 		// 修改
@@ -72,18 +71,11 @@ const submitData = async () => {
 }
 
 const open = async (row: any) => {
-	console.log(row)
 	if (row && row.number.toString()) {
-		console.log(row)
 		ruleForm.value = row;
 	}
 }
 
-// 页面加载时
-onMounted(() => {
-
-});
-
 defineExpose({ open })
 </script>
 

+ 14 - 15
src/views/iot/ice104/template/component/templateTaskTable.vue

@@ -5,19 +5,19 @@
                 <el-input v-model="params.title" placeholder="请输入点位名称" clearablestyle="width: 240px" @keyup.enter.native="getList()" />
             </el-form-item>
             <el-form-item>
-                <el-button size="default" type="primary" class="ml10" @click="getList()">
+                <el-button v-auth="'query'" size="default" type="primary" class="ml10" @click="getList()">
                     <el-icon>
                         <ele-Search />
                     </el-icon>
                     查询
                 </el-button>
-                <el-button size="default" @click="resetQuery()">
+                <el-button v-auth="'reset'" size="default" @click="resetQuery()">
                     <el-icon>
                         <ele-Refresh />
                     </el-icon>
                     重置
                 </el-button>
-                <el-button type="primary" @click="addOrEdit()">
+                <el-button v-auth="'add'" type="primary" @click="addOrEdit()">
                     <el-icon>
                         <ele-FolderAdd />
                     </el-icon>
@@ -26,15 +26,15 @@
             </el-form-item>
         </el-form>
         <el-table :data="tableData" style="width: 100%" v-loading="loading">
-            <el-table-column type="index" label="序号" width="80" align="center" />
-            <el-table-column prop="title" label="点位名称"  align="center" show-overflow-tooltip></el-table-column>
-            <el-table-column prop="dataAttribName" label="数据项编码" min-width="120" align="center" show-overflow-tooltip></el-table-column>
-            <el-table-column prop="dataAddress" label="数据项点位" min-width="120" align="center" show-overflow-tooltip></el-table-column>
-            <el-table-column prop="dataCoef" label="倍率" min-width="120" align="center" show-overflow-tooltip></el-table-column>
-             <el-table-column fixed="right" label="操作" width="100" align="center">
+            <el-table-column v-col="'index'" type="index" label="序号" width="80" align="center" />
+            <el-table-column v-col="'title'" prop="title" label="点位名称"  align="center" show-overflow-tooltip></el-table-column>
+            <el-table-column v-col="'dataAttribName'" prop="dataAttribName" label="数据项编码" min-width="120" align="center" show-overflow-tooltip></el-table-column>
+            <el-table-column v-col="'dataAddress'" prop="dataAddress" label="数据项点位" min-width="120" align="center" show-overflow-tooltip></el-table-column>
+            <el-table-column v-col="'dataCoef'" prop="dataCoef" label="倍率" min-width="120" align="center" show-overflow-tooltip></el-table-column>
+            <el-table-column v-col="'handle'" fixed="right" label="操作" width="100" align="center">
                 <template #default="scope">
-                    <el-button size="small" text type="primary" @click="addOrEdit(scope.row)">修改</el-button>
-                    <el-button size="small" text type="info" @click="onDel(scope.row)">删除</el-button>
+                    <el-button v-auth="'edit'" size="small" text type="primary" @click="addOrEdit(scope.row)">修改</el-button>
+                    <el-button v-auth="'del'" size="small" text type="info" @click="onDel(scope.row)">删除</el-button>
                 </template>
             </el-table-column>
         </el-table>
@@ -53,7 +53,6 @@ import EditForm from './addOrEditTemplateTask.vue';
 import { useRoute } from 'vue-router';
 
 const route = useRoute();
-
 const { params, tableData, getList, loading } = useSearch(api.deviceTemplate.getList, 'data', { title: '', templateNumber: route.params.id });
 
 const emit = defineEmits(['updateList']);
@@ -64,7 +63,8 @@ const queryRef = ref();
  * 新增设备任务
  */
 const addOrEdit = async (row?: any) => {
-	editFormRef.value.open(row);
+    const data = {...row};
+	editFormRef.value.open(data);
 };
 
 /**
@@ -76,7 +76,7 @@ const onDel = (row: any) => {
 		cancelButtonText: '取消',
 		type: 'warning',
 	}).then(async () => {
-		await api.deviceTemplate.deleteItem({number: row.number});
+		await api.deviceTemplate.deleteItem({DtId: row.dtId});
 		ElMessage.success('删除成功');
 		getList();
 	});
@@ -93,7 +93,6 @@ onMounted(() => {
     getList();
 });
 
-// defineExpose({ open })
 </script>
 
 <style lang="scss" scoped>

+ 11 - 29
src/views/iot/ice104/template/detail.vue

@@ -9,14 +9,11 @@
 <template>
 	<div class="page page-full">
 		<el-card shadow="hover" class="page-full-part">
-			<el-tabs
-				v-model="activeName"
-				@tab-click="handleClick"
-			>
-				<el-tab-pane label="模版详情" name="1">
+			<el-tabs v-model="activeName">
+				<el-tab-pane label="模版详情" name="detail">
 					<EditTemplateForm ref="editFormRef" />
 				</el-tab-pane>
-				<el-tab-pane label="模版点位" name="2">
+				<el-tab-pane label="模版点位" name="point">
 					<TemplateTaskTable />
 				</el-tab-pane>
 			</el-tabs>
@@ -39,31 +36,22 @@ const route = useRoute();
 const editFormRef = ref();
 const detailFormData = ref({});
 const queryRef = ref();
-
-const activeName = ref('1')
-
-
+const activeName = ref('detail')
 
 const { params, tableData, getList, loading } = useSearch(api.device.getList, 'data', { title: '' });
-
 getList();
 
-
-
-const handleClick = (tab: TabsPaneContext, event: Event) => {
-  console.log(tab, event)
-}
-
-const addOrEdit = async (row?: any) => {
-	
-};
-
-// 重置表单
+/**
+ * 重置表单
+ */
 const resetQuery = () => {
 	queryRef.value.resetFields();
 	getList();
 };
 
+/**
+ * 删除
+ */
 const onDel = (row: any) => {
 	ElMessageBox.confirm(`此操作将删除接口:“${row.title}”,是否继续?`, '提示', {
 		confirmButtonText: '确认',
@@ -81,17 +69,11 @@ const onDel = (row: any) => {
  */
 const initTemplateInfo = async () => {
 	const res = await api.template.detailItem(route.params && route.params.id)
-	console.log(res)
 	detailFormData.value = res.data;
 	editFormRef.value.open(res.data);
 }
 // 页面加载时
 onMounted(() => {
-	// const id: = route.params && route.params.id;
-	// console.log(id)
 	initTemplateInfo()
 });
-	
-
-
-</script>
+</script>

+ 11 - 15
src/views/iot/ice104/template/index.vue

@@ -15,19 +15,19 @@
 						<el-input v-model="params.title" placeholder="请输入模版名称" clearablestyle="width: 240px" @keyup.enter.native="getList(1)" />
 					</el-form-item>
 					<el-form-item>
-						<el-button size="default" type="primary" class="ml10" @click="getList(1)">
+						<el-button v-auth="'query'" size="default" type="primary" class="ml10" @click="getList(1)">
 							<el-icon>
 								<ele-Search />
 							</el-icon>
 							查询
 						</el-button>
-						<el-button size="default" @click="resetQuery()">
+						<el-button v-auth="'reset'" size="default" @click="resetQuery()">
 							<el-icon>
 								<ele-Refresh />
 							</el-icon>
 							重置
 						</el-button>
-						<el-button type="primary" @click="addOrEdit()">
+						<el-button v-auth="'add'" type="primary" @click="addOrEdit()">
 							<el-icon>
 								<ele-FolderAdd />
 							</el-icon>
@@ -37,20 +37,20 @@
 				</el-form>
 			</div>
 			<el-table :data="tableData" style="width: 100%" v-loading="loading">
-				<el-table-column type="index" label="序号" width="80" align="center" />
-				<el-table-column prop="title" label="模版名称"  align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="number" label="模版编码" align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="status" label="状态" align="center" show-overflow-tooltip>
+				<el-table-column v-col="'index'" type="index" label="序号" width="80" align="center" />
+				<el-table-column v-col="'title'" prop="title" label="模版名称"  align="center" show-overflow-tooltip></el-table-column>
+				<el-table-column v-col="'number'" prop="number" label="模版编码" align="center" show-overflow-tooltip></el-table-column>
+				<el-table-column v-col="'status'" prop="status" label="状态" align="center" show-overflow-tooltip>
 					<template #default="scope">
 						<el-tag type="success" size="small" v-if="scope.row.status == 1">启用</el-tag>
 						<el-tag type="info" size="small" v-if="scope.row.status == 0">停用</el-tag>
 					</template>
 				</el-table-column>
-				<el-table-column prop="remarks" label="备注" align="center" show-overflow-tooltip></el-table-column>
-				<el-table-column fixed="right" label="操作" width="100" align="center">
+				<el-table-column v-col="'remarks'" prop="remarks" label="备注" align="center" show-overflow-tooltip></el-table-column>
+				<el-table-column v-col="'handle'" fixed="right" label="操作" width="100" align="center">
 					<template #default="scope">
-						<el-button size="small" text type="primary" @click="toDetailPage(scope.row)">详情</el-button>
-						<el-button size="small" text type="info" @click="onDel(scope.row)">删除</el-button>
+						<el-button v-auth="'detail'" size="small" text type="primary" @click="toDetailPage(scope.row)">详情</el-button>
+						<el-button v-auth="'del'" size="small" text type="info" @click="onDel(scope.row)">删除</el-button>
 					</template>
 				</el-table-column>
 			</el-table>
@@ -85,10 +85,6 @@ const addOrEdit = async (row?: any) => {
  * 去往设备详情页面
  */
 const toDetailPage = async (row?: any) => {
-	// editFormRef.value.open(row);
-	// router.push('/monitor/notice');
-	
-	// router.push(`/iotmanager/network/tunnel/edit/${route.params && route.params.id}`)
 	router.push(`/ice104/template/detail/${row.number}`)
 };