Merge remote-tracking branch 'origin/0.8.X' into 0.8.X
This commit is contained in:
@@ -1,5 +1,23 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
function parseDate(date) {
|
||||
// 修复1:参数名和内部变量名冲突,改用tempDate
|
||||
// 修复2:如果传入的date为空/无效,默认使用当前时间
|
||||
const tempDate = date ? new Date(date) : new Date();
|
||||
|
||||
// 获取年、月、日、时、分、秒(补零处理,确保是两位数)
|
||||
const year = tempDate.getFullYear();
|
||||
// 月份从0开始,所以要+1,不足两位补0
|
||||
const month = String(tempDate.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(tempDate.getDate()).padStart(2, '0');
|
||||
const hours = String(tempDate.getHours()).padStart(2, '0');
|
||||
const minutes = String(tempDate.getMinutes()).padStart(2, '0');
|
||||
const seconds = String(tempDate.getSeconds()).padStart(2, '0');
|
||||
|
||||
// 格式化为YYYY-mm-dd HH:mm:ss并返回
|
||||
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||||
}
|
||||
|
||||
// 查询钢卷待操作列表
|
||||
export function listPendingAction(query) {
|
||||
return request({
|
||||
@@ -44,19 +62,33 @@ export function getPendingAction(actionId) {
|
||||
|
||||
// 新增钢卷待操作
|
||||
export function addPendingAction(data) {
|
||||
const payload = { ...data }
|
||||
if (payload.processTime) {
|
||||
payload.processTime = parseDate(payload.processTime)
|
||||
}
|
||||
if (payload.completeTime) {
|
||||
payload.completeTime = parseDate(payload.completeTime)
|
||||
}
|
||||
return request({
|
||||
url: '/wms/coilPendingAction',
|
||||
method: 'post',
|
||||
data: data
|
||||
data: payload
|
||||
})
|
||||
}
|
||||
|
||||
// 修改钢卷待操作
|
||||
export function updatePendingAction(data) {
|
||||
const payload = { ...data }
|
||||
if (payload.processTime) {
|
||||
payload.processTime = parseDate(payload.processTime)
|
||||
}
|
||||
if (payload.completeTime) {
|
||||
payload.completeTime = parseDate(payload.completeTime)
|
||||
}
|
||||
return request({
|
||||
url: '/wms/coilPendingAction',
|
||||
method: 'put',
|
||||
data: data
|
||||
data: payload
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<el-dialog title="选择钢卷" :visible.sync="dialogVisible" :width="dialogWidth" :close-on-click-modal="false"
|
||||
@close="handleClose" append-to-body :fullscreen="orderBy">
|
||||
<!-- 搜索区域 -->
|
||||
<el-form v-if="!rangeMode" :model="queryParams" class="search-form">
|
||||
<el-form v-if="!rangeMode" inline :model="queryParams" class="search-form">
|
||||
<!-- <el-form-item label="类型">
|
||||
<el-select v-model="queryParams.selectType" placeholder="请选择类型" size="small">
|
||||
<el-option label="成品" value="product" />
|
||||
@@ -62,12 +62,13 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="实际库区" v-if="orderBy">
|
||||
<actual-warehouse-select v-model="queryParams.actualWarehouseId" placeholder="请选择实际库区" canSelectLevel2
|
||||
canSelectDisabled @select="handleWarehouseChange" />
|
||||
canSelectDisabled :clearInput="false" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button>
|
||||
<el-checkbox style="margin-left: 10px;" v-model="showCoilMap" size="small">显示钢卷地图</el-checkbox>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
@@ -122,8 +123,13 @@
|
||||
</div>
|
||||
|
||||
<!-- 一个可以拖拽和调节大小的浮层 -->
|
||||
<DragResizeBox v-if="selectedNodeId" @size-change="handleSizeChange">
|
||||
<div style="height: 100%; width: 100%; overflow-y: scroll;">
|
||||
<DragResizeBox v-if="showCoilMap" @size-change="handleSizeChange" storageKey="coil-map">
|
||||
<div style="height: 100%; width: 100%; overflow-y: scroll; display: flex; background-color: #fff;">
|
||||
<div style="min-width: 150px; position: sticky; top: 0;" v-loading="treeLoading">
|
||||
<el-tree ref="warehouseTreeRef" :data="warehouseTree" :props="treeProps" node-key="actualWarehouseId"
|
||||
@node-click="handleNodeClick" :expand-on-click-node="false" highlight-current class="warehouse-tree">
|
||||
</el-tree>
|
||||
</div>
|
||||
<warehouse-bird-mini ref="warehouseBirdMini" v-loading="warehouseLoading" :warehouseList="warehouseList" :id="selectedNodeId"
|
||||
:canToggle="false" :canRelease="false" />
|
||||
</div>
|
||||
@@ -135,6 +141,7 @@
|
||||
<script>
|
||||
import { listMaterialCoil } from '@/api/wms/coil';
|
||||
import { listActualWarehouse } from "@/api/wms/actualWarehouse";
|
||||
import { treeActualWarehouseTwoLevel } from "@/api/wms/actualWarehouse";
|
||||
import MemoInput from '@/components/MemoInput/index.vue';
|
||||
import MutiSelect from '@/components/MutiSelect/index.vue';
|
||||
import { defaultColumns } from './data';
|
||||
@@ -216,6 +223,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
showCoilMap: false,
|
||||
loading: false,
|
||||
coilList: [],
|
||||
total: 0,
|
||||
@@ -242,6 +250,9 @@ export default {
|
||||
warehouseList: [],
|
||||
selectedNodeId: null,
|
||||
warehouseLoading: false,
|
||||
warehouseTree: [],
|
||||
treeProps: { label: "actualWarehouseName", children: "children" },
|
||||
treeLoading: false,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -323,6 +334,9 @@ export default {
|
||||
if (this.initialCoil) {
|
||||
this.selectedCoil = this.initialCoil;
|
||||
}
|
||||
if (this.orderBy) {
|
||||
this.getWarehouseTree();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 获取库位列表
|
||||
@@ -336,6 +350,22 @@ export default {
|
||||
this.warehouseLoading = false;
|
||||
});
|
||||
},
|
||||
handleNodeClick(data) {
|
||||
console.log('data', data);
|
||||
if (data.actualWarehouseType != 2) {
|
||||
return;
|
||||
}
|
||||
this.selectedNodeId = data.actualWarehouseId;
|
||||
this.getWarehouseList(data.actualWarehouseId);
|
||||
},
|
||||
// 获取树形数据
|
||||
getWarehouseTree() {
|
||||
this.treeLoading = true;
|
||||
treeActualWarehouseTwoLevel()
|
||||
.then((res) => { this.warehouseTree = res.data || []; })
|
||||
.catch((err) => { this.$message.error("获取仓库树形数据失败:" + err.message); })
|
||||
.finally(() => { this.treeLoading = false; });
|
||||
},
|
||||
// 处理大小变化
|
||||
handleSizeChange(size) {
|
||||
console.log('size', size);
|
||||
@@ -587,13 +617,6 @@ export default {
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.search-form {
|
||||
margin-bottom: 20px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
::v-deep .el-dialog__body {
|
||||
padding: 20px;
|
||||
max-height: calc(100vh - 200px);
|
||||
|
||||
@@ -48,6 +48,11 @@ export default {
|
||||
minSize: {
|
||||
type: Object,
|
||||
default: () => ({ width: 100, height: 80 })
|
||||
},
|
||||
// 用于localStorage存储的唯一标识
|
||||
storageKey: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -67,9 +72,8 @@ export default {
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
// 初始化位置和尺寸
|
||||
this.position = { ...this.initPosition };
|
||||
this.size = { ...this.initSize };
|
||||
// 初始化位置和尺寸(优先从localStorage读取)
|
||||
this.initFromStorage();
|
||||
// 监听全局鼠标移动和松开事件
|
||||
document.addEventListener('mousemove', this.handleMouseMove);
|
||||
document.addEventListener('mouseup', this.handleMouseUp);
|
||||
@@ -83,6 +87,68 @@ export default {
|
||||
window.removeEventListener('resize', this.updateScreenSize);
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 从localStorage初始化位置和尺寸
|
||||
* 有key时优先读取存储值,无则使用props传入的初始值
|
||||
*/
|
||||
initFromStorage() {
|
||||
if (this.storageKey) {
|
||||
try {
|
||||
const storageKey = `dnd-ps-${this.storageKey}`;
|
||||
const storedData = localStorage.getItem(storageKey);
|
||||
|
||||
if (storedData) {
|
||||
const { position, size } = JSON.parse(storedData);
|
||||
// 验证存储的数据是否合法,防止异常值
|
||||
const isValidPosition = position && typeof position.x === 'number' && typeof position.y === 'number';
|
||||
const isValidSize = size && typeof size.width === 'number' && typeof size.height === 'number';
|
||||
|
||||
if (isValidPosition && isValidSize) {
|
||||
// 使用存储的位置和尺寸(确保不小于最小尺寸)
|
||||
this.position = {
|
||||
x: Math.max(0, position.x),
|
||||
y: Math.max(0, position.y)
|
||||
};
|
||||
this.size = {
|
||||
width: Math.max(this.minSize.width, size.width),
|
||||
height: Math.max(this.minSize.height, size.height)
|
||||
};
|
||||
return;
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.warn('读取拖拽元素存储数据失败,使用默认值:', error);
|
||||
}
|
||||
}
|
||||
|
||||
// 无存储数据或存储异常时,使用props初始值
|
||||
this.position = { ...this.initPosition };
|
||||
this.size = { ...this.initSize };
|
||||
},
|
||||
|
||||
/**
|
||||
* 将当前位置和尺寸保存到localStorage
|
||||
*/
|
||||
saveToStorage() {
|
||||
if (this.storageKey) {
|
||||
try {
|
||||
const storageKey = `dnd-ps-${this.storageKey}`;
|
||||
const saveData = {
|
||||
position: { ...this.position },
|
||||
size: { ...this.size },
|
||||
updateTime: new Date().getTime()
|
||||
};
|
||||
console.log('saveData', saveData);
|
||||
localStorage.setItem(storageKey, JSON.stringify(saveData));
|
||||
// 触发存储成功事件
|
||||
this.$emit('save-success', saveData);
|
||||
} catch (error) {
|
||||
console.error('保存拖拽元素数据失败:', error);
|
||||
this.$emit('save-fail', error);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 更新屏幕尺寸(窗口大小变化时)
|
||||
*/
|
||||
@@ -174,6 +240,9 @@ export default {
|
||||
// 恢复鼠标样式
|
||||
document.body.style.cursor = 'default';
|
||||
|
||||
// 保存当前状态到localStorage(有key时)
|
||||
this.saveToStorage();
|
||||
|
||||
// 触发结束事件
|
||||
this.$emit('drag-end', { position: { ...this.position }, size: { ...this.size } });
|
||||
}
|
||||
@@ -203,6 +272,7 @@ export default {
|
||||
overflow: hidden;
|
||||
pointer-events: auto; /* 元素本身响应鼠标事件 */
|
||||
z-index: 9999; /* 确保元素在最上层 */
|
||||
background-color: #ffffff; /* 添加背景色,提升可视性 */
|
||||
}
|
||||
|
||||
/* 元素内容区 */
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleMaterialQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetMaterialQuery">重置</el-button>
|
||||
<el-button type="success" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
@@ -259,7 +260,7 @@
|
||||
<label-render :content="labelRender.data" :labelType="labelRender.type" />
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="钢卷信息修正" :visible.sync="correctVisible" width="600px">
|
||||
<el-dialog :title="title" :visible.sync="correctVisible" width="600px">
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="入场钢卷号" prop="enterCoilNo">
|
||||
<el-input v-model="form.enterCoilNo" placeholder="请输入入场钢卷号" :disabled="form.coilId" />
|
||||
@@ -340,11 +341,11 @@
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="createTime">
|
||||
<el-form-item label="创建时间" prop="createTime" v-if="form.coilId">
|
||||
<el-date-picker v-model="form.createTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="请选择创建时间" style="width: 100%;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="createBy">
|
||||
<el-form-item label="创建人" prop="createBy" v-if="form.coilId">
|
||||
<el-select v-model="form.createBy" placeholder="请选择创建人" style="width: 100%;" clearable filterable>
|
||||
<el-option v-for="item in userList" :key="item.userName" :label="item.nickName" :value="item.userName" />
|
||||
</el-select>
|
||||
@@ -360,7 +361,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listMaterialCoil, updateMaterialCoilSimple, checkCoilNo, delMaterialCoil, restoreMaterialCoil } from '@/api/wms/coil'
|
||||
import { listMaterialCoil, updateMaterialCoilSimple, checkCoilNo, delMaterialCoil, restoreMaterialCoil, addMaterialCoil } from '@/api/wms/coil'
|
||||
import { listUser } from '@/api/system/user'
|
||||
import { listPendingAction, startProcess, cancelAction, delPendingAction } from '@/api/wms/pendingAction'
|
||||
import { parseTime } from '@/utils/klp'
|
||||
@@ -397,6 +398,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '钢卷信息修正',
|
||||
// 物料列表相关
|
||||
materialLoading: false,
|
||||
materialCoilList: [],
|
||||
@@ -591,6 +593,42 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
parseTime,
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.correctVisible = true;
|
||||
this.title = "添加钢卷物料";
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
coilId: undefined,
|
||||
enterCoilNo: undefined,
|
||||
currentCoilNo: undefined,
|
||||
supplierCoilNo: undefined,
|
||||
dataType: 1,
|
||||
warehouseId: undefined,
|
||||
nextWarehouseId: undefined,
|
||||
qrcodeRecordId: undefined,
|
||||
actualWarehouseId: undefined,
|
||||
team: undefined,
|
||||
hasMergeSplit: undefined,
|
||||
parentCoilNos: undefined,
|
||||
itemId: undefined,
|
||||
itemType: undefined,
|
||||
status: undefined,
|
||||
remark: undefined,
|
||||
delFlag: undefined,
|
||||
createTime: undefined,
|
||||
createBy: undefined,
|
||||
updateTime: undefined,
|
||||
updateBy: undefined,
|
||||
materialType: '原料',
|
||||
temperGrade: undefined,
|
||||
coatingType: undefined,
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
getBorderStyle(row) {
|
||||
// console.log(row);
|
||||
// 已发货
|
||||
@@ -727,7 +765,8 @@ export default {
|
||||
handleCorrectMaterial(row) {
|
||||
this.form = {
|
||||
...row,
|
||||
}
|
||||
};
|
||||
this.title = "钢卷信息修正";
|
||||
this.correctVisible = true
|
||||
},
|
||||
cancel() {
|
||||
@@ -741,13 +780,25 @@ export default {
|
||||
return
|
||||
}
|
||||
this.buttonLoading = true;
|
||||
updateMaterialCoilSimple(this.form).then(_ => {
|
||||
this.$modal.msgSuccess("修正成功");
|
||||
this.correctVisible = false;
|
||||
this.getMaterialCoil();
|
||||
}).finally(() => {
|
||||
this.buttonLoading = false;
|
||||
});
|
||||
if (this.form.coilId) {
|
||||
// 更新
|
||||
updateMaterialCoilSimple(this.form).then(_ => {
|
||||
this.$modal.msgSuccess("修正成功");
|
||||
this.correctVisible = false;
|
||||
this.getMaterialCoil();
|
||||
}).finally(() => {
|
||||
this.buttonLoading = false;
|
||||
});
|
||||
} else {
|
||||
// 新增
|
||||
addMaterialCoil(this.form).then(_ => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.correctVisible = false;
|
||||
this.getMaterialCoil();
|
||||
}).finally(() => {
|
||||
this.buttonLoading = false;
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
|
||||
@@ -50,10 +50,16 @@ export const actionStrategies = {
|
||||
handler: async (coil, action) => {
|
||||
// 更新操作记录状态 actionStatus: 2
|
||||
// 并行执行更新操作记录和更新钢卷状态
|
||||
// 将日期格式化为yyyy-MM-dd HH:mm:ss
|
||||
const completeTime = new Date()
|
||||
function parseDate(date) {
|
||||
return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds()
|
||||
}
|
||||
await Promise.all([
|
||||
updatePendingAction({
|
||||
...action,
|
||||
actionStatus: 2,
|
||||
completeTime: parseDate(completeTime),
|
||||
}),
|
||||
updateMaterialCoilSimple({
|
||||
...coil,
|
||||
|
||||
@@ -56,9 +56,9 @@
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8" v-if="showControl">
|
||||
<el-col :span="1.5">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single"
|
||||
@click="handleCheck">修正</el-button>
|
||||
@@ -75,7 +75,8 @@
|
||||
@click="handleBatchPrintLabel">批量打印标签</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5" v-if="showOrderBy">
|
||||
<el-checkbox v-model="queryParams.orderBy" v-loading="loading" @change="getList" label="orderBy">按实际库区排序</el-checkbox>
|
||||
<el-checkbox v-model="queryParams.orderBy" v-loading="loading" @change="getList"
|
||||
label="orderBy">按实际库区排序</el-checkbox>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
@@ -412,6 +413,7 @@ import {
|
||||
returnCoil,
|
||||
} from "@/api/wms/coil";
|
||||
import { listBoundCoil } from "@/api/wms/deliveryWaybillDetail";
|
||||
import { addPendingAction } from "@/api/wms/pendingAction";
|
||||
import WarehouseSelect from "@/components/KLPService/WarehouseSelect";
|
||||
import QRCode from "../../print/components/QRCode.vue";
|
||||
import * as XLSX from 'xlsx'
|
||||
@@ -1046,6 +1048,20 @@ export default {
|
||||
handleExportCoil(row) {
|
||||
exportCoil(row.coilId).then(response => {
|
||||
this.$modal.msgSuccess("发货成功");
|
||||
// 2. 插入一条已完成的待操作记录
|
||||
addPendingAction({
|
||||
coilId: row.coilId,
|
||||
currentCoilNo: row.currentCoilNo,
|
||||
actionType: 402, // 402=发货
|
||||
actionStatus: 2, // 直接标记为完成状态
|
||||
scanTime: new Date(),
|
||||
// scanDevice: ,
|
||||
priority: 0, // 0=普通
|
||||
sourceType: 'scan',
|
||||
warehouseId: row.warehouseId,
|
||||
processTime: new Date(),
|
||||
completeTime: new Date()
|
||||
});
|
||||
this.getList();
|
||||
}).catch(error => {
|
||||
this.$modal.msgError("发货失败");
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
<div class="editable-input transparent-input" contenteditable>{{ localWaybill.principal }}</div>
|
||||
</div>
|
||||
<div class="header-right">
|
||||
<span class="label">电话:</span>
|
||||
<div class="editable-input transparent-input" contenteditable>{{ localWaybill.principalPhone }}</div>
|
||||
<span class="label">订单号:</span>
|
||||
<div class="editable-input transparent-input" contenteditable>{{ localWaybill.orderId ? localWaybill.orderCode : localWaybill.principalPhone }}</div>
|
||||
</div>
|
||||
<div class="header-right">
|
||||
<span class="label">合同号:</span>
|
||||
@@ -239,6 +239,8 @@ export default {
|
||||
handler(newVal) {
|
||||
if (newVal) {
|
||||
this.localWaybill = {
|
||||
orderId: newVal.orderId || '',
|
||||
orderCode: newVal.orderCode || '',
|
||||
consigneeUnit: newVal.consigneeUnit || '',
|
||||
senderUnit: newVal.senderUnit || '',
|
||||
deliveryYear: this.getYearFromDate(newVal.deliveryTime) || '',
|
||||
@@ -499,12 +501,12 @@ export default {
|
||||
[
|
||||
`负责人:${this.localWaybill.principal || ''}`,
|
||||
undefined, undefined,
|
||||
`电话:${this.localWaybill.principalPhone || ''}`,
|
||||
`订单号:${this.localWaybill.orderId ? this.localWaybill.orderCode : this.localWaybill.principalPhone || ''}`,
|
||||
undefined, undefined,
|
||||
`合同号:${this.localWaybill.contractCode || ''}`,
|
||||
undefined, undefined,
|
||||
`车牌:${this.localWaybill.licensePlate || ''}`
|
||||
], // 负责人/电话/合同号/车牌行(r=2)
|
||||
], // 负责人/订单号/合同号/车牌行(r=2)
|
||||
["品名", '切边', '包装', '仓库位置', '结算', '原料厂家', '卷号', '规格', '材质', '重量(t)', '单价', '备注'], // 表格表头(r=3)
|
||||
];
|
||||
|
||||
@@ -558,7 +560,7 @@ export default {
|
||||
{ s: { c: 4, r: headerRow1Idx }, e: { c: 7, r: headerRow1Idx } }, // 日期(E2-H2)
|
||||
{ s: { c: 8, r: headerRow1Idx }, e: { c: 11, r: headerRow1Idx } }, // 发货单位(I2-L2)
|
||||
{ s: { c: 0, r: headerRow2Idx }, e: { c: 2, r: headerRow2Idx } }, // 负责人(A3-C3)
|
||||
{ s: { c: 3, r: headerRow2Idx }, e: { c: 5, r: headerRow2Idx } }, // 电话(D3-F3)
|
||||
{ s: { c: 3, r: headerRow2Idx }, e: { c: 5, r: headerRow2Idx } }, // 订单号(D3-F3)
|
||||
{ s: { c: 6, r: headerRow2Idx }, e: { c: 8, r: headerRow2Idx } }, // 合同号(G3-I3)
|
||||
{ s: { c: 9, r: headerRow2Idx }, e: { c: 11, r: headerRow2Idx } }, // 车牌(J3-L3)
|
||||
{ s: { c: 0, r: remarkRowIdx }, e: { c: 11, r: remarkRowIdx } }, // 备注跨列合并(A*_L*)
|
||||
@@ -747,9 +749,9 @@ export default {
|
||||
date: `${this.localWaybill.deliveryYear || ''}年${this.localWaybill.deliveryMonth || ''}月${this.localWaybill.deliveryDay || ''}日`,
|
||||
sender: `发货单位:${this.localWaybill.senderUnit || ''}`
|
||||
};
|
||||
const header2 = { // 负责人+电话+合同号+车牌
|
||||
const header2 = { // 负责人+订单号+合同号+车牌
|
||||
principal: `负责人:${this.localWaybill.principal || ''}`,
|
||||
phone: `电话:${this.localWaybill.principalPhone || ''}`,
|
||||
phone: `订单号:${this.localWaybill.orderId ? this.localWaybill.orderCode : this.localWaybill.principalPhone || ''}`,
|
||||
contract: `合同号:${this.localWaybill.contractCode || ''}`,
|
||||
license: `车牌:${this.localWaybill.licensePlate || ''}`
|
||||
};
|
||||
@@ -797,7 +799,7 @@ export default {
|
||||
worksheet.getCell(`G${rowIdx}`).value = header2.contract;
|
||||
worksheet.getCell(`J${rowIdx}`).value = header2.license;
|
||||
worksheet.mergeCells(`A${rowIdx}:C${rowIdx}`); // 负责人:A3-C3
|
||||
worksheet.mergeCells(`D${rowIdx}:F${rowIdx}`); // 电话:D3-F3
|
||||
worksheet.mergeCells(`D${rowIdx}:F${rowIdx}`); // 订单号:D3-F3
|
||||
worksheet.mergeCells(`G${rowIdx}:I${rowIdx}`); // 合同号:G3-I3
|
||||
worksheet.mergeCells(`J${rowIdx}:L${rowIdx}`); // 车牌:J3-L3
|
||||
// 3.4 表格表头(第4行)
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
<div class="editable-input transparent-input" contenteditable>{{ localWaybill.principal }}</div>
|
||||
</div>
|
||||
<div class="header-right">
|
||||
<span class="label">电话:</span>
|
||||
<div class="editable-input transparent-input" contenteditable>{{ localWaybill.principalPhone }}</div>
|
||||
<span class="label">订单号:</span>
|
||||
<div class="editable-input transparent-input" contenteditable>{{ localWaybill.orderId ? localWaybill.orderCode : localWaybill.principalPhone }}</div>
|
||||
</div>
|
||||
<div class="header-right">
|
||||
<span class="label">合同号:</span>
|
||||
@@ -239,6 +239,8 @@ export default {
|
||||
handler(newVal) {
|
||||
if (newVal) {
|
||||
this.localWaybill = {
|
||||
orderId: newVal.orderId || '',
|
||||
orderCode: newVal.orderCode || '',
|
||||
consigneeUnit: newVal.consigneeUnit || '',
|
||||
senderUnit: newVal.senderUnit || '',
|
||||
deliveryYear: this.getYearFromDate(newVal.deliveryTime) || '',
|
||||
@@ -499,12 +501,12 @@ export default {
|
||||
[
|
||||
`负责人:${this.localWaybill.principal || ''}`,
|
||||
undefined, undefined,
|
||||
`电话:${this.localWaybill.principalPhone || ''}`,
|
||||
`订单号:${this.localWaybill.orderId ? this.localWaybill.orderCode : this.localWaybill.principalPhone || ''}`,
|
||||
undefined, undefined,
|
||||
`合同号:${this.localWaybill.contractCode || ''}`,
|
||||
undefined,
|
||||
`车牌:${this.localWaybill.licensePlate || ''}`
|
||||
], // 负责人/电话/合同号/车牌行(r=2)
|
||||
], // 负责人/订单号/合同号/车牌行(r=2)
|
||||
["品名", '切边', '包装', '仓库位置', '结算', '原料厂家', '卷号', '规格', '材质', '重量(t)', '备注'], // 表格表头(r=3,11列)
|
||||
];
|
||||
|
||||
@@ -557,7 +559,7 @@ export default {
|
||||
{ s: { c: 4, r: headerRow1Idx }, e: { c: 6, r: headerRow1Idx } }, // 日期(4-7)
|
||||
{ s: { c: 8, r: headerRow1Idx }, e: { c: 10, r: headerRow1Idx } }, // 发货单位(8-10,无多余)
|
||||
{ s: { c: 0, r: headerRow2Idx }, e: { c: 2, r: headerRow2Idx } }, // 负责人(0-2)
|
||||
{ s: { c: 3, r: headerRow2Idx }, e: { c: 5, r: headerRow2Idx } }, // 电话(3-5)
|
||||
{ s: { c: 3, r: headerRow2Idx }, e: { c: 5, r: headerRow2Idx } }, // 订单号(3-5)
|
||||
{ s: { c: 6, r: headerRow2Idx }, e: { c: 7, r: headerRow2Idx } }, // 合同号(6-8)
|
||||
{ s: { c: 9, r: headerRow2Idx }, e: { c: 10, r: headerRow2Idx } }, // 车牌(9-10,无多余)
|
||||
{ s: { c: 0, r: remarkRowIdx }, e: { c: 10, r: remarkRowIdx } }, // 备注合并0-10列
|
||||
@@ -738,9 +740,9 @@ export default {
|
||||
date: `${this.localWaybill.deliveryYear || ''}年${this.localWaybill.deliveryMonth || ''}月${this.localWaybill.deliveryDay || ''}日`,
|
||||
sender: `发货单位:${this.localWaybill.senderUnit || ''}`
|
||||
};
|
||||
const header2 = { // 负责人+电话+合同号+车牌
|
||||
const header2 = { // 负责人+订单号+合同号+车牌
|
||||
principal: `负责人:${this.localWaybill.principal || ''}`,
|
||||
phone: `电话:${this.localWaybill.principalPhone || ''}`,
|
||||
phone: `订单号:${this.localWaybill.orderId ? this.localWaybill.orderCode : this.localWaybill.principalPhone || ''}`,
|
||||
contract: `合同号:${this.localWaybill.contractCode || ''}`,
|
||||
license: `车牌:${this.localWaybill.licensePlate || ''}`
|
||||
};
|
||||
@@ -788,7 +790,7 @@ export default {
|
||||
worksheet.getCell(`G${rowIdx}`).value = header2.contract;
|
||||
worksheet.getCell(`J${rowIdx}`).value = header2.license;
|
||||
worksheet.mergeCells(`A${rowIdx}:C${rowIdx}`); // 负责人:A3-C3
|
||||
worksheet.mergeCells(`D${rowIdx}:F${rowIdx}`); // 电话:D3-F3
|
||||
worksheet.mergeCells(`D${rowIdx}:F${rowIdx}`); // 订单号:D3-F3
|
||||
worksheet.mergeCells(`G${rowIdx}:I${rowIdx}`); // 合同号:G3-I3
|
||||
worksheet.mergeCells(`J${rowIdx}:K${rowIdx}`); // 车牌:J3-L3
|
||||
// 3.4 表格表头(第4行)
|
||||
|
||||
@@ -89,7 +89,7 @@ export default {
|
||||
methods: {
|
||||
// 处理分列数据调整
|
||||
resize() {
|
||||
this.$refs.warehouseInterlaced.handleResize();
|
||||
this.$refs.warehouseInterlaced?.handleResize();
|
||||
},
|
||||
handleSplitWarehouse(warehouse) {
|
||||
this.$emit('split-warehouse', warehouse);
|
||||
|
||||
Reference in New Issue
Block a user