diff --git a/.deployrc.js b/.deployrc.js
index 43da59e..f9b99dd 100644
--- a/.deployrc.js
+++ b/.deployrc.js
@@ -4,20 +4,13 @@ import { resolve } from 'node:path';
export default {
host: '112.74.106.216',
- port: 22, // 默认 SSH 端口
+ port: 22,
username: 'root',
- // 密码和私钥二选一
password: 'Smt1618?',
- privateKey: null, // 示例: readFileSync(resolve(process.env.HOME, '.ssh/id_rsa')),
+ privateKey: null,
- // 部署路径
remotePath: '/opt/1panel/apps/openresty/openresty/www/sites/www.amzups.com/index',
- // 是否清空目标目录
cleanRemote: true
-
- // 高级选项 (可选)
- // uploadIgnore: ['*.map', 'tmp/*'],
- // execAfterDeploy: 'sudo systemctl restart nginx'
};
diff --git a/.env.development b/.env.development
index 35cdc83..e137571 100644
--- a/.env.development
+++ b/.env.development
@@ -1,39 +1,28 @@
# 页面标题
-VITE_APP_TITLE = 瑷胜科技管理系统
+VITE_APP_TITLE = 香港SMT订单物流管理系统
-# 开发环境配置
VITE_APP_ENV = 'development'
-# 开发环境
VITE_APP_BASE_API = '/dev-api'
VITE_BACKEND_URL = 'http://localhost:8080'
#VITE_BACKEND_URL = 'http://112.74.106.216:8080'
-# 应用访问路径 例如使用前缀 /admin/
VITE_APP_CONTEXT_PATH = '/'
-# 监控地址
VITE_APP_MONITOR_ADMIN = 'http://localhost:9090/admin/applications'
-# SnailJob 控制台地址
VITE_APP_SNAILJOB_ADMIN = 'http://localhost:8800/snail-job'
VITE_APP_PORT = 80
-# 接口加密功能开关(如需关闭 后端也必须对应关闭)
VITE_APP_ENCRYPT = true
-# 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换
VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
-# 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换
VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE='
-# 客户端id
VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e'
-# websocket 开关 默认使用sse推送
VITE_APP_WEBSOCKET = false
-# sse 开关
VITE_APP_SSE = true
diff --git a/.env.production b/.env.production
index 6f68aab..9500f5d 100644
--- a/.env.production
+++ b/.env.production
@@ -1,40 +1,28 @@
-# 页面标题
-VITE_APP_TITLE = 瑷胜科技管理系统
+VITE_APP_TITLE = 香港SMT订单物流管理系统
-# 生产环境配置
VITE_APP_ENV = 'production'
-# 应用访问路径 例如使用前缀 /admin/
VITE_APP_CONTEXT_PATH = '/'
-# 监控地址
VITE_APP_MONITOR_ADMIN = '/admin/applications'
-# SnailJob 控制台地址
VITE_APP_SNAILJOB_ADMIN = '/snail-job'
-# 生产环境
VITE_APP_BASE_API = '/prod-api'
VITE_BACKEND_URL = 'http://112.74.106.216:8080'
-# 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS = gzip
VITE_APP_PORT = 80
-# 接口加密功能开关(如需关闭 后端也必须对应关闭)
+
VITE_APP_ENCRYPT = true
-# 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换
VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
-# 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换
VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE='
-# 客户端id
VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e'
-# websocket 开关 默认使用sse推送
VITE_APP_WEBSOCKET = false
-# sse 开关
VITE_APP_SSE = true
diff --git a/deploy.js b/deploy.js
index 5bb98cd..54509fc 100644
--- a/deploy.js
+++ b/deploy.js
@@ -3,7 +3,6 @@ import path from 'node:path';
import fs from 'node:fs';
import process from 'node:process';
-// 动态导入配置文件(支持文件不存在的情况)
const loadConfig = async () => {
try {
const { default: config } = await import('./.deployrc.js');
@@ -27,11 +26,9 @@ const ssh = new NodeSSH();
async function deploy() {
try {
- // 加载配置
const config = await loadConfig();
validateConfig(config);
- // 连接服务器
console.log('🔄 Connecting to server...');
await ssh.connect({
host: config.host,
@@ -41,17 +38,14 @@ async function deploy() {
privateKey: config.privateKey
});
- // 确保目录存在
console.log('📂 Ensuring remote directory exists...');
await ssh.execCommand(`mkdir -p ${config.remotePath}`);
- // 清理目录
if (config.cleanRemote) {
console.log('🧹 Cleaning remote directory...');
await ssh.execCommand(`rm -rf ${config.remotePath}/*`);
}
- // 上传文件
console.log('🚀 Uploading files...');
const uploadResult = await ssh.putDirectory('./dist', config.remotePath, {
recursive: true,
diff --git a/index.html b/index.html
index ec54548..9e75bc3 100644
--- a/index.html
+++ b/index.html
@@ -6,7 +6,7 @@
-
瑷胜科技管理系统
+ 香港SMT订单物流管理系统
+
+
+
+
+
+
+
+
+
+
+
@@ -29,24 +29,14 @@ const tagsViewStore = useTagsViewStore();
const userStore = useUserStore();
const font = reactive({
+ fontSize: 22,
color: 'rgba(0, 0, 0, .06)'
});
const currentUser = userStore.currentUser;
const userNick = computed(() => {
- // if (roles.includes('superadmin')) {
- // return '超级管理员';
- // } else if (roles.includes('wuliu')) {
- // return '物流商';
- // } else if (roles.includes('yunying')) {
- // return '运营';
- // } else if (roles.includes('manager')) {
- // return '管理员';
- // } else {
- // return '普通用户';
- // }
- return currentUser.userName;
+ return currentUser.nickName;
});
// 随机动画集合
const animante = ref('');
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 8586328..16db894 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -77,9 +77,9 @@
{{ proxy.$t('navbar.personalCenter') }}
-
- {{ proxy.$t('navbar.layoutSetting') }}
-
+
+
+
{{ proxy.$t('navbar.logout') }}
diff --git a/src/layout/components/Sidebar/Logo.vue b/src/layout/components/Sidebar/Logo.vue
index 31dfb6d..9ef113f 100644
--- a/src/layout/components/Sidebar/Logo.vue
+++ b/src/layout/components/Sidebar/Logo.vue
@@ -7,15 +7,15 @@
@@ -34,7 +34,7 @@ defineProps({
}
});
-const title = ref('瑷胜科技管理系统');
+const title = ref('SMT订单物流管理系统');
const settingsStore = useSettingsStore();
const sideTheme = computed(() => settingsStore.sideTheme);
diff --git a/src/layout/index.vue b/src/layout/index.vue
index 207a470..5223784 100644
--- a/src/layout/index.vue
+++ b/src/layout/index.vue
@@ -1,24 +1,26 @@
-
+
diff --git a/src/views/amz/purchaseOrderQuery/index.vue b/src/views/amz/purchaseOrderQuery/index.vue
new file mode 100644
index 0000000..949a6b6
--- /dev/null
+++ b/src/views/amz/purchaseOrderQuery/index.vue
@@ -0,0 +1,941 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查看详情
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.orderTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+ 采购单未延期
+ 已延期至:{{ parseTime(scope.row.divTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.deliveryTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 天
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 个
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+ {{ item.rawData.userName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.shipmentStart, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.shipmentEnd, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.sendTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/amz/sendOrder/index.vue b/src/views/amz/sendOrder/index.vue
index 8385a26..dc22bf2 100644
--- a/src/views/amz/sendOrder/index.vue
+++ b/src/views/amz/sendOrder/index.vue
@@ -16,21 +16,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -54,40 +39,68 @@
新增
-
- 修改
-
-
-
- 删除
-
-
-
- 导出
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+ {{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}
+
+
{{ parseTime(scope.row.sendDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+ {{ row.logisticsProviderName }}
+
+
+ {{ row.address || '暂无地址' }}
+
+
+
-
-
+
+
+
+
+
+ {{ row.boxCount }}箱
+
+
+ 暂无数据
+
+
+
-
-
+
+
@@ -95,7 +108,7 @@
-
+
@@ -108,7 +121,7 @@
-
+
@@ -116,43 +129,82 @@
-
-
-
-
+
+
+
+
-
+
-
-
+
+
+
-
-
+
+
+
+
+
+
+ 当前总量:{{ totalNum }}/{{ form.quantitySend }}
+
+ 添加一组
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kg
+
+
@@ -165,7 +217,7 @@
@@ -177,6 +229,7 @@
import { listSendOrder, getSendOrder, delSendOrder, addSendOrder, updateSendOrder } from '@/api/amz/sendOrder';
import { SendOrderVO, SendOrderQuery, SendOrderForm } from '@/api/amz/sendOrder/types';
import { getPurchaseOrder } from '@/api/amz/purchaseOrder';
+import { Close, Plus } from '@element-plus/icons-vue';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { send_status } = toRefs(proxy?.useDict('send_status'));
@@ -207,13 +260,14 @@ const initFormData: SendOrderForm = {
sendDate: undefined,
storeName: undefined,
productName: undefined,
- quantitySend: undefined,
+ quantitySend: 0,
quantityPerBox: undefined,
boxCount: undefined,
boxDimensions: undefined,
weightPerBox: undefined,
realStoreName: undefined,
- sendStatus: undefined
+ sendStatus: undefined,
+ sendDetail: undefined
};
const data = reactive>({
form: { ...initFormData },
@@ -235,19 +289,22 @@ const data = reactive>({
},
rules: {
orderSn: [{ required: true, message: '采购单号不能为空', trigger: 'blur' }],
- sendDate: [{ required: true, message: '发货日期不能为空', trigger: 'blur' }],
+ // sendDate: [{ required: true, message: '发货日期不能为空', trigger: 'blur' }],
storeName: [{ required: true, message: '采购店铺不能为空', trigger: 'blur' }],
productName: [{ required: true, message: '产品名称不能为空', trigger: 'blur' }],
quantitySend: [{ required: true, message: '发货数量不能为空', trigger: 'blur' }],
- quantityPerBox: [{ required: true, message: '单箱产品数量不能为空', trigger: 'blur' }],
- boxCount: [{ required: true, message: '箱数不能为空', trigger: 'blur' }],
- boxDimensions: [
+ quantityPerBox: [
{
- required: true,
- message: '长宽高都不能为空',
validator: (rule, value, callback) => {
- if (!plength.value || !pwidth.value || !pheight.value) {
- callback(new Error('长宽高都不能为空'));
+ if (totalBoxCount.value != form.value.boxCount) {
+ console.log('totalBoxCount.value', totalBoxCount.value);
+ console.log('form.value.boxCount', form.value.boxCount);
+ callback(new Error('明细箱数和总箱数不匹配,请调整'));
+ }
+ // 总量提示
+ if (totalNum.value > form.value.quantitySend) {
+ const exceed = totalNum.value - form.value.quantitySend;
+ callback(new Error('总量超出 ' + exceed + ',请调整'));
} else {
callback();
}
@@ -255,6 +312,21 @@ const data = reactive>({
trigger: 'blur'
}
],
+ boxCount: [{ required: true, message: '箱数不能为空', trigger: 'blur' }],
+ // boxDimensions: [
+ // {
+ // required: true,
+ // message: '长宽高都不能为空',
+ // validator: (rule, value, callback) => {
+ // if (!plength.value || !pwidth.value || !pheight.value) {
+ // callback(new Error('长宽高都不能为空'));
+ // } else {
+ // callback();
+ // }
+ // },
+ // trigger: 'blur'
+ // }
+ // ],
weightPerBox: [{ required: true, message: '单箱重量不能为空', trigger: 'blur' }],
realStoreName: [{ required: true, message: '实际采购店铺不能为空', trigger: 'blur' }],
sendStatus: [{ required: true, message: '发货状态不能为空', trigger: 'change' }]
@@ -263,6 +335,92 @@ const data = reactive>({
const { queryParams, form, rules } = toRefs(data);
+const groups = ref([
+ {
+ boxCount: null,
+ itemCount: null,
+ lengthPerBox: null,
+ widthPerBox: null,
+ heightPerBox: null,
+ weightPerBox: null
+ }
+]);
+
+// 计算所有输入值的总和
+const totalNum = computed(() => {
+ return groups.value.reduce((sum, group) => {
+ const box = Number(group.boxCount) || 0;
+ const item = Number(group.itemCount) || 0;
+ return sum + box * item;
+ }, 0);
+});
+
+// 计算所有输入值的总和
+const totalBoxCount = computed(() => {
+ return groups.value.reduce((sum, group) => {
+ const box = Number(group.boxCount) || 0;
+ return sum + box;
+ }, 0);
+});
+
+const totalWeight = computed(() => {
+ return groups.value.reduce((sum, group) => {
+ const box = Number(group.boxCount) || 0;
+ return sum + box * group.weightPerBox;
+ }, 0);
+});
+
+// 输入验证
+const validateInput = (index, field) => {
+ const value = groups.value[index][field];
+
+ // 非数字或负数处理
+ if (isNaN(value) || value < 0) {
+ ElMessage.warning('请输入有效的非负数');
+ groups.value[index][field] = null;
+ return false;
+ }
+
+ // // 总量提示
+ // if (totalNum.value > form.value.quantitySend) {
+ // const exceed = totalNum.value - form.value.quantitySend;
+ // ElMessage.warning(`总量超出 ${exceed},请调整`);
+ // }
+
+ return true;
+};
+
+// 添加新组
+const addGroup = () => {
+ if (totalNum.value >= form.value.quantitySend) {
+ ElMessage.error(`当前总量已达${form.value.quantitySend},无法继续添加`);
+ return;
+ }
+
+ groups.value.push({
+ boxCount: null,
+ itemCount: null,
+ lengthPerBox: null,
+ widthPerBox: null,
+ heightPerBox: null,
+ weightPerBox: null
+ });
+};
+
+const formatText = (text) => {
+ if (text === null) {
+ return '';
+ }
+ return text.replace(/\n/g, '
');
+};
+
+// 删除组
+const removeGroup = (index) => {
+ groups.value.splice(index, 1);
+ if (totalNum.value > form.value.quantitySend) {
+ ElMessage.warning('请调整剩余数值使总量不超过100');
+ }
+};
/** 查询供应商创建的发货单列表 */
const getList = async () => {
loading.value = true;
@@ -301,10 +459,10 @@ const blurAction = async () => {
return;
}
- // const res = await getPurchaseOrder(form.value.orderSn);
- // Object.assign(form.value, res.data);
- // form.value.quantitySend = res.data.quantityReal;
- // console.log('res', res);
+ const res = await getPurchaseOrder(form.value.orderSn);
+ Object.assign(form.value, res.data);
+ form.value.quantitySend = res.data.quantityReal;
+ console.log('res', res);
};
const isPOFormat = (input: string): boolean => {
@@ -338,7 +496,32 @@ const handleUpdate = async (row?: SendOrderVO) => {
/** 提交按钮 */
const submitForm = () => {
+ form.value.weightPerBox = totalWeight.value;
form.value.boxDimensions = `${pwidth.value} x ${pheight.value} x ${plength.value}`;
+ const sendText = groups.value.reduce((sum, group, index) => {
+ return (
+ sum +
+ '规格' +
+ numberToLetter(index) +
+ ': ' +
+ group.boxCount +
+ '箱' +
+ group.itemCount +
+ '件,长' +
+ group.lengthPerBox +
+ 'cm宽' +
+ group.widthPerBox +
+ 'cm高' +
+ group.heightPerBox +
+ 'cm,' +
+ '单箱重量' +
+ group.weightPerBox +
+ 'kg' +
+ '\n'
+ );
+ }, '');
+ console.log('sendText: ', sendText);
+ form.value.sendDetail = sendText;
sendOrderFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
@@ -354,6 +537,11 @@ const submitForm = () => {
});
};
+function numberToLetter(num: number): string {
+ if (num < 0 || num > 25) throw new Error('数字需在 0-25 范围内');
+ return String.fromCharCode(num + 65);
+}
+
/** 删除按钮操作 */
const handleDelete = async (row?: SendOrderVO) => {
const _ids = row?.id || ids.value;
diff --git a/src/views/amz/sendOrderConfirm/index.vue b/src/views/amz/sendOrderConfirm/index.vue
index 38e36d6..ceef9f3 100644
--- a/src/views/amz/sendOrderConfirm/index.vue
+++ b/src/views/amz/sendOrderConfirm/index.vue
@@ -16,21 +16,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -51,43 +36,70 @@
-
- 新增
-
-
- 修改
-
-
-
- 删除
-
-
-
- 导出
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+ {{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}
+
+
{{ parseTime(scope.row.sendDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+ {{ row.logisticsProviderName }}
+
+
+ {{ row.address || '暂无地址' }}
+
+
+
-
-
-
-
-
+
+
+
+
+ {{ row.boxCount }}箱
+
+
+ 暂无数据
+
+
+
+
+
+
@@ -95,10 +107,10 @@
-
-
+
+
-
+
@@ -110,43 +122,46 @@
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
+
+
+
+
@@ -163,10 +178,10 @@
diff --git a/src/views/amz/sendOrderReport/index.vue b/src/views/amz/sendOrderReport/index.vue
new file mode 100644
index 0000000..2a20165
--- /dev/null
+++ b/src/views/amz/sendOrderReport/index.vue
@@ -0,0 +1,644 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ props.row.bizLogisticsOrder.orderId }}
+
+ {{ props.row.bizLogisticsOrder.channelName }}
+ {{ props.row.bizLogisticsOrder.destination }}
+
+
+
+ {{ props.row.logisticsProviderName }}
+ {{ props.row.address || '暂无地址' }}
+
+ 查看详情
+
+
+
+
+
+
+
+
+
+
+
+ 暂无物流信息
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}
+
+
+
+
+ {{ parseTime(scope.row.sendDate, '{y}-{m}-{d}') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.boxCount }}箱
+
+
+ 暂无数据
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 当前总量:{{ totalNum }}/{{ form.quantitySend }}
+
+ 添加一组
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.trackingNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/amz/shipForward/index.vue b/src/views/amz/shipForward/index.vue
index 2ffc36b..498934f 100644
--- a/src/views/amz/shipForward/index.vue
+++ b/src/views/amz/shipForward/index.vue
@@ -10,33 +10,33 @@
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -52,48 +52,49 @@
-
- 新增
-
-
- 修改
-
-
-
- 删除
-
-
-
- 导出
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
-
-
- {{ parseTime(scope.row.shipmentStart, '{y}-{m}-{d}') }}
-
-
-
-
- {{ parseTime(scope.row.shipmentEnd, '{y}-{m}-{d}') }}
-
-
+
+
+
+
+
+
+
+
+
+
@@ -106,16 +107,19 @@
{{ parseTime(scope.row.sendTime, '{y}-{m}-{d}') }}
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -136,20 +140,23 @@
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -389,7 +396,7 @@ const data = reactive>({
storeName: [{ required: true, message: '采购店铺名称不能为空', trigger: 'blur' }],
sku: [{ required: true, message: '产品唯一标识码不能为空', trigger: 'blur' }],
productName: [{ required: true, message: '产品全称不能为空', trigger: 'blur' }],
- quantitySend: [{ required: true, message: '实际发货数量不能为空', trigger: 'blur' }],
+ quantitySend: [{ required: true, message: '发货数量不能为空', trigger: 'blur' }],
outSupplierName: [{ required: true, message: '发货供应商名称不能为空', trigger: 'blur' }],
outSupplierId: [{ required: true, message: '发货供应商系统ID不能为空', trigger: 'blur' }],
inSupplierName: [{ required: true, message: '收货供应商名称不能为空', trigger: 'blur' }],
diff --git a/src/views/amz/shipForwardIn/index.vue b/src/views/amz/shipForwardIn/index.vue
index 01e1a9b..84dac4e 100644
--- a/src/views/amz/shipForwardIn/index.vue
+++ b/src/views/amz/shipForwardIn/index.vue
@@ -10,33 +10,33 @@
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -52,48 +52,50 @@
-
- 新增
-
-
- 修改
-
-
-
- 删除
-
-
-
- 导出
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
-
-
- {{ parseTime(scope.row.shipmentStart, '{y}-{m}-{d}') }}
-
-
-
-
- {{ parseTime(scope.row.shipmentEnd, '{y}-{m}-{d}') }}
-
-
+
+
+
+
+
+
+
+
+
+
@@ -106,18 +108,11 @@
{{ parseTime(scope.row.sendTime, '{y}-{m}-{d}') }}
+
+
-
-
-
+ 修改
- 确认收货
-
+ 收 货
@@ -154,7 +147,10 @@
-
+
+
+
+
@@ -191,10 +187,10 @@
-
-
-
-
+
+
+
+