| | |
| | | <script setup> |
| | | |
| | | import {reactive} from "vue"; |
| | | import {onMounted, reactive, ref} from "vue"; |
| | | import {Search} from "@element-plus/icons-vue"; |
| | | import {useRoute, useRouter} from "vue-router" |
| | | import request from "@/utils/request" |
| | | import deepClone from "@/utils/deepClone" |
| | | import VXETable from "vxe-table"; |
| | | import useUserInfoStore from "@/stores/userInfo"; |
| | | import {ElMessage} from "element-plus"; |
| | | const router = useRouter() |
| | | const route = useRoute() |
| | | const userStore = useUserInfoStore() |
| | | const username = userStore.user.userName |
| | | const userid = userStore.user.userId |
| | | let produceList = ref([]) |
| | | |
| | | |
| | | const hasDecimal=(value)=>{ |
| | | const regex=/\./ // 定义正则表达式,查找小数点 |
| | | return regex.test(value) //返回true/false |
| | | } |
| | | |
| | | const hasDecimalhtml=(item,row)=>{ |
| | | let aa=item.split('.').length |
| | | if (aa===2){ |
| | | return row[item.split('.')[0]][item.split('.')[1]] |
| | | }else if(aa===3){ |
| | | return row[item.split('.')[0]][item.split('.')[1]][item.split('.')[2]] |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | let unpaidQuantity = ref({}) |
| | | |
| | | // 定义表头上传数据 |
| | | let titleUploadData = ref({ |
| | | customerId:'', |
| | | customerName:'', |
| | | project:'', |
| | | money:'', |
| | | payMethod:'', |
| | | payDate:'', |
| | | contacts:'', |
| | | contactNumber:'', |
| | | deliveryAddress:'', |
| | | remarks:'', |
| | | createTime:'', |
| | | deliveryDate:'', |
| | | salesmanId:'', |
| | | salesman:'', |
| | | creatorId:userStore.user.userid, |
| | | creator:userStore.user.userName |
| | | }) |
| | | |
| | | |
| | | |
| | | //筛选条件,有外键需要先定义明细里面的数据 |
| | | let filterData = ref({ |
| | | deliveryDetail:{ |
| | | deliveryId:'', |
| | | quantity:'', |
| | | money:'', |
| | | deliveryDetailRemakes:'' |
| | | }, |
| | | order:{ |
| | | batch:'' |
| | | }, |
| | | delivery:{ |
| | | customerId:'', |
| | | customerName:'', |
| | | money:'', |
| | | payMethod:'', |
| | | payDate:'', |
| | | contacts:'', |
| | | contactNumber:'', |
| | | deliveryAddress:'', |
| | | remarks:'', |
| | | createTime:'', |
| | | deliveryDate:'', |
| | | creator:'' |
| | | }, |
| | | finishedGoodsInventory:{ |
| | | quantityAvailable:'', |
| | | storageRegion:'', |
| | | actualSignalArea:'' |
| | | |
| | | }, |
| | | |
| | | }) |
| | | |
| | | |
| | | const xGrid = ref(); |
| | | |
| | | onMounted(()=>{ |
| | | const orderId = route.query.orderId |
| | | if (typeof orderId !== 'undefined' && orderId !== null && orderId !== '' && orderId !== '\n' && orderId !== '\r'){ |
| | | filterData.value.orderId=orderId |
| | | //第一次调用 |
| | | request.post("/Delivery/getseletShippingOrderDetails/1/100",filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | console.log(res.data.title) |
| | | pageTotal.value=res.data.total |
| | | |
| | | |
| | | titleUploadData.value=deepClone(res.data.title) |
| | | const today = new Date |
| | | today.setTime(today.getTime() + (15 * 24 * 60 * 60 * 1000)) |
| | | titleUploadData.value.deliveryDate=today.getFullYear() + |
| | | '-' + ("0" + (today.getMonth() + 1)).slice(-2) |
| | | + '-' + ("0" + today.getDate()).slice(-2) |
| | | titleUploadData.value.createTime=today.getFullYear() + |
| | | '-' + ("0" + (today.getMonth() + 1)).slice(-2) |
| | | + '-' + ("0" + today.getDate()).slice(-2) |
| | | titleUploadData.value.payDate=today.getFullYear() + |
| | | '-' + ("0" + (today.getMonth() + 1)).slice(-2) |
| | | + '-' + ("0" + today.getDate()).slice(-2) |
| | | |
| | | titleUploadData.value.creator=userStore.user.userName |
| | | titleUploadData.value.creatorId=userStore.user.userId |
| | | |
| | | pageNum=1 |
| | | produceList = deepClone(res.data.data) |
| | | xGrid.value.loadData(produceList) |
| | | gridOptions.loading=false |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } |
| | | |
| | | const str = route.query.deliveryID |
| | | |
| | | if (typeof str != 'undefined' && str != null && str !== '' && str !== '\n' && str !== '\r'){ |
| | | filterData.value.deliveryDetail.deliveryId=str |
| | | console.log(filterData) |
| | | //第一次调用 |
| | | request.post("/Delivery/getseletShippingOrderDetail/1/100",filterData.value).then((res) => { |
| | | |
| | | if(res.code==200){ |
| | | console.log(res.data.data) |
| | | pageTotal.value=res.data.total |
| | | titleUploadData.value=deepClone(res.data.delivery) |
| | | console.log(titleUploadData.value) |
| | | console.log(titleUploadData.value.customerId) |
| | | pageNum=1 |
| | | produceList = deepClone(res.data.data) |
| | | xGrid.value.loadData(produceList) |
| | | gridOptions.loading=false |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } |
| | | |
| | | |
| | | }) |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //定义页面总页数 |
| | | let pageTotal=ref('') |
| | | //定义当前页数 |
| | | let pageNum=$ref(1) |
| | | |
| | | |
| | | |
| | | |
| | |
| | | },//表头参数 |
| | | columns:[ |
| | | |
| | | {type:'expand',slots: { content:'content' },width: 50,fixed:"left"}, |
| | | {type:'checkbox',title: '选则', width: 80,fixed:"left"}, |
| | | {type:'expand',slots: { content:'content' },width: 60,fixed:"left"}, |
| | | {type:'checkbox',title: '选择', width: 80,fixed:"left"}, |
| | | {type: 'seq', title: '自序', width: 80 ,fixed:"left"}, |
| | | {field: '0',width:120, title: '销售单号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '1',width:120, title: '批次',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '2',width:120, title: '库存可发',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '3',width:120, title: '未发数量',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '4',width:120, title: '总数量',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '5',width:120, title: '发货数量',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '6',width:120, title: '楼号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '7',width:120, title: '产品编号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '8',width:120, title: '产品名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '9',width:120, title: '单价',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '10',width:120, title: '库区',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '11',width:120, title: '金额',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '12',width:120, title: '宽',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '13',width:120, title: '高',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '14',width:120, title: '形状',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '15',width:120, title: '单片面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '16',width:120, title: '总面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '17',width:120, title: '结算单片面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '18',width:120, title: '结算总面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '19',width:120, title: '加工要求',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '20',width:120, title: '备注',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '21',width:120, title: '磨边类型',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: '22',width:120, title: '周长',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'orderId',width:120, title: '销售单号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'order.batch',width:120, title: '批次',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'finishedGoodsInventory.quantityAvailable',width:120, title: '库存可发',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'order.quantity',width:120, title: '未发数量',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'quantity',width:120, title: '总数量',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'deliveryDetail.quantity',width:120, title: '发货数量',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'buildingNumber',width:120, title: '楼号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'productId',width:120, title: '产品编号',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'productName',width:120, title: '产品名称',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'price',width:120, title: '单价',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'finishedGoodsInventory.storageRegion',width:120, title: '库区',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'deliveryDetail.money',width:120, title: '金额',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'width',width:120, title: '宽',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'height',width:120, title: '高',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'shape',width:120, title: '形状',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'finishedGoodsInventory.actualSignalArea',width:120, title: '单片面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'grossArea',width:120, title: '总面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'computeArea',width:120, title: '结算单片面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'computeGrossArea',width:120, title: '结算总面积',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'processingNote',width:120, title: '加工要求',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'deliveryDetail.deliveryDetailRemakes',width:120, title: '备注',filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'edgingType',width:120, title: '磨边类型',filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | {field: 'perimeter',width:120, title: '周长',filters:[{ data: '' }],slots: { filter: 'num1_filter' }}, |
| | | |
| | | |
| | | ],//表头按钮 |
| | |
| | | zoom: true, |
| | | custom: true |
| | | }, |
| | | data: [ |
| | | { |
| | | '0': 'NG23110102', |
| | | '1': '20批1', |
| | | '2': '16', |
| | | '3': '18', |
| | | '4': '20', |
| | | '5': '20', |
| | | '6': 'A楼b层', |
| | | '7': '101', |
| | | '8': '10mmLYTM-140弯钢化', |
| | | '9': '1008.38', |
| | | '10': 'A号柱子', |
| | | '11': '100', |
| | | '12': '3360', |
| | | '13': '2440', |
| | | '14': '普形', |
| | | '15': '1.11', |
| | | '16': '100.1', |
| | | '17': '1.22', |
| | | '18': '11.11', |
| | | '19': '这是加工要求', |
| | | '20': '这是备注', |
| | | '21': '这是磨边类型', |
| | | '22': '1.1' |
| | | }, |
| | | { |
| | | '0': 'NG23110102', |
| | | '1': '20批1', |
| | | '2': '16', |
| | | '3': '18', |
| | | '4': '20', |
| | | '5': '20', |
| | | '6': 'A楼b层', |
| | | '7': '101', |
| | | '8': '10mmLYTM-140弯钢化', |
| | | '9': '1008.38', |
| | | '10': 'A号柱子', |
| | | '11': '100', |
| | | '12': '3360', |
| | | '13': '2440', |
| | | '14': '普形', |
| | | '15': '1.11', |
| | | '16': '100.1', |
| | | '17': '1.22', |
| | | '18': '11.11', |
| | | '19': '这是加工要求', |
| | | '20': '这是备注', |
| | | '21': '这是磨边类型', |
| | | '22': '1.1' |
| | | } |
| | | ],//table body实际数据 |
| | | footerMethod ({ columns, data }) {//页脚函数 |
| | | return[ |
| | | columns.map((column, columnIndex) => { |
| | | if (columnIndex === 0) { |
| | | return '合计:' |
| | | return `页数:${pageNum}/${pageTotal.value}` |
| | | } |
| | | // if (props.tableProp.footList.includes(column.field)) { |
| | | // return sumNum(data, column.field) |
| | |
| | | } |
| | | |
| | | }) |
| | | |
| | | const gridEvents = { |
| | | toolbarButtonClick ({ code }) { |
| | | const $grid = xGrid.value |
| | | if ($grid) { |
| | | switch (code) { |
| | | case 'add': { |
| | | const selectRecords = $grid.getCheckboxRecords() |
| | | console.log(selectRecords) |
| | | |
| | | if (selectRecords.length === 0) { |
| | | ElMessage.warning("未选中数据") |
| | | return |
| | | } |
| | | let flowData = ref({ |
| | | delivery:selectRecords, |
| | | title:titleUploadData.value |
| | | |
| | | }) |
| | | console.log(flowData) |
| | | request.post("/Delivery/insertDelivery", flowData.value).then((res) => { |
| | | if(res.code==200){ |
| | | ElMessage.success("发货单提交成功") |
| | | router.push({path: '/main/delivery/selectDelivery', query: { id: 1 }}) |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | break |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | <div class="order-primary" style="background-color: white"> |
| | | <el-row> |
| | | <el-col :span="2"><el-text>客户编码:</el-text></el-col> |
| | | <el-col :span="5"><el-text style="font-size: large;color: #181818">131</el-text></el-col> |
| | | <el-col :span="5"><el-input style="font-size: large;color: #181818" v-model="titleUploadData.customerId" ></el-input></el-col> |
| | | <el-col :span="2"><el-text>客户名称:</el-text></el-col> |
| | | <el-col :span="5"><el-text></el-text></el-col> |
| | | <el-col :span="5"><el-input v-model="titleUploadData.customerName"></el-input></el-col> |
| | | <el-col :span="2"><el-text>项目名称:</el-text></el-col> |
| | | <el-col :span="5"><el-text></el-text></el-col> |
| | | <el-col :span="5"><el-input v-model="titleUploadData.project"></el-input></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="2"><el-text>付款条件:</el-text></el-col> |
| | |
| | | </el-select> |
| | | </el-col> |
| | | <el-col :span="2"><el-text>收款方式:</el-text></el-col> |
| | | <el-col :span="5"></el-col> |
| | | <el-col :span="5"><el-input v-model="titleUploadData.payMethod"></el-input></el-col> |
| | | <el-col :span="2"><el-text>收款日期:</el-text></el-col> |
| | | <el-col :span="5"> |
| | | <el-date-picker |
| | | type="week" |
| | | format="[Week] ww" |
| | | v-model="titleUploadData.payDate" |
| | | type="date" |
| | | placeholder="选择日期"/> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="2"><el-text>联系人:</el-text></el-col> |
| | | <el-col :span="5"><el-input/></el-col> |
| | | <el-col :span="5"><el-input v-model="titleUploadData.contacts"/></el-col> |
| | | <el-col :span="2"><el-text>联系电话:</el-text></el-col> |
| | | <el-col :span="5"><el-input/></el-col> |
| | | <el-col :span="5"><el-input v-model="titleUploadData.contactNumber"/></el-col> |
| | | <el-col :span="2"><el-text>送货地址:</el-text></el-col> |
| | | <el-col :span="5"><el-input/></el-col> |
| | | <el-col :span="5"><el-input v-model="titleUploadData.deliveryAddress"/></el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="2"><el-text>备注:</el-text></el-col> |
| | | <el-col :span="5"><el-input/></el-col> |
| | | <el-col :span="5"><el-input v-model="titleUploadData.remarks"/></el-col> |
| | | <el-col :span="2"><el-text>报表日期:</el-text></el-col> |
| | | <el-col :span="5"></el-col> |
| | | <el-col :span="5"><el-input v-model="titleUploadData.createTime"></el-input></el-col> |
| | | <el-col :span="2"><el-text>发货报表日期:</el-text></el-col> |
| | | <el-col :span="5"> |
| | | <el-date-picker |
| | | type="week" |
| | | format="[Week] ww" |
| | | v-model="titleUploadData.deliveryDate" |
| | | type="date" |
| | | placeholder="选择日期"/> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="2"><el-text>业务员:</el-text></el-col> |
| | | <el-col :span="5"><el-text style="font-size: large;color: #181818"></el-text></el-col> |
| | | <el-col :span="5"><el-input v-model="titleUploadData.salesman"/></el-col> |
| | | <el-col :span="2"><el-text>发货员:</el-text></el-col> |
| | | <el-col :span="5"><el-text style="font-size: large;color: #181818"></el-text></el-col> |
| | | <el-col :span="5"><el-input v-model="titleUploadData.creator"/></el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="order-detail"> |
| | |
| | | class="mytable-scrollbar" |
| | | ref="xGrid" |
| | | v-bind="gridOptions" |
| | | v-on="gridEvents" |
| | | |
| | | > |
| | | <template #num1_filter="{ column, $panel }"> |