فهرست منبع

Merge remote-tracking branch 'origin/master'

hongchuangyanfa 2 سال پیش
والد
کامیت
41c5b4b4a0

+ 21 - 0
src/api/manager/wbsprivate.js

@@ -111,3 +111,24 @@ export const syncNodeParam = (projectId) => {
     }
   })
 }
+
+export const syncNodeTable = (primaryKeyId) => {
+  return request({
+    url: '/api/blade-manager/wbsPrivate/sync-node-table',
+    method: 'post',
+    params: {
+      primaryKeyId
+    }
+  })
+}
+
+export const tabTypeLazyTree = (parentId,projectId) => {
+  return request({
+    url: '/api/blade-manager/wbsPrivate/tab_Type_lazy-tree',
+    method: 'get',
+    params: {
+      parentId,
+      projectId
+    }
+  })
+}

+ 8 - 2
src/views/manager/projectinfo/editElement/editElement.vue

@@ -417,6 +417,14 @@ export default {
 
       curTdEle.classList.add('select-td')
 
+      this.$nextTick(()=>{
+        //隐藏日期弹框
+        let pickers = document.querySelectorAll('.el-date-picker__header')
+        for (let i = 0; i < pickers.length; i++) {
+          pickers[i].parentNode.parentNode.parentNode.style.display = 'none'
+        }
+      })
+
     },
 
     getTd(ele){
@@ -733,8 +741,6 @@ export default {
       return targetParent;
     },
 
-
-
   },
   watch: {
     'options' () {

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

@@ -1,5 +1,6 @@
 <template>
-  <basic-container>
+  <div style="height:100%">
+  <basic-container v-show="showType == 1">
     <el-row :gutter="20" class="h-100p">
       <el-col :span="10" class="h-100p">
         <div class="h-100p flex flex-d-c">
@@ -42,6 +43,9 @@
                       <el-link :underline="false">
                         <i class="el-icon-sort" @click="sortpai(data,node)" v-if="node.level != 1" title="调整排序"></i>
                       </el-link>
+                      <el-link :underline="false">
+                        <i class="el-icon-upload" style="margin-left:2px;" @click="syncNodeTableHandle(data,node)" title="同步元素表单"></i>
+                      </el-link>
                     </span>
                     <!-- <el-dropdown
                       @click="command=>{setLeftType(command,data)}"
@@ -118,6 +122,9 @@
                       <el-link :underline="false">
                         <i class="el-icon-sort" @click="sortpai(data,node)" v-if="node.level != 1" title="调整排序"></i>
                       </el-link>
+                      <el-link :underline="false">
+                        <i class="el-icon-upload" style="margin-left:2px;" @click="syncNodeTableHandle(data,node)" title="同步元素表单"></i>
+                      </el-link>
                     </span>
                     <!-- <el-dropdown
                       @click="command=>{setLeftType(command,data)}"
@@ -177,7 +184,7 @@
           <el-button type="primary" size="medium" icon="el-icon-edit-outline" @click="editNodeHandle">编辑当前节点</el-button>
           <el-button type="primary" size="medium" icon="el-icon-document-copy" @click="copyNodeHandle">复制当前节点</el-button>
           <el-button type="warning" size="medium" icon="el-icon-delete" @click="delNodeHandle">删除当前节点</el-button>
-          <el-button class="el-btn-purple" type="primary" size="medium" icon="el-icon-s-grid" @click="eleFormulaHandle" v-if="leftType==5">元素公式设置</el-button>
+          <el-button class="el-btn-purple" type="primary" size="medium" icon="el-icon-s-grid" @click="eleFormulaHandle" v-if="leftType==5">表单设置</el-button>
           <el-button class="el-btn-purple" type="primary" size="medium" icon="el-icon-s-grid" @click="eleHandle" v-else>元素设置</el-button>
           <el-button class="el-btn-purple" type="primary" size="medium" icon="el-icon-help" @click="nodeInfoHandle">节点参数设置</el-button>
           <el-button class="el-btn-purple" type="primary" size="medium" icon="el-icon-upload" :loading="syncBtnLoad" @click="syncInfoHandle">同步节点参数</el-button>
@@ -389,7 +396,113 @@
       </el-col>
     </el-row>
 
-    <!-- 编辑元素表单信息 -->
+  </basic-container>
+  <el-row class="h-100p" v-show="showType == 2">
+    <el-col :span="6" class="h-100p">
+      <basic-container>
+        <el-scrollbar class="h-100p">          
+          <el-tree
+            class="filter-tree"
+            lazy
+            :data="typeTreeData"
+            :load="typeTreeLoadNode"
+            @node-click="getTypeTreeDetail"
+            :props="defaultProps"
+            :expand-on-click-node="false"
+            highlight-current
+            node-key="id"
+          >
+          </el-tree>
+        </el-scrollbar>
+      </basic-container>
+    </el-col>
+    <el-col :span="18" class="h-100p">
+      <basic-container>
+        <div  class="flex h-100p flex-d-c">
+          <div style="flex: 1;position: relative;">
+              <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="tableType"
+                  :formatter="formatTableType"
+                  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>
+                    <span v-else>否</span>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  align="center"
+                  prop="tableOwner"
+                  :formatter="formatOwner"
+                  label="所属方"
+                ></el-table-column>
+                <el-table-column
+                  label="操作"
+                  width="400"
+                  align="center"
+                >
+                  <template slot-scope="scope">
+                    <el-link
+                      type="primary"
+                      @click="Associationlist(scope)"
+                    >关联清表</el-link>
+                    <el-link
+                      class="mg-l-10"
+                      type="primary"
+                      :disabled='scope.row.excelId==-1'
+                      @click="rightClick(scope.row.pkeyId,scope.row.excelId,scope.row.id,scope.row.initTableName)"
+                    >编辑元素</el-link>
+                    <el-link
+                      class="mg-l-10"
+                      type="primary"
+                      :disabled='scope.row.excelId==-1'
+                      @click="adjustExcel(scope.row.pkeyId,scope.row.excelId)"
+                    >调整表单</el-link>
+                    <el-link
+                      class="mg-l-10"
+                      type="primary"
+                      @click="handleEditFormula(scope.$index, scope.row)"
+                    >编辑元素公式</el-link>
+                    <el-link
+                      class="mg-l-10"
+                      type="danger"
+                      @click="handleDelete(scope.$index, scope.row)"
+                    >删除表单</el-link>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+            <div class="mg-t-10 flex jc-sb">
+              <div></div>
+              <el-button size="medium" @click="showType = 1">返回WBS树</el-button>
+            </div>
+        </div>
+      </basic-container>
+    </el-col>
+  </el-row>
+
+  <!-- 编辑元素表单信息 -->
     <el-dialog
       title="编辑元素表单信息"
       :visible.sync="editElementFormTag"
@@ -1380,8 +1493,7 @@
     <el-dialog title=" " :visible.sync="editElementVisible" fullscreen append-to-body class="full-dialog">
       <EditElement :pkeyId="editElementQuery.pkeyId" :excelId="editElementQuery.excelId" :id="editElementQuery.id" :initTableName="editElementQuery.initTableName" :pid="editElementQuery.pid" :wbsid="editElementQuery.wbsid" :nodeid="editElementQuery.nodeid" @hideDialog="editElementVisible = false" v-if="editElementVisible"></EditElement>
     </el-dialog>
-
-  </basic-container>
+  </div>
 </template>
 
 <script>
@@ -1397,7 +1509,7 @@ import {
   saveElement, remove as removeElement, updateBatchElements, getTemplate,
   importWbsElement
 } from "@/api/manager/wbsformelement";
-import { getLazytree, getDetail, update, findNodeTableByCondition as selectByNodeTable, removeTableByCondition as removeTableById, removePrivateTreeNode, wbsTreePrivateTableSort ,privateSubmitFullName,syncNodeParam} from "@/api/manager/wbsprivate";
+import { getLazytree, getDetail, update, findNodeTableByCondition as selectByNodeTable, removeTableByCondition as removeTableById, removePrivateTreeNode, wbsTreePrivateTableSort ,privateSubmitFullName,syncNodeParam,syncNodeTable,tabTypeLazyTree} from "@/api/manager/wbsprivate";
 import { findProjectTree as getAlltree } from "@/api/manager/projectinfo";
 import { getList as getAttchFromOriginalName } from "@/api/resource/attach";
 import { getDictionary } from "@/api/system/dict";
@@ -1587,6 +1699,9 @@ export default {
       },//传参
 
       syncBtnLoad:false,
+
+      showType:1,
+      typeTreeData:[],
     };
   },
   computed: {
@@ -2667,14 +2782,15 @@ export default {
     },
 
     eleFormulaHandle(){
-      if(!this.curTreeData.id || !this.curTreeNode.id){
-        this.$message({
-          type: "warning",
-          message: "请先选择节点"
-        })
-        return;
-      }
-      this.setLeftType(4,this.curTreeData,this.curTreeNode);
+      // if(!this.curTreeData.id || !this.curTreeNode.id){
+      //   this.$message({
+      //     type: "warning",
+      //     message: "请先选择节点"
+      //   })
+      //   return;
+      // }
+      // this.setLeftType(4,this.curTreeData,this.curTreeNode);
+      this.showType = 2;
     },
 
     editNodeHandle(){
@@ -2784,7 +2900,53 @@ export default {
           this.aliasVisible = false;
         })
       }
