|
@@ -30,7 +30,7 @@
|
|
|
</up-form-item>
|
|
|
|
|
|
<view v-if="workpresetjson.additem != 0">
|
|
|
- <up-form-item label="是否更换配件" prop="oldtitems" :required="workpresetjson.additem == 11">
|
|
|
+ <up-form-item label="是否更换配件" prop="additem" :required="workpresetjson.additem == 11">
|
|
|
<view class="options-box">
|
|
|
<view class="option" :class="form.additem == item.value ? 'active' : ''" v-for="item in [
|
|
|
{ value: '1', name: '是' },
|
|
@@ -41,14 +41,23 @@
|
|
|
</up-form-item>
|
|
|
|
|
|
<block v-if="form.additem == 1">
|
|
|
- <up-form-item label="配件清单" prop="items" required>
|
|
|
+ <up-form-item :label="`新配件(${data.newtitems.length})`" prop="newtitems" required>
|
|
|
<view class="options-box">
|
|
|
- <view class="option active" hover-class="navigator-hover" @click="toAddItem">
|
|
|
- + 去添加配件
|
|
|
+ <view class="option active" hover-class="navigator-hover" @click="toAddItem('newtitems')">
|
|
|
+ + 去添加新配件
|
|
|
</view>
|
|
|
</view>
|
|
|
</up-form-item>
|
|
|
- <accList :list="data.oldtitems" @deleteItem="deleteItem" />
|
|
|
+ <accList :list="data.newtitems" @deleteItem="deleteItem($event, 'newtitems')" />
|
|
|
+
|
|
|
+ <up-form-item :label="`旧配件(${data.oldtitems.length})`">
|
|
|
+ <view class="options-box">
|
|
|
+ <view class="option active" hover-class="navigator-hover" @click="toAddItem('oldtitems')">
|
|
|
+ + 去添加旧配件
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </up-form-item>
|
|
|
+ <accList :list="data.oldtitems" @deleteItem="deleteItem($event, 'oldtitems')" />
|
|
|
</block>
|
|
|
</view>
|
|
|
|
|
@@ -141,24 +150,38 @@ function beforeleave(e) {
|
|
|
}
|
|
|
|
|
|
// 去添加配件
|
|
|
-function toAddItem() {
|
|
|
+function toAddItem(key = 'oldtitems') {
|
|
|
if (data.status == '1') return;
|
|
|
+ $Http.basicsData = {
|
|
|
+ selected: key,
|
|
|
+ newtitems: deepCloneArray(data.newtitems) || [],
|
|
|
+ oldtitems: deepCloneArray(data.oldtitems) || [],
|
|
|
+ }
|
|
|
uni.navigateTo({
|
|
|
- url: '/pages/select/accessories?list=' + JSON.stringify(data.oldtitems || []),
|
|
|
+ url: '/pages/select/accessories'
|
|
|
});
|
|
|
-
|
|
|
$Http.selectAcc = (res) => {
|
|
|
- data.oldtitems = res;
|
|
|
- form.oldtitems = data.oldtitems.length ? '1' : '';
|
|
|
+ data.newtitems = res.newtitems;
|
|
|
+ data.oldtitems = res.oldtitems;
|
|
|
+ form.newtitems = res.newtitems.length ? '1' : '';
|
|
|
+
|
|
|
uni.navigateBack();
|
|
|
delete $Http.selectAcc
|
|
|
+ delete $Http.basicsData
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// 帮我写一个[{},{}] 深拷贝的方法
|
|
|
+function deepCloneArray(arr) {
|
|
|
+ return arr.map(item => {
|
|
|
+ return { ...item };
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
// 删除配件
|
|
|
-function deleteItem(item) {
|
|
|
- data.oldtitems = data.oldtitems.filter(v => v.itemid !== item.itemid);
|
|
|
- form.oldtitems = data.oldtitems.length ? '1' : '';
|
|
|
+function deleteItem(item, key = 'oldtitems') {
|
|
|
+ data[key] = data[key].filter(v => v.itemid !== item.itemid);
|
|
|
+ if (key == 'newtitems') form.newtitems = data.newtitems.length ? '1' : '';
|
|
|
}
|
|
|
|
|
|
const form = reactive({
|
|
@@ -171,6 +194,7 @@ const form = reactive({
|
|
|
amountpay: "", // 费用支付
|
|
|
fileupload: "", // 上传图片
|
|
|
oldtitems: "",//配件
|
|
|
+ newtitems: "",//配件
|
|
|
});
|
|
|
|
|
|
let keys = {
|
|
@@ -224,9 +248,16 @@ onLoad(() => {
|
|
|
data.oldtitems = data.detail[0].oldtitems.map(item => {
|
|
|
item.imageUrl = item.attinfos.length ? $Http.getSpecifiedImage(item.attinfos[0]) : ''
|
|
|
return item;
|
|
|
- });;
|
|
|
+ });
|
|
|
+ data.newtitems = data.detail[0].newtitems.map(item => {
|
|
|
+ item.imageUrl = item.attinfos.length ? $Http.getSpecifiedImage(item.attinfos[0]) : ''
|
|
|
+ return item;
|
|
|
+ });
|
|
|
+
|
|
|
+ form.newtitems = data.newtitems.length ? '1' : '';
|
|
|
form.oldtitems = data.oldtitems.length ? '1' : '';
|
|
|
- form.additem = form.oldtitems.length ? '1' : '0';
|
|
|
+ form.additem = form.newtitems || form.oldtitems ? '1' : '0';
|
|
|
+
|
|
|
}
|
|
|
|
|
|
rules = Object.assign(rules, {
|
|
@@ -257,6 +288,8 @@ onLoad(() => {
|
|
|
fileupload: [
|
|
|
{ required: workpresetjson.fileupload == 11, message: '请上传图片', trigger: 'change' }
|
|
|
],
|
|
|
+ additem: [{ required: workpresetjson.additem == 11, message: '请选择是否更换配件', trigger: 'change' }]
|
|
|
+
|
|
|
})
|
|
|
|
|
|
setTimeout(() => {
|
|
@@ -298,9 +331,10 @@ function submit() {
|
|
|
if (loading.value) return;
|
|
|
if (upload.value.isUploading()) return;
|
|
|
|
|
|
- let traintitem = []
|
|
|
+ let traintitem = [],
|
|
|
+ newtitems = [];
|
|
|
try {
|
|
|
- if (form.additem != 0) {
|
|
|
+ if (form.additem == 1) {
|
|
|
traintitem = data.oldtitems.map(v => {
|
|
|
return {
|
|
|
itemid: v.itemid,
|
|
@@ -310,8 +344,19 @@ function submit() {
|
|
|
qty: v.qty || v.packageqty || 1,
|
|
|
}
|
|
|
})
|
|
|
+
|
|
|
+ newtitems = data.newtitems.map(v => {
|
|
|
+ return {
|
|
|
+ itemid: v.itemid,
|
|
|
+ itemname: v.itemname,
|
|
|
+ model: v.model,
|
|
|
+ price: v.price,
|
|
|
+ qty: v.qty || v.packageqty || 1,
|
|
|
+ }
|
|
|
+ })
|
|
|
} else {
|
|
|
traintitem = []
|
|
|
+ newtitems = []
|
|
|
}
|
|
|
} catch (error) {
|
|
|
|
|
@@ -324,7 +369,8 @@ function submit() {
|
|
|
"sa_workorder_nodeid": data.sa_workorder_nodeid,
|
|
|
isconfirm: 1,
|
|
|
...formToContent(form),
|
|
|
- traintitem
|
|
|
+ traintitem,
|
|
|
+ newtitems
|
|
|
};
|
|
|
uni.showModal({
|
|
|
title: '提示',
|
|
@@ -367,10 +413,11 @@ function submit() {
|
|
|
function save() {
|
|
|
if (loading1.value) return;
|
|
|
if (upload.value.isUploading()) return;
|
|
|
- let traintitem = []
|
|
|
- console.log("oldtitems", data.oldtitems)
|
|
|
+
|
|
|
+ let traintitem = [],
|
|
|
+ newtitems = [];
|
|
|
try {
|
|
|
- if (form.additem != 0) {
|
|
|
+ if (form.additem == 1) {
|
|
|
traintitem = data.oldtitems.map(v => {
|
|
|
return {
|
|
|
itemid: v.itemid,
|
|
@@ -380,21 +427,34 @@ function save() {
|
|
|
qty: v.qty || v.packageqty || 1,
|
|
|
}
|
|
|
})
|
|
|
+
|
|
|
+ newtitems = data.newtitems.map(v => {
|
|
|
+ return {
|
|
|
+ itemid: v.itemid,
|
|
|
+ itemname: v.itemname,
|
|
|
+ model: v.model,
|
|
|
+ price: v.price,
|
|
|
+ qty: v.qty || v.packageqty || 1,
|
|
|
+ }
|
|
|
+ })
|
|
|
} else {
|
|
|
traintitem = []
|
|
|
+ newtitems = []
|
|
|
}
|
|
|
} catch (error) {
|
|
|
- console.log(error)
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
let content = {
|
|
|
"sa_workorderid": data.sa_workorderid,
|
|
|
"sa_workorder_nodeid": data.sa_workorder_nodeid,
|
|
|
isconfirm: 0,
|
|
|
...formToContent(form),
|
|
|
- traintitem
|
|
|
+ traintitem,
|
|
|
+ newtitems
|
|
|
};
|
|
|
- console.log('content', content)
|
|
|
+
|
|
|
loading1.value = true;
|
|
|
$Http.basic({
|
|
|
"id": "20230209094203",
|
|
@@ -419,7 +479,7 @@ function clickRadio(value, key) {
|
|
|
if (data.status == '1') return;
|
|
|
form[key] = form[key] == value ? "" : value;
|
|
|
if (key == 'passcheck') {
|
|
|
- if (value == '0') {
|
|
|
+ if (form[key] == '0') {
|
|
|
rules.textedit[0].required = true;
|
|
|
rules.fileupload[0].required = true;
|
|
|
} else {
|
|
@@ -428,12 +488,12 @@ function clickRadio(value, key) {
|
|
|
}
|
|
|
uFormRef.value.setRules(rules);
|
|
|
} else if (key == 'additem') {
|
|
|
- if (value == '1') {
|
|
|
- rules.oldtitems = [{ required: true, message: '请选择配件清单', trigger: 'change' }];
|
|
|
+ if (form[key] == '1') {
|
|
|
+ rules.newtitems = [{ required: true, message: '请选择新配件', trigger: 'change' }];
|
|
|
} else {
|
|
|
- delete rules.oldtitems;
|
|
|
+ delete rules.newtitems;
|
|
|
}
|
|
|
- if (value == '1' && !data.oldtitems.length) toAddItem();
|
|
|
+ if (form[key] == '1' && !data.oldtitems.length) toAddItem('newtitems');
|
|
|
form.oldtitems = data.oldtitems.length ? '1' : '';
|
|
|
uFormRef.value.setRules(rules);
|
|
|
}
|