From bd9a631d2b597492307cd39f93c09cc3aa4db62d Mon Sep 17 00:00:00 2001
From: 张诺 <zhang_12370@163.com>
Date: 星期三, 07 一月 2026 15:23:14 +0800
Subject: [PATCH] 进销存·华玺砂浆》设备保修的新增保修添加金额和审批人开发 进销存·华玺砂浆》协同报销页面修改
---
src/views/equipmentManagement/repair/Form/RepairForm.vue | 94 ++++++++++++++++++++++++++++++++++++++++------
1 files changed, 81 insertions(+), 13 deletions(-)
diff --git a/src/views/equipmentManagement/repair/Form/RepairForm.vue b/src/views/equipmentManagement/repair/Form/RepairForm.vue
index 6ded5fe..f374172 100644
--- a/src/views/equipmentManagement/repair/Form/RepairForm.vue
+++ b/src/views/equipmentManagement/repair/Form/RepairForm.vue
@@ -1,9 +1,9 @@
<template>
- <el-form :model="form" label-width="100px">
+ <el-form :model="form" ref="formModelRefs" :rules="rules" label-width="100px">
<el-row>
<el-col :span="12">
- <el-form-item label="璁惧鍚嶇О">
- <el-select v-model="form.deviceLedgerId" @change="setDeviceModel">
+ <el-form-item label="璁惧鍚嶇О" prop="deviceLedgerId">
+ <el-select v-model="form.deviceLedgerId" @change="setDeviceModel" filterable>
<el-option
v-for="(item, index) in deviceOptions"
:key="index"
@@ -14,7 +14,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="瑙勬牸鍨嬪彿">
+ <el-form-item label="瑙勬牸鍨嬪彿" prop="deviceModel">
<el-input
v-model="form.deviceModel"
placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"
@@ -23,7 +23,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鎶ヤ慨鏃ユ湡">
+ <el-form-item label="鎶ヤ慨鏃ユ湡" prop="repairTime">
<el-date-picker
v-model="form.repairTime"
placeholder="璇烽�夋嫨鎶ヤ慨鏃ユ湡"
@@ -36,12 +36,44 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鎶ヤ慨浜�">
- <el-input v-model="form.repairName" placeholder="璇疯緭鍏ユ姤淇汉" />
+ <el-form-item label="鎶ヤ慨浜哄憳" prop="repairName">
+ <el-input v-model="form.repairName" placeholder="璇疯緭鍏ユ姤淇汉鍛�" />
</el-form-item>
</el-col>
+ </el-row>
+ <el-row v-if="id">
+ <el-col :span="12">
+ <el-form-item label="鎶ヤ慨鐘舵��">
+ <el-select v-model="form.status" prop="status">
+ <el-option label="寰呯淮淇�" :value="0"></el-option>
+ <el-option label="瀹岀粨" :value="1"></el-option>
+ <el-option label="澶辫触" :value="2"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="鎶ヤ慨閲戦" prop="maintenancePrice">
+ <el-input-number
+ style="width: 100%"
+ :min="0"
+ v-model="form.maintenancePrice"
+ placeholder="璇疯緭鍏ヤ繚淇噾棰�"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="瀹℃壒浜哄憳" prop="approverId">
+ <el-select v-model="form.approverId" placeholder="璇烽�夋嫨瀹℃壒浜哄憳" clearable>
+ <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
<el-col :span="24">
- <el-form-item label="鏁呴殰鐜拌薄">
+ <el-form-item label="鏁呴殰鐜拌薄" prop="remark">
<el-input
v-model="form.remark"
:rows="2"
@@ -55,28 +87,59 @@
</template>
<script setup>
+import {onMounted} from "vue"
+import dayjs from "dayjs";
import useFormData from "@/hooks/useFormData";
import { getDeviceLedger } from "@/api/equipmentManagement/ledger";
-import { onMounted } from "vue";
+import useUserStore from "@/store/modules/user";
+import { userListNoPage } from "@/api/system/user.js";
+
+const { id } = defineProps(["id"])
defineOptions({
name: "璁惧鎶ヤ慨琛ㄥ崟",
});
+const userStore = useUserStore();
const deviceOptions = ref([]);
+const formModelRefs = ref(null)
+const userList = ref(null)
const loadDeviceName = async () => {
const { data } = await getDeviceLedger();
deviceOptions.value = data;
};
+const rules = {
+ deviceLedgerId: [{ required: true, message: "璇烽�夋嫨璁惧鍚嶇О", trigger: "change" }],
+ repairTime: [{ required: true, message: "璇烽�夋嫨鎶ヤ慨鏃ユ湡", trigger: "change" }],
+ repairName: [{ required: true, message: "璇疯緭鍏ユ姤淇汉", trigger: "blur" }],
+ remark: [{ required: true, message: "璇疯緭鍏ユ晠闅滅幇璞�", trigger: "blur" }],
+ maintenancePrice: [{ required: true, message: "璇疯緭鍏ヤ繚淇噾棰�", trigger: "blur" }],
+ approverId:[{required: true,message: "璇烽�夋嫨瀹℃壒浜�", trigger: "change"}]
+};
+
+// 鏍¢獙琛ㄥ崟鏄惁鍚堣
+const submitForm = async () => {
+ if (!formModelRefs.value) return false;
+
+ try {
+ await formModelRefs.value.validate();
+ return true; // 琛ㄥ崟楠岃瘉閫氳繃
+ } catch (error) {
+ return false; // 琛ㄥ崟楠岃瘉澶辫触
+ }
+};
+
const { form, resetForm } = useFormData({
deviceLedgerId: undefined, // 璁惧Id
deviceName: undefined, // 璁惧鍚嶇О
deviceModel: undefined, // 瑙勬牸鍨嬪彿
- repairTime: undefined, // 鎶ヤ慨鏃ユ湡
- repairName: undefined, // 鎶ヤ慨浜�
+ repairTime: dayjs().format("YYYY-MM-DD"), // 鎶ヤ慨鏃ユ湡锛岄粯璁ゅ綋澶�
+ repairName: userStore.nickName, // 鎶ヤ慨浜�
remark: undefined, // 鏁呴殰鐜拌薄
+ status: 0, // 鎶ヤ慨鐘舵��
+ maintenancePrice:0, // 淇濅慨閲戦
});
const setDeviceModel = (id) => {
@@ -95,10 +158,14 @@
form.repairTime = data.repairTime;
form.repairName = data.repairName;
form.remark = data.remark;
+ form.status = data.status;
+ form.maintenancePrice = data.maintenancePrice
};
-onMounted(() => {
- loadDeviceName();
+onMounted(async() => {
+ // loadDeviceName();
+ let userLists = await userListNoPage();
+ userList.value = userLists.data;
});
defineExpose({
@@ -106,6 +173,7 @@
resetForm,
getForm,
setForm,
+ submitForm
});
</script>
--
Gitblit v1.9.3