-    }
+    },
+
+    syncNodeTableHandle(data){
+      this.$confirm('是否同步节点【'+data.title+'】?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        let notify = this.$notify({
+          title: '提示',
+          message: '节点数据同步中...',
+          duration: 0
+        });
+        syncNodeTable(data.primaryKeyId).then(()=>{
+          this.$message({
+            type: 'success',
+            message: '同步成功',
+          })
+        }).catch(()=>{
+          this.$message({
+            type: "error",
+            message: "同步失败"
+          })
+        }).finally(()=>{
+          notify.close();
+        })
+      })
+    },
+
+    typeTreeLoadNode (node, resolve) {
+      let pid = 0;
+      if (node.level != 0) {
+        pid = node.data.id
+      }
+      tabTypeLazyTree(pid,this.projectid).then((res) => {
+        let arr = [];
+        if (Array.isArray(res.data.data)) {
+          arr = res.data.data;
+        }
+
+        return resolve(arr);
+      })
+    },
+
+    getTypeTreeDetail(){
+
+    },
 
   },
   watch: {
@@ -2864,4 +3026,7 @@ export default {
     height: calc(100vh - 60px);
   }
 }
+.my-basic-con {
+  padding: 6px 6px;
+}
 </style>

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

@@ -1212,13 +1212,13 @@
       <div class="flex mg-b-10">
         <el-input
           v-model="formulaInput"
