qb 6 months ago
parent
commit
2ec6cad42b
  1. 9
      src/api/storagecost/index.js
  2. 37
      src/option/distribution/createTask.js
  3. 270
      src/option/storagecost/Warehousedaily.js
  4. 28
      src/views/basicdata/driverArtery/basicdataDriverArtery.vue
  5. 4
      src/views/basicdata/warehouse/warehouse/basicdataWarehouse.vue
  6. 444
      src/views/cost/storagecost/Warehousedaily.vue
  7. 6
      src/views/distribution/checkInventoryTask/createTask.vue
  8. 409
      src/views/distribution/deliverylist/distributionDeliveryListedt.vue
  9. 1
      src/views/distribution/signfor/distributionSignfortreat.vue

9
src/api/storagecost/index.js

@ -7,7 +7,14 @@ export const $_Getlist = params => {
params,
});
};
// 日度仓储成本统计表接口
export const $_GetexpenseWarehouseDay = params => {
return request({
url: '/api/logpm-statisticsdata/expenseWarehouseDay/page',
method: 'get',
params,
});
};
// 获取仓库
export const $_getMyWarehouseList = params => {
return request({

37
src/option/distribution/createTask.js

@ -25,6 +25,17 @@ export const columnList = [
sortable: true,
head: false,
},
{
prop: 'taskName',
label: '盘点名称',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'warehouseName',
label: '仓库名称',
@ -91,18 +102,18 @@ export const columnList = [
sortable: true,
head: false,
},
{
prop: 'stockNum',
label: '数量',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
isshowSummary: true, // 是否显示合计
head: false,
},
// {
// prop: 'stockNum',
// label: '数量',
// type: 1,
// values: '',
// width: '150',
// checkarr: [],
// fixed: false,
// sortable: true,
// isshowSummary: true, // 是否显示合计
// head: false,
// },
{
prop: 'syncDataStatusNameS',
label: '同步状态',
@ -165,7 +176,7 @@ export const columnList = [
label: '操作',
type: 6,
values: '',
width: '170',
width: '200',
checkarr: [],
fixed: 'right',
sortable: false,

270
src/option/storagecost/Warehousedaily.js

@ -0,0 +1,270 @@
export const columnList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'warehouseName',
label: '目的仓',
type: 2,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'costSettlementTime',
label: '成本结算时间',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'totalArea',
label: '仓库总面积(㎡)',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'monthlyRent',
label: '仓库日租金',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'totalQuantityIssued',
label: '出库总件数',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'customerLeasedArea',
label: '客户租用面积(㎡)',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'customerMonthlyRent',
label: '客户日租金',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'rentedItemsDispatchedQuantity',
label: '租用出库件数',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'customerRentedItemCostPerUnit',
label: '客户租用单件成本',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'customerTotalLeasingCost',
label: '客户租用总成本',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'temporaryTurnoverArea',
label: '临时周转面积',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'temporaryTurnoverQuantity',
label: '临时周转件数',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'temporaryTurnoverCostPerItem',
label: '临时周转单件成本',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'totalTemporaryTurnoverCost',
label: '临时周转总成本',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'drWareDisArea',
label: '干仓配仓储面积(㎡)',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'drWareDisNumber',
label: '干仓配件数',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'drWareDisCostPerUnit',
label: '干仓配单件成本',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'drWareDisTotalCost',
label: '干仓配仓储总成本',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'totalCostOfConsignmentStorage',
label: '代入库总成本',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'totalCostOfConsignmentWithdrawal',
label: '代出库总成本',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'totalCostOfAgencyOperations',
label: '代作业总成本',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'totalWarehouseCost',
label: '仓储总成本',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
// {
// prop: '',
// label: '操作',
// type: 6,
// values: '',
// width: '200',
// checkarr: [],
// fixed: 'right',
// sortable: false,
// },
];

28
src/views/basicdata/driverArtery/basicdataDriverArtery.vue

@ -3,13 +3,14 @@
<div class="avue-crud">
<div v-h5uShow="search">
<!-- 查询模块 -->
<el-form :inline="true" label-width="100px" :model="query" class="header_search">
<el-form-item label="姓名:">
<el-input v-model="query.orderCodeNum" placeholder="姓名" clearable></el-input>
<el-form :inline="true" :model="query" class="header_search">
<div class="header_search_left">
<el-form-item label="姓名:">
<el-input v-model="query.orderCodeNum" placeholder="请输入姓名" clearable></el-input>
</el-form-item>
<el-form-item label="手机号码:">
<el-input v-model="query.waybillNum" placeholder="请输入手机号码" clearable />
<el-input-number v-model="query.waybillNum" :min="0" placeholder="请输入手机号码" :controls="false"/>
</el-form-item>
<!-- <el-form-item label="司机类型:">
@ -24,10 +25,14 @@
<el-input v-model="query.waybillNum" placeholder="请输入承运商" clearable />
</el-form-item> -->
<!-- 查询按钮 -->
<el-form-item>
</div>
<div class="header_search_right">
<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>
</div>
</el-form>
</div>
@ -664,6 +669,17 @@ export default {
:deep(.header_search .el-date-editor.el-input__wrapper) {
height: 100% !important;
}
.header_search{
display: flex;
flex-wrap: wrap;
.header_search_left{
display: flex;
flex: 1;
}
.header_search_right{
width: auto;
}
}
//
:deep(.el-divider__text.is-left) {

4
src/views/basicdata/warehouse/warehouse/basicdataWarehouse.vue

@ -34,7 +34,7 @@
<template #default="slotProps">
<template v-if="slotProps.scope.column.label === '操作'">
<div class="ElBtnClass">
<el-text @click="Expandconfiguration(slotProps.scope.row)">扩展配置</el-text>
<el-text v-if=" userInfo == 'admin'" @click="Expandconfiguration(slotProps.scope.row)">扩展配置</el-text>
<el-text @click="view(slotProps.scope)">查看</el-text>
<el-text @click="edit(slotProps.scope)">编辑</el-text>
<el-text @click="DeleteInformation(slotProps.scope)">删除</el-text>
@ -494,6 +494,8 @@ import { compressImageBlob } from '@/components/IMGcompressor/imgcompressor.js';
const dataRwo = ref({}); //
const props = { multiple: true };
const options = ref([]); //
const userInfo=ref({})
userInfo.value = JSON.parse(localStorage.getItem('TWMS-userInfo')).content.user_name;//
const Compulsoryoptions = [
{
value: 1,

444
src/views/cost/storagecost/Warehousedaily.vue

@ -0,0 +1,444 @@
<template>
<basic-container>
<!-- 首页表格 -->
<div class="avue-crud">
<!-- 搜索模块 -->
<el-row v-if="search">
<!-- 查询模块 -->
<el-form :inline="true" :model="queryTop" class="el-fr-d">
<!-- 查询按钮 -->
<div>
<el-form-item label="目的仓">
<el-select
v-model="queryTop.warehouse"
multiple
placeholder="请选择仓库"
style="min-width: 340px"
>
<el-option
v-for="item in warehouseList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="结算年份">
<el-date-picker
v-model="queryTop.costSettlementYear"
type="year"
placeholder="请选择年份"
value-format="YYYY"
/>
</el-form-item>
<el-form-item label="结算月">
<el-select v-model="queryTop.costSettlementMonth" placeholder="请选择月份">
<el-option
v-for="item in monthList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</div>
<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" @click="exportExcel"
><el-icon><Plus /></el-icon></el-button
> -->
</div>
<!-- 头部右侧按钮模块 -->
<div class="avue-crud__right">
<el-button icon="el-icon-refresh" @click="searchChangeS" 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
class="tableNode"
: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 === '操作'">
<div class="ElBtnClass">
<el-button @click="view(slotProps.scope)">查看</el-button>
</div>
</template>
</template>
</tablecmt>
</el-row>
<!-- 分页模块 -->
<el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div></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>
<!-- 列表配置显示 -->
<edittablehead
@closce="showdrawer"
:drawerShow="drawerShow"
:columnList="details.columnList"
v-model="details.columnList"
></edittablehead>
</template>
<script setup>
import { ref, reactive, toRefs, computed, onMounted, nextTick, watch } from 'vue';
import { columnList } from '@/option/storagecost/Warehousedaily.js';
import {
$_GetexpenseWarehouseDay,
$_getMyWarehouseList,
$_expenseWarehouseMonth,
} from '@/api/storagecost/index.js';
import { getDictionaryBiz } from '@/api/system/dict'; //
import { processRowProperty, setNodeHeight } from '@/utils/util';
import functions from '@/utils/functions.js';
import { ElMessageBox, ElMessage } from 'element-plus';
import { downloadXls } from '@/utils/util';
import { useStore } from 'vuex';
import dayjs from 'dayjs';
const $router = useRouter(); //
const $useStore = useStore(); //
const $route = useRoute(); //
const warehouseList = ref([]); //
const monthList = ref([]); //
const queryTop = ref({}); //
const details = reactive({
/** 是否开启搜索 */
search: false,
/** 表格搜索条件 */
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,
/** 列表数据 */
data: [],
/** 页面loading */
loadingObj: {
/** 列表加载loading */
list: false,
packageListLoading: false,
},
/** 列表复选框选中的数据 */
selectionList: [],
/** 是否显示设置表格 */
drawerShow: false,
/** 分页参数 */
page: {
currentPage: 1,
pageSize: 50,
total: 0,
},
/** 弹出层显示 */
popUpShow: {
/** 包件明细 */
packageOrderListlVisited: false,
/** 二维码 */
QRCodeVisible: false,
/** 修改客户信息 */
editClientInfoVisible: false,
},
/** 列表Dom节点 */
listNode: '',
form: {},
/** 全屏 */
fullscreenObj: {
/** 包明细 */
packageOrderListlVisited: false,
},
});
const {
search,
query,
shortcuts,
data,
loadingObj,
selectionList,
drawerShow,
page,
trickleLoadingPage,
zeroAdditionalRecordingInfo,
popUpShow,
recorddata,
} = toRefs(details);
/** 展开列表控件 */
const showdrawer = _flag => {
details.drawerShow = _flag;
};
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
processRowProperty(index, row, details);
console.log(details.query, '合并后的参数');
onLoad();
};
//
const test = val => {};
/** 表格表头时间选择 */
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];
}
};
/** 表格表头输入框搜索 */
const btnsc = val => {
console.log(val);
};
/** 表格表头下拉框选择 */
const selectsc = (index, row) => {
processRowProperty(index, row, details);
};
/** 表格表头复选框选择 */
const selectionChange = list => {
console.log(list);
details.selectionList = list;
};
//
const searchChange = () => {
if (queryTop.value.warehouse?.length) {
queryTop.value.warehouseName = queryTop.value.warehouse.join(',');
} else {
delete queryTop.value.warehouseName;
delete details.query.warehouseName;
}
if (queryTop.value.costSettlementMonth) {
if (!queryTop.value.costSettlementYear) {
ElMessage({
message: '请选择年份',
type: 'warning',
});
return;
}
}
details.query = { ...details.query, ...queryTop.value };
delete details.query.warehouse; //
onLoad();
};
//
const searchReset = () => {
details.query = {};
queryTop.value = {};
details.columnList.forEach(item => {
item.values = '';
});
onLoad();
};
//
const sizeChange = val => {
details.page.pageSize = val;
onLoad();
};
/** 页码改变执行的回调 */
const currentChange = val => {
details.page.currentPage = val;
onLoad();
};
//
const searchChangeS = () => {
onLoad(); //
};
//
const searchHide = () => {
console.log(details);
details.search = !details.search;
const _node = document.querySelector('.tableNode');
setNodeHeight(_node, '', true);
};
//
function updateDictionary(targetArray, dictionaryType) {
getDictionaryBiz(dictionaryType).then(res => {
console.log(res, '字典');
res.data.data.forEach(item => {
targetArray.push({
value: item.dictKey,
label: item.dictValue,
});
});
});
}
//
const MyWarehouseList = () => {
$_getMyWarehouseList().then(res => {
console.log(res, '仓库列表');
res.data.data.forEach(item => {
warehouseList.value.push({
value: item.name,
label: item.name,
});
});
});
};
//
const onLoad = value => {
let data = {
current: details.page.currentPage,
size: details.page.pageSize,
...details.query,
...value,
};
$_GetexpenseWarehouseDay(data).then(res => {
if (res.data.code == 200) {
details.data = res.data.data.records || [];
details.page.total = res.data.data.total; //
}
});
};
const monthFn = () => {
for (let i = 0; i < 12; i++) {
monthList.value.push({
value: i + 1,
label: i + 1 + '月',
});
}
};
const PageOnload = () => {
onLoad(); //
MyWarehouseList(); //
monthFn(); //
};
//
PageOnload();
//
const exportExcel = () => {
ElMessageBox.confirm('是否导出数据?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
console.log(details.query, '搜索参数');
details.loadingObj.list = true;
let data = {
...details.query,
};
console.log(data, '要提交的数据');
$_expenseWarehouseMonth(data).then(res => {
details.loadingObj.list = false;
downloadXls(res.data, `月度仓储成本统计.xlsx`);
ElMessage({
message: '导出成功',
type: 'success',
});
});
})
.catch(() => {});
};
</script>
<style scoped lang="scss">
.ElBtnClass button {
border: none;
padding: 0;
background-color: transparent;
}
:deep(.el-card) {
height: 100%;
}
:deep(.el-card__body) {
height: 100%;
display: flex;
flex-direction: column;
}
.el-fy {
flex: 1;
display: flex;
align-items: flex-end;
margin-bottom: 10px;
}
.avue-crud {
height: 100%;
display: flex;
flex-direction: column;
}
.el-fr-d {
width: 100%;
display: flex;
justify-content: space-between;
.el-btn {
margin-right: 0;
}
}
</style>

6
src/views/distribution/checkInventoryTask/createTask.vue

@ -120,6 +120,9 @@
v-loading="formInventoryloading"
element-loading-text="正在处理中,此任务可能较耗时请耐心等待..."
>
<el-form-item label="盘点名称">
<el-input v-model="formInventory.taskName" placeholder="请输入盘点名称" />
</el-form-item>
<el-form-item label="商场名称">
<el-select
multiple
@ -925,6 +928,7 @@ const InventorySubmit = async () => {
const {
scname,
time: [startTime, endTime],
taskName,
} = formInventory.value;
//
const matchedInfo = (scname && matchInfoById(scname, shoppingmall.value)) || [];
@ -936,7 +940,7 @@ const InventorySubmit = async () => {
}))
: [];
//
const data = { startTime, endTime, list };
const data = { startTime, endTime, list,taskName};
console.log('数据:', data);
formInventoryloading.value = true;
postAddtaskQuest(data)

409
src/views/distribution/deliverylist/distributionDeliveryListedt.vue

@ -103,175 +103,169 @@
</el-row>
<el-divider>订单列表</el-divider>
<div v-loading="checkloading" element-loading-text="正在复核签收处理中...">
<div class="flex-c-sb">
<el-tabs class="flex1" v-model="activeTab" @tab-click="handleTabClick">
<el-tab-pane label="客 户 列 表" name="tab1"> </el-tab-pane>
<div class="flex-c-sb">
<el-tabs
class="flex1"
v-model="activeTab"
@tab-click="handleTabClick"
v-loading="checkloading"
element-loading-text="正在复核签收处理中..."
>
<el-tab-pane label="客 户 列 表" name="tab1"> </el-tab-pane>
<el-tab-pane label="订 单 列 表" name="tab2"> </el-tab-pane>
<el-tab-pane label="订 单 列 表" name="tab2"> </el-tab-pane>
<el-tab-pane label="包 件 列 表" name="tab3"> </el-tab-pane>
<el-tab-pane label="包 件 列 表" name="tab3"> </el-tab-pane>
<el-tab-pane label="库 存 品 列 表" name="tab4"> </el-tab-pane>
</el-tabs>
<el-tab-pane label="库 存 品 列 表" name="tab4"> </el-tab-pane>
</el-tabs>
<el-button style="margin-left: 20px" type="primary" icon="Position" @click="handleExport">
导出
</el-button>
</div>
<!-- 客户列表 -->
<template v-if="activeTab === 'tab1'">
<tablecmt
class="tableNode"
:columnList="columnList"
:tableData="data"
:loading="loading"
@inputTxt="inputscClient"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps">
<el-text
type="primary"
text
icon="el-icon-view"
@click="handleView(slotProps.scope.row)"
>查看
</el-text>
<el-text
v-if="Number(deliverydata.type) === 2"
type="primary"
text
icon="el-icon-view"
@click="handlePrint(slotProps.scope.row)"
>打印
</el-text>
<el-button style="margin-left: 20px" type="primary" icon="Position" @click="handleExport">
导出
</el-button>
</div>
<!-- 客户列表 -->
<template v-if="activeTab === 'tab1'">
<tablecmt
class="tableNode"
:columnList="columnList"
:tableData="data"
:loading="loading"
@inputTxt="inputscClient"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps">
<el-text
type="primary"
text
icon="el-icon-view"
@click="handleView(slotProps.scope.row)"
>查看
</el-text>
<el-text
v-if="Number(deliverydata.type) === 2"
type="primary"
text
icon="el-icon-view"
@click="handlePrint(slotProps.scope.row)"
>打印
</el-text>
<el-text
type="primary"
text
icon="el-icon-view"
@click="viewAbnormalLoading(slotProps.scope.row)"
v-if="slotProps.scope.row.isHaveAbnormalPackage == '2'"
>异常审核
</el-text>
<el-text
type="primary"
text
icon="el-icon-view"
@click="viewAbnormalLoading(slotProps.scope.row)"
v-if="slotProps.scope.row.isHaveAbnormalPackage == '2'"
>异常审核
</el-text>
<el-text
type="primary"
text
icon="el-icon-view"
@click="handleCallDelivery('3', slotProps.scope.row)"
v-if="slotProps.scope.row.reservationSigningStatus === '待签收'"
>编辑
</el-text>
<el-text
type="primary"
text
icon="el-icon-view"
@click="pictureUpload('4', slotProps.scope.row)"
v-if="slotProps.scope.row.driverSigning === '未完成'"
>图片上传
</el-text>
<el-text
type="primary"
text
icon="el-icon-view"
@click="handleCallDelivery('3', slotProps.scope.row)"
v-if="slotProps.scope.row.reservationSigningStatus === '待签收'"
>编辑
</el-text>
<el-text
type="primary"
text
icon="el-icon-view"
@click="pictureUpload('4', slotProps.scope.row)"
v-if="slotProps.scope.row.driverSigning === '未完成'"
>图片上传
</el-text>
<el-text
type="primary"
text
icon="el-icon-view"
@click="handleSign(slotProps.scope.row)"
v-if="
slotProps.scope.row.signingStatus == '待审核' &&
slotProps.scope.row.driverSigning === '已完成'
"
>复核签收
</el-text>
</template>
</tablecmt>
</template>
<el-text
type="primary"
text
icon="el-icon-view"
@click="handleSign(slotProps.scope.row)"
v-if="
slotProps.scope.row.signingStatus == '待审核' &&
slotProps.scope.row.driverSigning === '已完成'
"
>复核签收
</el-text>
</template>
</tablecmt>
</template>
<!-- 订单列表 -->
<template v-if="activeTab === 'tab2'">
<!-- 列表模块 -->
<tablecmt
class="tableNode"
:columnList="ordoptioncolumn"
:tableData="orddata"
:loading="loading"
@inputTxt="inputscOrder"
>
<template #default="slotProps"> </template>
</tablecmt>
</template>
<!-- 订单列表 -->
<template v-if="activeTab === 'tab2'">
<!-- 列表模块 -->
<tablecmt
class="tableNode"
:columnList="ordoptioncolumn"
:tableData="orddata"
:loading="loading"
@inputTxt="inputscOrder"
>
<template #default="slotProps"> </template>
</tablecmt>
</template>
<!-- 包件列表 -->
<template v-if="activeTab === 'tab3'">
<!-- 列表模块 -->
<el-button type="warning" plain @click="ViewQRcodes">批量查看二维码 </el-button>
<tablecmt
class="tableNode"
:columnList="wrapoptioncolumn"
:tableData="packdata"
:loading="loading"
@inputTxt="inputscPackage"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps">
<el-text size="small" @click="handleQRCode(slotProps.scope.row)">查看二维码</el-text>
<el-text size="small" @click="ViewingTrajectories(slotProps.scope.row)"
>查看轨迹</el-text
>
</template>
</tablecmt>
<div class="avue-crud__pagination" style="width: 100%">
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="psizeChange"
@current-change="pcurrentChange"
:current-page="packpage.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="packpage.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="packpage.total"
<!-- 包件列表 -->
<template v-if="activeTab === 'tab3'">
<!-- 列表模块 -->
<el-button type="warning" plain @click="ViewQRcodes">批量查看二维码 </el-button>
<tablecmt
class="tableNode"
:columnList="wrapoptioncolumn"
:tableData="packdata"
:loading="loading"
@inputTxt="inputscPackage"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
</el-pagination>
</div>
</template>
<template #default="slotProps">
<el-text size="small" @click="handleQRCode(slotProps.scope.row)">查看二维码</el-text>
<el-text size="small" @click="ViewingTrajectories(slotProps.scope.row)"
>查看轨迹</el-text
>
</template>
</tablecmt>
<!-- 库存品列表 -->
<template v-if="activeTab === 'tab4'">
<!-- 列表模块 -->
<tablecmt
class="tableNode"
:columnList="inventoryoptioncolumn"
:tableData="inventorydata"
:loading="loading"
@inputTxt="inputscInventory"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps">
<el-text size="small" @click="handleInventoryQRCode(slotProps.scope.row)"
>查看二维码</el-text
<div class="avue-crud__pagination" style="width: 100%">
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="psizeChange"
@current-change="pcurrentChange"
:current-page="packpage.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="packpage.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="packpage.total"
>
</template>
</tablecmt>
</template>
</el-pagination>
</div>
</template>
<!-- 库存品列表 -->
<template v-if="activeTab === 'tab4'">
<!-- 列表模块 -->
<tablecmt
class="tableNode"
:columnList="inventoryoptioncolumn"
:tableData="inventorydata"
:loading="loading"
@inputTxt="inputscInventory"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionChange"
>
<template #default="slotProps">
<el-text size="small" @click="handleInventoryQRCode(slotProps.scope.row)"
>查看二维码</el-text
>
</template>
</tablecmt>
</template>
</div>
<el-dialog v-model="dialogFormCustomer" title="修改客户信息">
<el-form :model="formCustomer" ref="formCustomer" :rules="formCustomerRolus">
<el-row>
@ -660,6 +654,15 @@
multiple
drag
>
<template #file="{ file }">
<el-tooltip :content="getTooltipContent(file)" placement="top">
<img
:src="file.url"
alt="photo"
style="width: 100%; height: 100%; cursor: pointer"
/>
</el-tooltip>
</template>
<el-icon><Plus /></el-icon>
</el-upload>
<el-dialog v-model="dialogVisibleA">
@ -681,6 +684,15 @@
multiple
drag
>
<template #file="{ file }">
<el-tooltip :content="getTooltipContent(file)" placement="top">
<img
:src="file.url"
alt="photo"
style="width: 100%; height: 100%; cursor: pointer"
/>
</el-tooltip>
</template>
<el-icon><Plus /></el-icon>
</el-upload>
<el-dialog v-model="dialogVisibleB">
@ -702,6 +714,15 @@
multiple
drag
>
<template #file="{ file }">
<el-tooltip :content="getTooltipContent(file)" placement="top">
<img
:src="file.url"
alt="photo"
style="width: 100%; height: 100%; cursor: pointer"
/>
</el-tooltip>
</template>
<el-icon><Plus /></el-icon>
</el-upload>
<el-dialog v-model="dialogVisibleC">
@ -723,6 +744,15 @@
multiple
drag
>
<template #file="{ file }">
<el-tooltip :content="getTooltipContent(file)" placement="top">
<img
:src="file.url"
alt="photo"
style="width: 100%; height: 100%; cursor: pointer"
/>
</el-tooltip>
</template>
<el-icon><Plus /></el-icon>
</el-upload>
<el-dialog v-model="dialogVisibleD">
@ -744,6 +774,15 @@
multiple
drag
>
<template #file="{ file }">
<el-tooltip :content="getTooltipContent(file)" placement="top">
<img
:src="file.url"
alt="photo"
style="width: 100%; height: 100%; cursor: pointer"
/>
</el-tooltip>
</template>
<el-icon><Plus /></el-icon>
</el-upload>
<el-dialog v-model="dialogVisibleE">
@ -3811,6 +3850,10 @@ export default {
this.loadingObj.pageLoading = false;
}
},
getTooltipContent(file) {
console.log(file, 'file');
return `该图片由${file.driverName || '文员'}上传`;
},
/** 打印库存存品 */
async handleInventoryQRCode(row) {
try {
@ -4804,6 +4847,7 @@ export default {
reservationId: this.reservationId,
type: photoType,
urlRoute: item.response && item.response.data ? item.response.data.link : item.url,
driverName: item.driverName || '',
});
});
};
@ -5051,41 +5095,32 @@ export default {
this.form = res.data.data;
this.TcForm = res.data.data;
//
this.DoorstepPhoto = [];
this.StackingPhoto = [];
this.FragilePhotos = [];
this.HomePhotos = [];
this.SignForPhotos = [];
if (res.data.data.printVOList) {
// DoorstepPhoto
// StackingPhoto
// FragilePhotos
// HomePhotos
// SignForPhotos
this.DoorstepPhoto = [];
this.StackingPhoto = [];
this.FragilePhotos = [];
this.HomePhotos = [];
this.SignForPhotos = [];
this.DoorstepPhoto = []; //
this.StackingPhoto = []; //
this.FragilePhotos = []; //
this.HomePhotos = []; //
this.SignForPhotos = []; //
if (res.data.data.printVOList?.length) {
const photoTypes = {
photo_1: 'DoorstepPhoto',
photo_2: 'StackingPhoto',
photo_3: 'FragilePhotos',
photo_4: 'HomePhotos',
photo_5: 'SignForPhotos',
};
res.data.data.printVOList.forEach(item => {
if (item.type == 'photo_1') {
this.DoorstepPhoto.push({ name: '', url: item.urlRoute });
}
if (item.type == 'photo_2') {
this.StackingPhoto.push({ name: '', url: item.urlRoute });
}
if (item.type == 'photo_3') {
this.FragilePhotos.push({ name: '', url: item.urlRoute });
}
if (item.type == 'photo_4') {
this.HomePhotos.push({ name: '', url: item.urlRoute });
}
if (item.type == 'photo_5') {
this.SignForPhotos.push({ name: '', url: item.urlRoute });
const photoCategory = photoTypes[item.type];
if (photoCategory) {
this[photoCategory].push({
name: '',
url: item.urlRoute,
driverName: item.driverName,
});
}
});
}
console.log('签收>>>>>>>>>>', row);
console.log(row.signId, '复合签收');
this.signtitle = '复核签收';

1
src/views/distribution/signfor/distributionSignfortreat.vue

@ -1884,6 +1884,7 @@ export default {
reservationId: reservationId,
type: photoType,
urlRoute: item.response && item.response.data ? item.response.data.link : item.url,
driverName: item.driverName || '',
});
});
return photoArray;

Loading…
Cancel
Save