Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
| | |
| | | |
| | | <template> |
| | | <div id="sheet" class="print-page-c"> |
| | | <table class="pages" v-for="(itme1, index) in groupedData" :key="index" > |
| | | <table class="pages" v-for="(itme1, index) in groupedData" :key="index" > |
| | | <thead> |
| | | <tr class="title-s"> |
| | | <th colspan="11"> |
| | | <h1> |
| | | <th colspan="13"> |
| | | <h1 contenteditable="true"> |
| | | {{company.companyName}} |
| | | </h1> |
| | | </th> |
| | | </tr> |
| | | |
| | | <tr class="title-s"> |
| | | <th colspan="2" style="width: 20%"></th> |
| | | <th colspan="7" style="width: 60%;"> |
| | | <tr class="title-s"> |
| | | <th colspan="2" style="width: 20%" ></th> |
| | | <th colspan="9" style="width: 60%"> |
| | | <h4 v-if="!company.showDeliveryCreator" >金华市乐动智能科技有限公司</h4> |
| | | <h3>销售发货单</h3> |
| | | </th> |
| | | <th colspan="2" style="width: 20%;text-align: left;">发货单号:<span>{{itme1.delivery.deliveryId}}</span></th> |
| | | <th colspan="2" style="text-align: left;width:20%">发货单号:<span>{{itme1.delivery.deliveryId}}</span></th> |
| | | </tr> |
| | | <tr> |
| | | <th style="text-align: left;border:none;" colspan="3">客户名称:<span>{{itme1.delivery.customerName}}</span></th> |
| | | <th style="text-align: left;border:none;" colspan="6">项目名称:<span>{{itme1.delivery.project}}</span></th> |
| | | <th style="text-align: left;border:none;" colspan="2">联系人:<span>{{itme1.delivery.contacts}}</span></th> |
| | | <tr> |
| | | <th style="text-align: left;border:none;width: 46.46%" colspan="6" >客户名称:<span contenteditable="true">{{itme1.delivery.customerName}}</span></th> |
| | | <th style="text-align: left;border:none;width: 38.46%" colspan="5">项目名称:<span>{{itme1.delivery.project}}</span></th> |
| | | <th style="text-align: left;border:none;width: 16%" colspan="2">联系人:<span>{{itme1.delivery.contacts}}</span></th> |
| | | </tr> |
| | | <tr> |
| | | <th style="text-align: left;border:none;" colspan="9">送货地址:<span>{{itme1.delivery.deliveryAddress}}</span></th> |
| | | <th style="text-align: left;border:none;" colspan="2">联系电话:<span>{{itme1.delivery.contactNumber}}</span></th> |
| | | <tr > |
| | | <th style="text-align: left;border:none;width: 84%" colspan="11">送货地址:<span>{{itme1.delivery.deliveryAddress}}</span></th> |
| | | <th style="text-align: left;border:none;width: 16%" colspan="2">联系电话:<span>{{itme1.delivery.contactNumber}}</span></th> |
| | | </tr> |
| | | |
| | | |
| | | </thead> |
| | | <tr style="border-style: none"> |
| | | <td colspan="11" style="border-style: none"> |
| | | <td colspan="13" style="border-style: none"> |
| | | <table style="border-style: none;width: 100%;height: 100%;"> |
| | | <template v-for="(item, index) in itme1.data" :key="index" > |
| | | <thead> |
| | |
| | | <th style="width: 6%;">面积</th> |
| | | <th style="width: 6%;">单价</th> |
| | | <th style="width: 6.5%;">金额</th> |
| | | <th style="width: 1%;"></th> |
| | | <th style="width: 1%;"> </th> |
| | | <th style="width: 9%;">楼层编号</th> |
| | | <th style="width: 14%;" colspan="1">宽X高</th> |
| | | <th style="width: 8%;">数量</th> |
| | | <th style="width: 6%;">面积</th> |
| | | <th style="width: 6%;">单价</th> |
| | | <th style="width: 6.5%;">金额</th> |
| | | <th style="width: 1%;"></th> |
| | | </tr> |
| | | |
| | | |
| | | </thead> |
| | | <tr> |
| | | <td style="font-size: 15px;text-align: left" colspan="6">产品名称:<span>{{item.DeliveryDetail.orderDetail.productName}}</span></td> |
| | | <td style="font-size: 15px;text-align: left" colspan="6">产品名称:<span contenteditable="true">{{item.DeliveryDetail.orderDetail.productName}}</span></td> |
| | | <td style="font-size: 15px;text-align: left" colspan="3">批次:<span>{{item.DeliveryDetail.order.batch}}</span></td> |
| | | <td style="font-size: 15px;text-align: left" colspan="4">订单编号:<span>{{item.DeliveryDetail.orderDetail.orderId}}</span></td> |
| | | </tr> |
| | |
| | | <td v-if="group[1]">{{ group[1].money }}</td> |
| | | |
| | | <!-- 若组内只有一条数据,第二列留空 --> |
| | | <td v-else colspan="5"></td> |
| | | <td v-else colspan="6"></td> |
| | | </tr> |
| | | <tr class="day-in" > |
| | | <td style="font-size: 15px;" colspan="9">小计:</td> |
| | |
| | | .print-page-c .pages { |
| | | page-break-after: always; |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | h1,h3{ |
| | | left:0; |
| | |
| | | <thead> |
| | | <tr class="title-s"> |
| | | <th colspan="11"> |
| | | <h1> |
| | | <h1 contenteditable="true"> |
| | | {{company.companyName}} |
| | | </h1> |
| | | </th> |
| | |
| | | <th colspan="2" style="width: 20%;text-align: left;">发货单号:<span>{{itme1.delivery.deliveryId}}</span></th> |
| | | </tr> |
| | | <tr> |
| | | <th style="text-align: left;border:none;" colspan="3">客户名称:<span>{{itme1.delivery.customerName}}</span></th> |
| | | <th style="text-align: left;border:none;" colspan="3">客户名称:<span contenteditable="true">{{itme1.delivery.customerName}}</span></th> |
| | | <th style="text-align: left;border:none;" colspan="6">项目名称:<span>{{itme1.delivery.project}}</span></th> |
| | | <th style="text-align: left;border:none;" colspan="2">联系人:<span>{{itme1.delivery.contacts}}</span></th> |
| | | </tr> |
| | |
| | | |
| | | </thead> |
| | | <tr> |
| | | <td style="font-size: 15px;text-align: left" colspan="5">产品名称:<span>{{item.DeliveryDetail.orderDetail.productName}}</span></td> |
| | | <td style="font-size: 15px;text-align: left" colspan="5">产品名称:<span contenteditable="true">{{item.DeliveryDetail.orderDetail.productName}}</span></td> |
| | | <td style="font-size: 15px;text-align: left" colspan="3">批次:<span>{{item.DeliveryDetail.order.batch}}</span></td> |
| | | <td style="font-size: 15px;text-align: left" colspan="3">订单编号:<span>{{item.DeliveryDetail.orderDetail.orderId}}</span></td> |
| | | </tr> |
| | |
| | | |
| | | // 筛选函数 |
| | | const filterChanged = ({ option, row, column }) => { |
| | | if (option.data) { |
| | | if (option && option.data) { |
| | | |
| | | if(column.field.indexOf('.')>-1){ |
| | | let array = column.field.split('.') |
| | |
| | | salesman:'销售员', |
| | | money:'金额', |
| | | |
| | | pleaseSelectTheSameCustomerProject:'请选择相同客户的项目', |
| | | pleaseSelectTheSameCustomerProject:'请选择相同客户和项目的订单', |
| | | noMoney:'无金额', |
| | | freightPrice:'运费单价', |
| | | freightQuantity:'运费数量', |
| | |
| | | import { useI18n } from 'vue-i18n' |
| | | import footSum from "@/hook/footSum"; |
| | | import companyInfo from "@/stores/sd/companyInfo"; |
| | | import {changeFilterEvent,filterChanged} from "@/hook" |
| | | |
| | | //语言获取 |
| | | const { t } = useI18n() |
| | |
| | | let total = reactive({ |
| | | pageTotal : 0, |
| | | dataTotal : 0, |
| | | pageSize : 100 |
| | | pageSize : 99999 |
| | | }) |
| | | |
| | | |
| | |
| | | let pageState = null |
| | | |
| | | /*使用筛选,后端获取数据*/ |
| | | const changeFilterEvent = (event, option, $panel,) => { |
| | | /*const changeFilterEvent = (event, option, $panel,) => { |
| | | // 手动触发筛选 |
| | | $panel.changeOption(event, !!option.data, option) |
| | | } |
| | |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } |
| | | }*/ |
| | | const selectOrderList = ()=>{ |
| | | |
| | | request.post(`/finishedGoodsInventory/getSelectWarehousing/${pageNum.value}/${total.pageSize}`,filterData.value).then((res) => { |
| | |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //筛选配置项 |
| | | remote: true |
| | | //remote: true |
| | | }, |
| | | sortConfig: { |
| | | multiple: true,//多排序 |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | |
| | | {type:'expand',fixed:"left",slots: { content:'content' },width: '60'}, |
| | | { type: 'checkbox',fixed:"left", title: t('basicData.check'), width: '80' }, |
| | | { type: 'seq',fixed:"left", title: t('basicData.Number'), width: '80' }, |
| | | {field: 'order.orderId', width: '150',title: t('order.orderId'), showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'order.orderId', width: '150',title: t('order.orderId'), showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | //{field: 'orderDetail.buildingNumber', width: '120',title: '楼号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'orderDetail.productId',width: '100', title: t('order.productId'), filters:[{ data: '' }],showOverflow:"ellipsis",slots: { filter: 'num1_filter' }}, |
| | | {field: 'orderDetail.productName',width: '100', title: t('order.product'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'orderDetail.width', width: '100',title: t('order.width'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'orderDetail.height',width: '100', title: t('order.height'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'order.creater', width: '100',title: t('order.salesman'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'order.project', width: '100',title: t('order.project'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'orderNumber',width: '140', title: t('order.OrderNum'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'orderDetail.quantity',width: '140', title: t('productStock.totalNumberOfOrders'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'inventoryQuantity',width: '120', title: t('productStock.quantityToBeStockedIn'),editRender: { name: 'input' }, filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'order.area',width: '140', title: t('order.area'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'processId',width: '150', title: t('processCard.processId'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'receivedQuantity',width: '100', title: t('productStock.quantityAlreadyInStock'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'order.batch',width: '100', title: t('order.batch'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'orderDetail.productId',width: '100', title: t('order.productId'), filters:[{ data: '' }],showOverflow:"ellipsis",slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | {field: 'orderDetail.productName',width: '100', title: t('order.product'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | {field: 'orderDetail.width', width: '100',title: t('order.width'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | {field: 'orderDetail.height',width: '100', title: t('order.height'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | {field: 'order.creater', width: '100',title: t('order.salesman'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | {field: 'order.project', width: '100',title: t('order.project'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | {field: 'order.customerName',width: '100', title: t('order.customers'),filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | {field: 'orderNumber',width: '140', title: t('order.OrderNum'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | {field: 'orderDetail.quantity',width: '140', title: t('productStock.totalNumberOfOrders'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | {field: 'inventoryQuantity',width: '120', title: t('productStock.quantityToBeStockedIn'),editRender: { name: 'input' }, filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | {field: 'order.area',width: '140', title: t('order.area'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | {field: 'processId',width: '150', title: t('processCard.processId'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged}, |
| | | {field: 'receivedQuantity',width: '100', title: t('productStock.quantityAlreadyInStock'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | {field: 'order.batch',width: '100', title: t('order.batch'), filters:[{ data: '' }],slots: { filter: 'num1_filter' },filterMethod:filterChanged, sortable: true}, |
| | | ],//表头按钮 |
| | | toolbarConfig: { |
| | | buttons: [{ |
| | |
| | | <template #num1_filter="{ column, $panel }"> |
| | | <div> |
| | | <div v-for="(option, index) in column.filters" :key="index"> |
| | | <input type="type" v-model="option.data" @keyup.enter.native="$panel.confirmFilter()" @input="changeFilterEvent($event, option, $panel)"/> |
| | | <input |
| | | type="type" |
| | | v-model="option.data" |
| | | @keyup.enter.native="$panel.confirmFilter()" |
| | | @input="changeFilterEvent($event, option, $panel)"/> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | import companyInfo from "@/stores/sd/companyInfo"; |
| | | import PrintSheet3 from "@/components/sd/delivery/PrintSheet3.vue"; |
| | | import PrintSheet4 from "@/components/sd/delivery/PrintSheet4.vue"; |
| | | import {addListener} from "@/hook/mouseMove"; |
| | | import {copyTableCellValue} from "@/hook/copyTableCellValue"; |
| | | |
| | | //语言获取 |
| | | const { t } = useI18n() |
| | |
| | | }) |
| | | |
| | | onMounted(async () => { |
| | | addListener(xGrid.value,gridOptions) |
| | | filterData.value = orderInfo.searchDeliverFilter.data |
| | | await getDeliveryList() |
| | | orderInfo.searchDeliverFilter.list.forEach(item =>{ |
| | |
| | | sortChange ({ field, order }) { |
| | | sortData.value = {field,order} |
| | | selectOrderList() |
| | | }, |
| | | cellDblclick ({row,column}) { |
| | | copyTableCellValue(row,column) |
| | | } |
| | | } |
| | | |
| | |
| | | height: calc(100% - 35px); |
| | | } |
| | | |
| | | |
| | | .vxe-grid { |
| | | /* 禁用浏览器默认选中 */ |
| | | -webkit-user-select: none; |
| | | -moz-user-select: none; |
| | | -ms-user-select: none; |
| | | user-select: none; |
| | | } |
| | | :deep(#product .el-dialog__body){ |
| | | height: 90%; |
| | | width: 100%; |
| | | } |
| | | |
| | | </style> |
| | | |
| | |
| | | import useUserInfoStore from "@/stores/userInfo"; |
| | | import {ElMessage} from "element-plus"; |
| | | import { useI18n } from 'vue-i18n' |
| | | import footSum from "@/hook/footSum" |
| | | import useOrderInfoStore from "@/stores/sd/order/orderInfo"; |
| | | import {addListener} from "@/hook/mouseMove"; |
| | | import {copyTableCellValue} from "@/hook/copyTableCellValue"; |
| | | |
| | | //语言获取 |
| | | const { t } = useI18n() |
| | |
| | | |
| | | |
| | | onMounted(async () => { |
| | | addListener(xGrid.value,gridOptions) |
| | | if (props.customerId !== undefined) { |
| | | filterData.value.customerId = props.customerId |
| | | filterData.value.project = props.project |
| | |
| | | custom: true |
| | | }, |
| | | footerMethod ({ columns, data }) {//页脚函数 |
| | | let footList=['quantity','area'] |
| | | return[ |
| | | columns.map((column, columnIndex) => { |
| | | if (columnIndex === 0) { |
| | | return t('basicData.total') |
| | | } |
| | | // if (props.tableProp.footList.includes(column.field)) { |
| | | // return sumNum(data, column.field) |
| | | // } |
| | | if (footList.includes(column.field)) { |
| | | return footSum(data, column.field) |
| | | } |
| | | return '' |
| | | }) |
| | | ] |
| | |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | cellDblclick ({row,column}) { |
| | | copyTableCellValue(row,column) |
| | | } |
| | | } |
| | | |
| | |
| | | width: 100%; |
| | | height: calc(100% - 35px); |
| | | } |
| | | |
| | | |
| | | .vxe-grid { |
| | | /* 禁用浏览器默认选中 */ |
| | | -webkit-user-select: none; |
| | | -moz-user-select: none; |
| | | -ms-user-select: none; |
| | | user-select: none; |
| | | } |
| | | :deep(#product .el-dialog__body){ |
| | | height: 90%; |
| | | width: 100%; |
| | | } |
| | | </style> |
| | |
| | | <result column="batch" property="order.batch"/> |
| | | <result column="order_quantity" property="order.quantity"/> |
| | | <result column="calculate_type" property="order.calculateType"/> |
| | | <result column="customer_name" property="order.customerName"/> |
| | | |
| | | |
| | | <result column="building_number" property="orderDetail.buildingNumber"/> |
| | | <result column="width" property="orderDetail.width"/> |
| | |
| | | od.height, |
| | | o.creator, |
| | | o.project, |
| | | o.customer_name, |
| | | fc.order_number, |
| | | od.quantity, |
| | | fc.quantity as fc_quantity, |
| | |
| | | <if test="flowCard.order != null and flowCard.order.project != null and flowCard.order.project != ''"> |
| | | and o.project regexp #{flowCard.order.project} |
| | | </if> |
| | | <if test="flowCard.order != null and flowCard.order.customerName != null and flowCard.order.customerName != ''"> |
| | | and o.customer_name regexp #{flowCard.order.customerName} |
| | | </if> |
| | | <if test="flowCard.orderNumber != null and flowCard.orderNumber != ''"> |
| | | and fc.order_number regexp #{flowCard.orderNumber} |
| | | </if> |
| | |
| | | </select> |
| | | <select id="getSelectWarehousingPageTotal" > |
| | | select |
| | | CEILING(count(zu.order_number)/#{pageSize}) as 'pageTotal', |
| | | count(zu.order_number) as 'total' from ( |
| | | select fc.order_number as order_number,fc.process_id from pp.flow_card fc left join sd.order_detail od on |
| | | fc.order_id=od.order_id and fc.order_number=od.order_number inner join sd.`order` o on o.order_id=fc.order_id |
| | | CEILING(count(zu.id)/#{pageSize}) as 'pageTotal', |
| | | count(zu.id) as 'total' from ( |
| | | select fc.id as id |
| | | from (select *,min(inventory_quantity) as min_inventory_quantity from pp.flow_card group by order_id,order_number,process_id) as fc |
| | | left join sd.order_detail od on fc.order_id=od.order_id and fc.order_number=od.order_number inner join sd.`order` o on |
| | | o.order_id=fc.order_id |
| | | <where> |
| | | and fc.received_quantity <![CDATA[<]]> fc.inventory_quantity and o.create_order>0 |
| | | <if test="flowCard.order != null and flowCard.order.orderId != null and flowCard.order.orderId != ''"> |
| | |
| | | <if test="flowCard.order != null and flowCard.order.project != null and flowCard.order.project != ''"> |
| | | and o.project regexp #{flowCard.order.project} |
| | | </if> |
| | | <if test="flowCard.order != null and flowCard.order.customerName != null and flowCard.order.customerName != ''"> |
| | | and o.customer_name regexp #{flowCard.order.customerName} |
| | | </if> |
| | | <if test="flowCard.orderNumber != null and flowCard.orderNumber != ''"> |
| | | and fc.order_number regexp #{flowCard.orderNumber} |
| | | </if> |