18 changed files with 2245 additions and 350 deletions
@ -0,0 +1,45 @@
|
||||
import request from '@/axios'; |
||||
|
||||
/** |
||||
* 暂存单转运单信息查询 |
||||
*/ |
||||
export const postOpenOrderAdvanceToWaybillInfo = data => { |
||||
return request({ |
||||
url: '/api/logpm-trunkline/openOrder/advanceToWaybillInfo', |
||||
method: 'post', |
||||
data, |
||||
}); |
||||
}; |
||||
|
||||
/** |
||||
* 开单接口 |
||||
*/ |
||||
export const postOpenOrderOpenWaybill = data => { |
||||
return request({ |
||||
url: '/api/logpm-trunkline/openOrder/openWaybill', |
||||
method: 'post', |
||||
data, |
||||
}); |
||||
}; |
||||
|
||||
/** |
||||
* 录单接口 |
||||
*/ |
||||
export const postOpenOrderOpenZeroWaybill = data => { |
||||
return request({ |
||||
url: '/api/logpm-trunkline/openOrder/openZeroWaybill', |
||||
method: 'post', |
||||
data, |
||||
}); |
||||
}; |
||||
|
||||
/** |
||||
* 录单信息查询接口 |
||||
*/ |
||||
export const postOpenOrderOpenZeroWaybillInfo = data => { |
||||
return request({ |
||||
url: '/api/logpm-trunkline/openOrder/openZeroWaybillInfo', |
||||
method: 'post', |
||||
data, |
||||
}); |
||||
}; |
@ -0,0 +1,25 @@
|
||||
import request from '@/axios'; |
||||
|
||||
/** |
||||
* 获取暂存单列表数据 |
||||
* @returns |
||||
*/ |
||||
export const postOpenOrderAdvancePageList = data => { |
||||
return request({ |
||||
url: '/api/logpm-trunkline/openOrder/findCustomerInfoList', |
||||
method: 'post', |
||||
data, |
||||
}); |
||||
}; |
||||
|
||||
/** |
||||
* 修改客户信息 |
||||
* @returns |
||||
*/ |
||||
export const postUpdateCustomerInfo = data => { |
||||
return request({ |
||||
url: '/api/logpm-trunkline/openOrder/updateCustomerInfo', |
||||
method: 'post', |
||||
data, |
||||
}); |
||||
}; |
@ -0,0 +1,20 @@
|
||||
import request from '@/axios'; |
||||
|
||||
/** |
||||
* 获取暂存单列表数据 |
||||
* @param {number} current |
||||
* @param {number} size |
||||
* @param {*} params |
||||
* @returns |
||||
*/ |
||||
export const getopenOrderFindAdvanceDetailList = (page, params) => { |
||||
return request({ |
||||
url: '/api/logpm-trunkline/openOrder/findAdvanceDetailList', |
||||
method: 'post', |
||||
data: { |
||||
...params, |
||||
...page, |
||||
}, |
||||
}); |
||||
}; |
||||
|
@ -0,0 +1,121 @@
|
||||
<template> |
||||
<div class="selectBox"> |
||||
<el-input |
||||
@focus="handleFocus" |
||||
@input="handleInput" |
||||
v-model="inputValue" |
||||
:placeholder="props.placeholder" |
||||
></el-input> |
||||
|
||||
<div class="selectContainer" v-if="isShowBox"> |
||||
<div class="content"> |
||||
<SelectComponent :handleShow="handleShow" :handleClose="handleClose" |
||||
><slot></slot> |
||||
</SelectComponent> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import SelectComponent from '@/components/SelectComponent/SelectComponent.vue'; |
||||
import { ref, onMounted, defineExpose, onUnmounted, defineProps, defineEmits } from 'vue'; |
||||
const query = ref({ serviceNumber: '' }); |
||||
const isShowBox = ref(false); |
||||
const _bodyNode = ref<any>(''); |
||||
|
||||
const inputValue = ref(''); |
||||
|
||||
const props = defineProps(['modelValue', 'placeholder']); |
||||
|
||||
inputValue.value = props.modelValue; |
||||
|
||||
const $emit = defineEmits(['update:modelValue']); |
||||
|
||||
const handleShow = () => { |
||||
isShowBox.value = true; |
||||
}; |
||||
|
||||
const handleClose = () => { |
||||
isShowBox.value = false; |
||||
}; |
||||
|
||||
const handleFocus = () => { |
||||
isShowBox.value = true; |
||||
}; |
||||
|
||||
const handleInput = () => { |
||||
$emit('update:modelValue', inputValue.value); |
||||
}; |
||||
|
||||
defineExpose({ handleShow }); |
||||
</script> |
||||
|
||||
<style lang="scss" scoped> |
||||
.selectBox { |
||||
width: 100%; |
||||
position: relative; |
||||
text-align: center; |
||||
|
||||
.selectContainer { |
||||
position: absolute; |
||||
width: 100%; |
||||
box-sizing: border-box; |
||||
padding: 10px; |
||||
line-height: normal; |
||||
top: 120%; |
||||
left: 0; |
||||
z-index: 999; |
||||
background: #fff; |
||||
border-radius: 3px; |
||||
box-shadow: 0px 0px 0.625vw rgba(0, 0, 0, 0.12); |
||||
max-height: 200px; |
||||
// transition: all 0.3s ease-in-out; |
||||
animation: dow 0.5s ease-in-out; |
||||
|
||||
&::before { |
||||
content: ''; |
||||
display: block; |
||||
width: 10px; |
||||
height: 10px; |
||||
background: #fff; |
||||
margin: 0 auto; |
||||
position: absolute; |
||||
top: -5px; |
||||
left: 50%; |
||||
transform: translateX(-50%) rotate(45deg); |
||||
z-index: 1000; |
||||
} |
||||
|
||||
.content { |
||||
overflow: auto; |
||||
} |
||||
} |
||||
} |
||||
|
||||
@keyframes dow { |
||||
0% { |
||||
display: none; |
||||
opacity: 0; |
||||
transform: translateY(-100%); |
||||
} |
||||
1% { |
||||
display: block; |
||||
} |
||||
50% { |
||||
opacity: 0; |
||||
} |
||||
100% { |
||||
opacity: 1; |
||||
transform: translateY(0); |
||||
} |
||||
} |
||||
|
||||
.selectBox-show { |
||||
animation: dow 0.3s ease-in-out; |
||||
} |
||||
|
||||
.selectBox-hide { |
||||
animation: dow 0.3s ease-in-out reverse; |
||||
} |
||||
</style> |
@ -0,0 +1,98 @@
|
||||
<template> |
||||
<div class="selectBox"> |
||||
<slot></slot> |
||||
</div> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import { ref, onMounted, onUnmounted } from 'vue'; |
||||
const _bodyNode = ref<any>(''); |
||||
|
||||
const props = defineProps(['handleShow', 'handleClose']); |
||||
|
||||
const addFn = e => { |
||||
console.log('e.target.className :>> ', e.target.className); |
||||
if (e.target.className === 'selectBox' || e.target.className === 'el-input__inner') |
||||
props.handleShow(); |
||||
else props.handleClose(); |
||||
}; |
||||
|
||||
onMounted(() => { |
||||
_bodyNode.value = document.querySelector('body'); |
||||
console.log('_bodyNode :>> ', _bodyNode); |
||||
_bodyNode.value.addEventListener('click', addFn, false); |
||||
}); |
||||
|
||||
onUnmounted(() => { |
||||
_bodyNode.value.removeEventListener('click', addFn); |
||||
}); |
||||
</script> |
||||
|
||||
<style lang="scss" scoped> |
||||
.selectBox { |
||||
width: 100%; |
||||
position: relative; |
||||
text-align: center; |
||||
|
||||
.selectContainer { |
||||
position: absolute; |
||||
width: 100%; |
||||
box-sizing: border-box; |
||||
padding: 10px; |
||||
line-height: normal; |
||||
top: 120%; |
||||
left: 0; |
||||
z-index: 999; |
||||
background: #fff; |
||||
border-radius: 3px; |
||||
box-shadow: 0px 0px 0.625vw rgba(0, 0, 0, 0.12); |
||||
max-height: 200px; |
||||
// transition: all 0.3s ease-in-out; |
||||
animation: dow 0.5s ease-in-out; |
||||
|
||||
&::before { |
||||
content: ''; |
||||
display: block; |
||||
width: 10px; |
||||
height: 10px; |
||||
background: #fff; |
||||
margin: 0 auto; |
||||
position: absolute; |
||||
top: -5px; |
||||
left: 50%; |
||||
transform: translateX(-50%) rotate(45deg); |
||||
z-index: 1000; |
||||
} |
||||
|
||||
.content { |
||||
overflow: auto; |
||||
} |
||||
} |
||||
} |
||||
|
||||
@keyframes dow { |
||||
0% { |
||||
display: none; |
||||
opacity: 0; |
||||
transform: translateY(-100%); |
||||
} |
||||
1% { |
||||
display: block; |
||||
} |
||||
50% { |
||||
opacity: 0; |
||||
} |
||||
100% { |
||||
opacity: 1; |
||||
transform: translateY(0); |
||||
} |
||||
} |
||||
|
||||
.selectBox-show { |
||||
animation: dow 0.3s ease-in-out; |
||||
} |
||||
|
||||
.selectBox-hide { |
||||
animation: dow 0.3s ease-in-out reverse; |
||||
} |
||||
</style> |
@ -0,0 +1,40 @@
|
||||
export const columnList = [ |
||||
{ |
||||
prop: '', |
||||
label: '序号', |
||||
type: 12, |
||||
values: '', |
||||
width: '55', |
||||
fixed: true, |
||||
}, |
||||
{ |
||||
prop: 'customerName', |
||||
label: '客户姓名', |
||||
type: 1, |
||||
values: '', |
||||
checkarr: [], |
||||
fixed: true, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
{ |
||||
prop: 'customerPhone', |
||||
label: '联系电话', |
||||
type: 1, |
||||
values: '', |
||||
checkarr: [], |
||||
fixed: true, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
{ |
||||
prop: 'customerAddress', |
||||
label: '用户地址', |
||||
type: 1, |
||||
values: '', |
||||
checkarr: [], |
||||
fixed: true, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
]; |
@ -0,0 +1,528 @@
|
||||
/** 包件明细表头 */ |
||||
export const packageListColumnList = [ |
||||
{ |
||||
prop: '', |
||||
label: '复选框', |
||||
type: 0, |
||||
width: 55, |
||||
fixed: true, |
||||
}, |
||||
{ |
||||
prop: '', |
||||
label: '序号', |
||||
type: 12, |
||||
values: '', |
||||
width: 55, |
||||
fixed: true, |
||||
}, |
||||
{ |
||||
prop: 'waybillNo', |
||||
label: '运单号', |
||||
type: 2, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: true, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
{ |
||||
prop: 'orderCode', |
||||
label: '订单自编号', |
||||
type: 2, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: true, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
{ |
||||
prop: 'warehouseName', |
||||
label: '当前所在仓', |
||||
type: 2, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: true, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'trainNumber', |
||||
label: '客户车次号', |
||||
type: 1, |
||||
values: '', |
||||
width: '130', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
// {
|
||||
// prop: '',
|
||||
// label: '入库',
|
||||
// type: 1,
|
||||
// values: '',
|
||||
// width: '130',
|
||||
// checkarr: [],
|
||||
// fixed: false,
|
||||
// sortable: true,
|
||||
// },
|
||||
// {
|
||||
// prop: '',
|
||||
// label: '干仓配',
|
||||
// type: 1,
|
||||
// values: '',
|
||||
// width: '180',
|
||||
// checkarr: [],
|
||||
// fixed: false,
|
||||
// sortable: true,
|
||||
// },
|
||||
{ |
||||
prop: 'firstPackName', |
||||
label: '一级品类', |
||||
type: 1, |
||||
values: '', |
||||
width: '130', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'secondPackName', |
||||
label: '二级品类', |
||||
type: 2, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
{ |
||||
prop: 'thirdPackName', |
||||
label: '三级品类', |
||||
type: 2, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
{ |
||||
prop: 'materialCode', |
||||
label: '物料编码', |
||||
type: 2, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
{ |
||||
prop: 'materialName', |
||||
label: '物料名称', |
||||
type: 2, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
{ |
||||
prop: 'orderPackageCode', |
||||
label: '包条码', |
||||
type: 2, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
{ |
||||
prop: 'systemType', |
||||
label: '订单来源', |
||||
type: 2, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
{ |
||||
prop: 'serviceNum', |
||||
label: '服务号', |
||||
type: 2, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
{ |
||||
prop: 'quantity', |
||||
label: '发货数量', |
||||
type: 2, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
// {
|
||||
// prop: '',
|
||||
// label: '所在托盘',
|
||||
// type: 2,
|
||||
// values: '',
|
||||
// width: '150',
|
||||
// checkarr: [],
|
||||
// fixed: false,
|
||||
// sortable: true,
|
||||
// head: false,
|
||||
// },
|
||||
{ |
||||
prop: 'volume', |
||||
label: '体积', |
||||
type: 2, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
head: false, |
||||
}, |
||||
// {
|
||||
// prop: '',
|
||||
// label: '基地发货日期',
|
||||
// type: 2,
|
||||
// values: '',
|
||||
// width: '150',
|
||||
// checkarr: [],
|
||||
// fixed: false,
|
||||
// sortable: true,
|
||||
// head: false,
|
||||
// },
|
||||
// {
|
||||
// prop: 'billladingCode',
|
||||
// label: '车次类型',
|
||||
// type: 2,
|
||||
// values: '',
|
||||
// width: '150',
|
||||
// checkarr: [],
|
||||
// fixed: false,
|
||||
// sortable: true,
|
||||
// head: false,
|
||||
// },
|
||||
// {
|
||||
// prop: 'billladingCode',
|
||||
// label: '汇通车次号',
|
||||
// type: 2,
|
||||
// values: '',
|
||||
// width: '150',
|
||||
// checkarr: [],
|
||||
// fixed: false,
|
||||
// sortable: true,
|
||||
// head: false,
|
||||
// },
|
||||
// {
|
||||
// prop: 'billladingCode',
|
||||
// label: '装车时间',
|
||||
// type: 2,
|
||||
// values: '',
|
||||
// width: '150',
|
||||
// checkarr: [],
|
||||
// fixed: false,
|
||||
// sortable: true,
|
||||
// head: false,
|
||||
// },
|
||||
// {
|
||||
// prop: 'billladingCode',
|
||||
// label: '签收时间',
|
||||
// type: 2,
|
||||
// values: '',
|
||||
// width: '150',
|
||||
// checkarr: [],
|
||||
// fixed: false,
|
||||
// sortable: true,
|
||||
// head: false,
|
||||
// // },
|
||||
// {
|
||||
// prop: 'billladingCode',
|
||||
// label: '导入仓库',
|
||||
// type: 2,
|
||||
// values: '',
|
||||
// width: '150',
|
||||
// checkarr: [],
|
||||
// fixed: false,
|
||||
// sortable: true,
|
||||
// head: false,
|
||||
// },
|
||||
// {
|
||||
// prop: 'billladingCode',
|
||||
// label: '创建人',
|
||||
// type: 2,
|
||||
// values: '',
|
||||
// width: '150',
|
||||
// checkarr: [],
|
||||
// fixed: false,
|
||||
// sortable: true,
|
||||
// head: false,
|
||||
// },
|
||||
// {
|
||||
// prop: 'billladingCode',
|
||||
// label: '创建时间',
|
||||
// type: 2,
|
||||
// values: '',
|
||||
// width: '150',
|
||||
// checkarr: [],
|
||||
// fixed: false,
|
||||
// sortable: true,
|
||||
// head: false,
|
||||
// },
|
||||
{ |
||||
prop: 'createUserName', |
||||
label: '操作', |
||||
type: 6, |
||||
values: '', |
||||
width: '350', |
||||
checkarr: [], |
||||
fixed: 'right', |
||||
sortable: false, |
||||
}, |
||||
]; |
||||
|
||||
/** 包内产品明细 */ |
||||
export const packageDetailColumnList = [ |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '复选框', |
||||
type: 0, |
||||
values: '', |
||||
width: '55', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '序号', |
||||
type: 12, |
||||
values: '', |
||||
width: '55', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '包条码', |
||||
type: 1, |
||||
values: '', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '货品代码', |
||||
type: 1, |
||||
values: '', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '货品名称', |
||||
type: 1, |
||||
values: '', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '销量数量', |
||||
type: 1, |
||||
values: '', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '发货数量', |
||||
type: 1, |
||||
values: '', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '创建时间', |
||||
type: 1, |
||||
values: '', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
]; |
||||
|
||||
/** 流转节点 */ |
||||
export const flowNodeColumnList = [ |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '复选框', |
||||
type: 0, |
||||
values: '', |
||||
width: '55', |
||||
checkarr: [], |
||||
fixed: false, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '序号', |
||||
type: 12, |
||||
values: '', |
||||
width: '55', |
||||
checkarr: [], |
||||
fixed: false, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '仓库', |
||||
type: 1, |
||||
values: '', |
||||
width: '130', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '订单自编号', |
||||
type: 1, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '包条码', |
||||
type: 1, |
||||
values: '', |
||||
width: '150', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '是否干仓配', |
||||
type: 1, |
||||
values: '', |
||||
width: '130', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '服务类型', |
||||
type: 1, |
||||
values: '', |
||||
width: '130', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '流转节点', |
||||
type: 1, |
||||
values: '', |
||||
width: '130', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '库位', |
||||
type: 1, |
||||
values: '', |
||||
width: '130', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '托盘码', |
||||
type: 1, |
||||
values: '', |
||||
width: '130', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '一级品名称', |
||||
type: 1, |
||||
values: '', |
||||
width: '130', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '二级品名称', |
||||
type: 1, |
||||
values: '', |
||||
width: '130', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '三级品名称', |
||||
type: 1, |
||||
values: '', |
||||
width: '130', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '物料名称', |
||||
type: 1, |
||||
values: '', |
||||
width: '130', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
{ |
||||
prop: 'createUserName', |
||||
label: '物料编码', |
||||
type: 1, |
||||
values: '', |
||||
width: '130', |
||||
checkarr: [], |
||||
fixed: false, |
||||
sortable: true, |
||||
}, |
||||
]; |
@ -0,0 +1,824 @@
|
||||
<template> |
||||
<basic-container> |
||||
<div class="avue-crud"> |
||||
<!-- 搜索模块 --> |
||||
<el-row v-if="!search"> |
||||
<!-- 查询模块 --> |
||||
<el-form :inline="true" :model="query" class="el-fr-d" label-width="100px"> |
||||
<el-form-item label="是否入库"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="是否干仓配"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="运单号"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="订单自编号"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="订单来源"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="二级品类"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="三级品类"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="包条码"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="发货基地"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="客户车次号"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="服务号"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="汇通车次号"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="当前所在仓"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="创建人"> |
||||
<el-input v-model="query.trainNumber" placeholder="请输入运单号" clearable></el-input> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="发货日期"> |
||||
<el-date-picker |
||||
v-model="stockupDate" |
||||
type="daterange" |
||||
unlink-panels |
||||
range-separator="至" |
||||
start-placeholder="开始时间" |
||||
end-placeholder="结束时间" |
||||
:shortcuts="shortcuts" |
||||
clearable |
||||
/> |
||||
</el-form-item> |
||||
|
||||
<el-form-item label="创建时间"> |
||||
<el-date-picker |
||||
v-model="stockupDate" |
||||
type="daterange" |
||||
unlink-panels |
||||
range-separator="至" |
||||
start-placeholder="开始时间" |
||||
end-placeholder="结束时间" |
||||
:shortcuts="shortcuts" |
||||
clearable |
||||
/> |
||||
</el-form-item> |
||||
|
||||
<!-- 查询按钮 --> |
||||
<el-form-item class="el-btn"> |
||||
<el-button type="primary" icon="el-icon-search" @click="searchChange">搜 索</el-button> |
||||
<el-button icon="el-icon-delete" @click="searchReset()">清 空</el-button> |
||||
</el-form-item> |
||||
</el-form> |
||||
</el-row> |
||||
|
||||
<!-- 控件模块 --> |
||||
<el-row> |
||||
<div class="avue-crud__header"> |
||||
<!-- 头部左侧按钮模块 --> |
||||
<div class="avue-crud__left"> |
||||
<el-button type="primary" icon="Printer" @click="editClientInfo">批量打印</el-button> |
||||
</div> |
||||
<!-- 头部右侧按钮模块 --> |
||||
<div class="avue-crud__right"> |
||||
<el-button icon="el-icon-refresh" @click="searchChange" circle></el-button> |
||||
<el-button icon="Operation" @click="showdrawer(true)" circle></el-button> |
||||
<el-button icon="Search" @click="searchHide" circle></el-button> |
||||
</div> |
||||
</div> |
||||
</el-row> |
||||
|
||||
<!-- 表格 --> |
||||
<el-row> |
||||
<!-- 列表模块 --> |
||||
<tablecmt |
||||
:columnList="details.packageListColumnList" |
||||
:tableData="details.packageListData" |
||||
:loading="loadingObj.packageListLoading" |
||||
@inputTxt="inputsc" |
||||
@timeCheck="timesc" |
||||
@btnCheck="btnsc" |
||||
@selectCheck="selectsc" |
||||
@selection="selectionChange" |
||||
> |
||||
<template #default="slotProps"> |
||||
<template v-if="slotProps.scope.column.label === '操作'"> |
||||
<el-button type="text" @click="handleShowPackageOrderList(slotProps.scope)"> |
||||
包内产品 |
||||
</el-button> |
||||
<el-button type="text" @click="handleShowFlowNode(slotProps.scope)"> |
||||
流转节点 |
||||
</el-button> |
||||
<el-button type="text" @click="handlePutInStorage(slotProps.scope)"> |
||||
直接入库 |
||||
</el-button> |
||||
<el-button type="text" @click="printOrder(slotProps.scope)"> 查看二维码 </el-button> |
||||
</template> |
||||
</template> |
||||
</tablecmt> |
||||
</el-row> |
||||
|
||||
<!-- 分页模块 --> |
||||
<el-row class="el-fy"> |
||||
<div class="avue-crud__pagination flex-c-sb" style="width: 100%"> |
||||
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div> |
||||
<!-- 分页模块 --> |
||||
<el-pagination |
||||
align="right" |
||||
background |
||||
@size-change="sizeChange" |
||||
@current-change="currentChange" |
||||
:current-page="page.currentPage" |
||||
:page-sizes="[30, 50, 80, 120]" |
||||
:page-size="page.pageSize" |
||||
layout="total, sizes, prev, pager, next, jumper" |
||||
:total="page.total" |
||||
> |
||||
</el-pagination> |
||||
</div> |
||||
</el-row> |
||||
</div> |
||||
</basic-container> |
||||
|
||||
<!-- 包内产品 --> |
||||
<el-dialog |
||||
title="包内产品" |
||||
v-model="details.popUpShow.packageDetailColumnListVisited" |
||||
width="80%" |
||||
:before-close="beforeClose" |
||||
append-to-body |
||||
:fullscreen="details.fullscreenObj.packageDetailColumnListVisited" |
||||
:show-close="false" |
||||
class="packageDetailColumnListVisited" |
||||
> |
||||
<template #header="{ close, titleId, titleClass }"> |
||||
<div class="my-header flex-c-sb"> |
||||
<h4 :id="titleId" :class="titleClass">包内产品</h4> |
||||
<div class="flex-c-c"> |
||||
<!-- 全屏显示按钮 --> |
||||
<el-button type="text" v-if="!details.fullscreenObj.packageDetailColumnListVisited"> |
||||
<el-icon class="" @click="handleFullScrean('open', 'packageDetailColumnListVisited')" |
||||
><FullScreen |
||||
/></el-icon> |
||||
</el-button> |
||||
<el-button type="text" v-else> |
||||
<el-icon class="" @click="handleFullScrean('close', 'packageDetailColumnListVisited')" |
||||
><CopyDocument |
||||
/></el-icon> |
||||
</el-button> |
||||
|
||||
<!-- 弹窗关闭按钮 --> |
||||
<el-button type="text"> |
||||
<el-icon class="" @click="close"><Close /></el-icon> |
||||
</el-button> |
||||
</div> |
||||
</div> |
||||
</template> |
||||
<tablecmt |
||||
:columnList="details.packageDetailColumnList" |
||||
:tableData="details.packageDetailData" |
||||
:loading="loadingObj.packageListLoading" |
||||
@inputTxt="inputsc" |
||||
@timeCheck="timesc" |
||||
@btnCheck="btnsc" |
||||
@selectCheck="selectsc" |
||||
@selection="selectionChange" |
||||
> |
||||
<template #default="slotProps"> </template> |
||||
</tablecmt> |
||||
|
||||
<!-- 分页模块 --> |
||||
<el-pagination |
||||
align="right" |
||||
background |
||||
@size-change="sizeChange" |
||||
@current-change="currentChange" |
||||
:current-page="details.packageListPage.currentPage" |
||||
:page-sizes="[30, 50, 80, 120]" |
||||
:page-size="details.packageListPage.pageSize" |
||||
layout="total, sizes, prev, pager, next, jumper" |
||||
:total="details.packageListPage.total" |
||||
> |
||||
</el-pagination> |
||||
</el-dialog> |
||||
|
||||
<!-- 流转节点 --> |
||||
<el-dialog |
||||
title="流转节点" |
||||
v-model="details.popUpShow.flowNodeColumnListVisited" |
||||
width="80%" |
||||
:before-close="beforeClose" |
||||
append-to-body |
||||
:fullscreen="details.fullscreenObj.flowNodeColumnListVisited" |
||||
:show-close="false" |
||||
class="flowNodeColumnListVisited" |
||||
> |
||||
<template #header="{ close, titleId, titleClass }"> |
||||
<div class="my-header flex-c-sb"> |
||||
<h4 :id="titleId" :class="titleClass">流转节点</h4> |
||||
<div class="flex-c-c"> |
||||
<!-- 全屏显示按钮 --> |
||||
<el-button type="text" v-if="!details.fullscreenObj.flowNodeColumnListVisited"> |
||||
<el-icon class="" @click="handleFullScrean('open', 'flowNodeColumnListVisited')" |
||||
><FullScreen |
||||
/></el-icon> |
||||
</el-button> |
||||
<el-button type="text" v-else> |
||||
<el-icon class="" @click="handleFullScrean('close', 'flowNodeColumnListVisited')" |
||||
><CopyDocument |
||||
/></el-icon> |
||||
</el-button> |
||||
|
||||
<!-- 弹窗关闭按钮 --> |
||||
<el-button type="text"> |
||||
<el-icon class="" @click="close"><Close /></el-icon> |
||||
</el-button> |
||||
</div> |
||||
</div> |
||||
</template> |
||||
<tablecmt |
||||
:columnList="details.flowNodeColumnList" |
||||
:tableData="details.flowNodeData" |
||||
:loading="loadingObj.packageListLoading" |
||||
@inputTxt="inputsc" |
||||
@timeCheck="timesc" |
||||
@btnCheck="btnsc" |
||||
@selectCheck="selectsc" |
||||
@selection="selectionChange" |
||||
> |
||||
<template #default="slotProps"> </template> |
||||
</tablecmt> |
||||
|
||||
<!-- 分页模块 --> |
||||
<el-pagination |
||||
align="right" |
||||
background |
||||
@size-change="sizeChange" |
||||
@current-change="currentChange" |
||||
:current-page="details.packageListPage.currentPage" |
||||
:page-sizes="[30, 50, 80, 120]" |
||||
:page-size="details.packageListPage.pageSize" |
||||
layout="total, sizes, prev, pager, next, jumper" |
||||
:total="details.packageListPage.total" |
||||
> |
||||
</el-pagination> |
||||
</el-dialog> |
||||
|
||||
<!-- 打印二维码 --> |
||||
<el-dialog |
||||
class="el-dialog-QRCode" |
||||
title="二维码" |
||||
:visible.sync="details.popUpShow.QRCodeVisible" |
||||
width="780px" |
||||
v-model="details.popUpShow.QRCodeVisible" |
||||
> |
||||
<div> |
||||
<div v-html="details.html"></div> |
||||
</div> |
||||
<span slot="footer" class="dialog-footer"> |
||||
<!-- <el-button type="primary" @click="ddd">导 出</el-button>--> |
||||
<el-button type="primary" @click="printTemplate">打 印</el-button> |
||||
<el-button @click="details.popUpShow.QRCodeVisible = false">取 消</el-button> |
||||
</span> |
||||
</el-dialog> |
||||
|
||||
<!-- 列表配置显示 --> |
||||
<edittablehead |
||||
@setcolum="setnewcolum" |
||||
@closce="showdrawer" |
||||
:drawerShow="drawerShow" |
||||
:columnList="details.packageListColumnList" |
||||
></edittablehead> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue'; |
||||
import functions from '@/utils/functions.js'; |
||||
import dayjs from 'dayjs'; |
||||
import { mapGetters } from 'vuex'; |
||||
/** 获取字典 */ |
||||
import { getDictionaryBiz } from '@/api/system/dict'; |
||||
import { getopenOrderFindAdvanceDetailList } from '@/api/waybill/orderPackageListDetails'; |
||||
import { showOrderPackgeCode } from '@/api/distribution/distributionStockArticle'; |
||||
import { downloadXls, setNodeHeight, getHtmls } from '@/utils/util'; |
||||
import { |
||||
packageListColumnList, |
||||
packageDetailColumnList, |
||||
flowNodeColumnList, |
||||
} from '@/option/waybill/orderPackageListDetails'; |
||||
import print from '@/utils/print'; |
||||
import { ElMessage, ElMessageBox } from 'element-plus'; |
||||
import { useRoute, useRouter } from 'vue-router'; |
||||
|
||||
// 获取路由实例 |
||||
const $router = useRouter(); |
||||
const $route = useRoute(); |
||||
|
||||
const { |
||||
query: { id }, |
||||
} = $route; |
||||
|
||||
const details = reactive<any>({ |
||||
/** 是否开启搜索 */ |
||||
search: true, |
||||
/** 表格搜索条件 */ |
||||
query: {}, |
||||
/** 时间快捷选择设置 */ |
||||
shortcuts: [ |
||||
{ |
||||
text: '最近一周', |
||||
value: () => { |
||||
const end = new Date(); |
||||
const start = new Date(); |
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
||||
return [start, end]; |
||||
}, |
||||
}, |
||||
{ |
||||
text: '最近一个月', |
||||
value: () => { |
||||
const end = new Date(); |
||||
const start = new Date(); |
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
||||
return [start, end]; |
||||
}, |
||||
}, |
||||
{ |
||||
text: '最近三个月', |
||||
value: () => { |
||||
const end = new Date(); |
||||
const start = new Date(); |
||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
||||
return [start, end]; |
||||
}, |
||||
}, |
||||
], |
||||
/** 时间选择器数据 */ |
||||
stockupDate: [], |
||||
/** 包明细表头 */ |
||||
packageListColumnList, |
||||
/** 包明细数据 */ |
||||
packageListData: [{}], |
||||
/** 包内产品表头 */ |
||||
packageDetailColumnList, |
||||
/** 包内产品数据 */ |
||||
packageDetailData: [{}], |
||||
/** 流转节点表头 */ |
||||
flowNodeColumnList, |
||||
/** 流转节点数据 */ |
||||
flowNodeData: [{}], |
||||
/** 页面loading */ |
||||
loadingObj: { |
||||
/** 列表加载loading */ |
||||
list: false, |
||||
packageListLoading: false, |
||||
}, |
||||
/** 列表复选框选中的数据 */ |
||||
selectionList: [], |
||||
/** 是否显示设置表格 */ |
||||
drawerShow: false, |
||||
/** 分页参数 */ |
||||
page: { |
||||
currentPage: 1, |
||||
pageSize: 30, |
||||
total: 0, |
||||
}, |
||||
/** 包明细分页参数 */ |
||||
packageListPage: { |
||||
currentPage: 1, |
||||
pageSize: 30, |
||||
total: 0, |
||||
}, |
||||
/** 弹出层显示 */ |
||||
popUpShow: { |
||||
/** 流转节点 */ |
||||
flowNodeColumnListVisited: false, |
||||
/** 二维码 */ |
||||
QRCodeVisible: false, |
||||
/** 包内产品 */ |
||||
packageDetailColumnListVisited: false, |
||||
}, |
||||
/** 全屏 */ |
||||
fullscreenObj: { |
||||
/** 流转节点 */ |
||||
flowNodeColumnListVisited: false, |
||||
/** 包内产品 */ |
||||
packageDetailColumnListVisited: false, |
||||
}, |
||||
/** 列表Dom节点 */ |
||||
listNode: '', |
||||
form: {}, |
||||
html: '', |
||||
}); |
||||
|
||||
const { |
||||
search, |
||||
query, |
||||
shortcuts, |
||||
stockupDate, |
||||
data, |
||||
loadingObj, |
||||
selectionList, |
||||
drawerShow, |
||||
page, |
||||
trickleLoadingPage, |
||||
zeroAdditionalRecordingInfo, |
||||
popUpShow, |
||||
} = toRefs(details); |
||||
|
||||
/** vuex */ |
||||
const permission = computed(() => mapGetters(['permission', 'tagWel', 'tagList'])); |
||||
console.log('permission :>> ', permission); |
||||
|
||||
onMounted(() => { |
||||
const timer = setTimeout(() => { |
||||
details.listNode = document.querySelector('.maboxhi'); |
||||
details.listNode.style.transition = 'all .3s ease-out'; |
||||
clearTimeout(timer); |
||||
}, 100); |
||||
}); |
||||
|
||||
/** 请求页面数据 */ |
||||
const onLoad = async (page: any, params = {}) => { |
||||
try { |
||||
details.loadingObj.packageListLoading = true; |
||||
|
||||
// 获取暂存单列表 |
||||
const res = await getopenOrderFindAdvanceDetailList(page, { |
||||
...details.query, |
||||
...params, |
||||
advanceId: id, |
||||
}); |
||||
|
||||
if (res.data.code !== 200) return; |
||||
|
||||
details.packageListData = res.data.data; |
||||
} catch (error) { |
||||
} finally { |
||||
details.loadingObj.packageListLoading = false; |
||||
} |
||||
}; |
||||
|
||||
onLoad(details.page); |
||||
|
||||
/** 搜索 */ |
||||
const searchChange = () => { |
||||
onLoad(details.page); |
||||
}; |
||||
|
||||
/** 清空表单 */ |
||||
const searchReset = () => { |
||||
details.query = {}; |
||||
details.stockupDate = []; |
||||
details.page.currentPage = 1; |
||||
onLoad(details.page); |
||||
}; |
||||
|
||||
/** 展开列表控件 */ |
||||
const showdrawer = (_flag?: boolean) => { |
||||
details.drawerShow = _flag; |
||||
}; |
||||
|
||||
/** 是否开启搜索区 */ |
||||
const searchHide = () => { |
||||
function getWinHight() { |
||||
var windowHight = 0; |
||||
if (document.body.clientHeight && document.documentElement.clientHeight) { |
||||
windowHight = |
||||
document.body.clientHeight < document.documentElement.clientHeight |
||||
? document.body.clientHeight |
||||
: document.documentElement.clientHeight; |
||||
} else { |
||||
} |
||||
return document.documentElement.clientHeight; |
||||
} |
||||
details.search = !details.search; |
||||
const timer = setTimeout(() => { |
||||
details.listNode.style.height = |
||||
getWinHight() - details.listNode.getBoundingClientRect().top - 70 + 'px'; |
||||
clearTimeout(timer); |
||||
}, 10); |
||||
}; |
||||
|
||||
/** 表格表头输入框搜索 */ |
||||
const inputsc = (index, row) => { |
||||
details.query[row.prop] = index; |
||||
onLoad(details.page); |
||||
}; |
||||
|
||||
/** 表格表头时间选择 */ |
||||
const timesc = (index, row) => { |
||||
console.log(index, row); |
||||
if (!!index) { |
||||
index = dayjs(index).format('YYYY-MM-DD'); |
||||
} |
||||
details.query[row.prop] = index; |
||||
if (!index) { |
||||
delete details.query[row.prop]; |
||||
} |
||||
onLoad(details.page); |
||||
}; |
||||
|
||||
/** 表格表头输入框搜索 */ |
||||
const btnsc = () => {}; |
||||
|
||||
/** 表格表头下拉框选择 */ |
||||
const selectsc = (index, row) => { |
||||
details.query[row.prop] = index; |
||||
if (!index) delete details.query[row.prop]; |
||||
if (row.prop === 'certificateTypeName') { |
||||
details.query['certificateType'] = index; |
||||
if (!index) delete details.query['certificateType']; |
||||
} |
||||
onLoad(details.page); |
||||
}; |
||||
|
||||
/** 表格表头复选框选择 */ |
||||
const selectionChange = (list: any) => { |
||||
details.selectionList = list; |
||||
}; |
||||
|
||||
/** 每页数量改变执行的回调 */ |
||||
const sizeChange = (pageSize: number) => { |
||||
details.page.pageSize = pageSize; |
||||
onLoad(details.page); |
||||
}; |
||||
|
||||
/** 页码改变执行的回调 */ |
||||
const currentChange = () => {}; |
||||
|
||||
/** |
||||
* 设置列表 -- 固定函数 |
||||
* 弹窗的勾选回调,用于更改头部数组 |
||||
* 固定搭配,只需要更换 columnList |
||||
* */ |
||||
const setnewcolum = (newarr, headarr, type) => { |
||||
if (type == 1) { |
||||
details.packageListColumnList = newarr; |
||||
functions.setStorage(window.location.pathname + 'checkList', headarr); |
||||
} else if (type == 2) { |
||||
details.packageListColumnList = newarr; |
||||
functions.setStorage(window.location.pathname + 'flexList', headarr); |
||||
} else if (type == 3) { |
||||
details.packageListColumnList = newarr; |
||||
functions.setStorage(window.location.pathname + 'sortlist', headarr); |
||||
} |
||||
}; |
||||
|
||||
/** 弹出层开启前清除数据 */ |
||||
const beforeClose = done => { |
||||
done(); |
||||
details.form = {}; |
||||
details.selectionList = []; |
||||
details.view = false; |
||||
}; |
||||
|
||||
/** 查看包内产品 */ |
||||
const handleShowPackageOrderList = ({ row }) => { |
||||
details.popUpShow.packageDetailColumnListVisited = true; |
||||
|
||||
nextTick(() => { |
||||
// 获取弹窗内表格元素节点, 并设置高度 |
||||
const _node: any = document.querySelector('.packageDetailColumnListVisited .maboxhi'); |
||||
if (!_node) return; |
||||
_node.style.height = '550px'; |
||||
console.log('_node :>> ', _node); |
||||
}); |
||||
}; |
||||
|
||||
/** 订单转运单 */ |
||||
const handleCreateOrder = () => { |
||||
$router.push('/distribution/inventory/CreateOrder'); |
||||
}; |
||||
|
||||
/** 修改客户信息 */ |
||||
const editClientInfo = () => { |
||||
if (details.selectionList.length !== 0) { |
||||
return ElMessage({ |
||||
type: 'warning', |
||||
message: '最少选择一条数据', |
||||
}); |
||||
} |
||||
// editClientInfoVisible; |
||||
details.popUpShow.editClientInfoVisible = true; |
||||
}; |
||||
|
||||
/** 批量删除 */ |
||||
const handleDelete = () => { |
||||
if (details.selectionList.length === 0) { |
||||
return ElMessage({ |
||||
type: 'warning', |
||||
message: '最少选择一条数据', |
||||
}); |
||||
} |
||||
}; |
||||
|
||||
/** 批量发车 */ |
||||
const handleDepart = () => { |
||||
if (details.selectionList.length === 0) { |
||||
return ElMessage({ |
||||
type: 'warning', |
||||
message: '最少选择一条数据', |
||||
}); |
||||
} |
||||
}; |
||||
|
||||
/** 批量冻结 */ |
||||
const handleFreeze = () => { |
||||
if (details.selectionList.length === 0) { |
||||
return ElMessage({ |
||||
type: 'warning', |
||||
message: '最少选择一条数据', |
||||
}); |
||||
} |
||||
}; |
||||
|
||||
/** |
||||
* 是否开启全屏 |
||||
* @params(_type) 开启或关闭 |
||||
*/ |
||||
const handleFullScrean = (_type: 'open' | 'close', _name: string) => { |
||||
let _node = ''; |
||||
if (_name) _node = document.querySelector(`.${_name} .maboxhi`); |
||||
|
||||
switch (_name) { |
||||
// 包内产品 |
||||
case 'packageDetailColumnListVisited': |
||||
details.fullscreenObj.packageDetailColumnListVisited = |
||||
!details.fullscreenObj.packageDetailColumnListVisited; |
||||
|
||||
if (_type === 'close') { |
||||
if (_node) setNodeHeight(_node, '500px'); |
||||
} else { |
||||
if (_node) setNodeHeight(_node); |
||||
} |
||||
break; |
||||
|
||||
default: |
||||
details.fullscreenObj[_name] = !details.fullscreenObj[_name]; |
||||
if (_type === 'close') { |
||||
if (_node) setNodeHeight(_node, '500px'); |
||||
} else { |
||||
if (_node) setNodeHeight(_node); |
||||
} |
||||
break; |
||||
} |
||||
}; |
||||
|
||||
/** 单列查看包条码 */ |
||||
const printOrder = ({ row }) => { |
||||
let qr = { |
||||
ids: row.id, |
||||
}; |
||||
showOrderPackgeCode(qr).then(res => { |
||||
// this.orderPackageCode = res.data |
||||
if (res.data.code !== 200) return; |
||||
console.log(res.data); |
||||
this.html = ''; |
||||
this.html = getHtmls(res.data.data.dataList, res.data.data.templateHtml); |
||||
}); |
||||
}; |
||||
|
||||
/** 单列查看包条码 */ |
||||
const batchPrintOrder = ({ row }) => { |
||||
let qr = { |
||||
ids: row.id, |
||||
}; |
||||
showOrderPackgeCode(qr).then(res => { |
||||
// this.orderPackageCode = res.data |
||||
if (res.data.code !== 200) return; |
||||
console.log(res.data); |
||||
this.html = ''; |
||||
this.html = getHtmls(res.data.data.dataList, res.data.data.templateHtml); |
||||
}); |
||||
}; |
||||
|
||||
/** 打印包条码 */ |
||||
const printTemplate = () => { |
||||
const orderNodeList = document.querySelectorAll('.el-dialog-QRCode .el-dialog__body>div>div>div'); |
||||
print(orderNodeList); |
||||
}; |
||||
|
||||
/** 入库 */ |
||||
const handlePutInStorage = row => { |
||||
ElMessageBox.confirm('确认直接入库吗?', '警告', { |
||||
confirmButtonText: '确认', |
||||
cancelButtonText: '取消', |
||||
type: 'warning', |
||||
}) |
||||
.then(() => { |
||||
ElMessage({ |
||||
type: 'success', |
||||
message: '入库成功', |
||||
}); |
||||
}) |
||||
.catch(() => {}); |
||||
}; |
||||
|
||||
/** 显示流转节点 */ |
||||
const handleShowFlowNode = ({ row }) => { |
||||
details.popUpShow.flowNodeColumnListVisited = true; |
||||
|
||||
nextTick(() => { |
||||
// 获取弹窗内表格元素节点, 并设置高度 |
||||
const _node: any = document.querySelector('.flowNodeColumnListVisited .maboxhi'); |
||||
if (!_node) return; |
||||
_node.style.height = '550px'; |
||||
console.log('_node :>> ', _node); |
||||
}); |
||||
}; |
||||
</script> |
||||
|
||||
<style scoped lang="scss"> |
||||
.fo-fl { |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
zoom: 0.9; |
||||
} |
||||
|
||||
// 日期选择器 |
||||
:deep(.el-date-editor.el-input) { |
||||
height: 100% !important; |
||||
width: 100% !important; |
||||
} |
||||
|
||||
:deep(.el-range-editor.el-input__wrapper) { |
||||
height: 100% !important; |
||||
} |
||||
|
||||
// 新增行 |
||||
.add_row { |
||||
display: flex; |
||||
justify-content: space-between; |
||||
} |
||||
|
||||
.add_row_title { |
||||
text-align: center; |
||||
margin-bottom: 10px; |
||||
font-size: 18px; |
||||
font-weight: bold; |
||||
} |
||||
|
||||
// 统计行 |
||||
.statistics_row { |
||||
margin: 10px 0; |
||||
font-size: 14px; |
||||
zoom: 0.9; |
||||
display: flex; |
||||
|
||||
> div { |
||||
margin-right: 20px; |
||||
} |
||||
} |
||||
|
||||
// 卡片容器 |
||||
.crad_container { |
||||
display: flex; |
||||
|
||||
.card_container_item { |
||||
flex: 1; |
||||
// padding: 10px; |
||||
border-radius: 5px; |
||||
box-shadow: 0 0 5px #ccc; |
||||
|
||||
&:first-child { |
||||
margin-right: 20px; |
||||
} |
||||
|
||||
.card_container_item_title { |
||||
padding: 10px; |
||||
border-bottom: 1px solid #ccc; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
} |
||||
|
||||
.card_container_item_box { |
||||
padding: 10px; |
||||
} |
||||
} |
||||
} |
||||
</style> |
Loading…
Reference in new issue