|
@@ -18,7 +18,13 @@
|
|
|
<a-button
|
|
|
type="primary"
|
|
|
v-if="vehicleInfo['info' + item] && vehicleInfo['info' + item].id"
|
|
|
- @click="() => openPrintModal(true, { record: vehicleInfo['info' + item] })"
|
|
|
+ @click="
|
|
|
+ () =>
|
|
|
+ openPrintModal(true, {
|
|
|
+ record: vehicleInfo['info' + item],
|
|
|
+ typeConfigId: !vehicleInfo['info' + item].typeConfigId ? '1024' : vehicleInfo['info' + item].typeConfigId,
|
|
|
+ })
|
|
|
+ "
|
|
|
>打印</a-button
|
|
|
>
|
|
|
</div>
|
|
@@ -38,7 +44,7 @@
|
|
|
</a-tab-pane>
|
|
|
<!-- <a-tab-pane key="2" tab="车位2" force-render>Content of Tab Pane 2</a-tab-pane> -->
|
|
|
</a-tabs>
|
|
|
- <div class="flex justify-between refresh-wrapper">
|
|
|
+ <div class="flex justify-between refresh-wrapper" :style="{ left: carPosition[ccmNo].length * 70 + 20 + 'px' }">
|
|
|
<a-button size="large" type="primary" style="font-size: 18px" @click="refresh(1)"> 刷新 </a-button>
|
|
|
<RouterLink :to="'/shippingBill/' + ccmNo" target="_blank">
|
|
|
<a-button size="large" type="primary" style="font-size: 18px"> 装运列表 </a-button>
|
|
@@ -73,7 +79,14 @@
|
|
|
@click="handleStackClick(item)"
|
|
|
:class="{ 'selected-row': selectedAddressId.includes(item.id) }"
|
|
|
>
|
|
|
- <div class="stack-col" :class="{ 'hemp-texture': !!item.steelBillet.length }">{{ item.heatNo }}</div>
|
|
|
+ <a-dropdown :trigger="['contextmenu']">
|
|
|
+ <div class="stack-col" :class="{ 'hemp-texture': !!item.steelBillet.length }">{{ item.heatNo }}</div>
|
|
|
+ <template #overlay v-if="item.billetNos">
|
|
|
+ <a-menu @click="menuClick($event, item)" style="min-width: 100px">
|
|
|
+ <a-menu-item key="1" style="background-color: #b7eb8f; color: #000; text-align: center">更换位置</a-menu-item>
|
|
|
+ </a-menu>
|
|
|
+ </template>
|
|
|
+ </a-dropdown>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -86,7 +99,7 @@
|
|
|
import printCarInfo from './printCarInfo.vue';
|
|
|
import { useTimeoutFn } from '/@/hooks/core/useTimeout';
|
|
|
import { list, edit } from '../../shippingBill/shippingBill.api';
|
|
|
- import { getStackInfo, stackLoadSave } from '../../hotDelivery/hotDelivery.api';
|
|
|
+ import { getStackInfo, stackLoadSave, stackLocationChange } from '../../hotDelivery/hotDelivery.api';
|
|
|
import { getMachineConfig, MachineConfigType, destinationOptions } from '../../hotDelivery/common.data';
|
|
|
import { useMessage } from '/@/hooks/web/useMessage';
|
|
|
import printModal from '../../shippingBill/components/printModal.vue';
|
|
@@ -109,8 +122,7 @@
|
|
|
|
|
|
const activeKey = ref(1);
|
|
|
const carPosition = {
|
|
|
- // '5': [1, 2],
|
|
|
- '5': [1],
|
|
|
+ '5': [1, 2],
|
|
|
'6': [2, 3, 4],
|
|
|
};
|
|
|
// 车辆信息
|
|
@@ -329,6 +341,50 @@
|
|
|
return selectedAddress.value || [];
|
|
|
};
|
|
|
|
|
|
+ // 右键换位置
|
|
|
+ const menuClick = (e, info) => {
|
|
|
+ if (e.key === '1') {
|
|
|
+ const selectedStackList = selectedAddress.value.filter((item) => !item.billetNos);
|
|
|
+ if (!selectedStackList.length) {
|
|
|
+ createMessage.error('请选择要移动的位置,且位置上没有钢坯!');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (selectedStackList.length > 1) {
|
|
|
+ createMessage.error('钢坯移动的空位置只能选择一个!');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ createConfirm({
|
|
|
+ iconType: 'warning',
|
|
|
+ title: '确认更换位置',
|
|
|
+ width: '460px',
|
|
|
+ content: () => {
|
|
|
+ return h('div', { style: { fontSize: '16px' } }, [
|
|
|
+ h('span', null, `是否将`),
|
|
|
+ h('span', { style: { fontSize: '18px', color: '#d48806' } }, `${info.layer}层${info.address}`),
|
|
|
+ h('span', null, `更换到`),
|
|
|
+ h('span', { style: { fontSize: '18px', color: '#cd201f' } }, `${selectedStackList[0].layer}层${selectedStackList[0].address}`),
|
|
|
+ h('span', null, `?`),
|
|
|
+ ]);
|
|
|
+ },
|
|
|
+ okText: '更换',
|
|
|
+ cancelText: '取消',
|
|
|
+ onOk: () => {
|
|
|
+ const params = {
|
|
|
+ stackId: info.id,
|
|
|
+ locationChangeId: selectedStackList[0].id,
|
|
|
+ };
|
|
|
+
|
|
|
+ return stackLocationChange(params).then(() => {
|
|
|
+ selectedAddressId.value = [];
|
|
|
+ selectedAddress.value = [];
|
|
|
+ refresh(2);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
const handleStackClick = (v) => {
|
|
|
const index = selectedAddressId.value.indexOf(v.id);
|
|
|
if (index > -1) {
|
|
@@ -437,6 +493,23 @@
|
|
|
left: 100px;
|
|
|
right: 170px;
|
|
|
}
|
|
|
+
|
|
|
+ .ant-tabs {
|
|
|
+ color: #dadada;
|
|
|
+
|
|
|
+ :deep(.ant-tabs-tab) {
|
|
|
+ font-size: 16px;
|
|
|
+ background: #01396c;
|
|
|
+
|
|
|
+ &.ant-tabs-tab-active {
|
|
|
+ background: #0085ff;
|
|
|
+
|
|
|
+ .ant-tabs-tab-btn {
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.car-info-wrapper {
|
|
@@ -465,12 +538,20 @@
|
|
|
.change-type {
|
|
|
position: absolute;
|
|
|
right: 22px;
|
|
|
- top: -40px;
|
|
|
+ top: -50px;
|
|
|
gap: 10px;
|
|
|
color: var(--op-text-color-fff);
|
|
|
+ font-size: 20px;
|
|
|
|
|
|
.ant-switch {
|
|
|
background-color: #3b5999;
|
|
|
+
|
|
|
+ :deep(.ant-switch-inner) {
|
|
|
+ .ant-switch-inner-checked,
|
|
|
+ .ant-switch-inner-unchecked {
|
|
|
+ font-size: 17px;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.ant-switch.ant-switch-checked {
|