loulijun2021
2022-11-16 f13043863ba71ef3308c1ec216b3d73223cd1711
1.班组、人员工资报表求和统计
已修改3个文件
274 ■■■■■ 文件已修改
src/router/index.js 180 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/bbgl/bzgz.vue 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/bbgl/rygz.vue 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js
@@ -151,13 +151,13 @@
        component: () => import('@/views/jcsz/wldw'),
        meta: { code: '1013', title: '往来单位', icon: '', keepAlive: true }
      },
      // {
      //   path: 'adsz',
      //   name: 'ADZZCancel',
      //   code: '1014',
      //   component: () => import('@/views/jcsz/adsz'),
      //   meta: { code: '1014', title: '安灯设置', icon: '', keepAlive: true }
      // }
      {
        path: 'adsz',
        name: 'ADZZCancel',
        code: '1014',
        component: () => import('@/views/jcsz/adsz'),
        meta: { code: '1014', title: '安灯设置', icon: '', keepAlive: true }
      }
    ]
  },
  {
@@ -169,26 +169,26 @@
    meta: { code: '1002', title: '设备管理', icon: 'example' },
    alwaysShow: true,
    children: [
      // {
      //   path: 'sblx',
      //   name: 'SBLXCancel',
      //   code: '1020',
      //   component: () => import('@/views/sbgl/sblx'),
      //   meta: { code: '1020', title: '设备类型', icon: '', keepAlive: true }
      // },
      // {
      //   path: 'wxjl',
      //   code: '1029Cancel',
      //   name: 'WXJL',
      //   component: () => import('@/views/sbgl/wxjl'),
      //   meta: { code: '1029', title: '维修记录', icon: '', keepAlive: true }
      // }, {
      //   path: 'sbz',
      //   name: 'SBZCancel',
      //   code: '1021',
      //   component: () => import('@/views/sbgl/sbz'),
      //   meta: { code: '1021', title: '设备组', icon: '', keepAlive: true }
      // },
      {
        path: 'sblx',
        name: 'SBLXCancel',
        code: '1020',
        component: () => import('@/views/sbgl/sblx'),
        meta: { code: '1020', title: '设备类型', icon: '', keepAlive: true }
      },
      {
        path: 'wxjl',
        code: '1029Cancel',
        name: 'WXJL',
        component: () => import('@/views/sbgl/wxjl'),
        meta: { code: '1029', title: '维修记录', icon: '', keepAlive: true }
      }, {
        path: 'sbz',
        name: 'SBZCancel',
        code: '1021',
        component: () => import('@/views/sbgl/sbz'),
        meta: { code: '1021', title: '设备组', icon: '', keepAlive: true }
      },
      {
        path: 'sbqd',
        name: 'sbqdCancel',
@@ -196,48 +196,48 @@
        component: () => import('@/views/sbgl/sbqd'),
        meta: { code: '1022', title: '设备清单', icon: '', keepAlive: true }
      },
      // {
      //   path: 'djbz',
      //   name: 'DJBZCancel',
      //   code: '1023',
      //   component: () => import('@/views/sbgl/djbz'),
      //   meta: { code: '1023', title: '点检标准', icon: '', keepAlive: true }
      // },
      // {
      //   path: 'djbw',
      //   name: 'DJBWCancel',
      //   code: '1024',
      //   component: () => import('@/views/sbgl/djbw'),
      //   meta: { code: '1024', title: '点检部位', icon: '', keepAlive: true }
      // },
      // {
      //   path: 'bybz',
      //   name: 'BYBZCancel',
      //   code: '1025',
      //   component: () => import('@/views/sbgl/bybz'),
      //   meta: { code: '1025', title: '保养标准', icon: '', keepAlive: true }
      // },
      // {
      //   path: 'bybw',
      //   name: 'BYBWCancel',
      //   code: '1026',
      //   component: () => import('@/views/sbgl/bybw'),
      //   meta: { code: '1026', title: '保养部位', icon: '', keepAlive: true }
      // },
      // {
      //   path: 'djjl',
      //   name: 'DJJLCancel',
      //   code: '1027',
      //   component: () => import('@/views/sbgl/djjl'),
      //   meta: { code: '1027', title: '点检记录', icon: '', keepAlive: true }
      // },
      // {
      //   path: 'byjl',
      //   name: 'BYJLCancel',
      //   code: '1028',
      //   component: () => import('@/views/sbgl/byjl'),
      //   meta: { code: '1028', title: '保养记录', icon: '', keepAlive: true }
      // }
      {
        path: 'djbz',
        name: 'DJBZCancel',
        code: '1023',
        component: () => import('@/views/sbgl/djbz'),
        meta: { code: '1023', title: '点检标准', icon: '', keepAlive: true }
      },
      {
        path: 'djbw',
        name: 'DJBWCancel',
        code: '1024',
        component: () => import('@/views/sbgl/djbw'),
        meta: { code: '1024', title: '点检部位', icon: '', keepAlive: true }
      },
      {
        path: 'bybz',
        name: 'BYBZCancel',
        code: '1025',
        component: () => import('@/views/sbgl/bybz'),
        meta: { code: '1025', title: '保养标准', icon: '', keepAlive: true }
      },
      {
        path: 'bybw',
        name: 'BYBWCancel',
        code: '1026',
        component: () => import('@/views/sbgl/bybw'),
        meta: { code: '1026', title: '保养部位', icon: '', keepAlive: true }
      },
      {
        path: 'djjl',
        name: 'DJJLCancel',
        code: '1027',
        component: () => import('@/views/sbgl/djjl'),
        meta: { code: '1027', title: '点检记录', icon: '', keepAlive: true }
      },
      {
        path: 'byjl',
        name: 'BYJLCancel',
        code: '1028',
        component: () => import('@/views/sbgl/byjl'),
        meta: { code: '1028', title: '保养记录', icon: '', keepAlive: true }
      }
    ]
  },
  {
@@ -390,13 +390,13 @@
        component: () => import('@/views/zzmx/chda'),
        meta: { code: '1061', title: '存货档案', icon: '', keepAlive: true }
      },
      // {
      //   path: 'wlqd',
      //   name: 'WLQDCancel',
      //   code: '1062',
      //   component: () => import('@/views/zzmx/wlqd'),
      //   meta: { code: '1062', title: '物料清单', icon: '', keepAlive: true }
      // },
      {
        path: 'wlqd',
        name: 'WLQDCancel',
        code: '1062',
        component: () => import('@/views/zzmx/wlqd'),
        meta: { code: '1062', title: '物料清单', icon: '', keepAlive: true }
      },
      {
        path: 'gylx',
        name: 'GYLXCancel',
@@ -587,13 +587,13 @@
        component: () => import('@/views/xtsz/bmgz'),
        meta: { code: '1101', title: '编码规则', icon: '', keepAlive: true }
      },
      // {
      //   path: 'mmxg',
      //   name: 'MMXGCancel',
      //   code: '1102',
      //   component: () => import('@/views/xtsz/mmxg'),
      //   meta: { code: '1102', title: '密码修改', icon: '', keepAlive: true }
      // },
      {
        path: 'mmxg',
        name: 'MMXGCancel',
        code: '1102',
        component: () => import('@/views/xtsz/mmxg'),
        meta: { code: '1102', title: '密码修改', icon: '', keepAlive: true }
      },
      {
        path: 'xtrz',
        name: 'XTRZCancel',
@@ -607,13 +607,13 @@
        component: () => import('@/views/xtsz/sc'),
        meta: { code: '1104', title: 'SOP上传', icon: '', keepAlive: true }
      },
      // {
      //   path: 'cjgg',
      //   name: 'CJGGancel',
      //   code: '1105',
      //   component: () => import('@/views/xtsz/cjgg'),
      //   meta: { code: '1105', title: '车间公告', icon: '', keepAlive: true }
      // }
      {
        path: 'cjgg',
        name: 'CJGGancel',
        code: '1105',
        component: () => import('@/views/xtsz/cjgg'),
        meta: { code: '1105', title: '车间公告', icon: '', keepAlive: true }
      }
    ]
  }
]
src/views/bbgl/bzgz.vue
@@ -42,7 +42,7 @@
            <el-form-item v-show="isExpandForm" label="操作人员" style=" display: flex;">
              <el-input v-model="form.username" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="操作时间" style="display: flex;align-items: center">
            <el-form-item v-show="isExpandForm" label="报工时间" style="display: flex;align-items: center">
              <el-date-picker
                v-model="form.operdate"
                type="daterange"
