Forráskód Böngészése

编辑元素表单新增“必填项”选项

duy 5 napja
szülő
commit
12281b6ddb

+ 1 - 1
public/version.json

@@ -1,3 +1,3 @@
 {
-  "value": "20251210170332"
+  "value": "20251211105347"
 }

+ 358 - 66
src/views/manager/projectinfo/tree.vue

@@ -225,10 +225,16 @@
                           <span v-else>{{ scope.row.tableName }}</span>
                         </template>
                       </el-table-column>
+                      <el-table-column align="center" prop="elementTableName" label="元素表名称">
+                        <template slot-scope="scope">
+                          <el-link type="primary" :underline="false" @click="openEditEleTableEleDialog(scope.row)">{{
+                            scope.row.elementTableName }}</el-link>
+                        </template>
+                      </el-table-column>
                       <el-table-column align="center" prop="elementTotal" width="80" label="字段总量"></el-table-column>
-                      <el-table-column align="center" prop="tableType" :formatter="formatTableType"
-                        label="表单类型"></el-table-column>
-                      <el-table-column align="center" prop="fillRate" label="填报率"></el-table-column>
+                      <el-table-column align="center" prop="tableType" :formatter="formatTableType" label="表单类型"
+                        width="80"></el-table-column>
+                      <!-- <el-table-column align="center" prop="fillRate" label="填报率"></el-table-column> -->
                       <!-- <el-table-column label="是否关联清表" prop="isLinkTable" align="center" v-if="leftType === 4">
                         <template slot-scope="scope">
                           <span v-if="scope.row.isLinkTable == 2">是</span>
@@ -237,7 +243,7 @@
                       </el-table-column> -->
                       <el-table-column align="center" prop="tableOwner" :formatter="formatOwner" label="所属方">
                       </el-table-column>
-                      <el-table-column align="center" prop="htmlElementError" label="是否存在错误key">
+                      <el-table-column align="center" prop="htmlElementError" label="是否存在错误key" width="130">
                         <template slot-scope="scope">
                           <div class="htmlElementError-box">
                             <span class="htmlElementError-tag no" v-if="scope.row.htmlElementError == 0">否</span>
@@ -247,7 +253,7 @@
                       </el-table-column>
                       <!-- <el-table-column label="操作" align="center" width="500" v-if="leftType == 4">
                         <template slot-scope="scope">
-                          <el-link type="primary" @click="Associationlist(scope)">关联清表
+                          <el-link type="primary" @click="associationList(scope)">关联清表
                           </el-link>
                           <el-link class="mg-l-10" type="primary" :disabled="scope.row.excelId == -1 ||
                             scope.row.excelId == null
@@ -281,7 +287,7 @@
                           </el-link>
                         </template>
                       </el-table-column> -->
-                      <el-table-column label="操作" align="center" width="500">
+                      <el-table-column label="操作" align="center" width="420">
                         <template slot-scope="scope">
                           <el-button size="mini" @click="handlePreview(scope.$index, scope.row)">预览
                           </el-button>
@@ -315,9 +321,16 @@
               <template v-else>
                 <el-table :data="formData" border height="100%" style="width: 100%; position: absolute">
                   <el-table-column align="center" prop="tableName" label="表单名称"></el-table-column>
+                  <el-table-column align="center" prop="elementTableName" label="元素表名称">
+                    <template slot-scope="scope">
+                      <el-link type="primary" :underline="false" @click="openEditEleTableEleDialog(scope.row)">
+                        {{ scope.row.elementTableName }}
+                      </el-link>
+                    </template>
+                  </el-table-column>
                   <el-table-column align="center" prop="tableType" :formatter="formatTableType"
                     label="表单类型"></el-table-column>
-                  <el-table-column align="center" prop="fillRate" label="填报率"></el-table-column>
+                  <!-- <el-table-column align="center" prop="fillRate" label="填报率"></el-table-column> -->
                   <el-table-column label="是否关联清表" prop="isLinkTable" align="center">
                     <template slot-scope="scope">
                       <span v-if="scope.row.isLinkTable == 2">是</span>
