فهرست منبع

添加表单检测

xiaohaizhao 2 ماه پیش
والد
کامیت
500b6bffab
2فایلهای تغییر یافته به همراه37 افزوده شده و 28 حذف شده
  1. 0 1
      components/My_upload/My_upload.vue
  2. 37 27
      pages/workOrder/work.vue

+ 0 - 1
components/My_upload/My_upload.vue

@@ -301,7 +301,6 @@ const clearTemporaryFiles = (arr = props.fileList) => {
 
 // 在页面销毁的时候 自动清空所有的临时文件
 onUnmounted(() => {
-    console.log("组件销毁,清空临时文件");
     clearTemporaryFiles();
 })
 

+ 37 - 27
pages/workOrder/work.vue

@@ -102,36 +102,42 @@
         <view style="height: 50px;" />
 
 
-        <page-container :show="container" :overlay="false" @beforeleave="beforeleave"></page-container>
+        <page-container :show="true" :overlay="false" @beforeleave="beforeleave" />
     </view>
 </template>
 
 <script setup>
-import { ref, reactive, getCurrentInstance } from 'vue';
-import { onLoad, onUnload } from '@dcloudio/uni-app';
+import { ref, reactive, getCurrentInstance, watch } from 'vue';
+import { onLoad } from '@dcloudio/uni-app';
 import accList from "./modules/products.vue";
 
 const { $Http } = getCurrentInstance().proxy;
 const uFormRef = ref(null);
 const upload = ref(null);
 
-let container = ref(true);
+let formModified = ref(false);
 
 function beforeleave(e) {
-    uni.showModal({
-        title: '提示',
-        content: '是否保存当前编辑内容?',
-        confirmText: '保存',
-        cancelText: '不保存',
-        success: function (res) {
-            if (res.confirm) {
-                save()
-                uni.navigateBack()
-            } else if (res.cancel) {
-                uni.navigateBack()
+    if (formModified.value && data.status != '1') {
+        uni.showModal({
+            title: '提示',
+            content: '是否保存当前编辑内容?',
+            confirmText: '保存',
+            cancelText: '不保存',
+            success: function (res) {
+                if (res.confirm) {
+                    save()
+                    setTimeout(() => {
+                        uni.navigateBack()
+                    }, 500);
+                } else if (res.cancel) {
+                    uni.navigateBack()
+                }
             }
-        }
-    });
+        });
+    } else {
+        uni.navigateBack()
+    }
 }
 
 // 去添加配件
@@ -204,7 +210,6 @@ const questionoption = ref([]);
 onLoad(() => {
     data = reactive($Http.data);
     delete $Http.data;
-    container.value = data.status == 1 ? false : true; // 如果工单已完成,则不允许编辑
 
     for (let key in keys) {
         if (data[keys[key]]) {
@@ -219,13 +224,12 @@ onLoad(() => {
     workpresetjson = Object.assign(workpresetjson, data.workpresetjson);
 
     if (workpresetjson.additem) {
-        console.log("data", data)
         data.oldtitems = data.detail[0].oldtitems.map(item => {
             item.imageUrl = item.attinfos.length ? $Http.getSpecifiedImage(item.attinfos[0]) : ''
             return item;
         });;
         form.oldtitems = data.oldtitems.length ? '1' : '';
-        form.additem = form.oldtitems.length ? '1' : '';
+        form.additem = form.oldtitems.length ? '1' : '0';
     }
 
     rules = Object.assign(rules, {
@@ -270,8 +274,18 @@ onLoad(() => {
         questionoption.value = res.data;
         if (res.code !== 1) return uni.showToast({ title: res.msg, icon: 'none' });
     })
+
+    // 添加表单修改监听
+    const originalForm = JSON.parse(JSON.stringify(form));
+    watch(form, (newVal) => {
+        if (JSON.stringify(newVal) !== JSON.stringify(originalForm)) {
+            formModified.value = true;
+        }
+    }, { deep: true });
+
 });
 
+
 // 保存
 const loading = ref(false);
 const loading1 = ref(false);
@@ -325,7 +339,7 @@ function submit() {
                                 loading.value = true;
                                 upload.value.saveFileLinks('sa_workorder_node', data.sa_workorder_nodeid).then((s) => {
                                     loading.value = false;
-                                    container.value = false;
+                                    formModified.value = false;
                                     setTimeout(() => {
                                         uni.navigateBack()
                                     }, 800);
@@ -384,14 +398,10 @@ function save() {
             upload.value.saveFileLinks('sa_workorder_node', data.sa_workorder_nodeid).then((s) => {
                 loading1.value = false;
             })
-            container.value = false;
+            formModified.value = false;
         }
         uni.showToast({ title: res.code !== 1 ? res.msg : "保存成功", icon: 'none' });
-    }).catch(err => {
-        loading1.value = false;
-        console.error("保存工单失败", err);
-        uni.showToast({ title: '保存失败,请稍后重试', icon: 'none' });
-    });
+    })
 }
 
 function clickRadio(value, key) {