|
|
@@ -33,112 +33,113 @@
|
|
|
<view class="card">
|
|
|
<view class="card-row">
|
|
|
<text class="row-label">月工资</text>
|
|
|
- <text class="row-value">{{ detail.monthly_salary || '0' }}</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.monthly_salary) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
<text class="row-label">应出勤天数</text>
|
|
|
- <text class="row-value">{{ detail.should_attend_days || '0' }}</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.should_attend_days) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">实出勤天数</text>
|
|
|
- <text class="row-value">{{ detail.actual_attend_days || '0' }}</text>
|
|
|
+ <text class="row-label">实际出勤天数</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.actual_attend_days) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">休假天数</text>
|
|
|
- <text class="row-value">{{ detail.leave_days || '0' }}</text>
|
|
|
+ <text class="row-label">粉尘/噪音补贴</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.dust_noise_allowance) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">公司放假天数</text>
|
|
|
- <text class="row-value">{{ detail.company_holiday_days || '0' }}</text>
|
|
|
+ <text class="row-label">月工资*</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.monthly_salary_star) }}</text>
|
|
|
</view>
|
|
|
- </view>
|
|
|
-
|
|
|
- <!-- 薪资结构 -->
|
|
|
- <view class="card">
|
|
|
- <view class="card-title">薪资结构</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">平时加班小时</text>
|
|
|
- <text class="row-value">{{ detail.normal_overtime_hours || '0' }}</text>
|
|
|
+ <text class="row-label">应出勤天数*</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.should_attend_days_star) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">周末加班小时</text>
|
|
|
- <text class="row-value">{{ detail.weekend_overtime_hours || '0' }}</text>
|
|
|
+ <text class="row-label">实际出勤天数*</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.actual_attend_days_star) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">节假日加班小时</text>
|
|
|
- <text class="row-value">{{ detail.holiday_overtime_hours || '0' }}</text>
|
|
|
- </view>
|
|
|
- <view class="card-row">
|
|
|
- <text class="row-label">夜班天数</text>
|
|
|
- <text class="row-value">{{ detail.night_shift_days || '0' }}</text>
|
|
|
+ <text class="row-label">轮休天数</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.rotating_rest_days) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">基本工资</text>
|
|
|
- <text class="row-value">{{ detail.basic_salary || '0' }}</text>
|
|
|
+ <text class="row-label">病假天数</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.sick_leave_days) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">岗位工资</text>
|
|
|
- <text class="row-value">{{ detail.position_salary || '0' }}</text>
|
|
|
+ <text class="row-label">请假天数</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.personal_leave_days) }}</text>
|
|
|
</view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <!-- 加班情况 -->
|
|
|
+ <view class="card">
|
|
|
+<!-- <view class="card-title">加班情况</view>-->
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">工作绩效</text>
|
|
|
- <text class="row-value">{{ detail.work_performance || '0' }}</text>
|
|
|
+ <text class="row-label">平时加班小时</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.normal_overtime_hours) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">安全绩效</text>
|
|
|
- <text class="row-value">{{ detail.safety_performance || '0' }}</text>
|
|
|
+ <text class="row-label">周末加班小时</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.weekend_overtime_hours) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">全勤工资</text>
|
|
|
- <text class="row-value">{{ detail.full_attendance_salary || '0' }}</text>
|
|
|
+ <text class="row-label">节假日加班小时</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.holiday_overtime_hours) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">岗位津贴</text>
|
|
|
- <text class="row-value">{{ detail.position_allowance || '0' }}</text>
|
|
|
+ <text class="row-label">夜班天数</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.night_shift_days) }}</text>
|
|
|
</view>
|
|
|
+
|
|
|
<view class="card-row">
|
|
|
<text class="row-label">夜中班津贴</text>
|
|
|
- <text class="row-value">{{ detail.night_shift_allowance || '0' }}</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.night_shift_allowance) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
<text class="row-label">平时加班工资</text>
|
|
|
- <text class="row-value">{{ detail.normal_overtime_pay || '0' }}</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.normal_overtime_pay) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
<text class="row-label">周末加班工资</text>
|
|
|
- <text class="row-value">{{ detail.weekend_overtime_pay || '0' }}</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.weekend_overtime_pay) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
<text class="row-label">节假日加班工资</text>
|
|
|
- <text class="row-value">{{ detail.holiday_overtime_pay || '0' }}</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.holiday_overtime_pay) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
<text class="row-label">放假补贴</text>
|
|
|
- <text class="row-value">{{ detail.holiday_subsidy || '0' }}</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.holiday_subsidy) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">其它收入</text>
|
|
|
- <text class="row-value">{{ detail.other_income || '0' }}</text>
|
|
|
+ <text class="row-label">病假工资</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.sick_leave_salary) }}</text>
|
|
|
+ </view>
|
|
|
+ <view class="card-row">
|
|
|
+ <text class="row-label">部门绩效奖金</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.department_performance) }}</text>
|
|
|
+ </view>
|
|
|
+ <view class="card-row">
|
|
|
+ <text class="row-label">其它</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.other_income) }}</text>
|
|
|
+ </view>
|
|
|
+ <view class="card-row">
|
|
|
+ <text class="row-label">体检报销</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.medical_exam_reimburse) }}</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
- <!-- 扣款与应发 -->
|
|
|
+ <!-- 薪资结构(扣款项) -->
|
|
|
<view class="card">
|
|
|
<view class="card-row">
|
|
|
<text class="row-label">全勤工资扣款</text>
|
|
|
- <text class="row-value deduction">{{ detail.full_attendance_deduction || '0' }}</text>
|
|
|
- </view>
|
|
|
- <view class="card-row">
|
|
|
- <text class="row-label">绩效工资扣款</text>
|
|
|
- <text class="row-value deduction">{{ detail.performance_deduction || '0' }}</text>
|
|
|
+ <text class="row-value deduction">{{ formatNumber(detail.full_attendance_deduction) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row highlight">
|
|
|
<text class="row-label">应发工资</text>
|
|
|
- <text class="row-value">{{ detail.should_pay_salary || '0' }}</text>
|
|
|
- </view>
|
|
|
- <view class="card-row">
|
|
|
- <text class="row-label">体检费报销</text>
|
|
|
- <text class="row-value">{{ detail.medical_exam_reimburse || '0' }}</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.should_pay_salary) }}</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
@@ -147,23 +148,23 @@
|
|
|
<view class="card-title">五险缴费</view>
|
|
|
<view class="card-row">
|
|
|
<text class="row-label">养老保险</text>
|
|
|
- <text class="row-value deduction">{{ detail.pension_insurance || '0' }}</text>
|
|
|
+ <text class="row-value deduction">{{ formatNumber(detail.pension_insurance) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">失业险</text>
|
|
|
- <text class="row-value deduction">{{ detail.unemployment_insurance || '0' }}</text>
|
|
|
+ <text class="row-label">失业保险</text>
|
|
|
+ <text class="row-value deduction">{{ formatNumber(detail.unemployment_insurance) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">医疗保险</text>
|
|
|
- <text class="row-value deduction">{{ detail.medical_insurance || '0' }}</text>
|
|
|
+ <text class="row-label">基本医疗</text>
|
|
|
+ <text class="row-value deduction">{{ formatNumber(detail.medical_insurance) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">大病</text>
|
|
|
- <text class="row-value deduction">{{ detail.critical_illness || '0' }}</text>
|
|
|
+ <text class="row-label">大病医疗</text>
|
|
|
+ <text class="row-value deduction">{{ formatNumber(detail.critical_illness) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
- <text class="row-label">五险小计</text>
|
|
|
- <text class="row-value deduction">{{ detail.insurance_subtotal || '0' }}</text>
|
|
|
+ <text class="row-label">小计</text>
|
|
|
+ <text class="row-value deduction">{{ formatNumber(detail.insurance_subtotal) }}</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
@@ -171,41 +172,58 @@
|
|
|
<view class="card">
|
|
|
<view class="card-row">
|
|
|
<text class="row-label">个人所得税</text>
|
|
|
- <text class="row-value deduction">{{ detail.personal_income_tax || '0' }}</text>
|
|
|
+ <text class="row-value deduction">{{ formatNumber(detail.personal_income_tax) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row">
|
|
|
<text class="row-label">其他扣款</text>
|
|
|
- <text class="row-value deduction">{{ detail.other_deduction || '0' }}</text>
|
|
|
+ <text class="row-value deduction">{{ formatNumber(detail.other_deduction) }}</text>
|
|
|
</view>
|
|
|
<view class="card-row final">
|
|
|
<text class="row-label">实发工资</text>
|
|
|
- <text class="row-value">{{ detail.actual_pay_salary || '0' }}</text>
|
|
|
+ <text class="row-value">{{ formatNumber(detail.actual_pay_salary) }}</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
<!-- 备注信息 -->
|
|
|
- <view class="card" v-if="detail.remark || detail.no_insurance_reason">
|
|
|
- <view class="remark-item" v-if="detail.remark">
|
|
|
+ <view class="card" v-if="detail.remark">
|
|
|
+ <view class="remark-item">
|
|
|
<text class="remark-label">备注</text>
|
|
|
<text class="remark-value">{{ detail.remark }}</text>
|
|
|
</view>
|
|
|
- <view class="remark-item" v-if="detail.no_insurance_reason">
|
|
|
- <text class="remark-label">未缴五险原因</text>
|
|
|
- <text class="remark-value">{{ detail.no_insurance_reason }}</text>
|
|
|
- </view>
|
|
|
</view>
|
|
|
</scroll-view>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { ref } from 'vue';
|
|
|
+import { ref, computed } from 'vue';
|
|
|
import { onLoad } from '@dcloudio/uni-app';
|
|
|
import { getMySalaryDetail } from '@/api/salary.js';
|
|
|
|
|
|
const detail = ref({});
|
|
|
const universalid = ref('');
|
|
|
|
|
|
+// 格式化数字:保留两位小数
|
|
|
+function formatNumber(value) {
|
|
|
+ if (value == null || value === '' || value === '-' || value === 'null' || value === 'undefined') {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ var str = String(value).trim();
|
|
|
+ if (str === '' || str === '-' || str === 'null' || str === 'undefined') {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ var num = parseFloat(str);
|
|
|
+ if (isNaN(num)) {
|
|
|
+ return str;
|
|
|
+ }
|
|
|
+ // 如果本来就是整数,直接返回
|
|
|
+ if (num === Math.floor(num) && !String(num).includes('.')) {
|
|
|
+ return String(Math.floor(num));
|
|
|
+ }
|
|
|
+ // 保留两位小数(四舍五入)
|
|
|
+ return num.toFixed(2);
|
|
|
+}
|
|
|
+
|
|
|
onLoad((options) => {
|
|
|
if (options.universalid) {
|
|
|
universalid.value = options.universalid;
|