Browse Source

Merge branch 'dev' of http://47.108.105.48:3000/java_project/logpm_page into dev

pre-production
马远东 1 year ago
parent
commit
1e6851b8cd
  1. 11
      src/components/tablecmt/tablecmt.vue
  2. 1
      src/router/views/index.js
  3. 12
      src/views/distribution/checkInventoryTask/createTask2.vue
  4. 2
      src/views/distribution/inventory/BookingNote.vue
  5. 38
      src/views/distribution/inventory/CreateOrder.vue
  6. 375
      src/views/distribution/signfor/distributionSignfor.vue
  7. 343
      src/views/distribution/signfor/distributionSignfortreat.vue
  8. 400
      src/views/financialsector/Financialse/FinancialBill.vue
  9. 166
      src/views/warehouse/warehousesignedorder/distributionStockArticle.vue
  10. 1
      src/views/waybill/CreateZeroOrder.vue
  11. 1
      src/views/waybill/TemporaryStorageList.vue
  12. 6
      src/views/waybill/WaybillOrderList.vue
  13. 5
      src/views/waybill/orderPackageList.vue
  14. 5
      src/views/waybill/orderPackageListDetails.vue

11
src/components/tablecmt/tablecmt.vue

@ -54,6 +54,7 @@
clearable clearable
:placeholder="`请输入${column.label}`" :placeholder="`请输入${column.label}`"
@change="inputchange($event, column)" @change="inputchange($event, column)"
@keyup.enter="handleInput($event, column)"
/> />
<el-select <el-select
v-if="column.type == 3 || column.type == 14" v-if="column.type == 3 || column.type == 14"
@ -354,6 +355,11 @@ let props = defineProps({
required: false, required: false,
default: false, default: false,
}, },
initFn: {
type: Function as PropType<Function>,
required: false,
default: false,
},
}); });
/** 勾选数据统计 */ /** 勾选数据统计 */
const selectCount = ref([]); const selectCount = ref([]);
@ -702,6 +708,11 @@ const handleRefresh = () => {
} }
}; };
/** 回车键执行 */
const handleInput = () => {
props.initFn && props.initFn();
};
defineExpose({ handleCheckSelect, handleClearSelect }); defineExpose({ handleCheckSelect, handleClearSelect });
</script> </script>
<style lang="scss"> <style lang="scss">

1
src/router/views/index.js

