From caeb71b06d19a8ffd854c19e5e4b58f7180cdce8 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期一, 29 四月 2024 18:55:14 +0800
Subject: [PATCH] 纤度检验表的保存接口参数修改

---
 src/views/employeeSalary/salaryPlan/components/addDialog.vue |  775 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 698 insertions(+), 77 deletions(-)

diff --git a/src/views/employeeSalary/salaryPlan/components/addDialog.vue b/src/views/employeeSalary/salaryPlan/components/addDialog.vue
index 0959c77..6fd49ea 100644
--- a/src/views/employeeSalary/salaryPlan/components/addDialog.vue
+++ b/src/views/employeeSalary/salaryPlan/components/addDialog.vue
@@ -1,132 +1,753 @@
 <template>
   <div class="add_wordshop">
-    <el-dialog :title="editConfig.dialogTitle + '杞﹂棿绠$悊'" :visible.sync="editConfig.visible" width="30%"
-      :before-close="handleClose">
-      <el-form :inline="true" label-width="20%" style="width: 100%;" :model="editConfig.infomitton" :rules="rules"
-        ref="ruleForm">
-        <el-form-item label="鏂规鍚嶇О" style="width: 100%;" prop="groupNumber">
-          <el-input v-model="editConfig.infomitton.workshop" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
+    <el-dialog
+      :visible.sync="islook"
+      width="44rem"
+      :before-close="cancelMethod"
+    >
+      <div slot="title" class="tac drawerHeader">
+        {{ editRow.title }}钖祫鏂规
+      </div>
+      <el-form
+        label-width="110px"
+        class="form-box"
+        :model="form"
+        :rules="rules"
+        ref="form"
+      >
+        <el-form-item label="鏂规鍚嶇О" prop="name">
+          <el-input v-model="form.name" placeholder="璇疯緭鍏�"></el-input>
         </el-form-item>
-        <el-form-item prop="workshop"  label="宸ョ" style="width: 100%;" >
-          <el-select 
-            :disabled="this.editConfig.dialogTitle==='鏌ョ湅'" v-model="editConfig.infomitton.workshop" value-key="name" placeholder="璇烽�夋嫨杞﹂棿">
+        <el-form-item label="宸ョ锛�" prop="workTypes">
+          <el-select
+            v-model="form.workTypes"
+            multiple
+            collapse-tags
+            placeholder="璇烽�夋嫨"
+            style="width: 100%"
+          >
             <el-option
-              v-for="item in workshopList"
+              v-for="item in workTypeList"
               :key="item.ID"
-              :label="item.name"
-              :value="item">
+              :label="item.workName"
+              :value="{ value: item.ID, label: item.workName }"
+            >
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="workshop"  label="钖祫绫诲瀷" style="width: 100%;" >
-          <el-select 
-            :disabled="this.editConfig.dialogTitle==='鏌ョ湅'" v-model="editConfig.infomitton.groupNumber" value-key="name" placeholder="璇烽�夋嫨杞﹂棿">
+        <el-form-item prop="salaryTypeId" label="钖祫绫诲瀷">
+          <el-select
+            v-model="form.salaryTypeId"
+            style="width: calc(100% - 40px)"
+            placeholder="璇烽�夋嫨杞﹂棿"
+          >
             <el-option
-              v-for="item in workshopList"
-              :key="item.ID"
+              v-for="item in unitList"
+              :key="item.id"
               :label="item.name"
-              :value="item">
+              :value="item.id"
+            >
             </el-option>
           </el-select>
+          <i
+            class="el-icon-setting margin_left_10px cursor_pointer"
+            style="font-size: 20px; color: gray"
+            @click="handleUnitShow"
+          ></i>
         </el-form-item>
-        <el-form-item prop="workshop"  label="璁¤垂鍏紡瀹氫箟" style="width: 100%;" >
-          <el-input
+        <el-form-item prop="salaryFormulaHtml" label="璁¤垂鍏紡瀹氫箟">
+          <!-- <el-input
             type="textarea"
-            :autosize="{ minRows: 2, maxRows: 4}"
+            :autosize="{ minRows: 4, maxRows: 6}"
+            disabled
             placeholder="璇疯緭鍏ュ唴瀹�"
-            v-model="editConfig.infomitton.workshop">
-          </el-input>
+            v-model="form.salaryFormulaHtml"
+          >
+          </el-input> -->
+          <div class="formula-input" v-html="form.salaryFormulaHtml"></div>
+          <div class="formula-btn-right">
+            <el-button
+              class="formula-btn-t"
+              type="text"
+              :disabled="form.salaryFormulaHtml.length > 0 ? false : true"
+              @click="deleteFormula()"
+              >娓呴櫎</el-button
+            >
+            <el-button
+              class="formula-btn"
+              :disabled="form.salaryFormulaHtml.length > 0 ? false : true"
+              type="text"
+              @click="checkFormula()"
+              >妫�鏌ュ叕寮�</el-button
+            >
+          </div>
         </el-form-item>
+        <div class="formula-error">
+          <span v-if="form.error == 1" class="color_blue">
+            鏃犻敊璇紝鍙斁蹇冧娇鐢� !
+          </span>
+          <span v-if="form.error == 2" class="color_red">
+            鍏紡鏈夐敊璇紝璇锋鏌� !
+          </span>
+        </div>
+        <div class="formula-box">
+          <div class="table-bottom-tabs">
+            <div
+              class="tab-pane"
+              @click="tabClickBottom(1)"
+              :style="{
+                background: activeName == 1 ? '#2a78fb' : '#F1F3F8',
+                color: activeName == 1 ? '#fff' : '#666',
+              }"
+            >
+              鐢熶骇鏁版嵁
+            </div>
+            <div
+              class="tab-pane"
+              @click="tabClickBottom(2)"
+              :style="{
+                background: activeName == 2 ? '#2a78fb' : '#F1F3F8',
+                color: activeName == 2 ? '#fff' : '#666',
+              }"
+            >
+              鑰冨嫟鍙婅ˉ璐存暟鎹�
+            </div>
+          </div>
+          <div class="formula-bottom-box">
+            <div class="formula-l">
+              <div class="formula-p">鍙�夋暟鎹�</div>
+              <div class="formula-bottom" v-if="activeName == 1">
+                <div
+                  :class="item.width == 2 ? 'formula-item-100' : 'formula-item'"
+                  v-for="item in formulaName"
+                  :key="item.name"
+                >
+                  <span @click="formulaClick(item)"> {{ item.name }}</span>
+                  <i
+                    v-if="item.type == 1"
+                    class="el-icon-setting margin_left_5px cursor_pointer"
+                    style="font-size: 18px; color: gray"
+                    @click="handleSlikSetShow"
+                  ></i>
+                </div>
+              </div>
+              <div class="formula-bottom" v-if="activeName == 2">
+                <div
+                  :class="item.width == 2 ? 'formula-item-100' : 'formula-item'"
+                  v-for="item in formulaNameTwo"
+                  :key="item.name"
+                >
+                  <span @click="formulaClick(item)"> {{ item.name }}</span>
+                  <i
+                    v-if="item.type == 2"
+                    class="el-icon-setting margin_left_5px cursor_pointer"
+                    style="font-size: 18px; color: gray"
+                    @click="handleConstSetShow(10)"
+                  ></i>
+                </div>
+              </div>
+            </div>
+            <div class="formula-r">
+              <div class="formula-p">甯哥敤绗﹀彿/浜ч噺</div>
+              <div class="formula-bottom">
+                <div
+                  :class="item.width == 2 ? 'formula-item-100' : 'formula-item'"
+                  v-for="item in formulaSymbol"
+                  :key="item.name"
+                >
+                  <span v-if="item.type == 3" @click="handleConstSetShow(3)">
+                    {{ item.name }}</span
+                  >
+                  <span v-else @click="formulaClick(item)">
+                    {{ item.name }}</span
+                  >
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="editConfig.visible = false">鍙� 娑�</el-button>
-        <el-button type="primary" @click="commitForm('ruleForm')">纭� 瀹�</el-button>
+        <el-button type="cancel" @click="cancelMethod()">鍙栨秷</el-button>
+        <el-button type="primary" :loading="isAddloading" @click="submitForm('form')">纭� 瀹�</el-button>
       </span>
     </el-dialog>
+    <BomDialog
+      ref="editDialog"
+      @handleConfirmSave="handleConfirmSave"
+      :workList="unitList"
+      title="璁¢噺鍗曚綅"
+    ></BomDialog>
+    <SilkSetDialog
+      ref="silkSetDialog"
+      @confirmValueSave="confirmValueSave"
+      :editRow="{wildSilkList:wildSilkList}"
+      title="閰嶇疆"
+    ></SilkSetDialog>
+    <ConstantSetDialog
+      ref="constantSetDialog"
+      @confirmValueSave="confirmValueSave"
+      :constType="constType"
+      :editRow="constType == 10?{absenteeism:absenteeism}:form"
+      :title="constType == 10 ? '閰嶇疆' : '杈撳叆'"
+    ></ConstantSetDialog>
   </div>
 </template>
 
 <script>
-// import {} from "@/api/systemSetting/workshopManage"
+import {
+  saveSalaryPlan,
+  getSalaryTypeList,
+  saveSalaryType,
+} from "@/api/employeeSalary/salaryPlan.js";
+import { getWorkTypeList } from "@/api/employeeManage/employeeInfo.js";
+import BomDialog from "@/views/employeeSalary/salaryPlan/components/bomDialog.vue";
+import SilkSetDialog from "@/views/employeeSalary/salaryPlan/components/SilkSetDialog.vue";
+import ConstantSetDialog from "@/views/employeeSalary/salaryPlan/components/ConstantSetDialog.vue";
 export default {
+  components: {
+    BomDialog,
+    SilkSetDialog,
+    ConstantSetDialog,
+  },
   props: {
-    editDiaConfig: {
+    editRow: {
       type: Object,
-      default: () => {
-        return {
-          visible: false,
-          dialogTitle: "娣诲姞",
-          isReadonly: true,
-          infomitton: {
-          },
-        }
-      }
-    }
+    },
   },
   data() {
     return {
-      editConfig: this.editDiaConfig,
-      workshopList: [],
-      carFlagList: [
-      ],
-      rules: {
-        workshopNumber: [
-          { required: true, message: '璇烽�夋嫨杞﹂棿', trigger: 'change' }
-        ],
-        groupNumber: [
-          { required: true, message: '璇峰~鍐欑粍鍒�', trigger: 'change' }
-        ]
+      islook: false,
+      form: {
+        name: "",
+        workTypes: [],
+        salaryTypeId: null,
+        salaryFormula: "",
+        salaryFormulaHtml: "",
+        error: "",
       },
+      // 婊″嫟濂栬缃�
+      absenteeism:{value:1,id:null},
+      // 璁剧疆閲庣氦鐨勭敓涓濇爣鍑�
+      wildSilkList: {value:'閲庣氦',id:null},
+      activeName: 1,
+      formulaName: [
+        {
+          name: "鏃ヤ骇涓濋噺",
+        },
+        {
+          name: "閲庣氦鏁伴噺",
+          type: 1,
+        },
+        {
+          name: "鐢熶笣鍗曚环",
+        },
+        {
+          name: "閲庣氦鍗曚环",
+        },
+        {
+          name: "妗舵暟(鏃�)",
+        },
+        {
+          name: "鍑哄嫟澶╂暟",
+        },
+        {
+          name: "鍚岀粍鎸¤溅宸ユ湀骞冲潎宸ヨ祫",
+          width: 2,
+        },
+        {
+          name: "鍚岀粍杞﹀ご宸ュ伐璧�",
+          width: 2,
+        },
+      ],
+      formulaNameTwo: [
+        {
+          name: "宸ヤ綔鏃ュ姞鐝椂闀�",
+        },
+        {
+          name: "婊″嫟濂�",
+          type: 2,
+        },
+        {
+          name: "浼戞伅鏃ュ姞鐝椂闀�",
+        },
+        {
+          name: "璇峰亣澶╂暟",
+        },
+        {
+          name: "甯﹀緬澶╂暟",
+        },
+        {
+          name: "宸ラ緞",
+        },
+        {
+          name: "鍑哄嫟澶╂暟",
+        },
+      ],
+      formulaSymbol: [
+        {
+          name: "+",
+          background: "background_red",
+        },
+        {
+          name: "-",
+          background: "background_red",
+        },
+        {
+          name: "/",
+          background: "background_red",
+        },
+        {
+          name: "*",
+          background: "background_red",
+        },
+        {
+          name: "(",
+        },
+        {
+          name: ")",
+        },
+        {
+          name: "甯搁噺鏁板瓧",
+          type: 3,
+          width: 2,
+        },
+      ],
+      workTypeList: [], //宸ョ
+      rules: {
+        name: [
+          { required: true, message: "璇峰~鍐�", trigger: ["blur", "change"] },
+        ],
+        workTypes: [
+          {
+            required: true,
+            message: "璇烽�夋嫨",
+            trigger: ["blur", "change"],
+          },
+        ],
+        salaryTypeId: [
+          { required: true, message: "璇烽�夋嫨", trigger: ["blur", "change"] },
+        ],
+        salaryFormulaHtml: [
+          { required: true, message: "璇烽�夋嫨", trigger: ["blur", "change"] },
+        ],
+      },
+      unitList: [],
+      constType: "",
+      isAddloading: false,
     };
   },
-  computed: {
-  },
+  computed: {},
   created() {
+    this.handleGetBomKindDictList();
+    this.handleGetBomKindDictList(9);
+    this.handleGetBomKindDictList(10);
+    this.getSelectDataList();
   },
-  mounted() {
-
-  },
+  mounted() {},
   watch: {
-
+    islook(newVal) {
+      if (newVal) {
+        this.formInfo();
+      }
+    },
+    editRow() {
+      this.formInfo();
+    },
   },
   methods: {
-    handleClose(done) {
-      done();
+    tabClickBottom(activeName) {
+      this.activeName = activeName;
     },
-    setParams() {
-      let params = {
-        workshopNumber: this.editConfig.infomitton.workshopNumber + '',
-        groupNumber: Number(this.editConfig.infomitton.groupNumber),
-        startCarNumber: Number(this.editConfig.infomitton.startCarNumber),
-        endCarNumber: Number(this.editConfig.infomitton.endCarNumber),
-        carFlag: Number(this.editConfig.infomitton.carFlag),
-        notes: this.editConfig.infomitton.notes,
-        // id:Number(this.editConfig.infomitton.workshopId),
+    formInfo() {
+      if (this.islook) {
+        this.form = {
+          name: "",
+          workTypes: [],
+          salaryTypeId: null,
+          salaryFormula: "",
+          salaryFormulaHtml: "",
+          error: "",
+        };
+        this.$nextTick(() => {
+          this.$refs["form"].resetFields();
+          if (this.editRow.id) {
+            this.form = JSON.parse(JSON.stringify(this.editRow));
+            let salaryFormula = this.form.salaryFormula
+              ? this.form.salaryFormula
+              : "";
+            this.form.salaryFormulaHtml = "";
+            this.form.salaryFormula = "";
+            let arr = salaryFormula ? salaryFormula.split(",") : [];
+            this.getSalaryFormulaHtml(arr);
+          }
+        });
       }
-      return params
     },
-    async commitForm(formName) {
+    getSalaryFormulaHtml(arr) {
+      let formulaNameArr = this.formulaName
+        .concat(this.formulaNameTwo)
+        .concat(this.formulaSymbol);
+      if (arr.length > 0) {
+        for (let i in arr) {
+          for (let j in formulaNameArr) {
+            let reg2 =
+              /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
+            if (reg2.test(arr[i])) {
+              this.formulaClick(
+                { name: "甯搁噺鏁板瓧", type: 3, width: 2 },
+                arr[i]
+              );
+            } else if (formulaNameArr[j].name == arr[i]) {
+              this.formulaClick(formulaNameArr[j]);
+            }
+          }
+        }
+      }
+    },
+    // 鐐瑰嚮鐢熶骇鏁版嵁鍜岃�冨嫟鍙婅ˉ璐存暟鎹� 璧嬪�艰璐瑰叕寮忓畾涔�
+    formulaClick(item, value) {
+      let string = "";
+      let name = item.type == 3 && item.name == "甯搁噺鏁板瓧" ? value : item.name;
+      if (item.background) {
+        string =
+          "<span class='formula-input-item background_red color_fff'>" +
+          name +
+          "</span>";
+      } else {
+        string =
+          "<span class='formula-input-item background_e3e3e3'>" +
+          name +
+          "</span>";
+      }
+      this.form.salaryFormula = this.form.salaryFormula + name + ",";
+      this.form.salaryFormulaHtml = this.form.salaryFormulaHtml + string;
+      this.$forceUpdate();
+    },
+    deleteFormula() {
+      let salaryFormula = this.form.salaryFormula
+              ? this.form.salaryFormula
+              : "";
+      let arr = salaryFormula.split(",");
+      arr = arr.splice(0, arr.length - 1);
+      arr = arr.splice(0, arr.length - 1);
+      this.form.salaryFormulaHtml = "";
+      this.form.salaryFormula = "";
+      this.getSalaryFormulaHtml(arr);
+    },
+    checkFormula() {
+      if (this.form.salaryFormula) {
+        let string = true;
+        let isString = "+-*/";
+        let arr = this.form.salaryFormula.split(",");
+        arr = arr.splice(0, arr.length - 1);
+        for (let i = 0; i < arr.length; i++) {
+          if (arr[i] != "") {
+            // 闄ゆ暟涓嶈兘涓�0, 绗﹀彿閭h竟闇�瑕佹湁鍊�
+            if (isString.indexOf(arr[i]) != -1 || arr[i] == "(") {
+              if (i != 0) {
+                if (isString.indexOf(arr[i - 1]) != -1) {
+                  string = false;
+                  break;
+                }
+              }
+              if (i == arr.length - 1) {
+                string = false;
+                break;
+              }
+              if (i < arr.length - 1) {
+                if (isString.indexOf(arr[i + 1]) != -1) {
+                  string = false;
+                  break;
+                } else if (arr[i] == "/" && arr[i + 1] == 0) {
+                  string = false;
+                  break;
+                }
+              }
+            } else if (arr[i] == ")") {
+              if (i < arr.length - 1) {
+                if (isString.indexOf(arr[i + 1]) == -1) {
+                  string = false;
+                  break;
+                }
+              }
+            } else {
+              if (i != 0) {
+                if (isString.indexOf(arr[i - 1]) == -1 && arr[i - 1] != "(") {
+                  string = false;
+                  break;
+                }
+              }
+              if (i < arr.length - 1) {
+                if (isString.indexOf(arr[i + 1]) == -1 && arr[i + 1] != ")") {
+                  string = false;
+                  break;
+                }
+              }
+            }
+          }
+        }
+
+        if (!string) {
+          this.$set(this.form, "error", 2);
+        } else {
+          this.$set(this.form, "error", 1);
+        }
+      }
+    },
+    confirmValueSave(form, type) {
+      if (type == 9) {
+        let wildSilkList = form.wildSilkList;
+        this.handleConfirmSave([
+          {
+            name:wildSilkList.join(','),
+            id:this.wildSilkList.id
+          }
+        ],type)
+      } else if (type == 10) {
+        let absenteeism = form.absenteeism + "";
+        this.handleConfirmSave([
+          {
+            name:absenteeism,
+            id:this.absenteeism.id
+          }
+        ],type)
+      } else if (type == 3) {
+        this.formulaClick(
+          {
+            name: "甯搁噺鏁板瓧",
+            type: 3,
+            width: 2,
+          },
+          form.number
+        );
+      }
+    },
+    // 閲庣氦鏁伴噺
+    handleSlikSetShow() {
+      this.handleGetBomKindDictList(9);
+      this.$refs.silkSetDialog.islook = true;
+    },
+    // 婊″嫟濂�
+    handleConstSetShow(val) {
+      this.constType = val;
+      if(val==10){
+        this.handleGetBomKindDictList(10);
+      }
+      this.$refs.constantSetDialog.islook = true;
+    },
+    // 鍗曚綅
+    handleUnitShow() {
+      this.handleGetBomKindDictList();
+      this.$refs.editDialog.editDialogVisible = true;
+    },
+    handleConfirmSave(dataList,val) {
+      let params={}
+      if(val==9||val==10){
+        params={
+          type: val,
+          values: dataList,
+        }
+      }else{
+        params={
+          type: 8,
+          values: dataList,
+        }
+      }
+      this.isAddloading = true;
+      saveSalaryType(params).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            message: "鎿嶄綔鎴愬姛锛�",
+            type: "success",
+          });
+          if(val==9){
+            this.$refs.silkSetDialog.islook = false;
+          }else  if(val==10){
+            this.$refs.constantSetDialog.islook = false;
+          }else{
+            this.$refs.editDialog.editDialogVisible = false;
+          }
+          this.handleGetBomKindDictList(val?val:'');
+        }
+        this.isAddloading = false;
+      }).catch(() => {
+                setTimeout(() => {
+                  this.isAddloading = false;
+                }, 3000);
+      });
+    },
+    handleGetBomKindDictList(val) {
+      getSalaryTypeList({ type: val?val:8 }).then((res) => {
+        if(val==9){
+          // 閲庣氦鐨勭敓涓濇爣鍑嗛厤缃�
+          this.wildSilkList=(res.data&&res.data.length>0)?{
+            ...res.data[0],
+            value:res.data[0].name.split(',')||[]
+          }:{
+            id:null,
+            value:['閲庣氦']
+          }
+        }else if(val==10){
+          // 鑰冨嫟閰嶇疆
+          this.absenteeism=(res.data&&res.data.length>0)?{
+            ...res.data[0],
+            value:res.data[0].name||1
+          }:{
+            id:null, 
+            value:1
+          }
+        }else{
+          this.unitList = res.data;
+        }
+       
+      });
+    },
+    getSelectDataList() {
+      getWorkTypeList({
+        page: 0,
+        pageSize: 0,
+        keyWord: "",
+      }).then((res) => {
+        if (res.code == 200) {
+          this.workTypeList = res.data || [];
+        }
+      });
+    },
+    cancelMethod(val) {
+      this.$refs["form"].resetFields();
+      this.islook = false;
+      if (val) {
+        this.$emit("refresh");
+      }
+    },
+    submitForm(formName) {
       this.$refs[formName].validate((valid) => {
         if (valid) {
-          console.log("鏍¢獙閫氳繃")
+          this.checkFormula();
+          if (this.form.error == 2) {
+            this.$message.error("璇锋鏌ヨ璐瑰叕寮忓畾涔夛紒");
+            return true;
+          }
+          let form = JSON.parse(JSON.stringify(this.form));
+          let arr = form.salaryFormula.split(",");
+          arr = arr.splice(0, arr.length - 1);
+          form.salaryFormula = arr.join(",");
+          let workTypes = [];
+          if (form.workTypes && form.workTypes.length > 0) {
+            for (let i in form.workTypes) {
+              workTypes.push({
+                workName: form.workTypes[i].label,
+                id: form.workTypes[i].value,
+              });
+            }
+          }
+          form.workTypes = workTypes;
+          saveSalaryPlan(form).then((res) => {
+            if (res.code == 200) {
+              this.$message({
+                message: "淇濆瓨鎴愬姛锛�",
+                type: "success",
+              });
+              this.cancelMethod(true);
+            }
+          });
         } else {
-          console.log('error submit!!');
           return false;
         }
       });
-
-
-    }
-  },
-  components: {
-
+    },
   },
 };
 </script>
 
 <style scoped lang="scss">
