gangyj vor 3 Jahren
Ursprung
Commit
f49433d649

+ 66 - 0
src/views/formula/component/funComponent/datasReme.vue

@@ -0,0 +1,66 @@
+<template>
+  <div>
+    <div>
+      <span class="mg-r-20">去空</span>
+      <!-- <el-button size="small" type="info" @click="showSelectEle">选择参数</el-button> -->
+      <el-switch
+        v-model="value1"
+        active-text="开"
+        inactive-text="关"
+        @change="switchChange"
+        >
+      </el-switch>
+    </div>
+    
+  </div>
+</template>
+
+<script>
+export default {
+  name: "dateFormat",
+  props: {
+    formulainfo: {
+      type: Object,
+      default: function () {
+        return {};
+      }
+    },
+    curele: {
+      type: Object,
+      default: function () {
+        return {};
+      }
+    },
+  },
+  data(){
+    return{
+      value1:true
+    }
+  },
+  mounted(){
+    //console.log(this.formulainfo.arguments[0])
+    //console.log(this.formulainfo.arguments[1])
+    if(this.formulainfo.isOn === false){
+      this.value1 = false;
+    }
+
+  },
+  methods:{
+    showSelectEle(){
+      this.$set(this.formulainfo,'showSelectEle',!this.formulainfo.showSelectEle);
+    },
+
+    switchChange(value){
+      this.formulainfo.isOn = value;
+      
+    },
+
+    setELe(){
+
+    }
+  }
+}
+</script>
+<style scoped lang="scss">
+  
+</style>

+ 66 - 0
src/views/formula/component/funComponent/datasRepeat.vue

@@ -0,0 +1,66 @@
+<template>
+  <div>
+    <div>
+      <span class="mg-r-20">去重</span>
+      <!-- <el-button size="small" type="info" @click="showSelectEle">选择参数</el-button> -->
+      <el-switch
+        v-model="value1"
+        active-text="开"
+        inactive-text="关"
+        @change="switchChange"
+        >
+      </el-switch>
+    </div>
+    
+  </div>
+</template>
+
+<script>
+export default {
+  name: "dateFormat",
+  props: {
+    formulainfo: {
+      type: Object,
+      default: function () {
+        return {};
+      }
+    },
+    curele: {
+      type: Object,
+      default: function () {
+        return {};
+      }
+    },
+  },
+  data(){
+    return{
+      value1:true
+    }
+  },
+  mounted(){
+    //console.log(this.formulainfo.arguments[0])
+    //console.log(this.formulainfo.arguments[1])
+    if(this.formulainfo.isOn === false){
+      this.value1 = false;
+    }
+
+  },
+  methods:{
+    showSelectEle(){
+      this.$set(this.formulainfo,'showSelectEle',!this.formulainfo.showSelectEle);
+    },
+
+    switchChange(value){
+      this.formulainfo.isOn = value;
+      
+    },
+
+    setELe(){
+
+    }
+  }
+}
+</script>
+<style scoped lang="scss">
+  
+</style>

+ 85 - 0
src/views/formula/component/funComponent/dateFormat.vue

@@ -0,0 +1,85 @@
+<template>
+  <div>
+    <div>
+      <span class="mg-r-10">日期格式转换</span>
+      <!-- <el-button size="small" type="info" @click="showSelectEle">选择参数</el-button> -->
+    </div>
+    <div class="text-warning mg-t-10 mg-b-10">
+      选择转成过后的格式
+    </div>
+    <div class="mg-t-10 flex">
+      <el-select v-model="formatText" @change="formatChange" allow-create filterable placeholder="请选择" size="medium" style="width:300px" class=" mg-r-20">
+        <el-option label="xxxx年xx月xx日" value="xxxx年xx月xx日"></el-option>
+        <el-option label="xxxx/xx/xx" value="xxxx/xx/xx"></el-option>
+        <el-option label="xxxx-xx-xx" value="xxxx-xx-xx"></el-option>
+        <el-option label="xxxx.xx.xx" value="xxxx.xx.xx"></el-option>
+      </el-select>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "dateFormat",
+  props: {
+    formulainfo: {
+      type: Object,
+      default: function () {
+        return {};
+      }
+    },
+    curele: {
+      type: Object,
+      default: function () {
+        return {};
+      }
+    },
+  },
+  data(){
+    return{
+      formatText:'',
+
+      fromatReg:/[xyY]{4}([^xyYmM]*)[xmM]{1,2}([^xmMdD]*)[xdD]{1,2}([^xdD]*)/,
+    }
+  },
+  mounted(){
+    //console.log(this.formulainfo.arguments[0])
+    //console.log(this.formulainfo.arguments[1])
+    let arg1 = this.formulainfo.arguments[1];
+    if(arg1){
+      let regRes = arg1.match(this.fromatReg);
+      //console.log(regRes)
+      this.formatText = 'xxxx' + regRes[1] + 'xx' + regRes[2] + 'xx' + regRes[3];
+    }
+
+  },
+  methods:{
+    showSelectEle(){
+      this.$set(this.formulainfo,'showSelectEle',!this.formulainfo.showSelectEle);
+    },
+
+    formatChange(value){
+      if(this.fromatReg.test(value)){
+        let regRes = value.match(this.fromatReg);
+        //console.log(regRes)
+        this.formulainfo.arguments[1] = 'yyyy' + regRes[1] + 'MM' + regRes[2] + 'dd' + regRes[3];
+      }else{
+        this.$message({
+          type: "error",
+          message: "格式不正确"
+        });
+        this.formulainfo.arguments[1] = '';
+        this.formatText = '';
+      }
+      
+    },
+
+    setELe(){
+
+    }
+  }
+}
+</script>
+<style scoped lang="scss">
+  
+</style>

+ 10 - 1
src/views/formula/edit.vue

@@ -277,6 +277,9 @@ import formulaItem from "./component/formulaItem"
 import formulaTemplate from "./component/formulaTemplate"
 
 import dateDeviation from "./component/funComponent/dateDeviation"
+import dateFormat from "./component/funComponent/dateFormat"
+import datasRepeat from "./component/funComponent/datasRepeat"
+import datasReme from "./component/funComponent/datasReme"
 
 import {formulaArrayToString} from "./formulaArrayToString"
 import {formulaStringToArray} from "./formulaStringToArray"
@@ -285,7 +288,10 @@ export default {
     formulaItem,
     formulaTemplate,
 
-    dateDeviation
+    dateDeviation,
+    dateFormat,
+    datasRepeat,
+    datasReme,
   },
   data() {
     return {
@@ -335,6 +341,9 @@ export default {
 
       componentMap:{
         '日期偏移':'date-deviation',
+        '日期格式化':'date-format',
+        '去重':'datas-repeat',
+        '去空':'datas-reme',
       },
       eleListComp:[],
     };

+ 5 - 0
src/views/formula/formulaArrayToString.js

@@ -5,6 +5,11 @@ function transformArguments(children,curEle,eleMap){
   let fcText = '';
   for (let i = (children.length-1); i >= 0; i--) {
     let ele = children[i];
+
+    if(ele.isOn === false){
+      //点击了开关关闭的,跳过
+      continue;
+    }
     //console.log(ele.name)
     let tmpArr = fcReg.exec(ele.template.ft);
     fcText = tmpArr[1] + fcText;//fc.XX( 左括号部分