优化代码
This commit is contained in:
		
							parent
							
								
									42bb8f6445
								
							
						
					
					
						commit
						966a17123f
					
				| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
如果使用的是RuoYi-Vue3前端,那么需要覆盖一下此目录的模板index.vue.vm、index-tree.vue.vm文件到上级vue目录。
 | 
					 | 
				
			||||||
| 
						 | 
					@ -11,14 +11,14 @@ import ThemePicker from "@/components/ThemePicker";
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  name: "App",
 | 
					  name: "App",
 | 
				
			||||||
  components: { ThemePicker },
 | 
					  components: { ThemePicker },
 | 
				
			||||||
    metaInfo() {
 | 
					  metaInfo() {
 | 
				
			||||||
        return {
 | 
					    return {
 | 
				
			||||||
            title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
 | 
					      title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
 | 
				
			||||||
            titleTemplate: title => {
 | 
					      titleTemplate: title => {
 | 
				
			||||||
                return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
 | 
					        return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
 | 
				
			||||||
            }
 | 
					      }
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
<style scoped>
 | 
					<style scoped>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -168,7 +168,7 @@ export default {
 | 
				
			||||||
    // 删除图片
 | 
					    // 删除图片
 | 
				
			||||||
    handleDelete(file) {
 | 
					    handleDelete(file) {
 | 
				
			||||||
      const findex = this.fileList.map(f => f.name).indexOf(file.name);
 | 
					      const findex = this.fileList.map(f => f.name).indexOf(file.name);
 | 
				
			||||||
      if(findex > -1) {
 | 
					      if (findex > -1) {
 | 
				
			||||||
        this.fileList.splice(findex, 1);
 | 
					        this.fileList.splice(findex, 1);
 | 
				
			||||||
        this.$emit("input", this.listToString(this.fileList));
 | 
					        this.$emit("input", this.listToString(this.fileList));
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,9 +57,9 @@ export default {
 | 
				
			||||||
        if (menu.hidden !== true) {
 | 
					        if (menu.hidden !== true) {
 | 
				
			||||||
          // 兼容顶部栏一级菜单内部跳转
 | 
					          // 兼容顶部栏一级菜单内部跳转
 | 
				
			||||||
          if (menu.path === "/") {
 | 
					          if (menu.path === "/") {
 | 
				
			||||||
              topMenus.push(menu.children[0]);
 | 
					            topMenus.push(menu.children[0]);
 | 
				
			||||||
          } else {
 | 
					          } else {
 | 
				
			||||||
              topMenus.push(menu);
 | 
					            topMenus.push(menu);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,34 +1,34 @@
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
* v-dialogDragWidth 可拖动弹窗高度(右下角)
 | 
					 * v-dialogDragWidth 可拖动弹窗高度(右下角)
 | 
				
			||||||
* Copyright (c) 2019 ruoyi
 | 
					 * Copyright (c) 2019 ruoyi
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
    bind(el) {
 | 
					  bind(el) {
 | 
				
			||||||
        const dragDom = el.querySelector('.el-dialog');
 | 
					    const dragDom = el.querySelector('.el-dialog');
 | 
				
			||||||
        const lineEl = document.createElement('div');
 | 
					    const lineEl = document.createElement('div');
 | 
				
			||||||
        lineEl.style = 'width: 6px; background: inherit; height: 10px; position: absolute; right: 0; bottom: 0; margin: auto; z-index: 1; cursor: nwse-resize;';
 | 
					    lineEl.style = 'width: 6px; background: inherit; height: 10px; position: absolute; right: 0; bottom: 0; margin: auto; z-index: 1; cursor: nwse-resize;';
 | 
				
			||||||
        lineEl.addEventListener('mousedown',
 | 
					    lineEl.addEventListener('mousedown',
 | 
				
			||||||
            function(e) {
 | 
					      function(e) {
 | 
				
			||||||
                // 鼠标按下,计算当前元素距离可视区的距离
 | 
					        // 鼠标按下,计算当前元素距离可视区的距离
 | 
				
			||||||
                const disX = e.clientX - el.offsetLeft;
 | 
					        const disX = e.clientX - el.offsetLeft;
 | 
				
			||||||
                const disY = e.clientY - el.offsetTop;
 | 
					        const disY = e.clientY - el.offsetTop;
 | 
				
			||||||
                // 当前宽度 高度
 | 
					        // 当前宽度 高度
 | 
				
			||||||
                const curWidth = dragDom.offsetWidth;
 | 
					        const curWidth = dragDom.offsetWidth;
 | 
				
			||||||
                const curHeight = dragDom.offsetHeight;
 | 
					        const curHeight = dragDom.offsetHeight;
 | 
				
			||||||
                document.onmousemove = function(e) {
 | 
					        document.onmousemove = function(e) {
 | 
				
			||||||
                    e.preventDefault(); // 移动时禁用默认事件
 | 
					          e.preventDefault(); // 移动时禁用默认事件
 | 
				
			||||||
                    // 通过事件委托,计算移动的距离
 | 
					          // 通过事件委托,计算移动的距离
 | 
				
			||||||
                    const xl = e.clientX - disX;
 | 
					          const xl = e.clientX - disX;
 | 
				
			||||||
                    const yl = e.clientY - disY
 | 
					          const yl = e.clientY - disY
 | 
				
			||||||
                    dragDom.style.width = `${curWidth + xl}px`;
 | 
					          dragDom.style.width = `${curWidth + xl}px`;
 | 
				
			||||||
                    dragDom.style.height = `${curHeight + yl}px`;
 | 
					          dragDom.style.height = `${curHeight + yl}px`;
 | 
				
			||||||
                };
 | 
					        };
 | 
				
			||||||
                document.onmouseup = function(e) {
 | 
					        document.onmouseup = function(e) {
 | 
				
			||||||
                    document.onmousemove = null;
 | 
					          document.onmousemove = null;
 | 
				
			||||||
                    document.onmouseup = null;
 | 
					          document.onmouseup = null;
 | 
				
			||||||
                };
 | 
					        };
 | 
				
			||||||
            }, false);
 | 
					      }, false);
 | 
				
			||||||
        dragDom.appendChild(lineEl);
 | 
					    dragDom.appendChild(lineEl);
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,30 +1,30 @@
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
* v-dialogDragWidth 可拖动弹窗宽度(右侧边)
 | 
					 * v-dialogDragWidth 可拖动弹窗宽度(右侧边)
 | 
				
			||||||
* Copyright (c) 2019 ruoyi
 | 
					 * Copyright (c) 2019 ruoyi
 | 
				
			||||||
*/
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
    bind(el) {
 | 
					  bind(el) {
 | 
				
			||||||
        const dragDom = el.querySelector('.el-dialog');
 | 
					    const dragDom = el.querySelector('.el-dialog');
 | 
				
			||||||
        const lineEl = document.createElement('div');
 | 
					    const lineEl = document.createElement('div');
 | 
				
			||||||
        lineEl.style = 'width: 5px; background: inherit; height: 80%; position: absolute; right: 0; top: 0; bottom: 0; margin: auto; z-index: 1; cursor: w-resize;';
 | 
					    lineEl.style = 'width: 5px; background: inherit; height: 80%; position: absolute; right: 0; top: 0; bottom: 0; margin: auto; z-index: 1; cursor: w-resize;';
 | 
				
			||||||
        lineEl.addEventListener('mousedown',
 | 
					    lineEl.addEventListener('mousedown',
 | 
				
			||||||
            function (e) {
 | 
					      function (e) {
 | 
				
			||||||
                // 鼠标按下,计算当前元素距离可视区的距离
 | 
					        // 鼠标按下,计算当前元素距离可视区的距离
 | 
				
			||||||
                const disX = e.clientX - el.offsetLeft;
 | 
					        const disX = e.clientX - el.offsetLeft;
 | 
				
			||||||
                // 当前宽度
 | 
					        // 当前宽度
 | 
				
			||||||
                const curWidth = dragDom.offsetWidth;
 | 
					        const curWidth = dragDom.offsetWidth;
 | 
				
			||||||
                document.onmousemove = function (e) {
 | 
					        document.onmousemove = function (e) {
 | 
				
			||||||
                    e.preventDefault(); // 移动时禁用默认事件
 | 
					          e.preventDefault(); // 移动时禁用默认事件
 | 
				
			||||||
                    // 通过事件委托,计算移动的距离
 | 
					          // 通过事件委托,计算移动的距离
 | 
				
			||||||
                    const l = e.clientX - disX;
 | 
					          const l = e.clientX - disX;
 | 
				
			||||||
                    dragDom.style.width = `${curWidth + l}px`;
 | 
					          dragDom.style.width = `${curWidth + l}px`;
 | 
				
			||||||
                };
 | 
					        };
 | 
				
			||||||
                document.onmouseup = function (e) {
 | 
					        document.onmouseup = function (e) {
 | 
				
			||||||
                    document.onmousemove = null;
 | 
					          document.onmousemove = null;
 | 
				
			||||||
                    document.onmouseup = null;
 | 
					          document.onmouseup = null;
 | 
				
			||||||
                };
 | 
					        };
 | 
				
			||||||
            }, false);
 | 
					      }, false);
 | 
				
			||||||
        dragDom.appendChild(lineEl);
 | 
					    dragDom.appendChild(lineEl);
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -13,8 +13,8 @@
 | 
				
			||||||
        <item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" />
 | 
					        <item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" />
 | 
				
			||||||
      </template>
 | 
					      </template>
 | 
				
			||||||
      <sidebar-item
 | 
					      <sidebar-item
 | 
				
			||||||
        v-for="child in item.children"
 | 
					        v-for="(child, index) in item.children"
 | 
				
			||||||
        :key="child.path"
 | 
					        :key="child.path + index"
 | 
				
			||||||
        :is-nest="true"
 | 
					        :is-nest="true"
 | 
				
			||||||
        :item="child"
 | 
					        :item="child"
 | 
				
			||||||
        :base-path="resolvePath(child.path)"
 | 
					        :base-path="resolvePath(child.path)"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -60,7 +60,7 @@ export default {
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  // 添加tab页签
 | 
					  // 添加tab页签
 | 
				
			||||||
  openPage(title, url, params) {
 | 
					  openPage(title, url, params) {
 | 
				
			||||||
    var obj = { path: url, meta: { title: title } }
 | 
					    const obj = { path: url, meta: { title: title } }
 | 
				
			||||||
    store.dispatch('tagsView/addView', obj);
 | 
					    store.dispatch('tagsView/addView', obj);
 | 
				
			||||||
    return router.push({ path: url, query: params });
 | 
					    return router.push({ path: url, query: params });
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,10 +15,8 @@ export function checkPermi(value) {
 | 
				
			||||||
      return all_permission === permission || permissionDatas.includes(permission)
 | 
					      return all_permission === permission || permissionDatas.includes(permission)
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!hasPermission) {
 | 
					    return hasPermission;
 | 
				
			||||||
      return false
 | 
					
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return true
 | 
					 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
 | 
					    console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
 | 
				
			||||||
    return false
 | 
					    return false
 | 
				
			||||||
| 
						 | 
					@ -40,10 +38,8 @@ export function checkRole(value) {
 | 
				
			||||||
      return super_admin === role || permissionRoles.includes(role)
 | 
					      return super_admin === role || permissionRoles.includes(role)
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!hasRole) {
 | 
					    return hasRole;
 | 
				
			||||||
      return false
 | 
					
 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return true
 | 
					 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    console.error(`need roles! Like checkRole="['admin','editor']"`)
 | 
					    console.error(`need roles! Like checkRole="['admin','editor']"`)
 | 
				
			||||||
    return false
 | 
					    return false
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -65,10 +65,7 @@ export function validEmail(email) {
 | 
				
			||||||
 * @returns {Boolean}
 | 
					 * @returns {Boolean}
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
export function isString(str) {
 | 
					export function isString(str) {
 | 
				
			||||||
  if (typeof str === 'string' || str instanceof String) {
 | 
					  return typeof str === 'string' || str instanceof String;
 | 
				
			||||||
    return true
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  return false
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue