Files
JY1.0/src/views/PurchasingCenter/CreateInquirySheet/index.vue
chenjianan b5dd83bc16 fixed bug
2019-07-19 10:00:12 +08:00

1956 lines
86 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div class="app-container">
<el-card>
<div style="width:100%">
<el-divider content-position="right">
<el-button type="text" @click="searchUnInquiryPartNumber">刷新</el-button> | 待询价零件数
</el-divider>
<el-row>
<el-col v-for="(machine,index) in machines1" :key="index" style="width: 200px">
<el-card shadow="hover" class="sudoku_item" style="height:80px;width: 90%" @click.native="clickCard1(machine.项目流水号, machine.机床流水号)">
<el-badge :value="machine.未询价零件数">
<div style="width: 100px;height:50px;margin:0" class="sudoku_item">
{{ machine.机床图号 }}
</div>
</el-badge>
</el-card>
</el-col>
</el-row>
<el-divider content-position="right"/>
<el-divider content-position="right">
<el-button type="text" @click="searchUnBuyPartNumber">刷新</el-button> | 待采购零件数
</el-divider>
<el-row>
<el-col v-for="(machine,index) in machines2" :key="index" style="width: 200px">
<el-card shadow="hover" class="sudoku_item" style="height:80px;width: 90%" @click.native="clickCard2(machine.项目流水号, machine.机床流水号)">
<el-badge :value="machine.未采购零件数">
<div style="width: 100px;height:50px;margin:0" class="sudoku_item">
{{ machine.机床图号 }}
</div>
</el-badge>
</el-card>
</el-col>
</el-row>
<el-divider content-position="right"/>
</div>
</el-card>
<el-row>
<el-col :span="24">
<el-tabs v-model="tabName" type="border-card" @tab-click="tabClick">
<el-tab-pane label="外购件" name="外购件">
<el-row style="margin-bottom: 5px">
<span>项目名称:</span>
<el-select v-model="projectValue" style="width:200px" placeholder="项目名称" size="small" filterable clearable @change="projectChange">
<el-option
v-for="item in project"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>机床图号:</span>
<el-select v-model="machineValue" style="width:200px" placeholder="请选择" size="small" clearable filterable @change="machineChange">
<el-option
v-for="item in machine"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>组号:</span>
<el-select v-model="groupValue" style="width:200px" placeholder="请选择" size="small" clearable filterable>
<el-option
v-for="item in group"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-row>
<el-row style="margin-bottom: 5px">
<span style="margin-right: -10px">物料状态:</span>
<el-cascader :options="materialStatus" :props="{ checkStrictly: true }" v-model="materialStatusValue" size="small" style="margin-left: 10px"/>
<span>物料名称:</span>
<el-input v-model="materialName" placeholder="物料名称" size="small" clearable/>
<span>物料变更:</span>
<el-switch v-model="switchValue" active-color="#13ce66" inactive-color="#ff4949"/>
</el-row>
<el-row style="margin-bottom: 10px">
<span>物料规格:</span>
<el-input v-model="materialSpec" placeholder="物料规格" size="small" clearable/>
<span>物料型号:</span>
<el-input v-model="materialModel" placeholder="物料型号" size="small" clearable/>
<el-button
type="success"
size="small"
icon="el-icon-search"
style="margin-left: 10px"
@click="pageCurrent11=1;pageSize11=100;total11=0;searchTable11()">查询</el-button>
<el-button
type="warning"
size="small"
icon="el-icon-download"
style="margin-left: 10px"
@click="exportUninquirySheet">导出未询价物料清单</el-button>
</el-row>
<el-row style="margin-bottom: 10px">
<el-table
v-loading=""
:data="tableData11"
:row-class-name="tableRowClassName"
border
style="width: 100%;max-height: 500px;"
height="500px"
size="mini"
@selection-change="handleSelectionChange1">
<el-table-column :selectable="selectable" align="center" width="35" type="selection"/>
<el-table-column v-if="switchValue" label="操作" align="center" width="100" fixed="left">
<template slot-scope="scope">
<el-button :disabled="parseInt(scope.row.询价状态编号)!==1||parseInt(scope.row.是否确认)!==1" type="primary" size="mini" @click="materialChange(scope.row)">物料变更</el-button>
</template>
</el-table-column>
<el-table-column label="物料状态" align="center" width="80">
<template slot-scope="scope">
<el-tag v-if="unInquiry(scope.row)" type="warning" size="small">未询价</el-tag>
<el-tag v-if="inquiry(scope.row)" type="success" size="small">已询价</el-tag>
<el-tag v-if="approval(scope.row)" type="primary" size="small">审批中</el-tag>
<el-tag v-if="purchased(scope.row)" type="info" size="small">已采购</el-tag>
</template>
</el-table-column>
<el-table-column label="任务分配时间" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.任务分配时间.split(' ')[0] }}
</template>
</el-table-column>
<!--<el-table-column label="项目名称" align="center" min-width="100">-->
<!--<template slot-scope="scope">-->
<!--{{ scope.row.项目名称 }}-->
<!--</template>-->
<!--</el-table-column>-->
<el-table-column label="机床图号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.机床图号 }}
</template>
</el-table-column>
<el-table-column label="设计者" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件设计者 || scope.row.机床设计者 || '—' }}
</template>
</el-table-column>
<el-table-column label="组号" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组号 }}
</template>
</el-table-column>
<!--<el-table-column label="物料类别" align="center" min-width="100">-->
<!--<template slot-scope="scope">-->
<!--{{ scope.row.物料类别 }}-->
<!--</template>-->
<!--</el-table-column>-->
<!--<el-table-column label="物料品种" align="center" min-width="100">-->
<!--<template slot-scope="scope">-->
<!--{{ scope.row.物料品种 }}-->
<!--</template>-->
<!--</el-table-column>-->
<el-table-column label="名称" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column label="图号或型号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.物料型号 }}
</template>
</el-table-column>
<el-table-column label="规格" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.物料规格 }}
</template>
</el-table-column>
<el-table-column label="分配数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.零件数量 }}
</template>
</el-table-column>
<el-table-column label="待询价数量" align="center" min-width="90">
<template slot-scope="scope">
{{ scope.row.待询价数量 = Number(scope.row.零件数量) - Number(scope.row.使用滞货数量) }}
</template>
</el-table-column>
<el-table-column label="使用滞货数量" align="center" min-width="100">
<template slot-scope="scope">
{{ Number(scope.row.使用滞货数量) }}
</template>
</el-table-column>
<el-table-column label="使用滞货" align="center" min-width="70">
<template slot-scope="scope">
<!--<el-tooltip class="item" effect="dark" content="使用滞货" placement="top-start">-->
<template v-if="parseInt(scope.row.询价状态编号)!==1||parseInt(scope.row.是否确认)!==1||Number(scope.row.滞货数量)===0">
</template>
<el-button v-else :disabled="parseInt(scope.row.询价状态编号)!==1||parseInt(scope.row.是否确认)!==1||Number(scope.row.滞货数量)===0" icon="el-icon-goods" plain type="primary" size="mini" @click="useInventory(scope.row)"/>
<!--</el-tooltip>-->
<!--<el-tooltip class="item" effect="dark" content="取消使用滞货" placement="top-start">-->
<!--<el-button :disabled="parseInt(scope.row.询价状态编号)!==1||parseInt(scope.row.是否确认)!==1||Number(scope.row.使用滞货数量)===0" icon="el-icon-sold-out" plain type="danger" size="mini" @click="cancelUseInventory(scope.row)"/>-->
<!--</el-tooltip>-->
</template>
</el-table-column>
<el-table-column label="可用滞货数量" align="center" min-width="100">
<template slot-scope="scope">
{{ Number(scope.row.滞货数量) }}
</template>
</el-table-column>
<el-table-column :filters="remarkFilters" :filter-method="filterHandler0" label="备注" align="center" min-width="100" prop="备注">
<template slot-scope="scope">
{{ scope.row.备注 }}
</template>
</el-table-column>
<el-table-column :filters="supplierFilters" :filter-method="filterHandler" label="供货商" align="center" min-width="100" prop="供货商">
<template slot-scope="scope">
{{ scope.row.供货商 }}
</template>
</el-table-column>
<el-table-column label="询价单编号" align="center" min-width="100">
<template slot-scope="scope">
<b v-if="inquiry(scope.row)">{{ scope.row.询价单编号 }}</b>
<b v-else>—</b>
</template>
</el-table-column>
<!--<el-table-column :filters="source" :filter-method="filterSource" align="center" label="数据来源" min-width="90px" prop="零件类型">-->
<!--<template slot-scope="scope">-->
<!--{{ Number(scope.row.零件类型) === 1 ? 'BZ' : 'WG' }}-->
<!--</template>-->
<!--</el-table-column>-->
</el-table>
</el-row>
<div class="block">
<el-pagination
:current-page="pageCurrent11"
:page-sizes="[10, 50, 100, 150]"
:page-size="pageSize11"
:total="total11"
style="display:inline-block;width:50%"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange11"
@current-change="handleCurrentChange11"/>
</div>
</el-tab-pane>
<el-tab-pane label="基本件" name="基本件">
<el-row style="margin-bottom: 5px">
<span>项目名称:</span>
<el-select v-model="projectValue" style="width:200px" placeholder="项目名称" size="small" filterable clearable @change="projectChange">
<el-option
v-for="item in project"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>机床图号:</span>
<el-select v-model="machineValue" style="width:200px" placeholder="请选择" size="small" clearable filterable @change="machineChange">
<el-option
v-for="item in machine"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span>组号:</span>
<el-select v-model="groupValue" style="width:200px" placeholder="请选择" size="small" clearable filterable>
<el-option
v-for="item in group"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-row>
<el-row style="margin-bottom: 5px">
<span style="margin-right: -10px">物料状态:</span>
<el-cascader :options="materialStatus" :props="{ checkStrictly: true }" v-model="materialStatusValue" size="small" style="margin-left: 10px"/>
<span>零件图号:</span>
<el-input v-model="partNum" placeholder="零件图号" size="small" clearable/>
</el-row>
<el-row style="margin-bottom: 10px">
<span>零件名称:</span>
<el-input v-model="partName" placeholder="零件名称" size="small" clearable/>
<span>零件规格:</span>
<el-input v-model="partSpec" placeholder="零件规格" size="small" clearable/>
<el-button
type="success"
size="small"
icon="el-icon-search"
style="margin-left: 10px"
@click="pageCurrent12=1;pageSize12=100;total12=0;searchTable12()">查询</el-button>
<el-button
type="warning"
size="small"
icon="el-icon-download"
style="margin-left: 10px"
@click="exportUninquirySheet">导出未询价物料清单</el-button>
</el-row>
<el-row style="margin-bottom: 10px">
<el-table
v-loading=""
:data="tableData12"
:row-class-name="tableRowClassName"
border
style="width: 100%;max-height: 500px;"
height="500px"
size="mini"
@selection-change="handleSelectionChange2">
<el-table-column :selectable="selectable" align="center" width="35" type="selection"/>
<!--<el-table-column label="操作" align="center" width="100" fixed="left">-->
<!--<template slot-scope="scope">-->
<!--<el-button :disabled="parseInt(scope.row.询价状态编号)!==1||parseInt(scope.row.是否确认)!==1" type="primary" size="mini" @click="partChange(scope.row)">零件变更</el-button>-->
<!--</template>-->
<!--</el-table-column>-->
<el-table-column label="零件状态" align="center" width="100">
<template slot-scope="scope">
<el-tag v-if="unInquiry(scope.row)" type="warning" size="small">未询价</el-tag>
<el-tag v-if="inquiry(scope.row)" type="success" size="small">已询价</el-tag>
<el-tag v-if="approval(scope.row)" type="primary" size="small">审批中</el-tag>
<el-tag v-if="purchased(scope.row)" type="info" size="small">已采购</el-tag>
</template>
</el-table-column>
<el-table-column label="任务分配时间" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.任务分配时间.split(' ')[0] }}
</template>
</el-table-column>
<el-table-column label="项目名称" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.项目名称 }}
</template>
</el-table-column>
<el-table-column label="机床图号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.机床图号 }}
</template>
</el-table-column>
<el-table-column label="设计者" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组件设计者 || scope.row.机床设计者 || '—' }}
</template>
</el-table-column>
<el-table-column label="组号" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.组号 }}
</template>
</el-table-column>
<el-table-column label="图号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.零件图号 }}
</template>
</el-table-column>
<el-table-column label="名称" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.零件名称 }}
</template>
</el-table-column>
<el-table-column label="规格" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.规格 }}
</template>
</el-table-column>
<el-table-column label="材料" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.材料 }}
</template>
</el-table-column>
<el-table-column label="数量" align="center" min-width="80">
<template slot-scope="scope">
{{ scope.row.零件数量 }}
</template>
</el-table-column>
<el-table-column :filters="remarkFilters" :filter-method="filterHandler0" label="备注" align="center" min-width="100" prop="备注">
<template slot-scope="scope">
{{ scope.row.备注 }}
</template>
</el-table-column>
<el-table-column :filters="supplierFilters" :filter-method="filterHandler" label="供货商" align="center" min-width="100" prop="供货商">
<template slot-scope="scope">
{{ scope.row.供货商 }}
</template>
</el-table-column>
<el-table-column label="询价单编号" align="center" min-width="100">
<template slot-scope="scope">
<b v-if="inquiry(scope.row)">{{ scope.row.询价单编号 }}</b>
<b v-else>—</b>
</template>
</el-table-column>
</el-table>
</el-row>
<div class="block">
<el-pagination
:current-page="pageCurrent12"
:page-sizes="[10, 50, 100, 150]"
:page-size="pageSize12"
:total="total12"
style="display:inline-block;width:50%"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange12"
@current-change="handleCurrentChange12"/>
</div>
</el-tab-pane>
</el-tabs>
</el-col>
</el-row>
<el-card style="margin-top: 15px">
<div slot="header">
<span>询价单号:</span>
<el-input v-model="inquirySheetNum" placeholder="询价单号" size="small" clearable/>
<span>供应商:</span>
<el-input v-model="supplierName" placeholder="供应商" size="small" clearable/>
<el-button
type="success"
size="small"
icon="el-icon-search"
style="margin-left: 10px"
@click="pageCurrent2=1;pageSize2=10;total2=0;searchTable2()">查询</el-button>
<el-button
type="primary"
size="small"
style="margin-left: 10px"
@click="createInquirySheet">创建询价单</el-button>
<el-button
type="primary"
size="small"
style="margin-left: 10px"
@click="addInquirySheet">选入</el-button>
</div>
<h3 style="margin-top: 0;display:inline-block;width:50%">询价单</h3>
<el-button :loading="baseInfoLoading" type="success" size="mini" style="float: right" @click="inquirySheetBaseInfoMaintain">询价单基础信息维护</el-button>
<el-table v-loading="" :data="tableData2" border style="max-height: 300px;" height="300px" size="mini" highlight-current-row @row-click="searchTable3">
<el-table-column label="询价单编号" align="center" min-width="120">
<template slot-scope="scope">
{{ scope.row.询价单编号 }}
</template>
</el-table-column>
<el-table-column label="供应商" align="center" min-width="200">
<template slot-scope="scope">
{{ scope.row.供应商名称 }}
</template>
</el-table-column>
<el-table-column label="电话" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.电话号码 }}
</template>
</el-table-column>
<el-table-column label="传真" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.传真 }}
</template>
</el-table-column>
<el-table-column label="受托人" align="center" min-width="70">
<template slot-scope="scope">
{{ scope.row.注册资本 }}
</template>
</el-table-column>
<el-table-column label="帐号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.帐号 }}
</template>
</el-table-column>
<el-table-column label="开户行" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.开户行 }}
</template>
</el-table-column>
<el-table-column label="税号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.税号 }}
</template>
</el-table-column>
<el-table-column label="法人" align="center" min-width="70">
<template slot-scope="scope">
{{ scope.row.企业性质 }}
</template>
</el-table-column>
<el-table-column label="邮编" align="center" min-width="70">
<template slot-scope="scope">
{{ scope.row.货期 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200">
<template slot-scope="scope">
<el-button type="primary" size="mini" icon="el-icon-edit" @click="editInquirySheet(scope.row)">编辑</el-button>
<el-button type="danger" size="mini" icon="el-icon-delete" @click="deleteInquirySheet(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin: 10px 0;">
<el-pagination
:current-page="pageCurrent2"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize2"
:total="total2"
style="display:inline-block;width:50%"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange2"
@current-change="handleCurrentChange2"/>
<el-button :disabled="tableData3.length===0" type="warning" size="mini" style="margin-left:10px;float: right" @click="printInquirySheet()">打印</el-button>
<el-button :disabled="tableData3.length===0" type="warning" size="mini" style="margin-left:10px;float: right" @click="exportInquirySheet()">导出</el-button>
<el-button :disabled="tableData3.length===0" type="success" size="mini" style="float: right" @click="saveOrder()">保存</el-button>
</div><hr>
<h3 style="margin-top: 0">询价单明细</h3>
<el-table v-loading="" :data="tableData3" border style="max-height: 500px;" height="500px" size="mini">
<el-table-column label="供应商" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.供应商名称 }}
</template>
</el-table-column>
<el-table-column label="图号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.组件零件流水号 ? scope.row.物料型号 : scope.row.零件图号 }}
</template>
</el-table-column>
<el-table-column label="名称" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.组件零件流水号 ? scope.row.物料名称 : scope.row.零件名称 }}
</template>
</el-table-column>
<el-table-column label="规格" align="center" min-width="150">
<template slot-scope="scope">
{{ scope.row.组件零件流水号 ? scope.row.物料规格 : scope.row.规格 }}
</template>
</el-table-column>
<el-table-column label="待询价数量" align="center" width="110">
<template slot-scope="scope">
{{ scope.row.技术下达数量 }}
</template>
</el-table-column>
<el-table-column label="实际询价(采购)数量" align="center" width="130">
<template slot-scope="scope">
<el-input v-model="scope.row.数量" size="mini" style="width:100%"/>
</template>
</el-table-column>
<el-table-column label="单位" align="center" width="60">
<template slot-scope="scope">
{{ scope.row.计量单位 }}
</template>
</el-table-column>
<el-table-column label="询价备注" align="center" min-width="120">
<template slot-scope="scope">
<el-input v-model="scope.row.备注" size="mini" style="width:100%"/>
</template>
</el-table-column>
<el-table-column label="询价单编号" align="center" min-width="120">
<template slot-scope="scope">
{{ scope.row.询价单编号 }}
</template>
</el-table-column>
<el-table-column label="机床图号" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.机床图号 || scope.row.基本件机床图号 }}
</template>
</el-table-column>
<el-table-column label="组号" align="center" min-width="70">
<template slot-scope="scope">
{{ scope.row.组号 || scope.row.基本件组号 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<el-button type="danger" size="mini" icon="el-icon-delete" @click="outInquirySheet(scope.row)">移出</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<div id="inquirySheet" style="width: 1000px;margin: 0 auto;display:none">
<table class="inquirySheet" cellspacing="0px" align="center" border="1 solid black" width="100%">
<tr>
<th style="border: none;text-align:left;font-size: 30px;font-weight: bold" colspan="3"><div style="margin: 10px;">GAOJING</div></th>
<th style="border: none;text-align:center;font-size: 30px;font-weight: bold" colspan="8"><div style="margin: 10px;">采购询价单</div></th>
<th style="border: none;" colspan="3"/>
</tr>
<tr>
<td style="border: none;" colspan="2">询价单编号:</td>
<td id="inquirySheetNum" style="border: none;" colspan="4"/>
<td style="border: none;" colspan="2">供应商名称:</td>
<td id="supplier" style="border: none;" colspan="6"/>
</tr>
<tr id="tablehead">
<td width="8.3%">序号</td>
<td width="16.6%" colspan="2">图号</td>
<td width="16.6%" colspan="2">名称</td>
<td width="16.6%" colspan="2">规格</td>
<td width="8.3%">数量</td>
<td width="8.3%">单位</td>
<td width="16.6%" colspan="2">单价</td>
<td colspan="3">备注</td>
</tr>
<tr>
<td colspan="2">合计</td>
<td colspan="5"/>
<td colspan="4"/>
<td colspan="3"/>
</tr>
<tr>
<td colspan="14">请速确认后回传合同及具体交货期限,回传:{{ form3.fax }},联系人:{{ form3.contact }}{{ form3.phone }}</td>
</tr>
<tr>
<td colspan="14">邮箱:{{ form3.email }};公司地址:{{ form3.companyAddress }};公司电话:{{ form3.companyPhone }}</td>
</tr>
<tr>
<td colspan="14">税号:{{ form3.taxNumber }};邮编:{{ form3.postCode }};帐号:{{ form3.account }}</td>
</tr>
<tr>
<td colspan="14">开户行:{{ form3.bank }};送货地址:{{ form3.shippingAddress }}</td>
</tr>
</table>
</div>
<el-dialog :visible.sync="dialogVisible1" title="供应商选择" center style="min-height: 300px" width="700px">
<el-form ref="form1" :model="form1" label-position="left" label-width="90px" class="searchForm">
<el-row>
<el-col :span="12">
<el-form-item label="供应商名称">
<el-input v-model="supplierName" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="法人">
<el-input v-model="enterpriseNature" size="small"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="邮编">
<el-input v-model="goodTime" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="受托人">
<el-input v-model="registeredCapital" size="small"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="税号">
<el-input v-model="taxNum" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="电子邮箱">
<el-input v-model="EMail" size="small"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="地址">
<el-input v-model="address" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="账号">
<el-input v-model="account" size="small"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="开户行">
<el-input v-model="openingBank" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="电话号码">
<el-input v-model="phone" size="small"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="传真">
<el-input v-model="fax" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-button
type="success"
size="small"
icon="el-icon-search"
@click="searchSupplier">查询</el-button>
<el-button
type="primary"
size="small"
icon="el-icon-check"
@click="submitSelectSupplier">确定</el-button>
<el-button
type="danger"
size="small"
icon="el-icon-delete"
@click="emptySupplierDetail">清空</el-button>
</el-col>
</el-row>
<el-table :data="tableData01" size="mini" style="width: 97%;max-height: 300px;margin-top:15px" height="200px" border @row-click="showSupplierDetail">
<el-table-column align="center" label="供应商名称" min-width="250">
<template slot-scope="scope">
{{ scope.row.供应商名称 }}
</template>
</el-table-column>
<el-table-column align="center" label="法人" min-width="100">
<template slot-scope="scope">
{{ scope.row.企业性质 }}
</template>
</el-table-column>
<el-table-column align="center" label="受托人" min-width="100">
<template slot-scope="scope">
{{ scope.row.注册资本 }}
</template>
</el-table-column>
</el-table>
</el-form>
</el-dialog>
<el-dialog :visible.sync="dialogVisible2" :title="title2" center style="min-height: 300px" width="400px">
<el-form ref="form2" :model="form2" :rules="rules2" label-position="left" label-width="90px">
<el-form-item label="询价单号" prop="inquirySheetNum">
<el-input v-model="form2.inquirySheetNum" size="small"/>
</el-form-item>
<el-form-item label="供应商" prop="supplierName">
<el-input v-model="form2.supplierName" size="small" readonly @focus="dialogVisible1=true;enterpriseNature = '';createDate = '';registeredCapital = '';taxNum = '';EMail = '';address = '';account = '';openingBank = '';phone = '';fax = '';goodTime = ''"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogVisible2=false">取消</el-button>
<el-button
v-show="title2==='创建询价单'"
type="primary"
size="small"
@click="submitCreateInquirySheet">确定</el-button>
<el-button
v-show="title2==='编辑询价单'"
type="primary"
size="small"
@click="submitEditInquirySheet">确定</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogVisible3" title="物料变更选择" center style="min-height: 300px;" width="780px">
<el-row style="margin-bottom: 10px">
<span>物料名称:</span>
<el-input v-model="materialName0" placeholder="物料名称" size="small" clearable/>
<span>物料规格:</span>
<el-input v-model="materialSpec0" placeholder="物料规格" size="small" clearable/>
</el-row>
<el-row style="margin-bottom: 10px">
<span>物料型号:</span>
<el-input v-model="materialModel0" placeholder="物料型号" size="small" clearable/>
<el-button type="success" size="small" icon="el-icon-search" style="margin-left:10px" @click="pageCurrent02=1;pageSize02=10;total02=0;searchMaterial()">查询</el-button>
</el-row>
<el-table :data="tableData02" size="mini" style="width: 97%;max-height: 300px;margin-top:15px" height="400px" border highlight-current-row @row-click="selectNewMaterial">
<el-table-column align="center" label="物料名称" min-width="150">
<template slot-scope="scope">
{{ scope.row.物料名称 }}
</template>
</el-table-column>
<el-table-column align="center" label="物料规格" min-width="150">
<template slot-scope="scope">
{{ scope.row.物料规格 }}
</template>
</el-table-column>
<el-table-column align="center" label="物料型号" min-width="150">
<template slot-scope="scope">
{{ scope.row.物料型号 }}
</template>
</el-table-column>
</el-table>
<div class="block" style="margin: 10px 0;">
<el-pagination
:current-page="pageCurrent02"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize02"
:total="total02"
style="display:inline-block;width:50%"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange02"
@current-change="handleCurrentChange02"/>
</div>
<span style="font-size: large;color: red">将原物料替换为: {{ materialNew }}</span>
<!--<el-input v-model="materialNew" size="small" readonly style="margin: 10px 10px 0 10px"></el-input>-->
<div slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogVisible3=false">取消</el-button>
<el-button type="primary" size="small" @click="submitMaterialChange">确定</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogVisible4" title="使用滞货" center style="min-height: 300px;" width="400px">
<span>使用滞货数量:</span>
<el-input-number :min="0" :max="maxUseNumber" v-model="useNumber" controls-position="right"/>
<div style="margin: 10px 0 0 10px;color: red">注意:确定后将不可取消使用滞货</div>
<div slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogVisible4=false">取消</el-button>
<el-button :disabled="Number(useNumber)===0" type="primary" size="small" @click="submitUseInventory">确定</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogVisible5" title="询价单基础信息维护" center style="min-height: 300px;" width="620px">
<el-form ref="form3" :model="form3" label-position="right" label-width="70px" class="baseInfo">
<el-row>
<el-col :span="12">
<el-form-item label="联系人">
<el-input v-model="form3.contact" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="手机">
<el-input v-model="form3.phone" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="传真">
<el-input v-model="form3.fax" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱">
<el-input v-model="form3.email" size="small"/>
</el-form-item>
</el-col>
</el-row>
<hr>
<el-row>
<el-col :span="12">
<el-form-item label="公司地址">
<el-input v-model="form3.companyAddress" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮编">
<el-input v-model="form3.postCode" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司电话">
<el-input v-model="form3.companyPhone" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="税号">
<el-input v-model="form3.taxNumber" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="送货地址">
<el-input v-model="form3.shippingAddress" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="帐号">
<el-input v-model="form3.account" size="small"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开户行">
<el-input v-model="form3.bank" size="small"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogVisible5=false">取消</el-button>
<el-button type="primary" size="small" @click="submitBaseInfo">确定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { searchMaterial, searchPart, searchSupplier, searchCreateInquirySheet, searchCreateInquirySheet2, searchSheetDetail, editInquirySheet,
createInquirySheet, deleteInquirySheet, addInquirySheet1, addInquirySheet2, outInquirySheet, searchAllMaterial, materialChange, saveOrder,
submitUseInventory, initProject, searchMachine, searchGroup, searchBaseInfo, editBaseInfo, getExport1, getExport2, searchMerge } from '@/api/PurchasingCenter/CreateInquirySheet'
import { mapGetters } from 'vuex'
import { exportExcelMethod } from './exportExcel'
import $ from 'jquery'
import request from '@/utils/request'
export default {
name: '', // 创建询价单
data() {
return {
switchValue: false, // 物料变更列显示开关
source: [
{
text: 'BZ',
value: 1
},
{
text: 'WG',
value: 2
}
],
tabName: '外购件',
baseInfoLoading: false,
dialogVisible5: false,
form3: { // 询价单基础信息表单
contact: '',
phone: '',
fax: '',
email: '',
companyAddress: '',
postCode: '',
companyPhone: '',
taxNumber: '',
shippingAddress: '',
account: '',
bank: ''
},
projectValue: '',
project: [],
machineValue: '',
machine: [],
groupValue: '',
group: [],
partNum: '',
partName: '',
partSpec: '',
check3: 0, // 供应商
check4: 0, // 询价单号
materialStatusValue: [0], // 物料状态
materialStatus: [
{
value: 0,
label: '全部'
},
{
value: 1,
label: '未分配'
},
{
value: 2,
label: '已分配',
children: [{
value: 3,
label: '未询价'
}, {
value: 4,
label: '已询价',
children: [{
value: 5,
label: '未采购'
}, {
value: 7,
label: '审批中'
}, {
value: 6,
label: '已采购'
}]
}]
}
], // 物料状态
materialName: '',
materialSpec: '',
materialModel: '',
tableData11: [], // 外购件列表
total11: 0,
pageCurrent11: 1,
pageSize11: 100,
tableData12: [], // 基本件列表
total12: 0,
pageCurrent12: 1,
pageSize12: 100,
remarkFilters: [],
supplierFilters: [],
tableData2: [], // 询价单列表
total2: 0,
pageCurrent2: 1,
pageSize2: 10,
tableData3: [], // 询价单明细
dialogVisible1: false,
inquirySheetNum: '', // 询价单号
inquirySheetFlowNum: '', // 询价单流水号
form1: {},
supplierCheck1: 0,
supplierCheck2: 0,
supplierCheck3: 0,
supplierCheck4: 0,
supplierCheck5: 0,
supplierCheck6: 0,
supplierCheck7: 0,
supplierCheck8: 0,
supplierCheck9: 0,
supplierCheck10: 0,
supplierCheck11: 0,
supplierCheck12: 0,
supplierValue: '', // 供应商流水号
supplierName: '', // 供应商名称
goodTime: '', // 货期
enterpriseNature: '', // 企业性质
createDate: '', // 创立日期
registeredCapital: '', // 注册资本
taxNum: '', // 税号
EMail: '', // 电子邮箱
address: '', // 地址
account: '', // 账号
openingBank: '', // 开户行
phone: '', // 电话号码
fax: '', // 传真
tableData01: [], // 供应商
dialogVisible2: false,
form2: {
inquirySheetNumValue: '', // 询价单流水号
inquirySheetNum: '',
supplierName: '',
supplierValue: ''
},
rules2: { // 表单验证规则
inquirySheetNum: [{ required: true, message: '请填写询价单号' }],
supplierName: [{ required: true, message: '请选择供应商' }]
},
groupPartNum: [], // 组件零件流水号
groupPartBasicNum: [], // 组件零件基本件流水号
allNum: [], // 总数量
dialogVisible3: false,
materialName0: '',
materialSpec0: '',
materialModel0: '',
tableData02: [],
total02: 0,
pageCurrent02: 1,
pageSize02: 10,
materialNew: '', // 替换为新物料全称
materialOldValue: '',
materialNewValue: '',
groupPartNumValue: '', // 组件零件流水号
standardAndPurchaseValue: '', // 标准件和外购件流水号
title2: '',
orderExport: '',
useNumber: '',
maxUseNumber: '',
dialogVisible4: false,
backlogGroupPartNum: '',
backlogMaterialNum: '',
cancelNum: 0,
machines1: [],
machines2: []
}
},
computed: {
...mapGetters([
'name',
'id' // 人员编号
])
},
created() {
this.fetchData()
this.searchTable11() // 查表1
this.searchTable2() // 查表2
this.searchUnInquiryPartNumber()
this.searchUnBuyPartNumber()
},
methods: {
clickCard1(project, machine) {
this.projectValue = project
this.machine = []
this.machineValue = ''
this.group = []
this.groupValue = ''
searchMachine(this.projectValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.machine.push({
value: response.data[i].机床流水号,
label: response.data[i].机床图号,
name: response.data[i].机床名称
})
}
this.machineValue = machine
this.materialStatusValue = [2, 3]
this.searchTable11()
this.searchTable12()
})
},
clickCard2(project, machine) {
this.projectValue = project
this.machine = []
this.machineValue = ''
this.group = []
this.groupValue = ''
searchMachine(this.projectValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.machine.push({
value: response.data[i].机床流水号,
label: response.data[i].机床图号,
name: response.data[i].机床名称
})
}
this.machineValue = machine
this.materialStatusValue = [2, 4, 5]
this.searchTable11()
this.searchTable12()
})
},
async searchUnInquiryPartNumber() {
this.machines1 = []
await request({
url: '',
method: 'post',
data: {
type: '3',
name: ` select 项目流水号,机床流水号,机床图号,sum(未询价零件数) as 未询价零件数,人员编号 from (
SELECT 项目流水号,机床流水号,机床图号,count(*) as 未询价零件数,人员编号
FROM MRP_计划订单_组件零件清单_标准件和外购件_视图
left join (
select 采购管理_采购合同_采购部.*,组件零件流水号,数量,已到货数量 from 采购管理_采购合同明细_采购部
inner join 采购管理_采购合同_采购部 on 采购管理_采购合同明细_采购部.采购合同流水号 = 采购管理_采购合同_采购部.采购合同流水号
where 采购管理_采购合同_采购部.是否未通过 = 0
) as 通过的合同 on 通过的合同.组件零件流水号 = MRP_计划订单_组件零件清单_标准件和外购件_视图.组件零件流水号
left join 采购管理_供应商 on 通过的合同.供应商流水号 = 采购管理_供应商.供应商流水号
where 询价状态编号 = 1 and 采购状态编号 = 1 and 零件类型 = 2
and 人员编号 = ${this.id}
group by 项目流水号,机床流水号,机床图号,人员编号
union all
SELECT 项目流水号,机床流水号,机床图号,count(*) as 未询价零件数,人员编号
FROM MRP_计划订单_组件零件清单_基本件_视图
left join (
select 采购管理_采购合同_采购部.*,组件零件基本件流水号,数量,已到货数量 from 采购管理_采购合同明细_采购部
inner join 采购管理_采购合同_采购部 on 采购管理_采购合同明细_采购部.采购合同流水号 = 采购管理_采购合同_采购部.采购合同流水号
where 采购管理_采购合同_采购部.是否未通过 = 0
) as 通过的合同 on 通过的合同.组件零件基本件流水号 = MRP_计划订单_组件零件清单_基本件_视图.组件零件基本件流水号
left join 采购管理_供应商 on 通过的合同.供应商流水号 = 采购管理_供应商.供应商流水号
where 询价状态编号 = 1 and 采购状态编号 = 1
and 人员编号 = ${this.id}
group by 项目流水号,机床流水号,机床图号,人员编号
) as table1
group by 项目流水号,机床流水号,机床图号,人员编号`
}
}).then(res => {
this.machines1 = res.data
})
},
async searchUnBuyPartNumber() {
this.machines2 = []
await request({
url: '',
method: 'post',
data: {
type: '3',
name: ` select 项目流水号,机床流水号,机床图号,sum(未采购零件数) as 未采购零件数,人员编号 from (
SELECT 项目流水号,机床流水号,机床图号,count(*) as 未采购零件数,人员编号
FROM MRP_计划订单_组件零件清单_标准件和外购件_视图
left join (
select 采购管理_采购合同_采购部.*,组件零件流水号,数量,已到货数量 from 采购管理_采购合同明细_采购部
inner join 采购管理_采购合同_采购部 on 采购管理_采购合同明细_采购部.采购合同流水号 = 采购管理_采购合同_采购部.采购合同流水号
where 采购管理_采购合同_采购部.是否未通过 = 0
) as 通过的合同 on 通过的合同.组件零件流水号 = MRP_计划订单_组件零件清单_标准件和外购件_视图.组件零件流水号
left join 采购管理_供应商 on 通过的合同.供应商流水号 = 采购管理_供应商.供应商流水号
where 询价状态编号 = 3 and 采购状态编号 = 1 and 零件类型 = 2
and 人员编号 = ${this.id}
group by 项目流水号,机床流水号,机床图号,人员编号
union all
SELECT 项目流水号,机床流水号,机床图号,count(*) as 未采购零件数,人员编号
FROM MRP_计划订单_组件零件清单_基本件_视图
left join (
select 采购管理_采购合同_采购部.*,组件零件基本件流水号,数量,已到货数量 from 采购管理_采购合同明细_采购部
inner join 采购管理_采购合同_采购部 on 采购管理_采购合同明细_采购部.采购合同流水号 = 采购管理_采购合同_采购部.采购合同流水号
where 采购管理_采购合同_采购部.是否未通过 = 0
) as 通过的合同 on 通过的合同.组件零件基本件流水号 = MRP_计划订单_组件零件清单_基本件_视图.组件零件基本件流水号
left join 采购管理_供应商 on 通过的合同.供应商流水号 = 采购管理_供应商.供应商流水号
where 询价状态编号 = 3 and 采购状态编号 = 1
and 人员编号 = ${this.id}
group by 项目流水号,机床流水号,机床图号,人员编号
) as table1
group by 项目流水号,机床流水号,机床图号,人员编号`
}
}).then(res => {
this.machines2 = res.data
})
},
unInquiry(row) {
return parseInt(row.询价状态编号) === 1
},
inquiry(row) {
return parseInt(row.询价状态编号) === 3 && parseInt(row.采购状态编号) === 1
},
approval(row) {
return parseInt(row.询价状态编号) !== 1 && parseInt(row.采购状态编号) === 2
},
purchased(row) {
return parseInt(row.询价状态编号) !== 1 && parseInt(row.采购状态编号) === 3
},
filterSource(value, row) {
return Number(row['零件类型']) === Number(value)
},
tabClick(tab) {
tab.name === '基本件' ? this.searchTable12() : this.searchTable11()
},
formatJson(filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => {
return v[j]
}))
},
// 导出未询价外购件和标准件/基本件清单
exportUninquirySheet() {
getExport1(this.id).then(res1 => { // 标准件和外购件
getExport2(this.id).then(res2 => { // 基本件
res1.data.map(v => {
v.任务分配时间 = v.任务分配时间.split(' ')[0]
v.供货商 = v.供货商 ? v.供货商 : ''
v.备注 = v.备注 ? v.备注 : ''
})
res2.data.map(v => {
v.任务分配时间 = v.任务分配时间.split(' ')[0]
v.供货商 = v.供货商 ? v.供货商 : ''
v.备注 = v.备注 ? v.备注 : ''
})
import('./Export2Excel').then(excel => {
const dataGroup = []
const filterVal1 = ['任务分配时间', '项目名称', '机床图号', '组号', '物料名称', '物料型号', '物料规格', '待询价数量', '备注', '供货商'] // tableData1里的属性名
const filterVal2 = ['任务分配时间', '项目名称', '机床图号', '组号', '零件名称', '零件图号', '规格', '材料', '待询价数量', '备注', '供货商'] // tableData2里的属性名
const data1 = res1.data.map(v => filterVal1.map(j => v[j]))
dataGroup.push(data1)
const data2 = res2.data.map(v => filterVal2.map(j => v[j]))
dataGroup.push(data2)
const headerGroup = [['任务分配时间', '项目名称', '机床图号', '组号', '名称', '图号或型号', '规格', '待询价数量', '备注', '供货商'], ['任务分配时间', '项目名称', '机床图号', '组号', '名称', '图号或型号', '规格', '材料', '待询价数量', '备注', '供货商']]
const sheetGroup = ['外购件(未询价)', '基本件(未询价)']
excel.export_json_to_excel({
headerGroup: headerGroup,
dataGroup: dataGroup,
sheetGroup: sheetGroup,
filename: '未询价采购件明细',
autoWidth: true,
bookType: 'xlsx'
})
})
})
})
},
// 询价单基础信息维护
inquirySheetBaseInfoMaintain() {
this.baseInfoLoading = true
searchBaseInfo(this.id).then(res => {
this.baseInfoLoading = false
this.form3.contact = res.data[0] ? res.data[0].联系人 : ''
this.form3.phone = res.data[0] ? res.data[0].手机 : ''
this.form3.fax = res.data[0] ? res.data[0].传真 : ''
this.form3.email = res.data[0] ? res.data[0].邮箱 : ''
this.form3.companyAddress = res.data[0] ? res.data[0].公司地址 : ''
this.form3.postCode = res.data[0] ? res.data[0].邮编 : ''
this.form3.companyPhone = res.data[0] ? res.data[0].公司电话 : ''
this.form3.taxNumber = res.data[0] ? res.data[0].税号 : ''
this.form3.shippingAddress = res.data[0] ? res.data[0].送货地址 : ''
this.form3.account = res.data[0] ? res.data[0].帐号 : ''
this.form3.bank = res.data[0] ? res.data[0].开户行 : ''
this.dialogVisible5 = true
})
},
// 提交询价单基础信息维护
submitBaseInfo() {
editBaseInfo(this.id, this.form3.phone, this.form3.fax, this.form3.email, this.form3.companyAddress, this.form3.postCode, this.form3.companyPhone, this.form3.taxNumber, this.form3.shippingAddress, this.form3.account, this.form3.bank).then(res => {
if (res.data[0].result === '1') {
this.dialogVisible5 = false
this.$message.success('操作成功')
} else { this.$message.error('操作失败') }
})
},
fetchData() {
searchBaseInfo(this.id).then(res => {
this.form3.contact = res.data[0] ? res.data[0].联系人 : ''
this.form3.phone = res.data[0] ? res.data[0].手机 : ''
this.form3.fax = res.data[0] ? res.data[0].传真 : ''
this.form3.email = res.data[0] ? res.data[0].邮箱 : ''
this.form3.companyAddress = res.data[0] ? res.data[0].公司地址 : ''
this.form3.postCode = res.data[0] ? res.data[0].邮编 : ''
this.form3.companyPhone = res.data[0] ? res.data[0].公司电话 : ''
this.form3.taxNumber = res.data[0] ? res.data[0].税号 : ''
this.form3.shippingAddress = res.data[0] ? res.data[0].送货地址 : ''
this.form3.account = res.data[0] ? res.data[0].帐号 : ''
this.form3.bank = res.data[0] ? res.data[0].开户行 : ''
})
initProject().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.project.push({
label: response.data[i].项目名称,
value: response.data[i].项目流水号
})
}
})
},
projectChange() {
this.machine = []
this.machineValue = ''
this.group = []
this.groupValue = ''
searchMachine(this.projectValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.machine.push({
value: response.data[i].机床流水号,
label: response.data[i].机床图号
})
}
})
},
machineChange() {
this.group = []
this.groupValue = ''
searchGroup(this.machineValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.group.push({
value: response.data[i].组件流水号,
label: response.data[i].组号
})
}
})
},
submitUseInventory() {
submitUseInventory(this.backlogMaterialNum, this.useNumber, this.backlogGroupPartNum, this.id).then(response => {
if (response.data[0].result === '1') {
this.searchTable11()
this.dialogVisible4 = false
this.$message.success('操作成功')
} else { this.$message.error('操作失败') }
})
},
useInventory(row) { // 使用滞货
this.useNumber = 0
row.滞货数量 < row.待询价数量 ? this.maxUseNumber = Number(row.滞货数量) : this.maxUseNumber = Number(row.待询价数量)
this.backlogMaterialNum = row.物料流水号
this.backlogGroupPartNum = row.组件零件流水号
this.dialogVisible4 = true
},
// cancelUseInventory(row) { // 取消使用滞货
// console.log(row)
// this.backlogMaterialNum = row.物料流水号
// this.backlogGroupPartNum = row.组件零件流水号
// this.cancelNum = row.使用滞货数量
// this.$confirm('确定取消使用滞货?', '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(() => {
// console.log(this.backlogMaterialNum, this.cancelNum, this.backlogGroupPartNum)
// cancelUseInventory(this.backlogMaterialNum, this.cancelNum, this.backlogGroupPartNum).then(response => {
// if (response.data[0].result === '1') {
// this.searchTable11()
// this.$message.success('操作成功')
// } else { this.$message.error('操作失败') }
// })
// }).catch(() => {
// this.$message.info('已取消操作')
// })
// },
saveOrder() { // 保存询价单
const orderNumGroup = []
const numGroup = []
const remarkGroup = []
for (let i = 0; i < this.tableData3.length; i++) {
orderNumGroup.push(this.tableData3[i].询价单明细流水号)
numGroup.push(this.tableData3[i].数量)
remarkGroup.push(this.tableData3[i].备注)
}
saveOrder(orderNumGroup, numGroup, remarkGroup).then(response => {
if (response.data[0].result === '1') {
this.$message.success('保存成功')
} else { this.$message.error('保存失败') }
})
},
selectable(row, index) { // 控制某行是否可选
return (parseInt(row.询价状态编号) === 1 && parseInt(row.采购状态编号) < 3 && parseInt(row.是否确认) === 1) // 未询价&&未采购&&确认物料修改
},
filterHandler0(value, row) { // 筛选备注
return row['备注'].trim() === value
},
filterHandler(value, row) { // 筛选供货商
return row['供货商'].trim() === value
},
searchTable11() { // 查询外购件列表
let check1, check2, check3, check4, check5, check6
this.materialName ? check1 = 1 : check1 = 0
this.materialSpec ? check2 = 1 : check2 = 0
this.materialModel ? check3 = 1 : check3 = 0
this.projectValue ? check4 = 1 : check4 = 0
this.machineValue ? check5 = 1 : check5 = 0
this.groupValue ? check6 = 1 : check6 = 0
searchMaterial(this.pageCurrent11, this.pageSize11, this.materialStatusValue[this.materialStatusValue.length - 1], check1, this.materialName, check2, this.materialSpec, check3, this.materialModel, this.id, check4, this.projectValue, check5, this.machineValue, check6, this.groupValue, 2).then(response => {
this.tableData11 = response.data.rows
this.total11 = response.data.total
const remark = []
const supplier = []
this.remarkFilters = []
this.supplierFilters = []
response.data.rows.map(v => {
if (v.备注 === null) { v.备注 = '' }
if (v.供货商 === null) { v.供货商 = '' }
if (!remark.includes(v.备注)) {
remark.push(v.备注)
this.remarkFilters.push({ text: v.备注, value: v.备注 })
}
if (!supplier.includes(v.供货商)) {
supplier.push(v.供货商)
this.supplierFilters.push({ text: v.供货商, value: v.供货商 })
}
})
})
},
handleSizeChange11(val) { // 标准件和外购件列表分页
this.pageSize11 = val
this.pageCurrent11 = 1
this.searchTable11()
},
handleCurrentChange11(val) { // 标准件和外购件列表分页
this.pageCurrent11 = val
this.searchTable11()
},
searchTable12() { // 查询基本件列表
let check1, check2, check3, check4, check5, check6
this.partNum ? check1 = 1 : check1 = 0
this.partName ? check2 = 1 : check2 = 0
this.partSpec ? check3 = 1 : check3 = 0
this.projectValue ? check4 = 1 : check4 = 0
this.machineValue ? check5 = 1 : check5 = 0
this.groupValue ? check6 = 1 : check6 = 0
searchPart(this.pageCurrent12, this.pageSize12, this.materialStatusValue[this.materialStatusValue.length - 1], check1, this.partNum, check2, this.partName, check3, this.partSpec, this.id, check4, this.projectValue, check5, this.machineValue, check6, this.groupValue).then(response => {
this.tableData12 = response.data.rows
this.total12 = response.data.total
const remark = []
const supplier = []
this.remarkFilters = []
this.supplierFilters = []
response.data.rows.map(v => {
if (!remark.includes(v.备注)) {
remark.push(v.备注)
supplier.push(v.供货商)
this.remarkFilters.push({ text: v.备注, value: v.备注 })
this.supplierFilters.push({ text: v.供货商, value: v.供货商 })
}
})
})
},
handleSizeChange12(val) { // 基本件列表分页
this.pageSize12 = val
this.pageCurrent12 = 1
this.searchTable12()
},
handleCurrentChange12(val) { // 基本件列表分页
this.pageCurrent12 = val
this.searchTable12()
},
searchTable2() { // 查询询价单列表
this.supplierName ? this.check3 = 1 : this.check3 = 0
this.inquirySheetNum ? this.check4 = 1 : this.check4 = 0
searchCreateInquirySheet(this.pageCurrent2, this.pageSize2, this.check3, this.supplierName, this.check4, this.inquirySheetNum, this.id).then(response => {
this.tableData2 = response.data.rows
this.total2 = response.data.total
})
},
handleSizeChange2(val) { // 询价单列表分页
this.pageSize2 = val
this.searchTable2()
},
handleCurrentChange2(val) { // 询价单列表分页
this.pageCurrent2 = val
this.searchTable2()
},
createInquirySheet() { // 创建空单据--询价单
if (this.$refs['form2'] !== undefined) {
this.$refs['form2'].resetFields()
}
this.title2 = '创建询价单'
this.form2.inquirySheetNum = ''
this.form2.supplierValue = ''
this.form2.supplierName = ''
this.dialogVisible2 = true
},
submitCreateInquirySheet() { // 提交创建询价单
this.$refs['form2'].validate((valid) => {
if (valid) {
const numGroup1 = [] // 空数组,放现有的询价单号
searchCreateInquirySheet2().then(response => { // 先查询判断是否存在
for (let i = 0; i < response.data.length; i++) {
numGroup1.push(response.data[i].询价单编号)
}
}).then(() => {
if (numGroup1.indexOf(this.form2.inquirySheetNum) !== -1) {
this.$message.error('该询价单号已存在')
} else {
createInquirySheet(this.form2.inquirySheetNum, this.form2.supplierValue, '', this.id).then(response => {
if (response.data[0].result === '1') {
this.$message.success('创建成功')
this.inquirySheetNum = ''
this.supplierName = ''
this.supplierValue = ''
this.dialogVisible2 = false
this.searchTable2()
} else { this.$message.error('操作失败') }
})
}
})
} else {
console.log('表单验证未通过')
return false
}
})
},
deleteInquirySheet(row) { // 删除询价单
this.$confirm('确定删除该询价单?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteInquirySheet(row.询价单流水号).then(response => {
if (response.data[0].result === '1') {
this.$message.success('删除成功')
this.inquirySheetNum = ''
this.supplierName = ''
this.supplierValue = ''
this.searchTable2()
this.tableData3 = []
this.searchTable11()
this.searchTable12()
} else { this.$message.error('删除失败') }
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
editInquirySheet(row) { // 编辑询价单
if (this.$refs['form2'] !== undefined) {
this.$refs['form2'].resetFields()
}
this.title2 = '编辑询价单'
this.form2.inquirySheetNumValue = row.询价单流水号
this.form2.inquirySheetNum = row.询价单编号
this.form2.supplierValue = row.供应商流水号
this.form2.supplierName = row.供应商名称
this.dialogVisible2 = true
},
submitEditInquirySheet() { // 提交编辑询价单
this.$refs['form2'].validate((valid) => {
if (valid) {
const numGroup1 = [] // 空数组,放现有的询价单号
const numGroup2 = [] // 空数组,放现有的询价单流水号
searchCreateInquirySheet2().then(response => { // 先查询判断是否存在
for (let i = 0; i < response.data.length; i++) {
numGroup1.push(response.data[i].询价单编号)
numGroup2.push(response.data[i].询价单流水号)
}
}).then(() => {
if (numGroup1.indexOf(this.form2.inquirySheetNum) !== -1 && numGroup1.indexOf(this.form2.inquirySheetNum) !== numGroup2.indexOf(parseInt(this.form2.inquirySheetNumValue))) {
this.$message.error('该询价单号已存在')
} else {
editInquirySheet(this.form2.inquirySheetNumValue, this.form2.inquirySheetNum, this.form2.supplierValue).then(response => {
if (response.data[0].result === '1') {
this.$message.success('修改成功')
this.inquirySheetNum = ''
this.supplierName = ''
this.supplierValue = ''
this.dialogVisible2 = false
this.searchTable2()
} else { this.$message.error('修改失败') }
})
}
})
} else {
console.log('表单验证未通过')
return false
}
})
},
printInquirySheet() { // 打印询价单
this.$confirm('确定打印该询价单?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
searchMerge(this.inquirySheetFlowNum).then(res => {
if (res.data.length === 0) {
this.$message.error('请选择正确的询价单导出')
} else {
const children = document.getElementsByClassName('tableData')
const parent = document.getElementsByClassName('inquirySheet')[0]
if (children.length !== 0) {
for (let i = children.length - 1; i >= 0; i--) {
parent.removeChild(children[i])
}
}
const tr = []
let length = 0
res.data.length < 15 ? length = 15 : length = res.data.length
for (let i = 0; i < length; i++) {
tr[i] = document.createElement('tr')
tr[i].setAttribute('class', 'tableData')
tr[i].innerHTML = `<td width="8.3%" height="30px"/><td height="30px" width="16.6%" colspan="2"/><td height="30px" width="16.6%" colspan="2"/><td height="30px" width="16.6%" colspan="2"/><td height="30px" width="8.3%"/><td height="30px" width="8.3%"/><td height="30px" width="16.6%" colspan="2"/><td height="30px" colspan="3"/>`
$('#tablehead').after(tr[i])
}
for (let j = 0; j < res.data.length; j++) {
document.getElementsByClassName('tableData')[j].children[0].innerHTML = j + 1
document.getElementsByClassName('tableData')[j].children[1].innerHTML = res.data[j].物料型号 || res.data[j].零件图号
document.getElementsByClassName('tableData')[j].children[2].innerHTML = res.data[j].物料名称 || res.data[j].零件名称
document.getElementsByClassName('tableData')[j].children[3].innerHTML = res.data[j].物料规格 || res.data[j].规格
document.getElementsByClassName('tableData')[j].children[4].innerHTML = res.data[j].数量
document.getElementsByClassName('tableData')[j].children[5].innerHTML = res.data[j].计量单位
document.getElementsByClassName('tableData')[j].children[7].innerHTML = res.data[j].备注
}
document.getElementById('inquirySheetNum').innerHTML = this.orderExport
document.getElementById('supplier').innerHTML = ''
}
}).then(() => {
const htmlNode = $('#inquirySheet').html()
const body = $('body').attr('style', 'padding: 20px;margin: 0 auto;display: block;width: 800px;background: #fff;')
body.children().hide()
const printNode = $(htmlNode)
body.append(printNode)
window.print()
body.removeAttr('style')
body.children().not('script').show()
body.children().not('#app').hide()
printNode.remove()
})
}).catch(res => {
console.log(res)
this.$message({
type: 'info',
message: '已取消操作'
})
})
},
exportInquirySheet() { // 导出询价单
this.$confirm('确认导出询价单?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// 询价单导出结果
searchMerge(this.inquirySheetFlowNum).then(res => {
if (res.data.length === 0) {
this.$message.error('请选择正确的询价单导出')
} else {
const children = document.getElementsByClassName('tableData')
const parent = document.getElementsByClassName('inquirySheet')[0]
if (children.length !== 0) {
for (let i = children.length - 1; i >= 0; i--) {
parent.removeChild(children[i])
}
}
const tr = []
let length = 0
res.data.length < 15 ? length = 15 : length = res.data.length
for (let i = 0; i < length; i++) {
tr[i] = document.createElement('tr')
tr[i].setAttribute('class', 'tableData')
tr[i].innerHTML = `<td width="8.3%" height="30px"/><td height="30px" width="16.6%" colspan="2"/><td height="30px" width="16.6%" colspan="2"/><td height="30px" width="16.6%" colspan="2"/><td height="30px" width="8.3%"/><td height="30px" width="8.3%"/><td height="30px" width="16.6%" colspan="2"/><td height="30px" colspan="3"/>`
$('#tablehead').after(tr[i])
}
for (let j = 0; j < res.data.length; j++) {
document.getElementsByClassName('tableData')[j].children[0].innerHTML = j + 1
document.getElementsByClassName('tableData')[j].children[1].innerHTML = res.data[j].物料型号 || res.data[j].零件图号
document.getElementsByClassName('tableData')[j].children[2].innerHTML = res.data[j].物料名称 || res.data[j].零件名称
document.getElementsByClassName('tableData')[j].children[3].innerHTML = res.data[j].物料规格 || res.data[j].规格
document.getElementsByClassName('tableData')[j].children[4].innerHTML = res.data[j].数量
document.getElementsByClassName('tableData')[j].children[5].innerHTML = res.data[j].计量单位
document.getElementsByClassName('tableData')[j].children[7].innerHTML = res.data[j].备注
}
document.getElementById('inquirySheetNum').innerHTML = this.orderExport
document.getElementById('supplier').innerHTML = ''
exportExcelMethod('inquirySheet', '采购询价单', '采购询价单sheet')
}
})
}).catch(res => {
console.log(res)
this.$message({
type: 'info',
message: '已取消操作'
})
})
},
handleSelectionChange1(val) { // 标准件和外购件多选
this.groupPartNum = []
this.allNum = []
for (let i = 0; i < val.length; i++) {
this.groupPartNum[i] = val[i].组件零件流水号
this.allNum[i] = val[i].待询价数量
}
},
handleSelectionChange2(val) { // 基本件多选
this.groupPartBasicNum = []
this.allNum = []
for (let i = 0; i < val.length; i++) {
this.groupPartBasicNum[i] = val[i].组件零件基本件流水号
this.allNum[i] = val[i].零件数量
}
},
addInquirySheet() { // 追加物料
const numGroup1 = [] // 空数组,放该询价单中已有的组件零件流水号
const numGroup2 = [] // 空数组,放该询价单中已有的组件零件基本件流水号
if (this.inquirySheetFlowNum === '' || this.inquirySheetFlowNum === null) {
this.$message.error('请选择一个询价单')
} else if (this.groupPartNum.length === 0 && this.groupPartBasicNum.length === 0) {
this.$message.error('请选择待询价物料或零件')
} else {
searchSheetDetail(this.inquirySheetFlowNum).then(response => {
for (let i = 0; i < response.data.length; i++) {
numGroup1.push(response.data[i].组件零件流水号)
numGroup2.push(response.data[i].组件零件基本件流水号)
}
}).then(() => {
let x = true // 为了只执行一次的中间变量
if (this.groupPartBasicNum.length === 0) { // 标准件和外购件
for (let i = 0; i < this.groupPartNum.length; i++) {
if (numGroup1.indexOf(parseInt(this.groupPartNum[i])) !== -1) {
if (x) {
this.$notify({
title: '注意',
message: '无法向该询价单中追加重复物料,已自动跳过',
type: 'warning'
})
x = false
}
} else {
addInquirySheet1(this.inquirySheetFlowNum, this.groupPartNum[i], this.allNum[i]).then(response => {
if (response.data[0].result === '1') {
this.$message.success('操作成功')
this.searchTable11()
searchSheetDetail(this.inquirySheetFlowNum).then(response => {
this.tableData3 = response.data
})
} else { this.$message.error('操作失败') }
})
}
}
} else { // 基本件
for (let i = 0; i < this.groupPartBasicNum.length; i++) {
if (numGroup2.indexOf(parseInt(this.groupPartBasicNum[i])) !== -1) {
if (x) {
this.$notify({
title: '注意',
message: '无法向该询价单中追加重复零件,已自动跳过',
type: 'warning'
})
x = false
}
} else {
addInquirySheet2(this.inquirySheetFlowNum, this.groupPartBasicNum[i], this.allNum[i]).then(response => {
if (response.data[0].result === '1') {
this.$message.success('操作成功')
this.searchTable12()
searchSheetDetail(this.inquirySheetFlowNum).then(response => {
this.tableData3 = response.data
})
} else {
this.$message.error('操作失败')
}
})
}
}
}
})
}
},
outInquirySheet(row) {
outInquirySheet(row.询价单明细流水号, row.组件零件流水号, row.组件零件基本件流水号).then(response => {
if (response.data[0].result === '1') {
this.searchTable11()
this.searchTable12()
searchSheetDetail(this.inquirySheetFlowNum).then(response => {
this.tableData3 = response.data
})
this.$message.success('操作成功')
} else { this.$message.error('操作失败') }
})
},
searchSupplier() { // 查询创立日期和注册资本大于符合条件的数据
this.supplierName ? this.supplierCheck1 = 1 : (this.supplierCheck1 = 0, this.supplierName = '')
this.enterpriseNature ? this.supplierCheck2 = 1 : (this.supplierCheck2 = 0, this.enterpriseNature = '')
this.createDate ? this.supplierCheck3 = 1 : (this.supplierCheck3 = 0, this.createDate = '')
this.registeredCapital ? this.supplierCheck4 = 1 : (this.supplierCheck4 = 0, this.registeredCapital = '')
this.taxNum ? this.supplierCheck5 = 1 : (this.supplierCheck5 = 0, this.taxNum = '')
this.EMail ? this.supplierCheck6 = 1 : (this.supplierCheck6 = 0, this.EMail = '')
this.address ? this.supplierCheck7 = 1 : (this.supplierCheck7 = 0, this.address = '')
this.account ? this.supplierCheck8 = 1 : (this.supplierCheck8 = 0, this.account = '')
this.openingBank ? this.supplierCheck9 = 1 : (this.supplierCheck9 = 0, this.openingBank = '')
this.phone ? this.supplierCheck10 = 1 : (this.supplierCheck10 = 0, this.phone = '')
this.fax ? this.supplierCheck11 = 1 : (this.supplierCheck11 = 0, this.fax = '')
this.goodTime ? this.supplierCheck12 = 1 : (this.supplierCheck12 = 0, this.goodTime = '')
searchSupplier(this.supplierCheck1, this.supplierName, this.supplierCheck2, this.enterpriseNature, this.supplierCheck3, this.createDate, this.supplierCheck4, this.registeredCapital, this.supplierCheck5, this.taxNum, this.supplierCheck6, this.EMail, this.supplierCheck7, this.address, this.supplierCheck8, this.account, this.supplierCheck9, this.openingBank, this.supplierCheck10, this.phone, this.supplierCheck11, this.fax, this.supplierCheck12, this.goodTime).then(response => {
this.tableData01 = response.data
})
},
showSupplierDetail(row) {
this.form2.supplierValue = row.供应商流水号
this.form2.supplierName = row.供应商名称
this.supplierValue = row.供应商流水号
this.supplierName = row.供应商名称
this.enterpriseNature = row.企业性质
this.createDate = row.创立日期
this.registeredCapital = row.注册资本
this.taxNum = row.税号
this.EMail = row.电子信箱
this.address = row.地址
this.account = row.帐号
this.openingBank = row.开户行
this.phone = row.电话号码
this.fax = row.传真
this.goodTime = row.货期
},
emptySupplierDetail() {
this.supplierValue = ''
this.supplierName = ''
this.enterpriseNature = ''
this.createDate = ''
this.registeredCapital = ''
this.taxNum = ''
this.EMail = ''
this.address = ''
this.account = ''
this.openingBank = ''
this.phone = ''
this.fax = ''
this.goodTime = ''
},
submitSelectSupplier() { // 确定选择供应商
this.dialogVisible1 = false
},
searchTable3(row) { // 查询该询价单中的物料和零件
this.tableData3 = []
this.inquirySheetFlowNum = row.询价单流水号
this.orderExport = row.询价单编号
searchSheetDetail(row.询价单流水号).then(response => {
this.tableData3 = response.data
})
},
materialChange(row) { // 物料变更 标准件和外购件
this.dialogVisible3 = true
this.groupPartNumValue = row.组件零件流水号
this.standardAndPurchaseValue = row.标准件和外购件流水号
this.materialOldValue = row.物料流水号
},
partChange(row) { // 零件变更 基本件
this.$message('没有基本件的标准库')
console.log(row)
},
searchMaterial() {
if (this.materialName0 || this.materialSpec0 || this.materialModel0) {
let check1, check2, check3
this.materialName0 ? check1 = 1 : check1 = 0
this.materialSpec0 ? check2 = 1 : check2 = 0
this.materialModel0 ? check3 = 1 : check3 = 0
searchAllMaterial(check1, this.materialName0, check2, this.materialSpec0, check3, this.materialModel0, this.pageCurrent02, this.pageSize02).then(response => {
this.tableData02 = response.data.result
this.total02 = parseInt(response.data.output[0].ItemCount)
})
} else {
this.$message.warning('请至少输入一种搜索条件')
}
},
handleSizeChange02(val) {
this.pageSize02 = val
this.searchMaterial()
},
handleCurrentChange02(val) {
this.pageCurrent02 = val
this.searchMaterial()
},
selectNewMaterial(row) {
this.materialNew = ''
this.materialNewValue = row.物料流水号
this.materialNew += row.物料名称 + ' ' + row.物料规格 + ' ' + row.物料型号
},
submitMaterialChange() {
materialChange(this.groupPartNumValue, this.standardAndPurchaseValue, this.materialOldValue, this.materialNewValue, this.id).then(response => {
if (response.data[0].result === '1') {
this.$message.success('提交变更申请成功')
this.dialogVisible3 = false
this.searchTable11()
} else { this.$message.error('操作失败') }
})
},
tableRowClassName({ row, rowIndex }) {
if (parseInt(row.是否确认) === 0) {
return 'MistyRose'
}
return ''
}
}
}
</script>
<style scoped>
.baseInfo .el-form-item {
margin: 0;
}
.inquirySheet td{
height: 40px;
text-align: center;
}
.el-card{
margin-bottom: 15px;
}
.el-select{
width:200px
}
.el-input{
width:200px
}
span{
margin: 10px 0 10px 10px;
}
.searchForm .el-form-item{
margin-bottom: 5px;
}
.el-tag{
margin: 0
}
</style>
<style>
.el-table .green {
background: lightgreen;
}
.el-table .white {
background: whitesmoke;
}
.el-table .red {
background: Tomato!important;
}
.el-table .MistyRose {
background: MistyRose!important;
}
.el-table .gray {
background: lightgray;
}
</style>
<style rel="stylesheet/scss" lang="scss" scoped>
.item {
margin-top: 10px;
margin-right: 40px;
}
.sudoku_row{
display: flex;
align-items: center;
width:100%;
flex-wrap: wrap;
}
.sudoku_item{
margin-bottom: 20px;
margin-left: 20px;
/*border: 1px solid red;*/
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
width:15%;
height: 200px;
padding-top: 10px;
padding-bottom: 10px;
}
.opacity{
opacity: 0.4;
background: #e5e5e5;
}
.sudoku_item img{
margin-bottom: 3px;
display: block;
}
.dashboard {
&-container {
margin: 30px;
}
&-text {
font-size: 30px;
line-height: 46px;
}
}
</style>