From a0431deb4d557cd50d304df885a275edf1390f56 Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期四, 16 一月 2025 17:34:32 +0800
Subject: [PATCH] 1、修改属性报错修护。 2、修改用户信息增加个人信息处修改判断处理。
---
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue | 375 ++++++++++++++++++++++++++++++++++-------------------
1 files changed, 241 insertions(+), 134 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..f49918d 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="1650px"
: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: 110,
rules: [{
required: true,
message: "璇疯緭鍏ユ煡璇㈡ā鏉垮悕绉�",
@@ -117,26 +135,49 @@
prop: 'direction',
type: 'radio',
value:'positive',
- labelWidth:70,
- span: 3,
+ labelWidth:80,
+ span: 3.5,
dicData: [{
label: '姝e悜',
value: 'positive'
}, {
label: '鍙嶅悜',
value: 'opposite'
- }]
+ }],
+ control: (val, form) => {
+ const dicData=this.getDicData(val);
+ this.form.btmType=dicData[0].value
+ return {
+ btmType: {
+ dicData: dicData
+ }
+ };
+ }
},{
label: '涓氬姟绫诲瀷',
prop: 'btmType',
type: 'select',
labelWidth:110,
- dicData: []
+ clearable:false,
+ rules: [{
+ required: true,
+ message: "璇烽�夋嫨涓氬姟绫诲瀷",
+ trigger: "blur"
+ }],
+ dicData: [],
+ change: ({ value, column, item, dic }) => {
+ this.form.btmType=value;
+ if(value){
+ this.getAllAttr();
+ this.getTemp(value,false);
+ }
+ },
}, {
label: '鐗堟湰鐗堟',
prop: 'version',
type: 'select',
- span:5,
+ span:4,
+ labelWidth:110,
dicData: [{
label: '褰撳墠鐗堟湰褰撳墠鐗堟',
value: 1
@@ -155,7 +196,7 @@
label: '鏌ヨ鏄惁鏈変笅绾�',
prop: 'queryISLeaf',
type: 'switch',
- labelWidth:140,
+ labelWidth:150,
dicData: [ {
label: '鍚�',
value: false
@@ -168,16 +209,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 +232,14 @@
prop: 'orderField'
}, {
label: '鎺掑簭鏂瑰紡',
- prop: 'orderMode'
+ prop: 'orderMode',
+ formatter:function (row, value) {
+ if (row.orderMode == 'ASC') {
+ return '鍗囧簭'
+ }else{
+ return '闄嶅簭'
+ }
+ }
}, {
label: '浼樺厛绾�',
prop: 'level'
@@ -254,6 +303,18 @@
menu: false,
addBtn: false,
filter:false,
+ draggable: true,
+ allowDrop: (node) => {
+ return false;
+ },
+ allowDrag: (dropNode) => {
+ return true;
+ },
+ props:{
+ label:'name',
+ value:'name',
+ children:'attrs'
+ }
},
linkQueryDefineForm:'',//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑鍊�
linkQueryDefineDic:[],//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
@@ -263,63 +324,14 @@
businessQueryDefineDic:[],//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑椤瑰睘鎬�
businessTreeData: [],
+ //楂樼骇鏌ヨ鏉′欢
+ queryTree:{},
+ //鏅�氭煡璇㈡潯浠�
+ queryCondition:[],
+
};
},
- watch: {
- //鏂瑰悜
- 'form.direction': {
- handler(val) {
- if(val=='positive'){
- //姝e悜
- const dicData=this.treeData.btmItemsTo.map(item=>{
- return {
- label: item,
- value: item
- }
- })
- dicData.push({
- label: '鎵�鏈夌被鍨�',
- value: '*'
- })
- this.$refs.form.updateDic('btmType', dicData);
- this.form.btmType=dicData[0].value
- this.getAllAttr();
- }else if(val=='opposite'){
- //鍙嶅悜
- const dicData=this.treeData.btmItemsFrom.map(item=>{
- return {
- label: item,
- value: item
- }
- })
- dicData.push({
- label: '鎵�鏈夌被鍨�',
- value: '*'
- })
- this.$refs.form.updateDic('btmType', dicData);
- this.form.btmType=dicData[0].value
- this.getAllAttr();
- }
- },
- immediate: true,
- },
- //涓氬姟绫诲瀷
- 'form.btmType': {
- handler(val) {
- if(val && val!='*'){
- this.getTemp(val,false);
- }
- },
- immediate: true,
- },
- 'dialog.type': {
- handler(val) {
- if(val=='edit'){
- }
- },
- immediate: true,
- },
- },
+ watch: {},
methods: {
openDialog(btmName, title, mode, data) {
this.dialog.title = title;
@@ -329,7 +341,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,16 +350,54 @@
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;
+
+ const dicData=this.getDicData(this.form.direction);
+ this.formItems[2].dicData=dicData;
} else {
+ this.form.direction='positive';
this.selectData = {};
this.orderInfoList = [];
- this.formItems[0].disabled = false;
+ this.queryCondition=[];
+ this.queryTree={
+ connector:'骞朵笖',
+ child:[]
+ };
+ const dicData=this.getDicData(this.form.direction);
+ this.formItems[2].dicData=dicData;
+ this.form.btmType=dicData[0].value;
}
+ this.dialog.showDialog = true;
+ this.treeOption.defaultExpandedKeys=[data.treeData.label]
this.getTemp(data.treeData.label, true)
- this.$nextTick(()=>{
- this.dialog.showDialog = true;
- });
-
+ },
+ //鑾峰彇涓氬姟绫诲瀷涓嬫媺鏁版嵁
+ getDicData(directionVal){
+ let dicData=[];
+ if(directionVal=='positive'){
+ //姝e悜
+ dicData=this.treeData.btmItemsTo.map(item=>{
+ return {
+ label: item,
+ value: item
+ }
+ })
+ }else if(directionVal=='opposite'){
+ //鍙嶅悜
+ dicData=this.treeData.btmItemsFrom.map(item=>{
+ return {
+ label: item,
+ value: item
+ }
+ })
+ }
+ dicData.push({
+ label: '鎵�鏈夌被鍨�',
+ value: '*'
+ })
+ return dicData;
},
cancelDialog() {
this.dialog.loading = false;
@@ -357,37 +406,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 +431,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;
@@ -412,7 +498,7 @@
this.orderFieldList.unshift({
id: data.row.orderField
});
- this.tableFormOption.column[0].dicData= this.orderFieldList
+ this.$refs.tableForm.updateDic('orderField',this.orderFieldList);
},
//鑾峰彇鎺掑簭璁剧疆涓墍鏈夋帓搴忓瓧娈�
getAllAttr() {
@@ -458,7 +544,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 +562,66 @@
},
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
- }]
+ this.linkTreeData = [ data.item]
}
},
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
- }]
+ this.businessTreeData = [ data.item]
}
- }
+ },
+ // 寮�濮嬫嫋鎷芥爲鑺傜偣浜嬩欢
+ 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