Browse Source

新增零担装车

dev
qb 4 days ago
parent
commit
286c9bd70b
  1. 23
      src/api/distribution/VehicleStowageZeroLoading.js
  2. 94
      src/option/distribution/VehicleStowageZeroLoading.js
  3. 17
      src/router/views/index.js
  4. 23
      src/views/distribution/artery/TripartiteTransfer.vue
  5. 31
      src/views/distribution/artery/VehicleArrivalManagement.vue
  6. 24
      src/views/distribution/artery/VehicleStowage.vue
  7. 783
      src/views/distribution/artery/VehicleStowageZeroLoading.vue
  8. 10
      src/views/distribution/artery/truckLoadingDetails.vue

23
src/api/distribution/VehicleStowageZeroLoading.js

@ -0,0 +1,23 @@
import request from '@/axios';
/**
* 获取需要装车的零担数据
*/
export const postFindZeroList = (data = {}) => {
return request({
url: '/api/logpm-trunkline/carsLoad/findZeroList',
method: 'post',
data,
});
};
/**
* 零担装车
*/
export const postLoadingZero = (data = {}) => {
return request({
url: '/api/logpm-trunkline/api/carsLoad/loadingZero',
method: 'post',
data,
});
};

94
src/option/distribution/VehicleStowageZeroLoading.js

@ -0,0 +1,94 @@
/** 三方中转列表 */
export const columnList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'waybillNo',
label: '运单号',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'orderCode',
label: '订单号',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'planNum',
label: '计划数',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'loadingNum',
label: '装车数',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'unloadingNum',
label: '卸车数',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'goodsName',
label: '品类',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'createUserName',
label: '操作',
type: 6,
values: '',
width: '300',
checkarr: [],
fixed: 'right',
sortable: false,
},
];

17
src/router/views/index.js

@ -213,6 +213,17 @@ export default [
/* webpackChunkName: "views" */ '@/views/distribution/artery/truckLoadingDetails.vue'
),
},
{
path: 'VehicleStowageZeroLoading',
name: '零担装车',
meta: {
i18n: 'data',
},
component: () =>
import(
/* webpackChunkName: "views" */ '@/views/distribution/artery/VehicleStowageZeroLoading.vue'
),
},
{
path: 'addTripartiteTransfer',
name: '新增中转',
@ -1684,12 +1695,11 @@ export default [
},
],
},
// 拆单详情
// 拆单详情
{
path: '/distribution/inventory/delivery/SeparateTheListInfo',
component: Layout,
children: [
{
meta: {
i18n: 'dict',
@ -1768,7 +1778,4 @@ export default [
},
],
},
];

23
src/views/distribution/artery/TripartiteTransfer.vue

@ -230,6 +230,13 @@
>
装车明细
</el-text>
<el-text
v-if="Number(slotProps.scope.row.loadStatus) === 0"
@click="handleZeroLoading(slotProps.scope)"
>
零担装车
</el-text>
</template>
</template>
</tablecmt>
@ -500,6 +507,7 @@ import {
handleClearTableQuery,
getObjType,
handleSelectQuery,
ChecksWhetherTheWarehouseIsSelected,
} from '@/utils/util';
import { columnList, detailsColumnList } from '@/option/distribution/TripartiteTransfer';
import {
@ -949,6 +957,21 @@ const handleShowTruckLoadingDetails = ({ row }) => {
name: row.carsNo + '--' + '装车明细',
type: 'TripartiteTransfer',
deliveryType: row.deliveryType,
loadStatus: row.loadStatus,
},
});
};
/** 零担装车 */
const handleZeroLoading = ({ row }) => {
if (!ChecksWhetherTheWarehouseIsSelected())
return ElMessage.warning('多仓权限无法操作,请选择仓库');
$router.push({
path: '/distribution/artery/VehicleStowageZeroLoading',
query: {
loadId: row.id,
name: `${row.carsNo} - 零担装车`,
},
});
};

31
src/views/distribution/artery/VehicleArrivalManagement.vue

