|
@@ -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) {
|