@@ -359,11 +372,18 @@
                   <div class="category-header">{{ item.title }}</div>
                   <el-table :data="item.list" border style="width: 100%">
                     <el-table-column align="center" prop="tableName" label="表单名称"></el-table-column>
+                    <el-table-column align="center" prop="elementTableName" label="元素表名称">
+                      <template slot-scope="scope">
+                        <el-link type="primary" :underline="false" @click="openEditEleTableEleDialog(scope.row)">
+                          {{ scope.row.elementTableName }}
+                        </el-link>
+                      </template>
+                    </el-table-column>
                     <el-table-column v-if="leftType === 5" align="center" prop="elementTotal" width="80"
                       label="字段总量"></el-table-column>
                     <el-table-column align="center" prop="tableType" :formatter="formatTableType"
                       label="表单类型"></el-table-column>
-                    <el-table-column align="center" prop="fillRate" label="填报率"></el-table-column>
+                    <!-- <el-table-column align="center" prop="fillRate" label="填报率"></el-table-column> -->
                     <el-table-column label="是否关联清表" prop="isLinkTable" align="center">
                       <template slot-scope="scope">
                         <span v-if="scope.row.isLinkTable == 2">是</span>
@@ -380,9 +400,9 @@
                         </div>
                       </template>
                     </el-table-column>
-                    <el-table-column label="操作" align="center" width="500">
+                    <el-table-column label="操作" align="center" width="470">
                       <template slot-scope="scope">
-                        <el-link type="primary" @click="Associationlist(scope)">关联清表
+                        <el-link type="primary" @click="associationList(scope)">关联清表
                         </el-link>
                         <el-link class="mg-l-10" type="primary" :disabled="scope.row.excelId == -1 || scope.row.excelId == null
                           " @click="
@@ -433,9 +453,16 @@
           <template v-if="leftType == 4 && !isNodeType">
             <el-table :data="formData" border height="100%">
               <el-table-column align="center" prop="tableName" label="表单名称"></el-table-column>
+              <el-table-column align="center" prop="elementTableName" label="元素表名称">
+                <template slot-scope="scope">
+                  <el-link type="primary" :underline="false" @click="openEditEleTableEleDialog(scope.row)">
+                    {{ scope.row.elementTableName }}
+                  </el-link>
+                </template>
+              </el-table-column>
               <el-table-column align="center" prop="tableType" :formatter="formatTableType"
                 label="表单类型"></el-table-column>
-              <el-table-column align="center" prop="fillRate" label="填报率"></el-table-column>
+              <!-- <el-table-column align="center" prop="fillRate" label="填报率"></el-table-column> -->
               <el-table-column label="是否关联清表" prop="isLinkTable" align="center">
                 <template slot-scope="scope">
                   <span v-if="scope.row.isLinkTable == 2">是</span>
@@ -453,7 +480,7 @@
               </el-table-column>
               <el-table-column label="操作" align="center" width="250">
                 <template slot-scope="scope">
-                  <el-link type="primary" @click="Associationlist(scope)">关联清表
+                  <el-link type="primary" @click="associationList(scope)">关联清表
                   </el-link>
                   <el-link class="mg-l-10" type="primary" :disabled="scope.row.excelId == -1 || scope.row.excelId == null
                     " @click="
@@ -507,7 +534,7 @@
                 </el-table-column>
                 <el-table-column label="操作" align="center">
                   <template slot-scope="scope">
-                    <el-link type="primary" @click="Associationlist(scope)">关联清表
+                    <el-link type="primary" @click="associationList(scope)">关联清表
                     </el-link>
                     <el-link class="mg-l-10" type="primary" :disabled="scope.row.excelId == -1 || scope.row.excelId == null
                       " @click="
@@ -584,7 +611,7 @@
           <el-table-column prop="nodeType" label="节点类型" v-if="wbsType == 5">
             <template slot-scope="scope">
               <el-select v-model="scope.row.nodeType" placeholder="请选择">
