huangjn 1 سال پیش
والد
کامیت
92a530346e

+ 1 - 1
.eslintrc.js

@@ -14,4 +14,4 @@ module.exports = {
   parserOptions: {
     parser: 'babel-eslint'
   }
-}
+}

+ 9 - 1
README.md

@@ -1,6 +1,14 @@
 # saber-admin
 
-拉取代码时,请不要同意 `package.json` 文件中的 `node-sass` `sass-loader` `webpack-bundle-analyzer` 的更新,以免你本地的node版本不一致,导致无法启动
+需要node.js 18.19.0版本
+
+Windows 32 位安装程序:https://nodejs.org/dist/v18.19.0/node-v18.19.0-x86.msi
+
+Windows 64 位安装程序:https://nodejs.org/dist/v18.19.0/node-v18.19.0-x64.msi
+
+macOS 64 位安装程序:https://nodejs.org/dist/v18.19.0/node-v18.19.0.pkg
+
+注意:当前模式,仅支持启动,不支持编译打包
 
 ---
 

+ 60 - 0
package-打包.json

@@ -0,0 +1,60 @@
+{
+  "name": "saber-admin",
+  "version": "2.9.1",
+  "private": true,
+  "scripts": {
+    "serve": "vue-cli-service serve",
+    "build": "vue-cli-service build",
+    "build:zip": "sh ./scripts/build.sh all",
+    "build:zip:wgt": "sh ./scripts/build.sh wgt",
+    "build:test": "sh ./scripts/build.sh all test",
+    "build:test:wgt": "sh ./scripts/build.sh wgt test"
+  },
+  "dependencies": {
+    "@antv/g2plot": "^2.4.20",
+    "@johmun/vue-tags-input": "^2.1.0",
+    "avue-plugin-ueditor": "^0.1.4",
+    "axios": "^1.4.0",
+    "babel-polyfill": "^6.26.0",
+    "classlist-polyfill": "^1.2.0",
+    "crypto-js": "^4.0.0",
+    "element-ui": "^2.15.6",
+    "js-base64": "^2.5.1",
+    "js-cookie": "^2.2.0",
+    "js-md5": "^0.7.3",
+    "mockjs": "^1.0.1-beta3",
+    "node-gyp": "^5.0.6",
+    "nprogress": "^0.2.0",
+    "portfinder": "^1.0.23",
+    "script-loader": "^0.7.2",
+    "vue": "^2.6.10",
+    "vue-axios": "^2.1.2",
+    "vue-i18n": "^8.7.0",
+    "vue-router": "^3.0.1",
+    "vuedraggable": "^2.24.3",
+    "vuex": "^3.1.1"
+  },
+  "devDependencies": {
+    "@vue/cli-plugin-babel": "^3.1.1",
+    "@vue/cli-plugin-eslint": "^3.1.5",
+    "@vue/cli-service": "^3.1.4",
+    "archiver": "^5.3.1",
+    "chai": "^4.1.2",
+    "node-sass": "^7.0.3",
+    "sass-loader": "^10.4.1",
+    "screenfull": "^5.1.0",
+    "vue-template-compiler": "^2.5.17",
+    "vue2-ace-editor": "^0.0.15",
+    "webpack-bundle-analyzer": "^4.5.0"
+  },
+  "lint-staged": {
+    "*.js": [
+      "vue-cli-service lint",
+      "git add"
+    ],
+    "*.vue": [
+      "vue-cli-service lint",
+      "git add"
+    ]
+  }
+}

+ 2 - 3
package.json

@@ -35,12 +35,11 @@
     "vuex": "^3.1.1"
   },
   "devDependencies": {
-    "@vue/cli-plugin-babel": "^3.1.1",
-    "@vue/cli-plugin-eslint": "^3.1.5",
+    "@vue/cli-plugin-babel": "^3.1.4",
     "@vue/cli-service": "^3.1.4",
     "archiver": "^5.3.1",
     "chai": "^4.1.2",
-    "node-sass": "^7.0.3",
+    "sass": "^1.77.6",
     "sass-loader": "^10.4.1",
     "screenfull": "^5.1.0",
     "vue-template-compiler": "^2.5.17",

+ 5 - 0
src/config/index.json

@@ -1,5 +1,10 @@
 {
+<<<<<<< HEAD
   "target": "http://192.168.1.228:8090",
+=======
+  "target": "http://39.108.216.210:8090",
+  "target1": "http://192.168.0.109:8090",
+>>>>>>> 59d2fb16f543f5348ea80f7eeb96737fb9b4b308
   "dev": {
     "port": 1888
   }

+ 6 - 6
src/views/certificate/list.vue

@@ -22,13 +22,13 @@
           <el-input v-model="searchinput" style="width: 240px;margin-right: 10px;" placeholder="请输入"  clearable @clear="searchClick"/>
           <el-button
             type="primary"
-        
+
             class="el-icon-search"
             @click="searchClick"
           >搜索</el-button>
       </div>
       </div>
- 
+
       <el-button
         type="primary"
         size="mini"
@@ -201,7 +201,7 @@ export default {
           this.value= this.value=this.options[0].id
         }
         this.listpage()
-      
+
       }
     },
     async listpage () {//分页获取证书列表数据
@@ -211,7 +211,7 @@ export default {
         projectId: this.value,
         certificateUserName:this.searchinput
       })
-     
+
       if (res.code == 200) {
         this.tableData = res.data.records
         this.total = res.data.total
@@ -235,7 +235,7 @@ export default {
   },
   created () {
     this.queryProjectList()
-    
+
   },
 }
 </script>
@@ -243,7 +243,7 @@ export default {
 
 <style lang="scss" scoped>
 .tableList {
-  /deep/ th.el-table__cell {
+  ::v-deep th.el-table__cell {
     font-size: 16px !important;
   }
 }

+ 1 - 1
src/views/certificate/management.vue

@@ -128,7 +128,7 @@ export default {
 <style lang="scss" scoped>
 .management {
   .tableList {
-    /deep/ th.el-table__cell {
+    ::v-deep th.el-table__cell {
       font-size: 16px !important;
     }
   }

+ 5 - 6
src/views/exctab/ElementIdentification/index.vue

@@ -623,7 +623,6 @@
       </el-dialog>
       <!-- 添加到元素库 -->
       <el-dialog
-
         title="保存元素表"
         class="excelBox"
         :visible.sync="eleDialog"
@@ -1689,7 +1688,7 @@ export default {
       if (
         target.getAttribute("trindex") !== null &&
         target.getAttribute("tdindex")
-      ) 
+      )
       {
         let tdEle = this.getParentTD(target);
         if (tdEle) {
@@ -1795,7 +1794,7 @@ export default {
   cursor: pointer;
 }
 
-/deep/ .el-table .warning-row {
+::v-deep .el-table .warning-row {
   background: oldlace;
 }
 
@@ -1804,14 +1803,14 @@ export default {
   height: 100%;
 }
 
-.region /deep/ .el-dialog__wrapper {
+.region ::v-deep .el-dialog__wrapper {
   position: absolute !important;
 }
-.region /deep/ .v-modal {
+.region ::v-deep .v-modal {
   position: absolute !important;
 }
 
-#parent /deep/ .oldlace-bg {
+#parent ::v-deep .oldlace-bg {
   background-color: oldlace;
 }
 </style>

+ 1 - 1
src/views/exctab/ElementIdentification/template/setFormula.vue

@@ -81,7 +81,7 @@ export default {
     padding: 15px 20px;
   }
   .switch {
-    /deep/.el-switch__label.is-active {
+    ::v-deep.el-switch__label.is-active {
       width: 60px;
     }
   }

+ 11 - 11
src/views/exctab/excelmodel/excelmodel.vue

@@ -101,7 +101,7 @@
               <el-link class="marleft10 colorblue" @click="delectExcelMS">删除</el-link>
               <el-link underline class="marleft10 colorblue" style="text-decoration:underline;"
                 @click="downloadExcel()">下载EXCEL</el-link>
-              
+
             </template>
             <template v-else>
               <el-upload :auto-upload="false" :show-file-list="false" action="#" :limit="1" :file-list='fileList'
@@ -218,8 +218,8 @@
         <el-table class="down" :data="dataList" border stripe style="width: 100%;margin-top: 20px;">
           <el-table-column label="序号" width="150">
             <template slot-scope="scope">
-              <i class="el-icon-sort-up marleft10 text-hover" @click="upSortFile(scope.row,scope.$index)"></i> 
-              <i class="el-icon-sort-down marleft10 text-hover" @click="downSortFile(scope.row,scope.$index)"></i> 
+              <i class="el-icon-sort-up marleft10 text-hover" @click="upSortFile(scope.row,scope.$index)"></i>
+              <i class="el-icon-sort-down marleft10 text-hover" @click="downSortFile(scope.row,scope.$index)"></i>
               {{ scope.$index + 1 }}
             </template>
           </el-table-column>
@@ -383,7 +383,7 @@ export default {
         // 判断是否支持
         if (!screenfull.isEnabled) {
         this.$message({
-          message: "浏览器不支持全屏",  
+          message: "浏览器不支持全屏",
           type: "warning"
         });
         return false;
@@ -392,7 +392,7 @@ export default {
       screenfull.request(element);
       // screenfull.toggle();
 
-
+s
     },
     getFile() {
       this.excelshow = true
@@ -1044,7 +1044,7 @@ export default {
       this.curTreeData = data;
       this.exceldialogVisible = true
     },
-    
+
 
     excelhandleChange(file, fileList) {
       this.dataList = fileList
@@ -1076,14 +1076,14 @@ export default {
           })
           this.exceldialogVisible=false
           this.refreshTree()
-       
+
           loading.close();
         }).catch(() => {
           loading.close();
         });
         this.$refs.excelmoudelupload.clearFiles();
         this.cancleexceldialog()
-       
+
     },
     //更改上传文件顺序
     upSortFile(row,index){
@@ -1094,7 +1094,7 @@ export default {
       }else{
         this.$message.warning('已经处于置顶,无法上移')
       }
-      
+
     },
     downSortFile(row,index){
       const indexs = index + 1
@@ -1126,7 +1126,7 @@ export default {
   margin-left: 10px;
 }
 
-/deep/.el-tree-node__expand-icon {
+::v-deep.el-tree-node__expand-icon {
   font-size: 16px;
 }
 
@@ -1134,7 +1134,7 @@ export default {
   color: rgb(0, 82, 217);
 }
 
-.treecontent /deep/.el-scrollbar {
+.treecontent ::v-deep.el-scrollbar {
   height: 100%;
 }
 

+ 72 - 72
src/views/formula/editnew.vue

@@ -112,7 +112,7 @@
               </el-option>
               </el-select>
             </div>
-           
+
             <div class="mg-t-10 no-mb-col flex1 ov-hidden">
               <el-scrollbar style="height: 100%">
                 <el-row v-loading="eleListable"  v-if="eleList.length>0">
@@ -122,7 +122,7 @@
                       <span v-else>{{item.eName}}</span>
                       <el-checkbox v-model="item.checked" @change="value => eleChang(value,item)"></el-checkbox>
                     </div>
-                    
+
                   </el-col>
                 </el-row>
                 <el-row v-else style="text-align: center;line-height: 328px;border:1px solid #bbb">暂无数据</el-row>
@@ -167,9 +167,9 @@
       <div class="box-dashed" style="padding:10px" >
        函数公式运算执行溯源 <el-button type="info" @click="searchElement" v-if="!elementTbinfo">查询</el-button>
           <el-button type="info" @click="searchElement1" v-if="elementTbinfo">收起</el-button>
-         
-       
-        
+
+
+
           <!-- <el-select
             v-model="projectId"
             @change="projectChange"
@@ -191,28 +191,28 @@
               :value="item.id"
             ></el-option>
           </el-select> -->
-          
-       
+
+
          <div>
             <div class="box-dashed-1"  v-if="elementTbinfo">
             <span>
               <span
                 style="cursor: pointer;font-size:20px"
                 v-bind:class="{'span-select':index===nowtitleIndex}"
-                v-for="(item,index) in processFormula" :key="index" 
+                v-for="(item,index) in processFormula" :key="index"
                 :item="item" @click="equationClicksouce(item,index)"
                 :isShow="true"
               >
               {{item.name}}
               </span>
             </span>
-        
-             
-          
+
+
+
             </div>
             <div class="box-dashed-1-tabinfo" v-if="istabinfo&&elementTbinfo">
                 <div class="left_box">
-                    <el-descriptions class="margin-top"  :column="1" size="large" border > 
+                    <el-descriptions class="margin-top"  :column="1" size="large" border >
                       <el-descriptions-item>
                         <template slot="label">
                           元素表名称
@@ -221,73 +221,73 @@
                       </el-descriptions-item>
                       <el-descriptions-item>
                         <template slot="label">
-                      
+
                           元素名称
                         </template>
                        <span >{{checkFormula[0]['name']}}</span>
                       </el-descriptions-item>
                       <el-descriptions-item>
                         <template slot="label">
-                    
+
                           数据类型
                         </template>
                            {{checkFormula[0]['eType']}}
                       </el-descriptions-item>
-            
+
                       <el-descriptions-item>
                         <template slot="label">
-                        
+
                           长度
                         </template>
                        {{checkFormula[0]['eLength']}}
                       </el-descriptions-item>
                     </el-descriptions>
-                  
+
                            <div class="formula-title"> 嵌套公式:</div>
                         <div class="formula-box">
                             <div class="formula-list-box" v-for="(item,index) in innerFormulaList" :key="index"  @click="checkInnerList(item,index)">
-                                <span class="formula-list"    v-if="item&&item['children']&&item['children'].length>0" v-bind:class="{'span-select':index===nowIndex}"> {{'('+Number(index+1)+')'}}{{item['children'][0]['name']}}</span> 
+                                <span class="formula-list"    v-if="item&&item['children']&&item['children'].length>0" v-bind:class="{'span-select':index===nowIndex}"> {{'('+Number(index+1)+')'}}{{item['children'][0]['name']}}</span>
                                 <div class="formula-detail"   v-if="index===nowIndex">
-                                          <component 
+                                          <component
                                           style="font-size:12px"
-                                          ref="dynamiccomponent" 
+                                          ref="dynamiccomponent"
                                           v-if="item&&item['children']&&item['children'].length>0"
-                                          v-bind:is="componentMap[item['children'][0]['name']]" 
-                                          :formulainfo="item['children'][0]" 
-                                          :curele="equationSelectEle" 
-                                          :formulamap="formulaMap" 
-                                          @uncheck="unCheckEleComp" 
+                                          v-bind:is="componentMap[item['children'][0]['name']]"
+                                          :formulainfo="item['children'][0]"
+                                          :curele="equationSelectEle"
+                                          :formulamap="formulaMap"
+                                          @uncheck="unCheckEleComp"
                                           :isShow="false"
                                           :inputSize="'small'"
                                           class="flex1">
                                           </component>
                                           <div class="formula-detail-element">
-                                              <el-descriptions class="margin-top"  :column="1" size="mini" border > 
+                                              <el-descriptions class="margin-top"  :column="1" size="mini" border >
                                                   <el-descriptions-item>
                                                     <template slot="label">
-                                                  
+
                                                       元素表名称
                                                     </template>
                                                       <span style="color: rgba(64,149,229,1);font-weight:bold;cursor: pointer;"  @click="eleTbaleName">  {{checkFormula[0]['initTableName']}}</span>
                                                   </el-descriptions-item>
                                                   <el-descriptions-item>
                                                     <template slot="label">
-                                                  
+
                                                       元素名称
                                                     </template>
                                                   <span >{{checkFormula[0]['name']}}</span>
                                                   </el-descriptions-item>
                                                   <el-descriptions-item>
                                                     <template slot="label">
-                                                
+
                                                       数据类型
                                                     </template>
                                                       {{checkFormula[0]['eType']}}
                                                   </el-descriptions-item>
-                                        
+
                                                   <el-descriptions-item>
                                                     <template slot="label">
-                                                    
+
                                                       长度
                                                     </template>
                                                   {{checkFormula[0]['eLength']}}
@@ -295,29 +295,29 @@
                                                 </el-descriptions>
                                           </div>
                                 </div>
-                              
+
                             </div>
-                   
+
                     </div>
-               
-                    
-                      
+
+
+
                 </div>
-               
+
                   <div class="right_box"  >
                     <div class="parent"  id='parent'   ></div>
                       <div v-if="!ishowExcel" style="margin-top:40px">
                         <el-result title="请选择左侧对应的元素表名称,回显表单坐标定位信息" >
                               <template slot="icon">
                                 <img src="/img/welIndex/empty.png" alt="loading">
-                                    
+
                               </template>
-                            
+
                           </el-result>
                       </div>
                   </div>
-                  
-                
+
+
             </div>
          </div>
       </div>
@@ -366,7 +366,7 @@
                       </el-option>
                       </el-select>
                   </div>
-                  
+
                   <div class="mg-t-10 mg-b-10 no-mb-col" style="width:100%">
                     <el-scrollbar style="height:520px;">
                       <el-row>
@@ -425,7 +425,7 @@
                   </el-option>
               </el-select>
            </div>
-       
+
           <div class="mg-t-10 mg-b-10 no-mb-col" style="width:100%">
             <el-scrollbar style="height:520px;">
               <el-row>
@@ -488,7 +488,7 @@
                 <template v-else>
                     <el-option  v-for="item in eleTableList" :key="item.id" :label="item.tableName" :value="item.id"></el-option>
                 </template>
-              
+
               </el-select>
               <!-- 搜索元素下拉框 -->
                 <el-select v-model="input3" filterable clearable placeholder="搜索元素字段4"  @change="getInput" style="width:45%">
@@ -500,7 +500,7 @@
                 </el-option>
                 </el-select>
              </div>
-            
+
 
             <div class="mg-t-10 mg-b-10 no-mb-col">
               <el-scrollbar style="height: 460px">
@@ -660,7 +660,7 @@ export default {
 
       resultFormula:[],//=等号左边的数组
       processFormula:[],//=等号右边的数组
-    
+
       processType:'',//选中的元素在等号哪边
       processSelectIndex:0,//选中的索引
       actiFunIndex:0,//元素下挂载的计算式的索引
@@ -757,7 +757,7 @@ export default {
     // this.eleid = this.$route.query.eleid;
     // this.nodeid = this.$route.query.nodeid;
     this.pid = this.$route.query.pid;//项目id 私有树才有
-    
+
     this.init();
   },
   methods: {
@@ -768,7 +768,7 @@ export default {
       this.geTreeData();
       await this.getTypeMap();
       this.formulaStringToArray();
-      
+
     },
 
     geTreeData(){
@@ -778,7 +778,7 @@ export default {
           this.treeLoad = false;
           this.treeData = res.data.data;
           this.defaultExpanded = [this.nodeid];
-          
+
           this.$nextTick(()=>{
             let isArray = Array.isArray(this.$refs.tree)
             if (isArray) {
@@ -790,7 +790,7 @@ export default {
               this.getNodeDetail(this.fromcurNode)
               this. getNodeDetailComp(this.fromcurNode)
           })
-          
+
         })
       }else{
         getAlltree(this.userInfo.tenant_id, 1, this.wbsid).then((res) => {
@@ -809,7 +809,7 @@ export default {
              this.getNodeDetail(this.fromcurNode)
               this. getNodeDetailComp(this.fromcurNode)
           })
-          
+
         })
       }
     },
@@ -878,7 +878,7 @@ export default {
     operationEdit(){
       this.selectEleFormula= JSON.parse(JSON.stringify(this.processFormula));
       this.operationVisible = true;
-      
+
     },
 
     eleAddFormula(){
@@ -1171,13 +1171,13 @@ export default {
 
 
       this.processFormula = JSON.parse(JSON.stringify(this.selectEleFormula));
-    
+
       this.operationVisible = false;
     },
 
     //点选等式中的元素
     equationClick({selected,item},index,arrName){
-        
+
       if(selected){
         this.resultFormula.forEach((ele)=>{
           ele.selected = false;
@@ -1198,7 +1198,7 @@ export default {
           //切到第一个
           this.actiFunIndex = '0';
         }
-     
+
       }else{
         this.processType = '';
       }
@@ -1211,7 +1211,7 @@ export default {
       }else{
           this.elementTbinfo=false
       }
-       
+
     },
     searchElement1(){
       if(this.processType==='resultFormula'){
@@ -1219,7 +1219,7 @@ export default {
       }else{
           this.elementTbinfo=false
       }
-       
+
     },
 
   //点选公式溯源公式
@@ -1241,7 +1241,7 @@ export default {
        if(dom){
           dom.classList.add("oldlace-bg");
        }
-       
+
     })
   },
     //在等式模式下点选计算式
@@ -1629,7 +1629,7 @@ export default {
     getEleDeatil(){
       getEleDeatil(this.eleid).then((res)=>{
         let ele = res.data.data;
-       
+
         this.resultFormula = [{
           type:'Element',
           name:ele.eName,
@@ -1646,7 +1646,7 @@ export default {
    getEleDeatilList(){
       getEleDeatil(this.checkid).then((res)=>{
         let ele = res.data.data;
-       
+
         this.checkFormula = [{
           type:'Element',
           name:ele.eName,
@@ -1692,7 +1692,7 @@ export default {
       }else{
         this.eleList=this.eleList1
       }
-       
+
     },
     getInput1(tableId){
       if(tableId.length>0){
@@ -1706,7 +1706,7 @@ export default {
       }else{
          this.eleListComp=this.eleListComp1;
       }
-       
+
     },
 
     //方法下面的点击树节点
@@ -1867,9 +1867,9 @@ export default {
                   code: "data_type",
               }).then((res) => {
                   this.stringTypeList = res.data.data;
-                  
+
               });
-         
+
       },
       checkInnerList(item,index){
         console.log(item,'item');
@@ -1877,7 +1877,7 @@ export default {
         // this.innerFormulaList.forEach((item)=>{
         //   item.selected=false
         // })
-       
+
       },
 
 
@@ -1887,8 +1887,8 @@ export default {
       if (res.code === 200) {
         localStorage.setItem('excelHtml', res.data)
         this.copss()
-       
-       
+
+
       }
     },
     getInformation (name, tr, td) {//鼠标点击事件
@@ -1912,7 +1912,7 @@ export default {
       },moreObj)
     },
 
-  
+
 
 
     getParentTD(ele){
@@ -2024,7 +2024,7 @@ export default {
 </script>
 
 <style scoped lang="scss">
-#parent /deep/ .oldlace-bg {
+#parent ::v-deep .oldlace-bg {
   background-color: oldlace;
 }
 .span-select{
@@ -2044,7 +2044,7 @@ export default {
   padding: 20px;
 }
 .box-dashed-1-tabinfo{
- 
+
   height: 500px;
   // border: 1px solid gray;
   padding: 10px;
@@ -2056,7 +2056,7 @@ export default {
     height: 100%;
     background-color: rgb(167, 167, 167);
     border-radius: 1%;
-  
+
   }
   .right_box{
     width:68%;
@@ -2139,7 +2139,7 @@ export default {
 }
 .formula-list-checked{
   color: blue !important;
-  
+
  }
  .formula-detail{
    margin-top: 10px;

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 402 - 372
src/views/manager/archivetree.vue


+ 8 - 8
src/views/manager/projectinfo/archiveTime.vue

@@ -289,7 +289,7 @@ export default {
     margin-left: 10px;
 }
 
-/deep/.el-tree-node__expand-icon {
+::v-deep.el-tree-node__expand-icon {
     font-size: 16px;
 }
 
@@ -297,7 +297,7 @@ export default {
     color: rgb(0, 82, 217);
 }
 
-.treecontent /deep/.el-scrollbar {
+.treecontent ::v-deep.el-scrollbar {
     height: 100%;
 }
 
@@ -386,31 +386,31 @@ export default {
 
 }
 
-/deep/.avue-crud__left {
+::v-deep.avue-crud__left {
     width: 65%;
 }
 
-/deep/.el-input-group__append {
+::v-deep.el-input-group__append {
     background-color: #ecf5ff;
     color: #409EFF;
 }
 
-/deep/.el-input-group__append:hover {
+::v-deep.el-input-group__append:hover {
     background-color: #409EFF;
     color: white;
 }
 
-/deep/.el-input-group__prepend:hover {
+::v-deep.el-input-group__prepend:hover {
     background-color: #409EFF;
     color: white;
 }
 
-/deep/.el-input-group__append:active {
+::v-deep.el-input-group__append:active {
     background-color: #9dc5ee;
     color: white;
 }
 
-/deep/.el-input-group__prepend:active {
+::v-deep.el-input-group__prepend:active {
     background-color: #9dc5ee;
     color: white;
 }

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 379 - 347
src/views/manager/projectinfo/archivetreeRule.vue


+ 36 - 36
src/views/manager/projectinfo/editElement/editElement.vue

@@ -369,7 +369,7 @@ export default {
 
       ],
       checkList:[]//需要替换的数组
-     
+
     }
   },
   mounted () {
@@ -398,7 +398,7 @@ export default {
       console.log(item,'item');
       this.value=item.id
       this.names=item.eName
-    
+
     },
     takuangchangge (value) {//切换事件
       if (value[value.length - 1] == '替换元素') {
@@ -494,7 +494,7 @@ export default {
           name:curTdEle.getAttribute("title")
         }]
       }
-     
+
       curTdEle.classList.add('select-td')
 
       this.$nextTick(()=>{
@@ -592,12 +592,12 @@ export default {
           keyupShiftUp() {},
           keyupShiftDown() {},
           keyupShiftLeft() {
-        
+
           },
           keyupShiftRight() {
           },
           inputLeftClick() {
-         
+
           },
           KeyDown(e) {
             if (e.ctrlKey|| e.metaKey) {
@@ -650,14 +650,14 @@ export default {
           keyupShiftUp() {},
           keyupShiftDown() {},
           keyupShiftLeft() {
-           
+
           },
           keyupShiftRight() {},
           inputLeftClick() {
-           
+
           },
         },
-     
+
 
       })
       var component = new MyComponent().$mount()
@@ -701,7 +701,7 @@ export default {
       //     colName: "",
       //     htmlType: this.value
       //   })
-      // } 
+      // }
       if (this.value&&this.table&&this.checkList.length===0) {
         this.tag = true
         this.submit2([{
@@ -763,7 +763,7 @@ export default {
         console.log(res);
         this.tag = false
         if (res.code === 200) {
-       
+
           // this.value = ''
           this.checkList=[]
           this.options = []
@@ -782,7 +782,7 @@ export default {
       this.tableData = []
       this.$refs.cascader.clearCheckedNodes()
       this.AddNewElementField = ''
-  
+
 
     },
     addyuansu () {//新增元素
@@ -919,8 +919,8 @@ export default {
 
     //excel父节点点击检测
     parentClick(e){
-   
-      
+
+
     const{metaKey,ctrlKey}=e
       let target = e.target;
       console.log(target,'target');
@@ -941,16 +941,16 @@ export default {
           target=mydiv[0]
 
         }
-      
 
-      
+
+
       if(target.getAttribute('trindex') !== null && target.getAttribute('tdindex')||target1.getAttribute('trindex') !== null && target1.getAttribute('tdindex')){
         let tdEle = this.getParentTD(target);
         if(tdEle){
           target.classList.add("oldlace-bg");
           if(metaKey||ctrlKey){
             target.classList.add("select-td");
-   
+
             this.checkList.push({
               tr:target.getAttribute('trindex')||target1.getAttribute('trindex'),
               td:target.getAttribute('tdindex')||target1.getAttribute('tdindex'),
@@ -963,11 +963,11 @@ export default {
               }
             })
           }
-          
-         
+
+
 
         }
-      
+
         this.noRepeat(this.checkList)
       }
     },
@@ -983,7 +983,7 @@ export default {
       return targetParent;
     },
 
- 
+
 
   },
   watch: {
@@ -1060,37 +1060,37 @@ export default {
 }
 
 .parent{
-  /deep/ .select-td{
+  ::v-deep .select-td{
     border-width: 4px;
     border-color: #E6A23C;
     border-style: solid;
   }
 
-  /deep/ .oldlace-bg{
+  ::v-deep .oldlace-bg{
     background-color: oldlace;
   }
 }
-/deep/ .warnstyle .el-input__inner{
-  background-image: url('/img/login/warn.png') !important;       
-  background-repeat: no-repeat;        
-  background-size:cover;        
+::v-deep .warnstyle .el-input__inner{
+  background-image: url('/img/login/warn.png') !important;
+  background-repeat: no-repeat;
+  background-size:cover;
   background-position: center
 }
-/deep/ .warnstyle .el-textarea__inner{
-  background-image: url('/img/login/warn.png') !important;       
-  background-repeat: no-repeat;        
-  // background-size:cover;        
+::v-deep .warnstyle .el-textarea__inner{
+  background-image: url('/img/login/warn.png') !important;
+  background-repeat: no-repeat;
+  // background-size:cover;
   background-position-x: 45%;
   background-position-y: 46%;
 }
 
 .full-dialog{
-  /deep/ .el-dialog__body{
+  ::v-deep .el-dialog__body{
     padding-bottom: 0;
     padding-top: 0;
   }
 
-  /deep/ .basic-container{
+  ::v-deep .basic-container{
     height: calc(100vh - 60px);
   }
 }
@@ -1103,8 +1103,8 @@ export default {
   padding-top: 20px;
   padding-left: 20px;
 
- 
- 
+
+
 }
 .replace_box::after {
 				content: '未进行匹配的元素字段';
@@ -1116,8 +1116,8 @@ export default {
 				font-size: 18px;
 				color: orange;
         font-weight: 900;
-				
-		
+
+
 			}
 
 </style>

+ 320 - 306
src/views/manager/projectinfo/independent.vue

@@ -28,7 +28,7 @@
               <div style="width:100%;">
                 <span style="text-overflow: ellipsis;"> {{ data.title }} </span>
 
-              <!-- 调整排序 -->
+                <!-- 调整排序 -->
               <el-link :underline="false">
                 <i
                   class="el-icon-sort"
@@ -69,50 +69,55 @@
 
 
               <template slot="menuRight">
-                            <el-button
-                              type="primary"
-                              size="small"
-                              plain
-                              @click="quteEle"
-                            >引用元素表单库
-                            </el-button>
-
-                          <el-button
-                            size="small"
-                            type="danger"
-                            plain
-
-                            @click="handleDelete"
-                          >删除表单
-                          </el-button>
+                <el-button
+                  type="primary"
+                  size="small"
+                  plain
+                  @click="quteEle"
+                >引用元素表单库
+                </el-button>
+
+                <el-button
+                  size="small"
+                  type="danger"
+                  plain
+
+                  @click="handleDelete"
+                >删除表单
+                </el-button>
+              </template>
+              <template slot="menuLeft" slot-scope="{size}">
+                <div style="display:flex">
+                  <el-input placeholder="请输入你想搜索的表单名称" v-model="input3" :size="size" clearable
+                            @clear="clearinput"></el-input>
+                  <el-button type="primary" icon="el-icon-search" size="small" @click="searchChange">搜索</el-button>
+                </div>
+
+                <!-- <i  class="el-icon-search" slot="append" @click="searchChange" style=" cursor:pointer;font-size: 16px;"></i> -->
+              </template>
+              <template slot-scope="{type,size,row}" slot="menu">
+                <el-button :size="size" :type="type" @click="Associationlist(row)">关联清表</el-button>
+                <el-button :size="size" :type="type" :disabled="row.excelIds == -1" @click="rightClick(row)">编辑元素
+                </el-button>
+                <el-button :size="size" :type="type" :disabled="row.excelIds == -1"
+                           @click="adjustExcel(row.id,row.excelIds)">调整表单
+                </el-button>
+                <el-button :size="size" :type="type" @click="handleEditFormula(row)">编辑公式</el-button>
+                <el-button :size="size" :type="type" @click="allocatWbs(row)">分配WBS</el-button>
+
               </template>
-               <template slot="menuLeft" slot-scope="{size}">
-                 <div style="display:flex">
-                   <el-input placeholder="请输入你想搜索的表单名称" v-model="input3" :size="size"  clearable  @clear="clearinput" >  </el-input>
-                    <el-button type="primary" icon="el-icon-search"  size="small"  @click="searchChange">搜索</el-button>
-                 </div>
-
-                     <!-- <i  class="el-icon-search" slot="append" @click="searchChange" style=" cursor:pointer;font-size: 16px;"></i> -->
-                </template>
-                <template slot-scope="{type,size,row}" slot="menu">
-                      <el-button  :size="size" :type="type"  @click="Associationlist(row)">关联清表</el-button>
-                      <el-button  :size="size" :type="type"  :disabled="row.excelIds == -1" @click="rightClick(row)">编辑元素</el-button>
-                      <el-button  :size="size" :type="type"  :disabled="row.excelIds == -1" @click="adjustExcel(row.id,row.excelIds)">调整表单</el-button>
-                      <el-button  :size="size" :type="type" @click="handleEditFormula(row)">编辑公式</el-button>
-                      <el-button  :size="size" :type="type" @click="allocatWbs(row)">分配WBS</el-button>
-
-                </template>
             </avue-crud>
           </div>
         </div>
       </div>
     </div>
-    <Qute ref="Qute" :projectid="projectid" :wbsid="wbsid" :onLoad1="onLoad1" :refreshTree="refreshTree"> </Qute>
-    <Relation ref="Relation" :GLExcelFrom="GLExcelFrom" :wbsid="wbsid"  :onLoad1="onLoad1" :refreshTree="refreshTree"></Relation>
-       <!-- 分配Wbs -->
-       <allocateDialog ref="allocateRef"></allocateDialog>
+    <Qute ref="Qute" :projectid="projectid" :wbsid="wbsid" :onLoad1="onLoad1" :refreshTree="refreshTree"></Qute>
+    <Relation ref="Relation" :GLExcelFrom="GLExcelFrom" :wbsid="wbsid" :onLoad1="onLoad1"
+              :refreshTree="refreshTree"></Relation>
+    <!-- 分配Wbs -->
+    <allocateDialog ref="allocateRef"></allocateDialog>
+    <!-- 编辑元素 -->
     <!-- 编辑元素 -->
-       <!-- 编辑元素 -->
     <el-dialog
       title=" "
       :visible.sync="editElementVisible"
@@ -128,7 +133,7 @@
         :pid="editElementQuery.pid"
         :wbsid="editElementQuery.wbsid"
         :nodeid="editElementQuery.nodeid"
-         :initTableId="editElementQuery.initTableId"
+        :initTableId="editElementQuery.initTableId"
         @hideDialog="editElementVisible = false"
         @adjustExcel="adjustExcel"
         v-if="editElementVisible"
@@ -136,7 +141,7 @@
         :globaltype='1'
       ></EditElement>
     </el-dialog>
-      <!-- 调整表单模板 -->
+    <!-- 调整表单模板 -->
     <div v-if="excelHtml" class="excelHtml">
       <dynamicExcel
         @remove="removeExcel"
@@ -145,7 +150,7 @@
         :excelId="GLExcelFrom.excelId"
       />
     </div>
-<!-- 元素公式 -->
+    <!-- 元素公式 -->
     <el-dialog
       title="元素公式3"
       :visible.sync="editEleFormulaVisible"
@@ -162,10 +167,11 @@
           @clear="searchFormulaName"
         ></el-input>
         <el-button type="info" class="mg-l-10" @click="searchFormulaName"
-          >搜索</el-button
+        >搜索
+        </el-button
         >
       </div>
-        <el-table
+      <el-table
         :data="editEleListFilter"
         border
         style="width: 100%"
@@ -178,7 +184,8 @@
             <el-link
               :type="scope.row.globalFormula == 1 ? 'warning' : 'primary'"
               @click="toFormulaEdit(scope.row,1)"
-              >全局公式</el-link
+            >全局公式
+            </el-link
             >
             <!-- <el-link
               class="mg-l-10"
@@ -195,7 +202,7 @@
         </el-table-column>
       </el-table>
     </el-dialog>
-      <!-- 公式 -->
+    <!-- 公式 -->
     <el-dialog
       title="元素公式33"
       :visible.sync="formulaCompVisible"
@@ -205,8 +212,8 @@
       @close="closeformulaComp"
     >
       <FormulaEdit
-      :fromcurNode="curEleTable"
-       :initTableId='curTreeData.id'
+        :fromcurNode="curEleTable"
+        :initTableId='curTreeData.id'
         :wbsid="id"
         :nodeid="curTreeData.id"
         :eleid="formulaCurRow.id"
@@ -217,7 +224,7 @@
         v-if="formulaCompVisible"
       ></FormulaEdit>
     </el-dialog>
-      <!-- 排序弹框 -->
+    <!-- 排序弹框 -->
     <el-dialog
       title="调整排序"
       :visible.sync="sortTag"
@@ -225,24 +232,24 @@
 
       append-to-body
     >
-      <ManualSorting v-if="sortTag2" @bianhua="bianhua()" :sort="sort" />
+      <ManualSorting v-if="sortTag2" @bianhua="bianhua()" :sort="sort"/>
       <span slot="footer" class="dialog-footer">
         <el-button @click="(sortTag = false), (sortTag2 = false)"
-          >取 消</el-button
+        >取 消</el-button
         >
         <el-button type="primary" @click="editSort()">确 定</el-button>
       </span>
     </el-dialog>
-      <!-- 分配wbs -->
-  <allocateDialog ref="allocateRef" :projectId="projectid"  :wbsId="wbsid" :wbsType="wbsType" :id="formId"></allocateDialog>
-  
-  
-  
+    <!-- 分配wbs -->
+    <allocateDialog ref="allocateRef" :projectId="projectid" :wbsId="wbsid" :wbsType="wbsType"
+                    :id="formId"></allocateDialog>
+
+
   </div>
 </template>
 
 <script>
-import {tabTypeLazyTree,delAprojectTab} from "@/api/manager/wbsprivate";
+import {tabTypeLazyTree, delAprojectTab} from "@/api/manager/wbsprivate";
 import {selectPrivateFormElements} from "@/api/manager/wbstree";
 import {getTableElments} from "@/api/manager/wbstree";
 import {wbsInfotabSort} from "@/api/manager/wbsinfo";
@@ -256,11 +263,10 @@ import ManualSorting from '@/components/WbsTree/ManualSorting'
 import allocateDialog from "./allocateDialog.vue";//分配WBS
 
 
-
 export default {
-   components: { dynamicExcel, EditElement, Qute,Relation,FormulaEdit,ManualSorting,allocateDialog},
-  computed:{
-     ids () {
+  components: {dynamicExcel, EditElement, Qute, Relation, FormulaEdit, ManualSorting, allocateDialog},
+  computed: {
+    ids() {
       let ids = [];
       this.selectionList.forEach(ele => {
         ids.push(ele.primaryKeyId);
@@ -270,15 +276,15 @@ export default {
   },
   data() {
     return {
-      input3:'',
-      page:{
-        current:1,
-        size:10,
-        total:0
+      input3: '',
+      page: {
+        current: 1,
+        size: 10,
+        total: 0
       },
-      search:{},
-      loading:false,
-      tabloading:false,
+      search: {},
+      loading: false,
+      tabloading: false,
       dialogVisible: false,
       obj: {},
       data: [],
@@ -288,7 +294,7 @@ export default {
           return !data.hasChildren;
         },
       },
-      allTreeShow:false,//是否显示整棵树
+      allTreeShow: false,//是否显示整棵树
       loadData: [],
       loadData1: [
         {
@@ -316,8 +322,8 @@ export default {
         delBtn: false,
         addBtn: false,
         menu: true,
-        menuWidth:300,
-        searchShowBtn:true,
+        menuWidth: 300,
+        searchShowBtn: true,
 
         dialogClickModal: false,
         column: [
@@ -381,17 +387,17 @@ export default {
           },
         ],
       },
-      defaultExpandKey:[],//默认展开的节点
-      defaultCheckedKey:'',
-      selectionList:[],
+      defaultExpandKey: [],//默认展开的节点
+      defaultCheckedKey: '',
+      selectionList: [],
       GLExcelFrom: {
-          id: "",
-          name: "",
-          search: "", //搜素框舒服的值
-          ids: "",
-          excelId: "",
-          initTableName: "",
-          initTableId:'',
+        id: "",
+        name: "",
+        search: "", //搜素框舒服的值
+        ids: "",
+        excelId: "",
+        initTableName: "",
+        initTableId: '',
       },
       //编辑元素弹窗
       editElementVisible: false, //编辑元素弹框
@@ -404,7 +410,7 @@ export default {
         wbsid: "",
         nodeid: "",
       }, //
-      excelHtml:false,//调整表单
+      excelHtml: false,//调整表单
 
       //#region 调整表单
       adjustmentExcel: "",
@@ -414,42 +420,42 @@ export default {
       editEleListFilter: [],
       editEleListAll: [],
       formulaCurRow: {}, //当前元素
-      formulaCompVisible:false,
-        //#region公式
+      formulaCompVisible: false,
+      //#region公式
       id: "",
       curTreeData: {},
-      projectid:'',
-      treeId:"",
-      curNode:{},
+      projectid: '',
+      treeId: "",
+      curNode: {},
       sortTag: false,
       sortTag2: false,
-      sort:[],
-      allocatedialogVisible:false,//分配WBS弹窗
-      formId:''//分配WBS的表单Id
+      sort: [],
+      allocatedialogVisible: false,//分配WBS弹窗
+      formId: ''//分配WBS的表单Id
 
 
     };
   },
   created() {
-     this.projectid = this.$route.query.pid;
-     this.wbsid=this.$route.query.wbsid;
-     this.wbsType=this.$route.query.wbsType;
+    this.projectid = this.$route.query.pid;
+    this.wbsid = this.$route.query.wbsid;
+    this.wbsType = this.$route.query.wbsType;
   },
   methods: {
-      //关闭公式弹窗
-    closeformulaComp(){
+    //关闭公式弹窗
+    closeformulaComp() {
       console.log('关闭');
-        getTableElments(this.curEleTable.initTableId).then((res) => {
+      getTableElments(this.curEleTable.initTableId).then((res) => {
 
         this.editEleListFilter = res.data.data;
         this.editEleListAll = [].concat(this.editEleListFilter);
       })
 
     },
-    async sortpai(data,node) {
-      this.curNode=node;
-      this.curTreeData=data;
-      await this.findWbsTreePrivateSameLevel(node,data)
+    async sortpai(data, node) {
+      this.curNode = node;
+      this.curTreeData = data;
+      await this.findWbsTreePrivateSameLevel(node, data)
       this.sortTag = true;
       this.sortTag2 = true;
     },
@@ -464,184 +470,191 @@ export default {
     },
     async wbsInfotabSort() {
       //元素库、独立库节点排序
-      console.log(this.sort,'this.sort');
-     var newArr=this.sort.map((v)=>{return v.id})
-     newArr=newArr.join(',')
-      const { data: res } = await wbsInfotabSort(newArr);
+      console.log(this.sort, 'this.sort');
+      var newArr = this.sort.map((v) => {
+        return v.id
+      })
+      newArr = newArr.join(',')
+      const {data: res} = await wbsInfotabSort(newArr);
       if (res.code == 200) {
         this.$message.success('操作成功')
         this.sortTag = false;
         this.sortTag2 = false;
-        this. refreshTree();
+        this.refreshTree();
       }
     },
-    async findWbsTreePrivateSameLevel(node,data) {
-      const { data: res } =await tabTypeLazyTree({parentId:node.data.parentId,projectId:this.projectid,current:1,size:1000})
+    async findWbsTreePrivateSameLevel(node, data) {
+      const {data: res} = await tabTypeLazyTree({
+        parentId: node.data.parentId,
+        projectId: this.projectid,
+        current: 1,
+        size: 1000
+      })
       if (res.code == 200) {
-        console.log(res.data,'res1111111');
-        let tabArr=res.data.records
-        tabArr.forEach((item)=>{
-          item.tableName=item.title
+        console.log(res.data, 'res1111111');
+        let tabArr = res.data.records
+        tabArr.forEach((item) => {
+          item.tableName = item.title
         })
-        console.log(tabArr,'tabArr');
-        this.sort =tabArr
+        console.log(tabArr, 'tabArr');
+        this.sort = tabArr
       }
     },
-        //#region 接口
-    async tabTypeLazyTree (parentId, projectId,current,size,titleName) {//清表树
+    //#region 接口
+    async tabTypeLazyTree(parentId, projectId, current, size, titleName) {//清表树
       console.log(parentId, projectId);
-      this.loading=true;
-      const { data: res } = await tabTypeLazyTree({ parentId, projectId,current,size,titleName })
-       this.loading=false;
+      this.loading = true;
+      const {data: res} = await tabTypeLazyTree({parentId, projectId, current, size, titleName})
+      this.loading = false;
       if (res.code === 200) {
         return res.data;
       }
     },
     loadNode(node, resolve) {
       const parentId = (node.level === 0) ? 12345678910 : node.data.id;
-      this.tabTypeLazyTree(parentId,this.projectid,this.page.current,1000).then(res=>{
-        resolve(res.records.map(item=>{
-           return{
-              ...item,
+      this.tabTypeLazyTree(parentId, this.projectid, this.page.current, 1000).then(res => {
+        resolve(res.records.map(item => {
+          return {
+            ...item,
             leaf: !item.hasChildren
-           }
+          }
         }))
       })
     },
-    searchChange(){
-        if(this.treeId){
-          this.page.current=1;
-          this.page.currentPage=1
-          this.page.size=10;
-          this.onLoad2()
-          }else{
-            if(this.input3){
-                this.tabloading=true;
-                this.page.current=1;
-                this.page.currentPage=1
-                this.page.size=10;
-                this.tabTypeLazyTree(this.curTreeData.id, this.projectid, this.page.current,this.page.size,this.input3).then((res)=>{
-                console.log(res.records);
-                this.loadData=res.records;
-                this.page.total=res.total;
-                this.tabloading=false;
-                })
-            }else{
-              this.$message.warning('请输入你想搜索的表单名称')
-            }
-              
+    searchChange() {
+      if (this.treeId) {
+        this.page.current = 1;
+        this.page.currentPage = 1
+        this.page.size = 10;
+        this.onLoad2()
+      } else {
+        if (this.input3) {
+          this.tabloading = true;
+          this.page.current = 1;
+          this.page.currentPage = 1
+          this.page.size = 10;
+          this.tabTypeLazyTree(this.curTreeData.id, this.projectid, this.page.current, this.page.size, this.input3).then((res) => {
+            console.log(res.records);
+            this.loadData = res.records;
+            this.page.total = res.total;
+            this.tabloading = false;
+          })
+        } else {
+          this.$message.warning('请输入你想搜索的表单名称')
         }
-      
+
+      }
+
 
     },
-    currentChange (currentPage) {
-        this.page.current = currentPage;
-        
-        //  this.searchChange();
+    currentChange(currentPage) {
+      this.page.current = currentPage;
+
+      //  this.searchChange();
 
     },
-    sizeChange (pageSize) {
-        this.page.size = pageSize;
+    sizeChange(pageSize) {
+      this.page.size = pageSize;
     },
-    refreshChange () {
+    refreshChange() {
       this.searchChange();
 
     },
-    clearinput(){
+    clearinput() {
       this.searchChange()
-    
+
     },
-    onLoad2(){
+    onLoad2() {
 
-           if(this.curTreeData.hasChildren){
-            this.tabloading=true;
-            this.tabTypeLazyTree(this.curTreeData.id, this.projectid, this.page.current,this.page.size,this.input3).then((res)=>{
-            console.log(res.records);
-            this.loadData=res.records;
-            this.page.total=res.total;
-            this.tabloading=false;
-            })
-        }
-        if(this.curTreeData.hasChildren===false&&this.curNode.level==2){
-          this.tabloading=true;
-          let arr=[]
-            arr.push(this.curTreeData)
-            this.loadData=arr
-            this.page.total=1
-            setTimeout(() => {
-              this.tabloading=false
-
-            }, 1000);
-        }else{
-          this.tabloading=true;
-           this.loadData=[]
-           this.page.total=0;
-            setTimeout(() => {
-              this.tabloading=false
-
-            }, 1000);
-        }
+      if (this.curTreeData.hasChildren) {
+        this.tabloading = true;
+        this.tabTypeLazyTree(this.curTreeData.id, this.projectid, this.page.current, this.page.size, this.input3).then((res) => {
+          console.log(res.records);
+          this.loadData = res.records;
+          this.page.total = res.total;
+          this.tabloading = false;
+        })
+      }
+      if (this.curTreeData.hasChildren === false && this.curNode.level == 2) {
+        this.tabloading = true;
+        let arr = []
+        arr.push(this.curTreeData)
+        this.loadData = arr
+        this.page.total = 1
+        setTimeout(() => {
+          this.tabloading = false
+
+        }, 1000);
+      } else {
+        this.tabloading = true;
+        this.loadData = []
+        this.page.total = 0;
+        setTimeout(() => {
+          this.tabloading = false
+
+        }, 1000);
+      }
 
     },
-    onLoad1(){
-      if(this.curNode.level===1){
-        this.tabloading=true;
-         this.tabTypeLazyTree(this.curTreeData.id, this.projectid, this.page.current,this.page.size,this.input3).then((res)=>{
-          this.loadData=res.records
-           this.page.total=res.total
-           this.tabloading=false
+    onLoad1() {
+      if (this.curNode.level === 1) {
+        this.tabloading = true;
+        this.tabTypeLazyTree(this.curTreeData.id, this.projectid, this.page.current, this.page.size, this.input3).then((res) => {
+          this.loadData = res.records
+          this.page.total = res.total
+          this.tabloading = false
         })
-      }else{
-
-          this.tabTypeLazyTree(this.curTreeData.parentId, this.projectid, this.page.current,1000,this.input3).then((res)=>{
-           let faArr=res.records;
-           this.loadData=faArr.filter((item)=>{
-             if(item.id===this.treeId){
-               return item
-             }
-           })
+      } else {
+
+        this.tabTypeLazyTree(this.curTreeData.parentId, this.projectid, this.page.current, 1000, this.input3).then((res) => {
+          let faArr = res.records;
+          this.loadData = faArr.filter((item) => {
+            if (item.id === this.treeId) {
+              return item
+            }
           })
+        })
       }
     },
-     onLoad(page){
-        if(this.input3||this.treeId){
-           this.tabloading=true;
-           this.tabTypeLazyTree(this.treeId,this.projectid, page.currentPage,page.pageSize,this.input3).then((res)=>{
-            this.loadData=res.records
-            this.page.total=res.total
-            this.tabloading=false
+    onLoad(page) {
+      if (this.input3 || this.treeId) {
+        this.tabloading = true;
+        this.tabTypeLazyTree(this.treeId, this.projectid, page.currentPage, page.pageSize, this.input3).then((res) => {
+          this.loadData = res.records
+          this.page.total = res.total
+          this.tabloading = false
+
+        })
+      }
 
-          })
-        }
-        
     },
 
 
-    nodeClick (data,node) {//外层树结构
-        console.log(data,node,'treedata');
-        this.curNode=node
-        this.treeId=data.id
-        this.curTreeData=data;
-        this.page.current=1;
-        this.page.currentPage=1
-        console.log(this.page,'this.page111111');
-        if(data.hasChildren){
-          this.onLoad(this.page)
-        }
-        if(data.hasChildren===false&&node.level==2){
-          this.tabloading=true;
-          let arr=[]
-            arr.push(data)
-            this.loadData=arr
-            this.page.total=1
-            setTimeout(() => {
-              this.tabloading=false
-
-            }, 1000);
-        }else{
-           this.loadData=[]
-            this.page.total=0
-        }
+    nodeClick(data, node) {//外层树结构
+      console.log(data, node, 'treedata');
+      this.curNode = node
+      this.treeId = data.id
+      this.curTreeData = data;
+      this.page.current = 1;
+      this.page.currentPage = 1
+      console.log(this.page, 'this.page111111');
+      if (data.hasChildren) {
+        this.onLoad(this.page)
+      }
+      if (data.hasChildren === false && node.level == 2) {
+        this.tabloading = true;
+        let arr = []
+        arr.push(data)
+        this.loadData = arr
+        this.page.total = 1
+        setTimeout(() => {
+          this.tabloading = false
+
+        }, 1000);
+      } else {
+        this.loadData = []
+        this.page.total = 0
+      }
 
     },
 
@@ -650,15 +663,16 @@ export default {
         .then((_) => {
           done();
         })
-        .catch((_) => {});
+        .catch((_) => {
+        });
     },
     //引用元素表单库
-    quteEle(){
+    quteEle() {
       this.$refs.Qute.show();
 
     },
 
-    handleDelete () {
+    handleDelete() {
       if (this.selectionList.length === 0) {
         this.$message.warning("请选择至少一条数据");
         return;
@@ -669,11 +683,11 @@ export default {
         type: "warning"
       })
         .then(() => {
-        return delAprojectTab(this.ids,this.projectid);
+          return delAprojectTab(this.ids, this.projectid);
         })
         .then(() => {
-        this.onLoad1()
-        this.refreshTree()
+          this.onLoad1()
+          this.refreshTree()
           this.$message({
             type: "success",
             message: "操作成功!"
@@ -681,64 +695,64 @@ export default {
           this.$refs.crud.toggleSelection();
         });
     },
-    selectionChange (list) {
-    this.selectionList = list;
+    selectionChange(list) {
+      this.selectionList = list;
     },
-    selectionClear () {
+    selectionClear() {
       this.selectionList = [];
       this.$refs.crud.toggleSelection();
     },
     //关联清表
-     Associationlist(row) {
-       console.log('关联清表',row);
-       this.$refs.Relation.show()
+    Associationlist(row) {
+      console.log('关联清表', row);
+      this.$refs.Relation.show()
       // this.GLExcelFrom.name = row.title;
 
       this.GLExcelFrom.id = row.primaryKeyId;
-      this.GLExcelFrom.excelId =row.excelIds;
+      this.GLExcelFrom.excelId = row.excelIds;
       this.GLExcelFrom.ids = row.id;
-      this.GLExcelFrom.initTableName =row.initTableName;
-      this.GLExcelFrom.initTableId =row.initTableId;
-      this.GLExcelFrom.nodeid =this.curTreeData.id
+      this.GLExcelFrom.initTableName = row.initTableName;
+      this.GLExcelFrom.initTableId = row.initTableId;
+      this.GLExcelFrom.nodeid = this.curTreeData.id
 
 
     },
-       //#region 编辑元素
+    //#region 编辑元素
     async rightClick(row) {
-      console.log(row,'编辑元素');
+      console.log(row, '编辑元素');
       await this.getExcelHtml2(row.primaryKeyId);
       // console.log('编辑元素');
       this.editElementQuery.pkeyId = row.primaryKeyId;
       this.editElementQuery.excelId = row.excelIds;
       this.editElementQuery.id = row.id;
-      this.editElementQuery.initTableName =row. initTableName;
+      this.editElementQuery.initTableName = row.initTableName;
       this.editElementQuery.pid = this.$route.query.pid;
       this.editElementQuery.wbsid = this.$route.query.wbsid;
       this.editElementQuery.initTableId = row.initTableId;
       this.editElementQuery.nodeid = this.curTreeData.id;
-      this.curEleTable=row;
+      this.curEleTable = row;
       this.editElementVisible = true;
     },
     async getExcelHtml2(pkeyId) {
-      const { data: res } = await getExcelHtml({ pkeyId });
+      const {data: res} = await getExcelHtml({pkeyId});
       console.log(res);
       if (res.code === 200) {
         localStorage.setItem("editElement", res.data);
       }
     },
-      //#region 调整表单
-    adjustExcel(pkeyId,excelIds) {
-      console.log(pkeyId,'pkeyId');
-      this.excelHtml=false;
+    //#region 调整表单
+    adjustExcel(pkeyId, excelIds) {
+      console.log(pkeyId, 'pkeyId');
+      this.excelHtml = false;
       // //调整表单
       this.GLExcelFrom.id = pkeyId;
-      this.GLExcelFrom.excelId=excelIds
+      this.GLExcelFrom.excelId = excelIds
       this.getExcelHtml(pkeyId);
     },
     handleEditFormula(row) {
       this.curEleTable = row;
-        getTableElments(this.curEleTable.initTableId).then((res) => {
-      // selectFormElements(this.curEleTable.id).then((res) => {
+      getTableElments(this.curEleTable.initTableId).then((res) => {
+        // selectFormElements(this.curEleTable.id).then((res) => {
         this.editEleListFilter = res.data.data;
         this.editEleListAll = [].concat(this.editEleListFilter);
       });
@@ -750,8 +764,8 @@ export default {
         return ele.eName.indexOf(this.formulaInput) > -1;
       });
     },
-   async getExcelHtml(pkeyId) {
-      const { data: res } = await getExcelHtml({ pkeyId });
+    async getExcelHtml(pkeyId) {
+      const {data: res} = await getExcelHtml({pkeyId});
       console.log(res);
       if (res.code === 200) {
         localStorage.setItem("excelHtml", res.data);
@@ -762,47 +776,47 @@ export default {
     removeExcel() {
       this.excelHtml = false;
     },
-        //跳转到公式配置页面
-    toFormulaEdit(row,type) {
+    //跳转到公式配置页面
+    toFormulaEdit(row, type) {
       this.formulaCurRow = row;
       this.formulaCompVisible = true;
       this.formulaCurRow.globaltype = type;
-       this.formulaCurRow.elementType = true;
+      this.formulaCurRow.elementType = true;
     },
     //刷新左边树形数据
-      refreshTree(){
-        //刷新左边树形数据
-      if(this.curNode.level===1){
-         const parentId =12345678910
-        tabTypeLazyTree({parentId,projectId:this.projectid,current:1,size:1000}).then(res => {
-            this.data=res.data.data.records;
-             this.$nextTick(()=>{
-              this.defaultExpandKey.push(this.curNode.data.id);
-              this.$refs.trees.setCurrentKey(this.curNode.data.id);
-
-            })
+    refreshTree() {
+      //刷新左边树形数据
+      if (this.curNode.level === 1) {
+        const parentId = 12345678910
+        tabTypeLazyTree({parentId, projectId: this.projectid, current: 1, size: 1000}).then(res => {
+          this.data = res.data.data.records;
+          this.$nextTick(() => {
+            this.defaultExpandKey.push(this.curNode.data.id);
+            this.$refs.trees.setCurrentKey(this.curNode.data.id);
 
-          });
-      }else{
+          })
+
+        });
+      } else {
         this.updateTreeNewNode()
       }
     },
-     updateTreeNewNode() {
+    updateTreeNewNode() {
       tabTypeLazyTree(
-       {parentId:this.curTreeData.parentId,projectId:this.projectid,current:1,size:1000}
+        {parentId: this.curTreeData.parentId, projectId: this.projectid, current: 1, size: 1000}
       ).then((res) => {
         this.$refs.trees.updateKeyChildren(
-         this.curTreeData.parentId,
-         res.data.data.records
+          this.curTreeData.parentId,
+          res.data.data.records
         );
         this.$refs.trees.setCurrentKey(this.curNode.data.id);
       });
     },
     //分配WBS
-    allocatWbs(row){
-     this.$refs.allocateRef.show()
-     this.formId=row.id
-      
+    allocatWbs(row) {
+      this.$refs.allocateRef.show()
+      this.formId = row.id
+
     }
 
   },
@@ -813,7 +827,7 @@ export default {
 };
 </script>
 
-<style scoped lang="scss">
+<style lang="scss" scoped>
 //调整表单样式
 .excelHtml {
   position: absolute;
@@ -826,14 +840,14 @@ export default {
 .marleft10 {
   margin-left: 10px;
 }
-/deep/.el-tree-node__expand-icon {
+::v-deep .el-tree-node__expand-icon {
   font-size: 16px;
 }
 .colorblue {
   color: rgb(0, 82, 217);
 }
 
-.treecontent /deep/.el-scrollbar {
+.treecontent ::v-deep .el-scrollbar {
   height: 100%;
 }
 
@@ -844,7 +858,7 @@ export default {
 .rightHeader {
   display: flex;
   justify-content: flex-start;
-  align-items: top;
+  align-items: flex-start;
   font-size: 14px;
   background-color: #fff;
 
@@ -918,26 +932,26 @@ export default {
   box-sizing: border-box;
   padding-bottom: 10px;
 }
-/deep/.avue-crud__left{
+::v-deep .avue-crud__left {
   width: 65%;
 }
-/deep/.el-input-group__append{
-   background-color: #ecf5ff;
-    color: #409EFF;
+::v-deep .el-input-group__append {
+  background-color: #ecf5ff;
+  color: #409EFF;
 }
-/deep/.el-input-group__append:hover{
-   background-color: #409EFF;
-    color: white;
+::v-deep .el-input-group__append:hover {
+  background-color: #409EFF;
+  color: white;
 }
-/deep/.el-input-group__prepend:hover{
-  background-color:  #409EFF;
+::v-deep .el-input-group__prepend:hover {
+  background-color: #409EFF;
   color: white;
 }
-/deep/.el-input-group__append:active{
-   background-color: #9dc5ee;
-    color: white;
+::v-deep .el-input-group__append:active {
+  background-color: #9dc5ee;
+  color: white;
 }
-/deep/.el-input-group__prepend:active{
+::v-deep .el-input-group__prepend:active {
   background-color: #9dc5ee;
   color: white;
 }

+ 37 - 37
src/views/manager/projectinfo/qutediaolog/qute1.vue

@@ -6,10 +6,10 @@
     append-to-body
     destroy-on-close
     custom-class="flow-design-dialog"
-    
+
     >
-      
-      <div  class="flexStar" > 
+
+      <div  class="flexStar" >
         <div class="boxswai" style="width:30%;padding-left:0px;height:747px">
            <div class="boxnei" style="display: flex;flex-direction: column;">
              <div style="overflow: auto;flex:1">
@@ -41,8 +41,8 @@
               </div>
             </div>
      </div>
-    
-      
+
+
         <span slot="footer" class="dialog-footer">
             <el-button @click="dialogVisible = false">取 消</el-button>
             <el-button type="primary" @click="submitQute">确 定</el-button>
@@ -59,7 +59,7 @@ export default {
         dialogVisible:false,
         obj: {},
         treeData:[],
-       
+
         treeOption:{
           filter:false,
           addBtn:false,
@@ -82,8 +82,8 @@ export default {
                     leaf: !item.hasChildren
                   }
                 }))
-                
-              }); 
+
+              });
           },
         },
       selectionList:[],
@@ -94,7 +94,7 @@ export default {
           calcHeight: 30,
           tip: false,
           searchShow:false,
-         
+
           border: true,
           index: true,
           viewBtn: false,
@@ -103,7 +103,7 @@ export default {
           delBtn:false,
           addBtn:false,
           menu:false,
-        
+
           dialogClickModal: false,
          column: [
           {
@@ -165,7 +165,7 @@ export default {
             ],
           },
         ],
-       
+
         },
         page:{
           current:1,
@@ -175,7 +175,7 @@ export default {
         treeId:'',
         curTreedata:[],
         curTreeNode:{},
-        
+
      }
     },
     props:{
@@ -194,7 +194,7 @@ export default {
   },
     created(){
       //  this.loadData=this.loadData1;
-      
+
     },
 
 
@@ -208,8 +208,8 @@ export default {
           this.loading=false
         })
        }
-        
-      
+
+
     },
     selectionChange (list) {
       this.selectionList = list;
@@ -248,7 +248,7 @@ export default {
             this.page.total=1
             setTimeout(() => {
             this.loading=false
-              
+
             }, 1000);
         }else{
            this.loading=true
@@ -256,11 +256,11 @@ export default {
            this.page.total=0
            setTimeout(() => {
               this.loading=false
-              
+
             }, 1000);
         }
       }else{
-        //  this.$message.warning("请先选择左侧节点");  
+        //  this.$message.warning("请先选择左侧节点");
         if(this.input3){
            this.page.current=1;
           this.page.currentPage=1
@@ -271,11 +271,11 @@ export default {
           this.loading=false
           })
         }else{
-            this.$message.warning("请输入你想搜索的表单名称");  
+            this.$message.warning("请输入你想搜索的表单名称");
         }
-       
+
       }
-  
+
     },
     clearinput(){
       this.searchChange()
@@ -285,7 +285,7 @@ export default {
         this.tabTypeLazyTreeAll(this.treeId, this.page.current,this.page.size).then((res)=>{
           this.loadData=res.records
           this.page.total=res.total
-           
+
         })
     },
     async tabTypeLazyTreeAll ( parentId,current,size,titleName) {//清表树
@@ -294,7 +294,7 @@ export default {
       console.log(res,'tabTypeLazyTreeAll');
       if (res.code === 200) {
         return res.data
-        
+
       }
     },
     nodeClick(data,node){
@@ -323,7 +323,7 @@ export default {
            this.loadData=[]
             this.page.total=0
         }
-         
+
       },
     handleClose(done) {
         this.$confirm('确认关闭?')
@@ -336,7 +336,7 @@ export default {
         this.dialogVisible=true;
         this.treeId=''
         this.loadData=[]
-        
+
       },
     submitQute(){
         projecttabInfo(this.ids,this.projectid).then((res)=>{
@@ -353,22 +353,22 @@ export default {
           }
         })
       }
-    
+
     },
-    
-   
+
+
 }
 </script>
 
 <style  scoped lang="scss">
-/deep/.avue-crud__left{
+::v-deep.avue-crud__left{
   width: 75% !important;
 }
 .boxswai1 .boxnei {
     -webkit-box-sizing: border-box;
     box-sizing: border-box;
     width: 100%;
-    height: 100%; 
+    height: 100%;
     background-color: #fff;
     padding: 14px;
     border: 1px solid #ebeef5;
@@ -379,26 +379,26 @@ export default {
 }
 .tablesss{
   max-height: 600px !important;
-    
+
 }
-/deep/.el-input-group__append{
+::v-deep.el-input-group__append{
    background-color: #ecf5ff;
     color: #409EFF;
 }
-/deep/.el-input-group__append:hover{
+::v-deep.el-input-group__append:hover{
    background-color: #409EFF;
     color: white;
 }
-/deep/.el-input-group__prepend:hover{
+::v-deep.el-input-group__prepend:hover{
   background-color:  #409EFF;
   color: white;
 }
-/deep/.el-input-group__append:active{
+::v-deep.el-input-group__append:active{
    background-color: #9dc5ee;
     color: white;
 }
-/deep/.el-input-group__prepend:active{
+::v-deep.el-input-group__prepend:active{
   background-color: #9dc5ee;
   color: white;
 }
-</style>
+</style>

+ 2 - 2
src/views/manager/projectinfo/qutediaolog/relation.vue

@@ -277,7 +277,7 @@ export default {
                         this.GLExcelFrom.ids,
                         this.GLExcelFrom.initTableName,
                         this.GLExcelFrom.initTableId,
-                        this.GLExcelFrom.nodeid 
+                        this.GLExcelFrom.nodeid
                     );
                     }
                 } else {
@@ -294,7 +294,7 @@ export default {
 
 <style scoped lang="scss">
 .excelBox {
-  /deep/.el-dialog__body {
+  ::v-deep.el-dialog__body {
     padding: 20px;
   }
 }

+ 16 - 13
src/views/manager/projectinfo/tree.vue

@@ -440,7 +440,7 @@
                                                    @click="handlesync(scope.$index, scope.row)">表单同步
                                         </el-button>
                                         <el-button class="mg-l-10" type="text" :loading="handlesyncLoad"
-                                                   @click="handleLinkNodes(scope.$index, scope.row)" v-if="curTreeData.nodeType === 1000">关联节点
+                                                   @click="handleLinkNodes(scope.$index, scope.row)" v-if="curTreeData.nodeType === 1000 || curTreeData.nodeType === 1001">关联节点
                                         </el-button>
                                         <el-link class="mg-l-10" type="danger"
                                                  @click="handleDelete(scope.$index, scope.row)">删除表单
@@ -1605,8 +1605,8 @@
         <el-dialog title="关联节点" :visible="isLinkNodes" append-to-body center destroy-on-close
                    custom-class="hc-link-nodes-dialog" @close="linkNodesClose">
             <el-tree
-                ref="tree" class="hc-link-nodes-tree" lazy :load="loadNode" :props="defaultProps" show-checkbox check-strictly
-                :default-checked-keys="checkedLinkNodesKeys" highlight-current node-key="primaryKeyId" @check="linkNodesCheck"
+                ref="tree2" class="hc-link-nodes-tree" lazy :load="loadNode" :props="defaultProps" show-checkbox check-strictly
+                :default-checked-keys="checkedLinkNodesKeys" highlight-current node-key="primaryKeyId"
             />
             <span slot="footer" class="dialog-footer">
             <el-button @click="linkNodesClose">取 消</el-button>
@@ -2268,13 +2268,16 @@ export default {
                 this.checkedLinkNodesKeys = []
             })
         },
-        //关联节点被勾选
-        linkNodesCheck(_, {checkedKeys}) {
-            this.nodesCheck = checkedKeys
-        },
         //确定关联
         linkNodesSave() {
-            const keys = this.nodesCheck
+            const keys = this.$refs.tree2.getCheckedKeys()
+            if (keys.length<=0) {
+              this.$message({
+                type: "warning",
+                message: "请先勾选节点",
+              });
+              return
+            }
             const pkeyId = this.rowPkeyId
             this.linkNodesLoad = true
             linkNodeTree(keys.join(','), pkeyId).then(() => {
@@ -3931,7 +3934,7 @@ export default {
 </script>
 
 <style scoped lang="scss">
-.font-s-12 /deep/ .iconfont {
+.font-s-12 ::v-deep .iconfont {
     font-size: 12px;
 }
 .el-popper[x-placement^="bottom"] {
@@ -3957,7 +3960,7 @@ export default {
     }
 }
 .excelBox {
-    /deep/ .el-dialog__body {
+    ::v-deep .el-dialog__body {
         padding: 20px;
     }
 }
@@ -3971,7 +3974,7 @@ export default {
     height: 100%;
 }
 .jiedian {
-    /deep/ .el-dialog__body {
+    ::v-deep .el-dialog__body {
         padding: 10px 20px !important;
     }
 }
@@ -3981,12 +3984,12 @@ export default {
 }
 
 .full-dialog {
-    /deep/ .el-dialog__body {
+    ::v-deep .el-dialog__body {
         padding-bottom: 0;
         padding-top: 0;
     }
 
-    /deep/ .basic-container {
+    ::v-deep .basic-container {
         height: calc(100vh - 60px);
     }
 }

+ 109 - 82
src/views/manager/projectinfo/treeTemplate/dynamicExcel.vue

@@ -32,7 +32,9 @@
             @change="change"
           />
         </span>
-        <span v-else-if="type.prop==='tab2'"> <electronicSignature :pkeyId1='pkeyId' :htmlData1="htmlData" :excelId="excelId" @edit="signatureEdit"/> </span>
+        <span v-else-if="type.prop==='tab2'">
+          <electronicSignature :pkeyId1='pkeyId' :htmlData1="htmlData" :excelId="excelId" :times="timesTimeElement" @edit="signatureEdit" @timeFocus="timeElementFocus"/>
+        </span>
         <span v-else-if="type.prop==='tab3'"> <setFormula :pkeyId1='pkeyId' :htmlData1="htmlData"/> </span>
         <span v-else-if="type.prop==='tab4'"> <editDefault :pkeyId1='pkeyId' :htmlData1="htmlData"/> </span>
         <span v-else-if="type.prop==='tab5'"> <promptSettings :pkeyId1='pkeyId' :htmlData1="htmlData"/> </span>
@@ -50,7 +52,6 @@ import promptSettings from './template/promptSettings.vue'
 import Vue from 'vue'
 import {getExcelHtml} from '@/api/exctab/excelmodel'
 import {getSignDetail} from "@/api/manager/AdjustForm";
-import {f} from "vuedraggable/dist/vuedraggable.common";
 
 export default {
   props: ['pkeyId', 'excelId'],
@@ -88,7 +89,9 @@ export default {
       },
       checkList: [],
       checkNameList: [],
-      isSignatureEdit: false
+      isSignatureEdit: false,
+      isTimeElement: false,
+      timesTimeElement: {}
     }
   },
   mounted() {
@@ -237,97 +240,119 @@ export default {
     },
 
     getInformation(name, tr, td) {//鼠标点击事件
-      console.log(name, 'name')
-      let tdEle = null;
-      //获取TD元素
-      if (event.target.nodeName == "TD") {
-        tdEle = event.target
+      if (!this.isTimeElement) {
+        let tdEle = null;
+        //获取TD元素
+        if (event.target.nodeName === "TD") {
+          tdEle = event.target
+        } else {
+          tdEle = this.getParentTD(event.target);
+        }
+        let moreObj = {};
+        if (tdEle) {
+          moreObj = this.getWidget(tdEle);
+        }
+        this.htmlData = Object.assign({
+          name,
+          tr,
+          td
+        }, moreObj)
       } else {
-        tdEle = this.getParentTD(event.target);
-      }
-      let moreObj = {};
-      if (tdEle) {
-        moreObj = this.getWidget(tdEle);
+        this.$set(this.timesTimeElement, 'colName', name)
       }
-
-      this.htmlData = Object.assign({
-        name,
-        tr,
-        td
-      }, moreObj)
-
     },
     signatureEdit(data) {
       this.isSignatureEdit = data
     },
     //excel父节点点击检测
     async parentClick(e) {
-      let target = e.target;
-      const {metaKey, ctrlKey} = e
-      let bgs = document.querySelectorAll("#parent .oldlace-bg")
-      //console.log(bgs)
-      for (let i = 0; i < bgs.length; i++) {
-        bgs[i].classList.remove("oldlace-bg");
-      }
-      //console.log(target.getAttribute('trindex'))
-      let tdEle = this.getParentTD(target);
-      this.htmlData.dqid = tdEle ? tdEle.getAttribute('dqid') : ''
-      // const {data: res} = await getSignDetail({id: this.htmlData.dqid})
-      //   console.log(res,'res');
-      if (this.htmlData.dqid) {
-        if (this.type.prop === 'tab2' && this.isSignatureEdit) {
+      if (!this.isTimeElement) {
+        let target = e.target;
+        const {metaKey, ctrlKey} = e
+        let bgs = document.querySelectorAll("#parent .oldlace-bg")
+        //console.log(bgs)
+        for (let i = 0; i < bgs.length; i++) {
+          bgs[i].classList.remove("oldlace-bg");
+        }
+        //console.log(target.getAttribute('trindex'))
+        let tdEle = this.getParentTD(target);
+        this.htmlData.dqid = tdEle ? tdEle.getAttribute('dqid') : ''
+        // const {data: res} = await getSignDetail({id: this.htmlData.dqid})
+        //   console.log(res,'res');
+        if (this.htmlData.dqid) {
+          if (this.type.prop === 'tab2' && this.isSignatureEdit) {
+            this.htmlData.obj = null
+          } else {
+            const {data: res} = await getSignDetail({id: this.htmlData.dqid, tabId: this.pkeyId})
+            if (res.code === 200) {
+              this.htmlData.obj = res.data
+            }
+          }
+        } else {
           this.htmlData.obj = null
+        }
+        let target1
+        if (tdEle) {
+          let mydiv = tdEle.getElementsByTagName('div')
+          target1 = mydiv[0]
         } else {
-          const {data: res} = await getSignDetail({id: this.htmlData.dqid, tabId: this.pkeyId})
-          if (res.code === 200) {
-            this.htmlData.obj = res.data
+          tdEle = target
+          let mydiv = tdEle.getElementsByTagName('div')
+          target = mydiv[0]
+        }
+        let keyname = ''
+        try {
+          keyname = target.getAttribute('keyname') || target1.getAttribute('keyname')
+          // eslint-disable-next-line no-empty
+        } catch {
+        }
+        console.log('keyname', keyname)
+        this.htmlData.keyname = keyname
+        if (target.getAttribute('trindex') !== null && target.getAttribute('tdindex') || target1.getAttribute('trindex') !== null && target1.getAttribute('tdindex')) {
+          let tdEle = this.getParentTD(target);
+          if (tdEle) {
+            //橙色背景
+            target.classList.add("oldlace-bg");
+            if (metaKey || ctrlKey) {
+              target.classList.add("select-td");
+              this.checkNameList.push(this.htmlData)
+              this.checkList.push({
+                tr: target.getAttribute('trindex') || target1.getAttribute('trindex'),
+                td: target.getAttribute('tdindex') || target1.getAttribute('tdindex'),
+              })
+            } else {
+              target.classList.remove("select-td");
+              this.checkList.forEach((ele, index) => {
+                if (ele.tr === target.getAttribute('trindex') || ele.tr === target1.getAttribute('trindex')) {
+                  this.checkList.splice(index, 1)
+                }
+              })
+              this.checkNameList.forEach((ele, index) => {
+                if (this.htmlData.tr === ele.tr) {
+                  this.checkNameList.splice(index, 1)
+                }
+              })
+            }
           }
         }
       } else {
-        this.htmlData.obj = null
-      }
-      let target1
-      if (tdEle) {
-        let mydiv = tdEle.getElementsByTagName('div')
-        target1 = mydiv[0]
-      } else {
-        tdEle = target
-        let mydiv = tdEle.getElementsByTagName('div')
-        target = mydiv[0]
-      }
-      let keyname = ''
-      try {
-        keyname = target.getAttribute('keyname') || target1.getAttribute('keyname')
-        // eslint-disable-next-line no-empty
-      } catch { }
-      console.log('keyname', keyname)
-      this.htmlData.keyname = keyname
-      if (target.getAttribute('trindex') !== null && target.getAttribute('tdindex') || target1.getAttribute('trindex') !== null && target1.getAttribute('tdindex')) {
+        let target = e.target;
         let tdEle = this.getParentTD(target);
+        let target1
         if (tdEle) {
-          //橙色背景
-          target.classList.add("oldlace-bg");
-          if (metaKey || ctrlKey) {
-            target.classList.add("select-td");
-            this.checkNameList.push(this.htmlData)
-            this.checkList.push({
-              tr: target.getAttribute('trindex') || target1.getAttribute('trindex'),
-              td: target.getAttribute('tdindex') || target1.getAttribute('tdindex'),
-            })
-          } else {
-            target.classList.remove("select-td");
-            this.checkList.forEach((ele, index) => {
-              if (ele.tr === target.getAttribute('trindex') || ele.tr === target1.getAttribute('trindex')) {
-                this.checkList.splice(index, 1)
-              }
-            })
-            this.checkNameList.forEach((ele, index) => {
-              if (this.htmlData.tr === ele.tr) {
-                this.checkNameList.splice(index, 1)
-              }
-            })
-          }
+          let mydiv = tdEle.getElementsByTagName('div')
+          target1 = mydiv[0]
+        } else {
+          tdEle = target
+          let mydiv = tdEle.getElementsByTagName('div')
+          target = mydiv[0]
         }
+        let keyname = ''
+        try {
+          keyname = target.getAttribute('keyname') || target1.getAttribute('keyname')
+        } catch {}
+        this.$set(this.timesTimeElement, 'keyname', keyname)
+        console.log(this.timesTimeElement)
       }
     },
     getParentTD(ele) {
@@ -418,8 +443,10 @@ export default {
 
       return {};
     },
-
-
+    //是否为时间元素选择模式
+    timeElementFocus(val) {
+      this.isTimeElement = val
+    },
   },
   components: {
     setInputTPT,
@@ -493,10 +520,10 @@ export default {
 }
 
 .excelBox {
-  /deep/ .oldlace-bg {
+  ::v-deep .oldlace-bg {
     background-color: oldlace;
   }
-  /deep/ .select-td {
+  ::v-deep .select-td {
     border-width: 4px;
     border-color: #E6A23C;
     border-style: solid;

+ 67 - 5
src/views/manager/projectinfo/treeTemplate/template/electronicSignature.vue

@@ -40,6 +40,24 @@
           </el-select>
         </el-col>
       </el-row>
+      <el-row :span="24" v-if="signType==2">
+        <el-col :span="3.3" style="line-height: 40px">签字时间:</el-col>
+        <el-col :span="18">
+          <div style="height: 40px; display: flex; align-items: center">
+            <el-checkbox v-model="timesTimeElement.timeState" :true-label="1" :false-label="2">是否需要获取签字时间</el-checkbox>
+          </div>
+        </el-col>
+      </el-row>
+
+      <el-row :span="24" v-if="timesTimeElement.timeState === 1">
+        <el-col :span="3.3" style="line-height: 40px">时间元素:</el-col>
+        <el-col :span="14">
+          <el-input v-model="timesTimeElement.timeName" placeholder="请点击后,在左边选择元素" @focus="timeElementFocus"></el-input>
+        </el-col>
+        <el-col :span="3" style="margin-left: 5px">
+          <el-button type="primary" :disabled="!isTimeElement" @click="timeElementFinish">完成</el-button>
+        </el-col>
+      </el-row>
 
       <el-row :span="24" v-if="signType==6">
         <el-col :span="3.3" style="line-height: 40px">
@@ -102,6 +120,7 @@
         <tr>
           <th width='30%'>元素位置</th>
           <th width='30%'>签字岗位</th>
+          <th width='30%'>签字时间元素位置</th>
           <th width='10%'>偏移x</th>
           <th width='10%'>偏移y</th>
           <th width='20%'>操作</th>
@@ -111,6 +130,7 @@
         <tr v-for="(item,key) in setsignaTable" :key="key" v-on:click="">
           <td>{{ item.colName }}</td>
           <td>{{ item.sigRoleName }}</td>
+          <td>{{ item.timeName }}</td>
           <td>{{ item.pyzbx }}</td>
           <td>{{ item.pyzby }}</td>
           <td align="center">
@@ -137,12 +157,17 @@ import {
   getSignDetail
 } from "../../../../../api/manager/AdjustForm";
 import {findPfxType, getPriwbsPdf} from "../../../../../api/certificate/list";
+import {f} from "vuedraggable/dist/vuedraggable.common";
 
 export default {
-  props: ['pkeyId1', 'htmlData1', 'excelId'],
+  props: ['pkeyId1', 'htmlData1', 'excelId', 'times'],
   data() {
     return {
       radio: '',
+      isTimeElement: false,
+      timesTimeElement: {
+        timeState: 2,
+      },
       roleType: [],
       options: [],
       roleInfo: '',
@@ -230,6 +255,13 @@ export default {
           })
         }
       }
+    },
+    'times': {
+      handler(obj) {
+        this.$set(this.timesTimeElement, 'timeName', obj.colName)
+        this.$set(this.timesTimeElement, 'timeColKey', obj.keyname)
+      },
+      deep: true
     }
   },
   methods: {
@@ -358,6 +390,12 @@ export default {
       data.pyzbx = this.pyzbx;
       data.pyzby = this.pyzby;
 
+      //签字时间
+      const times = this.timesTimeElement
+      data.timeState = times.timeState || 2;
+      data.timeName = times.timeName;
+      data.timeColKey = times.timeColKey;
+
       try {
         this.setsignaTable.forEach(val => {
           if (val.colName == this.htmlData1.name) { // 位置只能添加一个
@@ -428,6 +466,12 @@ export default {
               }
             })
           }
+          //签字时间
+          this.timesTimeElement = {
+            timeState: obj.timeState || 2,
+            timeName: obj.timeName,
+            timeColKey: obj.timeColKey
+          }
         } else {
           this.radio = ''
           this.roleInfo = ''
@@ -435,6 +479,12 @@ export default {
           this.signType = ''
           this.pyzbx = 0
           this.pyzby = 0
+          //签字时间
+          this.timesTimeElement = {
+            timeState: 2,
+            timeName: '',
+            timeColKey: ''
+          }
         }
       }
       console.log(this.htmlData1, ' this.htmlData1111');
@@ -456,6 +506,10 @@ export default {
       obj.pyzby = this.pyzby
       obj.id = this.signId
       obj.isDeleted = this.isDeleted
+      const times = this.timesTimeElement
+      obj.timeState = times.timeState || 2
+      obj.timeName = times.timeName
+      obj.timeColKey = times.timeColKey
       if (this.signType == 2) {
         obj.parentRoleId = this.radio
         obj.sigRoleId = this.sigRoleId
@@ -476,7 +530,9 @@ export default {
           ele.tabId = obj.tabId
           ele.show = false
           ele.colName = this.htmlData1.name
-
+          ele.timeState = obj.timeState
+          ele.timeName = obj.timeName
+          ele.timeColKey = obj.timeColKey
         }
       })
       this.$nextTick(() => {
@@ -548,7 +604,15 @@ export default {
           ele.show = false
         })
       }
-    }
+    },
+    timeElementFocus() {
+      this.isTimeElement = true
+      this.$emit('timeFocus', true)
+    },
+    timeElementFinish() {
+      this.isTimeElement = false
+      this.$emit('timeFocus', false)
+    },
   },
   created() {
     this.getRoleType();  //获取文本类型接口
@@ -557,8 +621,6 @@ export default {
     console.log(this.htmlData1, 'html1');
 
   },
-
-
 }
 
 

+ 2 - 4
src/views/manager/projectinfo/treeTemplate/template/setFormula.vue

@@ -80,10 +80,8 @@ export default {
     border-radius: 5px;
     padding: 15px 20px;
   }
-  .switch {
-    /deep/.el-switch__label.is-active {
-      width: 60px;
-    }
+  .switch :deep(.el-switch__label.is-active ){
+    width: 60px;
   }
 }
 </style>

+ 45 - 44
src/views/manager/wbsinfo/edit.vue

@@ -1,6 +1,6 @@
 <template>
   <basic-container>
-     <el-row class="titlerow"> 
+     <el-row class="titlerow">
           <el-col style="margin-bottom:0px;margin-top:8px">
               <div style="position:relative" >
                   <!-- <el-button type="primary" size="medium" icon="el-icon-plus" class="mg-b-10" @click="addNodeHandle">新增节点</el-button>
@@ -11,7 +11,7 @@
                   <el-button class=" mg-b-10"  size="medium" icon="el-icon-s-grid" @click="eleFormulaHandle" v-if="leftType==5">元素公式设置</el-button>
                   <el-button class=" mg-b-10"  size="medium" icon="el-icon-s-grid" @click="eleHandle" v-else>元素设置</el-button>
                   <el-button class=" mg-b-10"  size="medium" icon="el-icon-help" @click="nodeInfoHandle">节点参数设置</el-button>
-               
+
               </div>
           </el-col>
       </el-row>
@@ -34,8 +34,8 @@
               inline-prompt
               active-text="按节点"
               inactive-text="按表名"
-             
-             
+
+
             />
             <el-button type="primary" @click="searchTreeClick">搜索</el-button>
           </div>
@@ -73,21 +73,21 @@
                               <i
                                 class="el-icon-menu "
                                 @click.stop="showMenu($event,data, node)"
-                               
-                              
+
+
                               ></i>
                             </el-link>
-                        
+
                         <!-- 因右键自定义菜单事件需要获取当前点击的位置,所以此处绑定动态样式来控制菜单实时跟踪鼠标右键点击位置 -->
                               <ul
                                 v-show="menuvisible"
                                 :style="{ left: menuleft + 'px', top: menutop + 'px' }"
                                 class="contextmenu"
                               >
-                                <li v-for="item in menusData" :key="item"  @click="menuClick($event,item,data)" v-if="node.level !== 1"> 
+                                <li v-for="item in menusData" :key="item"  @click="menuClick($event,item,data)" v-if="node.level !== 1">
                                       <i :class="item.icon"></i>{{item.label}}
                                 </li>
-                                <li v-for="item in menusData1" :key="item"  @click="menuClick($event,item,data)" v-if="node.level ===1"> 
+                                <li v-for="item in menusData1" :key="item"  @click="menuClick($event,item,data)" v-if="node.level ===1">
                                       <i :class="item.icon"></i>{{item.label}}
                                 </li>
                               </ul>
@@ -122,17 +122,17 @@
                                   class="el-icon-menu "
                                   @click.stop="showMenu($event,data, node)"
                                   v-if="node.level != 1"
-                                
+
                                 ></i>
                               </el-link>
-                          
-                       
+
+
                                 <ul
                                   v-show="menuvisible"
                                   :style="{ left: menuleft + 'px', top: menutop + 'px' }"
                                   class="contextmenu"
                                 >
-                                  <li v-for="item in menusData" :key="item"  @click="menuClick($event,item,data)"> 
+                                  <li v-for="item in menusData" :key="item"  @click="menuClick($event,item,data)">
                                         <i :class="item.icon"></i>{{item.label}}
                                   </li>
                                 </ul>
@@ -1135,16 +1135,17 @@
           align="center"
           prop="dynamicDict"
           label="动态字典"
-          
+
         >
           <template slot="header">
-           
+
             <span>动态字典</span>
           </template>
           <template slot-scope="scope">
             <el-select
               v-model="scope.row.dynamicDict"
               @change="setDefaultLength(scope.row)"
+              filterable
               size="small"
               placeholder="请选择"
             >
@@ -1209,7 +1210,7 @@
     </el-dialog>
 
     <el-dialog
-    
+
       :title="(curEleTable.tableName?curEleTable.tableName:'')+'  元素公式(WBS级)'"
       :visible.sync="editEleFormulaVisible"
       width="800px"
@@ -1353,7 +1354,7 @@
                 v-model="scope.row.k"
                 placeholder="请选择"
                 class="w-100p"
-              
+
               >
                 <el-option
                   v-for="item in namelist"
@@ -1820,9 +1821,9 @@ export default {
         {icon: 'el-icon-s-promotion', label: '编辑节点', key: "edit"},
         {icon: 'el-icon-sort', label: '排序节点', key: "sort"},
         {icon: 'el-icon-document-copy', label: '复制节点', key: "copy"},
-      
+
         {icon: 'el-icon-delete', label: '删除节点', key: "del"},
-      
+
       ],//树组件操作菜单
       menusData1:[{icon: 'el-icon-plus', label: '新增节点', key: "add"}],
       menuKey:'',
@@ -1962,7 +1963,7 @@ export default {
         type:this.searchType,
         wbsId:this.id,
         projectId:''
-        
+
         }).then((res)=>{
           let arr = [];
           if (Array.isArray(res.data.data)) {
@@ -1971,12 +1972,12 @@ export default {
           }else{
             this.searchTreeData=[]
           }
-        
+
         })
       }else{
         this.isSearch=false
       }
- 
+
       this.searchtreeLoad=false
     },
     clearSearch(){
@@ -1995,11 +1996,11 @@ export default {
         res.data.data.parentName = parentName;
         this.tableData = [res.data.data];
         this.nodeDetail = Object.assign({}, res.data.data);
- 
+
         if(this.menuKey==='add'){
           this.nodeDetail.nodeName=''
         }
-       
+
       })
       this.updateNodeTable();
 
@@ -2046,7 +2047,7 @@ export default {
       subobj.parentId=this.curTreeData.id
       subobj.parentName=this.curTreeData.title
 
-      
+
       update(subobj).then(() => {
         this.updateTreeNewNode();
         this.dialogVisible = false;
@@ -2098,12 +2099,12 @@ export default {
           this.nodeDetail = {
             parentId: res.data.data.id,
             parentName: data.title,
-          
+
           };
 
-        
+
         } else {
-         
+
           this.nodeDetail = Object.assign({}, res.data.data);
           this.mixRatioTestIds = this.toSplit(res.data.data.mixRatioTestIds)
         }
@@ -2454,7 +2455,7 @@ export default {
       // const newarr = [...checkedKeys, ...halfCheckedKeys]
       const newarr = [...checkedKeys]
       this.nodeDetail.mixRatioTestIds = this.toJoin(newarr)
-      
+
     },
     // filterChange () {
     //   if (this.treeData.length > 0) {
@@ -2612,9 +2613,9 @@ export default {
            this.formulaCurRow.elementType = false;
       }else{
           this.formulaCompVisible = true;
-         
+
       }
-    
+
     },
 
     getNodeTypelist () {
@@ -2636,8 +2637,8 @@ export default {
         {
           code='wbs_node_type'//质检
         }
-      } 
-     
+      }
+
       getDictionary({
         code
         // code: type === 2 ? 'trial_node_type':'wbs_node_type'
@@ -2766,7 +2767,7 @@ export default {
     //   if (!value) return true;
     //   return data.title.indexOf(value) !== -1;
     // },
-   
+
      getReturnNode(node,_array,value){
         let isPass = node.data &&  node.data.title && node.data.title.indexOf(value) !== -1;
         isPass?_array.push(isPass):'';
@@ -2814,7 +2815,7 @@ export default {
       let prams={
          nodeId: this.jiedianId,
           type: 0,
-          
+
       }
       refrehPram(prams).then((res)=>{
         console.log(res);
@@ -2931,8 +2932,8 @@ export default {
         if( Array.isArray(res.data)){
           this.nodeInfoTable = res.data
         }
-        
-       
+
+
       }
     },
     async saveOrUpdateBatch (da) {//保存
@@ -3098,7 +3099,7 @@ export default {
           }
         })
       }
-     
+
     },
 
     //保存关联
@@ -3179,7 +3180,7 @@ export default {
         }else{
           this.$message.warning('请先选择关联元素')
         }
-    
+
     },
 
     //筛选元素
@@ -3344,7 +3345,7 @@ export default {
           this.addNodeHandle()
           this.menuKey='add'
         }
-        
+
         else if(item.key==='edit'){
           this.editNodeHandle()
           this.menuKey='edit'
@@ -3377,7 +3378,7 @@ export default {
   min-width: 100%;
   display: inline-block;
 }
-.font-s-12 /deep/ .iconfont {
+.font-s-12 ::v-deep .iconfont {
   font-size: 12px;
 }
 .el-popper[x-placement^="bottom"] {
@@ -3403,7 +3404,7 @@ export default {
   }
 }
 .jiedian {
-  /deep/.el-dialog__body {
+  ::v-deep.el-dialog__body {
     padding: 10px 20px !important;
   }
 }
@@ -3413,11 +3414,11 @@ export default {
 }
 
 .full-dialog{
-  /deep/ .el-dialog__body{
+  ::v-deep .el-dialog__body{
     padding-bottom: 0;
   }
 
-  /deep/ .basic-container{
+  ::v-deep .basic-container{
     height: calc(100vh - 60px);
   }
 }

+ 10 - 10
src/views/manager/wbsinfo/element.vue

@@ -1002,7 +1002,7 @@ export default {
       }else{
           this.$message.warning("请输入你想搜索的表单名称");
       }
-         
+
       }
 
     },
@@ -1123,7 +1123,7 @@ export default {
     },
     //分配节点
     distribution(row){
-   
+
       this.from.id=row.id;
       this.from.title=row.title;
       this.from.tableType=row.tabType
@@ -1423,14 +1423,14 @@ export default {
 .marleft10 {
   margin-left: 10px;
 }
-/deep/.el-tree-node__expand-icon {
+::v-deep.el-tree-node__expand-icon {
   font-size: 16px;
 }
 .colorblue {
   color: rgb(0, 82, 217);
 }
 
-.treecontent /deep/.el-scrollbar {
+.treecontent ::v-deep.el-scrollbar {
   height: 100%;
 }
 
@@ -1515,27 +1515,27 @@ export default {
   box-sizing: border-box;
   padding-bottom: 10px;
 }
-/deep/.avue-crud__left{
+::v-deep.avue-crud__left{
   width: 65% !important;
 }
-/deep/.el-input-group__append{
+::v-deep.el-input-group__append{
    background-color: #ecf5ff;
     color: #409EFF;
 
 }
-/deep/.el-input-group__append:hover{
+::v-deep.el-input-group__append:hover{
    background-color: #409EFF;
     color: white;
 }
-/deep/.el-input-group__prepend:hover{
+::v-deep.el-input-group__prepend:hover{
   background-color:  #409EFF;
   color: white;
 }
-/deep/.el-input-group__append:active{
+::v-deep.el-input-group__append:active{
    background-color: #9dc5ee;
     color: white;
 }
-/deep/.el-input-group__prepend:active{
+::v-deep.el-input-group__prepend:active{
   background-color: #9dc5ee;
   color: white;
 }

+ 2 - 2
src/views/tentative/components/dataMap.vue

@@ -440,13 +440,13 @@ export default{
 
 
 .parent{
-  /deep/ .select-td{
+  ::v-deep .select-td{
     border-width: 4px;
     border-color: #E6A23C;
     border-style: solid;
   }
 
-  /deep/ .oldlace-bg{
+  ::v-deep .oldlace-bg{
     background-color: oldlace;
   }
 }

+ 16 - 16
src/views/wel/index.vue

@@ -199,9 +199,9 @@
                       <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAQhJREFUOE+lkzFOAzEURN8cASkSoUqOETroOAI3oEgBHekiOuiggxtwBDrSwS2AiiBRcIOJHNmrv85KVsRWu9/2+/4zs+Kfj+rztl+Bk6r+Lul4qFcHsD0BPoGFpLu42fYlcA9MJX3FtQgwcCRpPdTJ9hj4ltS79fbD9hvwLOmhHLZ9mN4l/YTaNXAm6bTUCsA12fYyA26qcXp7dwC2R8A8CLkCHstNbDcBadaLCvBUtGkCwrx7jZC8f4n2ZdWTiJ0r2c7zmInaxnFUvRIvubIetDFbOQU+gKtoZ15L9t1mYK/JUJRTJmZVmFbJ+xImoIPsAFr/VoAcSPrbG5BHGkn63Qat1bG1vgHcfowRy9YlxwAAAABJRU5ErkJggg=="
                       style="margin: 40px 0 0 40px;">
                     </div>
-                    <el-image 
+                    <el-image
                       style="width: 100px; height: 100px;border-radius: 4px;"
-                      :src="item" 
+                      :src="item"
                       :preview-src-list="curNew.fileUrl">
                     </el-image>
                   </div>
@@ -449,7 +449,7 @@ export default {
       await this.queryProjectPfx();
       const line = new Area('container', {
         data: this.LineData,
-        
+
         xField: 'project',
         yField: 'value',
         seriesField: 'category',
@@ -463,10 +463,10 @@ export default {
         },
 
         autoFit:true,
-     
- 
+
+
         xAxis:{
-        
+
            label: {
             offset: 55, // 设置坐标轴文本 label 距离坐标轴线的距离
 
@@ -477,8 +477,8 @@ export default {
               fontWeight: 'bold', // 文本粗细
               rotate: 20,
               textBaseline: 'bottom' // 文本基准线,可取 top middle bottom,默认为middle
-              
-              
+
+
             }, // 文本样式,支持回调
             autoRotate: true, // 是否需要自动旋转,默认为 true
             autoHide:false,
@@ -486,9 +486,9 @@ export default {
             autoFit:false,
             rotate: 1,
             autoEllipsis: true,
-           
+
           },
-        
+
 
         }
       });
@@ -514,7 +514,7 @@ export default {
             // 数据标签文颜色自动调整
             { type: 'adjust-color' },
           ],
-      
+
         },
         legend: {
           position: 'top-left',
@@ -538,7 +538,7 @@ export default {
               fontWeight: 'bold', // 文本粗细
               rotate: 30,
               textBaseline: 'top' // 文本基准线,可取 top middle bottom,默认为middle
-              
+
             }, // 文本样式,支持回调
             autoRotate: true, // 是否需要自动旋转,默认为 true
             autoHide:false,
@@ -652,14 +652,14 @@ export default {
 .el-collapse {
   border: none;
 }
-/deep/.el-collapse-item__header {
+::v-deep.el-collapse-item__header {
   background-color: #faf8fd;
   border-bottom: none;
   box-sizing: border-box;
   padding-left: 20px;
   color: red;
 }
-/deep/.el-collapse-item__content {
+::v-deep.el-collapse-item__content {
   background-color: #f7f7f7;
   box-sizing: border-box;
   padding-left: 20px;
@@ -728,7 +728,7 @@ export default {
 }
 
 .index-select{
-  /deep/.el-input__inner{
+  ::v-deep.el-input__inner{
     border: none;
     background-color: #F7F9FD;
     border-radius: 64px;
@@ -736,7 +736,7 @@ export default {
 }
 
 .my-dialog{
-  /deep/.el-dialog__body{
+  ::v-deep.el-dialog__body{
     padding: 0 20px;
   }
 }

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 420 - 412
yarn.lock


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است