浏览代码

Merge branch 'master' into test-dev

duy 2 月之前
父节点
当前提交
4b101857ad

+ 55 - 0
src/views/manager/archivetree.vue

@@ -339,7 +339,23 @@
               ></el-option>
             </el-select>
           </el-form-item>
+          <el-form-item
+              label="并卷规则"
+              prop="archiveAutoType"
+            >
+              <el-select
 
+                v-model="form.archiveAutoType"
+                style="width:400px;"
+              >
+                <el-option
+                  v-for="item in ruleTypeList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
           <el-form-item
             label="储存类型"
             prop="storageType"
@@ -377,7 +393,25 @@
                 ></el-option>
               </el-select>
             </el-form-item>
+           
             <template v-if="form.isStorageNode==1">
+              <el-form-item
+              label="保管期限"
+              prop="storageTime"
+            >
+              <el-select
+
+                v-model="form.storageTime"
+                style="width:400px;"
+              >
+                <el-option
+                  v-for="item in timeList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
               <el-form-item
                 label="储存类型"
                 prop="storageType"
@@ -731,6 +765,8 @@ export default {
         projectType:'',//工程类型
         storageType:'',//储存类型
         expDataType:[],//文件类型
+        archiveAutoType:1,//并卷规则
+        storageTime:'3',//保管期限
       },
       rules: {
         nodeName: [{ required: true, message: '请输入节点名称', trigger: 'blur' }],
@@ -806,6 +842,24 @@ export default {
         label: '否',
         value: 2
       },],//存储节点枚举
+      ruleTypeList: [
+      {
+        label: '单独组卷',
+        value: 1
+      }, {
+        label: '分类并卷',
+        value: 2
+      },
+      {
+        label: '最高组卷',
+        value: 3
+      },
+      ],
+      timeList: [
+      { label: '永久', value: '3' },
+    { label: '30年', value: '2' },
+    { label: '10年', value: '1' },
+      ],
       builtDrawingList: [{
         label: '是',
         value: 1
@@ -1252,6 +1306,7 @@ export default {
       if (this.filterText) {
         this.defaultExpanded = [data.id]
       }
+      this.form.archiveAutoType=1
       this.treeTap = true
     },
     async edittree (data,node) {//编辑树

+ 24 - 23
src/views/manager/contractinfo/detail.vue

@@ -355,7 +355,7 @@
                       </el-form-item>
                     </el-col>
                     <el-col :span="12">
-                      <el-form-item
+                      <!-- <el-form-item
                         label="保管期限"
                         prop="storagePeriod"
                       >
@@ -371,6 +371,14 @@
                             :value="item.dictKey"
                           ></el-option>
                         </el-select>
+                      </el-form-item> -->
+                      <el-form-item
+                        label="卷盒规格"
+                        prop="specification"
+                      >
+                      <el-select v-model="contractForm.specification" clearable placeholder="请选择" style="width:100%">
+                                <el-option v-for="item in coilsize" :key="item.value" :label="item.label" :value="item.value" />
+                            </el-select>
                       </el-form-item>
                     </el-col>
                   </el-row>
@@ -413,7 +421,7 @@
                       </el-form-item>
                     </el-col>
                     <el-col :span="12">
-
+                     
                     </el-col>
                   </el-row>
                 </el-col>
@@ -1021,7 +1029,13 @@ export default {
         middlePayRatio:null,
         sevenRatio: null,
         twentyEightRatio: null,
-      }//计量合同段管理相关信息
+
+      },//计量合同段管理相关信息
+      coilsize:[
+          { label: '30mm', value: '30' },
+          { label: '40mm', value: '40' },
+          { label: '50mm', value: '50' },
+      ]
     }
   },
   computed: {
@@ -1142,7 +1156,7 @@ export default {
         this.activeType = this.$route.query.type;
       }
 
-      this.getStoragePeriodList();//获取业务字典
+     
       this.getSecurityLevelList();//获取安全等级
       this.setHeaders();
     },