-                <el-option v-for="item in nodeTypelist" :key="item.id" :label="item.dictValue"
+                <el-option v-for="item in nodeTypeList" :key="item.id" :label="item.dictValue"
                   :value="item.dictKey"></el-option>
               </el-select>
             </template>
@@ -626,7 +653,7 @@
             <el-table-column prop="nodeType" label="节点类型" v-if="wbsType == 5">
               <template slot-scope="scope">
                 <el-select v-model="scope.row.nodeType" placeholder="请选择">
-                  <el-option v-for="item in nodeTypelist" :key="item.id" :label="item.dictValue"
+                  <el-option v-for="item in nodeTypeList" :key="item.id" :label="item.dictValue"
                     :value="item.dictKey"></el-option>
                 </el-select>
               </template>
@@ -694,7 +721,7 @@
         </el-form-item>
         <el-form-item label="节点类型" prop="nodeType">
           <el-select v-model="nodeDetail.nodeType" placeholder="请选择" class="w-100p" @change="nodeTypeChange" clearable>
-            <el-option v-for="item in nodeTypelist" :key="item.id" :label="item.dictValue"
+            <el-option v-for="item in nodeTypeList" :key="item.id" :label="item.dictValue"
               :value="item.dictKey"></el-option>
           </el-select>
         </el-form-item>
@@ -1076,7 +1103,8 @@
       " :visible.sync="formulaCompVisible" fullscreen append-to-body class="full-dialog" @close="closeformulaComp">
       <NodeFormulaEditProject :istableType="!isNodeType" :fromcurNode="curTreeData" :projectid="projectid" :wbsid="id"
         :nodeid="curTreeData.id" :eleid="formulaCurRow.id" :globaltype="formulaCurRow.globaltype" :iswbstype="0"
-        @hideDialog="formulaCompVisible = false" :pkeyId="curEleTable.pkeyId" v-if="formulaCompVisible"></NodeFormulaEditProject>
+        @hideDialog="formulaCompVisible = false" :pkeyId="curEleTable.pkeyId" v-if="formulaCompVisible">
+      </NodeFormulaEditProject>
     </el-dialog>
     <!-- 全局公式 -->
     <el-dialog title="" :visible.sync="formulaCompVisible1" fullscreen append-to-body class="full-dialog"
@@ -1506,7 +1534,7 @@
         <el-form ref="filterForm" :model="filterForm" label-width="120px">
           <el-form-item label="节点类型">
             <el-select v-model="filterForm.nodeType" placeholder="请选择节点类型" clearable>
-              <el-option v-for="item in nodeTypelist" :key="item.dictKey" :label="item.dictValue"
+              <el-option v-for="item in nodeTypeList" :key="item.dictKey" :label="item.dictValue"
                 :value="item.dictKey" />
             </el-select>
           </el-form-item>
@@ -1548,6 +1576,107 @@
         </div>
       </div>
     </el-dialog>
