<template> <a-card :bordered="false"> <!-- 查询区域 --> <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="query"> <a-row :gutter="24"> <a-col :md="6" :sm="8"> <a-form-item label="项目名称"> <!-- <a-select--> <!-- show-search--> <!-- placeholder="请选择工作令"--> <!-- option-filter-prop="children"--> <!-- :filter-option="filterOption"--> <!-- v-model="queryParam.workOrder"--> <!-- >--> <!-- <a-select-option v-for="item in projectNameList" :key="item.workOrder" :value="item.workOrder">{{ item.workOrder }}</a-select-option>--> <!-- </a-select>--> <j-popup v-model="queryParam.workOrder" code="find_projectc" field="field0056" orgFields="field0056" destFields="field0056" :multi="true"/> </a-form-item> </a-col> <a-col :md="6" :sm="8"> <a-form-item label="物料编码"> <a-input placeholder="请输入物料编码" v-model="queryParam.bomCode"></a-input> </a-form-item> </a-col> <a-col :md="6" :sm="8"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> <a-button type="primary" @click="query" icon="search">查询</a-button> <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> <a-button type="primary" icon="download" style="margin-left: 8px" @click="handleExportXls('领料清单')">导出</a-button> </span> </a-col> </a-row> </a-form> </div> <!-- table区域-begin --> <div> <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> <i class="anticon anticon-info-circle ant-alert-icon"></i>已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项 <a style="margin-left: 24px" @click="onClearSelected">清空</a> </div> <a-table ref="table" bordered size="middle" rowKey="id" :columns="columns" :dataSource="dataSource" :pagination="ipagination" :loading="loading" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" @change="handleTableChange"> <span slot="action" slot-scope="text, record"> <a @click="bomDetailsClick(record)" >物料详情</a> </span> <span slot="receive" slot-scope="text, record"> <a @click="receiveClick(record)">{{numFormat(record.qtyCompleted)}}</a> </span> <span slot="inStock" slot-scope="text, record"> <a @click="inventoryClick(record)">{{numFormat(record.inStock)}}</a> </span> </a-table> </div> <j-popup v-show="showRentPrise" ref="material_details" code="find_material" :param="materialParam" org-fields="username" dest-fields="popup" field="popup"/> <j-popup v-show="showRentPrise" ref="shipment_details" code="find_shipment_detail" :param="shipmentParam" org-fields="username" dest-fields="popup" field="popup"/> <j-popup v-show="showRentPrise" ref="inventory_details" code="find_inventory" :param="inventoryParam" org-fields="username" dest-fields="popup" field="popup"/> </a-card> </template> <script> import { getMaterialCollection, getProject } from '@api/api' import {JeecgListMixin} from '@/mixins/JeecgListMixin' export default { name: 'Partlib', mixins: [JeecgListMixin], data() { return { materialParam:{code:''}, shipmentParam:{code:'',moCode:''}, inventoryParam:{code:''}, description: '菜单管理页面', // 表头 columns: [ { title: '#', dataIndex: '', key: 'rowIndex', width: 60, align: 'center', customRender: function (t, r, index) { return parseInt(index) + 1 } }, { title: '工作令', align: 'center', dataIndex: 'workOrder', ellipsis: true }, { title: '物料名称', align: 'center', dataIndex: 'bom', ellipsis: true }, { title: '物料编码', align: 'center', dataIndex: 'bomCode', ellipsis: true }, { title: '单位', align: 'center', dataIndex: 'bomUnit' }, { title: '制造方式', align: 'center', dataIndex: 'f04' }, { title: '库存', align: 'center', dataIndex: 'inStock', scopedSlots:{ customRender:'inStock' } }, { title: '用量', align: 'center', dataIndex: 'bnum' }, { title: '已领数量', align: 'center', dataIndex: 'qtyCompleted', ellipsis: true, key:'qtyCompleted', scopedSlots:{ customRender:'receive' } }, { title: '操作', dataIndex: 'action', align:"center", fixed:"right", width:147, scopedSlots: { customRender: 'action' }, } ], url: { list: '/config/bom/getMaterialCollection', exportXlsUrl: "/config/bom/exportPickingXls" }, loading: false, queryParam: {}, projectNameList: ['name','workOrder'], } }, created() { this.loadFrom(); this.query(); }, methods: { loadFrom() { getProject().then((res) => { if (res.success) { this.projectNameList = res.result; } }) }, numFormat(qty){ if(qty==undefined){ return ''; }else{ return parseFloat(qty).toFixed(1); } }, receiveClick(data){ this.shipmentParam['code'] = "'"+data.bomCode+"'"; this.shipmentParam['moCode'] = "'"+data.workOrder+"'"; this.$refs.shipment_details.openModal(); }, inventoryClick(data){ this.inventoryParam['code'] = "'"+data.bomCode+"'"; this.$refs.inventory_details.openModal(); }, bomDetailsClick(data){ this.materialParam['code'] = "'"+data.bomCode+"'" this.$refs.material_details.openModal(); }, filterOption(input, option) { return ( option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 ); }, query() { let params = { "workOrder": this.queryParam.workOrder, "bomCode":this.queryParam.bomCode } getMaterialCollection(params).then((res) => { if (res.success) { this.dataSource = res.result; }else { this.$message.warning(res.message); } }) } }, } </script> <style scoped> </style>