Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	vue.config.js
liuyc 3 жил өмнө
parent
commit
b244333e96

+ 9 - 0
src/api/exctab/excelmodel.js

@@ -108,4 +108,13 @@ export const deleteExcelshu = (ids) => {
             ids,
         }
     })
+}
+
+//关联清表保存
+export const saveLinkTab = (params) => {
+    return request({
+        url: ' /api/blade-manager/exceltab/save-linkTab',
+        method: 'get',
+        params
+    })
 }

+ 22 - 0
src/api/manager/projectinfo.js

@@ -30,6 +30,18 @@ export const getProjectDeatil = (id) => {
   })
 }
 
+export const getProjectDeatilWbsId = (id,ReferenceWbsTemplateId,ReferenceWbsTemplateType) => {
+  return request({
+    url: '/api/blade-manager/projectInfo/detail2',
+    method: 'get',
+    params: {
+      id,
+      ReferenceWbsTemplateId,
+      ReferenceWbsTemplateType
+    }
+  })
+}
+
 export const findWbsTreeList = (type) => {
   return request({
     url: '/api/blade-manager/projectInfo/findWbsTreeList',
@@ -59,3 +71,13 @@ export const submitWbsTreeInProject = (obj) => {
   })
 }
 
+export const removeProject = (ids) => {
+  return request({
+    url: '/api/blade-manager/projectInfo/remove',
+    method: 'post',
+    params: {
+      ids
+    }
+  })
+}
+

+ 18 - 2
src/views/manager/contractinfo/detail.vue

@@ -111,7 +111,7 @@
               <el-divider></el-divider>
               <el-row :gutter="20">
                 <el-col :span="12">
-                  <div>组卷归档默认信息</div>
+                  <div class="head-font">组卷归档默认信息</div>
                     <el-row>
                       <el-col :span="12">
                         <el-form-item label="立卷人" prop="filer">
@@ -157,7 +157,7 @@
                     </el-row>
                 </el-col>
                 <el-col :span="12">
-                  <div>附加信息</div>
+                  <div class="head-font">附加信息</div>
                     <el-form-item label="项目地址" prop="projectPlace">
                       <!-- <el-input v-model="contractForm.projectPlace" placeholder="点击后面地图选取地址">
                         <el-button slot="append" icon="el-icon-map-location" @click="mapDialogVisible = true"></el-button>
@@ -289,6 +289,12 @@
         }
         callback();
       };
+      var checkIsNumber = (rule, value, callback) => {
+        if (value != Number(value)) {
+          callback(new Error('金额必须是数字'));
+        }
+        callback();
+      };
 
       return {
         activeType:'1',
@@ -344,6 +350,9 @@
           ],
           actualEndTime:[
             {validator: checkDate2,trigger: 'blur'},
+          ],
+          contractAmount:[
+            {validator: checkIsNumber,trigger: 'blur'}
           ]
         },
 
@@ -501,6 +510,9 @@
             if(this.contractForm.projectPlace){
               this.flageData = ['','',this.contractForm.projectPlace]
             }
+            if(Number(this.contractForm.contractAmount) < 0){
+              this.contractForm.contractAmount = 0;
+            }
             this.$nextTick(()=>{
               this.typeChang['1'] = false;
             })
@@ -807,4 +819,8 @@
     width: 100%;
     height: 300px;
   }
+  .head-font{
+    font-size: 20px;
+    font-weight:bold;
+  }
 </style>

+ 98 - 23
src/views/manager/projectinfo/detail.vue

@@ -37,7 +37,7 @@
                   <el-form-item label="项目概况" prop="projectGist">
                     <el-input v-model="projectForm.projectGist" type="textarea" :rows="7"></el-input>
                   </el-form-item>
-                  <el-form-item label="内置里程">
+                  <el-form-item label="内置里程" prop="projectAllMileage">
                     <el-radio-group v-model="radioType">
                       <el-radio-button label="总里程"></el-radio-button>
                       <el-radio-button label="路面"></el-radio-button>
@@ -146,7 +146,8 @@
 </template>
 
 <script>
-  import {submitProject,getProjectDeatil,findWbsTreeList,findProjectTree,submitWbsTreeInProject} from "@/api/manager/projectinfo";
+  import {submitProject,getProjectDeatil,findWbsTreeList,findProjectTree,
+          submitWbsTreeInProject,getProjectDeatilWbsId} from "@/api/manager/projectinfo";
   import {findContractByProjectId,saveUserInfoByProject,findUserListByCondition,
           findUserByName,removeUsersByIds} from "@/api/manager/contractinfo";
   import {getRoleTree} from "@/api/system/role";
