|
|
@@ -66,24 +66,16 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div v-show="operationVisible" class="operation-box flex1 flex flex-d-c ov-hidden">
|
|
|
- <div>选择参数设置</div>
|
|
|
+ <div class="flex ">
|
|
|
+ <div>选择参数设置</div>
|
|
|
+ <div style="margin-left: 29%;font-weight: 700;">公式配置</div>
|
|
|
+ </div>
|
|
|
<div class="flex flex-d-c flex1 ov-hidden">
|
|
|
<el-row :gutter="20" class="flex1 ov-hidden">
|
|
|
<el-col :span="8" class="h-100p">
|
|
|
<el-card shadow="never" v-loading="treeLoad" class="h-100p ov-auto">
|
|
|
<el-scrollbar style="height: 100%">
|
|
|
- <!-- <el-tree
|
|
|
- class="filter-tree"
|
|
|
- lazy
|
|
|
- :load="loadNode"
|
|
|
- @node-click="getNodeDetail"
|
|
|
- :props="defaultProps"
|
|
|
- :expand-on-click-node="false"
|
|
|
- highlight-current
|
|
|
- node-key="id"
|
|
|
- ref="tree"
|
|
|
- >
|
|
|
- </el-tree> -->
|
|
|
+
|
|
|
<el-tree
|
|
|
class="filter-tree"
|
|
|
:data="treeData"
|
|
|
@@ -100,70 +92,60 @@
|
|
|
</el-card>
|
|
|
</el-col>
|
|
|
<el-col :span="16" class="h-100p flex flex-d-c ov-hidden">
|
|
|
- <div class="flex" style="justify-content: space-between;width:100%">
|
|
|
- <el-select v-model="eleTableId" @change="getTableEle" placeholder="请选择元素表1" style="width:45%">
|
|
|
- <el-option v-if="paramDataList.length" label="选择节点参数2" value="选择节点参数"></el-option>
|
|
|
- <el-option v-for="item in eleTableList" :key="item.id" :label="item.tableName" :value="(item.pkeyId!==null&&item.pkeyId!==-1)?item.pkeyId:item.id"></el-option>
|
|
|
- </el-select>
|
|
|
- <!-- 搜索元素下拉框 -->
|
|
|
- <el-select v-model="input3" filterable clearable placeholder="搜索元素字段" @change="getInput" style="width:45%">
|
|
|
- <el-option
|
|
|
- v-for="item in eleList1"
|
|
|
- :key="item.id"
|
|
|
- :label="item.eName"
|
|
|
- :value="item.eName">
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="mg-t-10 no-mb-col flex1 ov-hidden">
|
|
|
- <el-scrollbar style="height: 100%">
|
|
|
- <el-row v-loading="eleListable" v-if="eleList.length>0">
|
|
|
- <el-col :span="6" v-for="item in eleList" :key="item.id" >
|
|
|
- <div class="ele-box">
|
|
|
- <span v-if="item.k">{{item.name}}</span>
|
|
|
- <span v-else>{{item.eName}}</span>
|
|
|
- <el-checkbox v-model="item.checked" @change="value => eleChang(value,item)"></el-checkbox>
|
|
|
- </div>
|
|
|
+ <div class="operation-box">
|
|
|
+ <!-- 运算符选择区域 -->
|
|
|
+ <div class="flex jc-sb operation-symbol-box">
|
|
|
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row v-else style="text-align: center;line-height: 328px;border:1px solid #bbb">暂无数据</el-row>
|
|
|
- </el-scrollbar>
|
|
|
- </div>
|
|
|
- <div class="flex jc-sb">
|
|
|
- <!-- <div>定位数据位置:</div> -->
|
|
|
- <div class="icon-box">
|
|
|
- <el-link :underline="false" icon="el-icon-delete" type="danger" @click="removeSelect"></el-link>
|
|
|
- <el-link :underline="false" type="primary" @click="addOperator('+')" icon="el-icon-circle-plus-outline"></el-link>
|
|
|
- <el-link :underline="false" type="primary" @click="addOperator('-')" icon="el-icon-remove-outline"></el-link>
|
|
|
- <el-link :underline="false" type="primary" @click="addOperator('*')" icon="el-icon-circle-close"></el-link>
|
|
|
- <el-link :underline="false" type="primary" @click="addOperator('%')">÷</el-link>
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <!-- <el-link :underline="false" type="primary" class="mg-r-20" @click="eleAddFormula">元素添加到公式</el-link> -->
|
|
|
- <el-link :underline="false" type="primary" class="mg-r-10" @click="addBrackets('(',false)">(</el-link>
|
|
|
- <el-link :underline="false" type="primary" class="mg-r-10" @click="addBrackets(')',true)">)</el-link>
|
|
|
- <!-- <el-link :underline="false" type="primary" class="mg-r-10" @click="addBrackets('[',false)">【</el-link>
|
|
|
- <el-link :underline="false" type="primary" class="mg-r-10" @click="addBrackets(']',true)">】</el-link> -->
|
|
|
- <el-link :underline="false" type="primary" @click="addText">输入值</el-link>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="border-grey sele-ele-box" style="height:50px">
|
|
|
- <draggable v-model="selectEleFormula">
|
|
|
- <formula-item
|
|
|
- v-for="(item,index) in selectEleFormula" :key="index"
|
|
|
- :item="item" @click="obj => eleFormulaClick(obj,index)"
|
|
|
- >
|
|
|
- </formula-item>
|
|
|
- </draggable>
|
|
|
+ <div class="icon-box ">
|
|
|
+ <span class="text-sm" >插入运算符:</span>
|
|
|
+
|
|
|
+ <el-link type="primary" @click="addOperator('+')" icon="el-icon-circle-plus-outline"></el-link>
|
|
|
+ <el-link type="primary" @click="addOperator('-')" icon="el-icon-remove-outline"></el-link>
|
|
|
+ <el-link type="primary" @click="addOperator('*')" icon="el-icon-circle-close"></el-link>
|
|
|
+ <el-link type="primary" @click="addOperator('%')">÷</el-link>
|
|
|
+ <el-link type="primary" class="mg-r-10" @click="addBrackets('(',false)">(</el-link>
|
|
|
+ <el-link type="primary" class="mg-r-10" @click="addBrackets(')',true)">)</el-link>
|
|
|
+ <el-link type="primary" @click="addText">固定值</el-link>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 操作
|
|
|
+ <el-link icon="el-icon-delete" type="danger" @click="removeSelect"></el-link>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ <div class="border-grey sele-ele-box1" @keydown.shift.187="handleShiftPlus" tabindex="0">
|
|
|
+ <draggable v-model="selectEleFormula">
|
|
|
+ <formula-item
|
|
|
+ v-for="(item,index) in selectEleFormula" :key="index"
|
|
|
+ :item="item" @click="obj => eleFormulaClick(obj,index)"
|
|
|
+ >
|
|
|
+ </formula-item>
|
|
|
+ </draggable>
|
|
|
+ </div>
|
|
|
+ <div class="flex mg-t-10" style="justify-content: space-between;width:100%;">
|
|
|
+ <el-select v-model="eleTableId" @change="getTableEle" placeholder="请选择元素表1" style="width:45%">
|
|
|
+ <el-option v-if="paramDataList.length" label="选择节点参数2" value="选择节点参数"></el-option>
|
|
|
+ <el-option v-for="item in eleTableList" :key="item.id" :label="item.tableName" :value="(item.pkeyId!==null&&item.pkeyId!==-1)?item.pkeyId:item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ <div class="text-align-c">
|
|
|
+ <el-button size="small" @click="canceloperationVisible ">取消</el-button>
|
|
|
+ <el-button size="small" @click="operationHandle" type="primary">保存</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="mg-t-10 no-mb-col flex1" >
|
|
|
+ <el-scrollbar style="height: 450px">
|
|
|
+
|
|
|
+ <tableFormWrite :pkeyId="eleTableId" @element-selected="handleElementSelected" :initTableName="initTableName"></tableFormWrite>
|
|
|
+ </el-scrollbar>
|
|
|
+ </div>
|
|
|
+
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
- <div class="text-align-c">
|
|
|
- <el-button size="small" @click="operationHandle" type="primary">保存</el-button>
|
|
|
- <el-button size="small" @click="canceloperationVisible ">取消</el-button>
|
|
|
- </div>
|
|
|
+
|
|
|
</div>
|
|
|
</div>
|
|
|
<div v-show="!operationVisible && !showFunDetail && !deviationRange.show">
|
|
|
@@ -465,6 +447,7 @@ import {formulaStringToArray} from "./formulaStringToArray"
|
|
|
import draggable from 'vuedraggable'
|
|
|
import {formatArrayMore,restoreArrayMore,generateResult} from './component/funComponent/multiIfElseTools'
|
|
|
import dataChange from "./component/funComponent/dataChange"
|
|
|
+import tableFormWrite from "./component/table-form-write.vue";
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
|
@@ -484,7 +467,8 @@ export default {
|
|
|
ifelse,
|
|
|
|
|
|
deviationRange,
|
|
|
- dataChange
|
|
|
+ dataChange,
|
|
|
+ tableFormWrite
|
|
|
},
|
|
|
props: {
|
|
|
wbsid:{
|
|
|
@@ -616,7 +600,7 @@ export default {
|
|
|
isDataChange:false,//是否数据自变
|
|
|
dataForm:'',
|
|
|
remark:'',//备注
|
|
|
-
|
|
|
+ initTableName:'',//初始表名
|
|
|
|
|
|
};
|
|
|
},
|
|
|
@@ -831,8 +815,6 @@ export default {
|
|
|
// }
|
|
|
// },
|
|
|
eleChang(value,item){
|
|
|
- console.log(value,'value');
|
|
|
- console.log(item,'item');
|
|
|
if(value){
|
|
|
//简单语法判断
|
|
|
if(this.itemList.length != 0 && this.deleEleIndex < 0){
|
|
|
@@ -1408,7 +1390,7 @@ export default {
|
|
|
console.log('this.$refs.conditionList[0]',this.$refs.dynamiccomponent[0].conditionList);
|
|
|
let resMore=formatArrayMore(this.$refs.dynamiccomponent[0].conditionList);
|
|
|
const resJson=generateResult(this.$refs.dynamiccomponent[0].conditionList);
|
|
|
- let remark=this.$refs.dynamiccomponent[0].result;
|
|
|
+ let remark=this.$refs.dynamiccomponent[0].remark;
|
|
|
console.log(remark,'remark');
|
|
|
|
|
|
console.log(resJson,'resJson');
|
|
|
@@ -1690,7 +1672,7 @@ console.log(remark,'remark');
|
|
|
detail.formula = detail.formula.replace('FC.ifelseMulti','FC.ifelse');
|
|
|
this.isMore = true;
|
|
|
this.formulaDetailMap = detail.map;
|
|
|
- this.moreConditions = restoreArrayMore(detail.formulas,this.formulaDetailMap,detail.remark||'1')
|
|
|
+ this.moreConditions = restoreArrayMore(detail.formulas,this.formulaDetailMap)
|
|
|
|
|
|
}else if(detail&&detail.formula.includes('FC.switchCase')){
|
|
|
//数据获取
|
|
|
@@ -1857,6 +1839,16 @@ console.log(remark,'remark');
|
|
|
|
|
|
getTableEle(tableId){
|
|
|
console.log("getTableEle",tableId);
|
|
|
+ this.initTableName=''
|
|
|
+
|
|
|
+
|
|
|
+ this.eleTableList.forEach((item)=>{
|
|
|
+ if(item.pkeyId===tableId){
|
|
|
+ this.initTableName=item.initTableName
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+
|
|
|
this.input3=''
|
|
|
if(tableId === '选择节点参数'){
|
|
|
this.eleList = this.paramDataList;
|
|
|
@@ -2047,7 +2039,59 @@ console.log(remark,'remark');
|
|
|
resolve();
|
|
|
})
|
|
|
})
|
|
|
- }
|
|
|
+ },
|
|
|
+ handleElementSelected(item,value){
|
|
|
+ console.log(item,'选中的元素');
|
|
|
+ console.log(this.itemList,'this.itemList');
|
|
|
+ if(value){
|
|
|
+ //简单语法判断
|
|
|
+ if(this.itemList.length != 0 && this.deleEleIndex < 0){
|
|
|
+ let lastEle = this.itemList[this.itemList.length-1];
|
|
|
+ if(lastEle.type == 'Text'){
|
|
|
+ this.$message({
|
|
|
+ type: "warning",
|
|
|
+ message: "元素无法连续出现在输入值后面"
|
|
|
+ });
|
|
|
+ item.checked = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(lastEle.type == 'Brackets' && lastEle.name == ')'){
|
|
|
+ this.$message({
|
|
|
+ type: "warning",
|
|
|
+ message: "元素无法连续出现在右括号后面"
|
|
|
+ });
|
|
|
+ item.checked = false;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let lastEle = this.selectEleFormula[this.selectEleFormula.length-1];
|
|
|
+ if(this.selectEleFormula.length == 0 || lastEle.type == 'Operator' || lastEle.type == 'Brackets' || lastEle.name == '('){ /* 存在运算符 */
|
|
|
+ this.eleAddFormulaHandle(item);
|
|
|
+ } else {
|
|
|
+ this.itemList.push(item);
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ let index = -1;
|
|
|
+ for (let i = 0; i < this.itemList.length; i++) {
|
|
|
+ if(this.itemList[i].id == item.id){
|
|
|
+ index = i;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(index>-1){
|
|
|
+ this.itemList.splice(index,1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ handleShiftPlus(event) {
|
|
|
+ event.preventDefault();
|
|
|
+ console.log('Shift + + 被按下');
|
|
|
+ // this.yourMethod();
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|