From c61bc857b627a58cd741207cb9e93d8e446e357e Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期二, 10 二月 2026 10:28:07 +0800
Subject: [PATCH] 人员薪资
---
src/pages/index.vue | 47 ++-
src/pages/humanResources/attendance/checkin.vue | 2
src/pages.json | 18 +
src/pages/humanResources/attendance/report.vue | 0
src/pages/humanResources/monthlyStatistics/detail.vue | 357 +++++++++++++++++++++++++++
src/api/personnelManagement/monthlyStatistics.js | 65 +++++
src/pages/humanResources/monthlyStatistics/index.vue | 247 +++++++++++++++++++
7 files changed, 712 insertions(+), 24 deletions(-)
diff --git a/src/api/personnelManagement/monthlyStatistics.js b/src/api/personnelManagement/monthlyStatistics.js
new file mode 100644
index 0000000..a070d0f
--- /dev/null
+++ b/src/api/personnelManagement/monthlyStatistics.js
@@ -0,0 +1,65 @@
+import request from "@/utils/request";
+
+// 浜哄憳钖祫鍙拌处鍒楄〃
+export function monthlyStatisticsListPage(query) {
+ return request({
+ url: "/compensationPerformance/listPage",
+ method: "get",
+ params: query,
+ });
+}
+
+// 浜哄憳钖祫鍙拌处璇︽儏
+export function monthlyStatisticsGet(id) {
+ return request({
+ url: "/monthlyStatistics/get",
+ method: "get",
+ params: { id },
+ });
+}
+
+// 鏂板浜哄憳钖祫鍙拌处
+export function monthlyStatisticsAdd(data) {
+ return request({
+ url: "/compensationPerformance/add",
+ method: "post",
+ data,
+ });
+}
+
+// 缂栬緫浜哄憳钖祫鍙拌处
+export function monthlyStatisticsUpdate(data) {
+ return request({
+ url: "/compensationPerformance/update",
+ method: "post",
+ data,
+ });
+}
+
+// 鍒犻櫎浜哄憳钖祫鍙拌处
+export function monthlyStatisticsDelete(ids) {
+ return request({
+ url: "/compensationPerformance/delete",
+ method: "delete",
+ data: ids,
+ });
+}
+
+// 瀵煎嚭浜哄憳钖祫鍙拌处
+export function monthlyStatisticsExport(query) {
+ return request({
+ url: "/compensationPerformance/export",
+ method: "get",
+ params: query,
+ responseType: "blob",
+ });
+}
+
+// 浜哄憳鍒楄〃
+export function staffOnJobList(query) {
+ return request({
+ url: "/staff/staffOnJob/list",
+ method: "get",
+ params: query,
+ });
+}
diff --git a/src/pages.json b/src/pages.json
index 351c7dc..4bf158d 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -858,18 +858,32 @@
}
},
{
- "path": "pages/attendance/checkin",
+ "path": "pages/humanResources/attendance/checkin",
"style": {
"navigationBarTitleText": "鎵撳崱绛惧埌",
"navigationStyle": "custom"
}
},
{
- "path": "pages/attendance/report",
+ "path": "pages/humanResources/attendance/report",
"style": {
"navigationBarTitleText": "鑰冨嫟鏃ユ姤",
"navigationStyle": "custom"
}
+ },
+ {
+ "path": "pages/humanResources/monthlyStatistics/index",
+ "style": {
+ "navigationBarTitleText": "钖祫鍙拌处",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/humanResources/monthlyStatistics/detail",
+ "style": {
+ "navigationBarTitleText": "钖祫鍙拌处璇︽儏",
+ "navigationStyle": "custom"
+ }
}
],
"subPackages": [
diff --git a/src/pages/attendance/checkin.vue b/src/pages/humanResources/attendance/checkin.vue
similarity index 99%
rename from src/pages/attendance/checkin.vue
rename to src/pages/humanResources/attendance/checkin.vue
index 18a87d7..970d35a 100644
--- a/src/pages/attendance/checkin.vue
+++ b/src/pages/humanResources/attendance/checkin.vue
@@ -186,7 +186,7 @@
// 瀵艰埅鍒拌缁嗘姤鍛婇〉闈�
const navigateToReport = () => {
uni.navigateTo({
- url: "/pages/attendance/report",
+ url: "/pages/humanResources/attendance/report",
});
};
diff --git a/src/pages/attendance/report.vue b/src/pages/humanResources/attendance/report.vue
similarity index 100%
rename from src/pages/attendance/report.vue
rename to src/pages/humanResources/attendance/report.vue
diff --git a/src/pages/humanResources/monthlyStatistics/detail.vue b/src/pages/humanResources/monthlyStatistics/detail.vue
new file mode 100644
index 0000000..732aa2a
--- /dev/null
+++ b/src/pages/humanResources/monthlyStatistics/detail.vue
@@ -0,0 +1,357 @@
+<template>
+ <view class="hazard-source-detail">
+ <PageHeader :title="isEdit ? '缂栬緫钖祫鍙拌处' : '鏂板钖祫鍙拌处'"
+ @back="goBack" />
+ <u-form @submit="handleSubmit"
+ ref="formRef"
+ label-width="110">
+ <!-- 钖祫淇℃伅 -->
+ <u-cell-group title="钖祫淇℃伅">
+ <u-form-item label="缁熻鏈堜唤"
+ prop="payDate"
+ required
+ border-bottom>
+ <u-input v-model="form.payDate"
+ placeholder="璇烽�夋嫨鏈堜唤"
+ @click="showDatePicker"
+ readonly />
+ <template #right>
+ <up-icon name="arrow-right"
+ @click="showDatePicker"></up-icon>
+ </template>
+ </u-form-item>
+ <u-form-item label="鍛樺伐濮撳悕"
+ prop="staffId"
+ required
+ border-bottom>
+ <u-input v-model="form.staffName"
+ placeholder="璇烽�夋嫨鍛樺伐"
+ @click="showStaffSheet"
+ readonly />
+ <template #right>
+ <up-icon name="arrow-right"
+ @click="showStaffSheet"></up-icon>
+ </template>
+ </u-form-item>
+ <u-form-item label="鍩烘湰宸ヨ祫"
+ prop="basicSalary"
+ required
+ border-bottom>
+ <u-input v-model="form.basicSalary"
+ type="number"
+ placeholder="璇疯緭鍏ュ熀鏈伐璧�" />
+ </u-form-item>
+ <u-form-item label="璁′欢宸ヨ祫"
+ prop="pieceworkSalary"
+ border-bottom>
+ <u-input v-model="form.pieceworkSalary"
+ type="number"
+ placeholder="璇疯緭鍏ヨ浠跺伐璧�" />
+ </u-form-item>
+ <u-form-item label="璁℃椂宸ヨ祫"
+ prop="hourlySalary"
+ border-bottom>
+ <u-input v-model="form.hourlySalary"
+ type="number"
+ placeholder="璇疯緭鍏ヨ鏃跺伐璧�" />
+ </u-form-item>
+ <u-form-item label="鍏朵粬鏀跺叆"
+ prop="otherIncome"
+ border-bottom>
+ <u-input v-model="form.otherIncome"
+ type="number"
+ placeholder="璇疯緭鍏ュ叾浠栨敹鍏�" />
+ </u-form-item>
+ <u-form-item label="绀句繚涓汉"
+ prop="socialSecurityIndividuals"
+ border-bottom>
+ <u-input v-model="form.socialSecurityIndividuals"
+ type="number"
+ placeholder="璇疯緭鍏ョぞ淇濅釜浜�" />
+ </u-form-item>
+ <u-form-item label="鍏Н閲戜釜浜�"
+ prop="providentFundIndividuals"
+ border-bottom>
+ <u-input v-model="form.providentFundIndividuals"
+ type="number"
+ placeholder="璇疯緭鍏ュ叕绉噾涓汉" />
+ </u-form-item>
+ <u-form-item label="涓汉鎵�寰楃◣"
+ prop="personalIncomeTax"
+ border-bottom>
+ <u-input v-model="form.personalIncomeTax"
+ type="number"
+ placeholder="璇疯緭鍏ヤ釜浜烘墍寰楃◣" />
+ </u-form-item>
+ <u-form-item label="鍏朵粬鎵f"
+ prop="otherDeductions"
+ border-bottom>
+ <u-input v-model="form.otherDeductions"
+ type="number"
+ placeholder="璇疯緭鍏ュ叾浠栨墸娆�" />
+ </u-form-item>
+ <u-form-item label="澶囨敞"
+ prop="remark"
+ border-bottom>
+ <u-textarea v-model="form.remark"
+ placeholder="璇疯緭鍏ュ娉�"
+ :rows="3"
+ :autoHeight="true" />
+ </u-form-item>
+ </u-cell-group>
+ <!-- 鎻愪氦鎸夐挳 -->
+ <view class="footer-btns">
+ <u-button class="cancel-btn"
+ @click="goBack">鍙栨秷</u-button>
+ <u-button class="sign-btn"
+ type="primary"
+ @click="handleSubmit"
+ :loading="loading">{{ isEdit ? '鏇存柊' : '淇濆瓨' }}</u-button>
+ </view>
+ </u-form>
+ <!-- 鍛樺伐閫夋嫨鍣� -->
+ <up-action-sheet :show="staffSheetVisible"
+ :actions="staffOptions"
+ @select="handleStaffSelect"
+ @close="staffSheetVisible = false"
+ title="閫夋嫨鍛樺伐" />
+ <!-- 鏃ユ湡閫夋嫨鍣� -->
+ <up-datetime-picker :show="datePickerVisible"
+ v-model="currentDate"
+ @confirm="onDateConfirm"
+ @cancel="datePickerVisible = false"
+ mode="month" />
+ </view>
+</template>
+
+<script setup>
+ // 鏇挎崲 toast 鏂规硶
+ defineOptions({ name: "monthly-statistics-detail" });
+ const showToast = message => {
+ uni.showToast({
+ title: message,
+ icon: "none",
+ });
+ };
+
+ import { ref, onMounted } from "vue";
+ import PageHeader from "@/components/PageHeader.vue";
+ import {
+ monthlyStatisticsAdd,
+ monthlyStatisticsUpdate,
+ staffOnJobList,
+ } from "@/api/personnelManagement/monthlyStatistics";
+ import dayjs from "dayjs";
+ import { onLoad } from "@dcloudio/uni-app";
+
+ // 琛ㄥ崟鏁版嵁
+ const form = ref({
+ id: "",
+ payDate: "",
+ staffId: "",
+ staffName: "",
+ basicSalary: 0,
+ pieceworkSalary: 0,
+ hourlySalary: 0,
+ otherIncome: 0,
+ socialSecurityIndividuals: 0,
+ providentFundIndividuals: 0,
+ personalIncomeTax: 0,
+ otherDeductions: 0,
+ payableWages: 0,
+ deductibleWages: 0,
+ actualWages: 0,
+ remark: "",
+ });
+
+ // 椤甸潰鐘舵��
+ const loading = ref(false);
+ const formRef = ref(null);
+ const isEdit = ref(false);
+
+ // 鍛樺伐閫夋嫨鍣�
+ const staffSheetVisible = ref(false);
+ const staffOptions = ref([]);
+ const staffList = ref([]);
+ const showStaffSheet = () => {
+ if (staffOptions.value.length === 0) {
+ loadStaffList();
+ } else {
+ staffSheetVisible.value = true;
+ }
+ };
+ const handleStaffSelect = item => {
+ const staff = staffList.value.find(s => s.id === item.value);
+ if (staff) {
+ form.value.staffId = staff.id;
+ form.value.staffName = staff.staffName;
+ }
+ staffSheetVisible.value = false;
+ };
+ const loadStaffList = () => {
+ staffOnJobList().then(res => {
+ if (res.code === 200) {
+ staffList.value = res.data || [];
+ staffOptions.value = staffList.value.map(item => ({
+ value: item.id,
+ name: item.staffName,
+ subname: `宸ュ彿: ${item.staffNo}`,
+ }));
+ staffSheetVisible.value = true;
+ }
+ });
+ };
+
+ // 鏃ユ湡閫夋嫨鍣�
+ const datePickerVisible = ref(false);
+ const currentDate = ref(Date.now());
+ const showDatePicker = () => {
+ datePickerVisible.value = true;
+ };
+ const onDateConfirm = e => {
+ form.value.payDate = dayjs(e.value).format("YYYY-MM");
+ currentDate.value = e.value;
+ datePickerVisible.value = false;
+ };
+
+ // 杩斿洖涓婁竴椤�
+ const goBack = () => {
+ // 杩斿洖鏃舵竻闄ゆ湰鍦板瓨鍌ㄧ殑鏁版嵁
+ uni.removeStorageSync("monthlyStatistics");
+ uni.navigateBack();
+ };
+
+ // 鎻愪氦琛ㄥ崟
+ const handleSubmit = async () => {
+ if (!form.value.payDate) {
+ showToast("璇烽�夋嫨缁熻鏈堜唤");
+ return;
+ }
+
+ if (!form.value.staffId) {
+ showToast("璇烽�夋嫨鍛樺伐");
+ return;
+ }
+
+ if (!form.value.basicSalary) {
+ showToast("璇疯緭鍏ュ熀鏈伐璧�");
+ return;
+ }
+
+ // 璁$畻搴斿彂宸ヨ祫銆佸簲鎵e伐璧勫拰瀹炲彂宸ヨ祫
+ const payableWages =
+ Number(form.value.basicSalary) +
+ Number(form.value.pieceworkSalary) +
+ Number(form.value.hourlySalary) +
+ Number(form.value.otherIncome);
+ const deductibleWages =
+ Number(form.value.socialSecurityIndividuals) +
+ Number(form.value.providentFundIndividuals) +
+ Number(form.value.personalIncomeTax) +
+ Number(form.value.otherDeductions);
+ const actualWages = payableWages - deductibleWages;
+
+ const submitData = {
+ ...form.value,
+ payableWages,
+ deductibleWages,
+ actualWages,
+ };
+
+ try {
+ loading.value = true;
+
+ if (isEdit.value) {
+ const { code } = await monthlyStatisticsUpdate(submitData);
+ if (code === 200) {
+ showToast("鏇存柊鎴愬姛");
+ setTimeout(() => {
+ goBack();
+ }, 500);
+ } else {
+ loading.value = false;
+ showToast("鏇存柊澶辫触锛岃閲嶈瘯");
+ }
+ } else {
+ const { code } = await monthlyStatisticsAdd(submitData);
+ if (code === 200) {
+ showToast("淇濆瓨鎴愬姛");
+ setTimeout(() => {
+ goBack();
+ }, 500);
+ } else {
+ loading.value = false;
+ showToast("淇濆瓨澶辫触锛岃閲嶈瘯");
+ }
+ }
+ } catch (e) {
+ loading.value = false;
+ console.error("鎻愪氦澶辫触:", e);
+ showToast("鎻愪氦澶辫触锛岃閲嶈瘯");
+ }
+ };
+
+ onLoad(() => {
+ // 缂栬緫钖祫鍙拌处鏃讹紝浠庢湰鍦板瓨鍌ㄨ幏鍙栨暟鎹�
+ const monthlyStatistics = uni.getStorageSync("monthlyStatistics");
+ if (monthlyStatistics.id) {
+ form.value = monthlyStatistics;
+ isEdit.value = true;
+ } else {
+ isEdit.value = false;
+ }
+ });
+
+ onMounted(() => {
+ // 璁剧疆榛樿鏃堕棿
+ if (!isEdit.value) {
+ form.value.payDate = dayjs().format("YYYY-MM");
+ currentDate.value = Date.now();
+ }
+ });
+</script>
+
+<style scoped lang="scss">
+ @import "@/static/scss/form-common.scss";
+ .hazard-source-detail {
+ min-height: 100vh;
+ background: #f8f9fa;
+ padding-bottom: 5rem;
+ }
+
+ .footer-btns {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: #fff;
+ display: flex;
+ justify-content: space-around;
+ align-items: center;
+ padding: 0.75rem 0;
+ box-shadow: 0 -0.125rem 0.5rem rgba(0, 0, 0, 0.05);
+ z-index: 1000;
+ }
+
+ .cancel-btn {
+ font-weight: 400;
+ font-size: 1rem;
+ color: #666;
+ background: #f5f5f5;
+ border: 1px solid #ddd;
+ width: 45%;
+ height: 2.5rem;
+ border-radius: 2.5rem 2.5rem 2.5rem 2.5rem;
+ }
+
+ .sign-btn {
+ font-weight: 500;
+ font-size: 1rem;
+ color: #fff;
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+ border: none;
+ width: 45%;
+ height: 2.5rem;
+ border-radius: 2.5rem 2.5rem 2.5rem 2.5rem;
+ }
+</style>
\ No newline at end of file
diff --git a/src/pages/humanResources/monthlyStatistics/index.vue b/src/pages/humanResources/monthlyStatistics/index.vue
new file mode 100644
index 0000000..f1edbfc
--- /dev/null
+++ b/src/pages/humanResources/monthlyStatistics/index.vue
@@ -0,0 +1,247 @@
+<template>
+ <view class="sales-accoun">
+ <!-- 浣跨敤閫氱敤椤甸潰澶撮儴缁勪欢 -->
+ <PageHeader title="钖祫鍙拌处"
+ @back="goBack" />
+ <!-- 鎼滅储鍜岀瓫閫夊尯鍩� -->
+ <view class="search-section">
+ <view class="search-bar">
+ <view class="search-input">
+ <up-input class="search-text"
+ placeholder="璇疯緭鍏ュ憳宸ュ鍚�"
+ v-model="searchKeyword"
+ @blur="getList"
+ clearable />
+ </view>
+ <view class="filter-button"
+ @click="getList">
+ <u-icon name="search"
+ size="24"
+ color="#999"></u-icon>
+ </view>
+ </view>
+ </view>
+ <!-- 钖祫鍙拌处鍒楄〃 -->
+ <view class="ledger-list"
+ v-if="ledgerList.length > 0">
+ <view v-for="(item, index) in ledgerList"
+ :key="index">
+ <view class="ledger-item">
+ <view class="item-header">
+ <view class="item-left">
+ <view class="document-icon">
+ <up-icon name="file-text"
+ size="16"
+ color="#ffffff"></up-icon>
+ </view>
+ <text class="item-id">钖祫鏈堜唤锛歿{ item.payDate }}</text>
+ </view>
+ </view>
+ <up-divider></up-divider>
+ <view class="item-details">
+ <view class="detail-row">
+ <text class="detail-label">鍛樺伐濮撳悕</text>
+ <text class="detail-value">{{ item.staffName || '-' }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">鍩烘湰宸ヨ祫</text>
+ <text class="detail-value">{{ item.basicSalary || 0 }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">璁′欢宸ヨ祫</text>
+ <text class="detail-value">{{ item.pieceworkSalary || 0 }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">璁℃椂宸ヨ祫</text>
+ <text class="detail-value">{{ item.hourlySalary || 0 }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">鍏朵粬鏀跺叆</text>
+ <text class="detail-value">{{ item.otherIncome || 0 }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">搴斿彂宸ヨ祫</text>
+ <text class="detail-value">{{ item.payableWages || 0 }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">搴旀墸宸ヨ祫</text>
+ <text class="detail-value">{{ item.deductibleWages || 0 }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">瀹炲彂宸ヨ祫</text>
+ <text class="detail-value">{{ item.actualWages || 0 }}</text>
+ </view>
+ </view>
+ <!-- 鎸夐挳鍖哄煙 -->
+ <view class="action-buttons">
+ <u-button type="primary"
+ size="small"
+ class="action-btn"
+ @click="editItem(item)">
+ 缂栬緫
+ </u-button>
+ <u-button type="error"
+ size="small"
+ class="action-btn"
+ @click="deleteItem(item)">
+ 鍒犻櫎
+ </u-button>
+ </view>
+ </view>
+ </view>
+ </view>
+ <view v-else
+ class="no-data">
+ <text>鏆傛棤钖祫鍙拌处鏁版嵁</text>
+ </view>
+ <!-- 娴姩鏂板鎸夐挳 -->
+ <view class="fab-button"
+ @click="addItem">
+ <up-icon name="plus"
+ size="24"
+ color="#ffffff"></up-icon>
+ </view>
+ </view>
+</template>
+
+<script setup>
+ import { ref, onMounted } from "vue";
+ import { onShow } from "@dcloudio/uni-app";
+ import PageHeader from "@/components/PageHeader.vue";
+ import {
+ monthlyStatisticsListPage,
+ monthlyStatisticsDelete,
+ } from "@/api/personnelManagement/monthlyStatistics";
+ import useUserStore from "@/store/modules/user";
+
+ // 鏇挎崲 toast 鏂规硶
+ defineOptions({ name: "monthly-statistics-index" });
+ const showToast = message => {
+ uni.showToast({
+ title: message,
+ icon: "none",
+ });
+ };
+
+ const userStore = useUserStore();
+
+ // 鎼滅储鍏抽敭璇�
+ const searchKeyword = ref("");
+
+ // 钖祫鍙拌处鏁版嵁
+ const ledgerList = ref([]);
+ // 杩斿洖涓婁竴椤�
+ const goBack = () => {
+ uni.navigateBack();
+ };
+
+ // 鏌ヨ鍒楄〃
+ const getList = () => {
+ showLoadingToast("鍔犺浇涓�...");
+ const params = {
+ current: -1,
+ size: -1,
+ staffName: searchKeyword.value,
+ };
+ monthlyStatisticsListPage(params)
+ .then(res => {
+ ledgerList.value = res.records || res.data?.records || [];
+ closeToast();
+ })
+ .catch(() => {
+ closeToast();
+ showToast("鑾峰彇鏁版嵁澶辫触");
+ });
+ };
+
+ // 鏄剧ず鍔犺浇鎻愮ず
+ const showLoadingToast = message => {
+ uni.showLoading({
+ title: message,
+ mask: true,
+ });
+ };
+
+ // 鍏抽棴鎻愮ず
+ const closeToast = () => {
+ uni.hideLoading();
+ };
+
+ // 鏂板钖祫鍙拌处
+ const addItem = () => {
+ uni.setStorageSync("monthlyStatistics", {});
+ uni.navigateTo({
+ url: "/pages/humanResources/monthlyStatistics/detail",
+ });
+ };
+ // 缂栬緫钖祫鍙拌处
+ const editItem = item => {
+ uni.setStorageSync("monthlyStatistics", item);
+ uni.navigateTo({
+ url: "/pages/humanResources/monthlyStatistics/detail",
+ });
+ };
+ // 鍒犻櫎钖祫鍙拌处
+ const deleteItem = item => {
+ uni.showModal({
+ title: "鍒犻櫎纭",
+ content: `纭畾瑕佸垹闄よ钖祫鍙拌处璁板綍鍚楋紵`,
+ success: res => {
+ if (res.confirm) {
+ deleteItemById(item.id);
+ }
+ },
+ });
+ };
+
+ // 鍒犻櫎钖祫鍙拌处璁板綍
+ const deleteItemById = id => {
+ showLoadingToast("鍒犻櫎涓�...");
+ monthlyStatisticsDelete([id])
+ .then(() => {
+ closeToast();
+ showToast("鍒犻櫎鎴愬姛");
+ getList();
+ })
+ .catch(() => {
+ closeToast();
+ showToast("鍒犻櫎澶辫触");
+ });
+ };
+
+ onMounted(() => {
+ getList();
+ });
+
+ onShow(() => {
+ getList();
+ });
+</script>
+
+<style scoped lang="scss">
+ @import "../../../styles/sales-common.scss";
+
+ // 椤甸潰鐗瑰畾鐨勬牱寮忚鐩�
+ .sales-accoun {
+ min-height: 100vh;
+ background: #f8f9fa;
+ position: relative;
+ padding-bottom: 80px;
+ }
+
+ // 鐗瑰畾鐨勫浘鏍囨牱寮�
+ .document-icon {
+ background: #667eea; // 淇濇寔椤甸潰鐗规湁鐨勮儗鏅壊
+ }
+
+ // 鐗规湁鏍峰紡
+ .detail-value {
+ word-break: break-all; // 淇濈暀椤甸潰鐗规湁鐨勬枃鏈崲琛屾牱寮�
+ }
+
+ // 鐗瑰畾鐨勬诞鍔ㄦ寜閽牱寮�
+ .fab-button {
+ background: #667eea; // 淇濇寔椤甸潰鐗规湁鐨勮儗鏅壊
+ box-shadow: 0 4px 16px rgba(102, 126, 234, 0.3); // 淇濇寔椤甸潰鐗规湁鐨勯槾褰辨晥鏋�
+ }
+</style>
\ No newline at end of file
diff --git a/src/pages/index.vue b/src/pages/index.vue
index 7094cf9..e9bdb55 100644
--- a/src/pages/index.vue
+++ b/src/pages/index.vue
@@ -454,29 +454,29 @@
label: "璁惧淇濆吇",
},
{
- icon: "/static/images/icon/guzhangfenxi@2x.png",
- label: "鍒嗘瀽杩芥函",
- bgColor: "#ff9800",
- },
- {
- icon: "/static/images/icon/zhinengpaidan@2x.png",
- label: "鏅鸿兘娲惧崟",
- bgColor: "#ff6b35",
- },
- {
- icon: "/static/images/icon/zuoyezhidao@2x.png",
- label: "浣滀笟鎸囧",
- bgColor: "#4caf50",
- },
- {
- icon: "/static/images/icon/jieguoyanzheng@2x.png",
- label: "缁撴灉楠岃瘉",
- bgColor: "#9c27b0",
- },
- {
icon: "/static/images/icon/xunjianshangchuan@2x.png",
label: "宸℃涓婁紶",
},
+ // {
+ // icon: "/static/images/icon/guzhangfenxi@2x.png",
+ // label: "鍒嗘瀽杩芥函",
+ // bgColor: "#ff9800",
+ // },
+ // {
+ // icon: "/static/images/icon/zhinengpaidan@2x.png",
+ // label: "鏅鸿兘娲惧崟",
+ // bgColor: "#ff6b35",
+ // },
+ // {
+ // icon: "/static/images/icon/zuoyezhidao@2x.png",
+ // label: "浣滀笟鎸囧",
+ // bgColor: "#4caf50",
+ // },
+ // {
+ // icon: "/static/images/icon/jieguoyanzheng@2x.png",
+ // label: "缁撴灉楠岃瘉",
+ // bgColor: "#9c27b0",
+ // },
]);
// 澶勭悊甯哥敤鍔熻兘鐐瑰嚮
@@ -769,7 +769,12 @@
break;
case "鎵撳崱绛惧埌":
uni.navigateTo({
- url: "/pages/attendance/checkin",
+ url: "/pages/humanResources/attendance/checkin",
+ });
+ break;
+ case "浜哄憳钖祫":
+ uni.navigateTo({
+ url: "/pages/humanResources/monthlyStatistics/index",
});
break;
default:
--
Gitblit v1.9.3