|
@@ -23,77 +23,90 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="正常入库数量">
|
|
|
|
|
|
+ <el-form-item label="正常入库数量" prop="wsm_num">
|
|
<el-input
|
|
<el-input
|
|
placeholder="正常入库数量"
|
|
placeholder="正常入库数量"
|
|
- v-model="ruleForm.send_num"
|
|
|
|
|
|
+ :disabled="status !== '2'"
|
|
|
|
+ v-model="ruleForm.wsm_num"
|
|
maxlength="100"
|
|
maxlength="100"
|
|
>
|
|
>
|
|
</el-input>
|
|
</el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="异常补发数量" prop="wsm_num">
|
|
|
|
|
|
+ <el-form-item label="异常补发数量" prop="reissue_num">
|
|
<el-input
|
|
<el-input
|
|
placeholder="异常补发数量"
|
|
placeholder="异常补发数量"
|
|
- :disabled="status !== '1'"
|
|
|
|
- v-model="ruleForm.wsm_num"
|
|
|
|
|
|
+ :disabled="status !== '2'"
|
|
|
|
+ v-model="ruleForm.reissue_num"
|
|
maxlength="100"
|
|
maxlength="100"
|
|
>
|
|
>
|
|
</el-input>
|
|
</el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="异常退货数量" prop="wsm_num">
|
|
|
|
|
|
+ <el-form-item label="异常退货数量" prop="return_num">
|
|
<el-input
|
|
<el-input
|
|
placeholder="异常退货数量"
|
|
placeholder="异常退货数量"
|
|
- :disabled="status !== '1'"
|
|
|
|
- v-model="ruleForm.wsm_num"
|
|
|
|
|
|
+ :disabled="status !== '2'"
|
|
|
|
+ v-model="ruleForm.return_num"
|
|
maxlength="100"
|
|
maxlength="100"
|
|
>
|
|
>
|
|
</el-input>
|
|
</el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="退货联系人" prop="wsm_num">
|
|
|
|
|
|
+ <el-form-item label="收件联系人" prop="contactor">
|
|
<el-input
|
|
<el-input
|
|
- placeholder="退货联系人"
|
|
|
|
- :disabled="status !== '1'"
|
|
|
|
- v-model="ruleForm.wsm_num"
|
|
|
|
|
|
+ placeholder="收件联系人"
|
|
|
|
+ :disabled="status !== '2'"
|
|
|
|
+ v-model="ruleForm.contactor"
|
|
maxlength="100"
|
|
maxlength="100"
|
|
>
|
|
>
|
|
</el-input>
|
|
</el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="退货联系电话" prop="wsm_num">
|
|
|
|
|
|
+ <el-form-item label="收件联系电话" prop="mobile">
|
|
<el-input
|
|
<el-input
|
|
- placeholder="退货联系电话"
|
|
|
|
- :disabled="status !== '1'"
|
|
|
|
- v-model="ruleForm.wsm_num"
|
|
|
|
|
|
+ placeholder="收件联系电话"
|
|
|
|
+ :disabled="status !== '2'"
|
|
|
|
+ v-model="ruleForm.mobile"
|
|
maxlength="100"
|
|
maxlength="100"
|
|
>
|
|
>
|
|
</el-input>
|
|
</el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="退货地址" prop="wsm_num">
|
|
|
|
|
|
+ <el-form-item label="收件地址" prop="addr">
|
|
<el-input
|
|
<el-input
|
|
- placeholder="退货地址"
|
|
|
|
|
|
+ placeholder="收件地址"
|
|
type="textarea"
|
|
type="textarea"
|
|
- :disabled="status !== '1'"
|
|
|
|
- v-model="ruleForm.remark"
|
|
|
|
|
|
+ :disabled="status !== '2'"
|
|
|
|
+ v-model="ruleForm.addr"
|
|
maxlength="250"
|
|
maxlength="250"
|
|
:autosize="{ minRows: 3, maxRows: 3 }"
|
|
:autosize="{ minRows: 3, maxRows: 3 }"
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="异常处理备注" prop="wsm_num">
|
|
|
|
|
|
+ <el-form-item label="异常处理备注" prop="error_remark">
|
|
<el-input
|
|
<el-input
|
|
type="textarea"
|
|
type="textarea"
|
|
placeholder="异常处理备注"
|
|
placeholder="异常处理备注"
|
|
- :disabled="status !== '1'"
|
|
|
|
|
|
+ :disabled="status !== '2'"
|
|
|
|
+ v-model="ruleForm.error_remark"
|
|
|
|
+ maxlength="250"
|
|
|
|
+ :autosize="{ minRows: 3, maxRows: 3 }"
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="24" v-if="ruleForm.remark">
|
|
|
|
+ <el-form-item label="驳回理由" prop="remark">
|
|
|
|
+ <el-input
|
|
|
|
+ type="textarea"
|
|
|
|
+ placeholder="驳回理由"
|
|
|
|
+ disabled
|
|
v-model="ruleForm.remark"
|
|
v-model="ruleForm.remark"
|
|
maxlength="250"
|
|
maxlength="250"
|
|
:autosize="{ minRows: 3, maxRows: 3 }"
|
|
:autosize="{ minRows: 3, maxRows: 3 }"
|
|
@@ -101,8 +114,10 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
|
|
|
|
- <el-col :span="24" style="text-align: right">
|
|
|
|
- <el-button type="primary" @click="submitForm">保 存 </el-button>
|
|
|
|
|
|
+ <el-col :span="24" style="text-align: right; padding: 0 0 10px 0">
|
|
|
|
+ <el-button :size="'mini'" v-if="status === '2' && powers.some((item) => item == '030')" type="primary" @click="submitForm"
|
|
|
|
+ >保 存
|
|
|
|
+ </el-button>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
</el-form>
|
|
</el-form>
|
|
@@ -113,12 +128,10 @@
|
|
<script>
|
|
<script>
|
|
import asyncRequest from "@/apis/service/purchaseIn/purchaseOrder/detail";
|
|
import asyncRequest from "@/apis/service/purchaseIn/purchaseOrder/detail";
|
|
import resToken from "@/mixins/resToken";
|
|
import resToken from "@/mixins/resToken";
|
|
-import { isnumber } from "@/utils/validate";
|
|
|
|
-import wsmInOrderErrorModel from "./wsm-in-order-error-model";
|
|
|
|
|
|
+import { isMobile, isLicense, isnumber, isPhone } from "@/utils/validate";
|
|
export default {
|
|
export default {
|
|
name: "wsmInOrderAdd",
|
|
name: "wsmInOrderAdd",
|
|
props: ["id", "sitem", "newTime", "modelSitem"],
|
|
props: ["id", "sitem", "newTime", "modelSitem"],
|
|
- components: { wsmInOrderErrorModel },
|
|
|
|
mixins: [resToken],
|
|
mixins: [resToken],
|
|
computed: {
|
|
computed: {
|
|
powers() {
|
|
powers() {
|
|
@@ -145,7 +158,17 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|
|
-
|
|
|
|
|
|
+ const validatemobile = (rule, value, callback) => {
|
|
|
|
+ if (value !== "") {
|
|
|
|
+ if (isPhone(value) || isMobile(value)) {
|
|
|
|
+ callback();
|
|
|
|
+ } else {
|
|
|
|
+ callback(new Error("联系电话格式不正确!"));
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ callback(new Error("请输入收货联系电话!"));
|
|
|
|
+ }
|
|
|
|
+ };
|
|
return {
|
|
return {
|
|
loading: true,
|
|
loading: true,
|
|
status: "",
|
|
status: "",
|
|
@@ -154,37 +177,54 @@ export default {
|
|
modelitem: null,
|
|
modelitem: null,
|
|
modelId: "",
|
|
modelId: "",
|
|
ruleForm: {
|
|
ruleForm: {
|
|
- order_num: "",
|
|
|
|
|
|
+ wsm_in_code: "",
|
|
|
|
+ send_num: "",
|
|
|
|
+ wsm_num: "",
|
|
|
|
+ reissue_num: "",
|
|
|
|
+ return_num: "",
|
|
|
|
+ contactor: "",
|
|
|
|
+ addr: "",
|
|
|
|
+ mobile: "",
|
|
|
|
+ error_remark: "",
|
|
|
|
+ remark: "",
|
|
},
|
|
},
|
|
rules: {
|
|
rules: {
|
|
- order_num: {
|
|
|
|
|
|
+ wsm_num: {
|
|
required: true,
|
|
required: true,
|
|
validator: validateWeight,
|
|
validator: validateWeight,
|
|
trigger: "blur",
|
|
trigger: "blur",
|
|
},
|
|
},
|
|
- },
|
|
|
|
- columns: [
|
|
|
|
- {
|
|
|
|
- prop: "num",
|
|
|
|
- label: "异常数量",
|
|
|
|
|
|
+ reissue_num: {
|
|
|
|
+ required: true,
|
|
|
|
+ validator: validateWeight,
|
|
|
|
+ trigger: "blur",
|
|
|
|
+ },
|
|
|
|
+ return_num: {
|
|
|
|
+ required: true,
|
|
|
|
+ validator: validateWeight,
|
|
|
|
+ trigger: "blur",
|
|
},
|
|
},
|
|
- {
|
|
|
|
- prop: "error_code_name",
|
|
|
|
- label: "异常原因",
|
|
|
|
|
|
+ contactor: {
|
|
|
|
+ required: true,
|
|
|
|
+ message: "收件联系人不能为空!",
|
|
|
|
+ trigger: "blur",
|
|
|
|
+ },
|
|
|
|
+ addr: {
|
|
|
|
+ required: true,
|
|
|
|
+ message: "收件地址不能为空!",
|
|
|
|
+ trigger: "blur",
|
|
},
|
|
},
|
|
- {
|
|
|
|
- prop: "error_img",
|
|
|
|
- label: "异常图片",
|
|
|
|
|
|
+ mobile: {
|
|
|
|
+ required: true,
|
|
|
|
+ validator: validatemobile,
|
|
|
|
+ trigger: "blur",
|
|
},
|
|
},
|
|
- {
|
|
|
|
- prop: "remark",
|
|
|
|
- label: "异常备注",
|
|
|
|
|
|
+ error_remark: {
|
|
|
|
+ required: true,
|
|
|
|
+ message: "异常处理备注不能为空!",
|
|
|
|
+ trigger: "blur",
|
|
},
|
|
},
|
|
- ],
|
|
|
|
- tableForm: {
|
|
|
|
- error_list: [],
|
|
|
|
},
|
|
},
|
|
- tableRules: {},
|
|
|
|
};
|
|
};
|
|
},
|
|
},
|
|
watch: {
|
|
watch: {
|
|
@@ -208,27 +248,36 @@ export default {
|
|
await this.resetForm();
|
|
await this.resetForm();
|
|
this.loading = false;
|
|
this.loading = false;
|
|
},
|
|
},
|
|
- errorModel(e) {
|
|
|
|
- if (e) {
|
|
|
|
- let index = e.index;
|
|
|
|
- if (index === -1) {
|
|
|
|
- this.tableForm.error_list.push(e);
|
|
|
|
- } else {
|
|
|
|
- this.tableForm.error_list[index] = e;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
//初始化表单
|
|
//初始化表单
|
|
async resetForm() {
|
|
async resetForm() {
|
|
await this.$nextTick(() => {
|
|
await this.$nextTick(() => {
|
|
if (this.$refs.ruleForm) {
|
|
if (this.$refs.ruleForm) {
|
|
this.$refs.ruleForm.resetFields();
|
|
this.$refs.ruleForm.resetFields();
|
|
this.$refs.ruleForm.clearValidate();
|
|
this.$refs.ruleForm.clearValidate();
|
|
- const { send_num, wsm_num, status } = this.sitem;
|
|
|
|
|
|
+ const { wsm_in_code, status, send_num } = this.sitem;
|
|
|
|
+ const {
|
|
|
|
+ return_contactor,
|
|
|
|
+ return_addr,
|
|
|
|
+ return_mobile,
|
|
|
|
+ wsm_num,
|
|
|
|
+ reissue_num,
|
|
|
|
+ return_num,
|
|
|
|
+ error_remark,
|
|
|
|
+ remark,
|
|
|
|
+ } = this.sitem.return;
|
|
|
|
+
|
|
this.status = status;
|
|
this.status = status;
|
|
this.ruleForm = {
|
|
this.ruleForm = {
|
|
- send_num: send_num || "",
|
|
|
|
- wsm_num: wsm_num || "",
|
|
|
|
|
|
+ wsm_in_code: wsm_in_code || "",
|
|
|
|
+ send_num: send_num || "0",
|
|
|
|
+ wsm_num: wsm_num || "0",
|
|
|
|
+ reissue_num: reissue_num || "0",
|
|
|
|
+ return_num: return_num || "0",
|
|
|
|
+ contactor: return_contactor || "",
|
|
|
|
+ addr: return_addr || "",
|
|
|
|
+ mobile: return_mobile || "",
|
|
|
|
+ error_remark: error_remark || "",
|
|
|
|
+ remark: remark || "",
|
|
};
|
|
};
|
|
}
|
|
}
|
|
if (this.$refs.tableForm) {
|
|
if (this.$refs.tableForm) {
|
|
@@ -254,43 +303,25 @@ export default {
|
|
await this.$refs.ruleForm.validate(async (valid) => {
|
|
await this.$refs.ruleForm.validate(async (valid) => {
|
|
if (valid) {
|
|
if (valid) {
|
|
this.loading = true;
|
|
this.loading = true;
|
|
- const item = JSON.parse(JSON.stringify(this.ruleForm));
|
|
|
|
- let snum = parseInt(item.send_num),
|
|
|
|
|
|
+ let item = JSON.parse(JSON.stringify(this.ruleForm));
|
|
|
|
+ let rnum = parseInt(item.return_num),
|
|
wnum = parseInt(item.wsm_num),
|
|
wnum = parseInt(item.wsm_num),
|
|
- errornum = 0,
|
|
|
|
- list = [];
|
|
|
|
|
|
+ anum = parseInt(item.send_num);
|
|
|
|
|
|
- if (snum === wnum && this.tableForm.error_list.length > 0) {
|
|
|
|
- this.$message.warning("正常数量与发货数量一致,无需填写异常原因!");
|
|
|
|
|
|
+ if (rnum + wnum !== anum) {
|
|
|
|
+ this.$message.warning(
|
|
|
|
+ "正常入库数量 + 异常退货数量 不等于 发货总数!"
|
|
|
|
+ );
|
|
this.loading = false;
|
|
this.loading = false;
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- this.tableForm.error_list.forEach((v) => {
|
|
|
|
- errornum += parseInt(v.num);
|
|
|
|
- let model = {
|
|
|
|
- num: v.num,
|
|
|
|
- error_code: v.error_code,
|
|
|
|
- error_img: v.error_img.join(","),
|
|
|
|
- remark: v.remark,
|
|
|
|
- };
|
|
|
|
- list.push(model);
|
|
|
|
- });
|
|
|
|
|
|
|
|
- if (errornum + wnum !== snum) {
|
|
|
|
- this.$message.warning("异常数量总数与发货总数不一致!");
|
|
|
|
- this.loading = false;
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- let pitem = {
|
|
|
|
- wsm_in_code: this.id,
|
|
|
|
- order_num: wnum + "",
|
|
|
|
- error_list: list,
|
|
|
|
- };
|
|
|
|
- const res = await asyncRequest.orderinreturn(pitem);
|
|
|
|
|
|
+ delete item["send_num"];
|
|
|
|
+ const res = await asyncRequest.orderinreturn(item);
|
|
this.loading = false;
|
|
this.loading = false;
|
|
if (res && res.code === 0) {
|
|
if (res && res.code === 0) {
|
|
this.$notify.success({
|
|
this.$notify.success({
|
|
- title: "添加成功",
|
|
|
|
|
|
+ title: "提交成功",
|
|
message: "",
|
|
message: "",
|
|
});
|
|
});
|
|
this.$emit("refresh"); //抛出事件给详情页。
|
|
this.$emit("refresh"); //抛出事件给详情页。
|