|
@@ -161,9 +161,50 @@
|
|
|
<div v-if="!operationVisible && showFunDetail">
|
|
|
<el-tabs v-model="actiFunIndex" closable @tab-remove="removeFun" :before-leave="funLeave">
|
|
|
<el-tab-pane v-for="(item,index) in equationSelectEle.children" :key="index" :label="item.name" :name="index.toString()">
|
|
|
- <formula-template :formulainfo="item" :curele="equationSelectEle" @sele-ele-handle="showChooseEle">
|
|
|
-
|
|
|
- </formula-template>
|
|
|
+ <template v-if="!componentMap[item.name]">
|
|
|
+ <formula-template ref="dynamiccomponent" :formulainfo="item" :curele="equationSelectEle" @sele-ele-handle="showChooseEle">
|
|
|
+ </formula-template>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div class="flex">
|
|
|
+ <div class="flex flex-d-c">
|
|
|
+ <component ref="dynamiccomponent" v-bind:is="componentMap[item.name]" :formulainfo="item" :curele="equationSelectEle" class="flex1"></component>
|
|
|
+ <div v-show="item.showSelectEle">
|
|
|
+ <el-select v-model="eleTableId" @change="getTableEleComp" placeholder="请选择元素表" style="width:100%">
|
|
|
+ <el-option v-for="item in eleTableList" :key="item.id" :label="item.tableName" :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+ <div class="mg-t-10 mg-b-10 no-mb-col" style="width:900px">
|
|
|
+ <el-scrollbar style="max-height: 210px;min-height:100px">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6" v-for="item in eleListComp" :key="item.id">
|
|
|
+ <div class="ele-box">
|
|
|
+ <span>{{item.eName}}</span>
|
|
|
+ <el-checkbox @change="value => setComponentEle(value,item,index)"></el-checkbox>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-scrollbar>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="flex1" v-show="item.showSelectEle">
|
|
|
+ <el-scrollbar style="height: 460px">
|
|
|
+ <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-scrollbar>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</div>
|
|
@@ -235,12 +276,16 @@ import {mapGetters} from "vuex";
|
|
|
import formulaItem from "./component/formulaItem"
|
|
|
import formulaTemplate from "./component/formulaTemplate"
|
|
|
|
|
|
+import dateDeviation from "./component/funComponent/dateDeviation"
|
|
|
+
|
|
|
import {formulaArrayToString} from "./formulaArrayToString"
|
|
|
import {formulaStringToArray} from "./formulaStringToArray"
|
|
|
export default {
|
|
|
components: {
|
|
|
formulaItem,
|
|
|
- formulaTemplate
|
|
|
+ formulaTemplate,
|
|
|
+
|
|
|
+ dateDeviation
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -287,6 +332,11 @@ export default {
|
|
|
symbolReg:/(\+|-|\*|\/)(.+)/,
|
|
|
operatorReg : /^\+|-|\*|%/,//加减乘除
|
|
|
startFCRegExp : /^FC\.([a-zA-Z]+)\(/,// 匹配开始的FC.xxx(
|
|
|
+
|
|
|
+ componentMap:{
|
|
|
+ '日期偏移':'date-deviation',
|
|
|
+ },
|
|
|
+ eleListComp:[],
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
@@ -700,6 +750,14 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
|
|
|
+
|
|
|
+ //设置动态组件里面的元素
|
|
|
+ setComponentEle(value,item,index){
|
|
|
+ if(value){
|
|
|
+ this.$refs.dynamiccomponent[index].setELe(item);
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
getNodeDetail(data) {
|
|
|
selectByNodeTable(data.id).then((res)=>{
|
|
|
if(res.data.data.length){
|
|
@@ -730,6 +788,12 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
|
|
|
+ getTableEleComp(tableId){
|
|
|
+ selectFormElements(tableId).then((res)=>{
|
|
|
+ this.eleListComp = res.data.data;
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
getTypeMap(){
|
|
|
return new Promise((resolve)=>{
|
|
|
getTypeMap().then((res)=>{
|