Browse Source

盘点

fix_bug_pro20231227
0.0 1 year ago
parent
commit
ca96947f62
  1. 665
      src/components/newTablecmt/newTablecmt.vue
  2. 11
      src/components/tablecmt/tablecmt.vue
  3. 42
      src/option/aftersales/aftersalesWorkOrder.js
  4. 412
      src/option/distribution/arteryDistrilbutionBillLadingList.js
  5. 4
      src/page/index/index.vue
  6. 4
      src/page/index/layout.vue
  7. 5
      src/router/avue-router.js
  8. 1
      src/router/index.js
  9. 27
      src/router/views/index.js
  10. 5
      src/store/getters.js
  11. 66
      src/views/aftersales/aftersalesWorkOrder.vue
  12. 188
      src/views/distribution/deliverylist/distributionDeliveryListmar.vue
  13. 1019
      src/views/distribution/inventory/arteryDistrilbutionBillLadingList.vue
  14. 6
      vite.config.js

665
src/components/newTablecmt/newTablecmt.vue

@ -0,0 +1,665 @@
<template>
<div class="maboxhi" id="bodys">
<el-table
:data="tableData"
style="width: 100%"
:show-summary="shownm"
:summary-method="getSummaries"
v-loading="loading"
@selection-change="handleSelectionChange"
border
height="100%"
:row-class-name="tableRowClassName"
ref="selecttable"
>
<el-table-column
:type="column.type == 0 ? 'selection' : ''"
:min-width="column.width"
v-for="(column, index) in newcolumnList"
:key="column.prop"
:prop="column.prop"
:label="column.label"
:fixed="column.fixed"
:sortable="column.sortable"
:selectable="isselectfun"
v-show="column.head"
>
<el-table-column
:type="column.type == 12 ? 'index' : ''"
:min-width="column.width"
:prop="column.prop"
:label="column.label"
v-if="column.type != 0"
flexible
show-overflow-tooltip
>
<template #header>
<!-- <el-text class="mx-1">{{ column.label }}</el-text> -->
<el-input
v-if="column.type == 2"
v-model="column.values"
clearable
:placeholder="`请输入${column.label}`"
@change="inputchange($event, column)"
@blur="inputchange($event, column)"
@clear="inputclear($event, column)"
/>
<el-select
v-if="column.type == 3"
v-model="column.values"
class="m-2 selectbr"
clearable
:placeholder="`请选择${column.label}`"
@change="selectchange($event, column)"
@clear="selectclear($event, column)"
>
<el-option
v-for="item in column.checkarr"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-date-picker
v-model="column.values"
v-if="column.type == 4"
type="date"
clearable
style="width: auto"
:placeholder="`请选择${column.label}`"
@change="timechange($event, column)"
@clear="timeclear($event, column)"
/>
<el-date-picker
v-model="column.values"
v-if="column.type == 5"
type="datetime"
clearable
style="width: auto"
:placeholder="`请选择${column.label}`"
format="YYYY/MM/DD HH:mm:ss"
@change="timechange($event, column)"
@clear="timeclear($event, column)"
/>
</template>
<template #default="scope">
<el-text
class="mx-2 tabculconte"
v-if="Number(column.type) < 6 && Number(column.type) > 0"
>{{ scope.row[column.prop] }}</el-text
>
<el-switch
@change="makeCargo(scope.row, column)"
v-if="column.type == 11"
v-model="scope.row[column.prop]"
/>
<el-text
style=""
class="mx-2 tabculconte colors"
v-if="column.type == 9"
@click="godowns(scope.row[column.downprop])"
>{{ scope.row[column.prop] }}</el-text
>
<el-input
@blur="handleNumberRange(column, scope.row)"
v-if="column.type == 10"
v-model="scope.row[column.prop]"
type="number"
:min="0"
:max="scope.row.residueNumber"
></el-input>
<div class="slotbuts" v-if="column.type == 6">
<slot v-if="column.type == 6" :scope="scope"> </slot>
</div>
<el-image
preview-teleported
v-if="column.type == 7"
style="width: 60px; height: 60px; margin-left: 10px"
:initial-index="index"
:z-index="100"
v-for="(item, index) in scope.row[column.prop].split(',')"
:src="item"
:preview-src-list="scope.row[column.prop].split(',')"
/>
</template>
</el-table-column>
<template #header>
<div style="display: inline-block">
<div class="tilbox">
<el-text class="mx-1 tabtitles" @click.stop @dblclick.stop="copyalls(column)">{{
column.label
}}</el-text>
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script lang="ts" setup>
import { computed, ref, watchEffect, getCurrentInstance, onMounted, defineExpose } from 'vue';
import type { PropType } from 'vue';
const { proxy } = getCurrentInstance() as any;
const selecttable = ref(null);
/**
* 对应通知事件
* inputTxt:输入框输入的确认事件
* timeCheck:时间选择器选择事件
* selectCheck:下拉框选中事件
* selection:勾选框事件
*/
onMounted(() => {
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 {
// windowHight=(document.body.clientHeight>document.documentElement.clientHeight)?document.body.clientHeight:document.documentElement.clientHeight;
}
// return windowHight;
return document.documentElement.clientHeight;
}
var bodyContent = document.querySelectorAll('.maboxhi');
const _height = getWinHight();
console.log('bodyContent :>> ', bodyContent);
//
bodyContent.forEach(val => {
val.style.height = _height - val.getBoundingClientRect().top - 65 + 'px';
});
});
interface TableColumnType {
/** 表格列的key */
prop: string;
/** 表格列的名字 */
label: string;
/**
* 对应列表头的类型
* 0:直接显示为单选proplabel全部传空
* 1:普通表格正常显示
* 2:带输入框表格
* 3:带下拉框表格
* 4:带日期选择器列
* 5:带日期时间选择器
* 6:操作栏proplabel全部传空
* 7:图片
* 8:带背景的文字
* 9:下载附件
* 10.输入框的表格内容
* 11.开关类型
*/
type: number | string;
/** 用于接受表头的值 */
values: number | string;
/** 表头宽度 number string undefined */
width: number | string | undefined;
/** 下拉框可选项 */
checkarr?: {
value: string | number;
label: string | number;
}[];
/**
* true false
* left right
*/
fixed: boolean | string;
/**
* true false 或者直接不写该参数
*/
isshowSummary?: boolean;
/**
* true false 或者直接不写该参数
*/
sortable?: boolean;
/**
* true false 或者直接不写该参数
*/
head?: boolean;
/**
* 默认超出隐藏
* true是不隐藏
* false 隐藏
*/
isextrahide?: boolean;
/** urlkey
*/
downprop?: string;
/**
*/
lessThanNum?: string;
}
interface TableDataType {
[key: string]: any;
}
let props = defineProps({
columnList: {
type: Array as PropType<TableColumnType[]>,
required: true,
},
tableData: {
type: Array as PropType<TableDataType[]>,
required: true,
},
loading: {
type: Boolean as PropType<boolean>,
required: true,
},
//
checkselect: {
type: Array as PropType<TableDataType[]>,
required: false,
},
//
isselectfun: {
type: Function as PropType<(row: TableDataType) => boolean>,
required: false,
default: null,
},
});
let selectarr = ref([]);
const tableRowClassName = ({ row, rowIndex }: { row: TableDataType; rowIndex: number }) => {
let sfcheck = false;
selectarr.value.map(item => {
if (item == row) {
sfcheck = true;
}
});
if (sfcheck) {
return 'table-SelectedRow-bgcolor';
}
return '';
};
let emit = defineEmits(['inputTxt', 'timeCheck', 'selectCheck', 'selection', 'makeCargo']);
let newcolumnList = ref<TableColumnType[]>([]);
watchEffect(() => {
newcolumnList.value = [];
props.columnList.map(item => {
if (!item.head) {
newcolumnList.value.push(item);
}
});
});
onMounted(() => {
if (props.checkselect) {
props.checkselect.map(item => {
if (props.isselectfun) {
if (props.isselectfun(item)) {
selecttable.value.toggleRowSelection(item, true);
}
} else {
selecttable.value.toggleRowSelection(item, true);
}
});
}
});
function godowns(url) {
let a = document.createElement('a'); //a
a.href = url; //myurl
// a.target = '_blank';
a.download = 'xixi.zip'; //
document.body.appendChild(a); //DOM
a.click();
window.URL.revokeObjectURL(url); // url
document.body.removeChild(a);
}
let shownm = ref(false);
function copyalls(column: TableColumnType) {
const _isReturn = column.type == 1 || column.type == 2 || column.type == 3;
if (!_isReturn) return;
let text = '';
props.tableData.map((item, index) => {
if (index < props.tableData.length - 1) {
if (item[column.prop]) {
text += `${item[column.prop]}\n`;
}
} else {
if (item[column.prop]) {
text += `${item[column.prop]}`;
} else {
}
}
});
copyContent(text);
}
function handleNumberRange(column: TableColumnType, row: TableDataType) {
row[column.prop] = row[column.prop].replace(/[^\.\d]/g, ''); //
if (row[column.prop]) {
//
row[column.prop] = parseInt(row[column.prop]); //
}
// if (column.lessThanNum) {
// if (row[column.prop] > row[column.lessThanNum]) {
// row[column.prop] = row[column.lessThanNum];
// proxy.$message({
// type: 'error',
// message: '',
// });
// }
// }
//
if (row.residueNumber) {
if (row.enterNum > row.residueNumber) {
proxy.$message({
type: 'error',
message: '数量不能大于可上架总数,已调整为最大数量!',
});
row.enterNum = row.residueNumber;
}
}
//
if (row.num) {
if (row.enterNum > row.num) {
proxy.$message({
type: 'error',
message: '数量不能大于可下架总数,已调整为最大数量!',
});
row.enterNum = row.num;
}
}
console.log(row, 'row');
}
function handleEdit(index: number, row: TableDataType) {
console.log(index, row);
}
function makeCargo(value, column: TableColumnType) {
emit('makeCargo', value, column);
}
function inputchange(value, column: TableColumnType) {
if (typeof value == 'string') {
console.log(value, column);
emit('inputTxt', value, column);
}
}
function selectchange(value, column: TableColumnType) {
console.log(value, column);
emit('selectCheck', value, column);
}
function timechange(value, column: TableColumnType) {
console.log(value, column);
emit('timeCheck', value, column);
}
const handleSelectionChange = (param: TableDataType[]) => {
// console.log(param)
selectarr.value = param;
emit('selection', param);
};
function inputclear(value, column: TableColumnType) {
console.log('', column);
emit('inputTxt', '', column);
}
function selectclear(value, column: TableColumnType) {
console.log('', column);
emit('selectCheck', '', column);
}
function timeclear(value, column: TableColumnType) {
console.log('', column);
emit('timeCheck', '', column);
}
function handleDelete(index: number, row: TableDataType) {
console.log(index, row);
}
const getSummaries = (param: any) => {
const { columns, data } = param;
let newarr = [];
let tji = 0;
console.log(columns, data);
columns.map((item, index) => {
if (index == 0) {
newarr[index] = '总计';
return;
}
tji = 0;
if (props.columnList[index]?.isshowSummary) {
data.map(ite => {
tji += Number(ite[props.columnList[index]?.prop] || 0);
});
newarr[index] = tji;
// shownm.value=true
} else {
newarr[index] = null;
}
});
// console.log(columns)
console.log(newarr);
return newarr;
};
watchEffect(() => {
props.columnList.map(item => {
if (item.isshowSummary) {
shownm.value = true;
}
});
});
//
function copyContent(content: string) {
//
let copyResult = true;
//
const text = content || '让我们一起快乐的敲代码吧~';
// clipboard
if (!!window.navigator.clipboard) {
// clipboardpromise
window.navigator.clipboard
.writeText(text)
.then(res => {
proxy.$message({
type: 'success',
message: '复制成功',
});
//
return copyResult;
})
.catch(err => {
copyResult = false;
console.log('复制失败', err);
proxy.$message({
type: 'error',
message: '复制失败',
});
//
return copyResult;
});
} else {
// clipboard document.execCommand()
// input
let inputDom = document.createElement('textarea');
//
inputDom.setAttribute('readonly', 'readonly');
// input
inputDom.value = text;
// inputbody
document.body.appendChild(inputDom);
// input
inputDom.select();
//
// input
// Input
const result = document.execCommand('copy');
//
if (result) {
proxy.$message({
type: 'success',
message: '复制成功',
});
} else {
console.log('复制失败');
proxy.$message({
type: 'error',
message: '复制失败',
});
copyResult = false;
}
//
document.body.removeChild(inputDom);
//
return copyResult;
}
}
defineExpose({});
</script>
<style lang="scss" scope>
// :root{
// --el-checkbox-checked-bg-color:'#D3832A';
// --el-checkbox-checked-input-border-color:'#D3832A';
// }
.el-table {
//
--el-table-row-hover-bg-color: #d3832a;
}
// .el-table .warning-row {
// --el-table-tr-bg-color: var(--el-color-warning-light-9);
// }
// .el-table .success-row {
// --el-table-tr-bg-color: var(--el-color-success-light-9);
// }
.maboxhi {
width: 100%;
// min-height: 950px;
// height: 841px;
// flex:1;
// min-height: 100%;
}
.on {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
font-size: 12px !important;
}
.selectbr {
border: none !important;
font-size: 12px !important;
}
.tabtitles {
color: #092c4d !important;
font-size: 12px !important;
margin-right: 5px !important;
}
.el-table .ascending .sort-caret.ascending {
border-bottom-color: #d3832a !important;
font-size: 12px !important;
}
.el-table .descending .sort-caret.descending {
border-top-color: #d3832a !important;
font-size: 12px !important;
}
.tabculconte {
color: #333333 !important;
font-size: 12px !important;
}
.slotbuts {
height: 25px;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px !important;
}
.slotbuts .el-text {
color: #d3832a !important;
margin-right: 10px !important;
cursor: pointer;
font-size: 12px !important;
&:nth-last-child(1) {
margin-right: 0px !important;
}
}
.el-popper.is-pure.is-light.el-dropdown__popper .el-text {
color: #d3832a !important;
margin-right: 10px !important;
cursor: pointer;
font-size: 12px !important;
&:nth-last-child(1) {
margin-right: 0px !important;
}
}
.el-table .el-input__inner {
height: 23px !important;
}
// .el-checkbox__input.is-checked .el-checkbox__inner{
// background-color: #D3832A !important;
// border-color: #D3832A !important;
// }
// .is .el-checkbox__input.is-checked .el-checkbox__inner{
// background-color: #D3832A !important;
// border-color: #D3832A !important;
// }
// .is-checked .el-checkbox__inner:hover{
// border-color: #D3832A !important;
// }
// .el-checkbox__input.is-indeterminate .el-checkbox__inner{
// background-color: #D3832A !important;
// border-color: #D3832A !important;
// }
.el-table .el-table__cell {
padding: 0px !important;
}
.el-checkbox__input.is-checked .el-checkbox__inner,
.el-checkbox__input.is-indeterminate .el-checkbox__inner {
border-color: #d3832a !important;
background-color: #d3832a !important;
}
.el-checkbox__input.is-focus .el-checkbox__inner {
border-color: #d3832a !important;
}
//
.el-checkbox__input.is-checked + .el-checkbox__label {
color: #d3832a !important;
}
.el-checkbox__inner:hover {
border-color: #d3832a !important;
font-size: 12px !important;
}
.table-SelectedRow-bgcolor {
> td {
background-color: #f7e8d7 !important;
}
}
.colors {
color: #409eff !important;
cursor: pointer !important;
}
.el-table .cell {
line-height: 22px !important;
}
.el-table .el-input__inner {
font-size: 12px !important;
}
.el-table__body tr.hover-row.current-row > td,
.el-table__body tr.hover-row.el-table__row--striped.current-row > td,
.el-table__body tr.hover-row.el-table__row--striped > td,
.el-table__body tr.hover-row > td {
background-color: #d3d8e1 !important;
}
.el-date-editor.el-input,
.el-date-editor.el-input__wrapper {
height: 23px !important;
}
.copys {
display: inline-block;
margin-left: 5px;
padding-top: 5px;
margin-right: 5px;
}
.tilbox {
display: flex;
align-items: center;
}
.el-table .el-popper {
max-width: 20% !important;
}
.el-input {
// width: 200px !important;
}
</style>

