From bce5128f2b33735774e0777b00bca4ca4a61962a Mon Sep 17 00:00:00 2001
From: wangting <wangting@vci-tech.com>
Date: 星期五, 27 十二月 2024 18:16:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue | 288 +++++++++++++++++++++++++++++++++------------------------
1 files changed, 168 insertions(+), 120 deletions(-)
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 696107f..3056f86 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
@@ -1,23 +1,23 @@
<template>
<el-dialog v-dialogDrag
+ :append-to-body="true"
+ :close-on-click-modal="false"
+ :destroy-on-close="true"
:title="dialog.title"
:visible.sync="dialog.showDialog"
- width="1620px"
- :append-to-body="true"
class="avue-dialog"
- :destroy-on-close="true"
- :close-on-click-modal="false"
+ width="1620px"
@close="cancelDialog">
<div style="min-height: 665px;max-height: 85vh;padding-bottom: 50px;">
- <basic-form key="linkQueryForm" style="margin-bottom: 0"
- ref="form"
- :span="4"
- :formItems="formItems"
+ <basic-form key="linkQueryForm" ref="form"
:formData="form"
+ :formItems="formItems"
+ :span="4"
+ style="margin-bottom: 0"
@getFormData="getFormData">
</basic-form>
- <avue-crud ref="crud" title="璁剧疆鎺掑簭"
- :data="orderInfoList" :option="crudOption">
+ <avue-crud ref="crud" :data="orderInfoList"
+ :option="crudOption" title="璁剧疆鎺掑簭">
<template slot="menuLeft" slot-scope="scope">
<el-button icon="el-icon-plus" size="small" type="primary" @click="addRow">鍒涘缓</el-button>
</template>
@@ -27,17 +27,17 @@
</template>
</avue-crud>
<el-dialog v-dialogDrag
- title="鍒涘缓"
- :visible.sync="crudDialog.showDialog"
- width="500px"
:append-to-body="true"
- class="avue-dialog"
- :destroy-on-close="true"
:close-on-click-modal="false"
+ :destroy-on-close="true"
+ :visible.sync="crudDialog.showDialog"
+ class="avue-dialog"
+ title="鍒涘缓"
+ width="500px"
@close="crudDialog.showDialog=false">
- <avue-form ref="tableForm" :option="tableFormOption" v-model="tableForm"></avue-form>
+ <avue-form ref="tableForm" v-model="tableForm" :option="tableFormOption"></avue-form>
<div class="dialog-footer avue-dialog__footer">
- <el-button type="primary" plain size="small" @click="rowSave" >淇� 瀛�</el-button>
+ <el-button plain size="small" type="primary" @click="rowSave">淇� 瀛�</el-button>
</div>
</el-dialog>
<el-container style="margin-top: 10px;">
@@ -46,43 +46,66 @@
<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" @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd">
+ <avue-select v-model="businessQueryDefineForm" :dic="businessQueryDefineDic" class="el-input--small"
+ placeholder="璇烽�夋嫨鍐呭" style="width: 245px;" type="tree"
+ @change="businessQueryDefineChange"></avue-select>
+ <avue-tree :data="businessTreeData" :option="treeOption" style="width:335px;height: 268px"
+ @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd">
</avue-tree>
</div>
</fieldset>
</el-aside>
<el-main>
- <fieldset style="margin: 0 10px">
+ <fieldset style="margin: 0 0 0 10px">
<legend> 鏌ヨ鏉′欢 </legend>
<form-query-dialog ref="formQuery"
- style="height: 300px;"
+ :levelFlag.sync="form.levelFlag"
:queryCondition="queryCondition"
:queryTree="queryTree"
- :levelFlag.sync="form.levelFlag"
+ :searchColumn="searchColumn"
+ style="height: 300px;"
+ @queryHandler="queryHandler"
></form-query-dialog>
</fieldset>
</el-main>
</el-container>
</div>
<div class="dialog-footer avue-dialog__footer">
- <el-button type="primary" plain size="small" @click="submitDialog" >淇� 瀛�</el-button>
+ <el-button size="small" type="primary" @click="submitDialog">淇� 瀛�</el-button>
<el-button size="small" @click="cancelDialog">鍙� 娑�</el-button>
</div>
</el-dialog>
</template>
<script>
-import {getAllOrderbyAttributeByLink} from "@/api/modeling/linkType/api";
-import {linkSave} from "@/api/queryTemplate/linkTypeQuery";
+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},
- data(){
+ components: {formQueryDialog},
+ data() {
return {
+ searchColumn: [
+ {
+ label: 'OID',
+ prop: 'OID',
+ },
+ {
+ label: 'REVISIONOID',
+ prop: 'REVISIONOID'
+ },
+ {
+ label: 'NAMEOID',
+ prop: 'NAMEOID'
+ },
+ {
+ label: 'BTMNAME',
+ prop: 'BTMNAME'
+ }
+ ],
dialog: {
showDialog: false,
title: "鍒涘缓",
@@ -96,22 +119,22 @@
submitTxt: "淇濆瓨",
submitIcon: "el-icon-check",
},
- formItems:[{
+ formItems: [{
label: '鏌ヨ妯℃澘鍚嶇О',
prop: 'qtName',
type: 'input',
- span:5,
+ span: 5,
rules: [{
required: true,
message: "璇疯緭鍏ユ煡璇㈡ā鏉垮悕绉�",
trigger: "blur"
}]
}],
- form:{
- btmName:'',
+ form: {
+ btmName: '',
qtName: '',
- levelFlag:0,//0:鏅�氭煡璇㈡ā鏉�; 1:楂樼骇鏌ヨ妯℃澘"
- queryTemplate:{}
+ levelFlag: 0,//0:鏅�氭煡璇㈡ā鏉�; 1:楂樼骇鏌ヨ妯℃澘"
+ queryTemplate: {}
},
//宸叉湁鎺掑簭鍒楄〃閰嶇疆
crudOption: {
@@ -127,32 +150,39 @@
prop: 'orderField'
}, {
label: '鎺掑簭鏂瑰紡',
- prop: 'orderMode'
+ prop: 'orderMode',
+ formatter: function (row, value) {
+ if (row.orderMode == 'ASC') {
+ return '鍗囧簭'
+ } else {
+ return '闄嶅簭'
+ }
+ }
}, {
label: '浼樺厛绾�',
prop: 'level'
}]
},
//宸叉湁鎺掑簭
- orderInfoList:[],
+ orderInfoList: [],
//璁剧疆鎺掑簭寮圭獥琛ㄥ崟鏁版嵁
- tableForm:{
- orderField:'',
- orderMode:'ASC',
- level:''
+ tableForm: {
+ orderField: '',
+ orderMode: 'ASC',
+ level: ''
},
//璁剧疆鎺掑簭寮圭獥鎵�鏈夊彲鎺掑簭瀛楁
- orderFieldList:[],
+ orderFieldList: [],
//璁剧疆鎺掑簭寮圭獥琛ㄥ崟閰嶇疆
tableFormOption: {
menuBtn: false,
submitBtn: false,
emptyBtn: false,
- span:24,
+ span: 24,
column: [{
label: '鎺掑簭瀛楁',
prop: 'orderField',
- type:'select',
+ type: 'select',
props: {
label: 'id',
value: 'id'
@@ -178,7 +208,7 @@
label: '浼樺厛绾�',
prop: 'level',
type: 'number',
- min:1,
+ min: 1,
rules: [{
required: true,
message: "璇疯緭鍏ヤ紭鍏堢骇",
@@ -186,31 +216,39 @@
}]
}]
},
- treeOption:{
- defaultExpandAll:true,
+ treeOption: {
+ defaultExpandAll: true,
menu: false,
addBtn: false,
- filter:false,
+ filter: false,
draggable: true,
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:[],//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
+ businessQueryDefineForm: '',//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑鍊�
+ businessQueryDefineDic: [],//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑椤瑰睘鎬�
businessTreeData: [],
//楂樼骇鏌ヨ鏉′欢
- queryTree:{},
+ queryTree: {},
//鏅�氭煡璇㈡潯浠�
- queryCondition:[],
+ queryCondition: [],
};
},
- watch: {
- },
+ watch: {},
methods: {
openDialog(btmName, title, mode, data) {
this.dialog.title = title;
@@ -221,24 +259,25 @@
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));//宸叉湁鎺掑簭
}
- this.queryCondition=this.selectData.queryTemplate.condition;
- this.queryTree=this.selectData.tree;
- this.form.levelFlag=this.selectData.levelFlag;
+ this.queryCondition = this.selectData.queryTemplate.condition;
+ this.queryTree = this.selectData.tree;
+ this.form.levelFlag = this.selectData.levelFlag;
} else {
this.selectData = {};
this.orderInfoList = [];
- this.queryCondition=[];
- this.queryTree={
- connector:'骞朵笖',
- child:[]
+ this.queryCondition = [];
+ this.queryTree = {
+ connector: '骞朵笖',
+ child: []
};
}
this.dialog.showDialog = true;
- this.getTemp(data.treeData.label, true)
+ this.treeOption.defaultExpandedKeys = [data.treeData.label]
+ this.getTemp(data.treeData.label)
+ this.getAllAttr();
},
cancelDialog() {
this.dialog.loading = false;
@@ -247,26 +286,26 @@
this.form = {
btmName: '',
qtName: '',
- levelFlag:0,
+ levelFlag: 0,
queryTemplate: {}
};
- this.orderInfoList =[];
- this.businessQueryDefineForm='';
- this.linkQueryDefineForm='';
+ this.orderInfoList = [];
+ this.businessQueryDefineForm = '';
+ this.linkQueryDefineForm = '';
this.$refs.form.clearValidate();
});
},
submitDialog() {
this.$refs.form.validate((valid) => {
if (valid) {
- const formData=this.initFormData();
+ const formData = this.initFormData();
console.log(formData)
- linkSave(formData).then(res => {
+ btmSave(formData).then(res => {
if (res.data.success) {
this.$message.success("淇濆瓨鎴愬姛");
this.cancelDialog();
this.$emit("refresh");
- }else {
+ } else {
this.$refs.form.clearValidate();
}
});
@@ -281,21 +320,13 @@
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) {
//楂樼骇
let that = this;
+
function initValue(nodeChild) {
let children = [];
if (nodeChild) {
@@ -334,36 +365,34 @@
},
// 琛屽垹闄�
rowDeleteHandler(data) {
- this.orderInfoList.splice(data.index,1);
+ this.orderInfoList.splice(data.index, 1);
this.orderFieldList.unshift({
id: data.row.orderField
});
- this.tableFormOption.column[0].dicData= this.orderFieldList
+ this.tableFormOption.column[0].dicData = this.orderFieldList
},
//鑾峰彇鎺掑簭璁剧疆涓墍鏈夋帓搴忓瓧娈�
getAllAttr() {
- getAllOrderbyAttributeByLink({
- name: this.treeData.label,
- btmType: this.form.btmType,
- direction: this.form.direction
+ getBizTypeQTDs({
+ btmName: this.treeData.label
}).then(res => {
const orderInfoStr = JSON.stringify(this.orderInfoList);
const dicData = [];
res.data.data.forEach(item => {
- if (orderInfoStr.indexOf('"orderField":"' + item + '"') == -1) {
- dicData.push({id: item});
+ if (orderInfoStr.indexOf('"orderField":"' + item.id + '"') == -1) {
+ dicData.push(item);
}
})
- this.tableFormOption.column[0].dicData=dicData;
- this.orderFieldList=dicData;
+ this.tableFormOption.column[0].dicData = dicData;
+ this.orderFieldList = dicData;
})
},
//鎺掑簭璁剧疆淇濆瓨
rowSave() {
this.$refs.tableForm.validate((valid) => {
- if(valid){
+ if (valid) {
this.orderInfoList.push(JSON.parse(JSON.stringify(this.tableForm)));
- this.crudDialog.showDialog=false;
+ this.crudDialog.showDialog = false;
const orderInfoStr = JSON.stringify(this.orderInfoList);
const dicData = [];
this.orderFieldList.forEach(item => {
@@ -371,9 +400,9 @@
dicData.push(item);
}
})
- this.tableFormOption.column[0].dicData=dicData;
- this.orderFieldList=dicData;
- this.tableForm= {
+ this.tableFormOption.column[0].dicData = dicData;
+ this.orderFieldList = dicData;
+ this.tableForm = {
orderField: '',
orderMode: 'ASC',
level: ''
@@ -382,33 +411,24 @@
})
},
//鑾峰彇鏌ヨ妯℃澘瀹氫箟涓嬫媺
- getTemp(btmName,linkFlag) {
+ 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);
-
+ 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
}]
}
},
@@ -416,26 +436,54 @@
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)});
+ 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) {
+ 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();
+ getCriteriaBtm(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 === "REVISIONOID" || attr.attrName === "BTMNAME" || attr.attrName === "NAMEOID"
+ );
+
+ 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