@@ -176,6 +177,31 @@
         }
         callback();
       };
+      var checkIsNumber = (rule, value, callback) => {
+        if (value != Number(value)) {
+          callback(new Error('金额必须是数字'));
+        }
+        callback();
+      };
+      var checkMileage = (rule, value, callback) => {
+        if (this.projectForm.projectPavement || this.projectForm.projectSubgrade) {
+          if(this.projectForm.projectPavement){
+            if(this.projectForm.projectPavement > value){
+              callback(new Error('总里程必须是最大的'));
+            }
+          }else if(this.projectForm.projectSubgrade){
+            if(this.projectForm.projectSubgrade > value){
+              callback(new Error('总里程必须是最大的'));
+            }
+          }
+          if(this.projectForm.projectPavement && this.projectForm.projectSubgrade){
+            if((this.projectForm.projectPavement + this.projectForm.projectSubgrade) > value){
+              callback(new Error('总里程必须大于两项总和'));
+            }
+          }
+        }
+        callback();
+      };
 
       return {
         activeType:'1',
@@ -205,6 +231,12 @@
           ],
           actualEndTime:[
             {validator: checkDate2,trigger: 'blur'}
+          ],
+          estimatedAmount:[
+            {validator: checkIsNumber,trigger: 'blur'}
+          ],
+          projectAllMileage:[
+            {validator: checkMileage,trigger: 'blur'}
           ]
         },
 
@@ -238,32 +270,14 @@
         },
         deep: true
       },
-      activeType: async function (newValue) {
+      activeType: function (newValue) {
         if(newValue == '3'){
           this.getContractList();
           this.getRoleList();
           this.getUserByCondition();
           this.getUserByName();
         }else if(newValue == '2'){
-          let refId = this.projectForm.referenceWbsTemplateId;
-          if(refId && refId>0){
-            //有引用id,回显
-            this.wbsId = refId;
-            this.selected = true;
-            let projectTree = await findProjectTree(this.projectForm.id,refId)
-            if(Array.isArray(projectTree.data.data)){
-              this.templateType = projectTree.data.data[0].wbsType;
-              let leftData = await getAlltree(this.userInfo.tenant_id,'1',refId)
-              if(Array.isArray(leftData.data.data)){
-                this.leftTreeData = leftData.data.data;
-              }else{
-                this.leftTreeData = [];
-              }
-              this.$refs.treetotree.setRightTree(projectTree.data.data);
-            }
-          }
-
-          this.getTreeList();
+          this.treeInit();
         }
       }
     },
@@ -337,9 +351,19 @@
      getProjectDeatil(){
         getProjectDeatil(this.id).then((res)=>{
           this.projectForm = res.data.data;
+          if(Number(this.projectForm.estimatedAmount) < 0){
+            this.projectForm.estimatedAmount = 0
+          }
           this.$nextTick(()=>{
             this.typeChang['1'] = false;
           })
+          let templateType = 'public';
+          if(this.projectForm.referenceWbsTemplateType){
+            templateType = this.projectForm.referenceWbsTemplateType;
+          }
+          getProjectDeatilWbsId(this.id,this.projectForm.referenceWbsTemplateId,templateType).then((res)=>{
+            this.projectForm.wbsType = res.data.data.wbsType;
+          })
         })
       },
 