11
src/components/tablecmt/tablecmt.vue

@ -39,7 +39,7 @@
<template #header>
<!-- <el-text class="mx-1">{{ column.label }}</el-text> -->
<el-input
v-if="column.type == 2"
v-if="column.type == 2 || column.type == 13"
v-model="column.values"
clearable
:placeholder="`请输入${column.label}`"
@ -121,8 +121,8 @@
:min="0"
:max="scope.row.residueNumber"
></el-input>
<div class="slotbuts" v-if="column.type == 6">
<slot v-if="column.type == 6" :scope="scope"> </slot>
<div class="slotbuts" v-if="column.type == 6 || column.type == 13">
<slot v-if="column.type == 6 || column.type == 13" :scope="scope"> </slot>
</div>
<el-image
preview-teleported
@ -204,7 +204,10 @@ onMounted(() => {
console.log('bodyContent :>> ', bodyContent);
//
bodyContent.forEach(val => {
console.log('_height :>> ', _height);
console.log('val.getBoundingClientRect().top :>> ', val);
val.style.height = _height - val.getBoundingClientRect().top - 65 + 'px';
// if (val.style.height === '890px') val.style.height = '600px';
});
});
interface TableColumnType {
@ -226,6 +229,8 @@ interface TableColumnType {
* 9:下载附件
* 10.输入框的表格内容
* 11.开关类型
* 12.序号
* 13.带搜索的自定义列表
*/
type: number | string;
/** 用于接受表头的值 */

42
src/option/aftersales/aftersalesWorkOrder.js

@ -89,18 +89,12 @@ export default {
hide: true,
},
{
label: "工单异常类型;货损,少货,窜货,加急,其他",
label: "异常类型 ",
prop: "workOrderType",
search: true,
},
{
label: "发起工单标识;PDA,PC",
prop: "initiationIdentification",
display: false,
hide: true,
},
{
label: "发现节点;提货,发货,干线,库内,配送,其他,签收(PC),安装(PC)",
label: "发现节点 ",
prop: "discoveryNode",
search: true,
},
@ -119,7 +113,7 @@ export default {
search: true,
},
{
label: "车次号 (干线卸车环节)",
label: "车次号",
prop: "trainNumber",
},
{
@ -131,7 +125,7 @@ export default {
prop: "secondary",
},
{
label: "车辆路线;车次号、通过车次号自动带出车辆线路",
label: "车辆路线 ",
prop: "vehicleRoute",
},
{
@ -139,11 +133,11 @@ export default {
prop: "deliverGoodsTime",
},
{
label: "发现时间 (库内作业环节,配送装车环节)",
label: "发现时间",
prop: "discoveryTime",
},
{
label: "入库时间(库内作业环节)",
label: "入库时间",
prop: "warehousingTime",
},
{
@ -155,29 +149,21 @@ export default {
prop: "remarks",
},
{
label: "配送时间(配送装车环节)",
label: "配送时间",
prop: "deliveryTime",
},
{
label: "配送司机(配送装车环节)",
label: "配送司机",
prop: "deliveryDriver",
},
{
label: "工单状态",
prop: "workOrderStatus",
},
{
label: "归属客服ID",
prop: "customerServiceId",
},
{
label: "归属客服名称",
prop: "customerServiceName",
},
{
label: "商场ID",
prop: "waybillMallId",
},
{
label: "完结时间",
prop: "overTime",
@ -186,10 +172,6 @@ export default {
label: "异常问题描述",
prop: "problemDescription",
},
{
label: "仓库ID",
prop: "warehouseId",
},
{
label: "责任人 (库内作业环节)",
prop: "personResponsible",
@ -209,12 +191,6 @@ export default {
{
label: "财务入账时间",
prop: "entryTime",
},
{
label: "操作人",
prop: "operator",
display: false,
hide: true,
},
}
]
}

412
src/option/distribution/arteryDistrilbutionBillLadingList.js

@ -1,3 +1,4 @@
/** 自提表格 */
export const columnList = [
{
prop: '',
@ -17,9 +18,9 @@ export const columnList = [
{
prop: 'pickupBatch',
label: '提货批次',
type: 2,
type: 13,
values: '',
width: '130',
width: '180',
checkarr: [],
fixed: true,
sortable: true,
@ -27,7 +28,7 @@ export const columnList = [
},
{
prop: 'serviceNumber',
label: '服务号',
label: '车牌',
type: 2,
values: '',
width: '130',
@ -37,7 +38,7 @@ export const columnList = [
},
{
prop: 'waybillNumber',
label: '运单号',
label: '司机名称',
type: 2,
values: '',
width: '130',
@ -47,7 +48,7 @@ export const columnList = [
},
{
prop: 'consigneeUnit',
label: '收货单位',
label: '司机电话',
type: 2,
values: '',
width: '130',
@ -57,7 +58,7 @@ export const columnList = [
},
{
prop: 'customerName',
label: '收货人',
label: '仓库名称',
type: 2,
values: '',
width: '130',
@ -67,28 +68,27 @@ export const columnList = [
},
{
prop: 'customerTelephone',
label: '联系电话',
type: 2,
label: '线路标题',
type: 1,
values: '',
width: '130',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'warehouse',
label: '仓库',
label: '线路节点数',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
head: true,
},
{
prop: 'warehouseEntryTime',
label: '入库时间',
label: '提货开始时间',
type: 4,
values: '',
width: '130',
@ -98,8 +98,8 @@ export const columnList = [
},
{
prop: 'collectFee',
label: '到付运费',
type: 1,
label: '提货完成时间',
type: 4,
values: '',
width: '130',
checkarr: [],
@ -108,8 +108,8 @@ export const columnList = [
},
{
prop: 'transport',
label: '搬运费',
type: 1,
label: '预计数量',
type: 2,
values: '',
width: '130',
checkarr: [],
@ -118,8 +118,8 @@ export const columnList = [
},
{
prop: 'storageFee',
label: '仓储费',
type: 1,
label: '状态',
type: 3,
values: '',
width: '130',
checkarr: [],
@ -128,8 +128,8 @@ export const columnList = [
},
{
prop: 'forklift',
label: '叉车费',
type: 1,
label: '计费模式',
type: 3,
values: '',
width: '130',
checkarr: [],
@ -138,28 +138,28 @@ export const columnList = [
},
{
prop: 'otherFee',
label: '其他增值费用',
type: 1,
label: '提货费用',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'pickUpTime',
label: '备注',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
// {
// prop: 'pickUpTime',
// label: '总费用',
// type: 1,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// },
{
prop: 'totalNumber',
label: '应提件数',
type: 1,
label: '承运商',
type: 2,
values: '',
width: '130',
checkarr: [],
@ -168,8 +168,8 @@ export const columnList = [
},
{
prop: 'stopNum',
label: '实提件数',
type: 1,
label: '数',
type: 2,
values: '',
width: '130',
checkarr: [],
@ -178,7 +178,7 @@ export const columnList = [
},
{
prop: 'brand',
label: '品牌',
label: '件数',
type: 2,
values: '',
width: '130',
@ -188,7 +188,7 @@ export const columnList = [
},
{
prop: 'productInformation',
label: '货品信息',
label: '重量',
type: 2,
values: '',
width: '130',
@ -198,7 +198,7 @@ export const columnList = [
},
{
prop: 'customerTelephone',
label: '提货手机',
label: '体积',
type: 2,
values: '',
width: '130',
@ -208,7 +208,7 @@ export const columnList = [
},
{
prop: 'consignee',
label: '提货人',
label: '创建人',
type: 2,
values: '',
width: '130',
@ -216,67 +216,349 @@ export const columnList = [
fixed: false,
sortable: false,
},
// {
// prop: '',
// label: '操作',
// type: 6,
// values: '',
// width: '200',
// checkarr: [],
// fixed: 'right',
// hide: true,
// },
// 更多列的配置...
];
/** 自提详情内表格 */
export const columnDetailList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'pickUpPlate',
prop: 'pickupBatch',
label: '提货批次',
type: 2,
values: '',
width: '180',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'serviceNumber',
label: '提货司机',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'waybillNumber',
label: '提货车牌',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: false,
sortable: true,
},
{
prop: 'deliveryDocument',
label: '提货证件',
prop: 'consigneeUnit',
label: '运单号',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: false,
sortable: true,
},
{
prop: 'certificateTypeName',
label: '证件类型',
type: 3,
prop: 'customerName',
label: '合同号',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: false,
sortable: true,
},
{
prop: 'conditionName',
label: '状态',
type: 1,
prop: 'customerTelephone',
label: '目的地',
type: 2,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'warehouse',
label: '入库类型',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: false,
sortable: true,
},
{
prop: 'totalCost',
label: '费用合计',
type: 1,
prop: 'warehouseEntryTime',
label: '是否齐套',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: false,
sortable: true,
},
{
prop: '',
label: '操作',
type: 6,
prop: 'collectFee',
label: '托盘码',
type: 2,
values: '',
width: '200',
width: '130',
checkarr: [],
fixed: 'right',
hide: true,
fixed: false,
sortable: true,
},
{
prop: 'transport',
label: '一级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'storageFee',
label: '二级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'forklift',
label: '三级品类',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'otherFee',
label: '物料名称',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'pickUpTime',
label: '品牌',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'totalNumber',
label: '操作仓库',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'stopNum',
label: '操作人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'brand',
label: '提货扫码时间',
type: 4,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
// 更多列的配置...
];
export default { columnList };
/** 新增提货选择运单列表 */
export const columnNewList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'pickupBatch',
label: '运单号',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
head: false,
},
{
prop: 'serviceNumber',
label: '网点',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: true,
sortable: true,
},
{
prop: 'waybillNumber',
label: '发货人',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'consigneeUnit',
label: '客户车次号',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'customerName',
label: '发货单位',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'customerTelephone',
label: '货物名称',
type: 2,
values: '',
width: '180',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'warehouse',
label: '件数',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'warehouseEntryTime',
label: '重量',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'collectFee',
label: '体积',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'transport',
label: '运费',
type: 2,
values: '',
width: '130',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true,
},
{
prop: 'storageFee',
label: '运单备注',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
{
prop: 'forklift',
label: '开单时间',
type: 4,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
},
];

4
src/page/index/index.vue

@ -15,9 +15,9 @@
<!-- 主体视图层 -->
<div id="avue-view" v-show="!isSearch" v-if="isRefresh">
<router-view #="{ Component }">
<!-- <keep-alive :include="$store.getters.tagsKeep"> -->
<keep-alive :include="$store.getters.tagsKeep">
<component :is="Component" />
<!-- </keep-alive> -->
</keep-alive>
</router-view>
</div>
</div>

4
src/page/index/layout.vue

@ -1,7 +1,7 @@
<template>
<router-view #="{ Component }">
<!-- <keep-alive :include="$store.getters.tagsKeep"> -->
<keep-alive :include="$store.getters.tagsKeep">
<component :is="Component" />
<!-- </keep-alive> -->
</keep-alive>
</router-view>
</template>

5
src/router/avue-router.js

@ -58,7 +58,6 @@ RouterPlugin.install = function (option = {}) {
if (option.keepAlive) {
meta.keepAlive = option.keepAlive;
}
const isChild = !!(children && children.length !== 0);
const oRouter = {
path: path,
@ -132,7 +131,7 @@ export const formatPath = (ele, first) => {
const propsDefault = website.menu;
const icon = ele[propsDefault.icon];
ele[propsDefault.icon] = !icon ? propsDefault.iconDefault : icon;
ele.meta = { keepAlive: ele.isOpen === 2 };
ele.meta = { keepAlive: ele.isOpen == 2 };
const iframeComponent = 'components/iframe/main';
const iframeSrc = href => {
return href.replace(/&/g, '#');
@ -149,7 +148,7 @@ export const formatPath = (ele, first) => {
ele[propsDefault.children] &&
ele[propsDefault.children].forEach(child => {
child.component = 'views' + child[propsDefault.path];
child.meta = { keepAlive: child.isOpen === 2 };
child.meta = { keepAlive: child.isOpen == 2 };
if (isURL(child[propsDefault.href])) {
let href = child[propsDefault.href];
child[propsDefault.path] = ele[propsDefault.path] + '/' + child.code;

1
src/router/index.js

@ -14,6 +14,7 @@ AvueRouter.install({
store: Store,
router: Router,
i18n: i18n,
keepAlive: true
});
Router.$avueRouter.formatRoutes(Store.getters.menuAll, true);

27
src/router/views/index.js

@ -688,6 +688,7 @@ export default [
name: '配送查看',
meta: {
i18n: 'dict',
keepAlive:true
},
props: route => ({
name: route.query.name,
@ -1051,20 +1052,20 @@ export default [
},
],
},
// 下面的代码为 商场客户端的页面
// 下面的代码为 商场客户端的页面
{
path: '/mail/order/add',
component: Layout,
redirect: '/mail/order/add',
children: [
{
path: '/mail/order/add',
name: '新建商场预约单',
component: () => import('@/views/mail/order/add.vue'),
},
],
},
{
path: '/mail/order/add',
component: Layout,
redirect: '/mail/order/add',
children: [
{
path: '/mail/order/add',
name: '新建商场预约单',
component: () => import('@/views/mail/order/add.vue'),
},
],
},
{
path: '/distribution/checkInventoryTask/createTaskTemp',

5
src/store/getters.js

@ -15,15 +15,12 @@ const getters = {
lockPasswd: state => state.common.lockPasswd,
tagList: state => state.tags.tagList,
tagsKeep: (state, getters) => {
console.log(getters.tagList,'-----')
return getters.tagList
.filter(ele => {
return (ele.meta || {}).keepAlive;
})
.map(ele => {
console.log('ele :>> ', ele);
const path = ele.path;
const reg = new RegExp(path, 'g');
console.log('reg', reg);
return ele.fullPath;
});
},

66
src/views/aftersales/aftersalesWorkOrder.vue

@ -4,10 +4,10 @@
<el-row :hidden="!search" style="padding:6px 18px">
<!-- 查询模块 -->
<el-form :inline="true" :model="query">
<el-form-item label="工单异常类型;货损,少货,窜货,加急,其他:">
<el-form-item label="工单异常类型:">
<el-input v-model="query.workOrderType" placeholder="请输入工单异常类型;货损,少货,窜货,加急,其他"></el-input>
</el-form-item>
<el-form-item label="发现节点;提货,发货,干线,库内,配送,其他,签收(PC),安装(PC):">
<el-form-item label="发现节点:">
<el-input v-model="query.discoveryNode" placeholder="请输入发现节点;提货,发货,干线,库内,配送,其他,签收(PC),安装(PC)"></el-input>
</el-form-item>
<el-form-item label="异常工单号:">
@ -27,8 +27,10 @@
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button v-if="this.permissionList.addBtn" type="primary" icon="el-icon-plus" @click="handleAdd"> </el-button>
<el-button v-if="this.permissionList.delBtn" type="danger" icon="el-icon-delete" @click="handleDelete" plain> </el-button>
<!-- <el-button v-if="this.permissionList.addBtn" type="primary" icon="el-icon-plus" @click="handleAdd"> </el-button>-->
<!-- <el-button v-if="this.permissionList.delBtn" type="danger" icon="el-icon-delete" @click="handleDelete" plain> </el-button>-->
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"> </el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleDelete" plain> </el-button>
</div>
<!-- 头部右侧按钮模块 -->
<div class="avue-crud__right">
@ -89,9 +91,9 @@
width="50%"
:before-close="beforeClose"
append-to-body>
<el-form :disabled="view" ref="form" :model="form" label-width="80px">
<el-form :disabled="view" ref="form" :model="form" label-width="120px">
<!-- 表单字段 -->
<el-form-item label="工单异常类型;货损,少货,窜货,加急,其他" prop="workOrderType">
<el-form-item label="工单异常类型 " prop="workOrderType">
<el-select v-model="form.workOrderType" clearable placeholder="请选择工单异常类型;货损,少货,窜货,加急,其他">
<el-option
v-for="item in workOrderTypeData"
@ -101,7 +103,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="发现节点;提货,发货,干线,库内,配送,其他,签收(PC),安装(PC)" prop="discoveryNode">
<el-form-item label="发现节点 " prop="discoveryNode">
<el-select v-model="form.discoveryNode" clearable placeholder="请选择发现节点;提货,发货,干线,库内,配送,其他,签收(PC),安装(PC)">
<el-option
v-for="item in discoveryNodeData"
@ -120,7 +122,7 @@
<el-form-item label="订单自编号" prop="orderCode">
<el-input v-model="form.orderCode" placeholder="请输入订单自编号"/>
</el-form-item>
<el-form-item label="车次号 (干线卸车环节)" prop="trainNumber">
<el-form-item label="车次号 " prop="trainNumber">
<el-input v-model="form.trainNumber" placeholder="请输入车次号 (干线卸车环节)"/>
</el-form-item>
<el-form-item label="一级品类" prop="first">
@ -129,16 +131,16 @@
<el-form-item label="二级品类" prop="secondary">
<el-input v-model="form.secondary" placeholder="请输入二级品类"/>
</el-form-item>
<el-form-item label="车辆路线;车次号、通过车次号自动带出车辆线路" prop="vehicleRoute">
<el-form-item label="车辆路线 " prop="vehicleRoute">
<el-input v-model="form.vehicleRoute" placeholder="请输入车辆路线;车次号、通过车次号自动带出车辆线路"/>
</el-form-item>
<el-form-item label="送货时间" prop="deliverGoodsTime">
<el-input v-model="form.deliverGoodsTime" placeholder="请输入送货时间"/>
</el-form-item>
<el-form-item label="发现时间 (库内作业环节,配送装车环节)" prop="discoveryTime">
<el-form-item label="发现时间 " prop="discoveryTime">
<el-input v-model="form.discoveryTime" placeholder="请输入发现时间 (库内作业环节,配送装车环节)"/>
</el-form-item>
<el-form-item label="入库时间(库内作业环节)" prop="warehousingTime">
<el-form-item label="入库时间 " prop="warehousingTime">
<el-input v-model="form.warehousingTime" placeholder="请输入入库时间(库内作业环节)"/>
</el-form-item>
<el-form-item label="运单商场" prop="waybillMall">
@ -147,34 +149,27 @@
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" placeholder="请输入备注"/>
</el-form-item>
<el-form-item label="配送时间(配送装车环节)" prop="deliveryTime">
<el-form-item label="配送时间 " prop="deliveryTime">
<el-input v-model="form.deliveryTime" placeholder="请输入配送时间(配送装车环节)"/>
</el-form-item>
<el-form-item label="配送司机(配送装车环节)" prop="deliveryDriver">
<el-form-item label="配送司机 " prop="deliveryDriver">
<el-input v-model="form.deliveryDriver" placeholder="请输入配送司机(配送装车环节)"/>
</el-form-item>
<el-form-item label="工单状态" prop="workOrderStatus">
<el-input v-model="form.workOrderStatus" placeholder="请输入工单状态"/>
</el-form-item>
<el-form-item label="归属客服ID" prop="customerServiceId">
<el-input v-model="form.customerServiceId" placeholder="请输入归属客服ID"/>
</el-form-item>
<el-form-item label="归属客服名称" prop="customerServiceName">
<el-input v-model="form.customerServiceName" placeholder="请输入归属客服名称"/>
</el-form-item>
<el-form-item label="商场ID" prop="waybillMallId">
<el-input v-model="form.waybillMallId" placeholder="请输入商场ID"/>
</el-form-item>
<el-form-item label="完结时间" prop="overTime">
<el-input v-model="form.overTime" placeholder="请输入完结时间"/>
</el-form-item>
<el-form-item label="异常问题描述" prop="problemDescription">
<el-input v-model="form.problemDescription" placeholder="请输入异常问题描述"/>
</el-form-item>
<el-form-item label="仓库ID" prop="warehouseId">
<el-input v-model="form.warehouseId" placeholder="请输入仓库ID"/>
</el-form-item>
<el-form-item label="责任人 (库内作业环节)" prop="personResponsible">
<el-form-item label="责任人" prop="personResponsible">
<el-input v-model="form.personResponsible" placeholder="请输入责任人 (库内作业环节)"/>
</el-form-item>
<el-form-item label="钉钉流程号" prop="processNumber">
@ -206,6 +201,7 @@
import { getList, getDetail, add, update, remove } from "@/api/aftersales/aftersalesWorkOrder";
import option from "@/option/aftersales/aftersalesWorkOrder";
import { mapGetters } from "vuex";
import { getDictionaryBiz } from '@/api/system/dict';
export default {
data () {
@ -237,6 +233,8 @@ export default {
option: option,
//
data: [],
discoveryNode: [],
workOrder: [],
}
},
mounted() {
@ -264,6 +262,28 @@ export default {
methods: {
init() {
this.height = this.setPx(document.body.clientHeight - 340);
getDictionaryBiz('pc_work_order').then(res => { //
this.workOrder = res.data.data;
/*this.$functions.checkcColumnList('typeServerName', this.columnList).checkarr =
res.data.data.map(item => {
item.value = item.dictKey;
item.label = item.dictValue;
return item;
});*/
});
getDictionaryBiz('pc_discovery_node').then(res => { //
this.discoveryNode = res.data.data;
/*this.$functions.checkcColumnList('typeServerName', this.columnList).checkarr =
res.data.data.map(item => {
item.value = item.dictKey;
item.label = item.dictValue;
return item;
});*/
});
},
searchHide() {
this.search = !this.search;

188
src/views/distribution/deliverylist/distributionDeliveryListmar.vue

@ -33,34 +33,14 @@
</el-select>
</el-form-item>
<el-form-item label="配送司机:">
<el-select
v-model="query.driverName"
filterable
placeholder="请输入司机名称"
:loading="loading"
>
<el-option
v-for="item in driverData"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictValue"
>
<el-select v-model="query.driverName" filterable placeholder="请输入司机名称" :loading="loading">
<el-option v-for="item in driverData" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="配送车辆:">
<el-select
v-model="query.vehicleName"
filterable
placeholder="请输入司机名称"
:loading="loading"
>
<el-option
v-for="item in vehicleData"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictValue"
>
<el-select v-model="query.vehicleName" filterable placeholder="请输入司机名称" :loading="loading">
<el-option v-for="item in vehicleData" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
@ -104,12 +84,9 @@
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left" style="margin-top: 20px">
<el-button type="primary" icon="el-icon-plus" @click="printBatchOrder"
>批量打印</el-button
>
<el-button type="primary" icon="el-icon-plus" @click="printBatchOrder">批量打印</el-button>
<!-- <el-button type="danger" icon="el-icon-delete" @click="handleDelete" plain> </el-button>-->
<el-button type="danger" icon="el-icon-download" @click="handleExportInfo" plain
>导出
<el-button type="danger" icon="el-icon-download" @click="handleExportInfo" plain>导出
</el-button>
</div>
<!-- 头部右侧按钮模块 -->
@ -122,29 +99,15 @@
</el-row>
<el-row>
<!-- 列表模块 -->
<tablecmt
:columnList="columnList"
:tableData="data"
:loading="loading"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionsc"
>
<tablecmt :columnList="columnList" :tableData="data" :loading="loading" @inputTxt="inputsc" @timeCheck="timesc"
@btnCheck="btnsc" @selectCheck="selectsc" @selection="selectionsc">
<template #default="slotProps">
<el-text size="small" @click="printOrder(slotProps.scope.row)"> </el-text>
<el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>
<el-text size="small" @click="editmap(slotProps.scope)"> </el-text>
<el-text
size="small"
v-if="
slotProps.scope.row.deliveryStatusName !== '已完成' ||
slotProps.scope.row.deliveryStatus !== '3'
"
@click="handleEdit(slotProps.scope)"
> </el-text
>
<el-text size="small" v-if="slotProps.scope.row.deliveryStatusName !== '已完成' ||
slotProps.scope.row.deliveryStatus !== '3'
" @click="handleEdit(slotProps.scope)"> </el-text>
<!-- <el-button size="small" @click="costadd(slotProps.scope)"> </el-button>-->
</template>
@ -182,17 +145,9 @@
<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 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>
@ -219,80 +174,34 @@
</el-dialog>
</div>
<el-dialog
v-model="dialogVisible"
title="增值服务"
width="30%"
:model="addvalue"
:before-close="handleClose"
>
<el-dialog v-model="dialogVisible" title="增值服务" width="30%" :model="addvalue" :before-close="handleClose">
<el-form-item label="增值服务" prop="freightMark">
<el-checkbox-group v-model="form.addvalueType" @change="handleCheckedCitiesChange">
<el-checkbox
style="width: 100%; margin-bottom: 3%"
v-for="(item, index) in addvalueServeTypeData"
:key="item.dictKey"
:label="item.dictKey"
>{{ item.dictValue }}
<span v-if="index === 0 || index === 6 || index === 2 || index === 4"
>&nbsp;件数:
<el-input
type="number"
v-model="item.f"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 1)"
style="width: 20%; border: none; border-bottom: 2px solid #eee"
/>
<el-checkbox style="width: 100%; margin-bottom: 3%" v-for="(item, index) in addvalueServeTypeData"
:key="item.dictKey" :label="item.dictKey">{{ item.dictValue }}
<span v-if="index === 0 || index === 6 || index === 2 || index === 4">&nbsp;件数:
<el-input type="number" v-model="item.f" :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 1)" style="width: 20%; border: none; border-bottom: 2px solid #eee" />
</span>
<span v-if="index === 1"
>公里:
<el-input
type="primary"
v-model="item.a"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 2)"
style="width: 20%; border: none; border-bottom: 2px solid #eee"
/>
<span v-if="index === 1">公里:
<el-input type="primary" v-model="item.a" :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 2)" style="width: 20%; border: none; border-bottom: 2px solid #eee" />
</span>
<span v-if="index === 3"
>距离:
<el-input
type="number"
v-model="item.b"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 3)"
style="width: 20%; border: none; border-bottom: 2px solid #eee"
/>
<span v-if="index === 3">距离:
<el-input type="number" v-model="item.b" :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 3)" style="width: 20%; border: none; border-bottom: 2px solid #eee" />
</span>
<span v-if="index === 5"
>人数:
<el-input
type="number"
v-model="item.c"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 4)"
style="width: 20%; border: none; border-bottom: 2px solid #eee"
/>
<span v-if="index === 5">人数:
<el-input type="number" v-model="item.c" :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 4)" style="width: 20%; border: none; border-bottom: 2px solid #eee" />
</span>
<span v-if="index === 0"
>楼层:
<el-input
type="number"
v-model="item.d"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 5)"
style="width: 20%; border: none; border-bottom: 2px solid #eee"
/>
<span v-if="index === 0">楼层:
<el-input type="number" v-model="item.d" :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 5)" style="width: 20%; border: none; border-bottom: 2px solid #eee" />
</span>
<span v-if="item"
>预计费用:
<el-input
type="number"
v-model="item.e"
:disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 6)"
style="width: 20%; border: none; border-bottom: 2px solid #eee"
/>
<span v-if="item">预计费用:
<el-input type="number" v-model="item.e" :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
@change="textbox($event, index, 6)" style="width: 20%; border: none; border-bottom: 2px solid #eee" />
</span>
</el-checkbox>
</el-checkbox-group>
@ -305,12 +214,8 @@
</template>
</el-dialog>
</basic-container>
<edittablehead
@setcolum="setnewcolum"
@closce="showdrawer"
:drawerShow="drawerShow"
:columnList="columnList"
></edittablehead>
<edittablehead @setcolum="setnewcolum" @closce="showdrawer" :drawerShow="drawerShow" :columnList="columnList">
</edittablehead>
</template>
<script>
@ -732,6 +637,7 @@ export default {
return new Promise((rv, rev) => {
getVehicleList(1, 10, '').then(res => {
const data = res.data.data;
if (!data.records) return
let po = [];
data.records.forEach(item => {
let a = {
@ -877,7 +783,7 @@ export default {
.then(_ => {
done();
})
.catch(_ => {});
.catch(_ => { });
},
editsolt(scope) {
const { row } = scope;
@ -1205,6 +1111,7 @@ export default {
width: fit-content;
}
}
.order-info {
ul {
list-style: none;
@ -1218,10 +1125,12 @@ export default {
display: flex;
align-items: center;
font-weight: 500;
img {
margin-right: 4px;
}
}
li::after {
content: '';
display: block;
@ -1233,55 +1142,68 @@ export default {
left: 0px;
}
}
li:first-child::after {
content: none;
}
li:first-child {
padding-left: 0;
}
}
.avue-crud__header {
// align-items: flex-end !important;
}
//
.el-times {
:deep(.el-tooltip__trigger) {
height: 30px !important;
}
}
.el-btn {
min-width: 200px;
margin-right: 0 !important;
:deep(.el-form-item__content) {
width: 180px;
justify-content: flex-end;
}
}
.avue-crud__right {
display: flex;
align-items: center;
}
.fr-fo {
display: flex;
}
:deep(.avue-crud__header) {
.avue-crud__left {
margin-top: 0 !important;
}
}
:deep(.avue-crud) {
display: flex;
height: 100%;
flex-direction: column;
}
:deep(.el-card__body) {
height: 100%;
}
:deep(.el-card) {
height: 100%;
display: flex;
flex-direction: column;
}
.el-fy {
flex: 1;
display: flex;

1019
src/views/distribution/inventory/arteryDistrilbutionBillLadingList.vue

File diff suppressed because it is too large Load Diff

6
vite.config.js

@ -18,9 +18,13 @@ export default ({ mode, command }) => {
// lmy
// target: 'http://192.168.10.123:8889',
// target: 'http://192.168.10.101:8888',
target: 'http://192.168.10.75:8777',
// target: 'http://192.168.10.75:8777',
// tjj
<<<<<<< HEAD
// target: 'http://192.168.10.25:13000',
=======
target: 'http://192.168.10.25:13000',
>>>>>>> 1fe2aeedc042f5201a0822d0f3debfa60899e91a
// sst
// target: 'http://192.168.10.94:8888',
// target: 'http://test.api.huitongys.com',

Loading…
Cancel
Save