@ -300,11 +300,8 @@
</el-text>
</el-dropdown-item>
<el-dropdown-item>
<el-text
v-if="slotProps.scope.row.isCustomer + '' === '1'"
@click="handleDirectGoMarketDetails(slotProps.scope)"
>
<el-dropdown-item v-if="slotProps.scope.row.isCustomer + '' === '1'">
<el-text @click="handleDirectGoMarketDetails(slotProps.scope)">
签收详情
</el-text>
</el-dropdown-item>
@ -320,6 +317,16 @@
>
<el-text @click="handleManualLoading(slotProps.scope)"> 手动装车 </el-text>
</el-dropdown-item>
<!-- 零担装车 -->
<el-dropdown-item
v-if="
Mydata.id === slotProps.scope.row.nowWarehouseId &&
Number(slotProps.scope.row.loadStatus) === 20
"
>
<el-text @click="handleZeroLoading(slotProps.scope)"> 零担装车 </el-text>
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
@ -1431,6 +1438,20 @@ const handleManualLoading = ({ row }) => {
});
};
/** 零担装车 */
const handleZeroLoading = ({ row }) => {
if (!ChecksWhetherTheWarehouseIsSelected())
return ElMessage.warning('多仓权限无法操作,请选择仓库');
$router.push({
path: '/distribution/artery/VehicleStowageZeroLoading',
query: {
loadId: row.id,
name: `${row.carsNo} - 零担装车`,
},
});
};
/** 显示卸车报告 */
const handleShowUnloadReport = async () => {
if (details.selectionList.length === 0) return ElMessage.warning('请选择装载清单');

24
src/views/distribution/artery/VehicleStowage.vue

@ -321,6 +321,16 @@
>
<el-text @click="handleManualLoading(slotProps.scope)"> 手动装车 </el-text>
</el-dropdown-item>
<!-- 零担装车 -->
<el-dropdown-item
v-if="
Mydata.id === slotProps.scope.row.nowWarehouseId &&
Number(slotProps.scope.row.loadStatus) === 0
"
>
<el-text @click="handleZeroLoading(slotProps.scope)"> 零担装车 </el-text>
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
@ -1395,6 +1405,20 @@ const handleManualLoading = ({ row }) => {
});
};
/** 零担装车 */
const handleZeroLoading = ({ row }) => {
if (!ChecksWhetherTheWarehouseIsSelected())
return ElMessage.warning('多仓权限无法操作,请选择仓库');
$router.push({
path: '/distribution/artery/VehicleStowageZeroLoading',
query: {
loadId: row.id,
name: `${row.carsNo} - 零担装车`,
},
});
};
/** 显示装载清单 */
const handleShowListOfLoadedWagons = async () => {
try {

783
src/views/distribution/artery/VehicleStowageZeroLoading.vue

@ -0,0 +1,783 @@
<template>
<basic-container>
<div class="avue-crud" v-loading="details.loadingObj.pageLoading">
<!-- 搜索模块 -->
<div v-h5uShow="!search">
<!-- 查询模块 -->
<el-form :inline="true" :model="query" class="header_search">
<!-- 查询按钮 -->
<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>
</div>
<!-- 控件模块 -->
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left"></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="el-icon-search" @click="searchHide" circle></el-button>
</div>
</div>
<!-- 列表模块 -->
<tablecmt
ref="tableNodeRef"
:columnList="details.columnList"
:tableData="data"
:loading="loadingObj.list"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps">
<!-- 装卸状态 -->
<template v-if="slotProps.scope.column.label === '装卸状态'">
<el-tag
:class="{
sub: Number(slotProps.scope.row.scanStatus) === 1,
err: Number(slotProps.scope.row.scanStatus) === 2,
primary: Number(slotProps.scope.row.scanStatus) === 3,
}"
>
{{ slotProps.scope.row.scanStatusName }}
</el-tag>
</template>
<!-- 操作 -->
<template v-else-if="slotProps.scope.column.label === '操作'">
<el-text @click="() => handleZeroLoad(slotProps.scope, 'load')"> 零担装车 </el-text>
<el-text @click="() => handleZeroLoad(slotProps.scope, 'view')"> 零担详情 </el-text>
<!-- 零担二维码 -->
<el-text @click="() => printOrderByZero(slotProps.scope)">零担二维码</el-text>
</template>
</template>
</tablecmt>
</div>
</basic-container>
<!-- 零担卸车 -->
<el-dialog
:title="details.zeroItem.type === 'load' ? '零担卸车' : '零担详情'"
v-model="details.popUpShow.transferVisited"
width="40%"
append-to-body
class="truckLoadingDetailPopUp"
>
<div class="editZeroCategoryTitleRowByLine">订单信息</div>
<div class="editZeroCategoryTitleRow mt10">
<div class="title">
<span>运单号</span>
<span>{{ details.zeroItem.waybillNo }}</span>
</div>
<div class="title">
<span>订单号</span>
<span>{{ details.zeroItem.orderCode }}</span>
</div>
<div class="title">
<span>计划数</span>
<span>{{ details.zeroItem.planNum }}</span>
</div>
<div class="title">
<span>装车数</span>
<span>{{ details.zeroItem.loadingNum }}</span>
</div>
</div>
<!-- 品类详情 -->
<div class="editZeroCategoryTitleRowByLine mt10">品类详情</div>
<!-- 列表 -->
<div class="editZeroCategoryList">
<!-- 子项 -->
<div
class="editZeroCategoryList_item"
v-for="item in details.zeroItem.zeroPackageList"
:key="item.packageId"
>
<!-- 标题行 -->
<div class="editZeroCategoryTitleRow">
<div class="title">
<span>品类名</span>
<span>{{ item.goodsName }}</span>
</div>
<div class="title">
<span>在库数</span>
<span>{{ item.stockNum }}</span>
</div>
<div class="title">
<span>装车数</span>
<span>{{ item.loadingNum }}</span>
</div>
</div>
<template v-if="details.zeroItem.type === 'load'">
<el-input-number
class="inputNum mt10 w100"
v-model="item.enterNum"
controls-position="right"
:precision="0"
:min="0"
:max="item.maxNum"
:step="1"
:value-on-clear="0"
:controls="false"
/>
</template>
</div>
</div>
<!-- <el-form-item label="零担卸车数量" label-width="100px">
<el-input-number
style="width: 100%"
:precision="0"
:max="details.zeroItem.num"
:min="0"
:controls="false"
v-model="details.zeroItem.enterNum"
/>
</el-form-item> -->
<!-- 表单按钮 -->
<div class="flex-c-c" v-if="details.zeroItem.type === 'load'">
<el-button icon="Close" @click="details.popUpShow.transferVisited = false"> </el-button>
<el-button type="primary" icon="Position" @click="handleZeroUnLoadSubmit"> </el-button>
</div>
</el-dialog>
<!-- 打印二维码 -->
<MyPrint
:html="details.html"
v-model="details.popUpShow.QRCodeVisible"
width="780px"
type="titlePrint"
:isShowExport="false"
/>
<!-- 列表配置显示 -->
<edittablehead
@closce="showdrawer"
:drawerShow="drawerShow"
:columnList="details.columnList"
v-model="details.columnList"
></edittablehead>
</template>
<script setup lang="ts">
import { ref, reactive, toRefs, computed, onMounted, nextTick, watch } from 'vue';
import dayjs from 'dayjs';
import { mapGetters, useStore } from 'vuex';
import { ElMessage, ElMessageBox } from 'element-plus';
import { getMyCurrentWarehouse } from '@/api/work/work';
import {
postTransferUnloadZero,
postShowOrderCodeByCode,
postFindZeroDetailByCarsLoadScanId,
postUnloadZero,
} from '@/api/distribution/truckLoadingDetails';
import { postFindZeroList, postLoadingZero } from '@/api/distribution/VehicleStowageZeroLoading';
import { getShowAdvancePackgeCode } from '@/api/waybill/orderPackageListDetails';
/** 获取字典 */
import { getDictionaryBiz } from '@/api/system/dict';
import {
downloadXls,
getHtmls,
debounce,
setNodeHeight,
deepClone,
handleClearTableQuery,
getObjType,
ChecksWhetherTheWarehouseIsSelected,
} from '@/utils/util';
import { columnList } from '@/option/distribution/VehicleStowageZeroLoading';
import { useRouter, useRoute } from 'vue-router';
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];
},
},
],
/** 装车明细表头信息 */
columnList: deepClone(columnList),
/** 列表数据 */
data: [],
/** 页面loading */
loadingObj: {
/** 列表加载loading */
list: false,
/** 页面loading */
pageLoading: false,
/** 查看二维码 */
QRCodeVisible: false,
},
/** 列表复选框选中的数据 */
selectionList: [],
/** 是否显示设置表格 */
drawerShow: false,
/** 分页参数 */
page: {
pageNum: 1,
pageSize: 30,
total: 0,
},
/** 弹出层显示 */
popUpShow: {
/** 零担补录 */
transferVisited: false,
},
form: {},
/** 页面数据 */
pageInfo: {
/** 配送ID */
loadId: '',
/**
* TripartiteTransfer -- 三方中转
* VehicleStowage -- 车辆配载
* */
type: '',
},
/** 被选中的零担数据 */
zeroItem: {},
/** 个人仓库信息 */
myWarehouseData: {},
/** 打印的二维码 */
html: '',
});
const {
search,
query,
shortcuts,
data,
loadingObj,
selectionList,
drawerShow,
page,
trickleLoadingPage,
} = toRefs(details);
//
const $router = useRouter();
const $route = useRoute();
// vuex
const $store = useStore();
/** vuex */
const permission = computed(() => mapGetters(['permission', 'tagWel', 'tagList']));
/** 权限按钮 */
const permissionObj = reactive({
// VehicleStowage -- ; VehicleArrivalManagement -- ; TripartiteTransfer --
/** 计划仓更改 */
truckLoadingDetails_changePlanWarehouse: computed(() => {
let _flag = false;
switch (details.pageInfo.type) {
case 'VehicleStowage':
_flag = $store.getters.permission.truckLoadingDetails_VehicleStowage_changePlanWarehouse;
break;
default:
break;
}
return _flag;
}),
/** 中转批量签收 */
truckLoadingDetails_batchSign: computed(() => {
let _flag = false;
switch (details.pageInfo.type) {
case 'TripartiteTransfer':
_flag = $store.getters.permission.truckLoadingDetails_TripartiteTransfer_BatchSigin;
break;
default:
break;
}
return _flag;
}),
/** 批量卸车 */
truckLoadingDetails_batchUnload: computed(() => {
let _flag = false;
switch (details.pageInfo.type) {
case 'VehicleArrivalManagement':
_flag = $store.getters.permission.truckLoadingDetails_VehicleArrivalManagement_batchUnload;
break;
case 'TripartiteTransfer':
_flag = $store.getters.permission.truckLoadingDetails_TripartiteTransfer_batchUnload;
break;
default:
break;
}
return _flag;
}),
/** 删除 */
truckLoadingDetails_delete: computed(() => {
let _flag = false;
switch (details.pageInfo.type) {
case 'VehicleStowage':
_flag = $store.getters.permission.truckLoadingDetails_VehicleStowage_delete;
break;
case 'VehicleArrivalManagement':
_flag = $store.getters.permission.truckLoadingDetails_VehicleArrivalManagement_delete;
break;
case 'TripartiteTransfer':
_flag = $store.getters.permission.truckLoadingDetails_TripartiteTransfer_delete;
break;
default:
break;
}
return _flag;
}),
/** 零担卸车 */
truckLoadingDetails_zeroUnload: computed(() => {
let _flag = false;
switch (details.pageInfo.type) {
case 'VehicleStowage':
_flag = $store.getters.permission.truckLoadingDetails_VehicleStowage_zeroUnload;
break;
case 'VehicleArrivalManagement':
_flag = $store.getters.permission.truckLoadingDetails_VehicleArrivalManagement_zeroUnload;
break;
case 'TripartiteTransfer':
_flag = $store.getters.permission.truckLoadingDetails_TripartiteTransfer_zeroUnload;
break;
default:
break;
}
return _flag;
}),
/** 包件卸车 */
truckLoadingDetails_packageUnload: computed(() => {
let _flag = false;
switch (details.pageInfo.type) {
case 'VehicleStowage':
_flag = $store.getters.permission.truckLoadingDetails_VehicleStowage_packageUnload;
break;
case 'VehicleArrivalManagement':
_flag =
$store.getters.permission.truckLoadingDetails_VehicleArrivalManagement_packageUnload;
break;
case 'TripartiteTransfer':
_flag = $store.getters.permission.truckLoadingDetails_TripartiteTransfer_packageUnload;
break;
default:
break;
}
return _flag;
}),
});
//
const tableNodeRef = ref();
/** 初始化表格表头 */
const initTableSelect = () => {
for (const iterator of details.columnList) {
console.log('iterator :>> ', iterator);
iterator.checkarr = details[iterator.prop.replace('Name', '') + 'Option'] || [];
}
};
initTableSelect();
getMyCurrentWarehouse({}).then(res => {
console.log('res :>> ', res);
const { code, data } = res.data;
if (code !== 200) return;
details.myWarehouseData = data;
});
/** 请求页面数据 */
const onLoad = debounce(async (params = {}) => {
try {
// loading
details.loadingObj.list = true;
details.query.loadId = details.pageInfo.loadId;
const submitData = { ...details.query, ...params };
//
const res = await postFindZeroList(submitData);
const { code, data } = res.data;
if (code !== 200) return;
details.data = data;
for (let i = 0; i < details.data.length; i++) {
const value = details.data[i];
value.goodsName = value.zeroPackageList.map(val => val.goodsName).join(',');
}
} catch (error) {
console.log('error :>> ', error);
} finally {
details.loadingObj.list = false;
}
}, 10);
/** 搜索 */
const searchChange = () => {
onLoad();
};
/** 清空表单 */
const searchReset = () => {
details.query = {};
details.page.pageNum = 1;
handleClearTableQuery(details.columnList);
onLoad();
};
/** 展开列表控件 */
const showdrawer = (_flag?: boolean) => {
details.drawerShow = _flag;
};
/** 是否开启搜索区 */
const searchHide = () => {
details.search = !details.search;
setNodeHeight(tableNodeRef.value.$el, '', true);
};
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
if (!index && index !== 0) delete details.query[row.prop];
onLoad();
};
/** 表格表头时间选择 */
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();
};
/** 表格表头输入框搜索 */
const btnsc = () => {};
/** 表格表头下拉框选择 */
const selectsc = (index, row) => {
const _key = row.prop.replace('Name', '');
details.query[_key] = index;
if (!index && index !== 0) delete details.query[_key];
onLoad();
};
/** 表格表头复选框选择 */
const selectionChange = (list: any) => {
details.selectionList = list;
};
/** 每页数量改变执行的回调 */
const sizeChange = (pageSize: number) => {
details.page.pageSize = pageSize;
onLoad();
};
/** 页码改变执行的回调 */
const currentChange = pageNum => {
details.page.pageNum = pageNum;
onLoad();
};
/** 装车 -- 零担 */
const handleZeroLoad = async ({ row }, type) => {
if (!ChecksWhetherTheWarehouseIsSelected())
return ElMessage.warning('多仓权限无法操作,请选择仓库');
if (!details.myWarehouseData) {
const res = await getMyCurrentWarehouse();
details.myWarehouseData = res.data.data;
}
if (!details.myWarehouseData) return ElMessage.warning('请先选择一个仓库');
details.zeroItem = { ...row, type };
details.zeroItem.enterNum = !details.zeroItem.unloadNum ? row.num : details.zeroItem.unloadNum;
details.zeroItem.zeroPackageList = row.zeroPackageList || [];
for (let i = 0; i < details.zeroItem.zeroPackageList.length; i++) {
const item = details.zeroItem.zeroPackageList[i];
item.enterNum = item.loadingNum || item.stockNum || 0;
item.maxNum = (item.loadingNum || 0) + (item.stockNum || 0);
console.log('item :>> ', item);
}
details.popUpShow.transferVisited = true;
};
/** 卸车 -- 零担 -- 提交 */
const handleZeroUnLoadSubmit = async () => {
try {
details.popUpShow.transferVisited = false;
details.loadingObj.pageLoading = true;
// let res: any = {};
const submitData = {
loadId: details.pageInfo.loadId,
waybillNo: details.zeroItem.waybillNo,
orderCode: details.zeroItem.orderCode,
enterNum: 0,
zeroPackageList: details.zeroItem.zeroPackageList,
};
let _loadingNum = 0;
for (let i = 0; i < submitData.zeroPackageList.length; i++) {
const val = submitData.zeroPackageList[i];
val.enterNum = val.enterNum || 0;
_loadingNum += val.enterNum;
}
submitData.enterNum = _loadingNum;
if (submitData.enterNum === 0) return ElMessage.warning('装车总数为零,请填写需要装车的数据');
const res = await postLoadingZero(submitData);
const { code } = res.data;
if (code !== 200) return;
ElMessage.success('卸车成功');
onLoad();
} catch (error) {
console.log('error :>> ', error);
} finally {
details.loadingObj.pageLoading = false;
}
};
/** 查看零担零担码 */
const printOrderByZero = async ({ row }) => {
try {
details.loadingObj.pageLoading = true;
let ids = [
{
orderCode: row.orderCode,
fromWarehouseId: row.fromWarehouseId,
},
];
details.html = '';
const res = await postShowOrderCodeByCode(ids);
const { code, data } = res.data;
if (code !== 200 || getObjType(data.moldList) !== 'array') return;
for (let i = 0; i < data.moldList.length; i++) {
details.html += data.moldList[i];
}
details.popUpShow.QRCodeVisible = true;
} catch (error) {
console.log('error :>> ', error);
} finally {
details.loadingObj.pageLoading = false;
}
};
watch(
$route,
(newVal, oldVal) => {
if (newVal.path !== '/distribution/artery/VehicleStowageZeroLoading') return;
details.pageInfo.loadId = $route.query.loadId;
details.pageInfo.type = $route.query.type;
onLoad();
},
{
immediate: true,
}
);
</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;
}
:deep(.el-table tr) {
&.Abnormal {
.tabculconte,
.el-tooltip,
.el-button--text,
.el-text {
// color: #e54b4b !important;
color: #f00 !important;
}
}
}
:deep(.el-tag) {
&.err {
background-color: #f8544b;
border-color: #f8544b;
color: #fff;
}
&.primary {
background-color: green;
border-color: green;
color: #fff;
}
&.sub {
background-color: #d3832a;
border-color: #d3832a;
color: #fff;
}
}
// --
.editZeroCategoryTitleRow {
display: flex;
flex-wrap: wrap;
.title {
font-weight: bold;
margin-right: 10px;
}
}
// -- 线
.editZeroCategoryTitleRowByLine {
display: flex;
align-items: center;
font-size: 18px;
font-weight: bold;
color: var(--el-color-primary);
&::before {
content: '';
display: block;
height: 2px;
flex: 1;
background-color: var(--el-color-primary);
margin-right: 10px;
}
&::after {
content: '';
display: block;
height: 2px;
flex: 1;
background-color: var(--el-color-primary);
margin-left: 10px;
}
}
// --
.editZeroCategoryList {
padding: 10px;
.editZeroCategoryList_item {
padding: 20px;
border: 2px dashed var(--el-color-primary);
border-radius: 5px;
margin-top: 10px;
&:first-child {
margin-top: 0;
}
}
.inputNum {
:deep(.el-input__inner) {
text-align: left;
}
}
.w100 {
width: 100% !important;
}
}
</style>

10
src/views/distribution/artery/truckLoadingDetails.vue

@ -139,8 +139,14 @@
v-if="
permissionObj.truckLoadingDetails_zeroUnload &&
details.pageInfo.type !== 'VehicleStowage' &&
//
Number(slotProps.scope.row.unloadCheck) === 0 &&
Number(slotProps.scope.row.scanStatus) !== 3
//
Number(slotProps.scope.row.scanStatus) !== 3 &&
// ,
(Number($route.query.deliveryType) === 2
? Number($route.query.loadStatus) === 0
: true)
"
>
零担卸车
@ -1481,7 +1487,7 @@ const handleBatchSigin = async () => {
const value = details.selectionList[i];
if (Number($route.query.deliveryType) === 1 && Number(value.scanStatus) === 1) {
return ElMessage.warning('存在未卸车数据,请卸车后再签收')
return ElMessage.warning('存在未卸车数据,请卸车后再签收');
}
//

Loading…
Cancel
Save