From ce5cbe7dabc3c4e48bd90f2ff69dc5471162db07 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期四, 05 十一月 2026 14:45:29 +0800
Subject: [PATCH] fix(app): 商机整单折扣算法修正、薪资发放生成台账权限码修正
---
src/pages/crm/business/form.vue | 13 +++++++------
src/pages/hrm/salary-payment/index.vue | 4 +++-
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/src/pages/crm/business/form.vue b/src/pages/crm/business/form.vue
index de700c0..b9d7893 100644
--- a/src/pages/crm/business/form.vue
+++ b/src/pages/crm/business/form.vue
@@ -58,12 +58,13 @@
const materialOptions = computed(() => materials.value.map(item => materialOptionText(item)));
function recalculate() {
form.totalProductPrice = productTotal.value;
- form.totalPrice = Number(
- (
- (productTotal.value * (100 - Number(form.discountPercent ?? 0))) /
- 100
- ).toFixed(2)
- );
+ // 鎶樻墸鐜囪涔夛細濉� 98 琛ㄧず鎸� 98% 璁′环锛堝嵆 98 鎶橈級锛涗负绌烘垨 0 鏃惰涓轰笉鎵撴姌
+ const discountPercent = Number(form.discountPercent ?? 0);
+ const total =
+ !discountPercent
+ ? productTotal.value
+ : (productTotal.value * discountPercent) / 100;
+ form.totalPrice = Number(total.toFixed(2));
}
function changeDiscount(value: string) {
form.discountPercent = Number(value || 0);
diff --git a/src/pages/hrm/salary-payment/index.vue b/src/pages/hrm/salary-payment/index.vue
index c1881c2..bd1df00 100644
--- a/src/pages/hrm/salary-payment/index.vue
+++ b/src/pages/hrm/salary-payment/index.vue
@@ -8,6 +8,8 @@
const rows = ref<SalaryPayment[]>([]), period = ref(new Date().toISOString().slice(0, 7)), loading = ref(false), pageNo = ref(1), total = ref(0);
const pageSize = 15;
const canQuery = computed(() => hasPermission("hrm:salary-payment:query"));
+// 涓庡悗绔� /generate 鎺ュ彛鍙婅彍鍗曟潈闄愰」涓�鑷达紝娉ㄦ剰涓嶆槸 hrm:salary-payment:generate
+const canGenerate = computed(() => hasPermission("hrm:salary:generate"));
const hasMore = computed(() => rows.value.length < total.value);
async function load(reset = true) {
if (!state.accessToken || !canQuery.value || loading.value) return;
@@ -35,5 +37,5 @@
onPullDownRefresh(() => load(true));
onReachBottom(() => { if (hasMore.value) load(false); });
</script>
-<template><view class="page"><template v-if="canQuery"><view class="search"><input v-model="period" placeholder="鍙戞斁鍛ㄦ湡 YYYY-MM" @confirm="load" /><text @click="load">鏌ヨ</text></view><view v-if="hasPermission('hrm:salary-payment:generate')" class="top-actions"><button @click="generate">鐢熸垚鍙戞斁鍙拌处</button></view><view v-for="row in rows" :key="row.id" class="card" @click="uni.navigateTo({ url: `/pages/hrm/salary-payment/detail?id=${row.id}` })"><view class="head"><view class="head-main"><text class="name">{{ row.no || "鏆傛棤鍗曞彿" }}</text><text class="sub">{{ row.period || "--" }}</text></view><text :class="['tag', row.status === 1 ? 'tag-green' : 'tag-orange']">{{ row.status === 1 ? "宸插彂鏀�" : "寰呭彂鏀�" }}</text></view><view class="grid"><text>鎬讳汉鏁帮細{{ row.totalCount ?? 0 }}</text><text>鎬婚噾棰濓細{{ money(row.totalAmount) }}</text><text>鍙戞斁鏃堕棿锛歿{ dateTime(row.paymentTime) }}</text><text>澶囨敞锛歿{ row.remark || "--" }}</text></view><view class="actions" @click.stop><button @click="uni.navigateTo({ url: `/pages/hrm/salary-payment/detail?id=${row.id}` })">鏌ョ湅鏄庣粏</button><button v-if="row.status === 0 && hasPermission('hrm:salary-payment:pay')" @click="pay(row)">鍙戞斁</button></view></view><view v-if="!rows.length" class="state">{{ loading ? "鍔犺浇涓�..." : "鏆傛棤鍙戞斁鍙拌处" }}</view><view v-else class="state more">{{loading ? "鍔犺浇涓�..." : hasMore ? "涓婃媺鍔犺浇鏇村" : "娌℃湁鏇村浜�"}}</view></template><view v-else class="state">鏆傛棤钖祫鍙戞斁鏌ョ湅鏉冮檺</view></view></template>
+<template><view class="page"><template v-if="canQuery"><view class="search"><input v-model="period" placeholder="鍙戞斁鍛ㄦ湡 YYYY-MM" @confirm="load" /><text @click="load">鏌ヨ</text></view><view v-if="canGenerate" class="top-actions"><button @click="generate">鐢熸垚鍙戞斁鍙拌处</button></view><view v-for="row in rows" :key="row.id" class="card" @click="uni.navigateTo({ url: `/pages/hrm/salary-payment/detail?id=${row.id}` })"><view class="head"><view class="head-main"><text class="name">{{ row.no || "鏆傛棤鍗曞彿" }}</text><text class="sub">{{ row.period || "--" }}</text></view><text :class="['tag', row.status === 1 ? 'tag-green' : 'tag-orange']">{{ row.status === 1 ? "宸插彂鏀�" : "寰呭彂鏀�" }}</text></view><view class="grid"><text>鎬讳汉鏁帮細{{ row.totalCount ?? 0 }}</text><text>鎬婚噾棰濓細{{ money(row.totalAmount) }}</text><text>鍙戞斁鏃堕棿锛歿{ dateTime(row.paymentTime) }}</text><text>澶囨敞锛歿{ row.remark || "--" }}</text></view><view class="actions" @click.stop><button @click="uni.navigateTo({ url: `/pages/hrm/salary-payment/detail?id=${row.id}` })">鏌ョ湅鏄庣粏</button><button v-if="row.status === 0 && hasPermission('hrm:salary-payment:pay')" @click="pay(row)">鍙戞斁</button></view></view><view v-if="!rows.length" class="state">{{ loading ? "鍔犺浇涓�..." : "鏆傛棤鍙戞斁鍙拌处" }}</view><view v-else class="state more">{{loading ? "鍔犺浇涓�..." : hasMore ? "涓婃媺鍔犺浇鏇村" : "娌℃湁鏇村浜�"}}</view></template><view v-else class="state">鏆傛棤钖祫鍙戞斁鏌ョ湅鏉冮檺</view></view></template>
<style scoped lang="scss">@import "../list.scss";.top-actions{display:flex;justify-content:flex-end;margin-bottom:18rpx}.top-actions button{margin:0;color:var(--color-primary, #1769d8);font-size:24rpx;background:#fff}</style>
--
Gitblit v1.9.3