gangyj 3 rokov pred
rodič
commit
ae3d5c515f
1 zmenil súbory, kde vykonal 247 pridanie a 1 odobranie
  1. 247 1
      src/views/manager/wbsinfo/edit.vue

+ 247 - 1
src/views/manager/wbsinfo/edit.vue

@@ -117,6 +117,249 @@
       </template>
       </template>
   </el-col>
   </el-col>
 </el-row>
 </el-row>
+
+  <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="50%" append-to-body :close-on-click-modal="false">
+      <el-form ref="nodeDetail" :model="nodeDetail" :rules="rules" label-width="110px">
+        <el-form-item label="节点名称" prop="deptName">
+          <el-input v-model="nodeDetail.deptName"></el-input>
+        </el-form-item>
+        <el-form-item label="上级节点">
+          <el-input v-model="nodeDetail.parentName" disabled></el-input>
+        </el-form-item>
+        <el-form-item label="节点类型" prop="deptCategory">
+          <el-select v-model="nodeDetail.deptCategory" placeholder="请选择" class="w-100p">
+            <el-option v-for="item in deptCategorylist" :key="item.id" :label="item.dictValue"  :value="item.dictKey"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="划分编号">
+          <el-input v-model="nodeDetail.partitionCode"></el-input>
+        </el-form-item>
+        <el-form-item label="唯一编码">
+          <el-input v-model="nodeDetail.uniqueCode"></el-input>
+        </el-form-item>
+        <template v-if="nodeDetail.deptCategory == 6">
+          <el-form-item label="是否有混凝土">
+            <el-radio-group v-model="nodeDetail.isConcrete" size="small">
+              <el-radio :label="0" border>无</el-radio>
+              <el-radio :label="1" border>有</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <el-form-item label="是否试验节点">
+            <el-radio-group v-model="nodeDetail.isExpernode" size="small">
+              <el-radio :label="0" border>否</el-radio>
+              <el-radio :label="1" border>是</el-radio>
+            </el-radio-group>
+          </el-form-item>
+        </template>
+        <el-form-item label="内业资料类型">
+          <el-select v-model="nodeDetail.majorDataType" placeholder="请选择" class="w-100p">
+            <el-option v-for="item in majorDataTypeList" :key="item.id" :label="item.dictValue"  :value="item.dictKey"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="saveNode">确 定</el-button>
+      </span>
+    </el-dialog>
+
+    <el-dialog title="创建新的元素表" :visible.sync="eleVisible" width="80%" append-to-body :close-on-click-modal="false">
+      <el-form ref="eleDialog" :model="eleForm" :rules="eleRules" label-width="110px">
+        <el-form-item label="表名" prop="deptName">
+          <el-input v-model="eleForm.deptName"></el-input>
+        </el-form-item>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="表类型" prop="tableType">
+              <el-select v-model="eleForm.tableType" placeholder="请选择" class="w-100p">
+                <el-option v-for="item in tableTypelist" :key="item.id" :label="item.dictValue"  :value="item.dictKey"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="所属方" prop="tableOwner">
+              <el-select v-model="eleForm.tableOwner" placeholder="请选择" class="w-100p">
+                <el-option v-for="item in ownerTypeList" :key="item.id" :label="item.dictValue"  :value="item.dictKey"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div class="flex jc-sb">
+        <div></div>
+        <div>
+          <el-link type="primary" @click="importVisible = true">快捷导入</el-link>
+          <el-link type="primary" class="mg-l-20">下载导入模版</el-link>
+        </div>
+      </div>
+      <div class="border-grey">
+        <p class="font-c-warning">编辑元素信息(请谨慎操作)</p>
+        <el-table :data="eleForm.elementList" border style="width: 100%" height="400px">
+            <el-table-column align="center" type="index" width="50"></el-table-column>
+            <el-table-column align="center" prop="eName" label="元素名称" >
+              <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-scope="scope">
+                <el-select v-model="scope.row.eType" 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-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-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" label="操作" width="80">
+              <template slot="header">
+                <el-button @click="addEleRow(eleForm.elementList)" type="text" icon="el-icon-circle-plus-outline" class="text-icon"></el-button>
+              </template>
+              <template slot-scope="scope">
+                <el-button icon="el-icon-remove-outline" type="text" @click="delEleRow(scope.$index,eleForm.elementList)" class="text-icon text-icon-danger"></el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="eleVisible = false">取 消</el-button>
+        <el-button type="primary" @click="saveFormAndElementHandle">保 存</el-button>
+      </span>
+    </el-dialog>
+
+    <el-dialog title="模版导入" :visible.sync="importVisible" width="50%" append-to-body :close-on-click-modal="false">
+      <p>提示:必须按照系统要求的模版格式上传,否则系统识别无效  <el-link type="primary">下载导入模版</el-link></p>
+      <div>
+        <el-button size="small" type="primary">本地上传</el-button>
+      </div>
+      <el-table :data="tempList" border style="width: 100%" >
+            <el-table-column align="center" prop="eName" label="元素名称" >
+            </el-table-column>
+            <el-table-column align="center" prop="eType" label="数据类型" width="120">
+            </el-table-column>
+            <el-table-column align="center" prop="eLength" label="长度" width="120">
+            </el-table-column>
+            <el-table-column align="center" prop="eAllowDeviation" label="允许偏差值">
+            </el-table-column>
+            <el-table-column align="center" prop="eInspectionMethod" label="检查方法和频率">
+            </el-table-column>
+          </el-table>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="importVisible = false">取 消</el-button>
+        <el-button type="primary" @click="importHandle">确 定</el-button>
+      </span>
+    </el-dialog>
+
+    <el-dialog :title="(curEleTable.tableName?curEleTable.tableName:'')+'  元素编辑'" :visible.sync="editEleVisible" width="80%" append-to-body :close-on-click-modal="false">
+      <p class="font-c-warning">编辑元素信息(请谨慎操作)</p>
+        <el-table :data="editEleList" border style="width: 100%" height="400px">
+          <el-table-column align="center" type="index" width="50"></el-table-column>
+          <el-table-column align="center" prop="eName" label="元素名称" >
+            <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-scope="scope">
+              <el-select v-model="scope.row.eType" 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-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-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" label="操作" width="120">
+            <template slot="header">
+              <el-button @click="addEleRow(editEleList)" 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="delEleRowHandle(scope.$index,editEleList)" class="text-icon text-icon-danger"></el-button>
+              <div class="flex" v-else>
+                <el-button @click="saveNewEle(scope.row)" type="mini">保存</el-button>
+                <el-button icon="el-icon-remove-outline" type="text" @click="delEleRowHandle(scope.$index,editEleList)" class="text-icon text-icon-danger"></el-button>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="editEleVisible = false">取 消</el-button>
+        <el-button type="primary" @click="saveEles">确 定</el-button>
+      </span>
+    </el-dialog>
+
+    <el-dialog title="元素公式" :visible.sync="editEleFormulaVisible" width="800px" append-to-body :close-on-click-modal="false">
+      <div class="flex mg-b-10">
+        <el-input v-model="formulaInput" placeholder="请输入内容" size="samll"></el-input>
+        <el-button type="info">保存</el-button>
+      </div>
+        <el-table :data="editEleList" border style="width: 100%" height="400px">
+          <el-table-column align="center" prop="eName" label="元素名称" >
+          </el-table-column>
+          <el-table-column align="center" label="操作" width="200">
+            <template slot-scope="scope">
+              <el-link type="primary" >公式配置</el-link>
+              <el-link class="mg-l-10" type="danger" @click="delEleRowHandle(scope.$index,editEleList)">删除</el-link>
+            </template>
+          </el-table-column>
+        </el-table>
+    </el-dialog>
+
+    <el-dialog title="导入划分" :visible.sync="importTemplateVisible" width="800px" append-to-body :close-on-click-modal="false">
+      <div v-loading="importLoading">
+        <div><el-link type="primary" @click="handleDownload">下载导入模版</el-link></div>
+        <div class="mg-t-20">
+          <el-button type="primary" @click="fileClick">选择文件</el-button>
+          <span v-if="upFile" class="mg-l-20">{{upFile.name}}</span>
+          <input @change="fileChange" type="file" hidden ref="file" accept=".xls, .xlsx">
+        </div>
+        <div v-if="!upFile">当前还未选择文件,请选择需要导入的文件</div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="importTemplateVisible = false">取 消</el-button>
+        <el-button type="primary" @click="importTemplateHandle" :loading="importLoading">导 入</el-button>
+      </span>
+    </el-dialog>
 </basic-container>
 </basic-container>
 </template>
 </template>
 
 
@@ -538,7 +781,7 @@
         let wbsTreeFu = {
         let wbsTreeFu = {
           wbsId:this.id,
           wbsId:this.id,
           parentId:this.curTreeData.id,
           parentId:this.curTreeData.id,
-          ancestors:'0,'+this.curTreeData.id,
+          // ancestors:'0,'+this.curTreeData.id,
         }
         }
         let json = JSON.stringify(wbsTreeFu);
         let json = JSON.stringify(wbsTreeFu);
         let blob = new Blob([json],{type:'application/json'})
         let blob = new Blob([json],{type:'application/json'})
@@ -546,6 +789,9 @@
         this.importLoading = true;
         this.importLoading = true;
         importWbsTree(forms).then(()=>{
         importWbsTree(forms).then(()=>{
           //this.$router.go(0)
           //this.$router.go(0)
+          let node = this.$refs.tree.getNode(this.curTreeData.id);
+          node.isLeaf = false;
+          this.importTemplateVisible = false;
         }).finally(()=>{
         }).finally(()=>{
           this.importLoading = false;
           this.importLoading = false;
         })
         })