From fc7f59bcd94cebfcc3b2a1278984a3bb7b39edaa Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期二, 22 十月 2024 18:12:20 +0800 Subject: [PATCH] 功能模板树节点操作后局部刷新 --- Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue | 86 ++++++++++++++++++++---------------------- 1 files changed, 41 insertions(+), 45 deletions(-) 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 96e4274..612fa18 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 @@ -1,33 +1,34 @@ <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> + <avue-radio v-model="radioForm" :disabled ="readOnly" :dic="radioDic" style="margin: 0 20px 0 0;display: inline-block"></avue-radio> + <el-button v-if="!readOnly" plain size="mini" type="primary" @click="clearValue">娓呯┖鍊�</el-button> + <el-button v-if="!readOnly" 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" + <avue-select :disabled ="readOnly" v-model="condition.operator" type="tree" :dic="condition.operatorDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select> + <el-date-picker :disabled ="readOnly" 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;" + <el-date-picker :disabled ="readOnly" 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 :disabled ="readOnly" 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> + <avue-input-number :disabled ="readOnly" 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 :disabled ="readOnly" 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 :disabled ="readOnly" v-else v-model="condition.ordinaryValue" placeholder="" style="width: 300px;margin-right: 5px;"></avue-input> + <el-button v-if="!readOnly" plain size="mini" type="primary" @click="checkTemp(index)">閫夋嫨鏌ヨ妯℃澘</el-button> + <el-button v-if="!readOnly" 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-drop="handleDrop" @node-drag-end="handleDragEnd" style="height: 220px" :data="treeData" :option="treeOption" @node-click="nodeClick" node-key="value"></avue-tree> + <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;"> + <div v-if="!readOnly" 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> @@ -93,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" @@ -101,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"> @@ -130,6 +132,10 @@ levelFlag:{ type: Number, default: 0 + }, + readOnly:{ + type:Boolean, + default:false } }, data() { @@ -452,18 +458,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 != '鎴栬��') { @@ -476,32 +482,36 @@ 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 }, - handleDrop(draggingNode, dropNode, dropType, ev) { - debugger; - console.log('tree drop: ', dropNode.label, dropType); - }, 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) { @@ -610,21 +620,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