按钮级别的新版本,多级别的组织架构
loulijun2021
2023-08-01 c59ed01f610a871f1db2869aaf08a991dddb600f
1.基础设置、工单管理、生产执行、统计报表菜单新增
已重命名1个文件
已添加15个文件
已修改1个文件
已删除1个文件
798 ■■■■■ 文件已修改
src/router/index.js 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicSettings/groupList.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicSettings/menuList.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicSettings/organizationList.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicSettings/personList.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicSettings/postList.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicSettings/roleList.vue 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/produce/reportCorrect.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/produce/reportVerify.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/produce/stepReport.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/statistic/inProcessList.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/statistic/monthReport.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/statistic/reportList.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/statistic/workOrderProcess.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/test/printMe.vue 425 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrder/workOrderClose.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrder/workOrderList.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrder/workOrderSend.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js
@@ -96,11 +96,145 @@
    alwaysShow: true, // å½“children只有一个时,也显示父菜单
    children: [
      {
        path: 'rolePermission',
        name: 'rolePermissionCancel',
        path: 'organizationList',
        name: 'organizationListCancel',
        code: '1010',
        component: () => import('@/views/basicSettings/organizationList'),
        meta: { code: '1010', title: '组织架构', icon: '', keepAlive: true }
      },
      {
        path: 'personList',
        name: 'personListCancel',
        code: '1011',
        component: () => import('@/views/basicSettings/personList'),
        meta: { code: '1011', title: '人员管理', icon: '', keepAlive: true }
      }, {
        path: 'postList',
        name: 'personListCancel',
        code: '1012',
        component: () => import('@/views/basicSettings/postList'),
        meta: { code: '1012', title: '岗位管理', icon: '', keepAlive: true }
      }, {
        path: 'roleList',
        name: 'roleListCancel',
        code: '1013',
        component: () => import('@/views/basicSettings/roleList'),
        meta: { code: '1013', title: '角色管理', icon: '', keepAlive: true }
      }, {
        path: 'groupList',
        name: 'groupListCancel',
        code: '1014',
        component: () => import('@/views/basicSettings/rolePermission'),
        meta: { code: '1014', title: '安灯设置', icon: '', keepAlive: true }
        component: () => import('@/views/basicSettings/groupList'),
        meta: { code: '1014', title: '班组管理', icon: '', keepAlive: true }
      },
      {
        path: 'menuList',
        name: 'menuListCancel',
        code: '1015',
        component: () => import('@/views/basicSettings/menuList'),
        meta: { code: '1015', title: '菜单管理', icon: '', keepAlive: true }
      }
    ]
  },
  {
    path: '/workOrder',
    component: Layout,
    redirect: '/workOrder/workOrderList',
    name: '工单管理',
    code: '1002',
    meta: { code: '1002', title: '工单管理', icon: 'quality' },
    alwaysShow: true, // å½“children只有一个时,也显示父菜单
    children: [
      {
        path: 'workOrderList',
        name: 'workOrderListCancel',
        code: '1020',
        component: () => import('@/views/workOrder/workOrderList'),
        meta: { code: '1010', title: '工单列表', icon: '', keepAlive: true }
      },
      {
        path: 'workOrderSend',
        name: 'workOrderSendCancel',
        code: '1011',
        component: () => import('@/views/workOrder/workOrderSend'),
        meta: { code: '1021', title: '工单派发', icon: '', keepAlive: true }
      }, {
        path: 'workOrderClose',
        name: 'workOrderCloseCancel',
        code: '1012',
        component: () => import('@/views/workOrder/workOrderClose'),
        meta: { code: '1022', title: '工单关闭', icon: '', keepAlive: true }
      }
    ]
  },
  {
    path: '/produce',
    component: Layout,
    redirect: '/produce/stepReport',
    name: '生产执行',
    code: '1003',
    meta: { code: '1003', title: '生产执行', icon: 'production' },
    alwaysShow: true, // å½“children只有一个时,也显示父菜单
    children: [
      {
        path: 'stepReport',
        name: 'stepReportCancel',
        code: '1030',
        component: () => import('@/views/produce/stepReport'),
        meta: { code: '1030', title: '工序报工', icon: '', keepAlive: true }
      },
      {
        path: 'reportCorrect',
        name: 'reportCorrectCancel',
        code: '1031',
        component: () => import('@/views/produce/reportCorrect'),
        meta: { code: '1031', title: '报工修正', icon: '', keepAlive: true }
      }, {
        path: 'reportVerify',
        name: 'reportVerifyCancel',
        code: '1032',
        component: () => import('@/views/produce/reportVerify'),
        meta: { code: '1032', title: '报工审核', icon: '', keepAlive: true }
      }
    ]
  },
  {
    path: '/statistic',
    component: Layout,
    redirect: '/statistic/reportList',
    name: '统计报表',
    code: '1004',
    meta: { code: '1004', title: '统计报表', icon: 'bbgl' },
    alwaysShow: true, // å½“children只有一个时,也显示父菜单
    children: [
      {
        path: 'reportList',
        name: 'reportListCancel',
        code: '1040',
        component: () => import('@/views/statistic/reportList'),
        meta: { code: '1040', title: '报工记录', icon: '', keepAlive: true }
      },
      {
        path: 'monthReport',
        name: 'monthReportCancel',
        code: '1041',
        component: () => import('@/views/statistic/monthReport'),
        meta: { code: '1041', title: '月度统计', icon: '', keepAlive: true }
      }, {
        path: 'workOrderProcess',
        name: 'workOrderProcessCancel',
        code: '1042',
        component: () => import('@/views/statistic/workOrderProcess'),
        meta: { code: '1042', title: '工单进度', icon: '', keepAlive: true }
      }, {
        path: 'inProcessList',
        name: 'inProcessListCancel',
        code: '1043',
        component: () => import('@/views/statistic/inProcessList'),
        meta: { code: '1043', title: '在制列表', icon: '', keepAlive: true }
      }
    ]
src/views/basicSettings/groupList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'GroupList'
}
</script>
<style scoped>
</style>
src/views/basicSettings/menuList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'MenuList'
}
</script>
<style scoped>
</style>
src/views/basicSettings/organizationList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'OrganizationList'
}
</script>
<style scoped>
</style>
src/views/basicSettings/personList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'PersonList'
}
</script>
<style scoped>
</style>
src/views/basicSettings/postList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'PostList'
}
</script>
<style scoped>
</style>
src/views/basicSettings/roleList.vue
ÎļþÃû´Ó src/views/basicSettings/rolePermission.vue ÐÞ¸Ä
@@ -81,6 +81,7 @@
            highlight-current
            :props="defaultPropsLeft"
            :default-expand-all="true"
            @node-click="treeLeftNodeClick"
          />
        </div>
