| | |
| | | <el-dialog v-dialogDrag |
| | | :title="dialog.title" |
| | | :visible.sync="dialog.showDialog" |
| | | width="1620px" |
| | | width="1650px" |
| | | :append-to-body="true" |
| | | class="avue-dialog" |
| | | :destroy-on-close="true" |
| | |
| | | <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" @node-drag-start="handleDragStart"> |
| | | <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> |
| | |
| | | :queryCondition="queryCondition" |
| | | :queryTree="queryTree" |
| | | :levelFlag.sync="form.levelFlag" |
| | | :searchColumn="searchColumn" |
| | | @queryHandler="queryHandler" |
| | | ></form-query-dialog> |
| | | </fieldset> |
| | | </el-main> |
| | |
| | | <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"> |
| | | <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> |
| | |
| | | </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> |
| | |
| | | |
| | | <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"; |
| | |
| | | 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: "请输入查询模板名称", |
| | |
| | | prop: 'direction', |
| | | type: 'radio', |
| | | value:'positive', |
| | | labelWidth:70, |
| | | span: 3, |
| | | labelWidth:80, |
| | | span: 3.5, |
| | | dicData: [{ |
| | | label: '正向', |
| | | value: 'positive' |
| | |
| | | prop: 'btmType', |
| | | type: 'select', |
| | | labelWidth:110, |
| | | clearable:false, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择业务类型", |
| | | trigger: "blur" |
| | | }], |
| | | dicData: [] |
| | | }, { |
| | | label: '版本版次', |
| | | prop: 'version', |
| | | type: 'select', |
| | | span:5, |
| | | span:4, |
| | | labelWidth:110, |
| | | dicData: [{ |
| | | label: '当前版本当前版次', |
| | | value: 1 |
| | |
| | | label: '查询是否有下级', |
| | | prop: 'queryISLeaf', |
| | | type: 'switch', |
| | | labelWidth:140, |
| | | labelWidth:150, |
| | | dicData: [ { |
| | | label: '否', |
| | | value: false |
| | |
| | | label: '子节点层次数', |
| | | prop: 'level', |
| | | type: 'number', |
| | | span:3, |
| | | labelWidth:130, |
| | | value:1 |
| | | }], |
| | | form:{ |
| | |
| | | queryTemplate:{} |
| | | }, |
| | | //已有排序列表配置 |
| | | crudOption: { |
| | | crudOption: { |
| | | ...basicOption, |
| | | addBtn: false, |
| | | editBtn: false, |
| | |
| | | prop: 'orderField' |
| | | }, { |
| | | label: '排序方式', |
| | | prop: 'orderMode' |
| | | prop: 'orderMode', |
| | | formatter:function (row, value) { |
| | | if (row.orderMode == 'ASC') { |
| | | return '升序' |
| | | }else{ |
| | | return '降序' |
| | | } |
| | | } |
| | | }, { |
| | | label: '优先级', |
| | | prop: 'level' |
| | |
| | | addBtn: false, |
| | | filter:false, |
| | | draggable: true, |
| | | allowDrop: () => { |
| | | allowDrop: (node) => { |
| | | return false; |
| | | }, |
| | | allowDrag: () => { |
| | | allowDrag: (dropNode) => { |
| | | return true; |
| | | }, |
| | | props:{ |
| | | label:'name', |
| | | value:'name', |
| | | children:'attrs' |
| | | } |
| | | }, |
| | | linkQueryDefineForm:'',//链接类型查询模板定义选中值 |
| | | linkQueryDefineDic:[],//链接类型查询模板定义下拉数据 |
| | |
| | | }; |
| | | } |
| | | this.dialog.showDialog = true; |
| | | this.treeOption.defaultExpandedKeys=[data.treeData.label] |
| | | this.getTemp(data.treeData.label, true) |
| | | |
| | | }, |
| | | cancelDialog() { |
| | | this.dialog.loading = false; |
| | |
| | | //获取查询模板定义下拉 |
| | | getTemp(btmName,linkFlag) { |
| | | if (btmName) { |
| | | queryTemplateListByAttr({btmName: btmName, linkFlag: linkFlag,direction:this.form.direction}).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; |
| | |
| | | }, |
| | | 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 |
| | | }] |
| | | this.linkTreeData = [ data.item] |
| | | } |
| | | }, |
| | | 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 |
| | | }] |
| | | 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; |
| | | } |
| | | }); |
| | | }, |
| | | }, |
| | | } |
| | |
| | | |
| | | <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; |
| | | } |