From f2a30ff604b495e3b58eaee54c6cbd8dfe836f5c Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期四, 02 一月 2025 14:57:44 +0800
Subject: [PATCH] 在线人员信息接口名称调整
---
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue | 268 +++++++++++++++++++++++++++++++++++++---------------
1 files changed, 189 insertions(+), 79 deletions(-)
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue
index 9d55699..4147ca2 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue
@@ -2,7 +2,7 @@
<el-dialog v-dialogDrag
:title="dialog.title"
:visible.sync="dialog.showDialog"
- width="1600px"
+ width="1620px"
:append-to-body="true"
class="avue-dialog"
:destroy-on-close="true"
@@ -46,8 +46,8 @@
<legend> 閾炬帴绫诲瀷鍊欓�夋潯浠� </legend>
<div>
鏌ヨ妯℃澘瀹氫箟
- <avue-select @change="linkQueryDefineChange" class="el-input--small" v-model="linkQueryDefineForm" placeholder="璇烽�夋嫨鍐呭" type="tree" :dic="linkQueryDefineDic" style="width:240px"></avue-select>
- <avue-tree style="height: 265px" :data="linkTreeData" :option="treeOption">
+ <avue-select @change="linkQueryDefineChange" class="el-input--small" v-model="linkQueryDefineForm" placeholder="璇烽�夋嫨鍐呭" type="tree" :dic="linkQueryDefineDic" style="width:245px"></avue-select>
+ <avue-tree style="width:335px;height: 268px" :data="linkTreeData" :option="treeOption" @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd">
</avue-tree>
</div>
</fieldset>
@@ -55,7 +55,14 @@
<el-main>
<fieldset style="margin: 0 10px">
<legend> 鏌ヨ鏉′欢 </legend>
- <form-query-dialog style="height: 300px;"></form-query-dialog>
+ <form-query-dialog ref="formQuery"
+ style="height: 300px;"
+ :queryCondition="queryCondition"
+ :queryTree="queryTree"
+ :levelFlag.sync="form.levelFlag"
+ :searchColumn="searchColumn"
+ @queryHandler="queryHandler"
+ ></form-query-dialog>
</fieldset>
</el-main>
<el-aside style="width:350px">
@@ -63,8 +70,8 @@
<legend> 涓氬姟绫诲瀷鍊欓�夋潯浠� </legend>
<div>
鏌ヨ妯℃澘瀹氫箟
- <avue-select @change="businessQueryDefineChange" class="el-input--small" v-model="businessQueryDefineForm" placeholder="璇烽�夋嫨鍐呭" type="tree" :dic="businessQueryDefineDic" style="width: 240px;"></avue-select>
- <avue-tree style="height: 265px" :data="businessTreeData" :option="treeOption">
+ <avue-select @change="businessQueryDefineChange" class="el-input--small" v-model="businessQueryDefineForm" placeholder="璇烽�夋嫨鍐呭" type="tree" :dic="businessQueryDefineDic" style="width: 245px;"></avue-select>
+ <avue-tree style="width:335px;height: 268px" :data="businessTreeData" :option="treeOption" @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd">
</avue-tree>
</div>
</fieldset>
@@ -72,7 +79,7 @@
</el-container>
</div>
<div class="dialog-footer avue-dialog__footer">
- <el-button type="primary" plain size="small" @click="submitDialog" >淇� 瀛�</el-button>
+ <el-button type="primary" size="small" @click="submitDialog" >淇� 瀛�</el-button>
<el-button size="small" @click="cancelDialog">鍙� 娑�</el-button>
</div>
</el-dialog>
@@ -80,33 +87,44 @@
<script>
import {getAllOrderbyAttributeByLink} from "@/api/modeling/linkType/api";
-import {linkSave} from "@/api/queryTemplate/linkTypeQuery";
+import {linkSave,getCriteria} from "@/api/queryTemplate/linkTypeQuery";
import basicOption from "@/util/basic-option";
-import {gridTemplate} from "@/api/queryTemplate/queryDefine";
+import {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine";
import formQueryDialog from "./formQueryDialog.vue";
export default {
name: "formDialog",
components:{formQueryDialog},
data(){
return {
+ searchColumn: [
+ {
+ label: 'OID',
+ prop: 'OID',
+ },
+ {
+ label: 'CREATOR',
+ prop: 'CREATOR'
+ },
+ {
+ label: 'CREATETIME',
+ prop: 'CREATETIME'
+ },
+ ],
dialog: {
showDialog: false,
title: "鍒涘缓",
- submitTxt: "淇濆瓨",
- submitIcon: "el-icon-check",
loading: false,
type: "add",
},
crudDialog: {
showDialog: false,
- submitTxt: "淇濆瓨",
- submitIcon: "el-icon-check",
},
formItems:[{
label: '鏌ヨ妯℃澘鍚嶇О',
prop: 'qtName',
type: 'input',
- span:5,
+ span:4.5,
+ labelWidth: 100,
rules: [{
required: true,
message: "璇疯緭鍏ユ煡璇㈡ā鏉垮悕绉�",
@@ -117,8 +135,8 @@
prop: 'direction',
type: 'radio',
value:'positive',
- labelWidth:70,
- span: 3,
+ labelWidth:80,
+ span: 3.5,
dicData: [{
label: '姝e悜',
value: 'positive'
@@ -136,7 +154,8 @@
label: '鐗堟湰鐗堟',
prop: 'version',
type: 'select',
- span:5,
+ span:4,
+ labelWidth:110,
dicData: [{
label: '褰撳墠鐗堟湰褰撳墠鐗堟',
value: 1
@@ -155,7 +174,7 @@
label: '鏌ヨ鏄惁鏈変笅绾�',
prop: 'queryISLeaf',
type: 'switch',
- labelWidth:140,
+ labelWidth:150,
dicData: [ {
label: '鍚�',
value: false
@@ -168,16 +187,17 @@
label: '瀛愯妭鐐瑰眰娆℃暟',
prop: 'level',
type: 'number',
- span:3,
+ labelWidth:130,
value:1
}],
form:{
btmName:'',
qtName: '',
+ levelFlag:0,//0:鏅�氭煡璇㈡ā鏉�; 1:楂樼骇鏌ヨ妯℃澘"
queryTemplate:{}
},
//宸叉湁鎺掑簭鍒楄〃閰嶇疆
- crudOption: {
+ crudOption: {
...basicOption,
addBtn: false,
editBtn: false,
@@ -190,7 +210,14 @@
prop: 'orderField'
}, {
label: '鎺掑簭鏂瑰紡',
- prop: 'orderMode'
+ prop: 'orderMode',
+ formatter:function (row, value) {
+ if (row.orderMode == 'ASC') {
+ return '鍗囧簭'
+ }else{
+ return '闄嶅簭'
+ }
+ }
}, {
label: '浼樺厛绾�',
prop: 'level'
@@ -254,6 +281,22 @@
menu: false,
addBtn: false,
filter:false,
+ draggable: true,
+ allowDrop: (node) => {
+ return false;
+ },
+ allowDrag: (dropNode) => {
+ if (dropNode.data.attrs && dropNode.data.attrs.length>0) {
+ return false;
+ } else {
+ return true;
+ }
+ },
+ props:{
+ label:'name',
+ value:'name',
+ children:'attrs'
+ }
},
linkQueryDefineForm:'',//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑鍊�
linkQueryDefineDic:[],//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
@@ -263,6 +306,11 @@
businessQueryDefineDic:[],//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑椤瑰睘鎬�
businessTreeData: [],
+ //楂樼骇鏌ヨ鏉′欢
+ queryTree:{},
+ //鏅�氭煡璇㈡潯浠�
+ queryCondition:[],
+
};
},
watch: {
@@ -311,14 +359,7 @@
}
},
immediate: true,
- },
- 'dialog.type': {
- handler(val) {
- if(val=='edit'){
- }
- },
- immediate: true,
- },
+ }
},
methods: {
openDialog(btmName, title, mode, data) {
@@ -329,7 +370,6 @@
if (data.selectData) {
this.selectData = data.selectData;
- this.formItems[0].disabled = true
this.form.qtName = this.selectData.qtName;
this.form.direction = this.selectData.queryTemplate.direction;
this.form.btmType = this.selectData.queryTemplate.btmType;
@@ -339,15 +379,21 @@
if (data.selectData.queryTemplate.orderInfoList && data.selectData.queryTemplate.orderInfoList.length > 0) {
this.orderInfoList = JSON.parse(JSON.stringify(data.selectData.queryTemplate.orderInfoList));//宸叉湁鎺掑簭
}
+ this.queryCondition=this.selectData.queryTemplate.condition;
+ this.queryTree=this.selectData.tree;
+ this.form.levelFlag=this.selectData.levelFlag;
} else {
this.selectData = {};
this.orderInfoList = [];
- this.formItems[0].disabled = false;
+ this.queryCondition=[];
+ this.queryTree={
+ connector:'骞朵笖',
+ child:[]
+ };
}
+ this.dialog.showDialog = true;
+ this.treeOption.defaultExpandedKeys=[data.treeData.label]
this.getTemp(data.treeData.label, true)
- this.$nextTick(()=>{
- this.dialog.showDialog = true;
- });
},
cancelDialog() {
@@ -357,37 +403,20 @@
this.form = {
btmName: '',
qtName: '',
+ levelFlag:0,
queryTemplate: {}
};
this.orderInfoList =[];
- this.$refs.form.clearValidate();
this.businessQueryDefineForm='';
this.linkQueryDefineForm='';
+ this.$refs.form.clearValidate();
});
},
submitDialog() {
this.$refs.form.validate((valid) => {
if (valid) {
- let formData={
- btmName:this.form.btmName,
- qtName:this.form.qtName,
- queryTemplate:{
- btmType:this.form.btmType,
- clauseList:['*'],
- direction:this.form.direction,
- id:this.form.qtName,
- level:this.form.level,
- linkType:this.form.btmName,
- orderInfoList:this.orderInfoList,
- queryISLeaf:this.form.queryISLeaf,
- recReturnMode:1,//閫掑綊杩斿洖鏁版嵁妯″紡:1锛歊ECRETURNMODE_FLAT, 2锛歊ECRETURNMODE_FILTER
- rightFlag:true,
- secretFlag:true,
- type:'link',
- version:this.form.version
- }
- }
- formData.condition=[]
+ const formData=this.initFormData();
+ console.log(formData)
linkSave(formData).then(res => {
if (res.data.success) {
this.$message.success("淇濆瓨鎴愬姛");
@@ -399,6 +428,60 @@
return false;
}
});
+ },
+ initFormData() {
+ let formData = {
+ btmName: this.form.btmName,
+ qtName: this.form.qtName,
+ levelFlag: this.form.levelFlag,
+ queryTemplate: {
+ btmType: this.form.btmType,
+ clauseList: ['*'],
+ direction: this.form.direction,
+ id: this.form.qtName,
+ level: this.form.level,
+ linkType: this.form.btmName,
+ orderInfoList: this.orderInfoList,
+ queryISLeaf: this.form.queryISLeaf,
+ recReturnMode: 1,//閫掑綊杩斿洖鏁版嵁妯″紡:1锛歊ECRETURNMODE_FLAT, 2锛歊ECRETURNMODE_FILTER
+ rightFlag: true,
+ secretFlag: true,
+ type: 'link',
+ version: this.form.version
+ }
+ }
+ if (formData.levelFlag == 1) {
+ //楂樼骇
+ let that = this;
+ function initValue(nodeChild) {
+ let children = [];
+ if (nodeChild) {
+ nodeChild.forEach((item, index) => {
+ if (item.label != '骞朵笖' && item.label != '鎴栬��') {
+ children.push(item.label);
+ } else {
+ children.push({
+ connector: item.label,
+ child: initValue(item.children)
+ })
+ }
+ })
+ }
+ return children;
+ }
+
+ let treeData = {
+ connector: this.$refs.formQuery.treeData[0].label
+ };
+ if (this.$refs.formQuery.treeData[0].children) {
+ treeData.child = initValue(this.$refs.formQuery.treeData[0].children);
+ }
+ formData.tree = treeData
+ }
+
+ formData.condition = this.$refs.formQuery.conditionList;
+
+ return formData;
},
getFormData(form) {
this.form = form;
@@ -458,7 +541,7 @@
//鑾峰彇鏌ヨ妯℃澘瀹氫箟涓嬫媺
getTemp(btmName,linkFlag) {
if (btmName) {
- gridTemplate({btmName: btmName, linkFlag: linkFlag}).then(res => {
+ queryTemplateListByAttr({btmName: btmName, linkFlag: linkFlag,direction:linkFlag?null:this.form.direction}).then(res => {
const data = res.data.data.map(item => {
item.label = item.name + '-' + (item.linkTypeName || item.btmName);
item.value = item.name;
@@ -476,45 +559,72 @@
},
linkQueryDefineChange(data) {
if (data.value) {
- const childData = data.item.abNames.map(item => {
- return {
- label: item,
- value: item
- };
- });
this.linkTreeData = [{
- label: data.value,
- value: data.value,
- children: childData
+ name: data.value,
+ attrs: data.item.attrs
}]
}
},
businessQueryDefineChange(data) {
if (data.value) {
- const childData = data.item.abNames.map(item => {
- return {
- label: item,
- value: item
- };
- });
this.businessTreeData = [{
- label: data.value,
- value: data.value,
- children: childData
+ name: data.value,
+ attrs: data.item.attrs
}]
}
- }
+ },
+ // 寮�濮嬫嫋鎷芥爲鑺傜偣浜嬩欢
+ handleDragStart(node, ev) {
+ // 浣跨敤 setData 鏂规硶璁剧疆鏁版嵁
+ ev.dataTransfer.setData('item', JSON.stringify(node.data));
+ if(this.form.levelFlag==1){
+ this.$refs.formQuery.$refs.tree.$emit('tree-node-drag-start', ev,{node:this.$refs.formQuery.initItem(node)});
+ }
+ },
+ handleDragEnd(draggingNode,endNode,position,ev){
+ if(this.form.levelFlag==1) {
+ this.$refs.formQuery.$refs.tree.$emit('tree-node-drag-end', ev);
+ }
+ },
+ //鏌ヨ
+ queryHandler(){
+ this.$refs.form.validate((valid) => {
+ if (valid) {
+ this.$refs.formQuery.queryResultDialog.loading=true;
+ const formData=this.initFormData();
+ getCriteria(formData).then(res => {
+ if (res.data.success) {
+ const data = res.data.data;
+ const result = data.map(item => {
+ const filteredAttrs = item.hisAttrValList.filter(attr =>
+ attr.attrName === "OID" || attr.attrName === "CREATOR" || attr.attrName === "CREATETIME"
+ );
+
+ const newObj = filteredAttrs.reduce((acc, attr) => {
+ acc[attr.attrName] = attr.attrVal;
+ return acc;
+ }, {});
+
+ return newObj;
+ });
+
+ this.$refs.formQuery.resultData = result;
+ this.$refs.formQuery.queryResultDialog.showDialog = true;
+ this.$refs.formQuery.queryResultDialog.loading = false;
+ }
+ });
+ } else {
+ return false;
+ }
+ });
+ },
},
}
</script>
<style scoped>
fieldset {
- border-radius: 5px;
- -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
- box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
padding: 10px 6px;
- box-sizing: border-box;
margin: 0;
border: 1px solid #EBEEF5;
}
--
Gitblit v1.9.3