update: 收货补单 出货补单接口对接
This commit is contained in:
parent
136f99b639
commit
4f40642986
|
@ -33,7 +33,7 @@
|
|||
>
|
||||
<template #suffix>
|
||||
<text v-if="item.key === 'subtractNum'">
|
||||
{{ model1.order.subtractType === 1 ? item.unit : "%" }}
|
||||
{{ model1.order.buttonType === 1 ? item.unit : "%" }}
|
||||
</text>
|
||||
<text v-else>
|
||||
{{ item.unit }}
|
||||
|
@ -75,15 +75,15 @@
|
|||
@cancel="contrlModalParams.isShowSplTime = false"
|
||||
></u-datetime-picker>
|
||||
<block v-for="(item, index) in formAttrList" :key="index">
|
||||
<!-- <u-action-sheet
|
||||
v-if="item.type === 'select'"
|
||||
<u-action-sheet
|
||||
v-if="item.type === 'select' && item.key !== 'repairTime'"
|
||||
:actions="contrlModalParams[item.childKey].list"
|
||||
:title="contrlModalParams[item.childKey].title"
|
||||
:show="contrlModalParams[item.childKey].isShow"
|
||||
@select="(v: any) => handleSelect(item.childKey, v)"
|
||||
@close="contrlModalParams[item.childKey].isShow = false"
|
||||
:closeOnClickAction="true"
|
||||
></u-action-sheet> -->
|
||||
></u-action-sheet>
|
||||
</block>
|
||||
</view>
|
||||
<view class="btn-box">
|
||||
|
@ -91,12 +91,14 @@
|
|||
</view>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { PictureApi, ReceiveApi } from "@/services";
|
||||
import { DeviceApi, PictureApi, ProfileApi, ReceiveApi, ReceiveProductApi } from "@/services";
|
||||
import { formatDate } from "@/utils";
|
||||
import { ImagesType, OrderType } from "@/utils/enum";
|
||||
import { DeviceType, ImagesType, OrderType } from "@/utils/enum";
|
||||
import _ from "underscore";
|
||||
|
||||
const model1 = reactive<any>({
|
||||
order: {
|
||||
buttonType: 0,
|
||||
fileList: [],
|
||||
splTime: "",
|
||||
subtractType: 1,
|
||||
|
@ -122,14 +124,7 @@ const contrlModalParams = reactive<any>({
|
|||
device: {
|
||||
isShow: false,
|
||||
title: "标题",
|
||||
selectList: [
|
||||
{
|
||||
name: "选项一",
|
||||
},
|
||||
{
|
||||
name: "选项二",
|
||||
},
|
||||
],
|
||||
list: [],
|
||||
},
|
||||
user: {
|
||||
isShow: false,
|
||||
|
@ -143,7 +138,7 @@ const contrlModalParams = reactive<any>({
|
|||
},
|
||||
});
|
||||
|
||||
const formAttrList = reactive([
|
||||
const formAttrList = reactive<any>([
|
||||
{
|
||||
name: "补单时间",
|
||||
key: "repairTime",
|
||||
|
@ -162,8 +157,8 @@ const formAttrList = reactive([
|
|||
required: true,
|
||||
unit: "",
|
||||
fn: () => {
|
||||
contrlModalParams.select.isShow = true;
|
||||
contrlModalParams.select.title = "站点磅秤";
|
||||
contrlModalParams.device.isShow = true;
|
||||
contrlModalParams.device.title = "站点磅秤";
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -174,8 +169,8 @@ const formAttrList = reactive([
|
|||
required: true,
|
||||
unit: "",
|
||||
fn: () => {
|
||||
contrlModalParams.select.isShow = true;
|
||||
contrlModalParams.select.title = "供应商";
|
||||
contrlModalParams.user.isShow = true;
|
||||
contrlModalParams.user.title = "供应商";
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -192,8 +187,8 @@ const formAttrList = reactive([
|
|||
required: true,
|
||||
unit: "",
|
||||
fn: () => {
|
||||
contrlModalParams.select.isShow = true;
|
||||
contrlModalParams.select.title = "收货产品";
|
||||
contrlModalParams.product.isShow = true;
|
||||
contrlModalParams.product.title = "收货产品";
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -280,20 +275,64 @@ const handleUpload = () => {
|
|||
});
|
||||
});
|
||||
};
|
||||
const handleSelect = (key: string, v: any) => {
|
||||
contrlModalParams[key].isShow = false;
|
||||
if (key === "user") {
|
||||
debugger
|
||||
model1.order.userName = v.name;
|
||||
model1.order.userId = v.id;
|
||||
} else if (key === "product") {
|
||||
model1.order.productName = v.name;
|
||||
model1.order.productId = v.id;
|
||||
} else if (key === "device") {
|
||||
model1.order.deviceName = v.name;
|
||||
model1.order.deviceId = v.id;
|
||||
}
|
||||
};
|
||||
// 供应商信息
|
||||
ProfileApi.getUserList({ userType: 2 }).then((res) => {
|
||||
if (res.code === 200) {
|
||||
contrlModalParams.user.list = res.data;
|
||||
console.log(contrlModalParams.user.list)
|
||||
}
|
||||
});
|
||||
// 产品信息
|
||||
ReceiveProductApi.getAllReProducts().then((res) => {
|
||||
if (res.code === 200) {
|
||||
contrlModalParams.product.list = _.map(
|
||||
res.data as any,
|
||||
function (item: any) {
|
||||
return { name: item.reProductsName, ...item };
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
// 设备信息
|
||||
DeviceApi.getDeviceList({deviceType: DeviceType.Weighbridge}).then(res => {
|
||||
if (res.code === 200) {
|
||||
contrlModalParams.device.list = _.map(
|
||||
res.data as any,
|
||||
function (item: any) {
|
||||
return { name: item.deviceName, ...item };
|
||||
}
|
||||
);
|
||||
}
|
||||
})
|
||||
|
||||
const save = () => {
|
||||
Promise.all(handleUpload()).then((res) => {
|
||||
// 上传多个资源
|
||||
if (res.length > 0) {
|
||||
PictureApi.addListAnnex({ annexPos: res }).then((res1) => {
|
||||
if (res1.code === 200) {
|
||||
uni.showToast({
|
||||
title: "图片资源上传成功",
|
||||
icon: "success",
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
// Promise.all(handleUpload()).then((res) => {
|
||||
// // 上传多个资源
|
||||
// if (res.length > 0) {
|
||||
// PictureApi.addListAnnex({ annexPos: res }).then((res1) => {
|
||||
// if (res1.code === 200) {
|
||||
// uni.showToast({
|
||||
// title: "图片资源上传成功",
|
||||
// icon: "success",
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
if (model1.order.buttonType === 0) {
|
||||
model1.order.buckleMiscellaneous = model1.order.subtractNum;
|
||||
} else if (model1.order.buttonType === 1) {
|
||||
|
@ -301,9 +340,10 @@ const save = () => {
|
|||
}
|
||||
ReceiveApi.addOrderIn(model1.order).then((res) => {
|
||||
if (res.code === 200) {
|
||||
uni.navigateTo({
|
||||
url: "/pages/index/index", // 要跳转到的页面路径
|
||||
});
|
||||
model1.order.id = (res.data as any).id
|
||||
// uni.navigateTo({
|
||||
// url: "/pages/index/index", // 要跳转到的页面路径
|
||||
// });
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
|
@ -33,32 +33,34 @@
|
|||
>
|
||||
<template #suffix>
|
||||
<text v-if="item.key === 'subtractNum'">
|
||||
{{ model1.order.subtractType === 1 ? item.unit : "%" }}
|
||||
{{ model1.order.buttonType === 1 ? item.unit : "%" }}
|
||||
</text>
|
||||
<text v-else>
|
||||
{{ item.unit }}
|
||||
</text>
|
||||
|
||||
</template>
|
||||
</u-input>
|
||||
<!-- @afterRead="afterRead"
|
||||
@delete="deletePic" -->
|
||||
<u-upload
|
||||
<uni-file-picker
|
||||
v-if="item.type === 'upload'"
|
||||
:fileList="[]"
|
||||
name="1"
|
||||
multiple
|
||||
:maxCount="10"
|
||||
></u-upload>
|
||||
v-model="model1.order.fileList"
|
||||
limit="10"
|
||||
title="最多可上传10张图片"
|
||||
:auto-upload="false"
|
||||
fileMediatype="image"
|
||||
mode="grid"
|
||||
ref="filesRef"
|
||||
></uni-file-picker>
|
||||
|
||||
<u-radio-group
|
||||
v-if="item.type === 'radio'"
|
||||
v-model="(model1.order as any)[item.key]"
|
||||
placement="row"
|
||||
>
|
||||
<u-radio activeColor="#00DCEE" label="送货" :name="1"></u-radio>
|
||||
<u-radio activeColor="#00DCEE" label="按固定重量" :name="1"></u-radio>
|
||||
|
||||
<u-radio activeColor="#00DCEE" label="自提" :name="2"></u-radio>
|
||||
<u-radio activeColor="#00DCEE" label="按百分比" :name="2"></u-radio>
|
||||
</u-radio-group>
|
||||
<template #right v-if="item.type === 'select'">
|
||||
<u-icon name="arrow-right"></u-icon>
|
||||
|
@ -69,26 +71,37 @@
|
|||
:show="contrlModalParams.isShowSplTime"
|
||||
v-model="contrlModalParams.spltime"
|
||||
mode="datetime"
|
||||
@confirm="contrlModalParams.isShowSplTime = false"
|
||||
@confirm="(v: any) => {handleTime(v)}"
|
||||
@cancel="contrlModalParams.isShowSplTime = false"
|
||||
></u-datetime-picker>
|
||||
<u-action-sheet
|
||||
:actions="contrlModalParams.select.selectList"
|
||||
:title="contrlModalParams.select.title"
|
||||
:show="contrlModalParams.select.isShow"
|
||||
@select="contrlModalParams.select.isShow = false"
|
||||
@close="contrlModalParams.select.isShow = false"
|
||||
></u-action-sheet>
|
||||
<block v-for="(item, index) in formAttrList" :key="index">
|
||||
<u-action-sheet
|
||||
v-if="item.type === 'select' && item.key !== 'repairTime'"
|
||||
:actions="contrlModalParams[item.childKey].list"
|
||||
:title="contrlModalParams[item.childKey].title"
|
||||
:show="contrlModalParams[item.childKey].isShow"
|
||||
@select="(v: any) => handleSelect(item.childKey, v)"
|
||||
@close="contrlModalParams[item.childKey].isShow = false"
|
||||
:closeOnClickAction="true"
|
||||
></u-action-sheet>
|
||||
</block>
|
||||
</view>
|
||||
<view class="btn-box">
|
||||
<u-button type="primary" text="保存"></u-button>
|
||||
<u-button type="primary" text="保存" @click="save()"></u-button>
|
||||
</view>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
const model1 = reactive({
|
||||
import { DeviceApi, GoodsApi, PictureApi, ProfileApi, ReceiveApi, ReceiveProductApi, ShipmentApi } from "@/services";
|
||||
import { formatDate } from "@/utils";
|
||||
import { DeviceType, ImagesType, OrderType } from "@/utils/enum";
|
||||
import _ from "underscore";
|
||||
|
||||
const model1 = reactive<any>({
|
||||
order: {
|
||||
buttonType: 0,
|
||||
fileList: [],
|
||||
splTime: "",
|
||||
takeType: 1,
|
||||
subtractType: 1,
|
||||
},
|
||||
});
|
||||
const rules = ref({
|
||||
|
@ -105,70 +118,76 @@ const rules = ref({
|
|||
trigger: ["blur", "change"],
|
||||
},
|
||||
});
|
||||
const contrlModalParams = reactive({
|
||||
const contrlModalParams = reactive<any>({
|
||||
isShowSplTime: false,
|
||||
spltime: "",
|
||||
select: {
|
||||
device: {
|
||||
isShow: false,
|
||||
title: "标题",
|
||||
selectList: [
|
||||
{
|
||||
name: "选项一",
|
||||
},
|
||||
{
|
||||
name: "选项二",
|
||||
},
|
||||
],
|
||||
list: [],
|
||||
},
|
||||
user: {
|
||||
isShow: false,
|
||||
title: "标题",
|
||||
list: [],
|
||||
},
|
||||
product: {
|
||||
isShow: false,
|
||||
title: "标题",
|
||||
list: [],
|
||||
},
|
||||
});
|
||||
|
||||
const formAttrList = reactive([
|
||||
const formAttrList = reactive<any>([
|
||||
{
|
||||
name: "补单时间",
|
||||
key: "splTime",
|
||||
key: "repairTime",
|
||||
type: "select",
|
||||
required: true,
|
||||
unit: "",
|
||||
required: true,
|
||||
fn: () => {
|
||||
contrlModalParams.isShowSplTime = true;
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "过磅设备",
|
||||
key: "weighDevice",
|
||||
key: "deviceName",
|
||||
type: "select",
|
||||
childKey: 'device',
|
||||
required: true,
|
||||
unit: "",
|
||||
fn: () => {
|
||||
contrlModalParams.select.isShow = true;
|
||||
contrlModalParams.select.title = "站点磅秤";
|
||||
contrlModalParams.device.isShow = true;
|
||||
contrlModalParams.device.title = "站点磅秤";
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "客户",
|
||||
key: "customer",
|
||||
key: "userName",
|
||||
type: "select",
|
||||
childKey: 'user',
|
||||
required: true,
|
||||
unit: "",
|
||||
fn: () => {
|
||||
contrlModalParams.select.isShow = true;
|
||||
contrlModalParams.select.title = "供应商";
|
||||
contrlModalParams.user.isShow = true;
|
||||
contrlModalParams.user.title = "供应商";
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "出货产品",
|
||||
key: "shipmentProduct",
|
||||
key: "productName",
|
||||
type: "select",
|
||||
childKey: 'product',
|
||||
required: true,
|
||||
unit: "",
|
||||
fn: () => {
|
||||
contrlModalParams.select.isShow = true;
|
||||
contrlModalParams.select.title = "收货产品";
|
||||
contrlModalParams.product.isShow = true;
|
||||
contrlModalParams.product.title = "收货产品";
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "数量",
|
||||
key: "grossWeight",
|
||||
key: "number",
|
||||
type: "input",
|
||||
required: true,
|
||||
unit: "件",
|
||||
|
@ -191,13 +210,25 @@ const formAttrList = reactive([
|
|||
name: "净重",
|
||||
key: "netWeight",
|
||||
type: "input",
|
||||
required: true,
|
||||
unit: "KG",
|
||||
},
|
||||
{
|
||||
name: "提货方式",
|
||||
key: "takeType",
|
||||
required: true,
|
||||
key: "deliveryMethod",
|
||||
type: "radio",
|
||||
required: true,
|
||||
unit: "",
|
||||
child: [
|
||||
{
|
||||
id: 0,
|
||||
name: "送货",
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
name: "自提",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "车辆信息",
|
||||
|
@ -205,7 +236,7 @@ const formAttrList = reactive([
|
|||
},
|
||||
{
|
||||
name: "车牌号",
|
||||
key: "carNo",
|
||||
key: "carNumber",
|
||||
type: "input",
|
||||
unit: "",
|
||||
},
|
||||
|
@ -221,27 +252,124 @@ const formAttrList = reactive([
|
|||
},
|
||||
{
|
||||
name: "箱号",
|
||||
key: "boxNo",
|
||||
key: "box",
|
||||
type: "input",
|
||||
unit: "",
|
||||
},
|
||||
{
|
||||
name: "封号",
|
||||
key: "no",
|
||||
key: "title",
|
||||
type: "input",
|
||||
unit: "",
|
||||
},
|
||||
{
|
||||
name: "备注",
|
||||
key: "remark",
|
||||
key: "notes",
|
||||
type: "textarea",
|
||||
},
|
||||
{
|
||||
name: "上传照片",
|
||||
name: "货品照片",
|
||||
key: "photo",
|
||||
type: "upload",
|
||||
},
|
||||
]);
|
||||
const filesRef = ref();
|
||||
const handleUpload = () => {
|
||||
// console.log(event.tempFilePaths)
|
||||
const list = filesRef.value[0].filesList;
|
||||
return list.map((item: any) => {
|
||||
return new Promise((resolve) => {
|
||||
PictureApi.upload({
|
||||
files: item,
|
||||
path: item.path,
|
||||
}).then((res) => {
|
||||
if (res.code === 200) {
|
||||
resolve({
|
||||
...(res.data as any),
|
||||
businessId: (model1.order as any).id,
|
||||
imagesType: ImagesType.NORMARL, // 普通资源
|
||||
orderType: OrderType.Receive, // 入库单
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
const handleSelect = (key: string, v: any) => {
|
||||
contrlModalParams[key].isShow = false;
|
||||
if (key === "user") {
|
||||
debugger
|
||||
model1.order.userName = v.name;
|
||||
model1.order.userId = v.id;
|
||||
} else if (key === "product") {
|
||||
model1.order.productName = v.name;
|
||||
model1.order.productId = v.id;
|
||||
} else if (key === "device") {
|
||||
model1.order.deviceName = v.name;
|
||||
model1.order.deviceId = v.id;
|
||||
}
|
||||
};
|
||||
// 供应商信息
|
||||
ProfileApi.getUserList({ userType: 3 }).then((res) => {
|
||||
if (res.code === 200) {
|
||||
contrlModalParams.user.list = res.data;
|
||||
console.log(contrlModalParams.user.list)
|
||||
}
|
||||
});
|
||||
// 产品信息
|
||||
GoodsApi.getShipmentProductList().then((res) => {
|
||||
if (res.code === 200) {
|
||||
contrlModalParams.product.list = _.map(
|
||||
res.data as any,
|
||||
function (item: any) {
|
||||
return { name: item.shmProductsName, ...item };
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
// 设备信息
|
||||
DeviceApi.getDeviceList({deviceType: DeviceType.Weighbridge}).then(res => {
|
||||
if (res.code === 200) {
|
||||
contrlModalParams.device.list = _.map(
|
||||
res.data as any,
|
||||
function (item: any) {
|
||||
return { name: item.deviceName, ...item };
|
||||
}
|
||||
);
|
||||
}
|
||||
})
|
||||
|
||||
const save = () => {
|
||||
// Promise.all(handleUpload()).then((res) => {
|
||||
// // 上传多个资源
|
||||
// if (res.length > 0) {
|
||||
// PictureApi.addListAnnex({ annexPos: res }).then((res1) => {
|
||||
// if (res1.code === 200) {
|
||||
// uni.showToast({
|
||||
// title: "图片资源上传成功",
|
||||
// icon: "success",
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
if (model1.order.buttonType === 0) {
|
||||
model1.order.buckleMiscellaneous = model1.order.subtractNum;
|
||||
} else if (model1.order.buttonType === 1) {
|
||||
model1.order.points = model1.order.subtractNum;
|
||||
}
|
||||
ShipmentApi.addOrderOut(model1.order).then((res) => {
|
||||
if (res.code === 200) {
|
||||
model1.order.id = (res.data as any).id
|
||||
uni.navigateTo({
|
||||
url: "/pages/index/index", // 要跳转到的页面路径
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
const handleTime = (v: any) => {
|
||||
model1.order.repairTime = formatDate(v.value, "{y}-{m}-{d} {h}:{i}:{s}");
|
||||
contrlModalParams.isShowSplTime = false;
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.c-card {
|
||||
|
|
|
@ -172,10 +172,9 @@ export const getShipmentProductByPage = (data: any) => {
|
|||
}
|
||||
|
||||
// 出货产品查询所有
|
||||
export const getShipmentProductList = (data: any) => {
|
||||
export const getShipmentProductList = () => {
|
||||
return http({
|
||||
method: 'GET',
|
||||
url: '/api/shmproducts/allShmProducts',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
|
|
@ -115,6 +115,7 @@ interface Shipment {
|
|||
settlementNet?: number, // 结算净重
|
||||
signTime?: string, // 签收时间
|
||||
paymentMethod?: string; //支付方式:0:未支付,1:现金支付,2:银行卡支付,3:线上支付(微信)4:支付宝
|
||||
userType?: number;//用户类型0:刷脸1:刷卡
|
||||
[attrName: string]: any;
|
||||
}
|
||||
|
||||
|
|
|
@ -65,4 +65,9 @@ export enum UserType {
|
|||
export enum DeliveryMethod {
|
||||
Deliver = 0,
|
||||
SelfPickup = 1
|
||||
}
|
||||
}
|
||||
|
||||
export enum DeviceType {
|
||||
Printer = 0,
|
||||
Weighbridge = 1
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue