|
|
@@ -66,15 +66,24 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div v-show="operationVisible" class="operation-box flex1 flex flex-d-c ov-hidden">
|
|
|
- <div class="flex ">
|
|
|
- <div>选择参数设置</div>
|
|
|
- <div style="margin-left: 29%;font-weight: 700;">公式配置</div>
|
|
|
- </div>
|
|
|
+ <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"
|
|
|
@@ -92,77 +101,70 @@
|
|
|
</el-card>
|
|
|
</el-col>
|
|
|
<el-col :span="16" class="h-100p flex flex-d-c ov-hidden">
|
|
|
- <div class="operation-box">
|
|
|
- <!-- 运算符选择区域 -->
|
|
|
- <div class="flex jc-sb operation-symbol-box">
|
|
|
-
|
|
|
- <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"
|
|
|
-
|
|
|
- tabindex="0"
|
|
|
- @keydown.left="handleLeftArrow"
|
|
|
- @keydown.right="handleRightArrow"
|
|
|
- @keydown.delete="handleDelete"
|
|
|
- @keydown.shift.189="addOperator('-')"
|
|
|
- @keydown.shift.191="addOperator('/')"
|
|
|
- @keydown.shift.57="addBrackets('(')"
|
|
|
- @keydown.shift.48="addBrackets(')')"
|
|
|
- @keydown.shift.187="addOperator('+')"
|
|
|
- @keydown.shift.56="addOperator('*')"
|
|
|
- @focus="containerFocused = true"
|
|
|
- @blur="containerFocused = false"
|
|
|
- >
|
|
|
- <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%" size="small">
|
|
|
- <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="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="text-align-c">
|
|
|
- <el-button size="small" @click="canceloperationVisible ">取消</el-button>
|
|
|
- <el-button size="small" @click="operationHandle" type="primary">保存</el-button>
|
|
|
+ <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>
|
|
|
-
|
|
|
- <div class="mg-t-10 no-mb-col flex1" >
|
|
|
- <el-scrollbar style="height: 450px">
|
|
|
-
|
|
|
- <tableFormWrite :pkeyId="eleTableId" @element-selected="handleElementSelected" :initTableName="initTableName" :selectedTableKey="selectedTableKey" :key="1" :container-id="'excel-container-1'" ></tableFormWrite>
|
|
|
- </el-scrollbar>
|
|
|
- </div>
|
|
|
|
|
|
+ </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>
|
|
|
</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">
|
|
|
@@ -221,7 +223,6 @@
|
|
|
:remark="remark"
|
|
|
:method="method"
|
|
|
@clickTag="handleClickTagElse"
|
|
|
- :method="method"
|
|
|
>
|
|
|
</component>
|
|
|
<div class="flex1" v-show="item.showSelectEle" style="margin-top:10px;margin-bottom:30px">
|
|
|
@@ -244,13 +245,13 @@
|
|
|
</div>
|
|
|
<div v-show="item.showSelectEle" style="width:60%">
|
|
|
<div class="flex" style="justify-content: space-between;width:100%">
|
|
|
- <el-select v-model="eleTableIdComp" @change="getTableEleComp" placeholder="请选择元素表" style="width:45%" size="small" clearable>
|
|
|
+ <el-select v-model="eleTableIdComp" @change="getTableEleComp" placeholder="请选择元素表" style="width:45%">
|
|
|
<el-option v-if="paramDataList.length" label="选择节点参数" value="选择节点参数"></el-option>
|
|
|
<!-- <el-option v-for="item in eleTableListComp" :key="item.id" :label="item.tableName" :value="(item.pkeyId!==null&&item.pkeyId!==-1)"></el-option> -->
|
|
|
<el-option v-for="item in eleTableListComp" :key="item.id" :label="item.tableName" :value="item.pkeyId"></el-option>
|
|
|
</el-select>
|
|
|
<!-- 搜索元素下拉框 -->
|
|
|
- <el-select v-model="input3" filterable placeholder="搜索元素字段888" @change="getInput1" style="width:45%" size="small">
|
|
|
+ <el-select v-model="input3" filterable placeholder="搜索元素字段" @change="getInput1" style="width:45%">
|
|
|
<el-option
|
|
|
v-for="item in eleListComp1"
|
|
|
:key="item.id"
|
|
|
@@ -261,6 +262,8 @@
|
|
|
</div>
|
|
|
|
|
|
<!-- <div class="mg-t-10 mg-b-10 no-mb-col" style="width:100%">
|
|
|
+
|
|
|
+ <div class="mg-t-10 mg-b-10 no-mb-col" style="width:100%">
|
|
|
<el-scrollbar style="height:520px;">
|
|
|
<el-row>
|
|
|
<el-col :span="6" v-for="item in eleListComp" :key="item.id">
|
|
|
@@ -278,7 +281,7 @@
|
|
|
|
|
|
<tableFormWrite :pkeyId="eleTableIdComp" @element-selected="(obj, val) => handleElementSelectedComp(obj, val, index)" :initTableName="initTableNameComp" :key="2" :container-id="'excel-container-2'" :selectedTableKey="selectedTableKeyComp"></tableFormWrite>
|
|
|
</el-scrollbar>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -290,7 +293,7 @@
|
|
|
<div v-if="!operationVisible && !showFunDetail && deviationRange.show" class="flex1">
|
|
|
<div class="flex">
|
|
|
<div class=" flex-d-c" style="width:40%">
|
|
|
- <deviation-range ref="deviationrange" :formulainfo="deviationRange" :formulamap="formulaMap" @uncheck="unCheckEleComp" class="flex1" @clickTag="handleClickTag"></deviation-range>
|
|
|
+ <deviation-range ref="deviationrange" :formulainfo="deviationRange" :formulamap="formulaMap" @uncheck="unCheckEleComp" class="flex1"></deviation-range>
|
|
|
<div class="flex1" v-show="deviationRange.showSelectEle" style="margin-top:10px;margin-bottom:30px">
|
|
|
<el-scrollbar style="height: 400px">
|
|
|
<el-tree
|
|
|
@@ -313,20 +316,23 @@
|
|
|
<el-select v-model="eleTableIdComp" @change="getTableEleComp" placeholder="请选择元素表" style="width:45%" clearable size="small">
|
|
|
|
|
|
<el-option v-for="item in eleTableListComp" :key="item.id" :label="item.tableName":value="item.pkeyId"></el-option>
|
|
|
+ <el-select v-model="eleTableIdComp" @change="getTableEleComp" placeholder="请选择元素表" style="width:45%">
|
|
|
+ <el-option v-if="paramDataList.length" label="选择节点参数" value="选择节点参数"></el-option>
|
|
|
+ <el-option v-for="item in eleTableListComp" :key="item.id" :label="item.tableName" :value="(item.pkeyId!==null&&item.pkeyId!==-1)"></el-option>
|
|
|
</el-select>
|
|
|
<!-- 搜索元素下拉框 -->
|
|
|
- <!-- <el-select v-model="input3" filterable clearable placeholder="搜索元素字段999" @change="getInput1" style="width:45%" size="small">
|
|
|
+ <el-select v-model="input3" filterable clearable placeholder="搜索元素字段" @change="getInput1" style="width:45%">
|
|
|
<el-option
|
|
|
v-for="item in eleListComp1"
|
|
|
:key="item.id"
|
|
|
:label="item.eName"
|
|
|
:value="item.eName">
|
|
|
</el-option>
|
|
|
- </el-select> -->
|
|
|
+ </el-select>
|
|
|
</div>
|
|
|
|
|
|
<div class="mg-t-10 mg-b-10 no-mb-col" style="width:100%">
|
|
|
- <!-- <el-scrollbar style="height:520px;">
|
|
|
+ <el-scrollbar style="height:520px;">
|
|
|
<el-row>
|
|
|
<el-col :span="6" v-for="item in eleListComp" :key="item.id">
|
|
|
<div class="ele-box">
|
|
|
@@ -336,6 +342,7 @@
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
+ </el-scrollbar>
|
|
|
</el-scrollbar> -->
|
|
|
<el-scrollbar style="height: 520px">
|
|
|
|
|
|
@@ -360,7 +367,7 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog title="选择元素222" :visible.sync="chooseEleVisible" width="80%" append-to-body :close-on-click-modal="false">
|
|
|
+ <el-dialog title="选择元素" :visible.sync="chooseEleVisible" width="70%" append-to-body :close-on-click-modal="false">
|
|
|
<div>
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="8">
|
|
|
@@ -383,15 +390,28 @@
|
|
|
</el-col>
|
|
|
<el-col :span="16">
|
|
|
<div class="flex" style="justify-content: space-between;width:100%">
|
|
|
- <el-select v-model="eleTableId" @change="getTableEle" placeholder="请选择元素表" size="small">
|
|
|
+ <el-select v-model="eleTableId" @change="getTableEle" placeholder="请选择元素表">
|
|
|
<el-option v-if="paramDataList.length" label="选择节点参数3" value="选择节点参数"></el-option>
|
|
|
+ <!-- <template v-if="pid">
|
|
|
+ <el-option v-for="item in eleTableList" :key="item.id" :label="item.tableName" :value="(item.pkeyId!==null&&item.pkeyId!==-1)"></el-option>
|
|
|
+ </template> -->
|
|
|
|
|
|
<template>
|
|
|
+ <!-- <el-option v-for="item in eleTableList" :key="item.pkeyId" :label="item.tableName" :value="item.pkeyId"></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>
|
|
|
</template>
|
|
|
|
|
|
</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>
|
|
|
|
|
|
@@ -400,6 +420,16 @@
|
|
|
<el-scrollbar style="height: 460px">
|
|
|
|
|
|
<tableFormWrite :pkeyId="eleTableId" :multiple-select="true" @element-selected="(obj, val,list) => handleElementSelectedList(obj, val, list)" :initTableName="initTableNameList" :key="tableKey" :container-id="'excel-container-'+tableKey" :selectedTableKey="selectedTableKeyList"></tableFormWrite>
|
|
|
+ <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 => eleCheckHandle(value,item)"></el-checkbox>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row v-else style="text-align: center;line-height: 328px;border:1px solid #bbb">暂无数据</el-row>
|
|
|
</el-scrollbar>
|
|
|
|
|
|
</div>
|
|
|
@@ -460,9 +490,6 @@ 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";
|
|
|
-import { log } from "@antv/g2plot/lib/utils";
|
|
|
-
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
|
@@ -482,8 +509,7 @@ export default {
|
|
|
ifelse,
|
|
|
|
|
|
deviationRange,
|
|
|
- dataChange,
|
|
|
- tableFormWrite
|
|
|
+ dataChange
|
|
|
},
|
|
|
props: {
|
|
|
wbsid:{
|
|
|
@@ -513,17 +539,7 @@ export default {
|
|
|
iswbstype:{//是否是公共wbs
|
|
|
type:String,
|
|
|
default:''
|
|
|
- },
|
|
|
- pkeyId:{
|
|
|
- type:String,
|
|
|
- default:''//表单pkeyId
|
|
|
}
|
|
|
- },
|
|
|
- mounted() {
|
|
|
- // 初始时让容器获得焦点
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$el.querySelector('.sele-ele-box1').focus();
|
|
|
- });
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
@@ -806,13 +822,6 @@ export default {
|
|
|
operationEdit(){
|
|
|
this.selectEleFormula= JSON.parse(JSON.stringify(this.processFormula));
|
|
|
this.operationVisible = true;
|
|
|
- this.checkDefaultSelection();
|
|
|
- const keyParts = this.selectEleFormula[ this.curSeleEleIndex].tableElementKey.split(':');
|
|
|
- this.selectedTableKey = keyParts.length > 1 ? keyParts[1] : null;
|
|
|
- // 确保容器获得焦点
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$el.querySelector('.sele-ele-box1').focus();
|
|
|
- });
|
|
|
},
|
|
|
|
|
|
eleAddFormula(){
|
|
|
@@ -823,6 +832,54 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+
|
|
|
+ // eleChang(value,item){
|
|
|
+ // //console.log(value)
|
|
|
+ // //console.log(item)
|
|
|
+ // if(value){
|
|
|
+ // //简单语法判断
|
|
|
+ // if(this.selectEleFormula.length != 0 && this.deleEleIndex < 0){
|
|
|
+ // let lastEle = this.selectEleFormula[this.selectEleFormula.length-1];
|
|
|
+ // if(lastEle.type == 'Element'){
|
|
|
+ // this.$message({
|
|
|
+ // type: "warning",
|
|
|
+ // message: "元素无法连续出现在元素后面"
|
|
|
+ // });
|
|
|
+ // item.checked = false;
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ // 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;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ // this.eleAddFormulaHandle(item);
|
|
|
+ // }else{
|
|
|
+ // let index = -1;
|
|
|
+ // for (let i = 0; i < this.selectEleFormula.length; i++) {
|
|
|
+ // if(this.selectEleFormula[i].id == item.id){
|
|
|
+ // index = i;
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // if(index>-1){
|
|
|
+ // this.selectEleFormula.splice(index,1);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // },
|
|
|
eleChang(value,item){
|
|
|
if(value){
|
|
|
//简单语法判断
|
|
|
@@ -996,34 +1053,32 @@ export default {
|
|
|
this.deleEleIndex = -1;
|
|
|
}
|
|
|
|
|
|
- // 选中新添加的元素并更新光标位置
|
|
|
- this.setActiveElement(newElementIndex);
|
|
|
+ }else if(ele.template && ele.example){
|
|
|
|
|
|
- }else if(ele.template && ele.example){
|
|
|
- // 运算符号处理(保持原有逻辑)
|
|
|
- if(this.selectEleFormula.length == 0){
|
|
|
- this.$message({
|
|
|
- type: "warning",
|
|
|
- message: "公式开头不能是运算符号"
|
|
|
- });
|
|
|
- return;
|
|
|
- }else{
|
|
|
- let lastEle = this.selectEleFormula[this.selectEleFormula.length-1];
|
|
|
- if(lastEle.type == 'Operator'){
|
|
|
- this.$message({
|
|
|
- type: "warning",
|
|
|
- message: "运算符号无法连续出现在运算符号后面"
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
- if(lastEle.type == 'Brackets' && lastEle.name == '('){
|
|
|
- this.$message({
|
|
|
- type: "warning",
|
|
|
- message: "运算符号无法连续出现在左括号后面"
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
+ //简单语法判断
|
|
|
+ if(this.selectEleFormula.length == 0){
|
|
|
+ this.$message({
|
|
|
+ type: "warning",
|
|
|
+ message: "公式开头不能是运算符号"
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }else{
|
|
|
+ let lastEle = this.selectEleFormula[this.selectEleFormula.length-1];
|
|
|
+ if(lastEle.type == 'Operator'){
|
|
|
+ this.$message({
|
|
|
+ type: "warning",
|
|
|
+ message: "运算符号无法连续出现在运算符号后面"
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(lastEle.type == 'Brackets' && lastEle.name == '('){
|
|
|
+ this.$message({
|
|
|
+ type: "warning",
|
|
|
+ message: "运算符号无法连续出现在左括号后面"
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
this.selectEleFormula.push({
|
|
|
type:'Operator',
|
|
|
@@ -1168,6 +1223,18 @@ setActiveElement(index) {
|
|
|
},
|
|
|
|
|
|
//点选公式中的元素
|
|
|
+ eleFormulaClick({selected,item},index){
|
|
|
+ if(selected){
|
|
|
+ this.selectEleFormula.forEach((ele)=>{
|
|
|
+ ele.selected = false;
|
|
|
+ })
|
|
|
+ item.selected = true;
|
|
|
+ this.curSeleEleIndex = index;
|
|
|
+ }else{
|
|
|
+ this.curSeleEleIndex = -1;
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
// eleFormulaClick({selected,item},index){
|
|
|
// if(selected){
|
|
|
// this.selectEleFormula.forEach((ele)=>{
|
|
|
@@ -1441,16 +1508,50 @@ handleDelete(e) {
|
|
|
this.actiFunIndex = (this.equationSelectEle.children.length-1).toString();
|
|
|
},
|
|
|
|
|
|
+ //选择元素
|
|
|
+ // chooseEleHandle(){
|
|
|
+ // for (let i = 0; i < this.eleList.length; i++) {
|
|
|
+ // if (this.eleList[i].checked) {
|
|
|
+ // let ele = this.eleList[i];
|
|
|
+ // let obj = {};
|
|
|
+ // if(ele.k){
|
|
|
+ // obj = {
|
|
|
+ // type:'ParamData',
|
|
|
+ // name:ele.name,
|
|
|
+ // id:ele.id,
|
|
|
+ // selected:false,
|
|
|
+ // v:ele.v,
|
|
|
+ // k:ele.k,
|
|
|
+ // children:[],
|
|
|
+ // }
|
|
|
+ // }else{
|
|
|
+ // obj = {
|
|
|
+ // type:'Element',
|
|
|
+ // name:ele.eName,
|
|
|
+ // id:ele.id,
|
|
|
+ // selected:false,
|
|
|
+ // tableElementKey:ele.tableElementKey,
|
|
|
+ // children:[],
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+
|
|
|
+ // this.$set(this.argumenObj.arguments,this.argumenObj.index,obj);
|
|
|
+ // this.chooseEleVisible = false;
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // },
|
|
|
//选择元素多选
|
|
|
chooseEleHandle(){
|
|
|
- this.seleList.forEach((element,index) => {
|
|
|
+ this.eleChecks.forEach((element,index) => {
|
|
|
this.setEleToArgumen(element,index+this.argumenObj.index);
|
|
|
});
|
|
|
|
|
|
this.chooseEleVisible = false;
|
|
|
- this.tableKey = Date.now();
|
|
|
|
|
|
|
|
|
+ this.clearEleListCheck();
|
|
|
},
|
|
|
//设置元素到指定位置参数
|
|
|
setEleToArgumen(ele,index){
|
|
|
@@ -2415,8 +2516,6 @@ replaceSelectedElement(newItem) {
|
|
|
const keyParts = item.tableElementKey.split('key');
|
|
|
this.selectedTableKeyComp = keyParts.length > 1 ? 'key'+keyParts[1] : null;
|
|
|
},
|
|
|
-}
|
|
|
-
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
@@ -2506,3 +2605,4 @@ replaceSelectedElement(newItem) {
|
|
|
margin-right: 10px;
|
|
|
}
|
|
|
</style>
|
|
|
+
|