| | |
| | | margin-bottom: 0; |
| | | } |
| | | .avue-crud .avue-crud__menu{ |
| | | min-height: 32px; |
| | | min-height: 26px; |
| | | } |
| | | .avue-crud .avue-crud__menu .el-button{ |
| | | margin-bottom: 5px; |
| | | } |
| | | .avue-crud .avue-crud__menu .el-button--text{ |
| | | padding: 2px 6px; |
| | | } |
| | | .avue-crud table td{ |
| | | line-height: 22px; |
| | | } |
| | | .el-table .cell{ |
| | | line-height: 22px; |
| | | } |
| | | .el-table .cell .el-tag{ |
| | | line-height: 20px; |
| | | height: 22px; |
| | | } |
| | | .avue-crud__pagination{ |
| | | padding: 15px 0 10px; |
| | | } |
| | |
| | | <!--导入 --> |
| | | <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="导入" |
| | | @updata="uploadCallBack"></upload-file> |
| | | |
| | | <div> |
| | | <fieldset> |
| | | <legend> 查询条件 </legend> |
| | | <form-query-dialog ref="formQuery" |
| | | style="height: 260px;" |
| | | :readOnly="true" |
| | | :queryCondition="queryCondition" |
| | | :queryTree="queryTree" |
| | | :levelFlag.sync="levelFlag" |
| | | ></form-query-dialog> |
| | | </fieldset> |
| | | </div> |
| | | </basic-container> |
| | | </el-main> |
| | | |
| | |
| | | import func from "@/util/func"; |
| | | import {dateFormat} from "@/util/date"; |
| | | import FormDialog from "./formDialog.vue" |
| | | import formQueryDialog from "@/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue"; |
| | | export default { |
| | | name: "index", |
| | | components: {FormDialog}, |
| | | components: {FormDialog,formQueryDialog}, |
| | | data() { |
| | | return { |
| | | treeOption: { |
| | |
| | | selection: true, |
| | | menu: false, |
| | | height: "auto", |
| | | calcHeight: -40, |
| | | calcHeight: 300, |
| | | tip: false, |
| | | header:false, |
| | | column: [{ |
| | |
| | | ], |
| | | upFileType: ['vciqtf'], |
| | | fileUrl: 'api/templateController/impBtmTemplate', |
| | | //高级查询条件 |
| | | queryTree:{}, |
| | | //普通查询条件 |
| | | queryCondition:[], |
| | | levelFlag:0 |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | const loading = this.$loading({}); |
| | | getBizTypes().then(res => { |
| | | const data = res.data.data.map(item => { |
| | | item.label = item.attributes.id; |
| | | return item; |
| | | this.processChildren(item); // 处理每个节点 |
| | | item.attributes.label = item.attributes.id; |
| | | return item.attributes; |
| | | }); |
| | | this.treeData[0].children = data; |
| | | loading.close(); |
| | | }) |
| | | }, |
| | | |
| | | // 处理树形结构 |
| | | processChildren(item) { |
| | | if (item.children && item.children.length > 0) { |
| | | item.attributes.children = item.children.map(child => { |
| | | child.attributes.label = child.attributes.id; |
| | | this.processChildren(child); // 递归处理每个子节点 |
| | | return child.attributes; // 只返回子节点的 attributes |
| | | }); |
| | | } |
| | | }, |
| | | // 树点击 |
| | | nodeClick(row) { |
| | | this.nodeRow = row; |
| | |
| | | getObjTypeQTs(this.nodeRow.label).then(res => { |
| | | this.crudData = res.data.data; |
| | | this.tableLoading = false; |
| | | this.queryCondition=[]; |
| | | this.queryTree={}; |
| | | this.levelFlag=0; |
| | | }) |
| | | }, |
| | | rowClick(row) { |
| | | this.$refs.crud.toggleSelection(); |
| | | this.$refs.crud.toggleRowSelection(row); //选中当前行 |
| | | this.selectionRow = [row]; |
| | | |
| | | this.queryCondition=row.queryTemplate.condition; |
| | | this.queryTree=row.tree; |
| | | this.levelFlag=row.levelFlag; |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionRow = list; |
| | |
| | | text-align: center; |
| | | padding-left: 4.5px; |
| | | } |
| | | |
| | | 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: 10px 0 0 0; |
| | | border: 1px solid #EBEEF5; |
| | | } |
| | | </style> |
| | |
| | | <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-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> |
| | |
| | | levelFlag:{ |
| | | type: Number, |
| | | default: 0 |
| | | }, |
| | | readOnly:{ |
| | | type:Boolean, |
| | | default:false |
| | | } |
| | | }, |
| | | data() { |
| | |
| | | <!--导入 --> |
| | | <upload-file ref="upload" :fileType="upFileType" :fileUrl="fileUrl" :tipList="tipList" title="导入" |
| | | @updata="uploadCallBack"></upload-file> |
| | | <div> |
| | | <fieldset> |
| | | <legend> 查询条件 </legend> |
| | | <form-query-dialog ref="formQuery" |
| | | style="height: 260px;" |
| | | :readOnly="true" |
| | | :queryCondition="queryCondition" |
| | | :queryTree="queryTree" |
| | | :levelFlag.sync="levelFlag" |
| | | ></form-query-dialog> |
| | | </fieldset> |
| | | </div> |
| | | </basic-container> |
| | | </el-main> |
| | | </el-container> |
| | |
| | | import basicOption from "@/util/basic-option"; |
| | | import FormDialog from "./formDialog.vue" |
| | | import func from "@/util/func"; |
| | | import formQueryDialog from "@/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue"; |
| | | |
| | | export default { |
| | | name: "index", |
| | | components: {FormDialog}, |
| | | components: {FormDialog,formQueryDialog}, |
| | | data() { |
| | | return { |
| | | treeOption: { |
| | |
| | | selection: true, |
| | | menu: false, |
| | | height: "auto", |
| | | calcHeight: -40, |
| | | calcHeight: 300, |
| | | tip: false, |
| | | header:false, |
| | | column: [{ |
| | |
| | | ], |
| | | upFileType: ['vciqtf'], |
| | | fileUrl: 'api/templateController/impLinkTemplate', |
| | | //高级查询条件 |
| | | queryTree:{}, |
| | | //普通查询条件 |
| | | queryCondition:[], |
| | | levelFlag:0 |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | this.crudData = res.data.data; |
| | | this.tableLoading = false; |
| | | this.selectionClear(); |
| | | |
| | | this.queryCondition=[]; |
| | | this.queryTree={}; |
| | | this.levelFlag=0; |
| | | }) |
| | | }, |
| | | rowClick(row) { |
| | | this.$refs.crud.toggleSelection(); |
| | | this.$refs.crud.toggleRowSelection(row); //选中当前行 |
| | | this.selectionRow = [row]; |
| | | |
| | | this.queryCondition=row.queryTemplate.condition; |
| | | this.queryTree=row.tree; |
| | | this.levelFlag=row.levelFlag; |
| | | }, |
| | | selectionChange(list) { |
| | | this.selectionRow = list; |
| | |
| | | text-align: center; |
| | | padding-left: 4.5px; |
| | | } |
| | | |
| | | 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: 10px 0 0 0; |
| | | border: 1px solid #EBEEF5; |
| | | } |
| | | </style> |
| | |
| | | if (newval ==0) { |
| | | getBizTypes().then(res => { |
| | | const data = res.data.data.map(item => { |
| | | item.label=item.attributes.id; |
| | | return item; |
| | | this.processChildren(item); // 处理每个节点 |
| | | item.attributes.label = item.attributes.id; |
| | | return item.attributes; |
| | | }); |
| | | this.treeData = data; |
| | | loading.close(); |
| | |
| | | const loading = this.$loading({}); |
| | | getBizTypes().then(res => { |
| | | const data = res.data.data.map(item => { |
| | | item.label=item.attributes.id; |
| | | return item; |
| | | this.processChildren(item); // 处理每个节点 |
| | | item.attributes.label = item.attributes.id; |
| | | return item.attributes; |
| | | }); |
| | | this.treeData = data; |
| | | loading.close(); |
| | | }) |
| | | }, |
| | | |
| | | // 处理业务类型树形结构 |
| | | processChildren(item) { |
| | | if (item.children && item.children.length > 0) { |
| | | item.attributes.children = item.children.map(child => { |
| | | child.attributes.label = child.attributes.id; |
| | | this.processChildren(child); // 递归处理每个子节点 |
| | | return child.attributes; // 只返回子节点的 attributes |
| | | }); |
| | | } |
| | | }, |
| | | // 树点击 |
| | | nodeClick(row) { |
| | | this.nodeRow = row; |