| | |
| | | <el-button v-waves type="success" icon="el-icon-connection" @click="send">派发</el-button> |
| | | </div> |
| | | |
| | | <el-button v-waves type="primary" icon="el-icon-download" @click="download">导出</el-button> |
| | | |
| | | <!-- <el-button v-waves icon="el-icon-switch-button" @click="orderClose">关闭工单</el-button>--> |
| | | </div> |
| | | |
| | |
| | | fixed |
| | | /> |
| | | <el-table-column |
| | | prop="injectnumber" |
| | | label="注塑机号" |
| | | show-tooltip-when-overflow |
| | | width="110" |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="{row}">{{ row.injectnumber?row.injectnumber:'/' }}</template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="customername" |
| | | label="客户名称" |
| | | show-tooltip-when-overflow |
| | | width="110" |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="{row}">{{ row.customername?row.customername:'/' }}</template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="partcode" |
| | | label="产品编码" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | min-width="120" |
| | | /> |
| | | <el-table-column |
| | | prop="partname" |
| | | min-width="150" |
| | | label="产品名称" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="partspec" |
| | | label="产品规格" |
| | | sortable="custom" |
| | | width="110" |
| | | show-tooltip-when-overflow |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.partspec">{{ row.partspec }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="colour" |
| | | label="颜色" |
| | | show-tooltip-when-overflow |
| | | width="110" |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="{row}">{{ row.colour?row.colour:'/' }}</template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="plan_qty" |
| | | label="工单数" |
| | | sortable="custom" |
| | | show-tooltip-when-overflow |
| | | width="100" |
| | | /> |
| | | <el-table-column |
| | | prop="saleOrderCode" |
| | | label="销售订单" |
| | | sortable="custom" |
| | | show-tooltip-when-overflow |
| | | min-width="160" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="clerkuser" |
| | | label="销售业务员" |
| | | sortable="custom" |
| | | show-tooltip-when-overflow |
| | | width="150" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.clerkuser">{{ row.clerkuser }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="status" |
| | | label="工单状态" |
| | | sortable="custom" |
| | |
| | | <div v-if="row.status==='SCHED'">已排程</div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="wotype" |
| | | label="单据类型" |
| | | sortable="custom" |
| | | show-tooltip-when-overflow |
| | | min-width="120" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.wotype==='PO'">标准工单</div> |
| | | <div v-else-if="row.wotype==='FO'">报废补单</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="wo_code" |
| | | label="工单编号" |
| | |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="saleOrderCode" |
| | | label="销售订单" |
| | | sortable="custom" |
| | | show-tooltip-when-overflow |
| | | min-width="160" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="wotype" |
| | | label="单据类型" |
| | | sortable="custom" |
| | | show-tooltip-when-overflow |
| | | min-width="120" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.wotype==='PO'">标准工单</div> |
| | | <div v-else-if="row.wotype==='FO'">报废补单</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="partcode" |
| | | label="产品编码" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | min-width="120" |
| | | /> |
| | | <el-table-column |
| | | prop="partname" |
| | | min-width="150" |
| | | label="产品名称" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="partspec" |
| | | label="产品规格" |
| | | sortable="custom" |
| | | width="110" |
| | | show-tooltip-when-overflow |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.partspec">{{ row.partspec }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="plan_qty" |
| | | label="工单数" |
| | | sortable="custom" |
| | | show-tooltip-when-overflow |
| | | width="100" |
| | | /> |
| | | <el-table-column |
| | | prop="clerkuser" |
| | | label="销售业务员" |
| | | sortable="custom" |
| | | show-tooltip-when-overflow |
| | | width="150" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.clerkuser">{{ row.clerkuser }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="wkshp_name" |
| | | label="生产车间" |
| | |
| | | :style="{color:$store.state.settings.theme}" |
| | | class="el-icon-printer" |
| | | style="cursor: pointer;margin-right: 15px" |
| | | @click.stop="handlePrint(row.wo_code)" |
| | | @click.stop="handlePrint(row)" |
| | | /> |
| | | </el-tooltip> |
| | | |
| | |
| | | placeholder="选择日期" |
| | | /> |
| | | <!-- :disabled="dialogForm.deliverydate"--> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="注塑机号"> |
| | | <el-input v-model="dialogForm.injectnumber" style="width: 200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="客户名称"> |
| | | <el-select |
| | | v-model="dialogForm.customercode" |
| | | filterable |
| | | :popper-append-to-body="false" |
| | | style="width: 200px;" |
| | | placeholder="请选择客户" |
| | | > |
| | | <el-option |
| | | v-for="item in customerArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="颜色"> |
| | | <el-input v-model="dialogForm.colour" style="width: 200px" /> |
| | | </el-form-item> |
| | | |
| | | <el-divider content-position="left">工序信息</el-divider> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="工单数量:" class="formContent"> |
| | | {{ formApprove.plan_qty }} |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="注塑机号:" class="formContent"> |
| | | {{ formApprove.injectnumber }} |
| | | </el-form-item> |
| | | <el-form-item label="客户名称:" class="formContent"> |
| | | {{ formApprove.customername }} |
| | | </el-form-item> |
| | | <el-form-item label="颜色:" class="formContent"> |
| | | {{ formApprove.colour }} |
| | | </el-form-item> |
| | | <!-- <el-form-item label="工艺路线:" class="formContent">--> |
| | | <!-- {{ formApprove.routename }}--> |
| | |
| | | import { |
| | | AddMesOrderCodeSearch, |
| | | AddUpdateMesOrder, DeleteMesOrder, |
| | | MesBadOrderSearch, MesOrderDistribution, MesOrderNewStepContent, |
| | | MesBadOrderSearch, MesOrderDistribution, MesOrderExcelSearch, MesOrderNewStepContent, |
| | | MesOrderSearch, |
| | | UpdateMesOrderStepSearch |
| | | } from '@/api/WorkOrder' |
| | | import { PartSelect } from '@/api/ProductModel' |
| | | import { PrentOrganization, PrentOrganizationNoCompany, StepData } from '@/api/GeneralBasicData' |
| | | import { CustomerPermissions, PrentOrganization, PrentOrganizationNoCompany, StepData } from '@/api/GeneralBasicData' |
| | | import Sortable from 'sortablejs' |
| | | import ElDragSelect from '@/components/DragSelect' |
| | | import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui |
| | | import { MesOrderPrintSearch } from '@/api/GridReport' |
| | | import { GroupSalaryReportExcelSearch } from '@/api/ReportManager' // base on element-ui |
| | | |
| | | export default { |
| | | name: 'WorkOrderList', |
| | |
| | | deliverydate: '', // 交付时间 |
| | | data_sources: '', // 数据来源 |
| | | |
| | | injectnumber: '', // 注塑机号 |
| | | customercode: '', // 客户编码 |
| | | customername: '', // 客户名称 |
| | | colour: '', // 颜色 |
| | | |
| | | mesmaxqty: 0// 工单的最大值 |
| | | }, |
| | | customerArr: [], |
| | | ordertypeArr: [// 工单类型 |
| | | { code: 'PO', name: '标准工单' }, |
| | | { code: 'FO', name: '报废补单' } |
| | |
| | | ], |
| | | bomId: [ |
| | | { required: true, message: '请选择物料清单', trigger: ['blur', 'change'] } |
| | | ], |
| | | injectnumber: [ |
| | | { required: true, message: '请输入注塑机号', trigger: ['blur', 'change'] } |
| | | ], |
| | | customercode: [ |
| | | { required: true, message: '请选择客户', trigger: ['blur', 'change'] } |
| | | ], |
| | | colour: [ |
| | | { required: true, message: '请输入颜色', trigger: ['blur', 'change'] } |
| | | ] |
| | | |
| | | }, |
| | |
| | | // }) |
| | | }, |
| | | methods: { |
| | | async download() { |
| | | // let tempDate = this.form.operdate |
| | | // if (tempDate.length > 0) { |
| | | // tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) |
| | | // } |
| | | const data = { |
| | | wkshopcode: this.form.wkshopcode, // 车间编码 |
| | | mesorderstus: this.form.mesorderstus, // 工单状态码 |
| | | mesordercode: this.form.mesordercode, // 工单编号 |
| | | partcode: this.form.partcode, // 产品编码 |
| | | ordertype: this.form.ordertype, // ordertype |
| | | sourceorder: this.form.sourceorder, // 源单单号 |
| | | saleordercode: this.form.saleordercode, // 销售订单 |
| | | partname: this.form.partname, // 产品名称 |
| | | partspec: this.form.partspec, // 产品规格 |
| | | creatuser: this.form.creatuser, // 创建人员 |
| | | createdate: this.form.createdate ? handleDatetime(this.form.createdate) : '' // 创建时间 |
| | | } |
| | | |
| | | const { data: res } = await MesOrderExcelSearch(data) |
| | | window.location.href = res |
| | | }, |
| | | async getCustomerPermissions() { |
| | | const { data: res } = await CustomerPermissions() |
| | | this.customerArr = res |
| | | }, |
| | | setSort() { |
| | | const el = this.$refs.stepTableDataRef.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0] |
| | | this.sortable = Sortable.create(el, { |
| | |
| | | if (res.code === '200') { |
| | | this.getSelect() |
| | | this.getPrentOrganizationNoCompany() |
| | | this.getCustomerPermissions() |
| | | } |
| | | }) |
| | | }, |
| | |
| | | this.form.sourceorder = '' |
| | | this.form.ordertype = '' |
| | | this.form.createdate = '' |
| | | this.form.saleordercode = '' |
| | | this.getMesOrderSearch() |
| | | }, |
| | | // 新增按钮 |
| | |
| | | this.dialogForm.deliverydate = row.saleOrderDeliveryDate.substring(0, 11) |
| | | this.dialogForm.mesqty = row.plan_qty |
| | | |
| | | this.dialogForm.injectnumber = row.injectnumber |
| | | this.dialogForm.customercode = row.customercode |
| | | this.dialogForm.colour = row.colour |
| | | |
| | | const data = { |
| | | sourceid: this.dialogForm.sourceorderid, |
| | | sourcewo: this.dialogForm.sourceorder, |
| | |
| | | wkshopname: '', // 生产车间名称 |
| | | |
| | | deliverydate: '', // 交付时间 |
| | | data_sources: '' // 数据来源 |
| | | data_sources: '', // 数据来源 |
| | | |
| | | injectnumber: '', |
| | | customercode: '', |
| | | colour: '' |
| | | } |
| | | this.stepSelectedValue = [] |
| | | this.stepTableData = [] |
| | |
| | | wkshopcode: this.dialogForm.wkshopcode, |
| | | woqty: this.dialogForm.mesqty, // 工单数量 |
| | | deliverydate: this.dialogForm.deliverydate, // 交付时间 |
| | | |
| | | injectnumber: this.dialogForm.injectnumber, |
| | | customercode: this.dialogForm.customercode, |
| | | customername: this.customerArr.find(i => i.code === this.dialogForm.customercode).name, |
| | | colour: this.dialogForm.colour, |
| | | |
| | | data_sources: this.dialogForm.data_sources, // 数据来源 |
| | | isstep: workListSub.length > 0 ? 'Y' : 'N', // |
| | | workListSub |
| | |
| | | this.dialogVisibleSearch = false |
| | | }, |
| | | // 处理打印 |
| | | handlePrint(wo_code) { |
| | | handlePrint(row) { |
| | | // const number = Math.random() * Math.random() |
| | | // this.number = number === 0 ? (10 + Math.random()) : number |
| | | // console.log(number) |
| | | |
| | | const data2 = { |
| | | mesordercode: wo_code || this.dialogForm.mesordercode |
| | | mesordercode: row.wo_code || this.dialogForm.mesordercode |
| | | } |
| | | MesOrderPrintSearch(data2).then(res2 => { |
| | | if (res2.code === '200') { |
| | |
| | | this.formApprove.routename = localStorage.getItem('username') // 打印人员 |
| | | this.formApprove.lm_date = res3[0].lm_date |
| | | |
| | | this.formApprove.injectnumber = row.injectnumber || '/' |
| | | this.formApprove.customername = row.customername || '/' |
| | | this.formApprove.colour = row.colour || '/' |
| | | |
| | | this.$nextTick(() => { |
| | | res3.forEach(i => { |
| | | this.bindQRCode(i.seq, i.stepqrcode, 'small') |