| | |
| | | > |
| | | <div style="font-weight: bolder;">订单状态</div> |
| | | <div class="statusItem" :class="{statusItemLight:form.erporderstus===''}" @click="statusChange('')">全部</div> |
| | | <div class="statusItem" :class="{statusItemLight:form.erporderstus==='NEW'}" @click="statusChange('NEW')">新订单</div> |
| | | <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CREATING'}" @click="statusChange('CREATING')">部分下达</div> |
| | | <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CREATED'}" @click="statusChange('CREATED')">全部下达</div> |
| | | <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CLOSED'}" @click="statusChange('CLOSED')">已关闭</div> |
| | | <div class="statusItem" :class="{statusItemLight:form.erporderstus==='NEW'}" @click="statusChange('NEW')">新订单 |
| | | </div> |
| | | <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CREATING'}" |
| | | @click="statusChange('CREATING')">部分下达 |
| | | </div> |
| | | <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CREATED'}" |
| | | @click="statusChange('CREATED')">全部下达 |
| | | </div> |
| | | <div class="statusItem" :class="{statusItemLight:form.erporderstus==='CLOSED'}" @click="statusChange('CLOSED')"> |
| | | 已关闭 |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="bodyTopButtonGroup" style="justify-content: space-between;margin-top: 5px;"> |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="订单编号" style=" display: flex;"> |
| | | <el-input v-model="form.erpordercode" placeholder="请输入" style="width: 200px" /> |
| | | <el-input v-model="form.erpordercode" placeholder="请输入" style="width: 200px"/> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="销售订单" style=" display: flex;"> |
| | | <el-input v-model="form.saleordercode" style="width: 200px" placeholder="请输入" /> |
| | | <el-input v-model="form.saleordercode" style="width: 200px" placeholder="请输入"/> |
| | | </el-form-item> |
| | | |
| | | <el-form-item v-show="isExpandForm" label="产品编码" style=" display: flex;"> |
| | | <el-input v-model="form.partcode" style="width: 200px" placeholder="请输入" /> |
| | | <el-input v-model="form.partcode" style="width: 200px" placeholder="请输入"/> |
| | | </el-form-item> |
| | | |
| | | <el-form-item v-show="isExpandForm" label="产品名称" style=" display: flex;"> |
| | | <el-input v-model="form.partname" style="width: 200px" placeholder="请输入" /> |
| | | <el-input v-model="form.partname" style="width: 200px" placeholder="请输入"/> |
| | | </el-form-item> |
| | | <el-form-item v-show="isExpandForm" label="产品规格" style=" display: flex;"> |
| | | <el-input v-model="form.partspec" style="width: 200px" placeholder="请输入" /> |
| | | <el-input v-model="form.partspec" style="width: 200px" placeholder="请输入"/> |
| | | </el-form-item> |
| | | |
| | | <DateType |
| | |
| | | <el-table-column |
| | | show-tooltip-when-overflow |
| | | prop="saleOrderCode" |
| | | label="销售订单" |
| | | label="销售订单/预测单" |
| | | sortable="custom" |
| | | width="150" |
| | | > |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="TopInventoryCode" |
| | | label="顶级物料编码" |
| | | sortable="custom" |
| | | show-tooltip-when-overflow |
| | | min-width="130" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.TopInventoryCode">{{ row.TopInventoryCode }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="TopInventoryName" |
| | | label="顶级物料名称" |
| | | sortable="custom" |
| | | show-tooltip-when-overflow |
| | | min-width="130" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.TopInventoryName">{{ row.TopInventoryName }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="qty" |
| | | label="订单数量" |
| | | width="150" |
| | |
| | | width="150" |
| | | sortable="custom" |
| | | /> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="priuserdefnvc1"--> |
| | | <!-- label="客户名称"--> |
| | | <!-- width="110"--> |
| | | <!-- sortable="custom"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- {{ row.priuserdefnvc1 ? row.priuserdefnvc1 : '/' }}--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="priuserdefnvc6"--> |
| | | <!-- label="客户编码"--> |
| | | <!-- width="110"--> |
| | | <!-- sortable="custom"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- {{ row.priuserdefnvc6 ? row.priuserdefnvc6 : '/' }}--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="priuserdefnvc2"--> |
| | | <!-- label="对内名称"--> |
| | | <!-- width="110"--> |
| | | <!-- sortable="custom"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- {{ row.priuserdefnvc2 ? row.priuserdefnvc2 : '/' }}--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="priuserdefnvc3"--> |
| | | <!-- label="CTP日期"--> |
| | | <!-- width="110"--> |
| | | <!-- sortable="custom"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- {{ row.priuserdefnvc3 ? row.priuserdefnvc3 : '/' }}--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="priuserdefnvc4"--> |
| | | <!-- label="钢刀编号"--> |
| | | <!-- width="110"--> |
| | | <!-- sortable="custom"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- {{ row.priuserdefnvc4 ? row.priuserdefnvc4 : '/' }}--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="priuserdefnvc5"--> |
| | | <!-- label="盒型"--> |
| | | <!-- width="110"--> |
| | | <!-- sortable="custom"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- {{ row.priuserdefnvc5 ? row.priuserdefnvc5 : '/' }}--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="priuserdefnvc1"--> |
| | | <!-- label="客户名称"--> |
| | | <!-- width="110"--> |
| | | <!-- sortable="custom"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- {{ row.priuserdefnvc1 ? row.priuserdefnvc1 : '/' }}--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="priuserdefnvc6"--> |
| | | <!-- label="客户编码"--> |
| | | <!-- width="110"--> |
| | | <!-- sortable="custom"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- {{ row.priuserdefnvc6 ? row.priuserdefnvc6 : '/' }}--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="priuserdefnvc2"--> |
| | | <!-- label="对内名称"--> |
| | | <!-- width="110"--> |
| | | <!-- sortable="custom"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- {{ row.priuserdefnvc2 ? row.priuserdefnvc2 : '/' }}--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="priuserdefnvc3"--> |
| | | <!-- label="CTP日期"--> |
| | | <!-- width="110"--> |
| | | <!-- sortable="custom"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- {{ row.priuserdefnvc3 ? row.priuserdefnvc3 : '/' }}--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="priuserdefnvc4"--> |
| | | <!-- label="钢刀编号"--> |
| | | <!-- width="110"--> |
| | | <!-- sortable="custom"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- {{ row.priuserdefnvc4 ? row.priuserdefnvc4 : '/' }}--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="priuserdefnvc5"--> |
| | | <!-- label="盒型"--> |
| | | <!-- width="110"--> |
| | | <!-- sortable="custom"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- {{ row.priuserdefnvc5 ? row.priuserdefnvc5 : '/' }}--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <el-table-column |
| | | prop="clerkuser" |
| | | label="销售业务员" |
| | |
| | | @click="edit('edit',row)" |
| | | /> |
| | | </el-tooltip> |
| | | <el-tooltip v-del-tab-index class="item" effect="dark" content="订单关闭" placement="top"> |
| | | <el-tooltip v-del-tab-index class="item" effect="dark" :content="row.status!=='CLOSED'?'订单关闭':'订单启动'" placement="top"> |
| | | <i |
| | | v-if="row.status!=='CLOSED'" |
| | | class="el-icon-switch-button" |
| | | :style="{color:'red'}" |
| | | style="cursor: pointer;margin-left: 15px" |
| | | @click="orderClose(row)" |
| | | /> |
| | | |
| | | <i |
| | | v-if="row.status==='CLOSED'" |
| | | class="el-icon-thumb" |
| | | :style="{color:$store.state.settings.theme}" |
| | | style="cursor: pointer;margin-left: 15px" |
| | | @click="orderClose(row.id)" |
| | | @click="orderOpen(row)" |
| | | /> |
| | | </el-tooltip> |
| | | |
| | |
| | | > |
| | | <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="106px"> |
| | | <el-form-item label="订单编号" prop="erpordercode"> |
| | | <el-input v-model="dialogForm.erpordercode" disabled style="width: 200px" /> |
| | | <el-input v-model="dialogForm.erpordercode" disabled style="width: 200px"/> |
| | | </el-form-item> |
| | | <el-form-item label="产品编码" prop="partcode"> |
| | | <el-input v-model="dialogForm.partcode" disabled style="width: 200px" /> |
| | | <el-input v-model="dialogForm.partcode" disabled style="width: 200px"/> |
| | | </el-form-item> |
| | | <el-form-item label="产品名称" prop="partname"> |
| | | <el-input v-model="dialogForm.partname" disabled style="width: 200px" /> |
| | | <el-input v-model="dialogForm.partname" disabled style="width: 200px"/> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="产品规格" prop="partspec"> |
| | | <el-input v-model="dialogForm.partspec" disabled style="width: 200px" /> |
| | | <el-input v-model="dialogForm.partspec" disabled style="width: 200px"/> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="顶级物料编码" prop="TopInventoryCode"> |
| | | <el-input v-model="dialogForm.TopInventoryCode" disabled style="width: 200px"/> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="顶级物料名称" prop="TopInventoryName"> |
| | | <el-input v-model="dialogForm.TopInventoryName" disabled style="width: 200px"/> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="生产车间" prop="wkshopname"> |
| | | <el-input v-model="dialogForm.wkshopname" disabled style="width: 200px" /> |
| | | <el-input v-model="dialogForm.wkshopname" disabled style="width: 200px"/> |
| | | </el-form-item> |
| | | <el-form-item label="所属仓库" prop="warehousename"> |
| | | <el-input v-model="dialogForm.warehousename" disabled style="width: 200px" /> |
| | | <el-input v-model="dialogForm.warehousename" disabled style="width: 200px"/> |
| | | </el-form-item> |
| | | <el-form-item label="订单数量" prop="erpqty"> |
| | | <el-input v-model="dialogForm.erpqty" disabled style="width: 200px" /> |
| | | <el-input v-model="dialogForm.erpqty" disabled style="width: 200px"/> |
| | | </el-form-item> |
| | | <el-form-item label="已下单数" prop="relse_qty"> |
| | | <el-input |
| | |
| | | |
| | | <script> |
| | | import Pagination from '@/components/Pagination' |
| | | import { handleDatetime } from '@/utils/global' |
| | | import {handleDatetime} from '@/utils/global' |
| | | import elDragDialog from '@/directive/el-drag-dialog' |
| | | import waves from '@/directive/waves' |
| | | import { |
| | |
| | | DeleteErpOrder, |
| | | ErpOrderSearch, |
| | | MarkBatchSaveErpOrder, |
| | | MarkSaveErpOrder |
| | | MarkSaveErpOrder, ReverseClosedErpOrder |
| | | } from '@/api/WorkOrder' |
| | | import { SeaveSearchErpOrder } from '@/api/ErpSyncMes' |
| | | import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData' |
| | | import {SeaveSearchErpOrder} from '@/api/ErpSyncMes' |
| | | import {PrentOrganizationNoCompany} from '@/api/GeneralBasicData' |
| | | import DateType from '@/components/DateType' |
| | | |
| | | const SER_HZ = /^[\u4e00-\u9fa5]+$/ |
| | |
| | | components: { |
| | | Pagination, DateType |
| | | }, |
| | | directives: { elDragDialog, waves }, |
| | | directives: {elDragDialog, waves}, |
| | | data() { |
| | | const validateName = (rule, value, callback) => { |
| | | if (!value) { |
| | |
| | | }, |
| | | |
| | | erporderstusArr: [ |
| | | { code: 'NEW', name: '新订单' }, |
| | | { code: 'CREATING', name: '部分下达' }, |
| | | { code: 'CREATED', name: '全部下达' }, |
| | | { code: 'CLOSED', name: '已关闭' } |
| | | {code: 'NEW', name: '新订单'}, |
| | | {code: 'CREATING', name: '部分下达'}, |
| | | {code: 'CREATED', name: '全部下达'}, |
| | | {code: 'CLOSED', name: '已关闭'} |
| | | ], |
| | | wkshopcodeArr: [], |
| | | total: 10, |
| | |
| | | ordernum: '', // 下单单数 |
| | | relse_qty: '', // 已下单数量 |
| | | |
| | | idTopInventory: '', // 顶级物料id |
| | | TopInventoryCode: '', // 顶级物料编码 |
| | | TopInventoryName: '', // 顶级物料名称 |
| | | |
| | | clerkuser: '', // 销售业务员 |
| | | |
| | | saleOrderDeliveryDate: '', // 预计交付日期 |
| | |
| | | // { required: true, validator: validateName, trigger: ['blur', 'change'] } |
| | | // ], |
| | | markqty: [ |
| | | { required: true, message: '请输入下单数量', trigger: ['blur', 'change'] } |
| | | {required: true, message: '请输入下单数量', trigger: ['blur', 'change']} |
| | | ], |
| | | ordernum: [ |
| | | { required: true, message: '请输入下单单数', trigger: ['blur', 'change'] } |
| | | {required: true, message: '请输入下单单数', trigger: ['blur', 'change']} |
| | | ], |
| | | saleOrderDeliveryDate: [ |
| | | { required: true, message: '请选择预计交付日期', trigger: ['blur', 'change'] } |
| | | {required: true, message: '请选择预计交付日期', trigger: ['blur', 'change']} |
| | | ] |
| | | |
| | | }, |
| | |
| | | }, |
| | | |
| | | async getPrentOrganizationNoCompany() { |
| | | const { data: res } = await PrentOrganizationNoCompany() |
| | | const {data: res} = await PrentOrganizationNoCompany() |
| | | this.wkshopcodeArr = res |
| | | }, |
| | | async getErpOrderSearch() { |
| | |
| | | this.total = res.count |
| | | }, |
| | | // 排序改变时 |
| | | sortChange({ column, prop, order }) { |
| | | sortChange({column, prop, order}) { |
| | | if (order === 'descending') { |
| | | order = 'desc' |
| | | } else if (order === 'ascending') { |
| | |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | DeleteErpOrder({ erpordercode: item.wo, erporderid: id }).then(res => { |
| | | DeleteErpOrder({erpordercode: item.wo, erporderid: id}).then(res => { |
| | | if (res.code === '200') { |
| | | this.$message.success('订单删除成功!') |
| | | this.getErpOrderSearch() |
| | |
| | | }) |
| | | }, |
| | | // 订单关闭 |
| | | async orderClose(id) { |
| | | this.tableData.forEach(item => { |
| | | if (item.id === id) { |
| | | if (item.status !== 'NEW') { |
| | | return this.$message.info('此订单非新订单,无法关闭!') |
| | | } else { |
| | | this.$confirm('是否确认关闭订单?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | ClosedErpOrder({ erpordercode: item.wo, erporderid: id }).then(res => { |
| | | if (res.code === '200') { |
| | | this.$message.success('订单关闭成功!') |
| | | this.getErpOrderSearch() |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message.info('已取消关闭!') |
| | | }) |
| | | async orderClose(row) { |
| | | if (row.status !== 'NEW') { |
| | | return this.$message.info('此订单非新订单,无法关闭!') |
| | | } else { |
| | | this.$confirm('是否确认关闭订单?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | ClosedErpOrder({erpordercode: row.wo, erporderid: row.id}).then(res => { |
| | | if (res.code === '200') { |
| | | this.$message.success('订单关闭成功!') |
| | | this.getErpOrderSearch() |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message.info('已取消关闭!') |
| | | }) |
| | | } |
| | | }, |
| | | // 订单开启 |
| | | async orderOpen(row) { |
| | | this.$confirm('是否确认启动订单,该订单下的所有工单将会开启!', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | ReverseClosedErpOrder({erpordercode: row.wo, erporderid: row.id}).then(res => { |
| | | if (res.code === '200') { |
| | | this.$message.success('订单启动成功!') |
| | | this.getErpOrderSearch() |
| | | } |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message.info('已取消关闭!') |
| | | }) |
| | | }, |
| | | batchHandle() { |
| | |
| | | this.dialogForm.markqty = parseFloat(row.qty) - parseFloat(row.relse_qty) |
| | | this.dialogForm.ordernum = 1 |
| | | this.dialogForm.relse_qty = row.relse_qty |
| | | |
| | | this.dialogForm.idTopInventory = row.idTopInventory |
| | | this.dialogForm.TopInventoryCode = row.TopInventoryCode |
| | | this.dialogForm.TopInventoryName = row.TopInventoryName |
| | | |
| | | this.dialogForm.clerkuser = row.clerkuser |
| | | |
| | | this.dialogForm.paystartdate = row.planstartdate |
| | |
| | | markqty: '', // 下单数量 |
| | | ordernum: '', // 下单单数 |
| | | relse_qty: '', // 已下单数量 |
| | | |
| | | idTopInventory: '', // 顶级物料id |
| | | TopInventoryCode: '', // 顶级物料编码 |
| | | TopInventoryName: '', // 顶级物料名称 |
| | | |
| | | payenddate: '', // 预计完工日期 |
| | | paystartdate: '', // 预计开工日期 |
| | |
| | | 'partcode': this.dialogForm.partcode, |
| | | 'wkshopcode': this.dialogForm.wkshopcode, |
| | | 'warehousecode': this.dialogForm.warehousecode, |
| | | |
| | | 'idTopInventory': this.dialogForm.idTopInventory, |
| | | 'TopInventoryCode': this.dialogForm.TopInventoryCode, |
| | | 'TopInventoryName': this.dialogForm.TopInventoryName, |
| | | |
| | | 'clerkuser': this.dialogForm.clerkuser, |
| | | 'erpqty': this.dialogForm.erpqty, |
| | | 'markqty': this.dialogForm.markqty, |
| | |
| | | this.$refs.tableDataRef.doLayout() |
| | | }) |
| | | }, |
| | | tableRowClassName({ row, rowIndex }) { |
| | | tableRowClassName({row, rowIndex}) { |
| | | return 'custom-row' |
| | | }, |
| | | getSummaries(param) { |
| | | const { columns, data } = param |
| | | const {columns, data} = param |
| | | const sums = [] |
| | | const i = 7 |
| | | columns.forEach((column, index) => { |
| | |
| | | padding: 10px 10px 0 10px; |
| | | } |
| | | |
| | | .statusItem{ |
| | | .statusItem { |
| | | margin-left: 20px; |
| | | cursor: pointer; |
| | | color: #a7a7a7; |
| | | } |
| | | .statusItemLight{ |
| | | |
| | | .statusItemLight { |
| | | font-weight: bolder; |
| | | color: #42b983; |
| | | } |