From 2e77330d87341624c88301562fd137b58f9a101a Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 25 十二月 2025 10:57:35 +0800
Subject: [PATCH] 1.海川开心-录入日期都默认当天,封装公用组件和方法
---
src/views/productionManagement/operationScheduling/components/formDia.vue | 72 ++++++++++++++++++++++++++++++-----
1 files changed, 61 insertions(+), 11 deletions(-)
diff --git a/src/views/productionManagement/operationScheduling/components/formDia.vue b/src/views/productionManagement/operationScheduling/components/formDia.vue
index 056c8a2..4733a6e 100644
--- a/src/views/productionManagement/operationScheduling/components/formDia.vue
+++ b/src/views/productionManagement/operationScheduling/components/formDia.vue
@@ -24,6 +24,23 @@
<el-input v-model="scope.row.process" placeholder="璇疯緭鍏ュ伐搴�" />
</template>
</el-table-column>
+ <el-table-column label="浜х嚎" prop="productionLine" width="150">
+ <template #default="scope">
+ <el-select
+ v-model="scope.row.productionLine"
+ placeholder="閫夋嫨浜х嚎"
+ style="width: 100%;"
+ clearable
+ >
+ <el-option
+ v-for="line in productionLines"
+ :key="line.value"
+ :label="line.label"
+ :value="line.value"
+ />
+ </el-select>
+ </template>
+ </el-table-column>
<el-table-column label="鍗曚綅" prop="unit" width="90">
<template #default="scope">
<el-input v-model="scope.row.unit" placeholder="璇疯緭鍏ュ崟浣�" />
@@ -71,6 +88,9 @@
v-model="scope.row.schedulingUserId"
placeholder="閫夋嫨浜哄憳"
style="width: 100%;"
+ filterable
+ default-first-option
+ :reserve-keyword="false"
>
<el-option
v-for="user in userList"
@@ -107,6 +127,7 @@
import {userListNoPageByTenantId} from "@/api/system/user.js";
import {processScheduling} from "@/api/productionManagement/operationScheduling.js";
const { proxy } = getCurrentInstance()
+import dayjs from "dayjs";
const { work_step } = proxy.useDict("work_step")
const emit = defineEmits(['close'])
@@ -119,31 +140,54 @@
const pendingNum = ref(0);
const userList = ref([])
const receive = ref('')
+const sunqianUserId = ref('')
+// 浜х嚎閫夐」
+const productionLines = ref([
+ { label: '浜х嚎1', value: '浜х嚎1' },
+ { label: '浜х嚎2', value: '浜х嚎2' },
+ { label: '浜х嚎3', value: '浜х嚎3' },
+ { label: '浜х嚎4', value: '浜х嚎4' }
+])
// 鎵撳紑寮规
const openDialog = (type, row) => {
operationType.value = type;
dialogFormVisible.value = true;
- userListNoPageByTenantId().then((res) => {
- userList.value = res.data;
- });
pendingNum.value = row?.pendingNum ?? 0;
unitFromRow.value = row?.unit ?? '';
idFromRow.value = row?.id ?? '';
specificationModelFromRow.value = row?.specificationModel ?? '';
- tableData.value = [createRow()];
+
+ userListNoPageByTenantId().then((res) => {
+ userList.value = res.data;
+ // 鎵惧埌瀛欏�╃殑鐢ㄦ埛ID骞惰缃负榛樿鍊�
+ const sunqianUser = userList.value.find(user => user.nickName === '瀛欏��');
+ if (sunqianUser) {
+ sunqianUserId.value = sunqianUser.userId;
+ }
+ // 鍦ㄧ敤鎴峰垪琛ㄥ姞杞藉畬鎴愬悗鍒涘缓琛屾暟鎹紝骞跺皢浜х嚎鏁版嵁甯﹀叆
+ tableData.value = [createRow(row, { defaultNum: pendingNum.value })];
+ });
}
-const createRow = () => ({
+const getToday = () => dayjs().format("YYYY-MM-DD");
+const getRemaining = () => {
+ const used = tableData.value.reduce((sum, row) => sum + Number(row.schedulingNum || 0), 0);
+ const remain = Number(pendingNum.value || 0) - used;
+ return remain > 0 ? remain : 0;
+};
+
+const createRow = (row, options = {}) => ({
id: idFromRow.value,
- process: '',
- schedulingDate: '',
- schedulingNum: null,
- schedulingUserId: '',
+ process: '鍖呰',
+ schedulingDate: getToday(), // 榛樿褰撳ぉ
+ schedulingNum: options.defaultNum ?? null, // 榛樿鐢ㄥ墿浣欐暟閲忓~婊�
+ schedulingUserId: sunqianUserId.value, // 榛樿璁剧疆涓哄瓩鍊╃殑鐢ㄦ埛ID
workHours: null,
unit: unitFromRow.value,
remark: '',
type: specificationModelFromRow.value,
+ productionLine: row?.productionLine ?? '', // 浠庤鏁版嵁涓幏鍙栦骇绾夸俊鎭�
});
const submitForm = () => {
@@ -156,7 +200,8 @@
row.schedulingNum === '' || row.schedulingNum === null ||
!row.schedulingUserId ||
row.workHours === '' || row.workHours === null ||
- !row.unit
+ !row.unit ||
+ !row.productionLine
) {
proxy.$modal.msgError(`绗�${i + 1}琛屾暟鎹湭濉啓瀹屾暣`);
return;
@@ -202,7 +247,12 @@
});
const addRow = () => {
- tableData.value.push(createRow());
+ const remaining = getRemaining();
+ if (remaining <= 0) {
+ proxy.$modal.msgWarning('宸叉帓婊★紝鏃犲墿浣欐暟閲�');
+ return;
+ }
+ tableData.value.push(createRow({}, { defaultNum: remaining }));
};
const removeRow = (index) => {
tableData.value.splice(index, 1);
--
Gitblit v1.9.3