Browse Source

成本,修复日期

dev-xx
马远东 9 months ago
parent
commit
bc6075e126
  1. 38
      src/api/storagecost/index.js
  2. 364
      src/option/signfor/asurcharge.js
  3. 38
      src/option/storagecost/Monthlyorderwarehousing.js
  4. 68
      src/option/storagecost/WarehouseMonthly.js
  5. 42
      src/router/views/index.js
  6. 668
      src/views/cost/storagecost/Monthlyorderwarehousing.vue
  7. 704
      src/views/cost/storagecost/WarehouseMonthly.vue
  8. 686
      src/views/distribution/signfor/asurcharge.vue
  9. 17
      src/views/distribution/signfor/distributionSignfortreat.vue
  10. 2
      src/views/distribution/stockup/distributionStockupDiscuss.vue
  11. 2
      src/views/distribution/stockup/distributionStockupMarket.vue
  12. 2
      src/views/distribution/stockup/distributionStockupSelf.vue
  13. 24
      src/views/tool/code.vue
  14. 16
      src/views/warehouse/warehousesignedorder/distributionStockArticle.vue

38
src/api/storagecost/index.js

@ -0,0 +1,38 @@
import request from '@/axios';
// 月度仓储成本统计表接口
export const $_Getlist = params => {
return request({
url: '/api/logpm-statisticsdata/expenseWarehouseMonth/list',
method: 'get',
params,
});
};
// 获取仓库
export const $_getMyWarehouseList = params => {
return request({
url: '/api/logpm-basicdata/warehouse/getMyWarehouseList',
method: 'get',
params,
});
};
//月度仓储成本统计导出
export const $_expenseWarehouseMonth = params => {
return request({
url: '/api/logpm-statisticsdata/expenseWarehouseMonth/export-expenseWarehouseMonth',
method: 'get',
params,
responseType: 'blob'
});
};
// 月度订单仓储成本明细列表
export const $_Monthlyorderwarehousing = params => {
return request({
url: '/api/logpm-statisticsdata/expenseOrderWarehouseMonth/list',
method: 'get',
params,
});
};

364
src/option/signfor/asurcharge.js

@ -0,0 +1,364 @@
export const columnList = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'orderCode',
label: '订单自编号',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'brandName',
label: '品牌',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'clientName',
label: '客户名称',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'materialName',
label: '货物名称',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'firsts',
label: '一级品',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'second',
label: '二级品',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'thirdProduct',
label: '三级品',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'orderPackageCode',
label: '包条码',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'quantity',
label: '数量',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'conditions',
label: '包条类型',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'sku',
label: 'sku',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'materialCode',
label: '物料编码',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '上楼层数',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'aa',
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,
},
];
export const columnListTC = [
{
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: '',
label: '序号',
type: 12,
values: '',
width: 55,
fixed: true,
},
{
prop: 'orderCode',
label: '订单自编号',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'brandName',
label: '品牌',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'clientName',
label: '客户名称',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'materialName',
label: '货物名称',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'firsts',
label: '一级品',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'second',
label: '二级品',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'thirdProduct',
label: '三级品',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'orderPackageCode',
label: '包条码',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'quantity',
label: '数量',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'conditions',
label: '包条类型',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'sku',
label: 'sku',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'materialCode',
label: '物料编码',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'a',
label: '上楼层数',
type: 1,
values: '',
width: '150',
checkarr: [],
fixed: false,
sortable: true,
head: false,
},
{
prop: 'aa',
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,
},
];

38
src/option/storagecost/Monthlyorderwarehousing.js