@@ -120,7 +121,7 @@
                <div
                  ref="scrollCenter"
                  style="border-right: 1px solid rgba(0,0,0,0.2);width: 500px;padding-left: 10px;overflow-y: auto"
                  style="border-right: 1px solid rgba(0,0,0,0.2);width: 600px;padding-left: 10px;overflow-y: auto"
                  :style="{height:isExpandForm?tableHeight:(tableHeight+35)+'px',}"
                  @scroll="scrollCenterScroll()"
                  @mouseover="changeScrollLeftFlag('center')"
@@ -308,12 +309,12 @@
        this.$notify.error('请先建相对应的角色!')
      }
    },
    // èŽ·å–èœå•æƒé™å¯¹åº”çš„æŒ‰é’®
    async getRolePermissionSearchRoleMenuButton(rolecode) {
      const { data: res } = await RolePermissionSearchRoleMenuButton({ rolecode })
      this.allButtonData = res
    },
    // èŽ·å–èœå•æƒé™
    async getRolePermissionSearchRoleMenu(rolecode) {
      const { data: res } = await RolePermissionSearchRoleMenu({ rolecode, type: 'PC' })
@@ -326,6 +327,7 @@
      this.menuCheckedCodeArr = []
      // console.log(this.allButtonData, 213)
      result.forEach(item => {
        if (item.children && item.children.length) {
          item.children.forEach(it => {
@@ -340,12 +342,12 @@
            // æ•°æ®æƒé™å›žæ˜¾
            const dataAll = this.allButtonData.tData.filter(j => j.menucode === it.code).map(j => j.name)
            const dataChecked = this.allButtonData.tData.filter(j => j.menucode === it.code && j.flag === 'Y').name
            console.log(dataAll, dataChecked, 2)
            // console.log(dataAll, dataChecked, 2)
            it.itemData = dataAll
            it.checkedData = dataChecked
            // ç”¨ä½œèœå•勾选回显
            if (buttonChecked && buttonChecked.length > 0) {
            if (it.flag === 'Y') {
              this.menuCheckedCodeArr.push(it.code)
            }
          })
@@ -360,13 +362,15 @@
        { code: '-1', name: '全部', flag: result.every(i => i.flag === 'Y') ? 'Y' : 'N', children: result }
      ]
      this.buttonIsChecked = result.every(i => i.flag === 'Y')
      // this.buttonIsChecked = result.every(i => i.flag === 'Y')
      this.handleCheckedButtonChange('', '', true)
      this.handleCheckedDataChange('', '', true)
      // console.log(this.menuCheckedCodeArr, 2)
      this.$nextTick(() => {
        this.$refs.treeCenterRef.setCheckedKeys(this.menuCheckedCodeArr)
      })
      this.$forceUpdate()
      // console.log(this.treeCenter[0].children)
    },
@@ -436,18 +440,19 @@
        })
      }
      console.log(this.treeCenter[0].children, 20)
      // console.log(this.treeCenter[0].children, 20)
    },
    // å•个按钮改变
    handleCheckedButtonChange(value, code) {
    handleCheckedButtonChange(value, code, flag) {
      // åˆ¤æ–­æ˜¯å¦åŒ…含在内
      if (!flag) {
      if (!this.menuCheckedCodeArr.includes(code) && value.length === 1) { // å¦
        this.menuCheckedCodeArr.push(code)
      } else if (this.menuCheckedCodeArr.includes(code) && value.length === 0) { // æ˜¯
        this.menuCheckedCodeArr = this.menuCheckedCodeArr.filter(i => i !== code)
      }
      this.$refs.treeCenterRef.setCheckedKeys(this.menuCheckedCodeArr)
      }
      // è¿™é‡Œæ˜¯åˆ¤æ–­å…¨é€‰checkbox æ˜¯å¦é€‰ä¸­
      let count = 0
@@ -468,8 +473,8 @@
    // èŽ·å–æ ‘å½¢èŠ‚ç‚¹node
    getLeftTreeNode(data, Node, VueComponent) {
      console.log(data, Node, VueComponent, 2221)
      console.log(Node.expanded)
      // console.log(data, Node, VueComponent, 2221)
      // console.log(Node.expanded)
      this.treeCenter[0].children.forEach(item => {
        if (item.name === data.name) {
          item.expanded = Node.expanded
@@ -483,13 +488,25 @@
      }
      this.$forceUpdate()
    },
    // å¤„理树形勾选
    handleTreeCenterCheck(obj, { checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys }) {
      // console.log(obj, checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys)
      // console.log(obj, checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys, '加多宝')
      if (checkedKeys.length === 0) { // æ ‘形菜单全不选的情况下
        this.buttonIsChecked = false
        this.dataIsChecked = false
        this.menuCheckedCodeArr = []
      } else {
        if (checkedKeys.includes(obj.code)) { // åˆ¤æ–­æ˜¯å¦åŒ…含在内   //是
          this.menuCheckedCodeArr.push(obj.code)
        } else { // å¦
          this.menuCheckedCodeArr = this.menuCheckedCodeArr.filter(i => i !== obj.code)
        }
      }
    },
    // å¤„理树形选中值改变
    handleTreeCenterCheckChange(obj, selfChecked, selfChildrenTreeCheck) {
      // console.log(obj, selfChecked, selfChildrenTreeCheck)
      // console.log(obj, selfChecked, selfChildrenTreeCheck, '王老吉')
      if (!selfChildrenTreeCheck) {
        if (!selfChecked) {
          this.treeCenter[0].children.forEach(item => {
@@ -508,13 +525,14 @@
    },
    // å•选框按钮改变
    handleCheckedDataChange(value, code) {
      console.log(value, code)
    handleCheckedDataChange(value, code, flag) {
      // console.log(value, code)
      if (flag) {
      this.menuCheckedCodeArr.push(code)
      this.menuCheckedCodeArr = [...new Set(this.menuCheckedCodeArr)]
      this.$refs.treeCenterRef.setCheckedKeys(this.menuCheckedCodeArr)
      }
      // è¿™é‡Œæ˜¯åˆ¤æ–­å…¨é€‰radio æ˜¯å¦é€‰ä¸­
      let count = 0
@@ -525,14 +543,26 @@
            if (it.checkedData) {
              count++
            }
            if (it.itemData.length > 0) {
            childrenLength++
            }
          })
        }
      })
      // console.log(count, childrenLength, 9)
      this.dataIsChecked = count === childrenLength
      // console.log(JSON.parse(JSON.stringify(this.treeCenter[0].children)))
      this.$forceUpdate()
    },
    async  treeLeftNodeClick(obj, Node, VueComponent) {
      // this.menuCheckedCodeArr = []
      await this.getRolePermissionSearchRoleMenuButton(obj.code)
      await this.getRolePermissionSearchRoleMenu(obj.code)
    },
    // èŽ·å–é¡µé¢é«˜åº¦
    getHeight() {
      this.$nextTick(() => {
src/views/produce/reportCorrect.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'ReportCorrect'
}
</script>
<style scoped>
</style>
src/views/produce/reportVerify.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'ReportVerify'
}
</script>
<style scoped>
</style>
src/views/produce/stepReport.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'StepReport'
}
</script>
<style scoped>
</style>
src/views/statistic/inProcessList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'InProcessList'
}
</script>
<style scoped>
</style>
src/views/statistic/monthReport.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'MonthReport'
}
</script>
<style scoped>
</style>
src/views/statistic/reportList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'ReportList'
}
</script>
<style scoped>
</style>
src/views/statistic/workOrderProcess.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'WorkOrderProcess'
}
</script>
<style scoped>
</style>
src/views/test/printMe.vue
ÎļþÒÑɾ³ý
src/views/workOrder/workOrderClose.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'WorkOrderClose'
}
</script>
<style scoped>
</style>
src/views/workOrder/workOrderList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'WorkOrderList'
}
</script>
<style scoped>
</style>
src/views/workOrder/workOrderSend.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
<template />
<script>
export default {
  name: 'WorkOrderSend'
}
</script>
<style scoped>
</style>