<template>
  <div class="data-info">
    <el-card>
      <el-form :model="dataForm" label-width="120px">

        <el-form-item label="公式名称:">
          <el-input v-model="dataForm.name"></el-input>
        </el-form-item>

        <el-form-item label="公式:">
          <el-input type="textarea" v-model="dataForm.formula"></el-input>
          <div class="intro">
            公式说明：
            <div>格式一：[T][模块引用名][属性引用名]    <span>*</span>其中 [T]表示的是模块引用。</div>
            <div>格式二：[R][表名][Sheet名称][row,col]   <span>*</span>其中 [R]表示引用的是原始数据。 其中row,col表示excel表中的行、列序号</div>
            <div>目前仅支持+、-、*、/ 四种计算符合</div>
            <div>示例　[T][模块01][attr01]+[T][模块01][attr02]</div>
          </div>
        </el-form-item>
        <el-form-item label="介绍:">
            <el-input type="textarea" v-model="dataForm.intro"></el-input>
        </el-form-item>

        <el-form-item label="公式状态:">
          <el-select v-model="dataForm.status"  placeholder="请选择状态" size="large" style="width:100%;">
              <el-option
                v-for="item in statusOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              />
            </el-select>
        </el-form-item>
      </el-form>
    </el-card>
    <div style="text-align:right; margin-top:20px;">
        <el-button type="warning" @click="btnSave">确认保存</el-button>
    </div>
  </div>
</template>

<script>
  import {createFormula,updateFormula,getFormulaInfo} from'@/api/formula';
  export default{
    emits:['onClose'],
    props:{
      id:{
        type:Number,
        default:0
      },
    },
    watch:{
      id:{
        handler(v){
            let _this=this;
            if(v==null)return;
            if(v==0){
              this.dataForm={
                   id:0,
                   name:'',
                   formula:'',
                   intro:"",
                   status:'',
                   use_status:5,
                   params:"[]"
                };
                return;
            }
            _this.getInfo(v);
        },
        immediate: true,
        deep: true
      }
    },
    data(){
      return{
        activeName:'base',
        currentCategory:[],
        allCategories:[],

        dataForm:{
           id:0,
           name:'',
           formula:'',
           intro:"",
           status:'',
           use_status:5,
           params:"[]"
        },
        statusOptions:[
         {
           value:'',
           label:"请选择状态"
         },
         {
           value:5,
           label:'使用中'
         },
         {
           value:6,
           label:"已停用"
         },
        ],
      }
    },

    mounted() {
      let _this=this;
    },
    methods:{
      //保存更新
      btnSave(e){
          let _this=this;

          if(_this.dataForm.id>0){
            updateFormula(_this.dataForm).then(res=>{
              _this.$alter("公式更新成功")
            })
          }else{
            createFormula(_this.dataForm).then(res=>{
              _this.$alter("公式创建的成功")
            })
          }
          _this.$emit("onClose")
      },

      //产品详情
      getInfo(id){
          let _this=this;
          let par={
            id:id,
          };
          getFormulaInfo(par).then(res=>{
              if(!res)return;
              if(res.status!=200)return;
              _this.dataForm=res.data;
          })
      },

      onChangeStatus(e){
          this.dataForm.status=e;
      },
      //修改分类信息
      onChangeCategory(e){
         let _this=this;
         _this.dataForm.categoryId=e;
      },

    }
  }
</script>

<style lang="scss">
 @import './dataInfo.scss'
</style>
