工资统计接口调试

This commit is contained in:
BianLzhaoMin 2025-10-11 16:16:35 +08:00
parent 81a8680a32
commit d371fae9b2
6 changed files with 285 additions and 87 deletions

View File

@ -1,9 +1,9 @@
import request from '@/utils/request'
// 综合查询 获取工资统计列表
export const getWageCountListAPI = (data) => {
// 综合查询 工资统计 公司统计和分公司统计
export const getWageCountCompanyAndSubCompanyListAPI = (data) => {
return request({
url: '/bmw/workerLight/****',
url: '/bmw/salaryStatistics/getSalaryStatisticsTable',
method: 'GET',
params: data,
})

View File

@ -33,53 +33,55 @@
</template>
<script>
import { getWageCountCompanyAndSubCompanyListAPI } from '@/api/synthesize-query/wage-count'
export default {
name: 'CompanyCount',
props: {},
props: {
queryParams: {
type: Object,
default: () => {},
},
},
data() {
return {
companyCountData: [
{
entryTime: '2025-01-01',
exitTime: '2025-01-01',
contractName: '工程1',
subcontractorName: '分包1',
totalEntryCount: 10,
},
{
entryTime: '2025-01-01',
exitTime: '2025-01-01',
contractName: '工程1',
subcontractorName: '分包1',
totalEntryCount: 10,
},
],
companyCountData: [],
columnData: [
{
label: '公司名称',
prop: 'entryTime',
prop: 'companyName',
},
{
label: '工程数量',
prop: 'exitTime',
prop: 'proNum',
},
{
label: '分包数量',
prop: 'contractName',
prop: 'subNum',
},
{
label: '实发工资(元)',
prop: 'subcontractorName',
prop: 'netSalary',
},
{
label: '累计支付工资(元)',
prop: 'totalEntryCount',
prop: 'allSalary',
},
],
}
},
created() {},
watch: {},
created() {
// this.getCompanyCountData()
},
watch: {
queryParams: {
handler(newVal) {
this.getCompanyCountData()
},
deep: true,
immediate: true,
},
},
methods: {
//
tableHeaderStyle() {
@ -96,7 +98,32 @@ export default {
return {
fontSize: '14px',
color: '#606266',
padding: '12px 8px',
padding: '12px 0',
}
},
//
async getCompanyCountData() {
console.log(this.queryParams, '获取列表数据')
const res = await getWageCountCompanyAndSubCompanyListAPI(
this.queryParams,
)
console.log(res, '获取列表数据')
if (res.code === 200) {
for (const key in res.data) {
if (key === '公司') {
this.companyCountData = res.data[key]
}
if (key === '分公司') {
// this.subCompanyCountData = res.data[key]
this.$emit(
'handelSettingSubCompanyCountData',
res.data[key],
)
}
}
}
},
},

View File

@ -3,36 +3,43 @@
<div class="data-filter">
<div class="data-filter-title">数据筛选</div>
<div style="margin-top: 14px">
<el-radio-group v-model="radio2" size="medium">
<el-radio-button label="2025"></el-radio-button>
<el-radio-button label="2024"></el-radio-button>
<el-radio-button label="2023"></el-radio-button>
<el-radio-group
size="medium"
@change="onChangeYear"
v-model="queryParams.year"
>
<el-radio-button
:key="item"
:label="item"
v-for="item in yearList"
/>
</el-radio-group>
</div>
<div style="margin-top: 14px">
<el-radio-group v-model="radio3" size="medium">
<el-radio-button label="全部"></el-radio-button>
<el-radio-button label="一季度"></el-radio-button>
<el-radio-button label="二季度"></el-radio-button>
<el-radio-button label="三季度"></el-radio-button>
<el-radio-button label="四季度"></el-radio-button>
<el-radio-group
v-model="queryParams.quarter"
size="medium"
@change="onChangeQuarter"
>
<el-radio-button
:key="item"
:label="item"
v-for="item in quarterList"
/>
</el-radio-group>
</div>
<div style="margin-top: 14px">
<el-radio-group v-model="radio4" size="medium">
<el-radio-button label="全部"></el-radio-button>
<el-radio-button label="1月"></el-radio-button>
<el-radio-button label="2月"></el-radio-button>
<el-radio-button label="3月"></el-radio-button>
<el-radio-button label="4月"></el-radio-button>
<el-radio-button label="5月"></el-radio-button>
<el-radio-button label="6月"></el-radio-button>
<el-radio-button label="7月"></el-radio-button>
<el-radio-button label="8月"></el-radio-button>
<el-radio-button label="9月"></el-radio-button>
<el-radio-button label="10月"></el-radio-button>
<el-radio-button label="11月"></el-radio-button>
<el-radio-button label="12月"></el-radio-button>
<el-radio-group
size="medium"
v-model="queryParams.month"
@change="onChangeMonth"
>
<el-radio-button label="全部" />
<el-radio-button
v-for="item in monthList"
:key="item.value"
:label="item.label"
/>
</el-radio-group>
</div>
</div>
@ -43,11 +50,156 @@ export default {
name: 'DataFilter',
data() {
return {
radio2: '2025',
radio3: '全部',
radio4: '全部',
yearList: [],
quarterList: ['全部', '一季度', '二季度', '三季度', '四季度'],
queryParams: {
year: new Date().getFullYear(),
quarter: '全部',
month: '全部',
},
}
},
computed: {
monthList() {
const monthList = [
{
label: '1月',
value: '01',
},
{
label: '2月',
value: '02',
},
{
label: '3月',
value: '03',
},
{
label: '4月',
value: '04',
},
{
label: '5月',
value: '05',
},
{
label: '6月',
value: '06',
},
{
label: '7月',
value: '07',
},
{
label: '8月',
value: '08',
},
{
label: '9月',
value: '09',
},
{
label: '10月',
value: '10',
},
{
label: '11月',
value: '11',
},
{
label: '12月',
value: '12',
},
]
const quarter = this.queryParams.quarter
switch (quarter) {
case '一季度':
return monthList.slice(0, 3)
case '二季度':
return monthList.slice(3, 6)
case '三季度':
return monthList.slice(6, 9)
case '四季度':
return monthList.slice(9, 12)
default:
return monthList
}
},
},
created() {
this.getRecentThreeYears()
},
methods: {
//
getRecentThreeYears() {
const now = new Date()
const year = now.getFullYear()
for (let i = 0; i < 3; i++) {
this.yearList.push(year - i)
}
},
//
onChangeYear(val) {
this.$emit('handelSettingQuery', this.initQueryParams())
},
//
onChangeQuarter(val) {
this.queryParams.month = '全部'
this.$emit('handelSettingQuery', this.initQueryParams())
},
//
onChangeMonth(val) {
this.$emit('handelSettingQuery', this.initQueryParams())
},
//
initQueryParams() {
const params = {
year: this.queryParams.year,
month: null,
}
if (
this.queryParams.quarter === '全部' &&
this.queryParams.month === '全部'
) {
params.month = null
}
if (
(this.queryParams.quarter === '全部' &&
this.queryParams.month !== '全部') ||
(this.queryParams.quarter !== '全部' &&
this.queryParams.month !== '全部')
) {
params.month =
this.queryParams.year +
'-' +
this.monthList.find(
(item) => item.label === this.queryParams.month,
).value
}
if (
this.queryParams.quarter !== '全部' &&
this.queryParams.month === '全部'
) {
const monthList = this.monthList.map(
(item) => this.queryParams.year + '-' + item.value,
)
params.month = monthList.join(',')
}
return params
},
},
}
</script>

View File

@ -35,45 +35,34 @@
<script>
export default {
name: 'SubCompanyCount',
props: {},
props: {
subCompanyCountData: {
type: Array,
default: () => [],
},
},
data() {
return {
subCompanyCountData: [
{
entryTime: '2025-01-01',
exitTime: '2025-01-01',
contractName: '工程1',
subcontractorName: '分包1',
totalEntryCount: 10,
},
{
entryTime: '2025-01-01',
exitTime: '2025-01-01',
contractName: '工程1',
subcontractorName: '分包1',
totalEntryCount: 10,
},
],
columnData: [
{
label: '公司名称',
prop: 'entryTime',
label: '分公司名称',
prop: 'companyName',
},
{
label: '工程数量',
prop: 'exitTime',
prop: 'proNum',
},
{
label: '分包数量',
prop: 'contractName',
prop: 'subNum',
},
{
label: '实发工资(元)',
prop: 'subcontractorName',
prop: 'netSalary',
},
{
label: '累计支付工资(元)',
prop: 'totalEntryCount',
prop: 'allSalary',
},
],
}

View File

@ -3,13 +3,16 @@
<div class="wage-details-container">
<div class="section-header">
<span>工资统计</span>
<span>(已归档工资)</span>
<span style="font-size: 14px; color: #ef4444">(已归档工资)</span>
</div>
<CompanyCount />
<SubCompanyCount />
<ProjectCount />
<SubCount />
<CompanyCount
:queryParams="queryParams"
@handelSettingSubCompanyCountData="handelSettingSubCompanyCountData"
/>
<SubCompanyCount :subCompanyCountData="subCompanyCountData" />
<ProjectCount :queryParams="queryParams" />
<SubCount :queryParams="queryParams" />
</div>
</template>
@ -26,12 +29,24 @@ export default {
ProjectCount,
SubCount,
},
props: {
queryParams: {
type: Object,
default: () => {},
},
},
data() {
return {}
return {
subCompanyCountData: [],
}
},
created() {},
watch: {},
methods: {},
methods: {
handelSettingSubCompanyCountData(data) {
this.subCompanyCountData = data
},
},
}
</script>

View File

@ -1,8 +1,8 @@
<template>
<!-- 工资统计 -->
<div class="app-container">
<DataFilter />
<WageDetails />
<DataFilter @handelSettingQuery="handelSettingQuery" />
<WageDetails :queryParams="queryParams" />
</div>
</template>
@ -15,5 +15,20 @@ export default {
DataFilter,
WageDetails,
},
data() {
return {
queryParams: {
year: new Date().getFullYear(),
month: null,
},
}
},
methods: {
handelSettingQuery(queryParams) {
this.queryParams = queryParams
},
},
}
</script>