@@ -1237,9 +1251,9 @@ export default {
           if (Number(this.contractForm.securityLevel) < 0) {
             this.contractForm.securityLevel = 0;
           }
-          if (Number(this.contractForm.storagePeriod) < 0) {
-            this.contractForm.storagePeriod = 0;
-          }
+          // if (Number(this.contractForm.storagePeriod) < 0) {
+          //   this.contractForm.storagePeriod = 0;
+          // }
 
             this.meterContractInfo = this.contractForm.meterContractInfo
             ||{
@@ -1302,9 +1316,9 @@ export default {
           if (Number(this.contractForm.securityLevel) < 0) {
             this.contractForm.securityLevel = 0;
           }
-          if (Number(this.contractForm.storagePeriod) < 0) {
-            this.contractForm.storagePeriod = 0;
-          }
+          // if (Number(this.contractForm.storagePeriod) < 0) {
+          //   this.contractForm.storagePeriod = 0;
+          // }
 
           this.meterContractInfo=res.data.data.meterContractInfo
             ||{
@@ -1703,19 +1717,6 @@ export default {
       this.$refs['contractForm'].validateField('projectPlace');
     },
 
-    getStoragePeriodList() {
-      if (this.storagePeriodList.length > 1) {
-        return;
-      }
-      getDictbiz({
-        code: 'storage_period'
-      }).then((res) => {
-        res.data.data.forEach(element => {
-          element.dictKey = Number(element.dictKey)
-        });
-        this.storagePeriodList = res.data.data;
-      })
-    },
     getSecurityLevelList() {
       if (this.securityLevelList.length > 1) {
         return;

+ 150 - 59
src/views/manager/projectinfo/archivetreeRule.vue

@@ -60,12 +60,24 @@
                           <div class="normal-black ">
                                 <div >
                                     <el-link :underline="false">
-                                      <i
-                                        class="el-icon-menu "
-                                        @click.stop="showMenu($event,data, node)"
-                                        v-if="node.level != 1"
-
-                                      ></i>
+                                      <el-tooltip placement="right" effect="light" >
+                                            <div slot="content">
+                                              <ul
+                                            class="contextmenu"
+                                            >
+                                                <li v-for="item in menusData" :key="item"  @click="menuClick($event,item,data,node)">
+                                                    <i :class="item.icon"></i>
+                                                    <span>{{item.label}}</span>
+                                                </li>
+                                            </ul>
+                                            </div>
+                                          <i
+                                            class="el-icon-menu "
+                                        
+                                            v-if="node.level != 1"
+
+                                          ></i>
+                                      </el-tooltip>
                                       <i
                                         class="el-icon-refresh"
                                         @click="synctree(data, node)"
@@ -75,21 +87,7 @@
                                     </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,node)">
-                                            <i :class="item.icon"></i>
-                                            <span>{{item.label}}</span>
-                                        </li>
-
-
-
-                                    </ul>
+                            
                                 </div>
 
                               </div>
@@ -127,7 +125,7 @@
                             </el-tooltip>
 
 
-                          <span
+                            <span
                             class="marleft10"
                             v-show="data.moreShow"
 
@@ -135,12 +133,24 @@
                           <div class="normal-black ">
                                 <div >
                                     <el-link :underline="false">
-                                      <i
-                                        class="el-icon-menu "
-                                        @click.stop="showMenu($event,data, node)"
-                                        v-if="node.level != 1"
-
-                                      ></i>
+                                      <el-tooltip placement="right" effect="light" >
+                                            <div slot="content">
+                                              <ul
+                                            class="contextmenu"
+                                            >
+                                                <li v-for="item in menusData" :key="item"  @click="menuClick($event,item,data,node)">
+                                                    <i :class="item.icon"></i>
+                                                    <span>{{item.label}}</span>
+                                                </li>
+                                            </ul>
+                                            </div>
+                                          <i
+                                            class="el-icon-menu "
+                                        
+                                            v-if="node.level != 1"
+
+                                          ></i>
+                                      </el-tooltip>
                                       <i
                                         class="el-icon-refresh"
                                         @click="synctree(data, node)"
@@ -148,19 +158,11 @@
 
                                       ></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,node)">
-                                            <i :class="item.icon"></i>
-                                            <span>{{item.label}}</span>
-                                      </li>
-
-                                    </ul>
+
+
+                            
                                 </div>
+
                               </div>
                           </span>
                         </span>
@@ -341,7 +343,23 @@
               ></el-option>
             </el-select>
           </el-form-item>
+          <el-form-item
+              label="并卷规则"
+              prop="archiveAutoType"
+            >
+              <el-select
 
+                v-model="form.archiveAutoType"
+                style="width:400px;"
+              >
+                <el-option
+                  v-for="item in ruleTypeList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
           <el-form-item
             label="储存类型"
             prop="storageType"
@@ -379,7 +397,25 @@
                 ></el-option>
               </el-select>
             </el-form-item>
+         
             <template v-if="form.isStorageNode==1">
+              <el-form-item
+              label="保管期限"
+              prop="storageTime"
+            >
+              <el-select
+
+                v-model="form.storageTime"
+                style="width:400px;"
+              >
+                <el-option
+                  v-for="item in timeList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
               <el-form-item
                 label="储存类型"
                 prop="storageType"
@@ -731,7 +767,9 @@ export default {
         projectType:'',//工程类型
         storageType:'',//储存类型
         expDataTypes:[],//文件类型
-        contractLogTypes: []
+        contractLogTypes: [],
+        storageTime:'3',
+        archiveAutoType:1,//并卷规则
       },
       rules: {
         nodeName: [{ required: true, message: '请输入节点名称', trigger: 'blur' }],
@@ -800,7 +838,26 @@ export default {
           label: '变更令',
           value: 9
         },
-      ],//储存类型枚举
+      ],
+      ruleTypeList: [
+      {
+        label: '单独组卷',
+        value: 1
+      }, {
+        label: '分类并卷',
+        value: 2
+      },
+      {
+        label: '最高组卷',
+        value: 3
+      },
+      ],
+      timeList: [
+      { label: '永久', value: '3' },
+        { label: '30年', value: '2' },
+        { label: '10年', value: '1' },
+      ],
+      //储存类型枚举
       storageNodeList: [{
         label: '是',
         value: 1
@@ -854,7 +911,7 @@ export default {
           value: 6
         },
       ],//
-
+ 
       fileTypeList:[
         {
           label: '配合比',
@@ -1188,7 +1245,7 @@ export default {
     mouseLeave (data) {
       if (data.moreShow) {
         this.$set(data, 'moreShow', false)
-        this.menuvisible=false
+        // this.menuvisible=false
       }
     },
     mouseOver (data) {
@@ -1254,6 +1311,7 @@ export default {
       }
       this.form.contractLogTypes = []
       this.form.expDataTypes = []
+      this.form.archiveAutoType=1
       this.treeTap = true
     },
     async edittree (data,node) {//编辑树
@@ -1816,8 +1874,8 @@ export default {
     },
     //展示菜单
     showMenu(e,data,node){
-      e.preventDefault();
-      console.log(e,'e');
+      // e.preventDefault();
+      // console.log(e,'e');
       var x = e.pageX; //这个应该是相对于整个浏览器页面的x坐标,左上角为坐标原点(0,0)
       var y = e.pageY; //这个应该是相对于整个浏览器页面的y坐标,左上角为坐标原点(0,0)
       this.menutop = y-70;
@@ -1978,27 +2036,60 @@ export default {
   font-size: s;
 
 }
-
+.el-tooltip__popper .contextmenu {
+  margin: -12px;  /* 抵消 Tooltip 的默认内边距 */
+}
 .contextmenu {
+  padding: 4px 0;  /* 添加适当的内边距 */
+  // min-width: 120px;
+}
+
+.contextmenu ul {
+  list-style: none;  /* 移除小圆点 */
+  padding: 0;
   margin: 0;
+  // min-width: 80px;
   background: #fff;
-  z-index: 1000;
-  position: fixed; //关键样式设置固定定位
-  list-style-type: none;
-  padding: 5px 0;
+  border: 1px solid #e4e7ed;
   border-radius: 4px;
-  font-size: 12px;
-  font-weight: 400;
-  color: #333;
-  box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3);
+  box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
 }
+
+
 .contextmenu li {
-  margin: 0;
-  padding: 7px 16px;
+  padding: 8px 16px;
+  line-height: 22px;
+  display: flex;
+  align-items: center;
   cursor: pointer;
+  transition: all 0.3s;
 }
-.contextmenu li:hover {
-  background: #eee;
+
+
+.contextmenu li i {
+  margin-right: 8px;
+  font-size: 16px;
+}
+
+
+.contextmenu li span {
+  font-size: 14px;
+  color: #606266;
+}
+
+
+.contextmenu li:hover,
+.contextmenu li.active {
+  background-color: #f5f7fa;
+  color: #409eff;
+}
+
+
+.contextmenu li.divider {
+  height: 1px;
+  background-color: #e4e7ed;
+  margin: 4px 0;
+  padding: 0;
 }
 .config_type{
   display: inline-block;