@ -344,6 +344,7 @@ export default [
name: '创建订单', name: '创建订单',
meta: { meta: {
data: 'data', data: 'data',
keepAlive: true,
}, },
component: () => component: () =>
import(/* webpackChunkName: "views" */ '@/views/distribution/inventory/CreateOrder.vue'), import(/* webpackChunkName: "views" */ '@/views/distribution/inventory/CreateOrder.vue'),

12
src/views/distribution/checkInventoryTask/createTask2.vue

@ -1432,6 +1432,18 @@ initTableData();
const inputsc = (value, row) => { const inputsc = (value, row) => {
console.log('value :>> ', value); console.log('value :>> ', value);
console.log('row :>> ', row); console.log('row :>> ', row);
details.query[row.prop] = value;
if (!value) delete details.query[row.prop];
initTableData();
};
/** 表头下拉搜索 */
const selectsc = (value, row) => {
const _key = row.prop.replace('Name', '');
details.query[_key] = value;
if (!value) delete details.query[_key];
initTableData();
}; };
/** 复选框勾选变化 */ /** 复选框勾选变化 */

2
src/views/distribution/inventory/BookingNote.vue

@ -1725,6 +1725,8 @@ const handleEdit = () => {
if (Number($route.query.waybillType) === 1) { if (Number($route.query.waybillType) === 1) {
// //
$store.commit('DEL_ONCE_TAG', '/distribution/inventory/CreateOrder');
$router.push({ $router.push({
path: '/distribution/inventory/CreateOrder', path: '/distribution/inventory/CreateOrder',
query: { query: {

38
src/views/distribution/inventory/CreateOrder.vue

@ -943,6 +943,12 @@
</div> </div>
</template> </template>
<script lang="ts">
export default {
name: '/distribution/inventory/CreateOrder',
};
</script>
<script setup lang="ts"> <script setup lang="ts">
import { import {
ref, ref,
@ -987,6 +993,8 @@ import {
postFindArrPrice, postFindArrPrice,
} from '@/api/distribution/CreateOrder.js'; } from '@/api/distribution/CreateOrder.js';
console.log('111 :>> ', 111);
// vue // vue
const instance = getCurrentInstance(); const instance = getCurrentInstance();
@ -1000,6 +1008,8 @@ const $route = useRoute();
// vuex // vuex
let $store = useStore(); let $store = useStore();
console.log('$store :>> ', $store);
const details = reactive<any>({ const details = reactive<any>({
/** 页面数据 */ /** 页面数据 */
pageInfo: {}, pageInfo: {},
@ -2583,19 +2593,25 @@ const handleChooseGoods = (item, val) => {
handleCloseSelcet(); handleCloseSelcet();
}; };
watch( details.deepQuery = deepClone(details.query);
$route,
async () => {
if ($route.path !== '/distribution/inventory/CreateOrder') return;
//
details.deepQuery = deepClone(details.query);
details.orderStatus = $route.query.orderStatus; details.orderStatus = $route.query.orderStatus;
initPageInfo(); initPageInfo();
},
{ immediate: true } // watch(
); // $route,
// async () => {
// if ($route.path !== '/distribution/inventory/CreateOrder') return;
// //
// details.deepQuery = deepClone(details.query);
// details.orderStatus = $route.query.orderStatus;
// initPageInfo();
// },
// { immediate: true }
// );
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

375
src/views/distribution/signfor/distributionSignfor.vue

@ -1,112 +1,114 @@
<template> <template>
<basic-container> <basic-container>
<div class="avue-crud"> <div class="avue-crud">
<el-row v-if="!search"> <div v-h5uShow="!search">
<!-- 查询模块 --> <!-- 查询模块 -->
<el-form :inline="true" :model="query" class="fr-fm"> <el-form :inline="true" :model="query" class="header_search">
<div class="fr-fo"> <el-form-item label="配送车次:">
<el-form-item label="配送车次:"> <el-input v-model="query.trainNumber" placeholder="请输入配送车次"></el-input>
<el-input v-model="query.trainNumber" placeholder="请输入配送车次"></el-input> </el-form-item>
</el-form-item> <el-form-item label="订单编号:">
<el-form-item label="订单编号:"> <el-input v-model="query.stockArticleId" placeholder="请输入订单自编号"></el-input>
<el-input v-model="query.stockArticleId" placeholder="请输入订单自编号"></el-input> </el-form-item>
</el-form-item> <!-- <el-form-item label="商城名称:">-->
<!-- <el-form-item label="商城名称:">--> <!-- <el-input v-model="query.mallName" placeholder="请输入商城名称"></el-input>-->
<!-- <el-input v-model="query.mallName" placeholder="请输入商城名称"></el-input>--> <!-- </el-form-item>-->
<!-- </el-form-item>--> <!-- <el-form-item label="门店名称:">-->
<!-- <el-form-item label="门店名称:">--> <!-- <el-input v-model="query.storeName" placeholder="请输入门店名称"></el-input>-->
<!-- <el-input v-model="query.storeName" placeholder="请输入门店名称"></el-input>--> <!-- </el-form-item>-->
<!-- </el-form-item>--> <el-form-item label="客户名称:">
<el-form-item label="客户名称:"> <el-input v-model="query.consignee" placeholder="请输入客户名称"></el-input>
<el-input v-model="query.consignee" placeholder="请输入客户名称"></el-input> </el-form-item>
</el-form-item> <el-form-item label="客户电话:">
<el-form-item label="客户电话:"> <el-input v-model="query.deliveryPhone" placeholder="请输入客户电话"></el-input>
<el-input v-model="query.deliveryPhone" placeholder="请输入客户电话"></el-input> </el-form-item>
</el-form-item> <el-form-item label="业务类型:">
<el-form-item label="业务类型:"> <el-select class="w100" v-model="query.businessType" placeholder="请选择业务类型">
<el-select v-model="query.businessType" placeholder="请选择业务类型"> <el-option :key="'1'" :value="'商配'">商配 </el-option>
<el-option :key="'1'" :value="'商配'">商配 </el-option> <el-option :key="'2'" :value="'市配'">市配 </el-option>
<el-option :key="'2'" :value="'市配'">市配 </el-option> </el-select>
</el-select> <!-- <el-input v-model="query.deliveryType" placeholder="请选择业务类型"></el-input>-->
<!-- <el-input v-model="query.deliveryType" placeholder="请选择业务类型"></el-input>--> </el-form-item>
</el-form-item> <el-form-item label="审核人名称:">
<el-form-item label="审核人名称:"> <el-input v-model="query.examineUserName" placeholder="请输入客户电话"></el-input>
<el-input v-model="query.examineUserName" placeholder="请输入客户电话"></el-input> </el-form-item>
</el-form-item> <el-form-item label="签收人名称:">
<el-form-item label="签收人名称:"> <el-input v-model="query.signeeName" placeholder="请输入客户电话"></el-input>
<el-input v-model="query.signeeName" placeholder="请输入客户电话"></el-input> </el-form-item>
</el-form-item> <el-form-item label="司机名称:">
<el-form-item label="司机名称:"> <el-input v-model="query.driverName" placeholder="请输入司机名称"></el-input>
<el-input v-model="query.driverName" placeholder="请输入司机名称"></el-input> </el-form-item>
</el-form-item> <el-form-item label="车牌:">
<el-form-item label="车牌:"> <el-input v-model="query.vehicleName" placeholder="请输入车牌号"></el-input>
<el-input v-model="query.vehicleName" placeholder="请输入车牌号"></el-input> </el-form-item>
</el-form-item>
<el-form-item label="配送时间:"> <el-form-item label="配送时间:">
<el-date-picker <el-date-picker
v-model="query.taskTimeSection" v-model="query.taskTimeSection"
type="datetimerange" type="datetimerange"
align="right" align="right"
unlink-panels unlink-panels
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
format="YYYY/MM/DD" format="YYYY/MM/DD"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
:picker-options="pickerOptions"> :picker-options="pickerOptions"
</el-date-picker> >
</el-form-item> </el-date-picker>
<el-form-item label="装车时间:"> </el-form-item>
<el-date-picker <el-form-item label="装车时间:">
v-model="query.loadingTimeSection" <el-date-picker
type="datetimerange" v-model="query.loadingTimeSection"
align="right" type="datetimerange"
unlink-panels align="right"
range-separator="至" unlink-panels
start-placeholder="开始日期" range-separator="至"
end-placeholder="结束日期" start-placeholder="开始日期"
format="YYYY/MM/DD" end-placeholder="结束日期"
value-format="YYYY-MM-DD" format="YYYY/MM/DD"
:picker-options="pickerOptions"> value-format="YYYY-MM-DD"
</el-date-picker> :picker-options="pickerOptions"
</el-form-item> >
<el-form-item label="司机签收时间:"> </el-date-picker>
<el-date-picker </el-form-item>
v-model="query.sjsigningTimeSection" <el-form-item label="司机签收时间:">
type="datetimerange" <el-date-picker
align="right" v-model="query.sjsigningTimeSection"
unlink-panels type="datetimerange"
range-separator="至" align="right"
start-placeholder="开始日期" unlink-panels
end-placeholder="结束日期" range-separator="至"
format="YYYY/MM/DD" start-placeholder="开始日期"
value-format="YYYY-MM-DD" end-placeholder="结束日期"
:picker-options="pickerOptions"> format="YYYY/MM/DD"
</el-date-picker> value-format="YYYY-MM-DD"
</el-form-item> :picker-options="pickerOptions"
<el-form-item label="文员审核时间:"> >
<el-date-picker </el-date-picker>
v-model="query.signingTimeSection" </el-form-item>
type="datetimerange" <el-form-item label="文员审核时间:">
align="right" <el-date-picker
unlink-panels v-model="query.signingTimeSection"
range-separator="至" type="datetimerange"
start-placeholder="开始日期" align="right"
end-placeholder="结束日期" unlink-panels
format="YYYY/MM/DD" range-separator="至"
value-format="YYYY-MM-DD" start-placeholder="开始日期"
:picker-options="pickerOptions"> end-placeholder="结束日期"
</el-date-picker> format="YYYY/MM/DD"
</el-form-item> value-format="YYYY-MM-DD"
</div> :picker-options="pickerOptions"
>
</el-date-picker>
</el-form-item>
<!-- 查询按钮 --> <!-- 查询按钮 -->
<el-form-item class="el-btn"> <el-form-item class="el-btn">
<el-button type="primary" icon="el-icon-search" @click="searchChange"> </el-button> <el-button type="primary" icon="el-icon-search" @click="searchChange"> </el-button>
<el-button icon="el-icon-delete" @click="searchReset()"> </el-button> <el-button icon="el-icon-delete" @click="searchReset()"> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-row> </div>
<el-row> <el-row>
<div class="avue-crud__header"> <div class="avue-crud__header">
@ -115,9 +117,9 @@
<el-button type="danger" icon="el-icon-download" @click="handleExportInfo" plain <el-button type="danger" icon="el-icon-download" @click="handleExportInfo" plain
>导出 >导出
</el-button> </el-button>
<!-- v-loading.fullscreen.lock="fullscreenLoading"--> <!-- v-loading.fullscreen.lock="fullscreenLoading"-->
<el-button type="danger" icon="el-icon-picture" @click="handlePictureInfo" plain <el-button type="danger" icon="el-icon-picture" @click="handlePictureInfo" plain
>导出图片 >导出图片
</el-button> </el-button>
</div> </div>
<!-- 头部右侧按钮模块 --> <!-- 头部右侧按钮模块 -->
@ -128,41 +130,38 @@
</div> </div>
</div> </div>
</el-row> </el-row>
<el-row> <!-- 列表模块 -->
<!-- 列表模块 --> <tablecmt
<tablecmt ref="tableNodeRef"
:columnList="columnList" :columnList="columnList"
:tableData="data" :tableData="data"
:loading="loading" :loading="loading"
@inputTxt="inputsc" @inputTxt="inputsc"
@timeCheck="timesc" @timeCheck="timesc"
@btnCheck="btnsc" @btnCheck="btnsc"
@selectCheck="selectsc" @selectCheck="selectsc"
@selection="selectionChange" @selection="selectionChange"
>
<template #default="slotProps">
<el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>
</template>
</tablecmt>
<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"
> >
<template #default="slotProps"> </el-pagination>
<el-text size="small" @click="editsolt(slotProps.scope)"> </el-text> </div>
</template>
</tablecmt>
</el-row>
<el-row class='el-fy'>
<div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
<!-- 分页模块 -->
<el-pagination
align="right"
background
@size-change="sizeChange"
@current-change="currentChange"
:current-page="page.currentPage"
:page-sizes="[30, 50, 80, 120]"
:page-size="page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="page.total"
>
</el-pagination>
</div>
</el-row>
<!-- 表单模块 --> <!-- 表单模块 -->
<el-dialog <el-dialog
:title="title" :title="title"
@ -217,28 +216,18 @@
</template> </template>
</el-dialog> </el-dialog>
<el-dialog title="提示" v-model="dialogVisible" width="15%" :before-close="handleClose">
<el-dialog
title="提示"
v-model="dialogVisible"
width="15%"
:before-close="handleClose">
<div align="center"> <div align="center">
<el-progress type="circle" :percentage="fileSize" status="success"></el-progress> <el-progress type="circle" :percentage="fileSize" status="success"></el-progress>
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button> <el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="dialogVisible = false"> </el-button> <el-button type="primary" @click="dialogVisible = false"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
</basic-container> </basic-container>
<edittablehead <edittablehead
@setcolum="setnewcolum" @setcolum="setnewcolum"
@closce="showdrawer" @closce="showdrawer"
@ -268,7 +257,7 @@ import dayjs from 'dayjs';
import { getDriverList } from '@/api/basicdata/basicdataDriverArtery'; import { getDriverList } from '@/api/basicdata/basicdataDriverArtery';
import { handlePicture } from '@/api/distribution/distributionSignfor'; import { handlePicture } from '@/api/distribution/distributionSignfor';
// import { getDeliveryListExport } from '@/api/distribution/distributionDeliveryList'; // import { getDeliveryListExport } from '@/api/distribution/distributionDeliveryList';
import { downloadXls } from '@/utils/util'; import { downloadXls, setNodeHeight } from '@/utils/util';
export default { export default {
data() { data() {
return { return {
@ -454,6 +443,7 @@ export default {
checkarr: [], checkarr: [],
fixed: false, fixed: false,
sortable: true, sortable: true,
isshowSummary: true,
}, },
{ {
prop: 'loadedNumber', prop: 'loadedNumber',
@ -464,6 +454,7 @@ export default {
checkarr: [], checkarr: [],
fixed: false, fixed: false,
sortable: true, sortable: true,
isshowSummary: true,
}, },
{ {
prop: 'receivedQuantity', prop: 'receivedQuantity',
@ -474,6 +465,7 @@ export default {
checkarr: [], checkarr: [],
fixed: false, fixed: false,
sortable: true, sortable: true,
isshowSummary: true,
}, },
{ {
prop: 'withoutScanning', prop: 'withoutScanning',
@ -484,6 +476,7 @@ export default {
checkarr: [], checkarr: [],
fixed: false, fixed: false,
sortable: true, sortable: true,
isshowSummary: true,
}, },
{ {
prop: 'unsigneds', prop: 'unsigneds',
@ -494,6 +487,7 @@ export default {
checkarr: [], checkarr: [],
fixed: false, fixed: false,
sortable: true, sortable: true,
isshowSummary: true,
}, },
// { // {
// prop: 'deliveryDriverName', // prop: 'deliveryDriverName',
@ -614,7 +608,7 @@ export default {
signingStatusData: [], signingStatusData: [],
// //
deliveryTypeData: [], deliveryTypeData: [],
fullscreenLoading:false, fullscreenLoading: false,
// //
orderSourceData: [], orderSourceData: [],
// //
@ -632,7 +626,7 @@ export default {
// //
data: [], data: [],
driverData: [], driverData: [],
fileSize:0, fileSize: 0,
}; };
}, },
mounted() { mounted() {
@ -727,27 +721,27 @@ export default {
* 导出 * 导出
* */ * */
handleExportInfo() { handleExportInfo() {
this.loading=true this.loading = true;
let row = {}; let row = {};
// if (!!this.ids) { // if (!!this.ids) {
// row.ids = this.ids; // row.ids = this.ids;
// } // }
const ids = this.selectionList.map(item=>item.id).join(','); const ids = this.selectionList.map(item => item.id).join(',');
row.ids = ids; row.ids = ids;
row.signingStatus = '2'; row.signingStatus = '2';
row = { ...row, ...this.query }; row = { ...row, ...this.query };
// console.log("<><><>>",ids); // console.log("<><><>>",ids);
getSignforExportOwn(row).then(res => { getSignforExportOwn(row)
.then(res => {
// console.log(res.data);
// console.log(res.data); downloadXls(res.data, '签收数据.xlsx');
})
downloadXls(res.data, '签收数据.xlsx'); .catch(() => {})
}).catch(()=>{ .finally(() => {
this.loading = false;
}).finally(()=>{ });
this.loading=false
})
}, },
handlePictureInfo() { handlePictureInfo() {
let row = {}; let row = {};
@ -756,37 +750,35 @@ export default {
// } // }
// const h = this.$createElement; // const h = this.$createElement;
console.log('this.selectionList>>>>>>>>>>', this.selectionList);
console.log("this.selectionList>>>>>>>>>>",this.selectionList); if (this.selectionList.length < 1) {
if (this.selectionList.length < 1){
this.$message({ this.$message({
type: 'warning', type: 'warning',
message: '请选择签收记录!', message: '请选择签收记录!',
}); });
} }
const idList= this.selectionList.map(item=>{ const idList = this.selectionList.map(item => {
console.log('>>>>>>>>>',item); console.log('>>>>>>>>>', item);
return item.id; return item.id;
}) });
console.log("ids-------------->",idList);
handlePicture(idList.join(",")).then(res=>{
if (res.data.size > 0){
// const _item = this.selectionList[index];
const blob = new Blob([res.data], {type: 'application/zip'});
let a = document.createElement("a");
a.href = window.URL.createObjectURL(blob);
// a.href = 'http://192.168.10.25:2888/D:/Test';
// a.download = _item.client +'-'+_item.reservationCode +".zip";
a.download = (new Date()).valueOf() + ".zip";
a.style.display = "none";
document.body.appendChild(a);
a.click(); // aahref
a.remove();
}
})
console.log('ids-------------->', idList);
handlePicture(idList.join(',')).then(res => {
if (res.data.size > 0) {
// const _item = this.selectionList[index];
const blob = new Blob([res.data], { type: 'application/zip' });
let a = document.createElement('a');
a.href = window.URL.createObjectURL(blob);
// a.href = 'http://192.168.10.25:2888/D:/Test';
// a.download = _item.client +'-'+_item.reservationCode +".zip";
a.download = new Date().valueOf() + '.zip';
a.style.display = 'none';
document.body.appendChild(a);
a.click(); // aahref
a.remove();
}
});
// const _arr = []; // const _arr = [];
// console.log(idList); // console.log(idList);
@ -841,12 +833,10 @@ export default {
// }) // })
// //
// 3 // 3
// } // }
// row.signingStatus = '2'; // row.signingStatus = '2';
// row = { ...row, ...this.query }; // row = { ...row, ...this.query };
// // console.log("<><><>>",ids); // // console.log("<><><>>",ids);
@ -974,6 +964,8 @@ export default {
}, },
searchHide() { searchHide() {
this.search = !this.search; this.search = !this.search;
setNodeHeight(this.$refs.tableNodeRef.$el, '', true);
}, },
searchChange() { searchChange() {
if (this.query.businessType) { if (this.query.businessType) {
@ -1182,4 +1174,9 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
} }
//
:deep(.el-date-editor.el-input__wrapper) {
height: 100% !important;
}
</style> </style>

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

@ -1,112 +1,74 @@
<template> <template>
<basic-container> <basic-container>
<div class="avue-crud"> <div class="avue-crud">
<el-row v-if="!search"> <div v-h5uShow="!search">
<!-- 查询模块 --> <!-- 查询模块 -->
<el-form :inline="true" :model="query" class="el-fr-ro"> <el-form :inline="true" :model="query" class="header_search">
<div class="el-fr-zy"> <el-form-item label="订单编号:">
<el-form-item label="订单编号:"> <el-input v-model="query.stockArticleId" placeholder="请输入订单自编号"></el-input>
<el-input v-model="query.stockArticleId" placeholder="请输入订单自编号"></el-input> </el-form-item>
</el-form-item> <el-form-item label="商城名称:">
<el-form-item label="商城名称:"> <el-input v-model="query.mallName" placeholder="请输入商城名称"></el-input>
<el-input v-model="query.mallName" placeholder="请输入商城名称"></el-input> </el-form-item>
</el-form-item> <el-form-item label="门店名称:">
<el-form-item label="门店名称:"> <el-input v-model="query.storeName" placeholder="请输入门店名称"></el-input>
<el-input v-model="query.storeName" placeholder="请输入门店名称"></el-input> </el-form-item>
</el-form-item> <el-form-item label="客户名称:">
<el-form-item label="客户名称:"> <el-input v-model="query.consignee" placeholder="请输入客户名称"></el-input>
<el-input v-model="query.consignee" placeholder="请输入客户名称"></el-input> </el-form-item>
</el-form-item> <el-form-item label="客户电话:">
<el-form-item label="客户电话:"> <el-input v-model="query.deliveryPhone" placeholder="请输入客户电话"></el-input>
<el-input v-model="query.deliveryPhone" placeholder="请输入客户电话"></el-input> </el-form-item>
</el-form-item> <el-form-item label="业务类型:">
<el-form-item label="业务类型:"> <el-select class="w100" v-model="query.businessType" placeholder="请选择业务类型">
<el-select v-model="query.businessType" placeholder="请选择业务类型"> <el-option :key="'1'" :value="'商配'">商配 </el-option>
<el-option :key="'1'" :value="'商配'">商配 </el-option> <el-option :key="'2'" :value="'市配'">市配 </el-option>
<el-option :key="'2'" :value="'市配'">市配 </el-option> </el-select>
</el-select> </el-form-item>
<!-- <el-input v-model="query.deliveryType" placeholder="请选择业务类型"></el-input>--> <el-form-item label="配送车次:">
</el-form-item> <el-input v-model="query.trainNumber" placeholder="请输入配送车次"></el-input>
<el-form-item label="配送车次:"> </el-form-item>
<el-input v-model="query.trainNumber" placeholder="请输入配送车次"></el-input> <el-form-item label="司机签收状态:">
</el-form-item> <el-select class="w100" v-model="query.driverSigning" placeholder="请选择业务类型">
<el-form-item label="司机签收状态:"> <el-option :value="1">未签收 </el-option>
<el-select v-model="query.driverSigning" placeholder="请选择业务类型"> <el-option :value="2">已签收 </el-option>
<el-option :value="1">未签收 </el-option> </el-select>
<el-option :value="2">已签收 </el-option> </el-form-item>
</el-select> <el-form-item label="配送时间:">
<!-- <el-input v-model="query.querySigningStatus" placeholder="请选择签收状态"></el-input>--> <el-date-picker
</el-form-item> v-model="query.taskTimeSection"
<el-form-item label="配送时间:"> type="daterange"
<el-date-picker align="right"
v-model="query.taskTimeSection" unlink-panels
type="daterange" range-separator="至"
align="right" start-placeholder="开始日期"
unlink-panels end-placeholder="结束日期"
range-separator="至" :picker-options="pickerOptions"
start-placeholder="开始日期" >
end-placeholder="结束日期" </el-date-picker>
:picker-options="pickerOptions" </el-form-item>
> <el-form-item label="装车时间:">
</el-date-picker> <el-date-picker
</el-form-item> v-model="query.loadingTimeSection"
<el-form-item label="装车时间:"> type="daterange"
<el-date-picker align="right"
v-model="query.loadingTimeSection" unlink-panels
type="daterange" range-separator="至"
align="right" start-placeholder="开始日期"
unlink-panels end-placeholder="结束日期"
range-separator="至" :picker-options="pickerOptions"
start-placeholder="开始日期" >
end-placeholder="结束日期" </el-date-picker>
:picker-options="pickerOptions" </el-form-item>
>
</el-date-picker>
</el-form-item>
</div>
<!-- <el-form-item label="顾客姓名:">-->
<!-- <el-input v-model="query.customerName" placeholder="请输入服务类型"></el-input>-->
<!-- </el-form-item>-->
<!-- 查询按钮 --> <!-- 查询按钮 -->
<el-form-item class="el-btn"> <el-form-item class="el-btn">
<el-button type="primary" icon="el-icon-search" @click="searchChange"> </el-button> <el-button type="primary" icon="el-icon-search" @click="searchChange"> </el-button>
<el-button icon="el-icon-delete" @click="searchReset()"> </el-button> <el-button icon="el-icon-delete" @click="searchReset()"> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-row> </div>
<!-- <tablecmt
:columnList="columnList"
:tableData="tableData"
@inputTxt='inputsc'
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionsc"
>
<template #default="slotProps">
<el-button
size="small"
@click="editsolt(slotProps.scope)"
>Edit</el-button
>
<el-button
size="small"
type="danger"
@click="delectsolt(slotProps.scope)"
>Delete</el-button
>
</template>
</tablecmt> -->
<!-- <el-row v-if="!search" style="padding: 6px 18px">-->
<!-- &lt;!&ndash; 查询模块 &ndash;&gt;-->
<!-- <el-form :inline="true" :model="query">-->
<!-- &lt;!&ndash; 查询按钮 &ndash;&gt;-->
<!-- <el-form-item>-->
<!-- <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>-->
<div class="el-zy-top"> <div class="el-zy-top">
<div class="order-info"> <div class="order-info">
<ul> <ul>
@ -143,106 +105,82 @@
</div> </div>
</el-row> </el-row>
</div> </div>
<el-row>
<!-- 列表模块 -->
<tablecmt
:columnList="columnList"
:tableData="data"
:loading="loading"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionsc"
>
<template #default="slotProps">
<template
v-if="
slotProps.scope.column.label === '配送件数' ||
'装车件数' ||
'签收数' ||
'未签收数' ||
'未装车件数' ||
'异常装车件数' ||
'异常签收件数'
"
>
<el-text @click="InformationViewing(slotProps.scope)">
<!-- {{slotProps.scope.row.reservationNum}} -->
{{
slotProps.scope.column.label === '计划配送件数'
? slotProps.scope.row.reservationNum
: slotProps.scope.column.label === '计划装车件数'
? slotProps.scope.row.loadedNumber
: slotProps.scope.column.label === '计划签收件数'
? slotProps.scope.row.receivedQuantity
: slotProps.scope.column.label === '计划未签收件数'
? slotProps.scope.row.unreceivedQuantity
: slotProps.scope.column.label === '计划未装车件数'
? slotProps.scope.row.unloadedNumber
: slotProps.scope.column.label === '异常装车件数'
? slotProps.scope.row.abnormalLoadedNumber
: slotProps.scope.column.label === '异常签收件数'
? slotProps.scope.row.abnormalReceivedQuantity
: ''
}}
</el-text>
</template>
<template v-if="slotProps.scope.column.label === '操作'"> <!-- 列表模块 -->
<el-text size="small" @click="editsolt(slotProps.scope)"> </el-text> <tablecmt
ref="tableNodeRef"
:columnList="columnList"
:tableData="data"
:loading="loading"
@inputTxt="inputsc"
@timeCheck="timesc"
@btnCheck="btnsc"
@selectCheck="selectsc"
@selection="selectionsc"
>
<template #default="slotProps">
<template
v-if="
slotProps.scope.column.label === '配送件数' ||
'装车件数' ||
'签收数' ||
'未签收数' ||
'未装车件数' ||
'异常装车件数' ||
'异常签收件数'
"
>
<el-text @click="InformationViewing(slotProps.scope)">
<!-- {{slotProps.scope.row.reservationNum}} -->
{{
slotProps.scope.column.label === '计划配送件数'
? slotProps.scope.row.reservationNum
: slotProps.scope.column.label === '计划装车件数'
? slotProps.scope.row.loadedNumber
: slotProps.scope.column.label === '计划签收件数'
? slotProps.scope.row.receivedQuantity
: slotProps.scope.column.label === '计划未签收件数'
? slotProps.scope.row.unreceivedQuantity
: slotProps.scope.column.label === '计划未装车件数'
? slotProps.scope.row.unloadedNumber
: slotProps.scope.column.label === '异常装车件数'
? slotProps.scope.row.abnormalLoadedNumber
: slotProps.scope.column.label === '异常签收件数'
? slotProps.scope.row.abnormalReceivedQuantity
: ''
}}
</el-text>
</template>
<el-text <template v-if="slotProps.scope.column.label === '操作'">
size="small" <el-text size="small" @click="editsolt(slotProps.scope)"> </el-text>
v-if="slotProps.scope.row.abnormalLoadedNumber > 0"
@click="viewAbnormalLoading(slotProps.scope)" <el-text
> </el-text size="small"
> v-if="slotProps.scope.row.abnormalLoadedNumber > 0"
<!-- v-if=" @click="viewAbnormalLoading(slotProps.scope)"
> </el-text
>
<!-- v-if="
slotProps.scope.row.sijiSigningStatus == '司机已签收' && slotProps.scope.row.sijiSigningStatus == '司机已签收' &&
slotProps.scope.row.wenyuanSigningStatus == '文员待审核' slotProps.scope.row.wenyuanSigningStatus == '文员待审核'
" --> " -->
<el-text <el-text
v-if=" v-if="
slotProps.scope.row.sijiSigningStatus == '已完成' && slotProps.scope.row.sijiSigningStatus == '已完成' &&
slotProps.scope.row.wenyuanSigningStatus == '文员待审核' slotProps.scope.row.wenyuanSigningStatus == '文员待审核'
" "
size="small" size="small"
@click="handleSign(slotProps.scope.row)" @click="handleSign(slotProps.scope.row)"
> </el-text > </el-text
> >
</template>
<!-- <el-button size="small" type="danger" @click="delectsolt(slotProps.scope)"-->
<!-- >Delete</el-button>-->
</template> </template>
</tablecmt>
<!-- <el-table ref="table" v-loading="loading" <!-- <el-button size="small" type="danger" @click="delectsolt(slotProps.scope)"-->
@selection-change="selectionChange" <!-- >Delete</el-button>-->
:data="data" </template>
:height="height" </tablecmt>
style="width: 100%"
:border="option.border">
<el-table-column type="selection" v-if="option.selection" width="55" align="center"></el-table-column>
<el-table-column type="expand" v-if="option.expand" align="center"></el-table-column>
<el-table-column v-if="option.index" label="#" type="index" width="50" align="center">
</el-table-column>
<template v-for="(item,index) in option.column">
<el-table-column v-if="item.hide!==true"
:prop="item.prop"
:label="item.label"
:width="item.width"
:key="index">
</el-table-column>
</template>
<el-table-column prop="menu" label="操作" :width="220" align="center">
<template #="{row}">
<el-button type="primary" text icon="el-icon-view" @click="handleView(row)">查看</el-button>
<el-button type="primary" text icon="el-icon-edit" @click="handleEdit(row)">签收</el-button>
</template>
</el-table-column>
</el-table> -->
</el-row>
<el-row class="el-fy"> <el-row class="el-fy">
<div class="avue-crud__pagination flex-c-sb" style="width: 100%"> <div class="avue-crud__pagination flex-c-sb" style="width: 100%">
<div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div> <div style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
@ -563,7 +501,7 @@ import { mapGetters } from 'vuex';
import { getDictionaryBiz } from '@/api/system/dict'; import { getDictionaryBiz } from '@/api/system/dict';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { getDeliveryListExport } from '@/api/distribution/distributionDeliveryList'; import { getDeliveryListExport } from '@/api/distribution/distributionDeliveryList';
import { downloadXls } from '@/utils/util'; import { downloadXls, setNodeHeight } from '@/utils/util';
import { getToken } from '@/utils/auth'; import { getToken } from '@/utils/auth';
import { ElMessage, ElMessageBox } from 'element-plus'; import { ElMessage, ElMessageBox } from 'element-plus';
export default { export default {
@ -1894,8 +1832,8 @@ export default {
ImgSuccessC(response, uploadFile) {}, ImgSuccessC(response, uploadFile) {},
// //
ImgSuccessD(response, uploadFile) { ImgSuccessD(response, uploadFile) {
console.log(response,'response'); console.log(response, 'response');
console.log(this.HomePhotos,'加配照片'); console.log(this.HomePhotos, '加配照片');
}, },
// //
ImgSuccessE(response, uploadFile) {}, ImgSuccessE(response, uploadFile) {},
@ -1948,8 +1886,7 @@ export default {
row.clerkSignPictures = this.signform.clerkSignPictures; row.clerkSignPictures = this.signform.clerkSignPictures;
row.clerkSignRemarks = this.TcForm.clerkSignRemarks; // row.clerkSignRemarks = this.TcForm.clerkSignRemarks; //
row.signingStatus = '2'; // row.signingStatus = '2'; //
row.deliveryId = this.signform.deliveryId; row.deliveryId = this.signform.deliveryId;
// //
const photoMap = { const photoMap = {
@ -2000,7 +1937,7 @@ export default {
this.deduplicateByIdAndUpdate(row.map.photo_5); this.deduplicateByIdAndUpdate(row.map.photo_5);
console.log(row, '要提交的参数'); console.log(row, '要提交的参数');
// //
updatesign(row).then(res => { updatesign(row).then(res => {
console.log(res, '提交之后返回的参数'); console.log(res, '提交之后返回的参数');
this.signBox = false; this.signBox = false;
@ -2283,6 +2220,7 @@ export default {
}, },
searchHide() { searchHide() {
this.search = !this.search; this.search = !this.search;
setNodeHeight(this.$refs.tableNodeRef.$el, '', true);
}, },
searchChange() { searchChange() {
console.log('this.query>>>>>>>>>>>>>>', this.query); console.log('this.query>>>>>>>>>>>>>>', this.query);
@ -2391,7 +2329,7 @@ export default {
done(); done();
this.form = {}; this.form = {};
this.view = false; this.view = false;
this.onLoad(this.page) this.onLoad(this.page);
}, },
selectionChange(list) { selectionChange(list) {
this.selectionList = list; this.selectionList = list;
@ -2574,4 +2512,9 @@ export default {
:deep(.el-upload-list__item-thumbnail) { :deep(.el-upload-list__item-thumbnail) {
object-fit: fill; object-fit: fill;
} }
//
:deep(.el-date-editor.el-input__wrapper) {
height: 100% !important;
}
</style> </style>

400
src/views/financialsector/Financialse/FinancialBill.vue

@ -1,32 +1,288 @@
<template> <template>
<div> <div v-loading="details.loadingObj.pageLoading">
<el-form> <el-form label-width="150px">
<el-form-item label="计费类型"> <!-- 计价方式 -->
<el-input /> <el-form-item label="计价方式">
<el-select
v-model="details.form.priceMethod"
clearable
multiple
placeholder="请选择计价方式"
style="width: 20vw"
@change="handleChangePrcieMethod"
>
<el-option
v-for="item in details.priceMethodType"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<!-- 是否统一区域计费 -->
<el-form-item label="是否统一区域计费">
<el-radio-group v-model="details.form.isUnify" class="ml-4">
<el-radio
v-for="item in details.isType"
:key="item.value"
:label="item.value"
size="large"
>{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<!-- 是否区分品类 -->
<el-form-item label="是否区分品类">
<el-radio-group v-model="details.form.isDistinguish" class="ml-4">
<el-radio
v-for="item in details.isType"
:key="item.value"
:label="item.value"
size="large"
>{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-divider content-position="left">整车计费</el-divider> <el-divider content-position="left">品类管理</el-divider>
<div class="flex">
<el-form inline> <!-- 附加费品类 -->
<el-form-item label="车型"></el-form-item> <el-form-item
<el-form-item label="整车计费( 元/车 )"> v-for="value in details.form.billTemplateDetail"
<el-input-number :min="0" :controls="false" :precision="2" :value-on-clear="0" /> label-width="150px"
</el-form-item> :label="value.title"
</el-form> :key="value.title"
>
<div class="el_table_operation"> <div class="el_Storagecategory" v-loading="goriesloading" element-loading-text="Loading...">
<span class="el_table_operation_span_a">-</span> <div class="el_table_span">
</div> <div class="el_table_id">序号</div>
<div class="el_table_title">产品品类</div>
</div>
<div class="el_table_operation"> <!-- 表格循环 -->
<span class="el_table_operation_span_b">+</span> <div class="el_table_td" v-for="(item, index) in value.categories">
<div class="el_table_idNumber">{{ index }}</div>
<el-select
class="el_Cselect"
v-model="item.Additionalcategories"
filterable
clearable
placeholder="请选择品类"
style="width: 240px"
>
<el-option
v-for="item in Additionalcategories"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<div class="el_table_operation">
<span v-if="item.reduce" class="el_table_operation_span_a">-</span>
<span v-if="item.plus" class="el_table_operation_span_b">+</span>
</div>
</div>
</div> </div>
</el-form-item>
<!-- 是否最低计费 -->
<el-form-item label-width="150px" label="是否最低计费">
<el-radio-group v-model="details.form.isLowest" class="ml-4">
<el-radio v-for="item in details.isType" :key="item.value" :label="item.value" size="large"
>{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<!-- 最低计费类型 -->
<el-form-item v-if="details.form.isLowest === '1'" label-width="150px" label="最低计费类型">
<el-radio-group v-model="details.form.lowestMethod" class="ml-4">
<template v-for="item in details.lowestType" :key="item.value">
<el-radio
v-if="!item.MappingOrNot || details.form.priceMethod.includes(item.mapValue)"
:label="item.value"
size="large"
>{{ item.label }}
</el-radio>
<el-radio v-else :label="item.value" size="large" disabled>{{ item.label }}</el-radio>
</template>
</el-radio-group>
</el-form-item>
<!-- 操作按钮 -->
<div class="flex-c-c">
<el-button type="primary" icon="Refresh" @click="resetFormData">重置</el-button>
<el-button type="primary" icon="Position" @click="resetFormData">保存</el-button>
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts"></script> <script setup lang="ts">
import { ref, reactive } from 'vue';
import { deepClone } from '@/utils/util';
import { ElMessage, ElMessageBox } from 'element-plus';
interface categories {
/** 品类名称 */
label: string;
/** 品类id */
value: string;
/** 显示新增 */
plus: boolean;
/** 显示删除 */
reduce: boolean;
}
interface BillTemplateDetail {
/** 标题 */
title: string;
/** 品类数组 */
categories: categories[];
}
/** 页面数据 */
const details = reactive({
/** 计价方式集合 */
priceMethodType: [
{
label: '按件',
value: '0',
},
{
label: '按整车',
value: '1',
},
{
label: '按方',
value: '2',
},
{
label: '按重量',
value: '3',
},
],
isType: [
{
label: '是',
value: '1',
},
{
label: '否',
value: '0',
},
],
/**
* mapValue 用于映射最低计费类型 当选择的计价方式内与该项中mapValue相同时, 显示其选项
* MappingOrNot 为false时, 不需要检测, 直接显示
*/
lowestType: [
{
label: '价格',
value: '0',
MappingOrNot: false,
},
{
label: '件',
value: '1',
mapValue: '0',
MappingOrNot: true,
},
{
label: '方数(m³)',
value: '2',
mapValue: '2',
MappingOrNot: true,
},
{
label: '重量(kg)',
value: '3',
mapValue: '3',
MappingOrNot: true,
},
],
/** 表单数据 */
form: {
/** 计价方式 */
priceMethod: [],
/** 是否统一区域计费 */
isUnify: '1',
/** 是否区分品类 */
isDistinguish: '1',
/** 是否最低计费 */
isLowest: '1',
/** 最低计费类型 */
lowestMethod: '0',
/** 计费模版详情 */
billTemplateDetail: [
{
/** 标题 */
title: '计费模版详情',
/** 品类数组 */
categories: [{ reduce: true, plus: true, label: '12', value: '11' }],
},
{
/** 标题 */
title: '计费模版详情',
/** 品类数组 */
categories: [{ reduce: true, plus: true, label: '12', value: '11' }],
},
] as BillTemplateDetail[],
},
/** 初始化form数据 */
initForm: {},
/** loading */
loadingObj: {
pageLoading: false,
},
});
const AdditionalcategoriesList = ref([{ reduce: true, plus: true }]);
const Additionalcategories = ref([{}]);
const goriesloading = ref(false);
/** 计价方式改变时 */
const handleChangePrcieMethod = value => {
console.log('value :>> ', value);
let activeItem: any = {};
for (let i = 0; i < details.lowestType.length; i++) {
const item = details.lowestType[i];
if (item.value !== details.form.lowestMethod) continue;
activeItem = item;
break;
}
if (!activeItem.MappingOrNot) return;
if (!details.form.priceMethod.includes(activeItem.mapValue)) details.form.lowestMethod = '0';
};
/** 复制form初始数据 */
const initFormData = () => {
details.initForm = deepClone(details.form);
};
// form
initFormData();
/** 重置数据 */
const resetFormData = () => {
ElMessageBox.confirm('是否重置数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
details.loadingObj.pageLoading = true;
details.form = deepClone(details.initForm);
setTimeout(() => {
details.loadingObj.pageLoading = false;
}, 300);
});
};
</script>
<style lang="scss" scoped> <style lang="scss" scoped>
// //
@ -40,38 +296,90 @@
text-align: left; text-align: left;
} }
.el_table_operation { .el_Cselect {
width: 70px; margin-left: 10px;
height: 100%; }
display: flex; .el_table_span {
align-items: center; font-size: 16px;
justify-content: center; font-weight: 500;
.el_table_operation_span_a, display: inline-block;
.el_table_operation_span_b { width: 160px;
font-size: 20px; }
font-weight: bold;
width: 40%; .el_Storagecategory {
border: 2px solid #f00; border: 1px solid #ccc;
color: #f00; .el_table_span {
border-radius: 6px; display: flex;
cursor: pointer; width: 100%;
text-align: center; background-color: #ebeef5;
line-height: 20px; padding: 4px;
box-sizing: border-box; box-sizing: border-box;
height: 100%;
} }
.el_table_operation_span_b { .el_table_id {
border: 2px solid #0d83b7; width: 62px;
color: #0d83b7; font-weight: 600;
color: #606266;
} }
.el_table_title {
font-weight: 600;
color: #606266;
}
.el_table_td {
display: flex;
height: 40px;
align-items: center;
border-bottom: 1px solid #ccc;
position: relative;
.el_table_operation {
width: 70px;
height: 100%;
display: flex;
align-items: center;
justify-content: space-between;
position: absolute;
right: -80px;
.el_table_operation_span_a,
.el_table_operation_span_b {
font-size: 20px;
font-weight: bold;
width: 40%;
border: 2px solid #f00;
color: #f00;
height: 70%;
border-radius: 6px;
display: block;
line-height: 23px;
text-align: center;
cursor: pointer;
}
.el_table_operation_span_b {
border: 2px solid #0d83b7;
color: #0d83b7;
}
.el_table_operation_span_a:hover { .el_table_operation_span_a:hover {
background-color: #f00; background-color: #f00;
color: #ccc; color: #ccc;
}
.el_table_operation_span_b:hover {
background-color: #0d83b7;
color: #ccc;
}
}
}
.el_table_idNumber {
width: 50px;
text-align: center;
font-size: 16px;
font-weight: 400;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
border-right: 1px solid #ccc;
} }
.el_table_operation_span_b:hover { :deep(.el-input__wrapper) {
background-color: #0d83b7; box-shadow: none;
color: #ccc;
} }
} }
</style> </style>

166
src/views/warehouse/warehousesignedorder/distributionStockArticle.vue

@ -3,59 +3,50 @@
<!-- 首页表格 --> <!-- 首页表格 -->
<div class="avue-crud"> <div class="avue-crud">
<!-- 搜索模块 --> <!-- 搜索模块 -->
<el-row v-if="search"> <div v-h5uShow="search">
<!-- 查询模块 --> <!-- 查询模块 -->
<!-- 查询模块 --> <el-form :inline="true" :model="TopQuery" class="header_search">
<el-form :inline="true" :model="TopQuery" class="el-fr-d"> <el-form-item label="最新入库时间">
<!-- 查询按钮 --> <el-date-picker
v-model="TopQuery.warehouseEntryTime"
type="datetimerange"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="YYYY-MM-DD"
date-format="YYYY/MM/DD"
time-format="A"
@change="Toptiem"
/>
</el-form-item>
<div class="el_top_left"> <el-form-item label="文员复核时间">
<div> <el-date-picker
v-model="TopQuery.signinTime"
<el-form-item label="最新入库时间"> type="datetimerange"
<el-date-picker start-placeholder="开始日期"
v-model="TopQuery.warehouseEntryTime" end-placeholder="结束日期"
type="datetimerange" format="YYYY-MM-DD"
start-placeholder="开始日期" date-format="YYYY/MM/DD"
end-placeholder="结束日期" time-format="A"
format="YYYY-MM-DD" @change="Toptiem"
date-format="YYYY/MM/DD" />
time-format="A" </el-form-item>
@change="Toptiem"
/>
</el-form-item>
<el-form-item label="文员复核时间">
<el-date-picker
v-model="TopQuery.signinTime"
type="datetimerange"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="YYYY-MM-DD"
date-format="YYYY/MM/DD"
time-format="A"
@change="Toptiem"
/>
</el-form-item>
</div>
<!-- 查询按钮 --> <!-- 查询按钮 -->
<el-form-item class="el-btn"> <el-form-item class="el-btn">
<el-button type="primary" icon="el-icon-search" @click="searchChange" <el-button type="primary" icon="el-icon-search" @click="searchChange"> </el-button>
> </el-button <el-button icon="el-icon-delete" @click="searchReset()"> </el-button>
> </el-form-item>
<el-button icon="el-icon-delete" @click="searchReset()"> </el-button>
</el-form-item>
</div>
</el-form> </el-form>
</el-row> </div>
<!-- 控件模块 --> <!-- 控件模块 -->
<el-row> <el-row>
<div class="avue-crud__header"> <div class="avue-crud__header">
<!-- 头部左侧按钮模块 --> <!-- 头部左侧按钮模块 -->
<div class="avue-crud__left"> <div class="avue-crud__left">
<el-button type="primary" @click="AddInfo"><el-icon><Download /></el-icon></el-button <el-button type="primary" @click="AddInfo"
><el-icon><Download /></el-icon></el-button
> >
</div> </div>
<!-- 头部右侧按钮模块 --> <!-- 头部右侧按钮模块 -->
@ -75,6 +66,7 @@
:columnList="columnList" :columnList="columnList"
:tableData="data" :tableData="data"
:loading="loadingObj.list" :loading="loadingObj.list"
:initFn="getrain"
@inputTxt="inputsc" @inputTxt="inputsc"
@timeCheck="timesc" @timeCheck="timesc"
@btnCheck="btnsc" @btnCheck="btnsc"
@ -85,9 +77,7 @@
<template v-if="slotProps.scope.column.label === '订单自编号'"> <template v-if="slotProps.scope.column.label === '订单自编号'">
<el-text class="el_textBtn" @click="OrdernumberClick(slotProps.scope.row)"> <el-text class="el_textBtn" @click="OrdernumberClick(slotProps.scope.row)">
{{ {{
slotProps.scope.column.label === '订单自编号' slotProps.scope.column.label === '订单自编号' ? slotProps.scope.row.orderCode : ''
? slotProps.scope.row.orderCode
: ''
}} }}
</el-text> </el-text>
</template> </template>
@ -102,7 +92,6 @@
</el-text> </el-text>
</template> </template>
<template v-if="slotProps.scope.column.label === '操作'"> <template v-if="slotProps.scope.column.label === '操作'">
<div class="ElBtnClass"> <div class="ElBtnClass">
<el-button @click="view(slotProps.scope)">查看</el-button> <el-button @click="view(slotProps.scope)">查看</el-button>
@ -149,7 +138,7 @@ import { processRowProperty, setNodeHeight } from '@/utils/util';
import { $_signforList } from '@/api/distribution/distributionStockArticle.js'; import { $_signforList } from '@/api/distribution/distributionStockArticle.js';
import functions from '@/utils/functions.js'; import functions from '@/utils/functions.js';
import { ElMessageBox } from 'element-plus'; import { ElMessageBox } from 'element-plus';
const $router = useRouter();// const $router = useRouter(); //
import { useStore } from 'vuex'; import { useStore } from 'vuex';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
const TopQuery = ref({}); const TopQuery = ref({});
@ -304,15 +293,21 @@ const selectionChange = list => {
const searchChange = () => { const searchChange = () => {
// //
if (TopQuery.value.warehouseEntryTime) { if (TopQuery.value.warehouseEntryTime) {
queryCarn.value.startTaskTime = dayjs(TopQuery.value.warehouseEntryTime[0]).format('YYYY-MM-DD HH:mm:ss'); // queryCarn.value.startTaskTime = dayjs(TopQuery.value.warehouseEntryTime[0]).format(
queryCarn.value.endTaskTime = dayjs(TopQuery.value.warehouseEntryTime[1]).format('YYYY-MM-DD HH:mm:ss'); // 'YYYY-MM-DD HH:mm:ss'
); //
queryCarn.value.endTaskTime = dayjs(TopQuery.value.warehouseEntryTime[1]).format(
'YYYY-MM-DD HH:mm:ss'
); //
} else { } else {
delete queryCarn.value.warehouseEntryTimestartTaskTime; delete queryCarn.value.warehouseEntryTimestartTaskTime;
delete queryCarn.value.warehouseEntryTimeendTaskTime; delete queryCarn.value.warehouseEntryTimeendTaskTime;
} }
if (TopQuery.value.signinTime) { if (TopQuery.value.signinTime) {
queryCarn.value.startTaskTime = dayjs(TopQuery.value.signinTime[0]).format('YYYY-MM-DD HH:mm:ss'); // queryCarn.value.startTaskTime = dayjs(TopQuery.value.signinTime[0]).format(
'YYYY-MM-DD HH:mm:ss'
); //
queryCarn.value.endTaskTime = dayjs(TopQuery.value.signinTime[1]).format('YYYY-MM-DD HH:mm:ss'); // queryCarn.value.endTaskTime = dayjs(TopQuery.value.signinTime[1]).format('YYYY-MM-DD HH:mm:ss'); //
} else { } else {
delete queryCarn.value.signinTimestartTaskTime; delete queryCarn.value.signinTimestartTaskTime;
@ -394,6 +389,15 @@ function updateDictionary(targetArray, dictionaryType) {
// //
const getrain = () => { const getrain = () => {
if (details.loadingObj.list) return;
if (Object.keys(details.query).length === 0 && Object.keys(queryCarn.value).length === 0) {
details.page.total = 0;
details.data = [];
return;
}
let data = { let data = {
current: details.page.currentPage, current: details.page.currentPage,
size: details.page.pageSize, size: details.page.pageSize,
@ -403,9 +407,13 @@ const getrain = () => {
details.loadingObj.list = true; details.loadingObj.list = true;
$_signforList(data) $_signforList(data)
.then(res => { .then(res => {
const { code, data } = res.data;
if (code !== 200) return;
console.log(res, '当前参数'); console.log(res, '当前参数');
details.page.total = res.data.data.total;
details.data = res.data.data.records; details.page.total = data ? data.total || 0 : 0;
details.data = data ? data.records || [] : 0;
}) })
.catch(() => {}) .catch(() => {})
.finally(() => { .finally(() => {
@ -414,40 +422,28 @@ const getrain = () => {
}; };
// getrain(); // getrain();
const removeParentheses=(str)=>{ const removeParentheses = str => {
const index = str.indexOf("("); // const index = str.indexOf('('); //
if (index !== -1) { if (index !== -1) {
return str.substring(0, index); // return str.substring(0, index); //
} }
return str; return str;
} };
// //
const informationClick=(val)=>{ const informationClick = val => {
return return;
console.log(val,'预约信息'); };
let data= removeParentheses(val.reservationInfo)
console.log(data,'处理好的数据');
$router.push({
path: '/distribution/signfor/distributionSignforedt',
query: {
id:'1772931455518982145',
reservationId:'1772875103987769346',
name: '1772875103987769346' + '-预约单详情',
},
});
}
const OrdernumberClick=(val)=>{ const OrdernumberClick = val => {
$router.push({ $router.push({
path: '/distribution/inventory/distributionStockArticleDetails', path: '/distribution/inventory/distributionStockArticleDetails',
query: { query: {
id:val.id, id: val.id,
name: `${val.orderCode}预约单详情`, name: `${val.orderCode}预约单详情`,
isZero:0, isZero: 0,
}, },
}); });
} };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -475,4 +471,8 @@ const OrdernumberClick=(val)=>{
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
:deep(.el-date-editor.el-input__wrapper) {
height: 100% !important;
}
</style> </style>

1
src/views/waybill/CreateZeroOrder.vue

@ -2261,6 +2261,7 @@ const handleFindPrice = async (condition?: any) => {
watch( watch(
() => $route.query, () => $route.query,
() => { () => {
if ($route.path !== '/waybill/CreateZeroOrder') return;
initPageInfo(); initPageInfo();
}, },
{ immediate: true } { immediate: true }

1
src/views/waybill/TemporaryStorageList.vue

@ -1057,6 +1057,7 @@ const handleCreateOrder = () => {
}); });
} }
$store.commit('DEL_ONCE_TAG', '/distribution/inventory/CreateOrder');
$router.push({ $router.push({
path: `/distribution/inventory/CreateOrder`, path: `/distribution/inventory/CreateOrder`,
query: { query: {

6
src/views/waybill/WaybillOrderList.vue

@ -272,7 +272,7 @@
import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue'; import { ref, reactive, toRefs, computed, onMounted, nextTick } from 'vue';
import functions from '@/utils/functions.js'; import functions from '@/utils/functions.js';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { mapGetters } from 'vuex'; import { mapGetters, useStore } from 'vuex';
/** 获取字典 */ /** 获取字典 */
import { getDictionaryBiz } from '@/api/system/dict'; import { getDictionaryBiz } from '@/api/system/dict';
import { import {
@ -288,6 +288,8 @@ import { ElMessage } from 'element-plus';
import { getToken } from '@/utils/auth'; import { getToken } from '@/utils/auth';
import type { UploadProps, UploadUserFile } from 'element-plus'; import type { UploadProps, UploadUserFile } from 'element-plus';
const $store = useStore();
// //
const $router = useRouter(); const $router = useRouter();
@ -599,6 +601,8 @@ const editOrder = () => {
const _item = details.selectionList[0]; const _item = details.selectionList[0];
console.log('_item :>> ', _item); console.log('_item :>> ', _item);
if (Number(_item.waybillType) === 1 || _item.orderNo) { if (Number(_item.waybillType) === 1 || _item.orderNo) {
$store.commit('DEL_ONCE_TAG', '/distribution/inventory/CreateOrder');
// //
$router.push({ $router.push({

5
src/views/waybill/orderPackageList.vue

@ -619,10 +619,7 @@ const handleShowPackageOrderList = ({ row }) => {
}); });
}; };
/** 订单转运单 */
const handleCreateOrder = () => {
$router.push('/distribution/inventory/CreateOrder');
};
/** 修改客户信息 */ /** 修改客户信息 */
const editClientInfo = () => { const editClientInfo = () => {

5
src/views/waybill/orderPackageListDetails.vue

@ -629,11 +629,6 @@ const handleShowPackageOrderList = ({ row }) => {
}); });
}; };
/** 订单转运单 */
const handleCreateOrder = () => {
$router.push('/distribution/inventory/CreateOrder');
};
/** 修改客户信息 */ /** 修改客户信息 */
const editClientInfo = () => { const editClientInfo = () => {
if (details.selectionList.length !== 0) { if (details.selectionList.length !== 0) {

Loading…
Cancel
Save