@@ -92,6 +92,8 @@
          :data="tableData"
          :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
          border
          :summary-method="getSummaries"
          show-summary
          :row-class-name="tableRowClassName"
          :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
          highlight-current-row
@@ -178,7 +180,7 @@
            sortable="custom"
          >
            <template slot-scope="{row}">
              <div v-if="row.unprice">{{ row.unprice }}元</div>
              <div v-if="row.unprice">{{ row.unprice }} 元</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
@@ -189,14 +191,19 @@
            sortable="custom"
          >
            <template slot-scope="{row}">
              <div v-if="row.usermoney">{{ row.usermoney }}元</div>
              <div v-if="row.usermoney">{{ row.usermoney }} 元</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="lm_user"
            label="操作人员"
            label="报工人员"
            width="110"
            sortable="custom"
          />          <el-table-column
            prop="report_date"
            label="报工时间"
            width="160"
            sortable="custom"
          />
@@ -366,6 +373,37 @@
        }
      })
    },
    getSummaries(param) {
      const { columns, data } = param
      const sums = []
      columns.forEach((column, index) => {
        if (index === 10) {
          sums[index] = '总价'
          return
        }
        const values = data.map(item => Number(item[column.property]))
        if (column.property === 'usermoney') {
          sums[index] = values.reduce((prev, curr) => {
            const value = Number(curr)
            if (!isNaN(value)) {
              return prev + curr
            } else {
              return prev
            }
          }, 0)
          sums[index] += ' 元'
        } else {
          // sums[index] = 'N/A'
          sums[index] = ' '
        }
      })
      this.$nextTick(() => {
        this.$refs.tableDataRef.doLayout()
      })
      return sums
    },
    async getGroupSalaryReportSearch() {
      let tempDate = this.form.operdate
      if (tempDate.length > 0) {
@@ -386,7 +424,6 @@
        rows: this.form.rows
      }
      console.log(data, 1)
      const res = await GroupSalaryReportSearch(data)
      this.tableData = res.data
      this.total = res.count
src/views/bbgl/rygz.vue
@@ -90,6 +90,8 @@
          :data="tableData"
          :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
          border
          :summary-method="getSummaries"
          show-summary
          :row-class-name="tableRowClassName"
          :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
          highlight-current-row
@@ -164,13 +166,13 @@
            sortable="custom"
          />
          <el-table-column
            prop="good_qty"
            prop="report_qty"
            label="报工数量"
            width="110"
            sortable="custom"
          >
            <template slot-scope="{row}">
              <div v-if="row.good_qty">{{ row.good_qty }}</div>
              <div v-if="row.report_qty">{{ row.report_qty }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
@@ -181,23 +183,23 @@
            sortable="custom"
          >
            <template slot-scope="{row}">
              <div v-if="row.unprice">{{ row.unprice }}元</div>
              <div v-if="row.unprice">{{ row.unprice }} 元</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="usermoney"
            label="班组记件工资"
            label="个人记件工资"
            width="130"
            sortable="custom"
          >
            <template slot-scope="{row}">
              <div v-if="row.usermoney">{{ row.usermoney }}元</div>
              <div v-if="row.usermoney">{{ row.usermoney }} 元</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="lm_user"
            prop="username"
            label="报工人员"
            width="110"
            sortable="custom"
@@ -352,6 +354,39 @@
        }
      })
    },
    getSummaries(param) {
      const { columns, data } = param
      const sums = []
      columns.forEach((column, index) => {
        if (index === 10) {
          sums[index] = '总价'
          return
        }
        const values = data.map(item => Number(item[column.property]))
        if (column.property === 'usermoney') {
          sums[index] = values.reduce((prev, curr) => {
            const value = Number(curr)
            if (!isNaN(value)) {
              return prev + curr
            } else {
              return prev
            }
          }, 0)
          sums[index] += ' 元'
        } else {
          // sums[index] = 'N/A'
          sums[index] = ' '
        }
      })
      this.$nextTick(() => {
        this.$refs.tableDataRef.doLayout()
      })
      return sums
    },
    async getPeopleSalaryReportSearch() {
      let tempDate = this.form.reportdate
      if (tempDate.length > 0) {