From a175709baa7777575d054f928d4d2d029a04bd60 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 29 十二月 2025 17:41:06 +0800
Subject: [PATCH] 陕西昭德-app巡检上传修改
---
src/pages/management/mould/usageRecord.vue | 265 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 265 insertions(+), 0 deletions(-)
diff --git a/src/pages/management/mould/usageRecord.vue b/src/pages/management/mould/usageRecord.vue
new file mode 100644
index 0000000..8806b85
--- /dev/null
+++ b/src/pages/management/mould/usageRecord.vue
@@ -0,0 +1,265 @@
+<template>
+ <div>
+ <u-popup
+ v-model="dialogVisible"
+ :title="addOrEdit === 'edit' ? '缂栬緫' : '鏂板' + '璁惧'"
+ mode="center"
+ :close-on-click-overlay="false"
+ :before-close="handleClose"
+ :border-radius="20"
+ width="90%"
+ >
+ <u-form
+ ref="formRef"
+ :model="formData"
+ :rules="rules"
+ label-width="auto"
+ >
+ <view class="form-row">
+ <view class="form-col">
+ <u-form-item label="璁惧缂栧彿" prop="equipmentId">
+ <u-input
+ v-model="formData.equipmentId"
+ placeholder="璇疯緭鍏ヨ澶囩紪鍙�"
+ :disabled="isViewMode"
+ border="surround"
+ />
+ </u-form-item>
+ </view>
+ <view class="form-col">
+ <u-form-item label="璁惧鍚嶇О" prop="equipmentName">
+ <u-input
+ v-model="formData.equipmentName"
+ placeholder="璇疯緭鍏ヨ澶囧悕绉�"
+ :disabled="isViewMode"
+ border="surround"
+ />
+ </u-form-item>
+ </view>
+ </view>
+ <view class="form-row">
+ <view class="form-col">
+ <u-form-item label="鏁伴噺" prop="quantity">
+ <u-input
+ v-model="formData.quantity"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ :disabled="isViewMode"
+ border="surround"
+ type="number"
+ />
+ </u-form-item>
+ </view>
+ <view class="form-col">
+ <u-form-item label="瑙勬牸鍨嬪彿" prop="specification">
+ <u-input
+ v-model="formData.specification"
+ placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"
+ :disabled="isViewMode"
+ border="surround"
+ />
+ </u-form-item>
+ </view>
+ </view>
+ <view class="form-row">
+ <view class="form-col">
+ <u-form-item label="浣跨敤鐘舵��" prop="usageStatus">
+ <u-select
+ v-model="formData.usageStatus"
+ :list="usageStatusOptions"
+ placeholder="璇烽�夋嫨浣跨敤鐘舵��"
+ :disabled="isViewMode"
+ />
+ </u-form-item>
+ </view>
+ <view class="form-col">
+ <u-form-item label="瀛樻斁浣嶇疆" prop="storageLocation">
+ <u-input
+ v-model="formData.storageLocation"
+ placeholder="璇疯緭鍏ュ瓨鏀句綅缃�"
+ :disabled="isViewMode"
+ border="surround"
+ />
+ </u-form-item>
+ </view>
+ </view>
+ <view class="form-row">
+ <view class="form-col">
+ <u-form-item label="閲囪喘浠锋牸" prop="purchasePrice">
+ <u-input
+ v-model="formData.purchasePrice"
+ placeholder="璇疯緭鍏ラ噰璐环鏍�"
+ :disabled="isViewMode"
+ border="surround"
+ type="number"
+ />
+ </u-form-item>
+ </view>
+ <view class="form-col">
+ <u-form-item label="閲囪喘鏃ユ湡" prop="purchaseDate">
+ <u-datetime-picker
+ v-model="formData.purchaseDate"
+ mode="date"
+ placeholder="璇烽�夋嫨閲囪喘鏃ユ湡"
+ :disabled="isViewMode"
+ />
+ </u-form-item>
+ </view>
+ </view>
+ <view class="dialog-footer">
+ <u-button v-if="!isViewMode" @click="cancelForm" type="default" size="normal">鍙栨秷</u-button>
+ <u-button v-if="!isViewMode" @click="submitForm" type="primary" size="normal">纭畾</u-button>
+ </view>
+ </u-form>
+ </u-popup>
+ </div>
+</template>
+
+<script setup>
+import { ref, watch, computed, reactive } from "vue";
+import { addOrEditEquipment } from "@/api/equipment/management/index.js";
+import { useToast } from "@/utils/uviewplus";
+
+const { showToast } = useToast();
+
+const props = defineProps({
+ beforeClose: {
+ type: Function,
+ default: () => {},
+ },
+ form: {
+ type: Object,
+ default: () => ({}),
+ },
+ addOrEdit: {
+ type: String,
+ default: "add",
+ },
+ title: {
+ type: String,
+ default: "",
+ },
+});
+
+const emit = defineEmits(["submit", "handleBeforeClose"]);
+
+// 璁$畻灞炴�э細缁熶竴鎺у埗鏄惁绂佺敤
+const isViewMode = computed(() => props.addOrEdit === "viewRow");
+
+// 琛ㄥ崟寮曠敤鍜屾暟鎹�
+const formRef = ref(null);
+const formData = ref({});
+const copyForm = defineModel("copyForm", {
+ required: true,
+ type: Object,
+ default: () => ({}),
+});
+
+// 寮圭獥鍙鎬�
+const dialogVisible = defineModel("managementFormDialog", {
+ required: true,
+ type: Boolean,
+});
+
+// 浣跨敤鐘舵�侀�夐」
+const usageStatusOptions = reactive([
+ { label: "鍚敤", value: "1" },
+ { label: "绂佺敤", value: "0" }
+]);
+
+// 鐩戝惉澶栭儴浼犲叆鐨勮〃鍗曟暟鎹彉鍖栵紝鍚堝苟鐩戝惉閫昏緫
+watch(
+ [() => props.form, () => props.addOrEdit],
+ ([newForm, newAddOrEdit]) => {
+ formData.value = { ...newForm };
+ },
+ { deep: true, immediate: true }
+);
+
+// 鎻愪氦琛ㄥ崟
+const submitForm = async () => {
+ if (!formRef.value) return;
+
+ try {
+ const valid = await formRef.value.validate();
+ if (!valid) return;
+
+ const result = await addOrEditEquipment({ ...formData.value });
+ const title = props.title.includes("鏂板") ? "鏂板" : "缂栬緫";
+
+ if (result.code === 200 && result.msg) {
+ showToast({ title: `${title}鎴愬姛锛�${result.msg}`, type: 'success' });
+ emit("submit", { title, ...formData.value, result });
+ closeDialog();
+ } else {
+ showToast({ title: `${title}澶辫触锛�${result.msg}`, type: 'error' });
+ }
+ } catch (error) {
+ console.error("鎻愪氦澶辫触:", error);
+ showToast({ title: "鎻愪氦澶辫触锛岃閲嶈瘯", type: 'error' });
+ }
+};
+
+// 鍏抽棴寮圭獥鐨勭粺涓�鏂规硶
+const closeDialog = () => {
+ emit("update:managementFormDialog", false);
+ formData.value = {};
+};
+
+// 鍙栨秷琛ㄥ崟
+const cancelForm = () => {
+ closeDialog();
+};
+
+// 閲嶇疆琛ㄥ崟
+const resetForm = () => {
+ if (!formRef.value) return;
+ formData.value = JSON.parse(JSON.stringify(copyForm.value));
+};
+
+// 鍏抽棴寮圭獥
+const handleClose = () => {
+ emit("handleBeforeClose");
+ closeDialog();
+};
+
+const rules = reactive({
+ equipmentId: [
+ { required: true, message: "璇疯緭鍏ヨ澶囩紪鍙�", trigger: "blur" },
+ ],
+});
+</script>
+
+<style lang="scss" scoped>
+.form-row {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ margin-bottom: 20rpx;
+}
+
+.form-col {
+ flex: 1;
+ margin-right: 20rpx;
+}
+
+.form-col:last-child {
+ margin-right: 0;
+}
+
+.dialog-footer {
+ display: flex;
+ justify-content: flex-end;
+ margin-top: 40rpx;
+ flex-direction: row;
+ gap: 20rpx;
+}
+
+// 寮圭獥鏍峰紡閫傞厤
+:deep(.u-popup__content) {
+ padding: 30rpx;
+}
+
+:deep(.u-form-item) {
+ margin-bottom: 20rpx;
+}
+</style>
\ No newline at end of file
--
Gitblit v1.9.3