@@ -399,6 +423,7 @@
       obj = {
         wbsId:this.wbsId,
         projectId:this.projectForm.id,
+        wbsType:this.templateType,
         wbsTreeIds:ids
       }
       if(this.wbsId.toString().indexOf(',') >= 0){
@@ -407,7 +432,7 @@
           let ids = this.wbsId.toString().split(',');
           obj.wbsId = ids[0];
           obj.referencePrivateWbsProjectId = ids[1];
-          // obj.primaryKeyId = this.leftTreeData[0].primaryKeyId;
+          obj.primaryKeyId = this.leftTreeData[0].primaryKeyId;
         }else{
           //公有库
           obj.referenceType =  "public";
@@ -620,6 +645,56 @@
 
         this.wbsId = '';
         this.leftTreeData = [];
+      },
+      async treeInit(){
+        let refId = this.projectForm.referenceWbsTemplateId;
+          if(refId && refId>0){
+            //有引用id,回显
+            //this.selected = true;
+            this.templateType = this.projectForm.wbsType;
+            await this.getTreeList();
+            let priv={};
+            if(this.projectForm.referenceWbsTemplateType=='private'){
+              //私有
+              let list = this.treeList[1].options;
+              for (let i = 0; i < list.length; i++) {
+                if(list[i].pkeyId == refId){
+                  this.wbsId = list[i].wbsId +','+ list[i].projectId;
+                  priv.wbsId = list[i].wbsId;
+                  priv.projectId = list[i].projectId;
+                  break;
+                }
+              }
+            }else{
+              //公有
+              this.wbsId = refId;
+            }
+                     
+            let projectTree = await findProjectTree(this.projectForm.id,refId)
+            if(Array.isArray(projectTree.data.data)){
+              if(this.projectForm.referenceWbsTemplateType=='private'){
+                //私有
+                let leftData = await findProjectTree(priv.projectId,priv.wbsId)
+                if(Array.isArray(leftData.data.data)){
+                  this.leftTreeData = leftData.data.data;
+                }else{
+                  this.leftTreeData = [];
+                }
+              }else{
+                //公有
+                let leftData = await getAlltree(this.userInfo.tenant_id,'1',refId)
+                if(Array.isArray(leftData.data.data)){
+                  this.leftTreeData = leftData.data.data;
+                }else{
+                  this.leftTreeData = [];
+                }
+              }
+              
+              this.$refs.treetotree.setRightTree(projectTree.data.data);
+            }
+          }else{
+            this.getTreeList();
+          }
       }
 
     }

+ 29 - 4
src/views/manager/projectinfo/list.vue

@@ -58,11 +58,12 @@
       append-to-body
     >
       <div class="flex jc-sb pd-b-10">
-        <span>{{curProjiect.projectName}}</span>
+        <span class="flex1 mg-r-20">{{curProjiect.projectName}}</span>
         <div>
           <el-button size="small" @click="editTree" type="success">WBS树管理</el-button>
           <el-button size="small" @click="editProject" type="primary">编辑项目信息</el-button>
           <el-button size="small" @click="addContract" type="info">创建新合同段</el-button>
+          <el-button size="small" @click="dellProject" type="danger">删除项目</el-button>
           <el-button size="small" @click="projectVisible = false">返回</el-button>
         </div>
       </div>
@@ -76,12 +77,12 @@
           :key="item.id"
         >
           <div class="flex jc-sb">
-            <div class="flex jc-al-c">
+            <div class="flex jc-al-c flex1">
               <el-avatar
                 :size="50"
                 :class="getAvatarBg(item.contractType)"
               >{{getFont(item.contractType)}}</el-avatar>
-              <span class="mg-l-10">{{item.contractName}}</span>
+              <span class="mg-l-10 flex1 mg-r-10">{{item.contractName}}</span>
             </div>
             <div class="flex jc-al-c">
               <el-link
@@ -118,7 +119,7 @@
 </template>
 
 <script>
-import { getProjectList } from "@/api/manager/projectinfo";
+import { getProjectList,removeProject } from "@/api/manager/projectinfo";
 import { findContractByProjectId, removeContractInfo } from "@/api/manager/contractinfo";
 // import {getDictionary} from "@/api/system/dict";
 import { mapGetters } from "vuex";
@@ -249,6 +250,30 @@ export default {
         })
       })
     },