@ -15,7 +15,7 @@ export const columnList = [
fixed: true,
},
{
prop: 'a1',
prop: 'warehouseName',
label: '目的仓',
type: 2,
values: '',
@ -26,7 +26,7 @@ export const columnList = [
head: false,
},
{
prop: 'a2',
prop: 'orderCode',
label: '订单编号 ',
type: 2,
values: '',
@ -37,7 +37,7 @@ export const columnList = [
head: false,
},
{
prop: 'a3',
prop: 'shipmentNumber',
label: '运单编号',
type: 1,
values: '',
@ -48,7 +48,7 @@ export const columnList = [
head: false,
},
{
prop: 'a4',
prop: 'receivingUnit',
label: '收货单位',
type: 1,
values: '',
@ -59,7 +59,7 @@ export const columnList = [
head: false,
},
{
prop: 'a5',
prop: 'shippingUnit',
label: '发货单位',
type: 1,
values: '',
@ -70,7 +70,7 @@ export const columnList = [
head: false,
},
{
prop: 'a6',
prop: 'shipmenttype',
label: '运单类型',
type: 3,
values: '',
@ -90,7 +90,7 @@ export const columnList = [
head: false,
},
{
prop: 'a7',
prop: 'servicetype',
label: '服务类型',
type: 1,
values: '',
@ -101,7 +101,7 @@ export const columnList = [
head: false,
},
{
prop: 'a8',
prop: 'totalQuantity',
label: '总件数',
type: 1,
values: '',
@ -112,7 +112,7 @@ export const columnList = [
head: false,
},
{
prop: 'a9',
prop: 'totalQuantityReleased',
label: '已出库总件数',
type: 1,
values: '',
@ -123,7 +123,7 @@ export const columnList = [
head: false,
},
{
prop: 'a11',
prop: 'monthlyIssuedQuantity',
label: '月出库件数',
type: 1,
values: '',
@ -134,7 +134,7 @@ export const columnList = [
head: false,
},
{
prop: 'a12',
prop: 'originWarehouse',
label: '发站仓',
type: 1,
values: '',
@ -145,7 +145,7 @@ export const columnList = [
head: false,
},
{
prop: 'a13',
prop: 'monthConsignmentInQuantity',
label: '月代入库仓件数',
type: 1,
values: '',
@ -156,7 +156,7 @@ export const columnList = [
head: false,
},
{
prop: 'a14',
prop: 'monthConsignmentInTotalCost',
label: '月代入库总成本',
type: 1,
values: '',
@ -167,7 +167,7 @@ export const columnList = [
head: false,
},
{
prop: 'a15',
prop: 'monthConsignmentOutQuantity',
label: '月代出库仓件数',
type: 1,
values: '',
@ -178,7 +178,7 @@ export const columnList = [
head: false,
},
{
prop: 'a16',
prop: 'monthConsignmentOutTotalCost',
label: '月代出库成本',
type: 1,
values: '',
@ -189,7 +189,7 @@ export const columnList = [
head: false,
},
{
prop: 'a17',
prop: 'monthContractedOperaCost',
label: '月代作业成本',
type: 1,
values: '',
@ -200,7 +200,7 @@ export const columnList = [
head: false,
},
{
prop: 'a17',
prop: 'monthWarehouseRentalCost',
label: '月仓租成本',
type: 1,
values: '',
@ -211,7 +211,7 @@ export const columnList = [
head: false,
},
{
prop: 'a17',
prop: 'monthWarehousingCost',
label: '月仓储成本',
type: 1,
values: '',
@ -222,7 +222,7 @@ export const columnList = [
head: false,
},
{
prop: 'a18',
prop: 'costSettlementTime',
label: '成本结算时间',
type: 1,
values: '',

68
src/option/storagecost/WarehouseMonthly.js

@ -1,13 +1,13 @@
export const columnList = [
{
prop: 'checkbox',
prop: '',
label: '复选框',
type: 0,
width: 55,
fixed: true,
},
{
prop: 'xh',
prop: '',
label: '序号',
type: 12,
values: '',
@ -15,7 +15,7 @@ export const columnList = [
fixed: true,
},
{
prop: 'a1',
prop: 'warehouseName',
label: '目的仓',
type: 2,
values: '',
@ -26,7 +26,7 @@ export const columnList = [
head: false,
},
{
prop: 'a2',
prop: 'costSettlementTime',
label: '成本结算时间',
type: 1,
values: '',
@ -37,7 +37,7 @@ export const columnList = [
head: false,
},
{
prop: 'a3',
prop: 'totalArea',
label: '仓库总面积(㎡)',
type: 1,
values: '',
@ -48,7 +48,7 @@ export const columnList = [
head: false,
},
{
prop: 'a4',
prop: 'monthlyRent',
label: '仓库月租金',
type: 1,
values: '',
@ -59,7 +59,7 @@ export const columnList = [
head: false,
},
{
prop: 'a5',
prop: 'totalQuantityIssued',
label: '出库总件数',
type: 1,
values: '',
@ -70,7 +70,7 @@ export const columnList = [
head: false,
},
{
prop: 'a6',
prop: 'customerLeasedArea',
label: '客户租用面积(㎡)',
type: 1,
values: '',
@ -81,7 +81,7 @@ export const columnList = [
head: false,
},
{
prop: 'a7',
prop: 'customerMonthlyRent',
label: '客户月租金',
type: 1,
values: '',
@ -92,7 +92,7 @@ export const columnList = [
head: false,
},
{
prop: 'a8',
prop: 'rentedItemsDispatchedQuantity',
label: '租用出库件数',
type: 1,
values: '',
@ -103,7 +103,7 @@ export const columnList = [
head: false,
},
{
prop: 'a9',
prop: 'customerRentedItemCostPerUnit',
label: '客户租用单件成本',
type: 1,
values: '',
@ -114,7 +114,7 @@ export const columnList = [
head: false,
},
{
prop: 'a11',
prop: 'customerTotalLeasingCost',
label: '客户租用总成本',
type: 1,
values: '',
@ -125,7 +125,7 @@ export const columnList = [
head: false,
},
{
prop: 'a12',
prop: 'temporaryTurnoverArea',
label: '临时周转面积',
type: 1,
values: '',
@ -136,7 +136,7 @@ export const columnList = [
head: false,
},
{
prop: 'a13',
prop: 'temporaryTurnoverQuantity',
label: '临时周转件数',
type: 1,
values: '',
@ -147,7 +147,7 @@ export const columnList = [
head: false,
},
{
prop: 'a14',
prop: 'temporaryTurnoverCostPerItem',
label: '临时周转单件成本',
type: 1,
values: '',
@ -158,7 +158,7 @@ export const columnList = [
head: false,
},
{
prop: 'a14',
prop: 'totalTemporaryTurnoverCost',
label: '临时周转总成本',
type: 1,
values: '',
@ -169,7 +169,7 @@ export const columnList = [
head: false,
},
{
prop: 'a15',
prop: 'drWareDisArea',
label: '干仓配仓储面积(㎡)',
type: 1,
values: '',
@ -180,7 +180,7 @@ export const columnList = [
head: false,
},
{
prop: 'a16',
prop: 'drWareDisNumber',
label: '干仓配件数',
type: 1,
values: '',
@ -191,7 +191,7 @@ export const columnList = [
head: false,
},
{
prop: 'a17',
prop: 'drWareDisCostPerUnit',
label: '干仓配单件成本',
type: 1,
values: '',
@ -202,7 +202,7 @@ export const columnList = [
head: false,
},
{
prop: 'a18',
prop: 'drWareDisTotalCost',
label: '干仓配仓储总成本',
type: 1,
values: '',
@ -213,7 +213,7 @@ export const columnList = [
head: false,
},
{
prop: 'a19',
prop: 'totalCostOfConsignmentStorage',
label: '代入库总成本',
type: 1,
values: '',
@ -224,7 +224,7 @@ export const columnList = [
head: false,
},
{
prop: 'a20',
prop: 'totalCostOfConsignmentWithdrawal',
label: '代出库总成本',
type: 1,
values: '',
@ -235,7 +235,7 @@ export const columnList = [
head: false,
},
{
prop: 'a21',
prop: 'totalCostOfAgencyOperations',
label: '代作业总成本',
type: 1,
values: '',
@ -246,7 +246,7 @@ export const columnList = [
head: false,
},
{
prop: 'a22',
prop: 'totalWarehouseCost',
label: '仓储总成本',
type: 1,
values: '',
@ -256,14 +256,14 @@ export const columnList = [
sortable: true,
head: false,
},
{
prop: 'createUserName',
label: '操作',
type: 6,
values: '',
width: '200',
checkarr: [],
fixed: 'right',
sortable: false,
},
// {
// prop: '',
// label: '操作',
// type: 6,
// values: '',
// width: '200',
// checkarr: [],
// fixed: 'right',
// sortable: false,
// },
];

42
src/router/views/index.js

@ -1715,6 +1715,23 @@ export default [
},
],
},
{
path: '/distribution/signfor/asurcharge',
component: Layout,
redirect: '/distribution/signfor/asurcharge',
children: [
{
meta: {
i18n: 'dict',
keepAlive: true,
},
path: '/distribution/signfor/asurcharge',
name: '附加费编辑',
component: () => import('@/views/distribution/signfor/asurcharge.vue'),
},
],
},
// 工单新增重构页面
// {
@ -1787,30 +1804,7 @@ export default [
// },
// ],
// },
// {
// path: '/distribution/signfor/devtmp',
// component: Layout,
// redirect: '/distribution/signfor/devtmp',
// children: [
// {
// path: '/distribution/signfor/devtmp',
// name: '签收明细重构',
// component: () => import('@/views/distribution/signfor/devtmp.vue'),
// },
// ],
// },
// {
// path: 'basicdata/goodsShelf/basicdataGoodsShelfView',
// component: Layout,
// redirect: '/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView',
// children: [
// {
// path: '/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView',
// name: '',
// component: () => import(/* webpackChunkName: "views" */ '@/views/basicdata/warehouse/goodsShelf/basicdataGoodsShelfView.vue'),
// },
// ],
// },
// {
// path: '/distribution/inventory/distributionPrints',
// component: Layout,

668
src/views/cost/storagecost/Monthlyorderwarehousing.vue

@ -1,303 +1,401 @@
<template>
<basic-container>
<!-- 首页表格 -->
<div class="avue-crud">
<!-- 搜索模块 -->
<el-row v-if="search">
<!-- 查询模块 -->
<el-form :inline="true" :model="query" class="el-fr-d">
<!-- 查询按钮 -->
<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>
<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-input v-model="queryTop.orderNo" placeholder="请输入客户名称"></el-input>
</el-form-item> -->
<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>
</el-form>
</el-row>
<!-- 控件模块 -->
<el-row>
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button type="primary" @click="AddInfo"><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">
</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-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="AddInfo"
><el-icon><Plus /></el-icon></el-button
>
</el-pagination>
</div>
</el-row>
</div>
</basic-container>
<!-- 列表配置显示 -->
<edittablehead
@setcolum="setnewcolum"
@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/Monthlyorderwarehousing.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 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];
},
<!-- 头部右侧按钮模块 -->
<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"></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
@setcolum="setnewcolum"
@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/Monthlyorderwarehousing.js';
import { $_Monthlyorderwarehousing, $_getMyWarehouseList } 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 queryTop=ref({})
const monthList = 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];
},
],
/** 时间选择器数据 */
stockupDate: [],
/** 列表 */
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,
{
text: '最近一个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
return [start, end];
},
},
/** 列表Dom节点 */
listNode: '',
form: {},
/** 全屏 */
fullscreenObj: {
/** 包明细 */
packageOrderListlVisited: false,
{
text: '最近三个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
return [start, end];
},
},
});
const {
search,
query,
shortcuts,
stockupDate,
data,
loadingObj,
selectionList,
drawerShow,
page,
trickleLoadingPage,
zeroAdditionalRecordingInfo,
popUpShow,
recorddata,
} = toRefs(details);
],
/** 时间选择器数据 */
stockupDate: [],
/** 列表 */
columnList,
/** 展开列表控件 */
const showdrawer = _flag => {
details.drawerShow = _flag;
};
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
processRowProperty(index, row, details);
test(details.query);
};
//
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 = () => {
details.search = false; //
};
//
const sizeChange = val => {
page.value.pageSize = val;
};
/** 页码改变执行的回调 */
const currentChange = val => {
page.value.currentPage = val;
};
//
const searchChangeS = () => {
details.search = false; //
};
//
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 onLoad=()=>{
/** 列表数据 */
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,
stockupDate,
data,
loadingObj,
selectionList,
drawerShow,
page,
trickleLoadingPage,
zeroAdditionalRecordingInfo,
popUpShow,
recorddata,
} = toRefs(details);
//
</script>
<style scoped lang="scss">
.ElBtnClass button {
border: none;
padding: 0;
background-color: transparent;
/** 展开列表控件 */
const showdrawer = _flag => {
details.drawerShow = _flag;
};
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
processRowProperty(index, row, details);
test(details.query);
};
//
const test = val => {};
/** 表格表头时间选择 */
const timesc = (index, row) => {
console.log(index, row);
if (!!index) {
index = dayjs(index).format('YYYY-MM-DD');
}
:deep(.el-card) {
height: 100%;
details.query[row.prop] = index;
if (!index) {
delete details.query[row.prop];
}
:deep(.el-card__body) {
height: 100%;
display: flex;
flex-direction: column;
};
/** 表格表头输入框搜索 */
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;
}
.el-fy {
flex: 1;
display: flex;
align-items: flex-end;
margin-bottom: 10px;
if (queryTop.value.costSettlementMonth) {
if (!queryTop.value.costSettlementYear) {
ElMessage({
message: '请选择年份',
type: 'warning',
});
return;
}
}
.avue-crud {
height: 100%;
display: flex;
flex-direction: column;
details.query = { ...details.query, ...queryTop.value };
delete details.query.warehouse; //
onLoad();
};
//
const sizeChange = val => {
details.page.pageSize = val;
onLoad();
};
/** 页码改变执行的回调 */
const currentChange = val => {
details.page.currentPage = val;
onLoad();
};
//
const searchChangeS = () => {
details.search = false; //
};
//
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 onLoad = value => {
let data = {
current: details.page.currentPage,
size: details.page.pageSize,
...details.query,
...value,
};
$_Monthlyorderwarehousing(data).then(res => {
console.log(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 + '月',
});
}
</style>
};
//
const MyWarehouseList = () => {
$_getMyWarehouseList().then(res => {
console.log(res, '仓库列表');
res.data.data.forEach(item => {
warehouseList.value.push({
value: item.name,
label: item.name,
});
});
});
};
//
const PageOnload = () => {
onLoad(); //
MyWarehouseList(); //
monthFn(); //
};
//
PageOnload();
</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;
}
</style>

704
src/views/cost/storagecost/WarehouseMonthly.vue

@ -1,303 +1,437 @@
<template>
<basic-container>
<!-- 首页表格 -->
<div class="avue-crud">
<!-- 搜索模块 -->
<el-row v-if="search">
<!-- 查询模块 -->
<el-form :inline="true" :model="query" class="el-fr-d">
<!-- 查询按钮 -->
<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>
<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>
</el-form>
</el-row>
<!-- 控件模块 -->
<el-row>
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button type="primary" @click="AddInfo"><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-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
>
</el-pagination>
</div>
</el-row>
</div>
</basic-container>
<!-- 列表配置显示 -->
<edittablehead
@setcolum="setnewcolum"
@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/WarehouseMonthly.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 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];
},
<!-- 头部右侧按钮模块 -->
<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
@setcolum="setnewcolum"
@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/WarehouseMonthly.js';
import {
$_Getlist,
$_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];
},
],
/** 时间选择器数据 */
stockupDate: [],
/** 列表 */
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,
{
text: '最近一个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
return [start, end];
},
},
/** 列表Dom节点 */
listNode: '',
form: {},
/** 全屏 */
fullscreenObj: {
/** 包明细 */
packageOrderListlVisited: false,
{
text: '最近三个月',
value: () => {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
return [start, end];
},
},
});
const {
search,
query,
shortcuts,
stockupDate,
data,
loadingObj,
selectionList,
drawerShow,
page,
trickleLoadingPage,
zeroAdditionalRecordingInfo,
popUpShow,
recorddata,
} = toRefs(details);
],
/** 时间选择器数据 */
stockupDate: [],
/** 列表 */
columnList,
/** 展开列表控件 */
const showdrawer = _flag => {
details.drawerShow = _flag;
};
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
processRowProperty(index, row, details);
test(details.query);
};
//
const test=(val)=>{
/** 列表数据 */
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,
stockupDate,
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');
}
/** 表格表头时间选择 */
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];
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;
}
if (queryTop.value.costSettlementMonth) {
if (!queryTop.value.costSettlementYear) {
ElMessage({
message: '请选择年份',
type: 'warning',
});
return;
}
};
/** 表格表头输入框搜索 */
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 = () => {
details.search = false; //
};
//
const sizeChange = val => {
page.value.pageSize = val;
};
/** 页码改变执行的回调 */
const currentChange = val => {
page.value.currentPage = val;
};
//
const searchChangeS = () => {
details.search = false; //
};
//
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,
});
}
details.query = { ...details.query, ...queryTop.value };
delete details.query.warehouse; //
onLoad();
};
//
const sizeChange = val => {
details.page.pageSize = val;
onLoad();
};
/** 页码改变执行的回调 */
const currentChange = val => {
details.page.currentPage = val;
onLoad();
};
//
const searchChangeS = () => {
details.search = false; //
};
//
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 onLoad=()=>{
});
}
//
</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;
//
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,
};
$_Getlist(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 + '月',
});
}
.avue-crud {
height: 100%;
display: flex;
flex-direction: column;
};
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>
}
</style>

686
src/views/distribution/signfor/asurcharge.vue

@ -0,0 +1,686 @@
<template>
<basic-container>
<!-- 首页表格 -->
<div class="avue-crud">
<!-- 搜索模块 -->
<el-row v-if="search">
<!-- 查询模块 -->
<el-form :inline="true" :model="query" class="el-fr-d">
<!-- 查询按钮 -->
<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-item label="配送日期">
<el-date-picker
v-model="TopQuery.time"
type="datetimerange"
unlink-panels
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
:default-time="defaultTime2"
/>
</el-form-item> -->
</el-form>
</el-row>
<div class="header">
<h2 class="money">合计费用:999999</h2>
<div class="radio">
<div class="el_radio">
<span class="title">是否专车</span>
<el-radio-group v-model="radio">
<el-radio :value="0"></el-radio>
<el-radio :value="1"></el-radio>
</el-radio-group>
</div>
<div class="el_radio el_money">
<span class="title">专车费用</span>
<el-input-number
v-model="form.num"
:min="0"
:max="10"
@change="handleChange"
:controls="false"
:value-on-clear="0"
/>
</div>
<div class="el_radio">
<span class="title">是否超区</span>
<el-radio-group v-model="radio">
<el-radio :value="0"></el-radio>
<el-radio :value="1"></el-radio>
</el-radio-group>
</div>
<div class="el_radio el_money">
<span class="title">超区公里数</span>
<el-input-number
v-model="form.num"
:min="0"
@change="handleChange"
:controls="false"
:value-on-clear="0"
/>
</div>
<div class="el_radio el_money">
<span class="title">超区费用</span>
<el-input-number
v-model="form.num"
:min="0"
@change="handleChange"
:controls="false"
:value-on-clear="0"
/>
</div>
</div>
<!-- --- -->
<!-- <div class="radio">
<div class="el_radio">
<span class="title">是否超区</span>
<el-radio-group v-model="radio">
<el-radio :value="0"></el-radio>
<el-radio :value="1"></el-radio>
</el-radio-group>
</div>
<div class="el_radio el_money">
<span class="title">超区公里数</span>
<el-input-number
v-model="form.num"
:min="0"
@change="handleChange"
:controls="false"
:value-on-clear="0"
/>
</div>
<div class="el_radio el_money">
<span class="title">超区费用</span>
<el-input-number
v-model="form.num"
:min="0"
@change="handleChange"
:controls="false"
:value-on-clear="0"
/>
</div>
</div> -->
</div>
<!-- 控件模块 -->
<el-row>
<div class="avue-crud__header">
<!-- 头部左侧按钮模块 -->
<div class="avue-crud__left">
<el-button type="primary" @click="AddInfo"
><el-icon><Plus /></el-icon></el-button
>
<el-button type="primary" @click="AddInfo"
><el-icon><Delete /></el-icon></el-button
>
<el-button type="primary" @click="exportExcel"
><el-icon><Download /></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>
<div v-loading="loadingObj.list">
<!-- 首页表格 -->
<el-tabs v-model="tabName" type="border-card" class="el_tab_top" @tab-click="tabchange">
<el-tab-pane label="上楼费" name="1"></el-tab-pane>
<el-tab-pane label="装卸费" name="4"></el-tab-pane>
<el-tab-pane label="平移费" name="3"></el-tab-pane>
<el-tab-pane label="分货费" name="5"></el-tab-pane>
</el-tabs>
<el-row>
<!-- 列表模块 -->
<tablecmt
class="tableNode"
:columnList="details.columnList"
:tableData="data"
@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="deldet(slotProps.scope)">删除</el-button>
</div>
</template>
</template>
</tablecmt>
</el-row>
</div>
<!-- 分页模块 -->
<!-- <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>
<el-dialog v-model="packdialog" :title="Tipstitle" width="70%">
<!-- 列表模块 -->
<tablecmt
class="TctableNode"
:columnList="details.columnListTC"
:tableData="dataTC"
@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="deldet(slotProps.scope)">删除</el-button>
</div>
</template>
</template>
</tablecmt>
<template #footer>
<div class="dialog-footer">
<el-button @click="packdialog = false">取消</el-button>
<el-button type="primary" @click="Packageconfirmation"> 确定 </el-button>
</div>
</template>
</el-dialog>
<el-dialog v-model="ConfirmationInformation" title="数据确认" width="50%">
<el-form :inline="true" :model="TcZcInput" style="display: flex" class="tcSoInput">
<el-form-item label="包件总数:">
<el-input v-model="details.TCselectionList.length" disabled placeholder="已选择包件总数" />
</el-form-item>
<el-form-item label="楼层" width="240px" v-if="Tipstitle == '上楼费'">
<el-input-number
v-model="TcZcInput.floolNum"
:min="0"
:controls="false"
:value-on-clear="0"
placeholder="请输入楼层"
/>
</el-form-item>
<el-form-item label="平移费:" width="240px" v-if="Tipstitle == '平移费'">
<el-input-number
v-model="TcZcInput.fee"
:min="0"
:controls="false"
:value-on-clear="0"
placeholder="请输入距离&emsp;单位:米"
/>
</el-form-item>
<!-- <el-form-item label="费用:" width="200px">
<el-input v-model="TcZcInput.fee" placeholder="请输入费用" />
</el-form-item> -->
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="TCancellation">取消</el-button>
<el-button type="primary" @click="ConfirmSubmission"> 确认提交 </el-button>
</span>
</template>
</el-dialog>
<!-- 列表配置显示 -->
<edittablehead
@setcolum="setnewcolum"
@closce="showdrawer"
:drawerShow="drawerShow"
:columnList="details.columnList"
v-model="details.columnList"
></edittablehead>
</template>
<script>
export default {
name: '/distribution/signfor/asurcharge',
};
</script>
<script setup>
import { ref, reactive, toRefs, computed, onMounted, nextTick, watch } from 'vue';
import { columnList, columnListTC } from '@/option/signfor/asurcharge.js';
import {
addvalueInfoList,
$_checkAddValuePackageList,
} from '@/api/distribution/distributionSignfor';
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 tabName = ref('1');
const addvalueDetailId = ref('');
const ConfirmationInformation = ref(false);
const $route = useRoute(); //
const packdialog = ref(false);
const Tipstitle = ref('上楼费'); //
const TcZcInput = ref({});
const form = ref({
num: 0,
});
const details = reactive({
/** 是否开启搜索 */
search: false,
/** 表格搜索条件 */
query: {},
defaultTime2: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)], // '12:00:00', '08:00:00'
/** 时间快捷选择设置 */
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];
},
},
],
/** 时间选择器数据 */
stockupDate: [],
/** 列表 */
columnList,
columnListTC,
/** 列表数据 */
data: [],
//
dataTC: [],
/** 页面loading */
loadingObj: {
/** 列表加载loading */
list: false,
packageListLoading: false,
},
/** 列表复选框选中的数据 */
selectionList: [],
TCselectionList: [],
/** 是否显示设置表格 */
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,
stockupDate,
data,
dataTC,
loadingObj,
selectionList,
TCselectionList,
drawerShow,
page,
trickleLoadingPage,
zeroAdditionalRecordingInfo,
popUpShow,
recorddata,
defaultTime2,
} = toRefs(details);
/** 展开列表控件 */
const showdrawer = _flag => {
details.drawerShow = _flag;
};
/** 表格表头输入框搜索 */
const inputsc = (index, row) => {
details.query[row.prop] = index;
processRowProperty(index, row, details);
test(details.query);
};
//
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);
console.log(packdialog.value, 'packdialog');
if (!packdialog.value) {
//
details.selectionList = list;
} else {
//
details.TCselectionList = list;
}
};
//
const searchChange = () => {
details.search = false; //
};
//
const sizeChange = val => {
details.page.pageSize = val;
};
/** 页码改变执行的回调 */
const currentChange = val => {
details.page.currentPage = val;
};
//
const searchChangeS = () => {
details.search = false; //
};
//
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 exportExcel = () => {
ElMessage({
message: '功能维护中',
type: 'warning',
});
return;
};
//
const onLoad = (value = 1) => {
let data = {
addvalueId: value,
signforId: $route.query.id,
reservationId: $route.query.reservationId,
};
details.loadingObj.list = true;
addvalueInfoList(data)
.then(res => {
console.log(res, 'res');
if (res.data.code == 200) {
if (res.data.data == null) {
details.data = [];
addvalueDetailId.value = '';
return;
}
if (res.data.data.addvalueDetailId) {
addvalueDetailId.value = res.data.data.addvalueDetailId;
}
details.data = res.data.data.packageEntityList;
}
})
.catch(error => {
console.log(error);
})
.finally(() => {
details.loadingObj.list = false;
});
};
onLoad();
//
const tabchange = row => {
console.log(row, 'row ');
tabName.value = row.props.name;
Tipstitle.value = row.props.label; //
onLoad(row.props.name);
};
//
const Newlyadded = value => {
let data = {
reservationId: $route.query.reservationId,
current: 1,
size: 1,
...value,
};
$_checkAddValuePackageList(data).then(res => {
console.log(res, 'res');
details.dataTC = res.data.records;
});
};
//
const AddInfo = () => {
packdialog.value = true; //
let Time = setTimeout(() => {
const _node = document.querySelector('.TctableNode');
setNodeHeight(_node, '', true);
Newlyadded();
clearTimeout(Time);
}, 0);
};
const Packageconfirmation = () => {
if (!details.TCselectionList.length) {
ElMessage({
message: '请勾选数据',
type: 'warning',
});
return;
}
ConfirmationInformation.value = true; //
};
//
const ConfirmSubmission=()=>{
let data={
addvalueType:tabName.value,//
deliveryId: $route.query.id,
reservationId:$route.query.reservationId,
num:0,//
packageEntityList:details.TCselectionList,//
}
console.log(data,'准备提交的数据');
}
//
// const exportExcel = () => {
// if (!Object.values(queryCarn.value).length && !Object.values(details.query).length) {
// ElMessage({
// message: '',
// type: 'warning',
// });
// return;
// }
// ElMessageBox.confirm('?', {
// confirmButtonText: '',
// cancelButtonText: '',
// type: 'warning',
// })
// .then(() => {
// details.loadingObj.list = true;
// let data = {
// current: details.page.currentPage,
// size: details.page.pageSize,
// ...details.query,
// ...queryCarn.value,
// };
// $_signforDistributionStockArticleList(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;
}
.header {
.money {
padding: 10px;
margin: 0;
border-bottom: 1px solid #ccc;
margin-bottom: 10px;
}
.radio {
display: flex;
}
.el_money {
width: 16%;
display: flex;
margin-left: 34px;
align-items: center;
justify-content: flex-end;
}
.el_radio {
margin-bottom: 10px;
width: 10%;
display: flex;
flex-direction: column;
align-items: flex-start;
.title {
font-size: 16px;
position: relative;
padding-left: 10px;
margin-bottom: 3px;
}
.title::after {
content: '';
width: 2px;
height: 100%;
background-color: #172e60;
position: absolute;
top: 0;
left: 0;
}
.el-radio-group {
width: 100%;
border: 1px solid #ccc;
padding: 0 10px;
border-radius: 4px;
}
}
}
:deep(.el_tab_top) {
.el-tabs__header {
border-bottom: none;
}
.el-tabs__content {
display: none;
}
}
:deep(.el-dialog) {
position: fixed;
left: 50%;
top: 36%;
transform: translate(-50%, -50%);
}
.tcSoInput {
:deep(.el-form-item) {
width: 28%;
.el-input-number {
width: 100%;
}
}
}
</style>

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

@ -176,6 +176,11 @@
@click="handleSign(slotProps.scope.row)"
> </el-text
>
<el-text
size="small"
@click="asurcharge(slotProps.scope.row)"
>附加费</el-text
>
</template>
<!-- <el-button size="small" type="danger" @click="delectsolt(slotProps.scope)"-->
@ -1833,6 +1838,18 @@ export default {
this.SignForPhotos.push(dataURL);
}
},
//
asurcharge(row){
console.log(row,'附加费');
this.$router.push({
path: '/distribution/signfor/asurcharge',
query: {
name: '附加费编辑',
id: row.id,
reservationId: row.reservationId,
},
});
},
//
submitForm() {
// this.isDis = true;

2
src/views/distribution/stockup/distributionStockupDiscuss.vue

@ -28,6 +28,7 @@
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
:default-time="defaultTime2"
/>
</el-form-item>
<!--<el-form-item label="指派状态">
@ -574,6 +575,7 @@ export default {
deptId: '',
num: '',
stockupDate: [],
defaultTime2: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)], // '12:00:00', '08:00:00'
shortcuts: [
{
text: '最近一周',

2
src/views/distribution/stockup/distributionStockupMarket.vue

@ -23,6 +23,7 @@
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
:default-time="defaultTime2"
/>
</el-form-item>
<el-form-item style="margin-left: 24px" label="客户名称">
@ -582,6 +583,7 @@ export default {
stockupStatus: [],
stockAllocation: [],
stockupDate: [],
defaultTime2: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)], // '12:00:00', '08:00:00'
shortcuts: [
{
text: '最近一周',

2
src/views/distribution/stockup/distributionStockupSelf.vue

@ -22,6 +22,7 @@
start-placeholder="开始时间"
end-placeholder="结束时间"
:shortcuts="shortcuts"
:default-time="defaultTime2"
/>
</el-form-item>
<!-- 查询按钮 -->
@ -571,6 +572,7 @@ export default {
stockupStatus: [],
stockAllocation: [],
stockupDate: [],
defaultTime2: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)], // '12:00:00', '08:00:00'
shortcuts: [
{
text: '最近一周',

24
src/views/tool/code.vue

@ -243,18 +243,18 @@ export default {
},
],
},
{
label: '子表模型',
prop: 'subModelId',
type: 'select',
dicUrl: '/blade-develop/model/select',
props: {
label: 'modelName',
value: 'id',
},
display: false,
hide: true,
},
// {
// label: '',
// prop: 'subModelId',
// type: 'select',
// dicUrl: '/blade-develop/model/select',
// props: {
// label: 'modelName',
// value: 'id',
// },
// display: false,
// hide: true,
// },
{
label: '子表外键',
prop: 'subFkId',

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

@ -12,11 +12,11 @@
type="datetimerange"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="YYYY-MM-DD"
date-format="YYYY/MM/DD"
time-format="A"
@change="Toptiem"
:shortcuts="shortcuts"
:default-time="defaultTime2"
/>
</el-form-item>
<el-form-item label="签收扫描日期">
@ -25,10 +25,8 @@
type="datetimerange"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="YYYY-MM-DD"
date-format="YYYY/MM/DD"
time-format="A"
@change="Toptiem"
:shortcuts="shortcuts"
:default-time="defaultTime2"
/>
</el-form-item>
@ -154,6 +152,7 @@ const details = reactive({
/** 表格搜索条件 */
query: {},
/** 时间快捷选择设置 */
defaultTime2: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)], // '12:00:00', '08:00:00'
shortcuts: [
{
text: '最近一周',
@ -234,6 +233,7 @@ const {
data,
loadingObj,
selectionList,
defaultTime2,
drawerShow,
page,
trickleLoadingPage,

Loading…
Cancel
Save