From 6c170b6b427f0882da35957e73f385d318970a06 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 25 十月 2024 17:59:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue | 227 +++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 172 insertions(+), 55 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 6ed5d5c..23931d1 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"
@@ -47,7 +47,7 @@
<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-tree style="height: 265px" :data="linkTreeData" :option="treeOption" @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd">
</avue-tree>
</div>
</fieldset>
@@ -55,9 +55,13 @@
<el-main>
<fieldset style="margin: 0 10px">
<legend> 鏌ヨ鏉′欢 </legend>
- <div style="height: 300px;">
-
- </div>
+ <form-query-dialog ref="formQuery"
+ style="height: 300px;"
+ :queryCondition="queryCondition"
+ :queryTree="queryTree"
+ :levelFlag.sync="form.levelFlag"
+ @queryHandler="queryHandler"
+ ></form-query-dialog>
</fieldset>
</el-main>
<el-aside style="width:350px">
@@ -66,7 +70,7 @@
<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-tree style="height: 265px" :data="businessTreeData" :option="treeOption" @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd">
</avue-tree>
</div>
</fieldset>
@@ -82,26 +86,23 @@
<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 {deleteAttributes} from "@/api/modeling/attributePool/api";
+import {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine";
+import formQueryDialog from "./formQueryDialog.vue";
export default {
name: "formDialog",
+ components:{formQueryDialog},
data(){
return {
dialog: {
showDialog: false,
title: "鍒涘缓",
- submitTxt: "淇濆瓨",
- submitIcon: "el-icon-check",
loading: false,
type: "add",
},
crudDialog: {
showDialog: false,
- submitTxt: "淇濆瓨",
- submitIcon: "el-icon-check",
},
formItems:[{
label: '鏌ヨ妯℃澘鍚嶇О',
@@ -175,16 +176,8 @@
form:{
btmName:'',
qtName: '',
- queryTemplate:{
-
- }
- },
- formTemplate:{
- btmName:'',
- qtName: '',
- queryTemplate:{
-
- }
+ levelFlag:0,//0:鏅�氭煡璇㈡ā鏉�; 1:楂樼骇鏌ヨ妯℃澘"
+ queryTemplate:{}
},
//宸叉湁鎺掑簭鍒楄〃閰嶇疆
crudOption: {
@@ -200,7 +193,14 @@
prop: 'orderField'
}, {
label: '鎺掑簭鏂瑰紡',
- prop: 'orderMode'
+ prop: 'orderMode',
+ formatter:function (row, value) {
+ if (row.orderMode == 'ASC') {
+ return '鍗囧簭'
+ }else{
+ return '闄嶅簭'
+ }
+ }
}, {
label: '浼樺厛绾�',
prop: 'level'
@@ -264,6 +264,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:[],//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
@@ -273,6 +289,11 @@
businessQueryDefineDic:[],//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑椤瑰睘鎬�
businessTreeData: [],
+ //楂樼骇鏌ヨ鏉′欢
+ queryTree:{},
+ //鏅�氭煡璇㈡潯浠�
+ queryCondition:[],
+
};
},
watch: {
@@ -321,41 +342,66 @@
}
},
immediate: true,
- },
+ }
},
methods: {
openDialog(btmName, title, mode, data) {
this.dialog.title = title;
- this.dialog.showDialog = true;
this.dialog.type = mode;
this.form.btmName = btmName;
this.treeData = data.treeData;
if (data.selectData) {
this.selectData = data.selectData;
- this.orderInfoList = JSON.parse(JSON.stringify(data.selectData.queryTemplate.orderInfoList));//宸叉湁鎺掑簭
+ this.form.qtName = this.selectData.qtName;
+ this.form.direction = this.selectData.queryTemplate.direction;
+ this.form.btmType = this.selectData.queryTemplate.btmType;
+ this.form.version = this.selectData.queryTemplate.version;
+ this.form.queryISLeaf = this.selectData.queryTemplate.queryISLeaf;
+ this.form.level = this.selectData.queryTemplate.level;
+ 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.orderInfoList = [];
+ this.queryCondition=[];
+ this.queryTree={
+ connector:'骞朵笖',
+ child:[]
+ };
}
- this.getTemp(data.treeData.label,true)
+ this.dialog.showDialog = true;
+ this.treeOption.defaultExpandedKeys=[data.treeData.label]
+ this.getTemp(data.treeData.label, true)
+
},
cancelDialog() {
+ this.dialog.loading = false;
+ this.dialog.showDialog = false;
this.$nextTick(() => {
- this.form = this.formTemplate;
+ this.form = {
+ btmName: '',
+ qtName: '',
+ levelFlag:0,
+ queryTemplate: {}
+ };
this.orderInfoList =[];
- this.dialog.loading = false;
- this.dialog.showDialog = false;
- this.$refs.form.resetFields();
this.businessQueryDefineForm='';
this.linkQueryDefineForm='';
+ this.$refs.form.clearValidate();
});
},
submitDialog() {
this.$refs.form.validate((valid) => {
if (valid) {
- linkSave(this.form).then(res => {
- if (res.success) {
+ const formData=this.initFormData();
+ console.log(formData)
+ linkSave(formData).then(res => {
+ if (res.data.success) {
this.$message.success("淇濆瓨鎴愬姛");
this.cancelDialog();
this.$emit("refresh");
@@ -365,6 +411,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;
@@ -424,7 +524,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;
@@ -442,34 +542,51 @@
},
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) {
+ this.resultData=res.data.data;
+ this.$refs.formQuery.queryResultDialog.showDialog=true;
+ this.$refs.formQuery.queryResultDialog.loading=false;
+ }
+ });
+ } else {
+ return false;
+ }
+ });
+ },
},
}
</script>
--
Gitblit v1.9.3