+    dellProject(){
+      if(this.contractList.length){
+        this.$message({
+          type: "warning",
+          message: "只能删除下面无合同段的项目!"
+        });
+        return;
+      }
+
+      this.$confirm('是否删除【' + this.curProjiect.projectName + '】?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        removeProject(this.curProjiect.id).then(()=>{
+          this.$message({
+            type: "success",
+            message: "删除成功!"
+          });
+          this.init();
+          this.projectVisible = false;
+        })
+      })
+    },
 
     getFont (type) {
       if (type == 1) {

+ 117 - 15
src/views/manager/projectinfo/tree.vue

@@ -9,6 +9,7 @@
               placeholder="输入关键字进行过滤"
               v-model="filterText"
               @input="filterChange"
+              clearable
             ></el-input>
             <!-- <el-button type="info" class="mg-l-20">导入划分</el-button> -->
           </div>
@@ -48,6 +49,7 @@
                         <el-dropdown-item
                           @click.native="setLeftType(1,data,node)"
                           icon="el-icon-circle-plus-outline"
+                          v-if="data.deptCategory != 6"
                         >新增子级</el-dropdown-item>
                         <el-dropdown-item
                           @click.native="setLeftType(2,data,node)"
@@ -113,6 +115,7 @@
                         <el-dropdown-item
                           @click.native="setLeftType(1,data,node)"
                           icon="el-icon-circle-plus-outline"
+                          v-if="data.deptCategory != 6"
                         >新增子级</el-dropdown-item>
                         <el-dropdown-item
                           @click.native="setLeftType(2,data,node)"
@@ -298,14 +301,16 @@
     <!-- 关联清表 -->
     <el-dialog
       title="关联清表"
+      class="excelBox"
       :visible.sync="GLExcel"
-      width="30%"
+      width="500px"
       modal-append-to-body
       append-to-body
       :before-close="GLExcelMD"
     >
       <div>
         <el-select
+          style="width:400px;"
           v-model="GLExcelFrom.name"
           placeholder="请选择"
           @change="changetherr()"
@@ -318,17 +323,24 @@
           >
           </el-option>
         </el-select>
-        <el-scrollbar>
+        <el-scrollbar style="margin-top:20px;height:50vh;">
           <el-input
-            v-model="GLExcelFrom.search"
+            style="width:400px;"
+            v-model.trim="GLExcelFrom.search"
+            @input="searchInput"
             placeholder="请输入需要选择的内容"
           ></el-input>
           <el-tree
+            style="margin-top:10px;"
             :props="GLExcelProps"
             :load="loadNodess"
             lazy
             :data="exceldata"
+            node-key="id"
+            :default-checked-keys="xuanzhong"
+            accordion
             show-checkbox
+            @check-change="checkchange"
           >
           </el-tree>
         </el-scrollbar>
@@ -336,11 +348,13 @@
       <span
         slot="footer"
         class="dialog-footer"
+        style="display: flex;justify-content: center;align-items: center;"
       >
-        <el-button @click="GLExcel = false">取 消</el-button>
+        <el-button @click="GLExcelMD()">取 消</el-button>
         <el-button
+          style="margin-left:30px;"
           type="primary"
-          @click="GLExcel = false"
+          @click="saveLinkTab"
         >确 定</el-button>
       </span>
     </el-dialog>
@@ -601,6 +615,16 @@
                   placeholder="请选择"
                   style="width:120px"
                 >
+                  <el-option
+                    :key="5"
+                    label=">"
+                    value=">"
+                  ></el-option>
+                  <el-option
+                    :key="6"
+                    label="<"
+                    value="<"
+                  ></el-option>
                   <el-option
                     :key="1"
                     label="≥"
@@ -836,6 +860,16 @@
                 placeholder="请选择"
                 style="width:120px"
               >
+                <el-option
+                  :key="5"
+                  label=">"
+                  value=">"
+                ></el-option>
+                <el-option
+                  :key="6"
+                  label="<"
+                  value="<"
+                ></el-option>
                 <el-option
                   :key="1"
                   label="≥"
@@ -1243,7 +1277,7 @@ import { findProjectTree as getAlltree } from "@/api/manager/projectinfo";
 import { getList as getAttchFromOriginalName } from "@/api/resource/attach";
 import { getDictionary } from "@/api/system/dict";
 import { mapGetters } from "vuex";
-import { getList, tabLazytreeAll } from '@/api/exctab/excelmodel'
+import { getList, tabLazytreeAll, saveLinkTab } from '@/api/exctab/excelmodel'
 export default {
   data () {
     return {
@@ -1251,6 +1285,7 @@ export default {
       loading: false,
       GLExcel: false,
       GLExcelFrom: {
+        id: "",
         name: '',
         search: '',//搜素框舒服的值
       },
@@ -1258,8 +1293,9 @@ export default {
       GLExcelProps: {
         label: 'name',
         children: 'children',
-        isLeaf: 'childrenlength'
+        isLeaf: 'hasChildren',
       },
+      xuanzhong: [],//选中值得ID
       exceldata: [],//清表模板
       //#endregion
 
@@ -1321,7 +1357,7 @@ export default {
       curEleTable: {},
       editEleVisible: false,
       editEleList: [],
-      eleReg: /(≥|≤|±|【】)?([^≥≤±【】]*)/,
+      eleReg: /(>|<|≥|≤|±|【】)?([^≥≤±【】]*)/,
 
       editEleFormulaVisible: false,
       formulaInput: '',
@@ -1388,7 +1424,7 @@ export default {
       }
       this.curTreeData = data;
       this.curTreeData.parentName = parentName;
-      getDetail(data.id,this.id,this.projectid).then((res) => {
+      getDetail(data.id, this.id, this.projectid).then((res) => {
         res.data.data.parentName = parentName;
         this.tableData = [res.data.data];
         this.nodeDetail = Object.assign({}, res.data.data);
@@ -1447,7 +1483,7 @@ export default {
         this.editType = type;
       }
 
-      getDetail(data.id,this.id,this.projectid).then((res) => {
+      getDetail(data.id, this.id, this.projectid).then((res) => {
         let parentName = '';
         if (node.parent.data) {
           parentName = node.parent.data.title;
@@ -1458,7 +1494,7 @@ export default {
           this.nodeDetail = {
             parentId: res.data.data.id,
             parentName: parentName,
-            projectId:res.data.data.projectId
+            projectId: res.data.data.projectId
           };
         } else {
           this.nodeDetail = Object.assign({}, res.data.data);
@@ -1529,6 +1565,9 @@ export default {
 
     updateTreeNewNode () {
       getLazytree(this.id, this.nodeDetail.parentId,this.userInfo.tenant_id, this.projectid).then((res) => {
+        let node = this.$refs.tree.getNode(this.nodeDetail.parentId);
+        node.isLeaf = false;
+        node.isLeafByUser = false;
         this.$refs.tree.updateKeyChildren(this.nodeDetail.parentId, res.data.data)
       })
     },
@@ -1943,28 +1982,86 @@ export default {
       })
       console.log(res);
       if (res.code === 200 && res.msg === '操作成功') {
+        res.data.forEach(val => {
+          if (val.hasChildren) {
+            val.disabled = false
+          } else {
+            val.disabled = true
+          }
+        })
         this.exceldata = res.data
       }
     },
     Associationlist (scope) {//关联清表点击事件
+      console.log(scope.row);
       this.GLExcel = true
       this.getList({
         current: 1,
         size: 100000,
         parentId: 0
       })
+      this.GLExcelFrom.id = scope.row.id
     },
     changetherr () {//清表类型选择框change事件
-      if (this.GLExcelFrom.name) {
+      if (this.GLExcelFrom.name != "") {
         this.GLExcelFrom.search = ''
         this.tabLazytreeAll()
       }
     },
     GLExcelMD () {//弹框关闭事件
-
+      this.GLExcelFrom.name = ""
+      this.GLExcelFrom.search = ''
+      this.GLExcelFrom.id
+      this.xuanzhong = []
+      this.GLExcel = false
     },
-    loadNodess (node, resolve) {//check事件
-      console.log(node, resolve);
+    async loadNodess (node, resolve) {//check事件
+      console.log(node);
+      if (this.GLExcelFrom.name) {
+        console.log(node.data.id);
+        console.log(resolve);
+        const { data: res } = await tabLazytreeAll({
+          modeId: node.data.id,
+          name: '',
+        })
+        if (res.code === 200 && res.msg === '操作成功') {
+          res.data.forEach(val => {
+            if (val.hasChildren) {
+              val.disabled = false
+            } else {
+              val.disabled = true
+            }
+          })
+          resolve(res.data)
+        }
+      }
+    },
+    checkchange (data, checked,) {//节点选中回调
+      if (checked) {
+        this.xuanzhong = [data.id]
+      } else {
+        this.xuanzhong = []
+      }
+    },
+    searchInput () {//输入回调
+      window.clearTimeout(setTimeout22)
+      setTimeout22 = window.setTimeout(() => {
+        this.tabLazytreeAll()
+      }, 500)
+    },
+    async saveLinkTab () {
+      const { data: res } = await saveLinkTab({
+        exceTabId: this.GLExcelFrom.id,
+        tabId: this.xuanzhong[0]
+      })
+      console.log(res);
+      if (res.code === 200) {
+        this.$message({
+          type: 'success',
+          message: '关联清表成功',
+        })
+        this.GLExcel = false
+      }
     },
     //#endregion
 
@@ -1998,4 +2095,9 @@ export default {
     display: block;
   }
 }
+.excelBox {
+  /deep/.el-dialog__body {
+    padding: 20px;
+  }
+}
 </style>

+ 11 - 4
src/views/manager/wbsinfo/edit.vue

@@ -5,7 +5,7 @@
       <div class="box">
         <p>工程节点信息</p>
         <div class="flex">
-          <el-input placeholder="输入关键字进行过滤" v-model="filterText" @input="filterChange"></el-input>
+          <el-input placeholder="输入关键字进行过滤" v-model="filterText" @input="filterChange" clearable></el-input>
           <!-- <el-button type="info" class="mg-l-20">导入划分</el-button> -->
         </div>
         <el-scrollbar>
@@ -25,7 +25,7 @@
                         type="text" icon="el-icon-more" class="normal-black">
                       </el-button>
                       <el-dropdown-menu slot="dropdown">
-                        <el-dropdown-item @click.native="setLeftType(1,data,node)" icon="el-icon-circle-plus-outline">新增子级</el-dropdown-item>
+                        <el-dropdown-item @click.native="setLeftType(1,data,node)" icon="el-icon-circle-plus-outline" v-if="data.deptCategory != 6">新增子级</el-dropdown-item>
                         <el-dropdown-item @click.native="setLeftType(2,data,node)" icon="el-icon-edit">编辑节点</el-dropdown-item>
                         <el-dropdown-item @click.native="setLeftType(3,data,node)" icon="el-icon-document-copy">复制节点</el-dropdown-item>
                         <el-dropdown-item @click.native="setLeftType(4,data,node)" icon="iconfont hcicon-danganziliao-biaogetianxie" class="font-s-12">元素公式</el-dropdown-item>
@@ -52,7 +52,7 @@
                         type="text" icon="el-icon-more" class="normal-black">
                       </el-button>
                       <el-dropdown-menu slot="dropdown">
-                        <el-dropdown-item @click.native="setLeftType(1,data,node)" icon="el-icon-circle-plus-outline">新增子级</el-dropdown-item>
+                        <el-dropdown-item @click.native="setLeftType(1,data,node)" icon="el-icon-circle-plus-outline" v-if="data.deptCategory != 6">新增子级</el-dropdown-item>
                         <el-dropdown-item @click.native="setLeftType(2,data,node)" icon="el-icon-edit">编辑节点</el-dropdown-item>
                         <el-dropdown-item @click.native="setLeftType(3,data,node)" icon="el-icon-document-copy">复制节点</el-dropdown-item>
                         <el-dropdown-item @click.native="setLeftType(4,data,node)" icon="iconfont hcicon-danganziliao-biaogetianxie" class="font-s-12">元素公式</el-dropdown-item>
@@ -220,6 +220,8 @@
               <template slot-scope="scope">
                 <div class="flex">
                   <el-select v-model="scope.row.allow" size="small" placeholder="请选择" style="width:120px">
+                    <el-option :key="5" label=">" value=">"></el-option>
+                    <el-option :key="6" label="<" value="<"></el-option>
                     <el-option :key="1" label="≥" value="≥"></el-option>
                     <el-option :key="2" label="≤" value="≤"></el-option>
                     <el-option :key="3" label="±" value="±"></el-option>
@@ -299,6 +301,8 @@
             <template slot-scope="scope">
               <div class="flex">
                 <el-select v-model="scope.row.allow" size="small" placeholder="请选择" style="width:120px">
+                  <el-option :key="5" label=">" value=">"></el-option>
+                  <el-option :key="6" label="<" value="<"></el-option>
                   <el-option :key="1" label="≥" value="≥"></el-option>
                   <el-option :key="2" label="≤" value="≤"></el-option>
                   <el-option :key="3" label="±" value="±"></el-option>
@@ -547,7 +551,7 @@
         curEleTable:{},
         editEleVisible:false,
         editEleList:[],
-        eleReg:/(≥|≤|±|【】)?([^≥≤±【】]*)/,
+        eleReg:/(>|<|≥|≤|±|【】)?([^≥≤±【】]*)/,
 
         editEleFormulaVisible:false,
         formulaInput:'',
@@ -709,6 +713,9 @@
           });
           return;
         }
+        this.eleForm = {
+          elementList:[]
+        };
         this.eleVisible = true;
       },