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