From 5042cc0622d36e3df27d0d086219ba17bc40e2f5 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 06 九月 2024 18:29:55 +0800
Subject: [PATCH] 查询模板
---
/dev/null | 728 ---------------------------------------------
Source/plt-web/plt-web-ui/src/api/queryTemplate/businessTypeQuery.js | 8
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue | 64 ++-
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue | 41 -
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue | 69 ++-
5 files changed, 96 insertions(+), 814 deletions(-)
diff --git a/Source/plt-web/plt-web-ui/src/api/queryTemplate/businessTypeQuery.js b/Source/plt-web/plt-web-ui/src/api/queryTemplate/businessTypeQuery.js
index 852c6bd..80d1bb2 100644
--- a/Source/plt-web/plt-web-ui/src/api/queryTemplate/businessTypeQuery.js
+++ b/Source/plt-web/plt-web-ui/src/api/queryTemplate/businessTypeQuery.js
@@ -1,9 +1,9 @@
import request from '@/router/axios';
//涓氬姟绫诲瀷鏌ヨ妯℃澘
// 鍒涘缓
-export function linkSave(params) {
+export function btmSave(params) {
return request({
- url: "/api/templateController/linkSave",
+ url: "/api/templateController/btmSave",
method: "post",
data:params
});
@@ -17,9 +17,9 @@
});
}
// 鏌ヨ鏉′欢鐨勬煡璇㈡帴鍙o紝鎺ュ彛鏂瑰紡POST锛屽弬鏁颁笌淇濆瓨鎺ュ彛浼犲弬涓�鑷�
-export function getCriteria(params) {
+export function getCriteriaBtm(params) {
return request({
- url: "/api/templateController/getCriteria",
+ url: "/api/templateController/getCriteriaBtm",
method: "post",
data:params
});
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue
index e11d0a9..f30d66c 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue
@@ -60,6 +60,7 @@
:queryCondition="queryCondition"
:queryTree="queryTree"
:levelFlag.sync="form.levelFlag"
+ @queryHandler="queryHandler"
></form-query-dialog>
</fieldset>
</el-main>
@@ -73,10 +74,10 @@
</template>
<script>
-import {linkSave,getBizTypeQTDs} from "@/api/queryTemplate/businessTypeQuery";
+import {btmSave,getBizTypeQTDs,getCriteriaBtm} from "@/api/queryTemplate/businessTypeQuery";
import basicOption from "@/util/basic-option";
import {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine";
-import formQueryDialog from "./formQueryDialog.vue";
+import formQueryDialog from "@/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue";
export default {
name: "formDialog",
components:{formQueryDialog},
@@ -201,9 +202,18 @@
allowDrop: () => {
return false;
},
- allowDrag: () => {
- return true;
+ allowDrag: (dropNode) => {
+ if (dropNode.data.attrs && dropNode.data.attrs.length>0) {
+ return false;
+ } else {
+ return true;
+ }
},
+ props:{
+ label:'name',
+ value:'name',
+ children:'attrs'
+ }
},
businessQueryDefineForm:'',//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑鍊�
businessQueryDefineDic:[],//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
@@ -227,7 +237,6 @@
if (data.selectData) {
this.selectData = data.selectData;
this.form.qtName = this.selectData.qtName;
- 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));//宸叉湁鎺掑簭
}
@@ -244,6 +253,7 @@
};
}
this.dialog.showDialog = true;
+ this.treeOption.defaultExpandedKeys=[data.treeData.label]
this.getTemp(data.treeData.label)
this.getAllAttr();
},
@@ -268,7 +278,7 @@
if (valid) {
const formData=this.initFormData();
console.log(formData)
- linkSave(formData).then(res => {
+ btmSave(formData).then(res => {
if (res.data.success) {
this.$message.success("淇濆瓨鎴愬姛");
this.cancelDialog();
@@ -288,16 +298,7 @@
qtName: this.form.qtName,
levelFlag: this.form.levelFlag,
queryTemplate: {
- clauseList: ['*'],
- direction: this.form.direction,
- id: this.form.qtName,
- linkType: this.form.btmName,
orderInfoList: this.orderInfoList,
- recReturnMode: 1,//閫掑綊杩斿洖鏁版嵁妯″紡:1锛歊ECRETURNMODE_FLAT, 2锛歊ECRETURNMODE_FILTER
- rightFlag: true,
- secretFlag: true,
- type: 'link',
- version: this.form.version
}
}
if (formData.levelFlag == 1) {
@@ -341,7 +342,6 @@
},
// 琛屽垹闄�
rowDeleteHandler(data) {
- debugger;
this.orderInfoList.splice(data.index,1);
this.orderFieldList.unshift({
id: data.row.orderField
@@ -390,31 +390,22 @@
//鑾峰彇鏌ヨ妯℃澘瀹氫箟涓嬫媺
getTemp(btmName) {
if (btmName) {
- queryTemplateListByAttr({btmName: btmName}).then(res => {
+ queryTemplateListByAttr({btmName: btmName,linkFlag:false}).then(res => {
const data = res.data.data.map(item => {
- item.label = item.name + '-' + (item.linkTypeName || item.btmName);
+ item.label = item.name + '-' + item.btmName;
item.value = item.name;
return item;
});
this.businessQueryDefineDic=data;
data.length>0 && (this.businessQueryDefineForm= data[0].value);
-
})
}
},
businessQueryDefineChange(data) {
if (data.value) {
- const childData = data.item.attrs.map(item => {
- return {
- label: item.name,
- value: item.name,
- atttributes:item
- };
- });
this.businessTreeData = [{
- label: data.value,
- value: data.value,
- children: childData
+ name: data.value,
+ attrs: data.item.attrs
}]
}
},
@@ -430,7 +421,25 @@
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();
+ getCriteriaBtm(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>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formQueryDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formQueryDialog.vue
deleted file mode 100644
index 38ff8db..0000000
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formQueryDialog.vue
+++ /dev/null
@@ -1,728 +0,0 @@
-<template>
- <div style="padding: 0 10px">
- <div style="text-align: center;margin-bottom: 10px">
- <avue-radio v-model="radioForm" :dic="radioDic" style="margin: 0 20px 0 0;display: inline-block"></avue-radio>
- <el-button plain size="mini" type="primary" @click="clearValue">娓呯┖鍊�</el-button>
- <el-button plain size="mini" type="primary" @click="delAll">鍒犻櫎鍏ㄩ儴鏉′欢</el-button>
- </div>
- <div v-if="radioForm==0" @drop="drop" @dragover.prevent style="height: 220px;text-align: center;">
- <div v-for="(condition,index) in conditionList" :key="index" class="el-input--small" style="margin-bottom: 5px; text-align:left">
- <span style="width: 200px;display: inline-block;text-align: right" :title="condition.clause">{{condition.clause}}</span>
- <avue-select v-model="condition.operator" type="tree" :dic="condition.operatorDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
- <el-date-picker v-if="condition.type=='VTDate'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;" value-format="YYYY-MM-DD"
- type="date">
- </el-date-picker>
- <el-date-picker v-else-if="condition.type=='VTDateTime'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"
- type="datetime">
- </el-date-picker>
- <el-time-select v-else-if="condition.type=='VTTime'" v-model="condition.ordinaryValue" value-format="HH:mm:ss" style="width:300px;margin-right: 5px;display: inline-block;">
- </el-time-select>
- <avue-input-number v-else-if="condition.type=='VTInteger'" precision="0" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
- <avue-input-number v-else-if="condition.type=='VTLong' || condition.type=='VTDouble'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
- <avue-input v-else v-model="condition.ordinaryValue" placeholder="" style="width: 300px;margin-right: 5px;"></avue-input>
- <el-button plain size="mini" type="primary" @click="checkTemp(index)">閫夋嫨鏌ヨ妯℃澘</el-button>
- <el-button size="mini" type="danger" icon="el-icon-delete" @click="delCondition(index)" style="padding: 7px 8px"></el-button>
- </div>
- </div>
- <div v-else @drop="drop" @dragover.prevent style="height: 220px;text-align: left">
- <avue-tree ref="tree" @node-drag-end="handleDragEnd" @node-drag-leave="handleDragLeave" @node-drag-over="handleDragOver"
- style="height: 220px" :data="treeData" :option="treeOption" @node-click="nodeClick" node-key="value"></avue-tree>
- </div>
- <div style="text-align: right;margin-top: 10px;">
- <el-button v-if="radioForm==1" plain size="mini" type="primary" @click="addHandler">澧炲姞閫昏緫</el-button>
- <el-button v-if="radioForm==1" plain size="mini" type="primary" @click="editHandler">淇敼鏉′欢</el-button>
- <el-button v-if="radioForm==1" plain size="mini" type="primary" @click="delHandler">鍒犻櫎</el-button>
- <el-button plain size="mini" type="primary" @click="queryHandler">鏌ヨ</el-button>
- <el-button plain size="mini" type="primary" @click="">鍙栨秷</el-button>
- </div>
-
- <!--淇敼鏉′欢-->
- <el-dialog v-dialogDrag
- :title="dialog.title"
- :visible.sync="dialog.showDialog"
- width="550px"
- :append-to-body="true"
- class="avue-dialog"
- :destroy-on-close="true"
- :close-on-click-modal="false"
- @close="dialog.showDialog=false">
- <div style="height: 200px;">
- {{clickNode.showLabel}}
- <avue-select v-if="['VTInteger','VTDouble','VTLong'].includes(clickNode.type)" v-model="clickNode.operator" type="tree" :dic="operatorIntDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
- <avue-select v-else-if="['VTDateTime','VTDate','VTTime'].includes(clickNode.type)" v-model="clickNode.operator" type="tree" :dic="operatorDateDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
- <avue-select v-else v-model="clickNode.operator" type="tree" :dic="operatorDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
- <el-date-picker v-if="clickNode.type=='VTDate'" v-model="clickNode.inputValue" style="width:300px;display: inline-block;" value-format="YYYY-MM-DD"
- type="date">
- </el-date-picker>
- <el-date-picker v-else-if="clickNode.type=='VTDateTime'" v-model="clickNode.inputValue" style="width:350px;display: inline-block;"
- type="datetime">
- </el-date-picker>
- <el-time-select v-else-if="clickNode.type=='VTTime'" v-model="clickNode.inputValue" value-format="HH:mm:ss" style="width:300px;display: inline-block;">
- </el-time-select>
- <avue-input-number v-else-if="clickNode.type=='VTInteger'" precision="0" v-model="clickNode.inputValue" style="width:300px;display: inline-block;"></avue-input-number>
- <avue-input-number v-else-if="clickNode.type=='VTLong' || clickNode.type=='VTDouble'" v-model="clickNode.inputValue" style="width:300px;display: inline-block;"></avue-input-number>
- <avue-input v-else v-model="clickNode.inputValue" type="textarea" style="width: 300px;margin-right: 5px;vertical-align: top;"></avue-input>
- </div>
- <div class="dialog-footer avue-dialog__footer">
- <el-button size="small" @click="checkTemp" v-if="!['VTInteger','VTDouble','VTLong','VTDateTime','VTDate','VTTime'].includes(clickNode.type)">閫夋嫨鏌ヨ妯℃澘</el-button>
- <el-button type="primary" plain size="small" @click="submitDialog" >淇� 瀛�</el-button>
- <el-button size="small" @click="dialog.showDialog=false">鍙� 娑�</el-button>
- </div>
- </el-dialog>
- <el-dialog v-dialogDrag
- :title="queryDialog.title"
- :visible.sync="queryDialog.showDialog"
- width="800px"
- :append-to-body="true"
- class="avue-dialog"
- :destroy-on-close="true"
- :close-on-click-modal="false"
- @close="cancleQueryDialog">
- <div class="el-input--small">
- 杈撳叆鏌ヨ瀛楁锛�<avue-input v-model="queryField" style="width: 500px;margin-bottom: 10px"></avue-input>
- <avue-crud ref="crud" :data="crudData" :option="crudOption"
- :page.sync="page"
- :table-loading="tableLoading"
- @selection-change="selectionChange"
- @row-click="rowClick"
- @size-change="sizeChange"
- @current-change="currentChange">
- </avue-crud>
- </div>
- <div class="dialog-footer avue-dialog__footer">
- <el-button type="primary" plain size="small" @click="submitQueryDialog" >纭� 瀹�</el-button>
- <el-button size="small" @click="cancleQueryDialog">鍙� 娑�</el-button>
- </div>
- </el-dialog>
- <el-dialog v-dialogDrag
- :title="queryResultDialog.title"
- :visible.sync="queryResultDialog.showDialog"
- width="900px"
- :append-to-body="true"
- class="avue-dialog"
- :destroy-on-close="true"
- :close-on-click-modal="false"
- @close="queryResultDialog.showDialog='false'">
- <div class="el-input--small">
- <avue-crud ref="crud" :data="resultData" :option="resultOption"
- :table-loading="queryResultDialog.loading">
- </avue-crud>
- </div>
- </el-dialog>
- </div>
-</template>
-
-<script>
-import basicOption from "@/util/basic-option";
-import {getAllQTs} from "@/api/queryTemplate/queryDefine";
-import {getCriteria} from "@/api/queryTemplate/linkTypeQuery";
-import {dateFormat} from "@/util/date"
-export default {
-name: "formQueryDialog",
- props: {
- queryCondition: {
- type: Array,
- default: []
- },
- queryTree: {
- type: Object,
- default: {}
- },
- levelFlag:{
- type: Number,
- default: 0
- }
- },
- data() {
- return {
- dialog: {
- showDialog: false,
- title: "鏌ヨ鏉′欢璁剧疆妗�",
- loading: false
- },
- queryDialog: {
- showDialog: false,
- title: "閫夋嫨鏌ヨ妯℃澘",
- loading: false
- },
- queryResultDialog: {
- showDialog: false,
- title: "鏌ヨ缁撴灉",
- loading: false
- },
- radioDic: [{
- label: '鏅��',
- value: 0
- }, {
- label: '楂樼骇',
- value: 1
- }],
- conditionList:[],
- treeData:[],
- treeOption:{
- defaultExpandAll:true,
- menu: false,
- addBtn: false,
- filter:false,
- draggable: true,
- allowDrop: (draggingNode, dropNode, type) => {
- debugger;
- if (dropNode.data.label === '骞朵笖' || dropNode.data.label === '鎴栬��') {
- return true;
- } else {
- this.$message.error('璇烽�変腑閫昏緫鏉′欢娣诲姞鏌ヨ椤�');
- return false;
- }
- },
- allowDrag: (draggingNode) => {
- return false;
- },
- },
- page: {
- currentPage: 1,
- pageSize: 10,
- total: 0,
- pageSizes: [10, 30, 50, 100],
- },
- crudData:[],
- crudOption: {
- ...basicOption,
- addBtn: false,
- editBtn: false,
- delBtn: false,
- tip: false,
- header: false,
- height: window.innerHeight-220,
- menu: false,
- column: [{
- label: '鏌ヨ妯℃澘鍚嶇О',
- prop: 'qtName',
- sortable: true,
- }, {
- label: '閾炬帴绫诲瀷鎴栦笟鍔$被鍨�',
- prop: 'btmName',
- sortable: true,
- }]
- },
- tableLoading: false,
- selectionRow:[],
- queryField:'',
- resultData:[],
- resultOption: {
- ...basicOption,
- addBtn: false,
- editBtn: false,
- delBtn: false,
- tip: false,
- header: false,
- height: window.innerHeight-220,
- menu: false,
- column: [{
- label: 'OID',
- prop: 'OID',
- }, {
- label: 'CREATOR',
- prop: 'CREATOR'
- }, {
- label: 'CREATETIME',
- prop: 'CREATETIME'
- }]
- },
- clickNode:{},
- operatorIntDic:[{
- label: '=',
- value: '='
- }, {
- label: '!=',
- value: '!='
- }, {
- label: '鍖呭惈',
- value: '鍖呭惈'
- }, {
- label: 'in',
- value: 'in'
- }, {
- label: 'not in',
- value: 'not in'
- }, {
- label: '>=',
- value: '>='
- }, {
- label: '>',
- value: '>'
- }, {
- label: '<=',
- value: '<='
- }, {
- label: '<',
- value: '<'
- }],
- operatorDateDic : [{
- label: '=',
- value: '='
- }, {
- label: '!=',
- value: '!='
- }, {
- label: 'in',
- value: 'in'
- }, {
- label: 'not in',
- value: 'not in'
- }, {
- label: '>=',
- value: '>='
- }, {
- label: '<=',
- value: '<='
- }],
- operatorDic : [{
- label: '=',
- value: '='
- }, {
- label: '!=',
- value: '!='
- }, {
- label: '鍖呭惈',
- value: '鍖呭惈'
- }, {
- label: 'in',
- value: 'in'
- }, {
- label: 'not in',
- value: 'not in'
- }]
- }
- },
- computed: {
- radioForm:{
- get() {
- return this.levelFlag;
- },
- set(value) {
- this.$emit('update:levelFlag', value);
- }
- }
- },
- watch: {
- queryCondition:{
- handler(val) {
- if(val && val.cIMap){
- let list=[];
- let that=this;
- let getValue =function(queryTemplate,item) {
- for (let key in queryTemplate.condition.cIMap) {
- if (queryTemplate.condition.cIMap[key].leaf) {
- item.clause += '.' + queryTemplate.condition.cIMap[key].leafInfo.clause;
- if (queryTemplate.condition.cIMap[key].leafInfo.value.queryTemplate) {
- getValue(queryTemplate.condition.cIMap[key].leafInfo.value.queryTemplate, item)
- } else {
- item.ordinaryValue = queryTemplate.condition.cIMap[key].leafInfo.value.ordinaryValue;
- item.type=queryTemplate.condition.cIMap[key].leafInfo.type;
- if(['VTInteger','VTDouble','VTLong'].includes(item.type)){
- item.operatorDic=that.operatorIntDic;
- }else if(['VTDateTime','VTDate','VTTime'].includes(item.type)){
- item.operatorDic=that.operatorDateDic;
- }else{
- item.operatorDic=that.operatorDic;
- }
- }
- }
- }
- }
- for (let key in val.cIMap) {
- if (this.queryCondition.cIMap[key].leaf) {
- let clause=this.queryCondition.cIMap[key].leafInfo.clause;
- let operator= this.queryCondition.cIMap[key].leafInfo.operator;
- let item={
- clause: clause,
- operator: operator,
- ordinaryValue: '',
- operatorDic :[]
- }
- if(this.queryCondition.cIMap[key].leafInfo.value.queryTemplate) {
- getValue(this.queryCondition.cIMap[key].leafInfo.value.queryTemplate, item)
- }else {
- item.ordinaryValue=this.queryCondition.cIMap[key].leafInfo.value.ordinaryValue;
- item.type=this.queryCondition.cIMap[key].leafInfo.type;
- if(['VTInteger','VTDouble','VTLong'].includes(item.type)){
- item.operatorDic=that.operatorIntDic;
- }else if(['VTDateTime','VTDate','VTTime'].includes(item.type)){
- item.operatorDic=that.operatorDateDic;
- }else{
- item.operatorDic=that.operatorDic;
- }
- }
- list.push(item)
- }
- }
- this.conditionList= list;
- }else{
- this.conditionList=[]
- }
- },
- immediate: true,
- deep:true
- },
- queryTree:{
- handler(val) {
- this.treeIndex=0;
- if(val && Object.keys(val).length>0){
- let treeData = [];
- let that=this;
- function initValue(nodeChild) {
- let children=[];
- if(nodeChild){
- nodeChild.forEach((item,index)=>{
- that.treeIndex++;
- if(item.column !=null && item.column != undefined){
- const values= item.column.split(' ');
- let inputValue='';
- let operator='';
- let showLabel=''
- if(item.column.indexOf('not in')!=-1){
- operator='not in';
- if(values.length>3){
- inputValue=values[3];
- }
- }else{
- if(values.length>1){
- operator=values[1];
- if(values.length>2){
- inputValue=values[2];
- }
- }
- }
-
- if(values[0].indexOf('.')!=-1){
- const labels=values[0].split('.')
- showLabel=labels[labels.length-1];
- }else {
- showLabel=values[0];
- }
- children.push({
- label:item.column,
- value:item.column+that.treeIndex,
- type:item.type,
- valueIndex:'v'+that.treeIndex,
- inputValue:inputValue,
- operator:operator,
- showLabel:showLabel
- })
- }else {
- children.push({
- label:item.connector,
- value:item.connector+that.treeIndex,
- valueIndex:'v'+that.treeIndex,
- children:initValue(item.child)
- })
- }
- })
- }
- return children;
- }
- const node={
- label:val.connector,
- value:val.connector+this.treeIndex,
- valueIndex:'v'+this.treeIndex,
- children:initValue(val.child)
- }
- treeData.push(node)
- this.treeData = treeData;
- }else {
- this.treeData=[{
- label: '骞朵笖',
- value: '骞朵笖' + this.treeIndex,
- valueIndex: 'v' + this.treeIndex,
- connector: '骞朵笖',
- children: []
- }]
- }
- },
- immediate: true,
- deep:true
- }
- },
- created() {
- this.getTemp();
- },
- methods: {
- // 鎷栨嫿鍒版椂
- drop(event) {
- // 浣跨敤 getData 鏂规硶鑾峰彇鏁版嵁
- const data = JSON.parse(event.dataTransfer.getData('item'));
- if (this.radioForm == 0) {
- const params = {
- clause: data.value,
- operator: '=',
- ordinaryValue: ''
- }
- if (data.atttributes.vtDataType == 'VTInteger' || data.atttributes.vtDataType == 'VTDouble' || data.atttributes.vtDataType == 'VTLong') {
- params.operatorDic =JSON.parse(JSON.stringify(this.operatorIntDic)) ;
- } else if (data.atttributes.vtDataType == 'VTDateTime' || data.atttributes.vtDataType == 'VTDate' || data.atttributes.vtDataType == 'VTTime') {
- params.operatorDic = JSON.parse(JSON.stringify(this.operatorDateDic))
- } else {
- params.operatorDic = JSON.parse(JSON.stringify(this.operatorDic))
- }
- params.type=data.atttributes.vtDataType;
- this.conditionList.push(params)
- }else {
- if (this.clickNode.label != '骞朵笖' && this.clickNode.label != '鎴栬��') {
- this.$message.error('璇烽�変腑閫昏緫鏉′欢娣诲姞鏌ヨ椤�');
- return;
- }
- this.$refs.tree.append(this.initItem(data), this.clickNode);
- }
- },
- initItem(data){
- this.treeIndex++;
- let item={
- label: data.value,
- value: data.value + this.treeIndex,
- valueIndex: 'v' + this.treeIndex,
- type:data.vtDataType,
- children: [],
- inputValue:data.value,
- operator:'=',
- showLabel:data.value
- };
- let showLabel='';
- if(data.value.indexOf('.')!=-1){
- const labels=data.value.split('.')
- showLabel=labels[labels.length-1];
- }else {
- showLabel=data.value;
- }
- item.showLabel=showLabel;
- return item
- },
- handleDragEnd(draggingNode, dropNode, dropType, ev) {
- debugger;
- console.log('tree drag end: ', dropNode && dropNode.label, dropType);
- },
- handleDragOver({event}) {
- // 闃绘榛樿浜嬩欢锛屽厑璁告斁缃�
- event.preventDefault();
- },
- handleDragLeave({event}) {
- // 娓呴櫎鏀剧疆鏁堟灉
- event.preventDefault();
- },
- //鍒犻櫎鏅�氭煡璇㈡潯浠�
- delCondition(index) {
- this.conditionList.splice(index, 1);
- },
- //娓呯┖鍊�
- clearValue() {
- if (this.radioForm == 0) {
- this.conditionList.map(item => {
- item.ordinaryValue = '';
- return item;
- })
- this.conditionList = this.conditionList
- } else {
- if(this.treeData[0] && this.treeData[0].children) {
- this.clearTreeValue(this.treeData[0].children)
- }
- }
- },
- clearTreeValue(nodes){
- nodes.forEach((node,index)=>{
- if(node.children){
- this.clearTreeValue(node.children)
- }else {
- if(node.label.indexOf('not in')!=-1){
- node.label=node.label.split(' ')[0]+' not in'
- }else {
- let values = node.label.split(' ');
- if (values.length > 2) {
- node.label = values[0] + ' ' + values[1];
- }
- }
- }
- })
- },
- //鍒犻櫎鍏ㄩ儴鏉′欢
- delAll() {
- if (this.radioForm == 0) {
- this.conditionList = [];
- } else {
- this.treeIndex = 0;
- this.treeData = [];
- this.clickNode={};
- }
- },
- nodeClick(data) {
- this.clickNode = data
- },
- //鏍� 澧炲姞閫昏緫鏉′欢
- addHandler() {
- if (Object.keys(this.clickNode).length>0) {
- if (this.clickNode.label == '骞朵笖' || this.clickNode.label == '鎴栬��') {
- this.treeIndex++;
- this.$refs.tree.append({
- label: '骞朵笖',
- value: '骞朵笖' + this.treeIndex,
- valueIndex: 'v' + this.treeIndex,
- children: []
- }, this.$refs.tree.getCurrentNode());
- } else {
- this.$message.error("鍙兘瀵归�昏緫鏉′欢澧炲姞閫昏緫鏉′欢");
- }
- } else {
- if(this.treeData.length==0){
- this.treeIndex = 0;
- this.treeData = [{
- label: '骞朵笖',
- value: '骞朵笖' + this.treeIndex,
- valueIndex: 'v' + this.treeIndex,
- connector: '骞朵笖',
- children: []
- }]
- }else {
- this.$message.warning("璇烽�夋嫨鏌ヨ鏉′欢");
- }
- }
- },
- //鏍� 淇敼鏉′欢
- editHandler() {
- if (Object.keys(this.clickNode).length>0) {
- if (this.clickNode.label == '骞朵笖') {
- this.clickNode.label = '鎴栬��'
- } else if (this.clickNode.label == '鎴栬��') {
- this.clickNode.label = '骞朵笖'
- } else {
- this.dialog.showDialog = true;
- }
- } else {
- this.$message.warning("璇烽�夋嫨鏌ヨ鏉′欢");
- }
- },
- //鏍� 鍒犻櫎鏉′欢
- delHandler() {
- if (Object.keys(this.clickNode).length>0) {
- this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬潯浠跺悧锛�', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- this.$refs.tree.remove(this.clickNode);
- this.clickNode = {};
- })
- } else {
- this.$message.warning("璇烽�夋嫨鏌ヨ鏉′欢");
- }
- },
- //鏌ヨ
- queryHandler(){
- this.$parent.$parent.$parent.$parent.$refs.form.validate((valid) => {
- if (valid) {
- this.queryResultDialog.loading=true;
- const formData=this.$parent.$parent.$parent.$parent.initFormData();
- getCriteria(formData).then(res => {
- if (res.data.success) {
- this.resultData=res.data.data;
- this.queryResultDialog.showDialog=true;
- this.queryResultDialog.loading=false;
- }
- });
- } else {
- return false;
- }
- });
- },
- //閫夋嫨鏌ヨ妯℃澘
- checkTemp(index) {
- if(index>=0){
- if(['VTInteger','VTDouble','VTLong','VTDateTime','VTDate','VTTime'].includes(this.conditionList[index].type)){
- return false;
- }
- }
- this.queryIndex=index;
- this.queryDialog.showDialog=true;
- this.$nextTick(()=>{
- this.$refs.crud.doLayout();
- });
- },
- //鏌ヨ鏉′欢淇濆瓨
- submitDialog() {
- const values= this.clickNode.label.split(' ');
- this.clickNode.label = values[0]+' '+this.clickNode.operator+' '+this.clickNode.inputValue;
- try{
- if(['VTDateTime'].includes(this.clickNode.type)){
- this.clickNode.label = values[0]+' '+this.clickNode.operator+' '+dateFormat(this.clickNode.inputValue);
- }else if(['VTDate'].includes(this.clickNode.type)){
- this.clickNode.label = values[0]+' '+this.clickNode.operator+' '+dateFormat(this.clickNode.inputValue ,'yyyy-MM-dd');
- }else if(['VTTime'].includes(this.clickNode.type)){
- this.clickNode.label = values[0]+' '+this.clickNode.operator+' '+dateFormat(this.clickNode.inputValue ,'hh:mm:ss');
- }
- }catch (e) {
-
- }
-
- this.dialog.showDialog = false;
- },
- //鑾峰彇鏌ヨ妯℃澘鍒楄〃
- getTemp() {
- getAllQTs(this.page.currentPage, this.page.pageSize).then(res => {
- this.crudData = res.data.data;
- this.tableLoading = false;
- })
- },
- rowClick(row) {
- this.$refs.crud.toggleSelection();
- this.$refs.crud.toggleRowSelection(row); //閫変腑褰撳墠琛�
- this.selectionRow = [row];
- },
- selectionChange(list) {
- this.selectionRow = list;
- },
- selectionClear() {
- this.selectionRow = [];
- this.$refs.crud.toggleSelection();
- },
- //閫夋嫨鏌ヨ妯℃澘
- submitQueryDialog() {
- if (this.selectionRow.length == 0) {
- this.$message.error('璇烽�夋嫨鏌ヨ妯℃澘鍐嶈繘琛屾搷浣�');
- return;
- }
- if (this.queryField == '') {
- this.$message.error('璇峰~鍐欒緭鍏ユ煡璇㈠瓧娈�');
- return;
- }
- const value = this.selectionRow[0].qtName + ';' + this.queryField
- if (this.radioForm == 0) {
- //鏅��
- this.conditionList[this.queryIndex].ordinaryValue = value;
- } else {
- this.clickNode.inputValue = value;
- }
- this.cancleQueryDialog();
- },
- cancleQueryDialog(){
- this.queryDialog.showDialog = false;
- this.selectionClear();
- this.queryField='';
- this.queryIndex=null;
- },
- sizeChange(val) {
- this.page.pageSize = val;
- this.getTemp();
- },
-
- // 椤电爜
- currentChange(val) {
- this.page.currentPage = val;
- this.getTemp();
- },
- }
-}
-</script>
-
-<style scoped>
-::v-deep .el-input--small .el-input__inner{
- height: 28px;
- line-height: 28px;
-}
-</style>
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 d37c1d1..0561cfc 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
@@ -60,6 +60,7 @@
:queryCondition="queryCondition"
:queryTree="queryTree"
:levelFlag.sync="form.levelFlag"
+ @queryHandler="queryHandler"
></form-query-dialog>
</fieldset>
</el-main>
@@ -85,7 +86,7 @@
<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 {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine";
import formQueryDialog from "./formQueryDialog.vue";
@@ -268,12 +269,21 @@
addBtn: false,
filter:false,
draggable: true,
- allowDrop: () => {
+ allowDrop: (node) => {
return false;
},
- allowDrag: () => {
- return true;
+ 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:[],//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
@@ -369,7 +379,9 @@
};
}
this.dialog.showDialog = true;
+ this.treeOption.defaultExpandedKeys=[data.treeData.label]
this.getTemp(data.treeData.label, true)
+
},
cancelDialog() {
this.dialog.loading = false;
@@ -534,33 +546,17 @@
},
linkQueryDefineChange(data) {
if (data.value) {
- const childData = data.item.attrs.map(item => {
- return {
- label: item.name,
- value: item.name,
- atttributes: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.attrs.map(item => {
- return {
- label: item.name,
- value: item.name,
- atttributes:item
- };
- });
this.businessTreeData = [{
- label: data.value,
- value: data.value,
- children: childData
+ name: data.value,
+ attrs: data.item.attrs
}]
}
},
@@ -576,7 +572,25 @@
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>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue
index 38ff8db..237f483 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue
@@ -94,6 +94,7 @@
<el-button size="small" @click="cancleQueryDialog">鍙� 娑�</el-button>
</div>
</el-dialog>
+ <!--鏌ヨ-->
<el-dialog v-dialogDrag
:title="queryResultDialog.title"
:visible.sync="queryResultDialog.showDialog"
@@ -102,7 +103,7 @@
class="avue-dialog"
:destroy-on-close="true"
:close-on-click-modal="false"
- @close="queryResultDialog.showDialog='false'">
+ @close="queryResultDialog.showDialog=false">
<div class="el-input--small">
<avue-crud ref="crud" :data="resultData" :option="resultOption"
:table-loading="queryResultDialog.loading">
@@ -453,18 +454,18 @@
const data = JSON.parse(event.dataTransfer.getData('item'));
if (this.radioForm == 0) {
const params = {
- clause: data.value,
+ clause: data.name,
operator: '=',
ordinaryValue: ''
}
- if (data.atttributes.vtDataType == 'VTInteger' || data.atttributes.vtDataType == 'VTDouble' || data.atttributes.vtDataType == 'VTLong') {
+ if (data.vtDataType == 'VTInteger' || data.vtDataType == 'VTDouble' || data.vtDataType == 'VTLong') {
params.operatorDic =JSON.parse(JSON.stringify(this.operatorIntDic)) ;
- } else if (data.atttributes.vtDataType == 'VTDateTime' || data.atttributes.vtDataType == 'VTDate' || data.atttributes.vtDataType == 'VTTime') {
+ } else if (data.vtDataType == 'VTDateTime' || data.vtDataType == 'VTDate' || data.vtDataType == 'VTTime') {
params.operatorDic = JSON.parse(JSON.stringify(this.operatorDateDic))
} else {
params.operatorDic = JSON.parse(JSON.stringify(this.operatorDic))
}
- params.type=data.atttributes.vtDataType;
+ params.type=data.vtDataType;
this.conditionList.push(params)
}else {
if (this.clickNode.label != '骞朵笖' && this.clickNode.label != '鎴栬��') {
@@ -477,21 +478,21 @@
initItem(data){
this.treeIndex++;
let item={
- label: data.value,
- value: data.value + this.treeIndex,
+ label: data.name,
+ value: data.name + this.treeIndex,
valueIndex: 'v' + this.treeIndex,
type:data.vtDataType,
children: [],
- inputValue:data.value,
+ inputValue:'',
operator:'=',
- showLabel:data.value
+ showLabel:data.name
};
let showLabel='';
- if(data.value.indexOf('.')!=-1){
- const labels=data.value.split('.')
+ if(data.name.indexOf('.')!=-1){
+ const labels=data.name.split('.')
showLabel=labels[labels.length-1];
}else {
- showLabel=data.value;
+ showLabel=data.name;
}
item.showLabel=showLabel;
return item
@@ -615,21 +616,7 @@
},
//鏌ヨ
queryHandler(){
- this.$parent.$parent.$parent.$parent.$refs.form.validate((valid) => {
- if (valid) {
- this.queryResultDialog.loading=true;
- const formData=this.$parent.$parent.$parent.$parent.initFormData();
- getCriteria(formData).then(res => {
- if (res.data.success) {
- this.resultData=res.data.data;
- this.queryResultDialog.showDialog=true;
- this.queryResultDialog.loading=false;
- }
- });
- } else {
- return false;
- }
- });
+ this.$emit('queryHandler');
},
//閫夋嫨鏌ヨ妯℃澘
checkTemp(index) {
--
Gitblit v1.9.3