From 42fa793d30152550b8239a9bb97938253c929c33 Mon Sep 17 00:00:00 2001
From: BianLzhaoMin <11485688+bianliangzhaomin123@user.noreply.gitee.com>
Date: Mon, 12 Jan 2026 09:41:33 +0800
Subject: [PATCH] =?UTF-8?q?=E9=9C=80=E6=B1=82=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../basicManage/workloadCategory/config.js | 7 +++-
.../basicManage/workloadCategory/index.vue | 37 ++++++++++++++++--
.../monthReportManage/monthlyReport/index.vue | 38 +++++++++++++++----
src/views/planMange/dailyPlan/edit.vue | 3 ++
.../planMange/dailyPlan/forms/repairForm.vue | 4 ++
src/views/planMange/monthlyPlan/config.js | 1 +
src/views/planMange/monthlyPlan/edit.vue | 6 +++
src/views/planMange/monthlyPlan/index.vue | 1 +
src/views/system/user/index.vue | 3 +-
9 files changed, 87 insertions(+), 13 deletions(-)
diff --git a/src/views/basicManage/workloadCategory/config.js b/src/views/basicManage/workloadCategory/config.js
index 1ca05db..7332f35 100644
--- a/src/views/basicManage/workloadCategory/config.js
+++ b/src/views/basicManage/workloadCategory/config.js
@@ -14,9 +14,14 @@ export default {
},
{
prop: 'unitPrice',
- label: '单价',
+ label: '绩效单价',
slot: 'unitPrice',
},
+ {
+ prop: 'settlementUnitPrice',
+ label: '结算单价',
+ slot: 'settlementUnitPrice',
+ },
{
prop: 'remark',
label: '备注',
diff --git a/src/views/basicManage/workloadCategory/index.vue b/src/views/basicManage/workloadCategory/index.vue
index 23b9b6c..5668b9c 100644
--- a/src/views/basicManage/workloadCategory/index.vue
+++ b/src/views/basicManage/workloadCategory/index.vue
@@ -16,10 +16,14 @@
新建工作量类别
-
+
¥{{ fenToYuan(row.unitPrice) }}
+
+
+ ¥{{ fenToYuan(row.settlementUnitPrice) }}
+
@@ -40,7 +44,7 @@
v-model.trim="addAndEditForm.workloadCategoryName"
/>
-
+
+
+
+
+
+ ¥
+
+
+
({
workloadCategoryName: '',
unitPrice: 0.1,
+ settlementUnitPrice: 0.1,
remark: '',
})
@@ -108,7 +128,8 @@ const addAndEditForm = ref(getInitFormData())
const addAndEditRules = ref({
workloadCategoryName: [{ required: true, message: '请输入工作量类别名称', trigger: 'blur' }],
- unitPrice: [{ required: true, message: '请输入单价', trigger: 'blur' }],
+ unitPrice: [{ required: true, message: '请输入绩效单价', trigger: 'blur' }],
+ settlementUnitPrice: [{ required: true, message: '请输入结算单价', trigger: 'blur' }],
})
const actionColumns = [
@@ -117,7 +138,13 @@ const actionColumns = [
type: 'primary',
link: true,
handler: (row) => {
- const { workloadCategoryId, workloadCategoryName, remark, unitPrice } = row
+ const {
+ remark,
+ unitPrice,
+ workloadCategoryId,
+ workloadCategoryName,
+ settlementUnitPrice,
+ } = row
editId.value = workloadCategoryId
dialogConfig.outerTitle = '编辑工作量类别'
dialogConfig.outerVisible = true
@@ -125,6 +152,7 @@ const actionColumns = [
nextTick(() => {
addAndEditForm.value.workloadCategoryName = workloadCategoryName
addAndEditForm.value.unitPrice = fenToYuan(unitPrice) // 分转元回显
+ addAndEditForm.value.settlementUnitPrice = fenToYuan(settlementUnitPrice) // 分转元回显
addAndEditForm.value.remark = remark
})
},
@@ -174,6 +202,7 @@ const onHandleSave = async () => {
const API = editId.value ? updateWorkloadCategoryAPI : addWorkloadCategoryAPI
const params = JSON.parse(JSON.stringify(addAndEditForm.value))
params.unitPrice = yuanToFen(params.unitPrice) // 元转分提交
+ params.settlementUnitPrice = yuanToFen(params.settlementUnitPrice) // 元转分提交
editId.value ? (params.workloadCategoryId = editId.value) : null
const result = await API(params)
diff --git a/src/views/monthReportManage/monthlyReport/index.vue b/src/views/monthReportManage/monthlyReport/index.vue
index 313f431..312bb85 100644
--- a/src/views/monthReportManage/monthlyReport/index.vue
+++ b/src/views/monthReportManage/monthlyReport/index.vue
@@ -15,6 +15,7 @@
placeholder="请选择年份"
format="YYYY"
value-format="YYYY"
+ :disabled-date="disabledYearDate"
@change="onYearChange"
style="width: 100%"
/>
@@ -86,21 +87,44 @@ const selectedMonth = ref('')
const loading = ref(false)
const docxFile = ref(null)
-// 生成月份选项
+// 获取当前年月
+const currentYear = new Date().getFullYear()
+const currentMonth = new Date().getMonth() + 1
+
+// 生成月份选项(升序排列)
const monthOptions = computed(() => {
if (!selectedYear.value) {
return []
}
+ const year = parseInt(selectedYear.value)
const months = []
- for (let i = 1; i <= 12; i++) {
- months.push({
- label: `${selectedYear.value}-${String(i).padStart(2, '0')}`,
- value: `${selectedYear.value}-${String(i).padStart(2, '0')}`,
- })
+
+ // 如果选择的是当前年份,只显示已过完的月份和当月
+ if (year === currentYear) {
+ for (let i = 1; i <= currentMonth; i++) {
+ months.push({
+ label: `${selectedYear.value}-${String(i).padStart(2, '0')}`,
+ value: `${selectedYear.value}-${String(i).padStart(2, '0')}`,
+ })
+ }
+ } else {
+ // 如果选择的是过去的年份,显示所有12个月
+ for (let i = 1; i <= 12; i++) {
+ months.push({
+ label: `${selectedYear.value}-${String(i).padStart(2, '0')}`,
+ value: `${selectedYear.value}-${String(i).padStart(2, '0')}`,
+ })
+ }
}
- return months.reverse()
+ return months // 升序排列
})
+// 年份选择器禁用日期(禁用未来年份)
+const disabledYearDate = (date) => {
+ const year = date.getFullYear()
+ return year > currentYear
+}
+
// 报告标题
const reportTitle = computed(() => {
if (selectedMonth.value) {
diff --git a/src/views/planMange/dailyPlan/edit.vue b/src/views/planMange/dailyPlan/edit.vue
index 08f6a32..b4a2a34 100644
--- a/src/views/planMange/dailyPlan/edit.vue
+++ b/src/views/planMange/dailyPlan/edit.vue
@@ -298,6 +298,7 @@ const getRepairFormData = () => ({
workloadCategoryId: '',
workloadCategoryName: '',
unitPrice: '',
+ settlementUnitPrice: '',
workloadNum: '',
},
], // 实际完成工作内容(动态列表)
@@ -716,6 +717,7 @@ const getDetail = async () => {
workloadCategoryId: item.workloadCategoryId || '',
workloadCategoryName: item.workloadCategoryName || '',
unitPrice: item.unitPrice || '',
+ settlementUnitPrice: item.settlementUnitPrice || '',
workloadNum: item.workloadNum || '',
}))
: [
@@ -723,6 +725,7 @@ const getDetail = async () => {
workloadCategoryId: '',
workloadCategoryName: '',
unitPrice: '',
+ settlementUnitPrice: '',
workloadNum: '',
},
]
diff --git a/src/views/planMange/dailyPlan/forms/repairForm.vue b/src/views/planMange/dailyPlan/forms/repairForm.vue
index 79838d1..7bcb059 100644
--- a/src/views/planMange/dailyPlan/forms/repairForm.vue
+++ b/src/views/planMange/dailyPlan/forms/repairForm.vue
@@ -852,6 +852,7 @@ const onAddWorkLoad = () => {
workloadCategoryName: '',
unitPrice: '',
workloadNum: '',
+ settlementUnitPrice: '',
})
updateField('actualWorkloadList', newWorkloadList)
}
@@ -886,6 +887,7 @@ const onChangeWorkLoadCategory = (workloadCategoryId, index) => {
workloadCategoryId: workloadCategory.workloadCategoryId,
workloadCategoryName: workloadCategory.workloadCategoryName,
unitPrice: workloadCategory.unitPrice || '',
+ settlementUnitPrice: workloadCategory.settlementUnitPrice || '',
}
updateField('actualWorkloadList', newWorkloadList)
} else {
@@ -895,6 +897,7 @@ const onChangeWorkLoadCategory = (workloadCategoryId, index) => {
workloadCategoryId: '',
workloadCategoryName: '',
unitPrice: '',
+ settlementUnitPrice: '',
}
updateField('actualWorkloadList', newWorkloadList)
}
@@ -923,6 +926,7 @@ const onCancelActualCompletion = () => {
workloadCategoryId: '',
workloadCategoryName: '',
unitPrice: '',
+ settlementUnitPrice: '',
workloadNum: '',
},
],
diff --git a/src/views/planMange/monthlyPlan/config.js b/src/views/planMange/monthlyPlan/config.js
index 2623248..594bd6e 100644
--- a/src/views/planMange/monthlyPlan/config.js
+++ b/src/views/planMange/monthlyPlan/config.js
@@ -12,6 +12,7 @@ export const buildFormColumns = (
type: 'month',
prop: 'monthlyPlan',
placeholder: '请选择月份',
+ defaultValue: dayjs().format('YYYY-MM'), // 默认当前月份
},
{
type: 'select',
diff --git a/src/views/planMange/monthlyPlan/edit.vue b/src/views/planMange/monthlyPlan/edit.vue
index f8ca14d..2382918 100644
--- a/src/views/planMange/monthlyPlan/edit.vue
+++ b/src/views/planMange/monthlyPlan/edit.vue
@@ -689,6 +689,7 @@ const getInitFormData = () => ({
workloadCategoryName: '', // 工作量类别名称
unitPrice: '', // 单价
workloadNum: '', // 工作量
+ settlementUnitPrice: '', // 结算单价
},
],
personnelArrangementList: [], // 人员排班模板 [{day: '', personnelNames: ''}]
@@ -814,6 +815,7 @@ const onAddWorkLoad = () => {
workloadCategoryName: '',
unitPrice: '',
workloadNum: '',
+ settlementUnitPrice: '',
})
}
@@ -979,6 +981,8 @@ const onChangeWorkLoadCategory = (event, index) => {
)
if (workloadCategory) {
formData.value.workloadList[index].unitPrice = workloadCategory.unitPrice
+ formData.value.workloadList[index].settlementUnitPrice =
+ workloadCategory.settlementUnitPrice
formData.value.workloadList[index].workloadCategoryName =
workloadCategory.workloadCategoryName
}
@@ -1044,6 +1048,7 @@ const getDetail = async () => {
workloadCategoryId: item.workloadCategoryId || '',
workloadCategoryName: item.workloadCategoryName || '',
unitPrice: item.unitPrice || '',
+ settlementUnitPrice: item.settlementUnitPrice || '',
workloadNum: item.workloadNum || '',
}))
} else {
@@ -1053,6 +1058,7 @@ const getDetail = async () => {
workloadCategoryId: '',
workloadCategoryName: '',
unitPrice: '',
+ settlementUnitPrice: '',
workloadNum: '',
},
]
diff --git a/src/views/planMange/monthlyPlan/index.vue b/src/views/planMange/monthlyPlan/index.vue
index 17edccc..bbec6bf 100644
--- a/src/views/planMange/monthlyPlan/index.vue
+++ b/src/views/planMange/monthlyPlan/index.vue
@@ -85,6 +85,7 @@ import ComTable from '@/components/ComTable/index.vue'
import ComButton from '@/components/ComButton/index.vue'
import ComDialog from '@/components/ComDialog/index.vue'
import AddForm from './addForm.vue'
+import dayjs from 'dayjs'
const { proxy } = getCurrentInstance()
const dictStore = useDictStore()
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 08162ae..2fdf5ef 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -212,7 +212,8 @@
active-value="0"
inactive-value="1"
@change="handleStatusChange(scope.row)"
- >
+ >
+