Browse Source

1、修改添加设备数据源数据类型为属性类型
2、修改遗漏的数据建模数据记录字段中文
3、已发布状态数据源和建模不可以添加

yukai 3 years ago
parent
commit
e13da3f8dc

+ 1 - 0
src/api/datahub/index.ts

@@ -15,6 +15,7 @@ export default {
     devedit: (data: object) => put('/source/device/edit', data),
     devapi: (sourceId: number) => get('/source/device/get', { sourceId }),
     getdevList: (params: object) => get('/product/device/list', params),
+    getdata: (params: object) => get('/source/source/getdata', params),
 
     },
    

+ 20 - 1
src/views/datahub/modeling/component/detail.vue

@@ -17,8 +17,17 @@
       </div>
     </template>
 
-			<el-table :data="tableData.data" style="width: 100%" @selection-change="handleSelectionChange">
+			<el-table :data="tableData.data" style="width: 100%">
 				<el-table-column v-for="(item, index) in jData" :key="item" :label="item" :prop="item" show-overflow-tooltip align="center">
+					<template #header>
+					<div >
+						{{item}}
+					</div>
+					<div >
+						<span v-if="item=='created_at'">时间</span>
+						{{titleData[item]}}
+					</div>
+				</template>
 				</el-table-column>
 			</el-table>
 			<pagination