-::v-deep .el-form-item__content {
-  width: 70% !important;
+.form-box {
+  width: 90%;
+  margin-bottom: 40px;
+  margin: 0 auto;
+  .formula-box {
+    height: auto;
+    width: calc(100% - 110px);
+    font-size: 14px;
+    line-height: 25px;
+    padding-left: 110px;
+    .formula-bottom-box {
+      width: 100%;
+      height: auto;
+      overflow: hidden;
+      margin-bottom: 30px;
+      .formula-p {
+        line-height: 40px;
+      }
+      .formula-l,
+      .formula-r {
+        height: auto;
+        float: left;
+      }
+      .formula-l {
+        width: calc(75% - 10px);
+        margin-right: 20px;
+      }
+      .formula-r {
+        width: calc(25% - 10px);
+      }
+      .formula-item-100 {
+        width: 100%;
+        margin-bottom: 10px;
+        span {
+          cursor: pointer;
+          padding: 5px 10px;
+        }
+      }
+      .formula-item {
+        width: calc(50% - 5px);
+        margin-bottom: 10px;
+        float: left;
+        &:nth-of-type(odd) {
+          margin-right: 10px;
+        }
+        span {
+          cursor: pointer;
+          padding: 5px 10px;
+        }
+      }
+      .formula-bottom {
+        padding: 15px 10px;
+        background: #f3f3f3;
+        overflow: hidden;
+      }
+    }
+  }
+  .formula-input {
+    width: calc(100% - 90px);
+    height: 100px;
+    padding: 10px 10px;
+    overflow-y: auto;
+    background: #f5f7fa;
+    border: 1px solid #e4e7ed;
+    cursor: not-allowed;
+    float: left;
+  }
+  .formula-btn-right {
+    width: 60px;
+    float: left;
+    position: relative;
+    .formula-btn-t {
+      margin-left: 10px;
+    }
+    .formula-btn {
+      margin-top: 40px;
+    }
+  }
+
+  .formula-error {
+    width: calc(100% - 110px);
+    line-height: 28px;
+    font-size: 14px;
+    margin-left: 110px;
+    margin-bottom: 10px;
+  }
 }
 
 ::v-deep {

--
Gitblit v1.8.0