-          placeholder="请输入内容"
+          placeholder="请输入名称"
           size="samll"
         ></el-input>
-        <el-button type="info">保存</el-button>
+        <el-button type="info" @click="searchFormulaName">搜索</el-button>
       </div>
       <el-table
-        :data="editEleList"
+        :data="editEleListFilter"
         border
         style="width: 100%"
         height="400px"
@@ -1242,7 +1242,7 @@
             <el-link
               class="mg-l-10"
               type="danger"
-              @click="delEleRowHandle(scope.$index,editEleList)"
+              @click="delEleRowHandle(scope.$index,editEleListFilter)"
             >删除</el-link>
           </template>
         </el-table-column>
@@ -1727,6 +1727,8 @@ export default {
 
       editEleFormulaVisible: false,
       formulaInput: '',
+      editEleListFilter:[],
+      editEleListAll:[],
 
       importTemplateVisible: false,
       fileUrl: '',
@@ -2158,11 +2160,19 @@ export default {
       this.curEleTable = row;
       selectFormElements(this.curEleTable.id).then((res) => {
 
-        this.editEleList = res.data.data;
+        this.editEleListFilter = res.data.data;
+        this.editEleListAll = [].concat(this.editEleListFilter);
       })
       this.editEleFormulaVisible = true;
     },
 
+    //搜索 筛选
+    searchFormulaName(){
+      this.editEleListFilter = this.editEleListAll.filter((ele)=>{
+        return ele.eName.indexOf(this.formulaInput) > -1;
+      })
+    },
+
     saveNewEle (row) {
       if (!row.eName) {
         this.$message({

+ 17 - 0
src/views/system/user.vue

@@ -651,6 +651,23 @@ export default {
                 viewDisplay: false,
                 rules: [{required: true, validator: validatePass2, trigger: 'blur'}]
               },
+              {
+                label: "用户平台",
+                type: "select",
+                dicUrl: "/api/blade-system/dict/dictionary?code=user_type",
+                props: {
+                  label: "dictValue",
+                  value: "dictKey"
+                },
+                dataType: "number",
+                hide: false,
+                prop: "userType",
+                rules: [{
+                  required: true,
+                  message: "请选择用户平台",
+                  trigger: "blur"
+                }]
+              }
             ]
           },
           {