<template>
|
<div class="mod-config">
|
<basic-container>
|
<ttable
|
:table="table"
|
@handleSelectionChange="handleSelectionChange"
|
:uploadInfo="uploadInfo"
|
:prelang="prelang"
|
:options="options"
|
:ajaxFun="ajaxFun"
|
:toolbarMaxLength="4"
|
:paramArr="type"
|
ref="customerOrderTable"
|
>
|
<template #toolbar>
|
<el-dropdown
|
v-if="permissions.customerorder_doc_relate"
|
@command="documentHandle"
|
style="margin-left: 10px"
|
>
|
<el-button style="padding: 9px 14px;">
|
工艺文件<i class="el-icon-arrow-down el-icon--right"></i>
|
</el-button>
|
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-item
|
:key="index"
|
:command="item.command"
|
v-for="(item, index) in documentTagArr"
|
:disabled="item.disabled"
|
>
|
{{ item.label }}
|
</el-dropdown-item>
|
</el-dropdown-menu>
|
</el-dropdown>
|
<!--审核状态改变-->
|
<el-dropdown
|
v-if="permissions.customerorder_audit_change"
|
@command="handleCommitCommand"
|
style="margin-left: 10px"
|
>
|
<el-button style="padding: 9px 14px;">
|
审核状态改变<i class="el-icon-arrow-down el-icon--right"></i>
|
</el-button>
|
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-item
|
:key="index"
|
:command="item.command"
|
v-for="(item, index) in commitStateTagArr"
|
:disabled="item.disabled"
|
>{{ item.label }}</el-dropdown-item
|
>
|
</el-dropdown-menu>
|
</el-dropdown>
|
<el-button
|
style="margin-left: 10px;padding: 9px 14px;"
|
type="primary"
|
@click="() => (exportDialogVisible = true)"
|
>导出台账</el-button
|
>
|
<el-button
|
style="margin-left: 10px;padding: 9px 14px;"
|
type="primary"
|
v-if="permissions.plan_customerorder_check"
|
@click="handleCheck"
|
>审核</el-button
|
>
|
<!-- <el-button
|
style="margin-left: 10px"
|
type="primary"
|
@click="() => ($refs.technology.init())"
|
>编写技术交底单</el-button
|
> -->
|
</template>
|
</ttable>
|
<!-- 弹窗, 日期选择 -->
|
<ConfirmPullCustomerorder
|
v-if="showPullCustomerOrderVisible"
|
ref="confirmPullCustomerorder"
|
@refreshDataList="getData"
|
></ConfirmPullCustomerorder>
|
<!-- 弹窗, 新增 / 修改 -->
|
<table-form
|
v-if="addOrUpdateVisible"
|
ref="addOrUpdate"
|
@refreshDataList="getData"
|
></table-form>
|
<!-- 创建主计划需求 -->
|
<mps-requirements
|
v-if="mpsRequirementsVisible"
|
ref="mpsRequirements"
|
@refreshDataList="getData"
|
></mps-requirements>
|
<!-- 创建主生产计划 -->
|
<schedule-table
|
v-if="scheduleVisible"
|
ref="schedule"
|
@refreshDataList="getData"
|
></schedule-table>
|
<!-- 预留库存零件 -->
|
<!--库存-->
|
<stockDialog :currshowlist.sync="stockVisible" :partName="partName" />
|
<DocumentTable
|
:currshowlist.sync="showDocument"
|
:multiSelect="false"
|
:relationOrderList="multipleSelection"
|
:showParentInfo="showParentInfo"
|
@listenToDocumentEvent="selectDocument"
|
>
|
</DocumentTable>
|
<!-- 弹窗, 新增样品 -->
|
<SampleTableForm
|
v-if="addSampleVisible"
|
ref="addSampleForm"
|
@refreshDataList="getData"
|
></SampleTableForm>
|
<SalesPartBatchDialog
|
:currshowlist.sync="showSalesPartBatch"
|
:customerOrderList="multipleSelection"
|
@refreshCustomerOrder="getData"
|
/>
|
<!-- 弹窗, 订单说明 -->
|
<TableFormDEesc
|
v-if="addOrUpdateEescVisible"
|
ref="addOrUpdateEesc"
|
@refreshDataList="getData"
|
></TableFormDEesc>
|
<CustomerorderReturnDialog
|
:currshowlist.sync="showCustomerorderReturn"
|
:customerOrderList="multipleSelection"
|
@refreshCustomerOrder="getData"
|
/>
|
<!--导入-->
|
<el-dialog title="导入" :visible.sync="importDialogVisible" width="30%">
|
<span>
|
<div>
|
<div>
|
<el-upload
|
style="margin-left: 8px; display: inline"
|
class="upload-demo"
|
drag
|
:headers="headers"
|
:action="outBatchUploadUrl"
|
:beforeUpload="beforeAvatarUpload"
|
:limit="1"
|
:show-file-list="false"
|
:file-list="fileList"
|
:on-success="fileSuccessUploadScan"
|
:on-error="handleError"
|
accept=".xlsx,.xls,.csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
|
:auto-upload="true"
|
ref="outBatchUploadScan"
|
multiple
|
>
|
<i class="el-icon-upload"></i>
|
<div class="el-upload__text"><em>点击导入数据</em></div>
|
<div class="el-upload__tip" slot="tip">
|
只能上传xlsx/xls文件,且不超过10M<el-button
|
type="text"
|
style="font-size: 12px"
|
@click="downDataTemplate"
|
>下载模板</el-button
|
>
|
</div>
|
</el-upload>
|
</div>
|
<div></div>
|
</div>
|
</span>
|
<span slot="footer" class="dialog-footer"> </span>
|
</el-dialog>
|
<!-- 导出 -->
|
<el-dialog
|
title="导出台账"
|
:visible.sync="exportDialogVisible"
|
width="20%"
|
>
|
<div style="display: flex; justify-content: center">
|
<el-form
|
:model="dataForm"
|
:inline="true"
|
:rules="dataRule"
|
ref="exportForm"
|
class="l-mes"
|
>
|
<el-form-item label="日期" prop="exportTime">
|
<el-date-picker
|
v-model="dataForm.exportTime"
|
type="datetime"
|
style="width: 100%"
|
placeholder="选择日期时间"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
>
|
</el-date-picker>
|
</el-form-item>
|
</el-form>
|
</div>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="exportDialogVisible = false">取 消</el-button>
|
<el-button type="primary" @click="exportStandBook">确 定</el-button>
|
</span>
|
</el-dialog>
|
<!-- 箱码信息导出 -->
|
<el-dialog
|
title="箱码信息导出"
|
:visible.sync="packageExport.visible"
|
width="450px"
|
>
|
<el-form
|
:model="packageExport.form"
|
:rules="packageExport.rules"
|
ref="packageExportForm"
|
label-width="70px"
|
class="l-mes"
|
style="padding: 0 20px"
|
>
|
<el-form-item label="订单号">
|
<el-input v-model="packageExport.form.customerOrderNo" disabled />
|
</el-form-item>
|
<el-form-item label="每箱数量" prop="splitQuantity">
|
<el-input
|
v-model="packageExport.form.splitQuantity"
|
placeholder=""
|
/>
|
</el-form-item>
|
<el-form-item label="抬头" prop="title">
|
<el-select
|
v-model="packageExport.form.title"
|
placeholder=""
|
filterable
|
style="width: 100%"
|
>
|
<el-option
|
v-for="item in packageExport.titleList"
|
:key="item.id"
|
:label="item.label"
|
:value="item.value"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="packageExport.visible = false">取消</el-button>
|
<el-button
|
type="primary"
|
:disabled="packageExport.buttonDisable"
|
v-thinclick="`packageExportSave`"
|
>确定</el-button
|
>
|
</span>
|
</el-dialog>
|
</basic-container>
|
|
<el-dialog title="选择同步日期" :visible.sync="syncDateVisible" width="20%">
|
<div style="display: flex; justify-content: center">
|
<el-form
|
:model="dataForm"
|
:inline="true"
|
:rules="dataRule"
|
ref="dataForm"
|
class="l-mes"
|
>
|
<el-form-item label="日期">
|
<el-date-picker
|
v-model="dataForm.selectTime"
|
type="datetime"
|
placeholder="选择日期时间"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
>
|
</el-date-picker>
|
</el-form-item>
|
</el-form>
|
</div>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="syncDateVisible = false">取 消</el-button>
|
<el-button type="primary" @click="startSync">确 定</el-button>
|
</span>
|
</el-dialog>
|
<el-dialog
|
title="已关联销售订单"
|
:visible.sync="showInterrelatedOrderDialog"
|
width="60%"
|
>
|
<el-table border height="100" :data="interrelatedOrderData">
|
<el-table-column
|
type="index"
|
align="center"
|
label="序号"
|
></el-table-column>
|
<el-table-column
|
prop="contractNo"
|
show-overflow-tooltip
|
align="center"
|
label="合同编号"
|
></el-table-column>
|
<el-table-column
|
prop="entityName"
|
show-overflow-tooltip
|
align="center"
|
label="工程名称"
|
></el-table-column>
|
<el-table-column
|
prop="sourceId"
|
show-overflow-tooltip
|
align="center"
|
label="添加来源"
|
>
|
<template scope="scope">
|
<el-tag v-if="scope.row.sourceId == 0" type="success">同步</el-tag>
|
<el-tag v-if="scope.row.sourceId == 1" type="info">手动</el-tag>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="placeOrderDate"
|
show-overflow-tooltip
|
align="center"
|
label="下单日期"
|
></el-table-column>
|
<el-table-column
|
prop="customerName"
|
show-overflow-tooltip
|
align="center"
|
label="客户名称"
|
></el-table-column>
|
<el-table-column
|
prop="coState"
|
min-width="100"
|
show-overflow-tooltip
|
align="center"
|
label="销售订单状态"
|
></el-table-column>
|
<el-table-column
|
prop="partNo"
|
show-overflow-tooltip
|
align="center"
|
label="产品编号"
|
></el-table-column>
|
<el-table-column
|
prop="productName"
|
show-overflow-tooltip
|
align="center"
|
label="产品名称"
|
></el-table-column>
|
<el-table-column
|
prop="productType"
|
show-overflow-tooltip
|
align="center"
|
label="隶属品牌"
|
></el-table-column>
|
<el-table-column
|
prop="otcUnit"
|
show-overflow-tooltip
|
align="center"
|
label="单位"
|
></el-table-column>
|
<el-table-column
|
prop="buyQtyDue"
|
show-overflow-tooltip
|
align="center"
|
label="数量"
|
></el-table-column>
|
</el-table>
|
</el-dialog>
|
<technology-form ref="technology"></technology-form>
|
</div>
|
</template>
|
|
<script>
|
import {
|
interrelatedOrder,
|
getInterrelatedOrder,
|
checkHanderOrder,
|
} from '@/api/plan/customerOrderInterrelated'
|
import ConfirmPullCustomerorder from './confirm-pull-customerorder'
|
import TableForm from './customerorder-form'
|
import TechnologyForm from './technology-form.vue'
|
import TableFormDEesc from './customerorder-form-desc'
|
import SampleTableForm from './sample-customerorder-form'
|
import { mapGetters } from 'vuex'
|
import ScheduleTable from './schedule-table'
|
import ttable from '@/views/common/ztt-table.vue'
|
import stockDialog from '@/views/common/stock'
|
import MpsRequirements from './mps-requirements'
|
import SalesPartBatchDialog from './sales-part-batch.vue'
|
import CustomerorderReturnDialog from './customerorder-return.vue'
|
import { otcCustomerOrderSync } from '@/api/plan/customerorder'
|
import {
|
delCustomerOrder,
|
fetchListCustomerOrder,
|
markPlanned,
|
handleDocument,
|
rejectHandleDocument,
|
syncIfsLineNo,
|
checkOA,
|
auditCustomerOrder,
|
pushotc,
|
changeAudit,
|
changeBatchAudit,
|
exportCustomerOrder,
|
exportCustomerOrderSplit,
|
syncOrder,
|
dropByContractNo,
|
downloadProduct,
|
downloadWordFile
|
} from '../../../api/plan/customerorder'
|
import DocumentTable from '@/views/common/document.vue'
|
import { remote } from '@/api/admin/dict'
|
import { getStore } from '@/util/store.js'
|
import { uploadBatchTemplate } from '@/api/plan/operationtaskproduce'
|
import { transform } from '@/util/fileTransform'
|
import { validateSixDecimal } from '@/util/validate'
|
|
export default {
|
data() {
|
return {
|
interrelatedOrderId: null,
|
interrelatedOrderData: [],
|
showInterrelatedOrderDialog: false,
|
technologyDialog:true,
|
uniqueStateArr: [],
|
dataForm: {
|
selectTime: null,
|
exportTime: null,
|
},
|
dataRule: {
|
exportTime: [
|
{ required: true, message: '导出日期不能为空', trigger: 'change' },
|
],
|
},
|
pickerOptions: {
|
onPick: ({ maxDate, minDate }) => {
|
if (minDate && this.pickerMinDate) {
|
this.pickerMinDate = null
|
} else if (minDate) {
|
this.pickerMinDate = minDate.getTime()
|
}
|
},
|
disabledDate: (time) => {
|
if (this.pickerMinDate) {
|
return (
|
time.getTime() > this.pickerMinDate + 2 * 24 * 3600 * 1000 ||
|
time.getTime() < this.pickerMinDate - 2 * 24 * 3600 * 1000
|
)
|
}
|
return false
|
},
|
},
|
exportDialogVisible: false,
|
syncDateVisible: false,
|
syncDate: [],
|
showCustomerorderReturn: false,
|
scheduleVisible: false,
|
showDocument: false,
|
stateTagArr: [
|
{
|
label: '标记零件待选',
|
command: '01partUnCheck',
|
disabled: false,
|
permitArr: [],
|
},
|
{
|
label: '标记工艺文件待选',
|
command: '02technologyUnCheck',
|
disabled: false,
|
permitArr: [],
|
},
|
{
|
label: '标记待计划',
|
command: '03plan',
|
disabled: false,
|
permitArr: [],
|
},
|
{
|
label: '标记已下发',
|
command: '04planed',
|
disabled: false,
|
permitArr: [],
|
},
|
{
|
label: '标记已作废',
|
command: '05cancel',
|
disabled: false,
|
permitArr: [],
|
},
|
],
|
documentTagArr: [
|
{
|
label: '关联工艺文件',
|
command: 'RELEVANCE',
|
disabled: false,
|
},
|
{
|
label: '移除工艺文件',
|
command: 'NORELEVANCE',
|
disabled: false,
|
},
|
],
|
commitStateTagArr: [
|
{
|
label: '标记通过',
|
command: 'PROCESSED',
|
disabled: false,
|
permitArr: ['01draft'],
|
},
|
{
|
label: '标记取消',
|
command: 'CANCELED',
|
disabled: false,
|
permitArr: ['01draft'],
|
},
|
],
|
ajaxFun: fetchListCustomerOrder,
|
events: '',
|
type: [1],
|
mpsRequirementsVisible: false,
|
currentRow: null,
|
multipleSelection: [],
|
isShowQuery: false,
|
uploadInfo: {
|
// 是否展示上传EXCEL以及对应的url
|
isShow: false,
|
url: '',
|
},
|
prelang: 'operation',
|
options: {
|
height: 300, // 默认高度-为了表头固定
|
stripe: true, // 是否为斑马纹 table
|
highlightCurrentRow: false, // 是否要高亮当前行
|
border: true, // 是否有纵向边框
|
lazy: false, // 是否需要懒加载
|
fit: true, // 列的宽度是否自撑开
|
multiSelect: true, //
|
seqNo: true,
|
isRefresh: true, // 是否显示刷新按钮
|
isShowHide: true, // 是否显示显影按钮H
|
isSearch: true, // 高级查询按钮
|
defaultOrderBy: { column: 'placeOrderDate', direction: 'desc' },
|
cancelRunCreated: true,
|
reserveSelection: true,//是否保留之前选择的数据
|
},
|
table: {
|
total: 0,
|
currentPage: 1,
|
pageSize: 20,
|
data: [],
|
// 标题
|
column: [
|
{
|
minWidth: '100',
|
width: '100px',
|
prop: 'contractNo',
|
label: '合同编号',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
render: { fun: this.addOrUpdateHandle },
|
},
|
{
|
minWidth: '120',
|
prop: 'entityName',
|
label: '工程名称',
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
},
|
{
|
minWidth: '120',
|
prop: 'createUser',
|
label: '添加人',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
},
|
{
|
minWidth: '100',
|
prop: 'sourceId',
|
label: '添加来源',
|
isTag: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'select',
|
formatter: this.getSourceId,
|
optList: () => {
|
return this.sourceIdList
|
},
|
},
|
{
|
minWidth: '200',
|
width: '120',
|
prop: 'createTime',
|
label: '添加日期',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'datetimerange',
|
formatter: this.formatDutyDate,
|
},
|
{
|
minWidth: '120',
|
prop: 'placeOrderDate',
|
label: '下单日期',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'datetimerange',
|
formatter: this.formatDutyDate,
|
},
|
{
|
minWidth: '120',
|
prop: 'customerName',
|
label: '客户名称',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
},
|
{
|
minWidth: '120',
|
prop: 'coState',
|
label: '销售订单状态',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'select',
|
formatter: this.getCustomerCoState,
|
optList: () => {
|
return this.coStateList
|
},
|
},
|
{
|
minWidth: '120',
|
prop: 'isAudit',
|
label: 'PLM审核状态',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'select',
|
formatter: this.getIsAudit,
|
optList: () => {
|
return this.isAuditList
|
},
|
},
|
{
|
minWidth: '120',
|
prop: 'isPass',
|
label: '审核通过状态',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'select',
|
formatter: this.checkIsPass,
|
optList: () => {
|
return this.isPassList
|
},
|
},
|
{
|
minWidth: '120',
|
prop: 'isOa',
|
label: '是否提交oa',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'select',
|
formatter: this.checkIsOa,
|
optList: () => {
|
return this.isOaList
|
},
|
},
|
{
|
minWidth: '120',
|
width: '100px',
|
prop: 'partNo',
|
label: '产品编号',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
},
|
{
|
minWidth: '120',
|
width: '100px',
|
prop: 'productName',
|
label: '产品名称',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
},
|
{
|
minWidth: '120',
|
width: '100px',
|
prop: 'productType',
|
label: '隶属品牌',
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
},
|
{
|
minWidth: '120',
|
width: '100px',
|
prop: 'otcUnit',
|
label: '单位',
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
},
|
{
|
minWidth: '120',
|
width: '100px',
|
prop: 'docNumber',
|
label: '工艺文件号',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
},
|
{
|
minWidth: '120',
|
prop: 'buyQtyDue',
|
label: '数量',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
},
|
{
|
minWidth: '140',
|
prop: 'manufactureAttr',
|
label: '制造属性',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'select',
|
formatter: this.getManufactureAttr,
|
optList: () => {
|
return this.manufactureAttrList
|
},
|
},
|
{
|
minWidth: '140',
|
prop: 'customerPartSpec',
|
label: '规格型号',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
},
|
{
|
minWidth: '140',
|
prop: 'returnStatus',
|
label: '合同正本状态',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
},
|
{
|
minWidth: '140',
|
prop: 'originalContractStatus',
|
label: '正本状态',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
},
|
{
|
minWidth: '140',
|
prop: 'salesMan',
|
label: '业务员',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'text',
|
},
|
{
|
minWidth: '140',
|
width: '120',
|
prop: 'deliveryDate',
|
label: '交货时间',
|
sort: true,
|
isTrue: true,
|
isSearch: true,
|
searchInfoType: 'datetimerange',
|
formatter: this.formatDutyDate,
|
},
|
],
|
toolbar: [],
|
operator: [
|
// {
|
// text: '订单说明',
|
// type: 'text',
|
// size: 'small',
|
// fun: this.openCustomerOrder
|
// },
|
// {
|
// text: '查看库存',
|
// type: 'text',
|
// size: 'small',
|
// fun: this.stockHandle
|
// },
|
// {
|
// text: '箱码信息导出',
|
// type: 'text',
|
// size: 'small',
|
// fun: this.packageExportHandle
|
// },
|
// {
|
// text: '审核',
|
// type: 'text',
|
// size: 'small',
|
// fun: this.checkHandOrder,
|
// showFun: (row) => {
|
// return row.sourceId === '1'
|
// },
|
// show: {
|
// val: [false],
|
// key: 'isPass',
|
// },
|
// },
|
{
|
text: '已关联订单',
|
type: 'text',
|
size: 'small',
|
fun: this.showInterrelatedOrder,
|
},
|
{
|
text: '删除',
|
type: 'text',
|
size: 'small',
|
fun: this.cancelHandle,
|
show: {
|
val: [
|
'01partUnCheck',
|
'02technologyUnCheck',
|
'03plan',
|
// '04planed'
|
],
|
key: 'coState',
|
},
|
},
|
],
|
operatorConfig: {
|
fixed: 'right',
|
label: '操作',
|
width: 200,
|
minWidth: 200,
|
},
|
},
|
addOrUpdateVisible: false,
|
coStateList: [
|
{
|
value: '01partUnCheck',
|
label: '零件待选',
|
},
|
{
|
value: '02technologyUnCheck',
|
label: '工艺文件待选',
|
},
|
{
|
value: '03plan',
|
label: '待计划',
|
},
|
{
|
value: '04planed',
|
label: '已下发',
|
},
|
{
|
value: '05cancel',
|
label: '已作废',
|
},
|
{
|
value: '06unedit',
|
label: '订单编辑',
|
},
|
],
|
manufactureAttrList: [
|
{
|
label: '普通',
|
value: 'N',
|
},
|
{
|
label: '样品',
|
value: 'S',
|
},
|
{
|
label: '研发',
|
value: 'D',
|
},
|
],
|
isAuditList: [
|
{
|
value: '01draft',
|
label: '草稿',
|
},
|
{
|
value: '02pending',
|
label: '审核中',
|
},
|
{
|
value: '03accepted',
|
label: '通过',
|
},
|
{
|
value: '04reject',
|
label: '退回',
|
},
|
],
|
sourceIdList: [
|
{
|
label: '同步',
|
value: '0',
|
},
|
{
|
label: '手动',
|
value: '1',
|
},
|
],
|
stockVisible: false,
|
partName: null,
|
showPullCustomerOrderVisible: false,
|
manufactureAttrs: [],
|
importDialogVisible: false,
|
packageExport: {
|
visible: false,
|
form: {
|
id: '',
|
customerOrderNo: '',
|
splitQuantity: '',
|
title: '',
|
},
|
rules: {
|
splitQuantity: [
|
{ required: true, message: '数量不能为空', trigger: 'blur' },
|
{ validator: validateSixDecimal, trigger: 'blur' },
|
],
|
title: [{ required: true, message: '抬头不能为空', trigger: 'blur' }],
|
},
|
titleList: [],
|
buttonDisable: false,
|
},
|
headers: {
|
Authorization: 'Bearer ' + getStore({ name: 'access_token' }),
|
},
|
fileList: [],
|
outBatchUploadUrl: '/mes/operationTaskProduce/upload',
|
showParentInfo: true,
|
addSampleVisible: false,
|
otcPartSyncOptionList: [
|
{
|
value: true,
|
label: '已同步',
|
},
|
{
|
value: false,
|
label: '未同步',
|
},
|
],
|
showSalesPartBatch: false,
|
addOrUpdateEescVisible: false,
|
isPassList: [
|
{ label: '未通过', value: false },
|
{ label: '通过', value: true },
|
],
|
isOaList: [
|
{ label: '未提交', value: false },
|
{ label: '已提交', value: true },
|
],
|
}
|
},
|
components: {
|
ttable,
|
TableForm,
|
MpsRequirements,
|
ScheduleTable,
|
stockDialog,
|
DocumentTable,
|
ConfirmPullCustomerorder,
|
SampleTableForm,
|
SalesPartBatchDialog,
|
TableFormDEesc,
|
CustomerorderReturnDialog,
|
TechnologyForm,
|
},
|
computed: {
|
...mapGetters(['permissions']),
|
},
|
watch: {
|
exportDialogVisible(newVal) {
|
if (!newVal) {
|
this.$refs.exportForm.resetFields()
|
}
|
},
|
coState: {
|
handler(newValue, oldValue) {
|
if (newValue) {
|
this.getData()
|
}
|
},
|
immediate: true,
|
},
|
interrelatedOrderId(newVal) {
|
if (newVal) {
|
getInterrelatedOrder(newVal)
|
.then((res) => {
|
if (res.status === 200) {
|
this.interrelatedOrderData = res.data.data
|
}
|
})
|
.catch((error) => {
|
console.error(error)
|
})
|
}
|
},
|
},
|
mounted() {
|
this.initQueryParams()
|
},
|
created() {
|
// this.getManufactureAttrs()
|
this.getTitles()
|
if (this.permissions.plan_customerorder_add) {
|
this.table.toolbar.push({
|
text: '新增销售订单',
|
type: 'primary',
|
fun: this.addSampleCustomerOrder,
|
disabled: false,
|
permitArr: [],
|
})
|
}
|
if (this.permissions.customerorder_from_otc) {
|
this.table.toolbar.push({
|
text: '获取销售订单',
|
type: 'primary',
|
fun: this.syncERP,
|
disabled: false,
|
permitArr: [],
|
})
|
}
|
if (this.permissions.customerorder_submit_oa) {
|
this.table.toolbar.push({
|
text: '提交OA',
|
type: 'primary',
|
fun: this.auditCustomerOrder,
|
disabled: false,
|
permitArr: [],
|
loading: false,
|
})
|
}
|
if (this.permissions.customerorder_set_salesparts) {
|
this.table.toolbar.push({
|
text: '设置销售件',
|
type: 'primary',
|
fun: this.setSalesPart,
|
disabled: false,
|
permitArr: [],
|
})
|
}
|
if(this.permissions.plan_download_process_file){
|
this.table.toolbar.push({
|
text: '下载工艺文件',
|
disabled: false,
|
type: 'primary',
|
fun: this.downloadWord,
|
permitArr: ['03plan','04planed'],
|
})
|
}
|
if(this.permissions.plan_download_product_file){
|
this.table.toolbar.push({
|
text: '下载排产单',
|
disabled: false,
|
type: 'primary',
|
permitArr: [],
|
fun: this.downloadProductionScheduling,
|
})
|
}
|
if(this.permissions.plan_relevance_order){
|
this.table.toolbar.push({
|
text: '关联订单',
|
disabled: false,
|
type: 'primary',
|
fun: this.interrelatedOrderFun,
|
permitArr: [],
|
})
|
}
|
if (this.permissions.customerorder_create_masterplan) {
|
this.table.toolbar.push({
|
text: '主生产计划',
|
disabled: false,
|
fun: this.masterPlanHandle,
|
permitArr: [],
|
})
|
}
|
},
|
methods: {
|
checkHandOrder(val) {
|
this.$confirm('确认审核通过该销售订单吗?', '提示', {
|
confirmButtonText: '通过',
|
cancelButtonText: '取消',
|
type: 'warning',
|
})
|
.then(() => {
|
checkHanderOrder(val)
|
.then((res) => {
|
if (res.status === 200) {
|
this.$message.success('审核通过')
|
this.getData()
|
}
|
})
|
.catch((error) => {
|
console.error(error)
|
})
|
})
|
.catch(() => {})
|
},
|
interrelatedOrderFun() {
|
if (this.multipleSelection.length != 2) {
|
this.$message.error('请选择两条销售订单')
|
return
|
}
|
let autoId = null
|
let handId = null
|
this.multipleSelection.forEach((ele) => {
|
if (ele.sourceId == 0) {
|
autoId = ele.id
|
} else if (ele.sourceId == 1) {
|
handId = ele.id
|
}
|
})
|
if (autoId == null || handId == null) {
|
this.$message.error('添加来源须为手动和同步')
|
return
|
}
|
interrelatedOrder({
|
customerOrderAutoId: autoId,
|
customerOrderHandId: handId,
|
})
|
.then((res) => {
|
if (res.status === 200) {
|
this.$message.success('关联成功')
|
}
|
})
|
.catch((error) => {
|
console.error(error)
|
})
|
},
|
//展示已关联订单
|
showInterrelatedOrder(currentOrder) {
|
this.interrelatedOrderId = currentOrder.id
|
this.showInterrelatedOrderDialog = true
|
},
|
//下载排产通知单
|
downloadProductionScheduling(){
|
let ids = this.multipleSelection.map(obj => obj.id)
|
if(ids.length<1){
|
this.$message.error("请选择一条数据")
|
return
|
}
|
downloadProduct(ids).then(res=>{
|
if(res.status===200){
|
transform(res)
|
}
|
}).catch(error=>{
|
console.error(error)
|
})
|
},
|
//下载工艺文件
|
downloadWord(){
|
let ids = this.multipleSelection.map(ele=>ele.id)
|
if(ids.length<1){
|
this.$message.error("请选择一条数据")
|
return
|
}
|
downloadWordFile(ids).then(response=>{
|
// 处理返回的文件流
|
const blob = response.data
|
const link = document.createElement('a')
|
link.href = URL.createObjectURL(blob)
|
const disposition = response.headers['content-disposition']
|
let temp = disposition.substring(disposition.lastIndexOf('=') + 1)
|
link.download = decodeURI(temp)
|
document.body.appendChild(link)
|
link.click()
|
window.setTimeout(function () {
|
URL.revokeObjectURL(blob)
|
document.body.removeChild(link)
|
}, 0)
|
})
|
.catch((error) => {
|
console.error(error)
|
})
|
},
|
getOtcPartSyncOptionList() {
|
return this.otcPartSyncOptionList
|
},
|
initQueryParams() {
|
const queryParam = []
|
queryParam.push(
|
Object.assign({
|
prop: 'coState',
|
searchInfoType: 'select',
|
// propVal: '01partUnCheck'
|
// propVal: '02technologyUnCheck'
|
})
|
)
|
this.$refs.customerOrderTable.setQueryParam(queryParam)
|
this.getData()
|
},
|
|
async getData() {
|
await this.$refs.customerOrderTable.getDataList()
|
this.$refs.customerOrderTable.toggleRowExpansion()
|
},
|
// 获取数据列表去除已完成状态的
|
handleDataList(command) {
|
this.type = [command]
|
this.$nextTick(() => {
|
this.getData()
|
})
|
},
|
// 创建主生产计划
|
masterPlanHandle() {
|
if (this.multipleSelection && this.multipleSelection.length > 0) {
|
if (this.judgeCoState(this.multipleSelection)) {
|
// 判断一下剩余数量是否大于0
|
for (let i = 0, len = this.multipleSelection.length; i < len; i++) {
|
// if (
|
// this.multipleSelection[i].buyQtyDue -
|
// this.multipleSelection[i].requireNumber <=
|
// 0
|
// ) {
|
// this.$message.error('请选库存数量大于已下发数量的销售订单')
|
// return
|
// }
|
if (
|
!(
|
this.multipleSelection[i].isAudit != null &&
|
this.multipleSelection[i].isAudit === '03accepted'
|
)
|
) {
|
this.$message.error(
|
'【审核状态】为‘通过’的销售订单才能创建主生产计划'
|
)
|
return
|
}
|
}
|
this.scheduleVisible = true
|
this.$nextTick(() => {
|
this.$refs.schedule.init(this.multipleSelection)
|
})
|
} else {
|
this.$message.error('销售订单审核状态为作废,不可进行操作!')
|
}
|
} else {
|
this.$message.error('请选择销售订单')
|
}
|
},
|
checkIsPass(row, column, cellValue) {
|
this.isPassList.forEach((obj) => {
|
if (obj.value === cellValue) {
|
if (obj.value) {
|
cellValue = "<span style='color:#34BD66;'>" + obj.label + '</span>'
|
} else {
|
cellValue = "<span style='color:#E84738;'>" + obj.label + '</span>'
|
}
|
}
|
})
|
return cellValue
|
},
|
formatDutyDate(row, column, cellValue) {
|
if (cellValue) {
|
const dutyDateList = /\d{4}-\d{1,2}-\d{1,2}/g.exec(cellValue)
|
if (dutyDateList && dutyDateList.length > 0) {
|
return dutyDateList[0]
|
}
|
}
|
return ''
|
},
|
// 新增 / 修改
|
addOrUpdateHandle(row) {
|
if (row.isPass) {
|
this.addOrUpdateVisible = true
|
this.$nextTick(() => {
|
this.$refs.addOrUpdate.init(row ? row.id : row)
|
})
|
} else {
|
this.addSampleVisible = true
|
this.$nextTick(() => {
|
this.$refs.addSampleForm.init(row ? row.contractNo : null)
|
})
|
}
|
},
|
// 新增样品订单
|
addSampleCustomerOrder() {
|
this.addSampleVisible = true
|
this.$nextTick(() => {
|
this.$refs.addSampleForm.init(null)
|
})
|
},
|
// 打开日期选择框
|
pullCustomerOrder() {
|
this.showPullCustomerOrderVisible = true
|
this.$nextTick(() => {
|
this.$refs.confirmPullCustomerorder.init()
|
})
|
},
|
// 获取IFS行号
|
pullIfsLineNo() {
|
if (this.multipleSelection.length > 0) {
|
if (this.judgeCoState(this.multipleSelection)) {
|
const toolbar = this.table.toolbar.find(
|
(item) => item.text === '获取IFS行号'
|
)
|
if (toolbar) {
|
toolbar.loading = true
|
const ids = []
|
this.multipleSelection.forEach((item) => {
|
ids.push(item.id)
|
})
|
syncIfsLineNo(ids)
|
.then((response) => {
|
const resData = response.data
|
if (resData.code === 0) {
|
this.$message.success(resData.msg)
|
this.getData()
|
} else {
|
this.$message.error('获取IFS行号失败!')
|
}
|
toolbar.loading = false
|
})
|
.catch(() => {
|
toolbar.loading = false
|
})
|
}
|
} else {
|
this.$message.error('销售订单审核状态为作废,不可进行操作!')
|
}
|
} else {
|
this.$message.error('请先勾选销售订单!')
|
}
|
},
|
judgeCoState(mulSelection) {
|
let stateFlag = true
|
mulSelection.forEach((item) => {
|
if (item.coState === '05cancel') {
|
stateFlag = false
|
}
|
})
|
return stateFlag
|
},
|
// 审核销售订单
|
auditCustomerOrder() {
|
if (this.multipleSelection.length > 0) {
|
let flag = true
|
const ids = []
|
this.multipleSelection.forEach((item) => {
|
if (item.partNo != null && item.partNo !== '') {
|
ids.push(item.id)
|
} else {
|
flag = false
|
}
|
})
|
if (flag) {
|
checkOA(
|
this.multipleSelection.map((e) => e.id)
|
).then((res) => {
|
if (res.data.data.success) {
|
this.auditCustomerOrderSure(ids)
|
}
|
}).catch(error=>{
|
this.$message.error(error.message)
|
})
|
} else {
|
this.$message.error('存在销售订单未绑定零件号!')
|
}
|
} else {
|
this.$message.error('请先勾选销售订单!')
|
}
|
},
|
auditCustomerOrderSure(ids) {
|
const toolbar = this.table.toolbar.find((item) => item.text === '提交OA')
|
if (toolbar) {
|
toolbar.loading = true
|
auditCustomerOrder(ids)
|
.then((response) => {
|
const resData = response.data
|
if (resData.code === 0) {
|
this.$message.success(resData.msg)
|
this.getData()
|
} else {
|
this.$message.error('提交OA失败!')
|
}
|
toolbar.loading = false
|
})
|
.catch(() => {
|
toolbar.loading = false
|
})
|
}
|
},
|
|
// 箱码信息导出
|
packageExportHandle(row) {
|
if (row.otcQuantity) {
|
this.packageExport.visible = true
|
this.packageExport.form = {
|
id: row.id,
|
customerOrderNo: row.customerOrderNo,
|
splitQuantity: '',
|
title: '',
|
}
|
this.$nextTick(() => {
|
this.$refs.packageExportForm.resetFields()
|
})
|
} else {
|
this.$message.error('销售数量不能为空')
|
}
|
},
|
packageExportSave() {
|
this.$refs.packageExportForm.validate((valid) => {
|
if (valid) {
|
this.packageExport.buttonDisable = true
|
exportCustomerOrderSplit({
|
id: this.packageExport.form.id,
|
splitQuantity: this.packageExport.form.splitQuantity,
|
title: this.packageExport.form.title,
|
})
|
.then((response) => {
|
transform(response)
|
this.packageExport.visible = false
|
})
|
.finally(() => {
|
this.packageExport.buttonDisable = false
|
})
|
}
|
})
|
},
|
// 作废
|
cancelHandle(row) {
|
this.$confirm('确认作废id为【' + row.id + '】的数据?', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
closeOnClickModal: false,
|
type: 'warning',
|
}).then(() => {
|
dropByContractNo({ id: row.id }).then((res) => {
|
if (res.data.code === 0) {
|
this.$message.success('作废成功')
|
this.getData()
|
} else {
|
this.$message.error('作废失败')
|
}
|
})
|
})
|
// .then(() => {
|
// markPlanned([row.id], '05cancel').then((response) => {
|
// var data = response.data
|
// if (data.code === 0) {
|
// this.$message.success('作废成功')
|
// this.getData()
|
// } else {
|
// this.$message.error('作废失败')
|
// }
|
// })
|
// })
|
// .then((data) => {
|
// this.$message.success('作废成功')
|
// this.getData()
|
// })
|
},
|
// 删除
|
deleteHandle(row) {
|
if (row.sourceId === 'GSM') {
|
this.$message.error('当前数据是推送数据不可删除')
|
return
|
}
|
this.$confirm('是否确认删除销售订单号为' + row.customerOrderNo + '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
closeOnClickModal: false,
|
type: 'warning',
|
})
|
.then(() => {
|
return delCustomerOrder(row.id)
|
})
|
.then((data) => {
|
this.$message.success('删除成功')
|
this.getData()
|
})
|
},
|
// table自带事件
|
handleSelectionChange(val) {
|
// 根据状态,禁用表头按钮
|
// 筛选出选中记录的状态
|
var stateArr = val.map(function (value, index) {
|
return value.coState
|
})
|
// 选中状态数组元素去重
|
var uniqueStateArr = []
|
for (var i = 0; i < stateArr.length; i++) {
|
if (uniqueStateArr.indexOf(stateArr[i]) == -1) {
|
uniqueStateArr.push(stateArr[i])
|
}
|
}
|
// 循环自定义按钮,判断每个按钮的permitArr是否完全包含选中状态,若完全包含,则按钮亮,否则按钮灰
|
for (var i = 0; i < this.stateTagArr.length; i++) {
|
if (
|
uniqueStateArr.every((val) =>
|
this.stateTagArr[i].permitArr.length <= 0
|
? true
|
: this.stateTagArr[i].permitArr.includes(val)
|
)
|
) {
|
this.stateTagArr[i].disabled = false
|
} else {
|
this.stateTagArr[i].disabled = true
|
}
|
}
|
// 循环表头按钮,判断每个按钮的permitArr是否完全包含选中状态,若完全包含,则按钮亮,否则按钮灰
|
var toolbar = this.table.toolbar
|
for (var j = 0; j < toolbar.length; j++) {
|
if (
|
uniqueStateArr.every((val) =>
|
toolbar[j].permitArr.length <= 0
|
? true
|
: toolbar[j].permitArr.includes(val)
|
)
|
) {
|
toolbar[j].disabled = false
|
} else {
|
toolbar[j].disabled = true
|
}
|
}
|
this.multipleSelection = val
|
},
|
getCustomerCoState(row, column, cellValue) {
|
this.coStateList.forEach((obj) => {
|
if (obj.value === cellValue) {
|
cellValue = obj.label
|
}
|
})
|
return cellValue
|
},
|
getSourceId(row, column, cellValue) {
|
this.sourceIdList.forEach((obj) => {
|
if (obj.value === cellValue) {
|
cellValue = obj.label
|
}
|
})
|
return cellValue
|
},
|
getManufactureAttr(row, column, cellValue) {
|
this.manufactureAttrList.forEach((obj) => {
|
if (obj.value === cellValue) {
|
cellValue = obj.label
|
}
|
})
|
return cellValue
|
},
|
// getManufactureAttrs() {
|
// remote('manufacture_attr_type').then((response) => {
|
// if (response.data.code === 0) {
|
// this.manufactureAttrs = response.data.data
|
// } else {
|
// this.manufactureAttrs = []
|
// }
|
// })
|
// },
|
getTitles() {
|
remote('order_export_title_type').then((response) => {
|
if (response.data.code === 0) {
|
this.packageExport.titleList = response.data.data
|
} else {
|
this.packageExport.titleList = []
|
}
|
})
|
},
|
getIsAudit(row, column, cellValue) {
|
this.isAuditList.forEach((obj) => {
|
if (obj.value === cellValue) {
|
cellValue = obj.label
|
}
|
})
|
return cellValue
|
},
|
checkIsOa(row, column, cellValue) {
|
this.isOaList.forEach((obj) => {
|
if (obj.value === cellValue) {
|
cellValue = obj.label
|
}
|
})
|
return cellValue
|
},
|
// 审核状态改变
|
handleCommitCommand(event) {
|
if (this.multipleSelection.length > 0) {
|
if (this.judgeCoState(this.multipleSelection)) {
|
let flag = true
|
if (event === 'PROCESSED') {
|
this.multipleSelection.forEach((item) => {
|
if (!(item.isAudit != null && item.isAudit == '01draft')) {
|
flag = false
|
}
|
})
|
}
|
if (flag) {
|
const docFlag = true
|
/* if (event === 'PROCESSED') {
|
this.multipleSelection.forEach((item) => {
|
if (item.technologyDocumentId == null) {
|
docFlag = false
|
}
|
})
|
} */
|
// if (docFlag) {
|
const customIds = []
|
this.multipleSelection.forEach((item) => {
|
customIds.push(item.id)
|
})
|
let stateStr = ''
|
if (event === 'PROCESSED') {
|
stateStr = '03accepted'
|
} else {
|
stateStr = '01draft'
|
}
|
changeBatchAudit(customIds, stateStr).then((response) => {
|
const data = response.data
|
if (data.code == 0) {
|
this.$message.success('审核状态变更成功')
|
this.getData()
|
} else {
|
this.$message.error('审核状态变更失败')
|
}
|
})
|
/* } else {
|
this.$message.error('销售订单,未关联工艺文件!')
|
} */
|
} else {
|
this.$message.error(
|
'只有【审核状态】为‘草稿’的销售订单,才能标记通过!'
|
)
|
}
|
} else {
|
this.$message.error('销售订单审核状态为作废,不可进行操作!')
|
}
|
} else {
|
this.$message.error('请选择一条销售订单')
|
}
|
},
|
// 状态改变
|
handleCommand(event) {
|
var eventName
|
if (event == '01partUnCheck') {
|
eventName = '零件待选'
|
} else if (event == '02technologyUnCheck') {
|
eventName = '工艺文件待选'
|
} else if (event == '03plan') {
|
eventName = '待计划'
|
} else if (event == '04planed') {
|
eventName = '已下发'
|
} else {
|
eventName = '已作废'
|
}
|
if (this.multipleSelection.length > 0) {
|
if (this.judgeCoState(this.multipleSelection)) {
|
markPlanned(
|
this.multipleSelection.map((item) => {
|
return item.id
|
}),
|
event
|
).then((response) => {
|
var data = response.data
|
if (data.code == 0) {
|
this.$message.success(eventName + '修改成功')
|
this.getData()
|
} else {
|
this.$message.error(eventName + '修改失败')
|
}
|
})
|
} else {
|
this.$message.error('销售订单审核状态为作废,不可进行操作!')
|
}
|
} else {
|
this.$message.error('请选择' + eventName + '的对象')
|
}
|
},
|
// 创建主计划需求
|
createMpsRequirements() {
|
if (this.multipleSelection && this.multipleSelection.length > 0) {
|
// 1.根据状态判断是否可以继续创建主计划需求
|
this.mpsRequirementsVisible = true
|
this.$nextTick(() => {
|
this.$refs.mpsRequirements.init(this.multipleSelection)
|
})
|
} else {
|
this.$message.error('请选择销售订单')
|
}
|
},
|
// 查看库存
|
stockHandle(row) {
|
this.stockVisible = true
|
this.partName = row.partName
|
},
|
selectDocument(document) {
|
if (document) {
|
this.changeDocument(document.id)
|
}
|
},
|
documentHandle(event) {
|
let status = false
|
this.events = event
|
if (this.multipleSelection.length == 0) {
|
this.$message.error('请至少选择一条销售订单')
|
} else {
|
if (this.judgeCoState(this.multipleSelection)) {
|
if (event == 'RELEVANCE') {
|
if (!this.multipleSelection[0].isPass) {
|
this.$message.error('请先审核通过,再关联工艺文件')
|
return
|
}
|
const firstPartNo = this.multipleSelection[0].partNo
|
this.multipleSelection.forEach((item) => {
|
if (item.isDocument) {
|
status = true
|
this.$message.error(
|
'存在销售订单已关联工艺文件,如需更改,请先解除关联'
|
)
|
}
|
if (item.partNo == null || item.partNo === '') {
|
status = true
|
this.$message.error('存在销售订单未绑定销售件,请先绑定')
|
}
|
if (item.partNo != firstPartNo) {
|
status = true
|
this.$message.error('订单零件号不一致')
|
}
|
})
|
if (!status) {
|
this.showDocument = true
|
}
|
} else {
|
this.changeDocument(null)
|
}
|
} else {
|
this.$message.error('销售订单审核状态为作废,不可进行操作!')
|
}
|
}
|
},
|
changeDocument(id) {
|
var eventName
|
if (this.events == 'RELEVANCE') {
|
eventName = '关联工艺文件'
|
const customerOrderIds = []
|
this.multipleSelection.forEach((item) => {
|
customerOrderIds.push(item.id)
|
})
|
handleDocument(customerOrderIds, id).then((res) => {
|
if (res.data.code == 0) {
|
this.$message.success(eventName + '成功')
|
this.getData()
|
} else {
|
this.$message.error(res.data.msg)
|
}
|
})
|
} else if (this.events == 'NORELEVANCE') {
|
eventName = '移除工艺文件'
|
const customerOrderIds = []
|
this.multipleSelection.forEach((item) => {
|
customerOrderIds.push(item.id)
|
})
|
rejectHandleDocument(customerOrderIds).then((res) => {
|
if (res.data.code == 0) {
|
this.$message.success(eventName + '成功')
|
this.getData()
|
} else {
|
this.$message.error(res.data.msg)
|
}
|
})
|
}
|
},
|
pushOtc() {
|
if (this.judgeCoState(this.multipleSelection)) {
|
const ids = []
|
this.multipleSelection.forEach((item) => {
|
ids.push(item.id)
|
})
|
pushotc(ids, { pathCode: '0' }).then((response) => {
|
const resData = response.data
|
if (resData.code === 0) {
|
this.$message.success('成功')
|
this.getData()
|
} else {
|
this.$message.error('失败')
|
}
|
})
|
} else {
|
this.$message.error('销售订单审核状态为作废,不可进行操作!')
|
}
|
},
|
importOutPutBatch() {
|
this.importDialogVisible = true
|
},
|
beforeAvatarUpload(file) {
|
const fileName = file.name
|
const fileType = fileName.substring(fileName.lastIndexOf('.') + 1)
|
const isLt10M = file.size / 1024 / 1024 < 10
|
if (fileType !== 'xlsx' && fileType !== 'xls') {
|
this.$message.error('文件格式只能为xlsx或xls,请删除后重新上传')
|
}
|
if (!isLt10M) {
|
this.$message({
|
message: '文件大小',
|
type: 'warning',
|
})
|
}
|
return isLt10M
|
},
|
// 文件上传成功回调事件
|
fileSuccessUploadScan(response, file, fileList) {
|
if (response.code != '0') {
|
this.$message.warning(response.msg)
|
} else {
|
this.$message({
|
message: '上传成功',
|
type: 'success',
|
})
|
this.getData()
|
}
|
this.$refs.outBatchUploadScan.clearFiles()
|
},
|
// 上传失败
|
handleError(err, file, fileList) {
|
const error = JSON.parse(err.message)
|
if (error.msg) {
|
this.$message.error(error.msg)
|
} else {
|
this.$message.error('上传失败')
|
}
|
},
|
downDataTemplate() {
|
uploadBatchTemplate().then((response) => {
|
const blob = new Blob([response.data], {
|
type: 'application/force-download',
|
})
|
const filename = decodeURI('模板文件.xlsx')
|
// 创建一个超链接,将文件流赋进去,然后实现这个超链接的单击事件
|
const elink = document.createElement('a')
|
elink.download = filename
|
elink.style.display = 'none'
|
elink.href = URL.createObjectURL(blob)
|
document.body.appendChild(elink)
|
elink.click()
|
URL.revokeObjectURL(elink.href) // 释放URL 对象
|
document.body.removeChild(elink)
|
})
|
},
|
// 导出台账
|
exportStandBook() {
|
// if (this.multipleSelection.length > 0) {
|
// let ids = ''
|
// this.multipleSelection.forEach((item) => {
|
// ids = ids + item.id + '_'
|
// })
|
// ids = ids.substring(0, ids.length - 1)
|
// exportCustomerOrder(ids).then((response) => {
|
// const blob = new Blob([response.data], {
|
// type: 'application/force-download'
|
// })
|
// const filename = decodeURI('模板文件.xlsx')
|
// // 创建一个超链接,将文件流赋进去,然后实现这个超链接的单击事件
|
// const elink = document.createElement('a')
|
// elink.download = filename
|
// elink.style.display = 'none'
|
// elink.href = URL.createObjectURL(blob)
|
// document.body.appendChild(elink)
|
// elink.click()
|
// URL.revokeObjectURL(elink.href) // 释放URL 对象
|
// document.body.removeChild(elink)
|
// })
|
// } else {
|
// this.$message.error('请选择至少一条销售订单')
|
// }
|
this.$refs['exportForm'].validate((valid) => {
|
if (valid) {
|
const exportTime = this.dataForm.exportTime
|
let queryParam = this.$refs.customerOrderTable.getQueryParam()
|
queryParam.selectTime = exportTime
|
exportCustomerOrder(queryParam)
|
.then((response) => {
|
transform(response)
|
})
|
.catch(() => {})
|
}
|
})
|
},
|
setSalesPart() {
|
if (this.multipleSelection.length > 0) {
|
// 打开销售件查询设置窗口
|
this.showSalesPartBatch = true
|
} else {
|
this.$message.error('请选择至少一条销售订单')
|
}
|
},
|
// 打开销售订单详情,编辑订单说明1我
|
openCustomerOrder(row) {
|
this.addOrUpdateEescVisible = true
|
this.$nextTick(() => {
|
this.$refs.addOrUpdateEesc.init(row ? row.id : row)
|
})
|
},
|
returnOrder() {
|
if (this.multipleSelection.length > 0) {
|
this.showCustomerorderReturn = true
|
} else {
|
this.$message.error('请选择至少一条销售订单')
|
}
|
},
|
syncERP() {
|
this.syncDateVisible = true
|
},
|
startSync() {
|
this.syncDateVisible = false
|
this.table.toolbar.find((e) => e.text === '获取销售订单').loading = true
|
|
if (this.dataForm.selectTime != null && this.dataForm.selectTime != '') {
|
otcCustomerOrderSync({
|
selectTime: this.dataForm.selectTime,
|
pathCode: '1',
|
})
|
.then((response) => {
|
this.table.toolbar.find(
|
(e) => e.text === '获取销售订单'
|
).loading = false
|
const resData = response.data
|
if (resData.code === 0) {
|
this.$message.success('拉取销售订单成功;' + resData.msg)
|
this.dataForm.selectTime = null
|
this.$emit('refreshDataList')
|
this.getData()
|
} else {
|
this.$message.success('拉取销售订单失败')
|
}
|
})
|
.catch((e) => {
|
this.table.toolbar.find(
|
(e) => e.text === '获取销售订单'
|
).loading = false
|
this.$forceUpdate()
|
})
|
} else {
|
this.table.toolbar.find(
|
(e) => e.text === '获取销售订单'
|
).loading = false
|
this.$message.error('请先选择日期')
|
}
|
},
|
handleCheck(){
|
if (this.multipleSelection.length > 0) {
|
for(let i=0 ;i<this.multipleSelection.length;i++){
|
if(this.multipleSelection[i].sourceId==0){
|
this.$message.error('请选择手动输入的销售订单')
|
return;
|
}
|
if(this.multipleSelection[i].isPass){
|
this.$message.error('请选择未审核通过的销售订单')
|
return;
|
}
|
}
|
this.$confirm('确认审核通过选中的销售订单吗?', '提示', {
|
confirmButtonText: '通过',
|
cancelButtonText: '取消',
|
type: 'warning',
|
})
|
.then(() => {
|
checkHanderOrder(this.multipleSelection)
|
.then((res) => {
|
if (res.status === 200) {
|
this.$message.success('审核通过')
|
this.getData()
|
}
|
})
|
.catch((error) => {
|
console.error(error)
|
})
|
})
|
.catch(() => {})
|
} else {
|
this.$message.error('请选择至少一条销售订单')
|
}
|
}
|
},
|
}
|
</script>
|