@@ -70,6 +79,7 @@ export default defineComponent({
 		const state = reactive<DicState>({
 			isShowDialog: false,
 		    dialogFullScreen: false,
+			titleData:{},
 
 			jsonsData: [],
 			jData: [],
@@ -89,6 +99,15 @@ export default defineComponent({
 			resetForm();
 			if (row) {
 				state.tableData.param.id = row.id;
+
+				api.tnode.getList({tid:row.id}).then((res: any) => {
+					res.list.forEach((item, index) => {
+						state.titleData[item.key] = item.name;
+					});
+					console.log(state.titleData);
+						//state.titleData = res.list;
+						//state.tableData.total = res.Total;
+					});
 				typeList();
 
 			}

+ 2 - 2
src/views/datahub/modeling/detail.vue

@@ -81,13 +81,13 @@
 						</template>
 					</el-table-column>
 				</el-table>
-				<pagination
+				<!-- <pagination
 					v-show="tableData.data.length > 0"
 					:total="tableData.total"
 					v-model:page="tableData.param.pageNum"
 					v-model:limit="tableData.param.pageSize"
 					@pagination="typeList"
-				/>
+				/> -->
 			</div>
 		</div>
 		<EditDic ref="editDicRef" @typeList="typeList" />

+ 10 - 1
src/views/datahub/source/component/editNode.vue

@@ -16,7 +16,7 @@
 					</el-radio-group>
 				</el-form-item>
 
-				<el-form-item label="数据类型" prop="dataType">
+				<el-form-item label="数据类型" prop="dataType" v-if="detail.from==1">
 					<el-select v-model="ruleForm.dataType" filterable placeholder="请选择数据类型">
 						<el-option v-for="item in tabData" :key="item.value" :label="item.label" :value="item.value" />
 					</el-select>
@@ -309,6 +309,14 @@ export default defineComponent({
 			});
 		};
 
+		const getNodeList=(e)=>{
+			state.propertyData.forEach((item, index) => {
+				if(item.key===e){
+					state.ruleForm.dataType=item.valueType.type;
+				}
+			});
+		}
+
 		const onKeyclick=(e)=>{
 			//console.log(e);
 			if(e.target.innerText && e.target.className=='jv-key'){
@@ -356,6 +364,7 @@ export default defineComponent({
 
 
 		return {
+			getNodeList,
 			onKeyclick,
 			getOrgIdArr,
 			addRule,

+ 156 - 0
src/views/datahub/source/component/list.vue

@@ -0,0 +1,156 @@
+<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>
+			<el-button @click="quanping">
+			<span v-if="dialogFullScreen==false">全屏</span>
+			<span v-if="dialogFullScreen==true">缩小</span>
+			</el-button>
+			<el-button @click="close">
+			关闭
+			</el-button>
+		</div>
+      </div>
+    </template>
+
+			<el-table :data="tableData.data" style="width: 100%" @selection-change="handleSelectionChange">
+				<el-table-column v-for="(item, index) in jData" :key="item" :label="item" :prop="item" show-overflow-tooltip align="center">
+				</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"
+			/>
+		</el-dialog>
+	</div>
+</template>
+
+<script lang="ts">
+import { reactive, toRefs, defineComponent, ref, unref } from 'vue';
+import api from '/@/api/datahub';
+import { ElMessage } from 'element-plus';
+
+interface DicState {
+	isShowDialog: boolean;
+}
+
+// 定义接口来定义对象的类型
+interface TableDataRow {
+	id: number;
+	name: string;
+	key: string;
+
+	createBy: string;
+}
+interface TableDataState {
+	ids: number[];
+	tableData: {
+		data: Array<TableDataRow>;
+		total: number;
+		loading: boolean;
+		param: {
+			pageNum: number;
+			pageSize: number;
+			id: number;
+		};
+	};
+}
+
+export default defineComponent({
+	name: 'deviceEditPro',
+	setup(prop, { emit }) {
+		const formRef = ref<HTMLElement | null>(null);
+		const state = reactive<DicState>({
+			isShowDialog: false,
+		    dialogFullScreen: false,
+
+			jsonsData: [],
+			jData: [],
+			tableData: {
+				data: [],
+				total: 0,
+				loading: false,
+				param: {
+					pageNum: 1,
+					pageSize: 10,
+					id: 0,
+				},
+			},
+		});
+		// 打开弹窗
+		const openDialog = (row: RuleFormState | null) => {
+			resetForm();
+			if (row) {
+				state.tableData.param.id = row.id;
+				typeList();
+
+			}
+			state.isShowDialog = true;
+		};
+
+		const typeList = () => {
+			console.log(state.tableData.param);
+			api.common.getdata(state.tableData.param).then((res: any) => {
+				const jsonData = JSON.parse(res.data);
+				state.tableData.data = jsonData;
+				state.jData = Object.keys(jsonData[0]);
+				console.log(jsonData);
+				state.jData.forEach((item, index) => {
+					state.jsonsData[index] = jsonData[item];
+				});
+
+				state.tableData.total = res.Total;
+				//state.ruleForm = res.data.dictType
+			});
+		};
+		const resetForm = () => {
+			state.jsonsData = [];
+			state.jData = [];
+			state.tableData= {
+				data: [],
+				total: 0,
+				loading: false,
+				param: {
+					pageNum: 1,
+					pageSize: 10,
+				},
+			}
+		};
+		// 关闭弹窗
+		const closeDialog = () => {
+			state.isShowDialog = false;
+		};
+		const quanping=()=>{
+			state.dialogFullScreen = state.dialogFullScreen?false:true;
+		}
+		// 取消
+		const onCancel = () => {
+			closeDialog();
+		};
+
+		return {
+			quanping,
+			typeList,
+			openDialog,
+			closeDialog,
+			onCancel,
+			formRef,
+			...toRefs(state),
+		};
+	},
+});
+</script>
+<style scoped>
+.my-header {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+}
+</style>

+ 12 - 3
src/views/datahub/source/index.vue

@@ -89,7 +89,7 @@
 						>
 							<span>详情</span>
 						</router-link>
-
+						<el-button size="small" text type="success" @click="onOpenList(scope.row)">数据记录</el-button>
 						<el-button size="small" text type="warning" @click="onOpenEdit(scope.row)" v-if="scope.row.status==0">修改</el-button>
 						<el-button size="small" text type="danger" @click="onRowDel(scope.row)" v-if="scope.row.status==0">删除</el-button>
 					</template>
@@ -104,7 +104,7 @@
 			/>
 		</el-card>
 		<EditDic ref="editDicRef" @typeList="typeList" />
-		<Detail ref="detailRef" />
+		<ListDic ref="listDicRef" />
 	</div>
 </template>
 
@@ -112,6 +112,7 @@
 import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
 import { ElMessageBox, ElMessage, FormInstance } from 'element-plus';
 import EditDic from './component/edit.vue';
+import ListDic from './component/list.vue';
 import api from '/@/api/datahub';
 
 // 定义接口来定义对象的类型
@@ -141,10 +142,11 @@ interface TableDataState {
 
 export default defineComponent({
 	name: 'sourcelist',
-	components: { EditDic },
+	components: { EditDic,ListDic },
 	setup() {
 		const addDicRef = ref();
 		const editDicRef = ref();
+		const listDicRef=ref();
 		const queryRef = ref();
 		const state = reactive<TableDataState>({
 			typeData: [
@@ -193,6 +195,11 @@ export default defineComponent({
 				state.tableData.total = res.Total;
 			});
 		};
+
+		//打开数据记录
+		const onOpenList=(row: TableDataRow)=>{
+			listDicRef.value.openDialog(row);
+		}
 		// 打开新增数据源弹窗
 		const onOpenAdd = () => {
 			editDicRef.value.openDialog();
@@ -245,7 +252,9 @@ export default defineComponent({
 		return {
 			addDicRef,
 			editDicRef,
+			listDicRef,
 			queryRef,
+			onOpenList,
 			onOpenAdd,
 			onOpenEdit,
 			onRowDel,

+ 1 - 1
src/views/device/product/component/editPro.vue

@@ -61,7 +61,7 @@
 
       
         <el-form-item label="设备类型" prop="deviceType">
-          <el-radio-group v-model="ruleForm.deviceType" model-value="设备">
+          <el-radio-group v-model="ruleForm.deviceType" >
             <el-radio label="设备">设备</el-radio>
 
             <el-radio label="网关">网关</el-radio>