工资统计接口调试
This commit is contained in:
parent
81a8680a32
commit
d371fae9b2
|
|
@ -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,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -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],
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
},
|
||||
],
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue