|
|
@@ -1,5 +1,11 @@
|
|
|
<template>
|
|
|
<view class="content">
|
|
|
+ <view class="title">
|
|
|
+ {{ data.title1 }}
|
|
|
+ </view>
|
|
|
+ <view class="remarks" style="padding-left: 30rpx;" v-if="data.workpresetjson.remarks">
|
|
|
+ — {{ data.workpresetjson.remarks }}
|
|
|
+ </view>
|
|
|
<up-form :model="form" labelWidth="70" ref="uFormRef" disabled>
|
|
|
<block v-if="workpresetjson.questionedit != 0">
|
|
|
<up-form-item label="故障类型" prop="itemtype" :required="workpresetjson.questionedit == 11">
|
|
|
@@ -12,7 +18,7 @@
|
|
|
</view>
|
|
|
</up-form-item>
|
|
|
<up-form-item label="问题编辑" prop="questionedit" :required="workpresetjson.questionedit == 11">
|
|
|
- <up-textarea maxlength="499" :disabled="data.status == 1" v-model="form.questionedit"
|
|
|
+ <up-textarea maxlength="499" :disabled="data.status1 != '进行中'" v-model="form.questionedit"
|
|
|
placeholder="问题编辑" autoHeight height="20" />
|
|
|
</up-form-item>
|
|
|
</block>
|
|
|
@@ -48,7 +54,7 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
</up-form-item>
|
|
|
- <accList :list="data.newtitems" :disabled="data.status == 1"
|
|
|
+ <accList :list="data.newtitems" :disabled="data.status1 != '进行中'"
|
|
|
@deleteItem="deleteItem($event, 'newtitems')" />
|
|
|
|
|
|
<up-form-item :label="`旧配件(${data.oldtitems.length})`">
|
|
|
@@ -58,7 +64,7 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
</up-form-item>
|
|
|
- <accList :list="data.oldtitems" :disabled="data.status == 1"
|
|
|
+ <accList :list="data.oldtitems" :disabled="data.status1 != '进行中'"
|
|
|
@deleteItem="deleteItem($event, 'oldtitems')" />
|
|
|
</block>
|
|
|
</view>
|
|
|
@@ -76,7 +82,7 @@
|
|
|
|
|
|
<up-form-item v-if="workpresetjson.amountpay != 0" label="费用支付" prop="amountpay"
|
|
|
:required="workpresetjson.amountpay == 11">
|
|
|
- <up-input :disabled="data.status == 1" v-model="form.amountpay" type="number" placeholder="费用支付">
|
|
|
+ <up-input :disabled="data.status1 != '进行中'" v-model="form.amountpay" type="number" placeholder="费用支付">
|
|
|
<template #suffix>
|
|
|
元
|
|
|
</template>
|
|
|
@@ -85,36 +91,29 @@
|
|
|
|
|
|
<up-form-item v-if="workpresetjson.fileupload != 0" label="拍照" prop="fileupload"
|
|
|
:required="rules.fileupload[0].required">
|
|
|
- <My_upload :disabled="data.status == 1" ref="upload" :fileList="data.attinfos"
|
|
|
+ <My_upload :disabled="data.status1 != '进行中'" ref="upload" :fileList="data.attinfos"
|
|
|
@uploadCallback="uploadCallback" />
|
|
|
- <up-image v-if="data.status == 1 && data.attinfos.length == 0" :show-loading="true" src="" width="80px"
|
|
|
- height="80px" @click="click"></up-image>
|
|
|
+ <up-image v-if="data.status1 != '进行中' && data.attinfos.length == 0" :show-loading="true" src=""
|
|
|
+ width="80px" height="80px" @click="click"></up-image>
|
|
|
</up-form-item>
|
|
|
|
|
|
<up-form-item v-if="workpresetjson.textedit != 0" label="文字说明" prop="textedit"
|
|
|
:required="rules.textedit[0].required">
|
|
|
- <up-textarea maxlength="499" :disabled="data.status == 1" v-model="form.textedit" placeholder="文字说明"
|
|
|
- autoHeight height="20" />
|
|
|
+ <up-textarea maxlength="499" :disabled="data.status1 != '进行中'" v-model="form.textedit"
|
|
|
+ placeholder="文字说明" autoHeight height="20" />
|
|
|
</up-form-item>
|
|
|
</up-form>
|
|
|
|
|
|
- <view class="but-box" v-if="data.status != '1'">
|
|
|
+ <view class="but-box" v-if="data.status1 == '进行中'">
|
|
|
<view class="but-box-item" @click="save">
|
|
|
<My-button :customStyle="{
|
|
|
'background-color': '#FFFFFF',
|
|
|
'color': '#3874F6',
|
|
|
height: '80rpx',
|
|
|
- }" text="保存" :disabled="loading" :loading="loading1" />
|
|
|
- </view>
|
|
|
- <view class="but-box-item" @click="submit">
|
|
|
- <My-button :customStyle="{
|
|
|
- height: '80rpx',
|
|
|
- }" text="完成" :disabled="loading1" :loading="loading" />
|
|
|
+ }" text="保存" :disabled="loading" :loading="loading" />
|
|
|
</view>
|
|
|
</view>
|
|
|
<view style="height: 50px;" />
|
|
|
-
|
|
|
-
|
|
|
<page-container :show="true" :overlay="false" @beforeleave="beforeleave" />
|
|
|
</view>
|
|
|
</template>
|
|
|
@@ -131,7 +130,7 @@ const upload = ref(null);
|
|
|
let formModified = ref(false);
|
|
|
|
|
|
function beforeleave(e) {
|
|
|
- if (formModified.value && data.status != '1') {
|
|
|
+ if (formModified.value && data.status1 == '进行中') {
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
|
content: '是否保存当前编辑内容?',
|
|
|
@@ -140,9 +139,6 @@ function beforeleave(e) {
|
|
|
success: function (res) {
|
|
|
if (res.confirm) {
|
|
|
save()
|
|
|
- setTimeout(() => {
|
|
|
- uni.navigateBack()
|
|
|
- }, 500);
|
|
|
} else if (res.cancel) {
|
|
|
uni.navigateBack()
|
|
|
}
|
|
|
@@ -155,7 +151,7 @@ function beforeleave(e) {
|
|
|
|
|
|
// 去添加配件
|
|
|
function toAddItem(key = 'oldtitems') {
|
|
|
- if (data.status == '1') return;
|
|
|
+ if (data.status1 != '进行中') return;
|
|
|
$Http.basicsData = {
|
|
|
selected: key,
|
|
|
newtitems: deepCloneArray(data.newtitems) || [],
|
|
|
@@ -175,7 +171,7 @@ function toAddItem(key = 'oldtitems') {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// 帮我写一个[{},{}] 深拷贝的方法
|
|
|
+// [{},{}] 深拷贝的方法
|
|
|
function deepCloneArray(arr) {
|
|
|
return arr.map(item => {
|
|
|
return { ...item };
|
|
|
@@ -184,6 +180,7 @@ function deepCloneArray(arr) {
|
|
|
|
|
|
// 删除配件
|
|
|
function deleteItem(item, key = 'oldtitems') {
|
|
|
+ if (data.status1 != '进行中') return;
|
|
|
data[key] = data[key].filter(v => v.itemid !== item.itemid);
|
|
|
if (key == 'newtitems') form.newtitems = data.newtitems.length ? '1' : '';
|
|
|
}
|
|
|
@@ -225,7 +222,11 @@ let formToContent = (form) => {
|
|
|
}
|
|
|
|
|
|
let data = {
|
|
|
- attinfos: []
|
|
|
+ attinfos: [],
|
|
|
+ title1: '',
|
|
|
+ workpresetjson: {
|
|
|
+ remarks: ''
|
|
|
+ },
|
|
|
};
|
|
|
let workpresetjson = reactive({});
|
|
|
|
|
|
@@ -240,9 +241,9 @@ let rules = reactive({
|
|
|
const questionoption = ref([]);
|
|
|
|
|
|
onLoad(() => {
|
|
|
+ $Http.data.title1 = $Http.data.title.split('.')[1] || '';
|
|
|
data = reactive($Http.data);
|
|
|
delete $Http.data;
|
|
|
- console.log("data", data)
|
|
|
|
|
|
form.fileupload = data.attinfos.length ? '1' : '';
|
|
|
uni.setNavigationBarTitle({
|
|
|
@@ -330,12 +331,9 @@ onLoad(() => {
|
|
|
|
|
|
// 保存
|
|
|
const loading = ref(false);
|
|
|
-const loading1 = ref(false);
|
|
|
-
|
|
|
-function submit() {
|
|
|
+async function save() {
|
|
|
if (loading.value) return;
|
|
|
if (upload.value.isUploading()) return;
|
|
|
-
|
|
|
let traintitem = []
|
|
|
try {
|
|
|
if (form.additem == 1) {
|
|
|
@@ -363,118 +361,43 @@ function submit() {
|
|
|
} catch (error) {
|
|
|
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- uFormRef.value.validate().then(valid => {
|
|
|
- if (valid) {
|
|
|
- let content = {
|
|
|
- "sa_workorderid": data.sa_workorderid,
|
|
|
- "sa_workorder_nodeid": data.sa_workorder_nodeid,
|
|
|
- isconfirm: 1,
|
|
|
- ...formToContent(form),
|
|
|
- traintitem
|
|
|
- };
|
|
|
- uni.showModal({
|
|
|
- title: '提示',
|
|
|
- content: '是否确定完成工序?完成后将无法再次编辑。',
|
|
|
- confirmText: '完成',
|
|
|
- success: function (res) {
|
|
|
- if (res.confirm) {
|
|
|
- loading.value = true;
|
|
|
- $Http.basic({
|
|
|
- "id": "20230209094203",
|
|
|
- "sa_workorderid": data.sa_workorderid,
|
|
|
- "sa_workorder_nodeid": data.sa_workorder_nodeid,
|
|
|
- content
|
|
|
- }).then(res => {
|
|
|
- loading.value = false;
|
|
|
- console.log("提交工单", res);
|
|
|
- if (res.code == 1) {
|
|
|
- loading.value = true;
|
|
|
- upload.value.saveFileLinks('sa_workorder_node', data.sa_workorder_nodeid).then((s) => {
|
|
|
- loading.value = false;
|
|
|
- formModified.value = false;
|
|
|
- setTimeout(() => {
|
|
|
- uni.navigateBack()
|
|
|
- }, 300);
|
|
|
- })
|
|
|
- }
|
|
|
- uni.showToast({ title: res.code !== 1 ? res.msg : "提交成功", icon: 'none', mask: res.code == 1 });
|
|
|
- }).catch(err => {
|
|
|
- loading.value = false;
|
|
|
- console.error("提交工单失败", err);
|
|
|
- uni.showToast({ title: '提交失败,请稍后重试', icon: 'none' });
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
-function save() {
|
|
|
- if (loading1.value) return;
|
|
|
- if (upload.value.isUploading()) return;
|
|
|
-
|
|
|
- let traintitem = []
|
|
|
+ loading.value = true;
|
|
|
+ let valid = false;
|
|
|
try {
|
|
|
- if (form.additem == 1) {
|
|
|
- traintitem = data.oldtitems.map(v => {
|
|
|
- return {
|
|
|
- itemid: v.itemid,
|
|
|
- itemname: v.itemname,
|
|
|
- model: v.model,
|
|
|
- price: v.price,
|
|
|
- qty: v.qty || v.packageqty || 1,
|
|
|
- }
|
|
|
- }).concat(data.newtitems.map(v => {
|
|
|
- return {
|
|
|
- itemid: v.itemid,
|
|
|
- itemname: v.itemname,
|
|
|
- model: v.model,
|
|
|
- price: v.price,
|
|
|
- qty: v.qty || v.packageqty || 1,
|
|
|
- isnew: 1
|
|
|
- }
|
|
|
- }))
|
|
|
- } else {
|
|
|
- traintitem = []
|
|
|
- }
|
|
|
+ valid = await uFormRef.value.validate();
|
|
|
} catch (error) {
|
|
|
-
|
|
|
+ valid = false;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- let content = {
|
|
|
- "sa_workorderid": data.sa_workorderid,
|
|
|
- "sa_workorder_nodeid": data.sa_workorder_nodeid,
|
|
|
- isconfirm: 0,
|
|
|
- ...formToContent(form),
|
|
|
- traintitem
|
|
|
- };
|
|
|
-
|
|
|
- loading1.value = true;
|
|
|
$Http.basic({
|
|
|
"id": "20230209094203",
|
|
|
"sa_workorderid": data.sa_workorderid,
|
|
|
"sa_workorder_nodeid": data.sa_workorder_nodeid,
|
|
|
- content
|
|
|
+ content: {
|
|
|
+ "sa_workorderid": data.sa_workorderid,
|
|
|
+ "sa_workorder_nodeid": data.sa_workorder_nodeid,
|
|
|
+ isconfirm: valid ? 1 : 0,
|
|
|
+ ...formToContent(form),
|
|
|
+ traintitem
|
|
|
+ }
|
|
|
}).then(res => {
|
|
|
- loading1.value = false;
|
|
|
+ loading.value = false;
|
|
|
console.log("保存工单", res);
|
|
|
if (res.code == 1) {
|
|
|
- loading1.value = true;
|
|
|
+ loading.value = true;
|
|
|
upload.value.saveFileLinks('sa_workorder_node', data.sa_workorder_nodeid).then((s) => {
|
|
|
- loading1.value = false;
|
|
|
+ loading.value = false;
|
|
|
})
|
|
|
formModified.value = false;
|
|
|
+ uni.navigateBack()
|
|
|
}
|
|
|
- uni.showToast({ title: res.code !== 1 ? res.msg : "保存成功", icon: 'none' });
|
|
|
+ setTimeout(() => {
|
|
|
+ uni.showToast({ title: res.code !== 1 ? res.msg : "保存成功", icon: 'none', mask: res.code == 1 });
|
|
|
+ }, 500);
|
|
|
})
|
|
|
}
|
|
|
|
|
|
function clickRadio(value, key) {
|
|
|
- if (data.status == '1') return;
|
|
|
+ if (data.status1 != '进行中') return;
|
|
|
form[key] = form[key] == value ? "" : value;
|
|
|
if (key == 'passcheck') {
|
|
|
if (form[key] == '0') {
|
|
|
@@ -495,13 +418,12 @@ function clickRadio(value, key) {
|
|
|
form.newtitems = data.newtitems.length ? '1' : '';
|
|
|
uFormRef.value.setRules(rules);
|
|
|
}
|
|
|
- console.log("form", form)
|
|
|
}
|
|
|
|
|
|
function uploadCallback(list) {
|
|
|
console.log("上传回调", list);
|
|
|
form.fileupload = list.fileList.length ? '1' : '';
|
|
|
- console.log("form", form)
|
|
|
+ formModified.value = true;
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -525,13 +447,20 @@ function uploadCallback(list) {
|
|
|
border-radius: 8rpx;
|
|
|
}
|
|
|
|
|
|
- .title {
|
|
|
- font-size: 34rpx;
|
|
|
- color: #4773EE;
|
|
|
- margin: 20rpx 0;
|
|
|
+ .title{
|
|
|
+ font-size: 36rpx;
|
|
|
font-weight: bold;
|
|
|
+ color: #333333;
|
|
|
}
|
|
|
|
|
|
+ .remarks{
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #999999;
|
|
|
+ margin-top: 10rpx;
|
|
|
+ margin-bottom: 20rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
.options-box {
|
|
|
position: relative;
|
|
|
top: -6rpx;
|