Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
| | |
| | | for (const group of list.value) { |
| | | // 遍历每组中的数据(替换 j) |
| | | for (const item of group.data) { |
| | | console.log(item) |
| | | const { quantity, newList } = item; |
| | | // 跳过 quantity 为 0 或无效的情况 |
| | | console.log(quantity) |
| | | if (!quantity || quantity <= 0) continue; |
| | | |
| | | // 处理 newList:确保是数组,不足时用空对象兜底 |
| | | const safeNewList = Array.isArray(newList) ? newList : []; |
| | | |
| | | // 循环 quantity 次,添加数据到 lastList |
| | | for (let k = 0; k < quantity; k++) { |
| | | // 深拷贝 item,避免重复引用(关键!) |
| | |
| | | //流程卡 |
| | | request.post(`/processCard/getSelectPrinting/${merge}/${like}/${merges}/${props.flashback}/${compound}/${props.landingSequence}`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | console.log(res.data.data) |
| | | load(res.data.data) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | |
| | | |
| | | <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> |
| | |
| | | <th style="text-align: left;border:none;font-weight: bold;font-size: 17px;" colspan="4"> |
| | | 客户名称:<span>{{ data.order.customerName }}</span></th> |
| | | <th style="text-align: left;border:none;font-weight: bold;font-size: 17px;" v-if="data.order.batch!==''" colspan="3"> |
| | | 项目名称:<span>{{ data.order.project }}({{data.order.batch}})</span></th> |
| | | 项目名称:<span style="font-size: 17px;white-space:nowrap;font-weight: bold;">{{ data.order.project }}({{data.order.batch}})</span></th> |
| | | <th style="text-align: left;border:none;font-weight: bold;font-size: 17px;" v-else colspan="3"> |
| | | 项目名称:<span>{{ data.order.project }}</span></th> |
| | | 项目名称:<span style="font-size: 17px;white-space:nowrap;font-weight: bold;">{{ data.order.project }}</span></th> |
| | | <th style="text-align: left;border:none;font-weight: bold;font-size: 17px;" colspan="2"> |
| | | 发货日期:<span>{{ data.order.deliveryDate }}</span></th> |
| | | </tr> |
| | |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr class="day-in"> |
| | | <td style="text-align: left;border-width: 0 0 0 0; border-style: solid; border-color: #d3dce6" colspan="9"> |
| | | <td style="text-align: left;border-width: 0 0 0 0; border-style: solid; border-color: #d3dce6;font-size: 17px;white-space:nowrap;font-weight: bold;" colspan="9"> |
| | | <template v-for="(item,index) in data.order.processingNote.split('\n')"> |
| | | {{item}} |
| | | <br> |
| | |
| | | |
| | | // 筛选函数 |
| | | 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 PrintProcess from "@/components/pp/PrintProcess.vue"; |
| | | import PrintCustomLabelXJ from "@/components/pp/PrintCustomLabelTwo.vue"; |
| | | import companyInfo from "@/stores/sd/companyInfo"; |
| | | import {createTemplate} from "@/hook/createTemplateTag"; |
| | | import {hiprint} from "vue-plugin-hiprint"; |
| | | //语言获取 |
| | | const { t } = useI18n() |
| | | let router=useRouter() |
| | |
| | | |
| | | const dialogTableVisible = ref(false) |
| | | const dialogTableVisibleLabel = ref(false) |
| | | |
| | | let lastList = ref([]) |
| | | |
| | | let props = defineProps({ |
| | | orderId:null |
| | |
| | | } |
| | | }) |
| | | |
| | | //标签 |
| | | let labelRow = ref({ |
| | | list: null,//勾选的数据 |
| | | faceOrientation: null,//内外面 |
| | | type: null,//标签模板 |
| | | lableType: null//标签类型 |
| | | }) |
| | | //选中内容 |
| | | let selectRecords = ref(null) |
| | | |
| | | //合片流程卡打印下拉选项 |
| | | const printMerge = ref('') |
| | | const printMergeOptions = [{}] |
| | | |
| | | //倒叙 |
| | | let flashback = ref(1) |
| | | //落架顺序 |
| | | let landingSequence= ref(1) |
| | | //合架打印 |
| | | let compound = ref(null) |
| | | |
| | | const printContent = ref({ |
| | | id: 'child', |
| | | |
| | | }) |
| | | |
| | | let hiprintTemplate = ref(null) |
| | | |
| | | const printContentLabel = ref({ |
| | | id: 'childLabel', |
| | | }) |
| | | |
| | | const printContentLabelSemi = ref({ |
| | | id: 'childLabelSemi', |
| | | }) |
| | | |
| | | const changeTag = () => { |
| | | hiprintTemplate.value = new hiprint.PrintTemplate({}); |
| | | hiprintTemplate.value.design("#hiprint-printTemplate1",{grid:true}); |
| | | const json = tag.value.value |
| | | hiprintTemplate.value.update(json) |
| | | } |
| | | |
| | | const printOrder = (type) => { |
| | | printNumberLabel() |
| | | const list = tag.value.value |
| | | list.panels[0].printElements.forEach(element => { |
| | | element.options.fontFamily = 'Arial' |
| | | if( element.options.field !== undefined){ |
| | | if(type===3 ){ |
| | | element.options.hideTitle = true |
| | | } |
| | | } |
| | | if(type!==3){ |
| | | element.options.hideTitle = false |
| | | if( element.options.field === undefined){ |
| | | element.options.hideTitle = true |
| | | } |
| | | } |
| | | }) |
| | | |
| | | //hiprintTemplate.value.update(list) |
| | | let object = JSON.parse(JSON.stringify(lastList.value)) |
| | | //判断是否为表格 |
| | | let columnsNum = null |
| | | if(list.panels[0].printElements[0].options.field==='table'){ |
| | | object = {table:lastList.value} |
| | | columnsNum = (list.panels[0].printElements[0].options.gridColumns || 1) |
| | | } |
| | | //判断是否有 嵌套自定义纸张 |
| | | if(tag.value.tagHeight && tag.value.tagWidth){ |
| | | const print =createTemplate(list,object,tag.value.tagWidth,tag.value.tagHeight) |
| | | hiprintTemplate.value.update(print.template) |
| | | object = print.printData |
| | | } |
| | | hiprintTemplate.value.print(object) |
| | | |
| | | } |
| | | |
| | | //需要合并的列 |
| | | let column = [1,3,8] |
| | |
| | | // delete obj.print_status; |
| | | // }); |
| | | let type = tag.value.name |
| | | let faceOrientation = stateValue.value |
| | | let lableTypes = lableType.value |
| | | let lableTitle = lableType.text |
| | | let faceOrientation = '' |
| | | let lableTypes = 1 |
| | | let lableTitle = '' |
| | | if ($grid) { |
| | | switch (code) { |
| | | //打印流程卡 |
| | |
| | | printRow.value.printMergeVal = printMerge.value |
| | | printRow.value.like = null |
| | | printRow.value.merge = company.flowCardMerge |
| | | printRow.value.printFc= printFc |
| | | printRow.value.printFc= true |
| | | printRow.value.flashback = flashback.value |
| | | printRow.value.landingSequence=landingSequence.value |
| | | printRow.value.compound = compound.value |
| | |
| | | id += selectRecords[i].id + "|" |
| | | } |
| | | } |
| | | |
| | | lastList.value = [] |
| | | labelRow.value.list = JSON.stringify(selectRecords) |
| | | labelRow.value.faceOrientation = faceOrientation |
| | | labelRow.value.type = tag.value.name |
| | |
| | | |
| | | const handleCellDblClick = ({ row, column, cell, $event }) => { |
| | | VxeUI.clipboard.copy(row[column.property]) |
| | | } |
| | | |
| | | const selectRecordsData = ref({ |
| | | printList: [] |
| | | }) |
| | | // 监听流程卡打印完成事件 |
| | | const printNumber = () => { |
| | | |
| | | selectRecordsData.value.printList = selectRecords |
| | | let printState = 0 |
| | | request.post(`/processCard/updatePrintState/${printState}`, selectRecordsData.value).then((res) => { |
| | | if (res.code == 200 && res.data === true) { |
| | | } else { |
| | | |
| | | ElMessage.warning(t('basicData.msg.saveFail')) |
| | | |
| | | } |
| | | }) |
| | | } |
| | | |
| | | // 监听标签打印完成事件 |
| | | const printNumberLabel = () => { |
| | | |
| | | selectRecordsData.value.printList = selectRecords |
| | | request.post(`/tagStyle/updatePrintNumber`, selectRecordsData.value).then((res) => { |
| | | if (res.code == 200 && res.data === true) { |
| | | } else { |
| | | |
| | | ElMessage.warning(t('basicData.msg.saveFail')) |
| | | |
| | | } |
| | | }) |
| | | } |
| | | </script> |
| | | |
| | |
| | | v-bind="gridOptions" |
| | | :merge-cells="mergeCells" |
| | | @cell-dblclick="handleCellDblClick" |
| | | v-on="gridEvents" |
| | | |
| | | > |
| | | <!-- @toolbar-button-click="toolbarButtonClickEvent"--> |
| | |
| | | height: calc(100% - 35px); |
| | | } |
| | | |
| | | :deep(#sizeCheck .el-dialog__body) { |
| | | height: 90%; |
| | | width: 100%; |
| | | } |
| | | |
| | | :deep(#sizePrintCalrd .el-dialog__body) { |
| | | height: 85%; |
| | | width: 100%; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | :deep(#sizeCustom .el-dialog__body) { |
| | | height: 85%; |
| | | width: 100%; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | :deep(#sizeCustomSemi .el-dialog__body) { |
| | | height: 85%; |
| | | width: 100%; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | :deep(#titleStyle .el-dialog__body){ |
| | | height: 93%; |
| | | width: 100%; |
| | | } |
| | | .vxe-grid { |
| | | /* 禁用浏览器默认选中 */ |
| | | -webkit-user-select: none; |
| | |
| | | if (val<row.completedQuantityComputed){ |
| | | //库存数量、已入库数量 |
| | | if (val>(row.inventory_quantity-row.received_quantity)){ |
| | | return new Error(`val |
| | | if (totalQuantity-val>(row.inventory_quantity-row.received_quantity)){ |
| | | return new Error(`val |
| | | <= |
| | | ${row.inventory_quantity-row.received_quantity}`) |
| | | } |
| | | }else { |
| | | if (val < (row.inventory_quantity-row.received_quantity)){ |
| | | //完工总数、本次完工数、已入库数量 |
| | |
| | | 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> |
| | |
| | | Map<String, Object> itemmap = new HashMap<>(); |
| | | |
| | | Integer sumQuantity = flowCardMapper.getSumQuantity(flowCard.getOrderId()); |
| | | List<Map<String, Object>> details = flowCardMapper.getPrintCustomData(flowCard.getProcessId(), flowCard.getOrderNumber(), flowCard.getPrintQuantity()); |
| | | Integer printQuantity = flowCard.getPrintQuantity(); |
| | | if (printQuantity==null){ |
| | | printQuantity=0; |
| | | } |
| | | List<Map<String, Object>> details = flowCardMapper.getPrintCustomData(flowCard.getProcessId(), flowCard.getOrderNumber(), printQuantity); |
| | | |
| | | for (Map<String, Object> detail : details) { |
| | | detail.put("sumQuantity", sumQuantity); |
| | |
| | | <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> |
| | |
| | | od.processing_note as processingNote, |
| | | width, |
| | | height, |
| | | #{printQuantity} as quantity, |
| | | if(#{printQuantity}>0 ,#{printQuantity},fc.quantity) as quantity, |
| | | CONCAT( |
| | | TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))), |
| | | ' X ', |
| | | TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))), |
| | | ' = ',#{printQuantity} ) as size, |
| | | ' = ',if(#{printQuantity}>0 ,#{printQuantity},fc.quantity) ) as size, |
| | | |
| | | CONCAT( |
| | | od.order_number,') ', |
| | | TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))), |
| | | ' X ', |
| | | TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))), |
| | | ' = ',#{printQuantity} ) as numberSize, |
| | | ' = ',if(#{printQuantity}>0 ,#{printQuantity},fc.quantity) ) as numberSize, |
| | | CONCAT( |
| | | od.order_number,')',' ', |
| | | TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))), |
| | |
| | | c.print_status, |
| | | c.print_number, |
| | | o.project, |
| | | o.customer_name |
| | | o.customer_name, |
| | | b.process |
| | | |
| | | from pp.flow_card as c |
| | | left join |