Browse Source

Merge branch 'dev' into pre-production

pre-production
pref_mail@163.com 5 months ago
parent
commit
e8d55c954c
  1. 4
      src/option/finance/WaybillAudit.js
  2. 157
      src/views/finance/WaybillAudit.vue

4
src/option/finance/WaybillAudit.js

@ -28,7 +28,7 @@ export const columnList = [
{ {
prop: 'waybillNo', prop: 'waybillNo',
label: '运单号', label: '运单号',
type: 2, type: 13,
values: '', values: '',
width: '150', width: '150',
checkarr: [], checkarr: [],
@ -778,7 +778,7 @@ export const columnList = [
{ {
prop: 'checkStatusName', prop: 'checkStatusName',
label: '审核状态', label: '审核状态',
type: 3, type: 1,
values: '', values: '',
width: '150', width: '150',
checkarr: [ checkarr: [

157
src/views/finance/WaybillAudit.vue

@ -2,18 +2,17 @@
<basic-container v-loading="details.loadingObj.pageLoading"> <basic-container v-loading="details.loadingObj.pageLoading">
<div class="avue-crud"> <div class="avue-crud">
<!-- 搜索模块 --> <!-- 搜索模块 -->
<div v-h5uShow="!search"> <div v-h5uShow="search">
<!-- 查询模块 --> <!-- 查询模块 -->
<el-form :inline="true" :model="query" class="header_search"> <el-form :inline="true" :model="query" class="header_search">
<!-- 收货单位 --> <!-- 收货单位 -->
<el-form-item label="收货单位"><el-input v-model="details.query.consignee" placeholder="请输入收货单位" /></el-form-item> <el-form-item label="收货单位"
><el-input v-model="details.query.consignee" placeholder="请输入收货单位"
/></el-form-item>
<!-- 审核状态 --> <!-- 审核状态 -->
<el-form-item label="审核状态"> <el-form-item label="审核状态">
<el-select <el-select v-model="details.query.checkStatus" placeholder="请选择审核状态">
v-model="details.query.checkStatus"
placeholder="请选择审核状态"
>
<el-option <el-option
v-for="item in [ v-for="item in [
{ label: '已审核', value: 1 }, { label: '已审核', value: 1 },
@ -99,9 +98,20 @@
@selection="selectionChange" @selection="selectionChange"
> >
<template #default="slotProps"> <template #default="slotProps">
<template v-if="slotProps.scope.column.label === '运单号'">
<el-text @click="handleGoWaybillDetails(slotProps.scope)">{{
slotProps.scope.row.waybillNo
}}</el-text>
</template>
<template v-if="slotProps.scope.column.label === '操作'"> <template v-if="slotProps.scope.column.label === '操作'">
<!-- <el-text @click="handleShowPackageOrderList(slotProps.scope)"> 包明细 </el-text> --> <!-- <el-text @click="handleShowPackageOrderList(slotProps.scope)"> 包明细 </el-text> -->
<el-text v-if="Number(slotProps.scope.row.checkStatus) === 0" @click="handleCheck(slotProps.scope)"> 审核 </el-text> <el-text
v-if="Number(slotProps.scope.row.checkStatus) === 0"
@click="handleCheck(slotProps.scope)"
>
审核
</el-text>
<el-text v-else @click="handleCloseAudit(slotProps.scope)"> 取消审核 </el-text> <el-text v-else @click="handleCloseAudit(slotProps.scope)"> 取消审核 </el-text>
<el-text @click="handleUploadReceipt(slotProps.scope)"> 上传回单 </el-text> <el-text @click="handleUploadReceipt(slotProps.scope)"> 上传回单 </el-text>
</template> </template>
@ -162,7 +172,7 @@
</div> </div>
</el-dialog> </el-dialog>
<!-- 审核 --> <!-- 审核 -->
<el-dialog <el-dialog
class="el-dialog-checkVisted" class="el-dialog-checkVisted"
title="审核" title="审核"
@ -170,14 +180,12 @@
:show-close="false" :show-close="false"
v-model="details.popUpShow.checkVisted" v-model="details.popUpShow.checkVisted"
> >
<div class="title"> <div class="title">运单号{{ details.form.waybillNo }}</div>
运单号{{ details.form.waybillNo }}
</div>
<el-form label-width="100px"> <el-form label-width="100px">
<el-form-item label="审核意见:"> <el-form-item label="审核意见:">
<el-input placeholder="请输入审核意见" v-model="details.form.checkReson"></el-input> <el-input placeholder="请输入审核意见" v-model="details.form.checkReson"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="审核备注:"> <el-form-item label="审核备注:">
<el-input placeholder="请输入审核备注" v-model="details.form.checkRemark"></el-input> <el-input placeholder="请输入审核备注" v-model="details.form.checkRemark"></el-input>
</el-form-item> </el-form-item>
@ -208,8 +216,11 @@ import {
getopenOrderAdvancePageList, getopenOrderAdvancePageList,
postOpenOrderFreezeByAdvanceIds, postOpenOrderFreezeByAdvanceIds,
} from '@/api/waybill/TemporaryStorageList'; } from '@/api/waybill/TemporaryStorageList';
import { postPageFinanceWaybillList,postFinanceWaybillListExport } from '@/api/finance/WaybillAudit'; import {
import { postCheckWaybill,postCancleCheckWaybill } from '@/api/distribution/CreateOrder.js'; postPageFinanceWaybillList,
postFinanceWaybillListExport,
} from '@/api/finance/WaybillAudit';
import { postCheckWaybill, postCancleCheckWaybill } from '@/api/distribution/CreateOrder.js';
import { compressImageBlob } from '@/components/IMGcompressor/imgcompressor.js'; import { compressImageBlob } from '@/components/IMGcompressor/imgcompressor.js';
import { postAbolishWaybill, postSaveWaybillReturn } from '@/api/waybill/WaybillOrderList.js'; import { postAbolishWaybill, postSaveWaybillReturn } from '@/api/waybill/WaybillOrderList.js';
import { import {
@ -282,7 +293,7 @@ const details = reactive<any>({
/** 回单 */ /** 回单 */
view: false, view: false,
/** 审核 */ /** 审核 */
checkVisted: false checkVisted: false,
}, },
/** 列表复选框选中的数据 */ /** 列表复选框选中的数据 */
selectionList: [], selectionList: [],
@ -318,6 +329,8 @@ const { search, query, shortcuts, selectionList, drawerShow, page } = toRefs(det
const permission = computed(() => mapGetters(['permission', 'tagWel', 'tagList'])); const permission = computed(() => mapGetters(['permission', 'tagWel', 'tagList']));
console.log('permission :>> ', permission); console.log('permission :>> ', permission);
details.query.checkStatus = 0;
/** 请求页面数据 */ /** 请求页面数据 */
const onLoad = async () => { const onLoad = async () => {
try { try {
@ -329,18 +342,18 @@ const onLoad = async () => {
...details.query, ...details.query,
}; };
if (getObjType(submitData.createTimeArr) === 'array' && submitData.createTimeArr.length > 0){ if (getObjType(submitData.createTimeArr) === 'array' && submitData.createTimeArr.length > 0) {
submitData.createTimeStartStr = submitData.createTimeArr[0] submitData.createTimeStartStr = submitData.createTimeArr[0];
submitData.createTimeEndStr = submitData.createTimeArr[1] submitData.createTimeEndStr = submitData.createTimeArr[1];
} }
if (getObjType(submitData.checkTimeArr) === 'array' && submitData.checkTimeArr.length > 0){ if (getObjType(submitData.checkTimeArr) === 'array' && submitData.checkTimeArr.length > 0) {
submitData.checkTimeStartStr = submitData.checkTimeArr[0] submitData.checkTimeStartStr = submitData.checkTimeArr[0];
submitData.checkTimeEndStr = submitData.checkTimeArr[1] submitData.checkTimeEndStr = submitData.checkTimeArr[1];
} }
delete submitData.createTimeArr delete submitData.createTimeArr;
delete submitData.checkTimeArr delete submitData.checkTimeArr;
// //
const res = await postPageFinanceWaybillList(submitData); const res = await postPageFinanceWaybillList(submitData);
@ -377,28 +390,28 @@ const handleData = (key, res) => {
} }
}; };
const initData = async()=>{ const initData = async () => {
await Promise.all([ await Promise.all([
// //
getDictionaryBiz('distribution_type').then(res => handleData('服务类型', res)), getDictionaryBiz('distribution_type').then(res => handleData('服务类型', res)),
// //
getDictionaryBiz('mainline_waybill_shippingmethod').then(res => handleData('服务类型', res)), getDictionaryBiz('mainline_waybill_shippingmethod').then(res => handleData('服务类型', res)),
// //
getDictionaryBiz('open_order_pay_type').then(res => handleData('支付方式', res)), getDictionaryBiz('open_order_pay_type').then(res => handleData('支付方式', res)),
// //
getDictionaryBiz('open_order_pay_way').then(res => handleData('付款方式', res)), getDictionaryBiz('open_order_pay_way').then(res => handleData('付款方式', res)),
initOnLoad() initOnLoad(),
]) ]);
await nextTick(); await nextTick();
handleTranslationDataSeclect(details.data, details.columnList); handleTranslationDataSeclect(details.data, details.columnList);
} };
/** 初始化请求 */ /** 初始化请求 */
const initOnLoad = () => { const initOnLoad = () => {
details.page.pageNum = 1; details.page.pageNum = 1;
details.page.total = 0; details.page.total = 0;
return onLoad() return onLoad();
}; };
initData(); initData();
@ -471,20 +484,20 @@ const currentChange = pageNum => {
}; };
/** 审核 */ /** 审核 */
const handleCheck = ({row})=>{ const handleCheck = ({ row }) => {
details.form = { ...row } details.form = { ...row };
details.popUpShow.checkVisted = true; details.popUpShow.checkVisted = true;
} };
/** 确认审核审核 */ /** 确认审核审核 */
const handleAudit =async () => { const handleAudit = async () => {
details.popUpShow.checkVisted = false details.popUpShow.checkVisted = false;
details.loadingObj.pageLoading = true; details.loadingObj.pageLoading = true;
try { try {
const res = await postCheckWaybill({ const res = await postCheckWaybill({
waybillId: details.form.id, waybillId: details.form.id,
checkReson: details.form.checkReson || '', checkReson: details.form.checkReson || '',
checkRemark: details.form.checkRemark || '' checkRemark: details.form.checkRemark || '',
}); });
const { code, msg } = res.data; const { code, msg } = res.data;
@ -501,16 +514,16 @@ const handleAudit =async () => {
}; };
/** 取消审核 */ /** 取消审核 */
const handleCloseAudit = ({row}) => { const handleCloseAudit = ({ row }) => {
ElMessageBox.confirm('是否确认取消审核?', '提示', { ElMessageBox.confirm('是否确认取消审核?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning', type: 'warning',
}).then(async() => { }).then(async () => {
details.loadingObj.pageLoading = true; details.loadingObj.pageLoading = true;
try { try {
const res = await postCancleCheckWaybill({ const res = await postCancleCheckWaybill({
waybillId: row.id, waybillId: row.id,
}); });
const { code, msg } = res.data; const { code, msg } = res.data;
@ -574,39 +587,53 @@ const handleExport = () => {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning', type: 'warning',
}).then(async() => { }).then(async () => {
try { try {
details.loadingObj.pageLoading = true details.loadingObj.pageLoading = true;
const submitData= {...details.query} const submitData = { ...details.query };
if (getObjType(submitData.createTimeArr) === 'array' && submitData.createTimeArr.length > 0){ if (getObjType(submitData.createTimeArr) === 'array' && submitData.createTimeArr.length > 0) {
submitData.createTimeStartStr = submitData.createTimeArr[0] submitData.createTimeStartStr = submitData.createTimeArr[0];
submitData.createTimeEndStr = submitData.createTimeArr[1] submitData.createTimeEndStr = submitData.createTimeArr[1];
} }
if (getObjType(submitData.checkTimeArr) === 'array' && submitData.checkTimeArr.length > 0){ if (getObjType(submitData.checkTimeArr) === 'array' && submitData.checkTimeArr.length > 0) {
submitData.checkTimeStartStr = submitData.checkTimeArr[0] submitData.checkTimeStartStr = submitData.checkTimeArr[0];
submitData.checkTimeEndStr = submitData.checkTimeArr[1] submitData.checkTimeEndStr = submitData.checkTimeArr[1];
} }
delete submitData.createTimeArr delete submitData.createTimeArr;
delete submitData.checkTimeArr delete submitData.checkTimeArr;
const res = await postFinanceWaybillListExport(submitData) const res = await postFinanceWaybillListExport(submitData);
const {status, data} = res const { status, data } = res;
if (status !== 200) return if (status !== 200) return;
downloadXls(data, '审核导出数据.xlsx') downloadXls(data, '审核导出数据.xlsx');
ElMessage.success('导出成功!'); ElMessage.success('导出成功!');
} catch (error) { } catch (error) {
console.log('error :>> ', error); console.log('error :>> ', error);
}finally{ } finally {
details.loadingObj.pageLoading = false details.loadingObj.pageLoading = false;
} }
});
};
/** 查看运单 */
const handleGoWaybillDetails = ({ row }) => {
if (row.waybillNo === '————' || !row.id) return ElMessage.warning('暂无运单号');
console.log('row :>> ', row);
$router.push({
path: '/distribution/inventory/BookingNote',
query: {
name: `查看 -- 【${row.waybillNo}`,
waybillNo: row.waybillNo,
id: row.id,
waybillType: row.waybillType,
},
}); });
}; };
@ -691,8 +718,8 @@ const handlePictureCardPreview: UploadProps['onPreview'] = uploadFile => {
height: 100% !important; height: 100% !important;
} }
.el-dialog-checkVisted{ .el-dialog-checkVisted {
.title{ .title {
display: flex; display: flex;
align-items: center; align-items: center;
font-weight: bold; font-weight: bold;
@ -700,7 +727,7 @@ const handlePictureCardPreview: UploadProps['onPreview'] = uploadFile => {
font-size: 1rem; font-size: 1rem;
color: var(--el-color-primary); color: var(--el-color-primary);
&::before{ &::before {
content: ''; content: '';
width: 40px; width: 40px;
height: 1px; height: 1px;
@ -708,7 +735,7 @@ const handlePictureCardPreview: UploadProps['onPreview'] = uploadFile => {
margin-right: 10px; margin-right: 10px;
} }
&::after{ &::after {
content: ''; content: '';
flex: 1; flex: 1;
height: 1px; height: 1px;

Loading…
Cancel
Save