+    <!-- 元素表元素编辑 -->
+    <el-dialog :title="(curEleTable.elementTableName ? curEleTable.elementTableName : '') + '  元素编辑'
+      " :visible.sync="editEleTableVisible" width="80%" append-to-body :close-on-click-modal="false">
+      <p class="font-c-warning" style="margin-top: 0;">编辑元素信息(请谨慎操作)</p>
+      <div style="display: flex; margin-bottom: 10px">
+        <el-input placeholder="请输入你想编辑的元素名称" v-model="searchEleInput" clearable @clear="clearSearchEleInput"
+          style="width:300px;margin-right:10px">
+        </el-input>
+        <el-select v-model="eTypeVal" style="width:200px;margin-right:10px;" clearable @clear="clearSearchEleInput"
+          placeholder="请选择数据类型">
+          <el-option v-for="item in dataTypeList" :key="item.id" :label="item.dictValue"
+            :value="item.dictKey"></el-option>
+        </el-select>
+        <el-button type="primary" icon="el-icon-search" size="small" @click="searchEleInputChange">搜索</el-button>
+      </div>
+      <el-table :data="editEleTableEleList" border style="width: 100%" height="400px" v-loading="editEleTableLoading">
+        <el-table-column align="center" type="index" width="50"></el-table-column>
+        <el-table-column align="center" prop="eName" label="元素名称">
+          <template slot="header">
+            <i class="required"></i>
+            <span>元素名称</span>
+          </template>
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.eName" size="small" placeholder="请输入内容"></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" prop="eType" label="数据类型" width="120">
+          <template slot="header">
+            <i class="required"></i>
+            <span>数据类型</span>
+          </template>
+          <template slot-scope="scope">
+            <el-select v-model="scope.row.eType" @change="setDefaultLength(scope.row)" size="small" placeholder="请选择">
+              <el-option v-for="item in dataTypeList" :key="item.id" :label="item.dictValue"
+                :value="item.dictKey"></el-option>
+            </el-select>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" prop="eLength" label="长度" width="120">
+          <template slot="header">
+            <i class="required"></i>
+            <span>长度</span>
+          </template>
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.eLength" size="small" placeholder="请输入内容"></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" prop="eAllowDeviation" label="允许偏差值">
+          <template slot-scope="scope">
+            <div class="flex">
+              <el-select v-model="scope.row.allow" size="small" placeholder="请选择" style="width:120px">
+                <el-option :key="1" label="-" value="-"></el-option>
+                <el-option :key="2" label=">" value=">"></el-option>
+                <el-option :key="3" label="<" value="<"></el-option>
+                <el-option :key="4" label="≥" value="≥"></el-option>
+                <el-option :key="5" label="≤" value="≤"></el-option>
+                <el-option :key="6" label="±" value="±"></el-option>
+                <el-option :key="7" label="【】" value="【】"></el-option>
+              </el-select>
+              <el-input v-model="scope.row.deviation" size="small" placeholder="请输入内容"></el-input>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" prop="eInspectionMethod" label="检查方法和频率">
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.eInspectionMethod" size="small" placeholder="请输入内容"></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" prop="required" label="是否必填项" width="140">
+          <template slot-scope="scope">
+            <el-checkbox :true-label="1" :false-label="0" v-model="scope.row.required"></el-checkbox>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" prop="assist" label="是否公式辅助元素" width="140">
+          <template slot-scope="scope">
+            <el-checkbox :true-label="1" :false-label="0" v-model="scope.row.assist"></el-checkbox>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="操作" width="120">
+          <template slot="header">
+            <el-button @click="addEleTableEleRow(editEleTableEleList)" type="text" icon="el-icon-circle-plus-outline"
+              class="text-icon"></el-button>
+          </template>
+          <template slot-scope="scope">
+            <el-button v-if="scope.row.id" icon="el-icon-remove-outline" type="text"
+              @click="delEleTableEleRow(scope.$index, editEleTableEleList)"
+              class="text-icon text-icon-danger"></el-button>
+            <div class="flex" v-else>
+              <el-button @click="saveNewEleTableEle(scope.row)" type="mini">保存</el-button>
+              <el-button icon="el-icon-remove-outline" type="text"
+                @click="delEleTableEleRow(scope.$index, editEleTableEleList)"
+                class="text-icon text-icon-danger"></el-button>
+            </div>
+          </template>
+        </el-table-column>
+      </el-table>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="editEleTableVisible = false">取 消</el-button>
+        <el-button type="primary" @click="saveEleTable" :loading="saveEleTableLoading">确 定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -1821,7 +1950,7 @@ export default {
       istableType: true,
       editEleVisible: false,
       editEleList: [],
-      eleReg: /(≥|≤|±|【】)?([^≥≤±【】]*)/,
+      eleReg: /(-|>|<|≥|≤|±|【】)?([^≥≤±【】]*)/,
 
       editEleFormulaVisible: false,
       isMeter: false,
@@ -2057,6 +2186,23 @@ export default {
       refreshListLoad: false,
       delSyncLoad: false,
       syncListTimer: null, // 用于存储定时器ID
+      // 元素表元素编辑 start
+      editEleTableVisible: false,
+      searchEleInput: "",
+      editEleTableLoading: false,
+      eTypeVal: "",
+      //数据类型的默认长度
+      dataTypeDefaultMap: {
+        1: 250,//字符串
+        2: 50,//整数
+        3: 50,//小数
+        4: 50,//日期
+        5: 50,//数值
+        6: 50,//签名
+        7: 100,//文件
+      },
+      saveEleTableLoading: false,
+      // 元素表元素编辑 end
     };
   },
   computed: {
@@ -2073,6 +2219,152 @@ export default {
     // this.defaultExpandedKeysType = savedExpandedKeys;
   },
   methods: {
+    // 元素表元素编辑=============start
+    openEditEleTableEleDialog(row) {
+      this.curEleTable = row;
+      this.getSelectPrivateFormElements()
+    },
+    //获取编辑元素表元素信息
+    getSelectPrivateFormElements() {
+      this.editEleTableLoading = true
+      selectPrivateFormElements(this.curEleTable.initTableId, { eName: this.searchEleInput, eType: this.eTypeVal }).then((res) => {
+        this.editEleTableLoading = false
+        res.data.data.forEach((element) => {
+          this.eleReg.exec(element.eAllowDeviation);
+          //console.log(RegExp.$1)
+          //console.log(RegExp.$2)
+          element.allow = RegExp.$1 ? RegExp.$1 : '';
+          element.deviation = RegExp.$2 ? RegExp.$2 : '';
+        })
+        this.editEleTableEleList = res.data.data;
+      })
+      this.editEleTableVisible = true;
+    },
+    //修改数据类型,给个默认值
+    setDefaultLength(row) {
+      this.$set(row, 'eLength', this.dataTypeDefaultMap[row.eType]);
+    },
+    clearSearchEleInput() {
+      this.getSelectPrivateFormElements()
+    },
+    searchEleInputChange() {
+      this.getSelectPrivateFormElements()
+    },
+    addEleTableEleRow(list) {
+      list.push({});
+    },
+    delEleTableEleRow(index, list) {
+      let row = list[index];
+      if (row.id) {
+        //有id需要请求删除
+        this.$confirm('是否确认删除?', '删除元素', {
+          distinguishCancelAndClose: true,
+          confirmButtonText: '删除',
+          cancelButtonText: '取消'
+        }).then(() => {
+          removeElement(row.id, this.curEleTable.initTableName, row.ekey).then(() => {
+            list.splice(index, 1);
+          })
+          this.curEleTable.elementTotal--;
+        })
+      } else {
+        list.splice(index, 1);
+      }
+    },
+    saveNewEleTableEle(row) {
+      if (!row.eName) {
+        this.$message({
+          type: "warning",
+          message: "请填写元素名称"
+        });
+        return;
+      }
+      if (!row.eType) {
+        this.$message({
+          type: "warning",
+          message: "请选择数据类型"
+        });
+        return;
+      }
+
+      row.eAllowDeviation = (row.allow ? row.allow : '') + (row.deviation ? row.deviation : '');
+      row.fId = this.curEleTable.initTableId;
+      row.initTableName = this.curEleTable.initTableName;
+
+      if (!row.eLength) {
+        this.$message({
+          type: "warning",
+          message: "请填写长度"
+        });
+        return;
+      }
+
+      saveElement(row).then((res) => {
+        if (res.data.data) {
+          this.$set(row, 'id', res.data.data.id);
+          this.$set(row, 'ekey', res.data.data.ekey);
+          this.$message({
+            type: "success",
+            message: "保存成功!"
+          });
+        }
+      })
+    },
+    saveEleTable() {
+      for (let i = 0; i < this.editEleTableEleList.length; i++) {
+        if (!this.editEleTableEleList[i].id) {
+          this.$message({
+            type: "warning",
+            message: "请先将新增的元素点击保存"
+          });
+          return;
+        }
+        if (!this.editEleTableEleList[i].eName) {
+          this.$message({
+            type: "warning",
+            message: "请填写第" + (i + 1) + "条元素名称"
+          });
+          return;
+        }
+        if (!this.editEleTableEleList[i].eType) {
+          this.$message({
+            type: "warning",
+            message: "请选择第" + (i + 1) + "条数据类型"
+          });
+          return;
+        }
+        if (!this.editEleTableEleList[i].eLength) {
+          this.$message({
+            type: "warning",
+            message: "请填写第" + (i + 1) + "条长度"
+          });
+          return;
+        }
+      }
+      if (this.editEleTableEleList.length > 0) {
+        this.editEleTableEleList.forEach((element) => {
+          element.eAllowDeviation = (element.allow ? element.allow : '') + (element.deviation ? element.deviation : '');
+        })
+        this.saveEleTableLoading = true
+        updateBatchElements(this.editEleTableEleList, this.curEleTable.initTableName).then(() => {
+          this.saveEleTableLoading = false
+          this.editEleTableVisible = false;
+          this.updateNodeTable();
+          this.$message({
+            type: "success",
+            message: "保存成功!"
+          });
+        })
+      } else {
+        this.editEleTableVisible = false;
+        this.updateNodeTable();
+        this.$message({
+          type: "success",
+          message: "保存成功!"
+        });
+      }
+    },
+    // 元素表元素编辑=============end
     //#region
     changeType(val) {
       console.log(val, "val");
@@ -2220,11 +2512,11 @@ export default {
     async getNodeDetailByType(data, node) {
       console.log(data, "data1111");
       let htmlElementError = null
-      if(data.excelId != '0'){
+      if (data.excelId != '0') {
         const res = await getHtmlErrorByPKeyId(data.pkeyId)
         htmlElementError = res.data.data ? 1 : 0
       }
-      
+
       // 保存当前选中的节点
       this.currentNodeKey = data.id;
       this.curTreeData = data;
@@ -2782,44 +3074,44 @@ export default {
       });
     },
 
-    saveNewEle(row) {
-      row.eAllowDeviation =
-        (row.allow ? row.allow : "") + (row.deviation ? row.deviation : "");
-      row.fId = this.curEleTable.initTableId;
-      row.initTableName = this.curEleTable.initTableName;
-      if (row.eType == 4) {
-        row.eLength = 0;
-      }
-      saveElement(row).then((res) => {
-        if (res.data.data) {
-          this.$set(row, "id", res.data.data.id);
-          this.$set(row, "ekey", res.data.data.ekey);
-          this.$message({
-            type: "success",
-            message: "保存成功!",
-          });
-        }
-      });
-    },
-    delEleRowHandle(index, list) {
-      let row = list[index];
-      if (row.id) {
-        //有id需要请求删除
-        this.$confirm("是否确认删除?", "删除元素", {
-          distinguishCancelAndClose: true,
-          confirmButtonText: "删除",
-          cancelButtonText: "取消",
-        }).then(() => {
-          removeElement(row.id, this.curEleTable.initTableName, row.ekey).then(
-            () => {
-              list.splice(index, 1);
-            }
-          );
-        });
-      } else {
-        list.splice(index, 1);
-      }
-    },
+    // saveNewEle(row) {
+    //   row.eAllowDeviation =
+    //     (row.allow ? row.allow : "") + (row.deviation ? row.deviation : "");
+    //   row.fId = this.curEleTable.initTableId;
+    //   row.initTableName = this.curEleTable.initTableName;
+    //   if (row.eType == 4) {
+    //     row.eLength = 0;
+    //   }
+    //   saveElement(row).then((res) => {
+    //     if (res.data.data) {
+    //       this.$set(row, "id", res.data.data.id);
+    //       this.$set(row, "ekey", res.data.data.ekey);
+    //       this.$message({
+    //         type: "success",
+    //         message: "保存成功!",
+    //       });
+    //     }
+    //   });
+    // },
+    // delEleRowHandle(index, list) {
+    //   let row = list[index];
+    //   if (row.id) {
+    //     //有id需要请求删除
+    //     this.$confirm("是否确认删除?", "删除元素", {
+    //       distinguishCancelAndClose: true,
+    //       confirmButtonText: "删除",
+    //       cancelButtonText: "取消",
+    //     }).then(() => {
+    //       removeElement(row.id, this.curEleTable.initTableName, row.ekey).then(
+    //         () => {
+    //           list.splice(index, 1);
+    //         }
+    //       );
+    //     });
+    //   } else {
+    //     list.splice(index, 1);
+    //   }
+    // },
 
     nodeTypeChange(val) {
       console.log(333333333);
@@ -3302,11 +3594,11 @@ export default {
       getDictionary({
         code,
       }).then((res) => {
-        this.nodeTypelist = res.data.data;
+        this.nodeTypeList = res.data.data;
         res.data.data.forEach((element) => {
           element.dictKey = Number(element.dictKey);
         });
-        this.nodeTypelist = res.data.data;
+        this.nodeTypeList = res.data.data;
       });
     },
     getMajorDataTypeList() {
@@ -3426,9 +3718,9 @@ export default {
     },
 
     formatCat(row, column, cellValue) {
-      for (let i = 0; i < this.nodeTypelist.length; i++) {
-        if (this.nodeTypelist[i].dictKey == cellValue) {
-          return this.nodeTypelist[i].dictValue;
+      for (let i = 0; i < this.nodeTypeList.length; i++) {
+        if (this.nodeTypeList[i].dictKey == cellValue) {
+          return this.nodeTypeList[i].dictValue;
         }
       }
       return cellValue;
@@ -3583,7 +3875,7 @@ export default {
         this.exceldata = res.data;
       }
     },
-    Associationlist(scope) {
+    associationList(scope) {
       //关联清表点击事件
       console.log(scope.row);
       this.GLExcel = true;
@@ -4856,7 +5148,7 @@ export default {
       });
     },
     changeRoleName(data, row) {
-      const originalData = this.nodeTypelist;
+      const originalData = this.nodeTypeList;
       const dictKeyToDictValueMap = originalData.reduce((acc, item) => {
         acc[item.dictKey] = item.dictValue;
         return acc;

+ 5 - 0
src/views/manager/wbsinfo/edit.vue

@@ -522,6 +522,11 @@
             <el-input v-model="scope.row.eInspectionMethod" size="small" placeholder="请输入内容"></el-input>
           </template>
         </el-table-column>
+        <el-table-column align="center" prop="required" label="是否必填项" width="140">
+          <template slot-scope="scope">
+            <el-checkbox :true-label="1" :false-label="0" v-model="scope.row.required"></el-checkbox>
+          </template>
+        </el-table-column>
         <el-table-column align="center" prop="assist" label="是否公式辅助元素" width="140">
           <template slot-scope="scope">
             <el-checkbox :true-label="1" :false-label="0" v-model="scope.row.assist"></el-checkbox>

+ 5 - 0
src/views/manager/wbsinfo/element.vue

@@ -211,6 +211,11 @@
             <el-input v-model="scope.row.eInspectionMethod" size="small" placeholder="请输入内容"></el-input>
           </template>
         </el-table-column>
+        <el-table-column align="center" prop="required" label="是否必填项" width="140">
+          <template slot-scope="scope">
+            <el-checkbox :true-label="1" :false-label="0" v-model="scope.row.required"></el-checkbox>
+          </template>
+        </el-table-column>
         <el-table-column align="center" prop="assist" label="是否公式辅助元素" width="140">
           <template slot-scope="scope">
             <el-checkbox :true-label="1" :false-label="0" v-model="scope.row.assist"></el-checkbox>