@@ -332,7 +332,7 @@ a.link{font-size:16px; line-height:2em; display: inline-block} | |||
.tabbn .ant-btn{padding:0 .5em; color:#f90} | |||
.tabbn .ant-btn:hover{opacity:.4} | |||
.boxMain{background-color:#fff; padding:30px} | |||
.boxFilter{padding-bottom:1em} | |||
.boxFilter,.boxFilter>*{margin-bottom:.5em} | |||
.boxFilter.bn>*{margin:0 1em 0 0; display: inline-block} | |||
.boxFilter.bn>.ant-btn-link{padding:0 .5em} | |||
.ant-table-placeholder{background-color:#fff} | |||
@@ -8,7 +8,7 @@ | |||
<a-select-option v-for="(op,oid) in e.option" :key="oid" :value="op.value">{{op.text}}</a-select-option> | |||
</a-select> | |||
</div> | |||
<div><a-button :loading="loadSoBn" type="primary" @click="onSearch()">搜索</a-button></div> | |||
<div><a-button :loading="loadSoBn" type="primary" @click="onSearch(1)">搜索</a-button></div> | |||
<div><a-button @click="filterReset()">重置</a-button></div> | |||
<template v-for="e in listInput"> | |||
<a-button :key="e.name" v-if="e.type=='button'" type="primary" @click="isFn(e,'fn')">{{e.title}}</a-button> | |||
@@ -268,22 +268,21 @@ export default { | |||
filterOption(input, option) {return (option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0);}, | |||
//列表 | |||
filterSearch(page){ | |||
// console.log(page) | |||
// console.log(this.listInput) | |||
if(typeof(page)=='object'){ | |||
this.pagination.current = page.current; | |||
} | |||
let count = (this.pagination.current-1)*this.pagination.pageSize; | |||
let params={ | |||
roleId:this.listInput[0].value, | |||
userName:this.listInput[1].value, | |||
emailAddress:this.listInput[2].value, | |||
phoneNumber:this.listInput[3].value, | |||
notActive:this.listInput[4].value===0?false:(this.listInput[4].value===1?true:''), | |||
isLockedOut:this.listInput[5].value===0?false:(this.listInput[5].value===1?true:''), | |||
skipCount:count, | |||
maxResultCount:this.pagination.pageSize, | |||
} | |||
for (let i in this.listInput){ | |||
let ts = this.listInput[i]; | |||
if (ts.value!==''){ | |||
if (ts.name==='notActive' || ts.name==='isLockedOut') params[ts.name] = ts.value===0?false:(ts.value===1?true:''); | |||
else params[ts.name] = ts.value; | |||
} | |||
} | |||
// console.log(params) | |||
this.fetch(params); | |||
}, | |||
@@ -126,6 +126,8 @@ export default { | |||
// console.log(this.listInput) | |||
if(typeof(page)=='object'){ | |||
this.pagination.current = page.current; | |||
}else if (typeof (page) == 'number'){ | |||
this.pagination.current = page; | |||
} | |||
let count = (this.pagination.current-1)*this.pagination.pageSize; | |||
let params={ | |||
@@ -1,106 +0,0 @@ | |||
<template> | |||
<div class="boxMain"> | |||
<inc-search :listInput="listInput" :loadSoBn="tableLoad" :onSearch="filterSearch" :orderType="orderType"></inc-search> | |||
<a-table class="tablesa" :columns="tableColumns" :data-source="tableData" :rowKey="lists => lists.id" :pagination="pagination" :loading="tableLoad" @change="filterSearch"> | |||
<router-link slot="orderNo" slot-scope="text,record" :to="'detail?id='+record.orderId"><a-icon type="file-text" /> {{text}}</router-link> | |||
<span class="amount" slot="amount" slot-scope="text,record">金额:<span>${{ text }}</span><br>已付:<span>${{record.paidAmount||0}}</span></span> | |||
<span slot="creationTime" slot-scope="text">{{formatDateTime(text)}}</span> | |||
<div class="files" slot="files" slot-scope="text"> | |||
<ul> | |||
<li v-for="(file,fid) in text" :key="fid"><a :href="file.url" :title="file.name" target="_blank"><a-icon type="link" /> {{file.name}}</a></li> | |||
</ul> | |||
</div> | |||
</a-table> | |||
</div> | |||
</template> | |||
<script> | |||
import IncSearch from "@/pages/Common/search"; | |||
import {formatDate, resOrderStatus, resProTypes} from "@/services/Common"; | |||
import {OrderList} from "@/services/order/Order"; | |||
export default { | |||
name: 'OrderList', | |||
components: {IncSearch}, | |||
data(){ | |||
return{ | |||
orderType:[], | |||
listInput:[ | |||
{type:'input',name:'OrderNo',title:'订单编号',value:''}, | |||
{type:'select',name:'orderStatus',title:'订单状态',value:'', width:'120px', | |||
option:resOrderStatus(), | |||
}, | |||
], | |||
pagination: { | |||
pageSize: 10, | |||
current: 1, | |||
showQuickJumper: true, | |||
showTotal: (total) => `总计 ${total} 条`, | |||
}, | |||
tableLoad: false, | |||
tableColumns:[ | |||
{title: '订单编号',dataIndex: 'orderNo',key: 'orderNo',width:'260px',scopedSlots: { customRender: 'orderNo' },}, | |||
{title: '状态',dataIndex: 'orderStatusValue',key: 'orderStatusValue',width:'100px'}, | |||
{title: '创建时间',dataIndex: 'creationTime',key: 'creationTime',width:'160px',scopedSlots: { customRender: 'creationTime' },}, | |||
{title: '下单时间',dataIndex: 'orderTime',key: 'orderTime',width:'160px'}, | |||
{title: '时效',dataIndex: 'deliveryTime',key: 'deliveryTime',width:'120px'}, | |||
{title: '数量',dataIndex: 'qty',key: 'qty',width:'80px'}, | |||
{title: '文件',dataIndex: 'files',key: 'files',width:'300px',scopedSlots: { customRender: 'files' },}, | |||
{title: '金额',dataIndex: 'amount',key: 'amount',scopedSlots: { customRender: 'amount' }}, | |||
], | |||
tableData:[], | |||
} | |||
}, | |||
mounted() { | |||
var reg = /\/order\/((\w|-|\s)+)\//ig; | |||
let routePath = this.$route.path.replace(reg, function() { | |||
return arguments[1]; | |||
}); | |||
this.orderType = resProTypes(routePath); | |||
this.filterSearch() | |||
}, | |||
methods:{ | |||
getOrderStatus(key){ | |||
return resOrderStatus(key); | |||
}, | |||
filterSearch(page){ | |||
// console.log(page) | |||
// console.log(this.listInput) | |||
if(typeof(page)=='object'){ | |||
this.pagination.current = page.current; | |||
} | |||
let count = (this.pagination.current-1)*this.pagination.pageSize; | |||
let params={ | |||
orderType:this.orderType.proType, | |||
orderNo:this.listInput[0].value, | |||
orderStatus:this.listInput[1].value, | |||
// sorting:this.listInput[2].value, | |||
skipCount:count, | |||
maxResultCount:this.pagination.pageSize, | |||
} | |||
// console.log(params) | |||
this.fetch(params); | |||
}, | |||
fetch(params = {}) { | |||
this.tableLoad = true; | |||
OrderList(params).then(data=>{ | |||
const pagination = { ...this.pagination}; | |||
pagination.total = data.totalCount; | |||
this.tableLoad = false; | |||
this.tableData = data.items; | |||
this.pagination = pagination; | |||
}).catch(err=>{ | |||
this.tableLoad = false; | |||
}) | |||
}, | |||
formatDateTime(time){ | |||
return formatDate(time,'yyyy-MM-dd hh:mm'); | |||
}, | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
</style> |
@@ -1,531 +0,0 @@ | |||
<template> | |||
<div class="boxMain"> | |||
<a-spin :spinning="loadPage"> | |||
<div class="boxFilter bn"> | |||
<bnOrderLogList :order-id="orderId" /> | |||
<a-button type="primary" :loading="loadQB" @click="fnQuoteBom">BOM报价</a-button> | |||
<!-- <a-button type="primary" :loading="loadBomCheck" @click="fnShowOrderCheck(1)">审核</a-button>--> | |||
<a-button type="primary" :loading="loadRecheckBom" @click="fnShowOrderCheck(2)">提交复审</a-button> | |||
<!-- <a-button type="primary" :loading="loadBomSure" @click="fnBomSure">确认订单</a-button>--> | |||
<a-button type="primary" :loading="loadProduceBom" @click="fnProduceBom">BOM投产</a-button> | |||
<a-button type="primary" @click="fnBeforeBomSmtNum">更改元器件套数</a-button> | |||
<bn-set-purchase-status v-if="detail.orderBase" :order-id="orderId" :order-status="detail.orderBase.orderPurchaseStatus" :getList="getOrderDetail"/> | |||
<bnOrderCancel :order-id="orderId" /> | |||
</div> | |||
<template v-if="detail.orderBase"> | |||
<div class="titsc"><b>基础信息</b></div> | |||
<table class="tablesc"> | |||
<tr> | |||
<!-- <td class="t">订单id:</td>--> | |||
<!-- <td class="n">{{detail.orderBase.id}}</td>--> | |||
<!-- <td class="t">用户Id:</td>--> | |||
<!-- <td class="n">{{detail.orderBase.memberId}}</td>--> | |||
<td class="t">订单编号:</td> | |||
<td class="n">{{detail.orderBase.orderNo}}</td> | |||
<td class="t">订单类型:</td> | |||
<td class="n">{{getProTypes(detail.orderBase.proType).title}}</td> | |||
<td class="t">订单状态:</td> | |||
<td class="n">{{detail.orderBase.orderPurchaseStatusValue}}</td> | |||
<td class="t">包裹编号:</td> | |||
<td class="n">{{detail.orderBase.packageNo}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">套数:</td> | |||
<td class="n">{{detail.orderBase.qty}}</td> | |||
<td class="t">订单备注:</td> | |||
<td class="n">{{detail.orderBase.note}}</td> | |||
<td class="t">复制订单编号:</td> | |||
<td class="n">{{detail.orderBase.copyOrderNo}}</td> | |||
<td class="t">返单订单编号:</td> | |||
<td class="n">{{detail.orderBase.reOrderNo}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">币种:</td> | |||
<td class="n">{{detail.orderBase.currency}}</td> | |||
<td class="t">系统计价:</td> | |||
<td class="n">{{detail.orderBase.boardBrand}}</td> | |||
<td class="t">成本价:</td> | |||
<td class="n">{{detail.orderBase.isReOrder}}</td> | |||
<td class="t">产品费:</td> | |||
<td class="n">{{detail.orderBase.reOrderNo}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">调整金额:</td> | |||
<td class="n">{{detail.orderBase.adjustmentAmount}}</td> | |||
<td class="t">优惠券金额:</td> | |||
<td class="n">{{detail.orderBase.couponAmount}}</td> | |||
<td class="t">销售价:</td> | |||
<td class="n">{{detail.orderBase.salePrice}}</td> | |||
<td class="t">总重:</td> | |||
<td class="n">{{detail.orderBase.weight}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">物流方式:</td> | |||
<td class="n">{{detail.orderBase.shipType}}</td> | |||
<td class="t">运费:</td> | |||
<td class="n">{{detail.orderBase.shipAmount}}</td> | |||
<td class="t">手续费:</td> | |||
<td class="n">{{detail.orderBase.serviceCharge}}</td> | |||
<td class="t">总金额:</td> | |||
<td class="n">{{detail.orderBase.totalAmount}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">支付金额:</td> | |||
<td class="n">{{detail.orderBase.payAmount}}</td> | |||
<td class="t">支付时间:</td> | |||
<td class="n">{{formatDateTime(detail.orderBase.payTime)}}</td> | |||
<td class="t">交期天数:</td> | |||
<td class="n">{{detail.orderBase.deliveryDays}}</td> | |||
<td class="t">交期:</td> | |||
<td class="n">{{formatDateTime(detail.orderBase.date)}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">创建日期:</td> | |||
<td class="n" colspan="7">{{formatDateTime(detail.orderBase.creationTime)}}</td> | |||
</tr> | |||
<!-- <tr>--> | |||
<!-- <td class="t"></td>--> | |||
<!-- <td class="n"></td>--> | |||
<!-- <td class="t"></td>--> | |||
<!-- <td class="n"></td>--> | |||
<!-- </tr>--> | |||
</table> | |||
</template> | |||
<template v-if="detail.bomOrder"> | |||
<div class="titsc"><b>BOM订单信息</b></div> | |||
<table class="tablesc"> | |||
<tr> | |||
<td class="t">Bom订单Id:</td> | |||
<td class="n">{{detail.bomOrder.bomId}}</td> | |||
<td class="t">Smt套数:</td> | |||
<td class="n">{{detail.bomOrder.smtNum}}</td> | |||
<td class="t">Smt订单编号:</td> | |||
<td class="n">{{detail.bomOrder.smtOrderNo}}</td> | |||
<td class="t">元器件种类数:</td> | |||
<td class="n">{{detail.bomOrder.proNum}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">Bom名称:</td> | |||
<td class="n">{{detail.bomOrder.bomName}}</td> | |||
<td class="t">文件地址:</td> | |||
<td class="n"><a v-if="detail.bomOrder.saveFilePath" :href="detail.bomOrder.saveFilePath" :title="detail.bomOrder.saveFilePath" target="_blank">预览下载</a></td> | |||
<td class="t">是否显示给客户:</td> | |||
<td class="n">{{detail.bomOrder.isShowToCus}}</td> | |||
<td class="t">客供代购比:</td> | |||
<td class="n">{{detail.bomOrder.customerPurchase}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">交期:</td> | |||
<td class="n">{{formatDateTime(detail.bomOrder.customerDeliveryDate)}}</td> | |||
<td class="t">代购物料交期:</td> | |||
<td class="n">{{formatDateTime(detail.bomOrder.agentDeliveryDate)}}</td> | |||
<td class="t">是否是补料:</td> | |||
<td class="n">{{detail.bomOrder.isSupplement}}</td> | |||
<td class="t">复审人员:</td> | |||
<td class="n">{{detail.bomOrder.reCheckerName}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">审核原因:</td> | |||
<td class="n">{{detail.bomOrder.checkedReason}}</td> | |||
<td class="t">内部调度费:</td> | |||
<td class="n">{{detail.bomOrder.transportPrice}}</td> | |||
<td class="t">元器件成本总价:</td> | |||
<td class="n">{{detail.bomOrder.qrgTotalMoney}}</td> | |||
<td class="t">结算总价:</td> | |||
<td class="n">{{detail.bomOrder.settleTotalMoney}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">代理商成本总价:</td> | |||
<td class="n">{{detail.bomOrder.totalMoney}}</td> | |||
<td class="t">代理商销售总价:</td> | |||
<td class="n">{{detail.bomOrder.agentSaleTotalMoney}}</td> | |||
<td class="t"></td> | |||
<td class="n"></td> | |||
<td class="t"></td> | |||
<td class="n"></td> | |||
</tr> | |||
</table> | |||
</template> | |||
<template v-if="detail.bomRelaions"> | |||
<div class="titsc"><b>元器件信息</b> | |||
<a-button style="margin-left:2em" type="primary" :loading="loadRelationsBom" @click="showRelationsBom=true">新增BOM元器件</a-button> | |||
</div> | |||
<a-table class="tablesa c" :columns="tableBRColumns" :data-source="detail.bomRelaions" :scroll="{x:5000,y:600}" :rowKey="lists => lists.id" :pagination="false"> | |||
<span class="tableEdit" slot="id" slot-scope="text,record,index"> | |||
<a-spin :spinning="record.loadEdit"> | |||
<em>{{index+1}}</em> | |||
<a-button type="link" @click="showBDBR(text,index)">删除</a-button> | |||
<a-button v-if="!record.edit" type="link" @click="showBEBR(text,index)">编辑</a-button> | |||
<a-button v-if="record.edit" type="link" @click="fnEditBomRelatioin(text,index)">保存</a-button> | |||
</a-spin> | |||
</span> | |||
<span slot="bitName" slot-scope="text,record"><span v-if="!record.edit">{{text}}</span><a-input v-else v-model="record.bitName" /></span> | |||
<span slot="singleDosage" slot-scope="text,record"><span v-if="!record.edit">{{text}}</span><a-input v-else v-model="record.singleDosage" /></span> | |||
<span slot="buyNum" slot-scope="text,record"><span v-if="!record.edit">{{text}}</span><a-input v-else v-model="record.buyNum" /></span> | |||
<span slot="feedWay" slot-scope="text,record"><span v-if="!record.edit">{{resStatus(text,listArrCf.feedWay)}}</span> | |||
<a-select v-else v-model="record.feedWay" style="min-width:80px"> | |||
<a-select-option v-for="(li,i) in listArrCf.feedWay" :disabled="i==0" :key="i" :title="li" :value="i">{{li}}</a-select-option> | |||
</a-select> | |||
</span> | |||
<span slot="status" slot-scope="text,record"><span v-if="!record.edit">{{resStatus(text,listArrCf.status)}}</span> | |||
<a-select v-else v-model="record.status" style="min-width:80px"> | |||
<a-select-option v-for="(li,i) in listArrCf.status" :key="i" :title="li" :value="i">{{li}}</a-select-option> | |||
</a-select> | |||
</span> | |||
<span slot="adminRemark" slot-scope="text,record"><span v-if="!record.edit">{{text}}</span><a-input v-else v-model="record.adminRemark" /></span> | |||
<span slot="updateStatus" slot-scope="text">{{resStatus(text,listArrCf.updateStatus)}}</span> | |||
</a-table> | |||
<div class="tableOFAT" style="display: none"> | |||
<table class="tablesc c" style="width:4600px"> | |||
<tr> | |||
<td class="t" style="width:140px">操作:</td> | |||
<td class="t">名称:</td> | |||
<td class="t">元器件报价状态:</td> | |||
<td class="t">重量:</td> | |||
<td class="t">需求数:</td> | |||
<td class="t">单片用量:</td> | |||
<td class="t">实际到料数:</td> | |||
<td class="t">备料数:</td> | |||
<td class="t">供料方式:</td> | |||
<td class="t">位号:</td> | |||
<td class="t">型号:</td> | |||
<td class="t">品牌:</td> | |||
<td class="t">参数:</td> | |||
<td class="t">批号:</td> | |||
<td class="t">封装:</td> | |||
<td class="t">料号类别:</td> | |||
<td class="t">产品编号:</td> | |||
<td class="t">修改状态:</td> | |||
<td class="t">类目名称类型:</td> | |||
<td class="t">报价有效期:</td> | |||
<td class="t">交期天数:</td> | |||
<td class="t">客户备注:</td> | |||
<td class="t">业务员备注:</td> | |||
<td class="t">报价员备注:</td> | |||
<td class="t">最终供应商:</td> | |||
<td class="t">最终供应商key:</td> | |||
<td class="t">最终供应商备注:</td> | |||
<td class="t">SMT套数:</td> | |||
<td class="t">规格书地址:</td> | |||
<td class="t">单价:</td> | |||
<td class="t">报价成本:</td> | |||
<td class="t">最终采购价:</td> | |||
<td class="t">结算价格:</td> | |||
<td class="t">指导销售价:</td> | |||
<td class="t">代理商指导销售价:</td> | |||
<td class="t">代理商实际销售价:</td> | |||
<td class="t">元器件成本总价:</td> | |||
<td class="t">结算总价:</td> | |||
<td class="t">代理商指导销售价:</td> | |||
<td class="t">代理商实际销售价:</td> | |||
</tr> | |||
<!-- <tr v-for="(br,bid) in detail.bomRelaions" :key="bid">--> | |||
<!-- <td class="n">删除 编辑</td>--> | |||
<!-- </tr>--> | |||
</table> | |||
</div> | |||
<!-- <div class="boxBn">--> | |||
<!-- <a-button type="danger" @click="fnBeforeDelBomRelation">删除选中元器件</a-button>--> | |||
<!-- </div>--> | |||
<a-modal title="新增BOM元器件" width="600px" :visible="showRelationsBom" :confirm-loading="confirmSubmit" @cancel="showRelationsBom=false" @ok="fnRelationsBom"> | |||
<a-spin :spinning="loadForm"> | |||
<a-form-model v-model="formRelationsBom" v-bind="layout"> | |||
<a-form-model-item label="上传文件地址"> | |||
<a-spin :spinning="loadUp"> | |||
<a-input-group compact> | |||
<a-input style="width:60%" v-model="formRelationsBom.saveFilePath" /> | |||
<a-upload name="file" :showUploadList="false" :customRequest="(file)=>{fnToOssUpfile(file,'gerber')}" accept=".xls,.xlsx,.csv"> | |||
<a-button type="primary"><a-icon type="upload" /> 上传文件</a-button> | |||
</a-upload> | |||
</a-input-group> | |||
</a-spin> | |||
</a-form-model-item> | |||
</a-form-model> | |||
</a-spin> | |||
</a-modal> | |||
<a-modal title="删除元器件" :width="300" :visible="showDelBR" :confirm-loading="confirmLoading" @ok="fnDelBomRelation" @cancel="showDelBR = false"> | |||
<p>备注:<a-input style="width:200px" v-model="delBRRemark" /></p> | |||
</a-modal> | |||
</template> | |||
</a-spin> | |||
<a-modal title="更改元器件套数" :width="300" :visible="showBomSmtNum" :confirm-loading="confirmLoading" @ok="fnBomSmtNum" @cancel="showBomSmtNum = false"> | |||
<p>修改套数:<a-input style="width:100px" v-model="bomSmtNum" /></p> | |||
</a-modal> | |||
<a-modal :title="formOrderCheck.OCType===1?'审核订单':'复审订单'" :visible="showOrderCheck" :confirm-loading="confirmSubmit" @ok="fnBomCheck" @cancel="showOrderCheck=false"> | |||
<a-form-model v-model="formOrderCheck" v-bind="layout"> | |||
<a-form-model-item label="审核操作"> | |||
<a-radio-group v-model="formOrderCheck.isPass"> | |||
<a-radio :value="1">审核通过</a-radio> | |||
<!-- <a-radio :value="0">审核不通过驳回</a-radio>--> | |||
</a-radio-group> | |||
</a-form-model-item> | |||
<!-- <a-form-model-item label="备注"><a-textarea v-model="formOrderCheck.remark" placeholder="" :rows="3" /></a-form-model-item>--> | |||
</a-form-model> | |||
</a-modal> | |||
</div> | |||
</template> | |||
<script> | |||
import { | |||
resOrderBomDetail, | |||
OrderBomQuote, | |||
OrderBomRelations, | |||
OrderReadBomFile, | |||
OrderBomProduce, | |||
DelBomRelation, | |||
putBomRelation, | |||
putBomSmtNum, | |||
OrderBomSure, | |||
OrderBOMCheck | |||
} from "@/services/order/Order"; | |||
import {formatDate,resProTypes,resOrderStatus} from "@/services/Common"; | |||
import bnOrderLogList from "@/pages/Common/bnOrderLogList"; | |||
import bnOrderCancel from "@/pages/Common/bnOrderCancel"; | |||
import {upFileToOSS} from "@/services/uploadFile"; | |||
import BnSetPurchaseStatus from "@/pages/Common/bnSetPurchaseStatus"; | |||
export default { | |||
name: 'PcbDetail', | |||
components: {bnOrderLogList,bnOrderCancel,BnSetPurchaseStatus}, | |||
data(){ | |||
return{ | |||
loadPage:true,orderId:'',detail: {},loadQB:false,loadRecheckBom:false,loadRelationsBom:false,loadProduceBom:false,loadUp:false,loadForm:false,confirmLoading:false,showDelBR:false,showRelationsBom:false,confirmSubmit:false,selBRID:'',delBRRemark:'',showBomSmtNum:false,loadBomCheck:false,loadBomSure:false, | |||
formRelationsBom:{bomId:'',saveFilePath:''},bomSmtNum:0, | |||
listArrCf:{ | |||
status:['未核价','报价中','已报价','需重新报价','作废','驳回'], | |||
feedWay:['供料方式','代购','客供','代购不贴','客供不贴','其他'], | |||
updateStatus:['无','无修改','修改过'], | |||
}, | |||
layout: { | |||
labelCol: { span:5 }, | |||
wrapperCol: { span:17 }, | |||
}, | |||
formOrderCheck:{orderId:'',isPass:1,remark:'',OCType:''},showOrderCheck:false, | |||
tableBRColumns:[ | |||
{title:'操作',align:'center',dataIndex: 'id',key: 'id',fixed: 'left',width:'170px',scopedSlots: { customRender: 'id' }}, | |||
{title:'名称',align:'center',dataIndex: 'bomName',key: 'bomName',}, | |||
{title:'业务员备注',align:'center',dataIndex: 'adminRemark',key: 'adminRemark',scopedSlots: { customRender: 'adminRemark' }}, | |||
{title:'报价状态',align:'center',dataIndex: 'status',key: 'status',scopedSlots: { customRender: 'status' }}, | |||
{title:'位号',align:'center',dataIndex: 'bitName',key: 'bitName',scopedSlots: { customRender: 'bitName' }}, | |||
{title:'单片用量',align:'center',dataIndex: 'singleDosage',key: 'singleDosage',scopedSlots: { customRender: 'singleDosage' }}, | |||
{title:'需求数',align:'center',dataIndex: 'buyNum',key: 'buyNum',scopedSlots: { customRender: 'buyNum' }}, | |||
{title:'供料方式',align:'center',dataIndex: 'feedWay',key: 'feedWay',scopedSlots: { customRender: 'feedWay' }}, | |||
{title:'重量',align:'center',dataIndex: 'unitWeight',key: 'unitWeight',}, | |||
{title:'实际到料数',align:'center',dataIndex: 'realReceiveNum',key: 'realReceiveNum',}, | |||
{title:'备料数',align:'center',dataIndex: 'reBuyNum',key: 'reBuyNum',}, | |||
{title:'型号',align:'center',dataIndex: 'partNo',key: 'partNo',}, | |||
{title:'品牌',align:'center',dataIndex: 'mfg',key: 'mfg',}, | |||
{title:'参数',align:'center',dataIndex: 'parameter',key: 'parameter',}, | |||
{title:'批号',align:'center',dataIndex: 'batchNum',key: 'batchNum',}, | |||
{title:'封装',align:'center',dataIndex: 'pack',key: 'pack',}, | |||
{title:'料号类别',align:'center',dataIndex: 'bomClass',key: 'bomClass',}, | |||
{title:'产品编号',align:'center',dataIndex: 'productNo',key: 'productNo',}, | |||
{title:'修改状态',align:'center',dataIndex: 'updateStatus',key: 'updateStatus',scopedSlots: { customRender: 'updateStatus' }}, | |||
{title:'类目名称类型',align:'center',dataIndex: 'categoryName',key: 'categoryName',}, | |||
{title:'报价有效期',align:'center',dataIndex: 'validTime',key: 'validTime',}, | |||
{title:'交期天数',align:'center',dataIndex: 'deliveryDays',key: 'deliveryDays',}, | |||
{title:'客户备注',align:'center',dataIndex: 'cusRemark',key: 'cusRemark',}, | |||
{title:'报价员备注',align:'center',dataIndex: 'supplierRemark',key: 'supplierRemark',}, | |||
{title:'最终供应商',align:'center',dataIndex: 'finallySupplier',key: 'finallySupplier',}, | |||
{title:'供应商key',align:'center',dataIndex: 'finallySupplierKey',key: 'finallySupplierKey',}, | |||
{title:'供应商备注',align:'center',dataIndex: 'finallySupplierRemark',key: 'finallySupplierRemark',}, | |||
{title:'SMT套数',align:'center',dataIndex: 'smtNum',key: 'smtNum',}, | |||
{title:'规格书地址',align:'center',dataIndex: 'pdfPath',key: 'pdfPath',}, | |||
{title:'单价',align:'center',dataIndex: 'unitPrice',key: 'unitPrice',}, | |||
{title:'报价成本',align:'center',dataIndex: 'qrgUnitPrice',key: 'qrgUnitPrice',}, | |||
{title:'最终采购价',align:'center',dataIndex: 'finallyOrgPrice',key: 'finallyOrgPrice',}, | |||
{title:'结算价格',align:'center',dataIndex: 'settlePrice',key: 'settlePrice',}, | |||
{title:'指导销售价',align:'center',dataIndex: 'guidePrice',key: 'guidePrice',}, | |||
{title:'指导销售价',align:'center',dataIndex: 'agentGuidePrice',key: 'agentGuidePrice',}, | |||
{title:'实际销售价',align:'center',dataIndex: 'agentSalePrice',key: 'agentSalePrice',}, | |||
{title:'成本总价',align:'center',dataIndex: 'qrgTotalMoney',key: 'qrgTotalMoney',}, | |||
{title:'结算总价',align:'center',dataIndex: 'settleTotalMoney',key: 'settleTotalMoney',}, | |||
{title:'指导销售价',align:'center',dataIndex: 'totalMoney',key: 'totalMoney',}, | |||
{title:'实际销售价',align:'center',dataIndex: 'agentSaleTotalMoney',key: 'agentSaleTotalMoney',}, | |||
], | |||
} | |||
}, | |||
mounted() { | |||
this.orderId = this.$route.query.id; | |||
this.getOrderDetail(); | |||
}, | |||
methods:{ | |||
async getOrderDetail(){ | |||
this.loadPage = true; | |||
let res = await resOrderBomDetail(this.orderId); | |||
for (let i in res.bomRelaions){ | |||
res.bomRelaions[i].edit = false; | |||
res.bomRelaions[i].loadEdit = false; | |||
} | |||
this.detail = res; | |||
this.loadPage = false; | |||
}, | |||
getProTypes(key){ | |||
return resProTypes(key); | |||
}, | |||
getOrderStatus(key){ | |||
return resOrderStatus(key); | |||
}, | |||
formatDateTime(time){ | |||
return formatDate(time,'yyyy-MM-dd hh:mm'); | |||
}, | |||
fnShowOrderCheck(key){ | |||
this.formOrderCheck.OCType = key; | |||
this.showOrderCheck = true; | |||
}, | |||
//BOM审核 | |||
fnBomCheck(){ | |||
this.confirmSubmit = true; | |||
this.formOrderCheck.orderId = this.orderId; | |||
OrderBOMCheck(this.formOrderCheck).then(res=>{ | |||
this.$message.success('审核成功!'); | |||
this.getOrderDetail(); | |||
this.showOrderCheck = false; | |||
}).catch(err=>{ | |||
console.log(err) | |||
}).finally(res=>{ | |||
this.confirmSubmit = false; | |||
}) | |||
}, | |||
//BOM提交复审 | |||
// fnRecheckBom(){ | |||
// this.loadRecheckBom = true; | |||
// OrderBomRecheck(this.orderId).then(res=>{ | |||
// this.$message.success('提交成功!'); | |||
// this.loadRecheckBom = false; | |||
// }).catch(err=>{ | |||
// this.loadRecheckBom = false; | |||
// }); | |||
// }, | |||
//Bom确认 | |||
fnBomSure(){ | |||
this.loadBomSure = true; | |||
OrderBomSure(this.orderId).then(res=>{ | |||
this.$message.success('确认成功!'); | |||
this.getOrderDetail(); | |||
this.loadBomSure = false; | |||
}).catch(err=>{ | |||
this.loadBomSure = false; | |||
}) | |||
}, | |||
//BOM报价 | |||
fnQuoteBom(){ | |||
this.loadQB = true; | |||
OrderBomQuote(this.orderId).then(res=>{ | |||
this.$message.success('报价成功!'); | |||
this.loadQB = false; | |||
}).catch(err=>{ | |||
this.loadQB = false; | |||
}); | |||
}, | |||
//新增BOM元器件 | |||
fnRelationsBom(){ | |||
this.loadRelationsBom = true; | |||
this.formRelationsBom.bomId = this.detail.bomOrder.bomId; | |||
OrderBomRelations(this.formRelationsBom).then(res=>{ | |||
this.$message.success('提交成功!'); | |||
this.loadRelationsBom = false; | |||
this.showRelationsBom = false; | |||
this.getOrderDetail(); | |||
}).catch(err=>{ | |||
this.loadRelationsBom = false; | |||
this.showRelationsBom = false; | |||
}); | |||
}, | |||
//上传OSS | |||
async fnToOssUpfile(file,type){ | |||
this.loadUp = true; | |||
let resUpInfo = await upFileToOSS(file); | |||
// let resUpInfo = {url:'https://test-jpfile1.oss-cn-shenzhen.aliyuncs.com/allpcb/2022/7/30/1659151521423/NLmr2gve.xls'}; | |||
if(resUpInfo.url){ | |||
this.formRelationsBom.saveFilePath = resUpInfo.url; | |||
let res = await OrderReadBomFile('filePath',resUpInfo.url) | |||
this.$message.success('文件上传成功!'); | |||
// this.fnReadBomFile({filePath:resUpInfo.url}) | |||
} | |||
this.loadUp = false; | |||
}, | |||
//编辑BOM元器件 | |||
showBEBR(id,index){ | |||
this.detail.bomRelaions[index].edit=true; | |||
}, | |||
fnEditBomRelatioin(id,index){ | |||
this.detail.bomRelaions[index].loadEdit=true; | |||
let br = this.detail.bomRelaions[index]; | |||
let pm = { | |||
bitNum:br.bitName, | |||
singleDosage:br.singleDosage, | |||
buyNum:br.buyNum, | |||
feedWay:br.feedWay, | |||
status:br.status, | |||
remark:br.adminRemark | |||
} | |||
putBomRelation(id,pm).then(res=>{ | |||
this.$message.success('修改成功'); | |||
this.detail.bomRelaions[index].loadEdit=false; | |||
this.getOrderDetail(); | |||
}).catch(err=>{ | |||
this.detail.bomRelaions[index].loadEdit=false; | |||
this.detail.bomRelaions[index].edit=true; | |||
}) | |||
// console.log(id,index) | |||
}, | |||
//删除BOM元器件 | |||
showBDBR(id,index){ | |||
// this.detail.bomRelaions[index].edit=true; | |||
this.selBRID = id; | |||
this.showDelBR = true; | |||
}, | |||
fnDelBomRelation(){ | |||
let pm = { | |||
id:this.selBRID, | |||
remark:this.delBRRemark, | |||
} | |||
this.confirmLoading = true; | |||
DelBomRelation(pm).then(res=>{ | |||
this.$message.success('删除成功!'); | |||
this.confirmLoading = false; | |||
this.showDelBR = false; | |||
this.getOrderDetail(); | |||
}).catch(err=>{ | |||
this.confirmLoading = false; | |||
this.showDelBR = false; | |||
}) | |||
}, | |||
//BOM投产 | |||
fnProduceBom(){ | |||
this.loadProduceBom = true; | |||
OrderBomProduce(this.orderId).then(res=>{ | |||
this.$message.success('投产成功!'); | |||
this.loadProduceBom = false; | |||
}).catch(err=>{ | |||
this.loadProduceBom = false; | |||
}) | |||
}, | |||
//更改元器件套数 | |||
fnBeforeBomSmtNum(){ | |||
this.bomSmtNum = this.detail.bomOrder.smtNum | |||
this.showBomSmtNum=true | |||
}, | |||
fnBomSmtNum(){ | |||
this.confirmLoading = true; | |||
putBomSmtNum(this.orderId,this.bomSmtNum).then(res=>{ | |||
this.$message.success('修改成功'); | |||
this.showBomSmtNum = false; | |||
this.confirmLoading = false; | |||
this.getOrderDetail(); | |||
}).catch(err=>{ | |||
this.confirmLoading = false; | |||
}); | |||
}, | |||
//返回状态 | |||
resStatus(key,list){ | |||
return list[key]; | |||
}, | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
</style> |
@@ -1,783 +0,0 @@ | |||
<template> | |||
<div class="boxMain"> | |||
<a-spin :spinning="loadPage"> | |||
<div class="boxFilter bn"> | |||
<bnOrderLogList :order-id="orderId" /> | |||
<a-button type="primary" @click="fnShowOrderCheck(1)">审核订单</a-button> | |||
<a-button v-if="isOutFactory == 1" type="primary" @click="fnShowOrderCheck(2)">复审</a-button> | |||
<a-button v-if="!ifEdit" type="primary" :loading="loadOE" @click="BeforeOrderEdit">修改订单</a-button> | |||
<a-button v-else @click="ifEdit=false">退出修改</a-button> | |||
<a-button type="primary" @click="fnAdjustAmount">调整订单金额</a-button> | |||
<a-button type="primary" v-if="orderStatus<70 && orderStatus>=0 && isOutFactory == 1" :loading="loadOffer" @click="fnPcbOffer">申请外发报价</a-button> | |||
<bn-set-purchase-status :order-id="orderId" :order-status="orderDetail.orderPurchaseStatus" :getList="getOrderDetail"/> | |||
<bnOrderCancel :order-id="orderId" /> | |||
</div> | |||
<template v-if="ifEdit"> | |||
<div class="titsc"><b>修改PCB订单 No:{{orderDetail.orderNo}}</b></div> | |||
<template v-if="orderDetail"> | |||
<table class="tablesc"> | |||
<tr> | |||
<td class="t">板材品牌</td><td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.coreType"> | |||
<a-radio-button v-for="(item,index) in typeList.CoreType" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">TG值</td><td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.coreTg"> | |||
<a-radio-button v-for="(item,index) in typeList.CoreTg" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
</tr> | |||
<tr> | |||
<td class="t">宽x高</td><td class="n" colspan="3"><a-input v-model="formPQ.boardWidth" style="width:70px" /> x <a-input v-model="formPQ.boardHeight" style="width:70px" /> mm</td> | |||
<td class="t">数量({{formPQ.boardType}})</td><td class="n" colspan="3"><a-input v-model="formPQ.num"/><span>(小于30必须5的倍数,大于30必须10的倍数)</span></td> | |||
</tr> | |||
<tr> | |||
<td class="t">板层</td> | |||
<td class="n" colspan="7"> | |||
<a-radio-group v-model="formPQ.boardLayers"> | |||
<a-radio-button v-for="(item,index) in typeList.BoardLayers" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td class="t">板厚</td> | |||
<td class="n" colspan="7"> | |||
<a-radio-group v-model="formPQ.boardThickness"> | |||
<a-radio-button v-for="(item,index) in typeList.BoardThickness" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td class="t">阻焊颜色</td> | |||
<td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.solderColor"> | |||
<a-radio-button v-for="(item,index) in typeList.SolderColor" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
<td class="t">字符颜色</td> | |||
<td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.fontColor"> | |||
<a-radio-button v-for="(item,index) in typeList.FontColor" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td class="t">底层阻焊颜色</td> | |||
<td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.solderColorBottom"> | |||
<a-radio-button v-for="(item,index) in typeList.SolderColor" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
<td class="t">底层字符颜色</td> | |||
<td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.fontColorBottom"> | |||
<a-radio-button v-for="(item,index) in typeList.FontColor" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td class="t">阻焊覆盖</td><td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.solderCover"> | |||
<a-radio-button v-for="(item,index) in typeList.SolderCover" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
<td class="t">拼板XY</td><td class="n"> | |||
<a-input v-model="formPQ.pinBanX" style="width:70px" /> x <a-input v-model="formPQ.pinBanY" style="width:70px" /> | |||
</td> | |||
<td class="t">拼板数量</td><td class="n"> | |||
<a-input v-model="formPQ.pinBanNum" style="width:70px" /> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td class="t">工艺边</td><td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.processEdges"> | |||
<a-radio-button v-for="(item,index) in typeList.ProcessEdges" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">工艺边宽</td><td class="n" colspan="3"><a-input v-model="formPQ.processEdgesWidth" style="width:70px" /></td> | |||
</tr> | |||
<tr> | |||
<td class="t">V割方式</td><td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.vCut"> | |||
<a-radio-button v-for="(item,index) in typeList.VCut" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">槽间距(高x宽)</td><td class="n" colspan="3"><a-input v-model="formPQ.grooveHeight" style="width:70px" /> x <a-input v-model="formPQ.grooveWidth" style="width:70px" /></td> | |||
</tr> | |||
<tr> | |||
<td class="t">铜厚(外层)</td><td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.copperThickness"> | |||
<a-radio-button v-for="(item,index) in typeList.CopperThickness" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">焊盘表面处理</td><td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.surfaceFinish"> | |||
<a-radio-button v-for="(item,index) in typeList.SurfaceFinish" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
</tr> | |||
<tr> | |||
<td class="t">铜厚(内层)</td><td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.innerCopperThickness"> | |||
<a-radio-button v-for="(item,index) in typeList.InnerCopperThickness" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">沉金厚度</td><td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.imGoldThinckness"> | |||
<a-radio-button v-for="(item,index) in typeList.ImGoldThinckness" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
</tr> | |||
<tr> | |||
<td class="t">最小孔径</td><td class="n" colspan="7"> | |||
<a-radio-group v-model="formPQ.vias"> | |||
<a-radio-button v-for="(item,index) in typeList.Vias" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
</tr> | |||
<tr> | |||
<td class="t">最小线宽/线距</td><td class="n" colspan="7"> | |||
<a-radio-group v-model="formPQ.lineWeight"> | |||
<a-radio-button v-for="(item,index) in typeList.LineWeight" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
</tr> | |||
<tr> | |||
<td class="t">出货类型</td><td class="n"> | |||
<a-radio-group v-model="formPQ.boardType"> | |||
<a-radio-button v-for="(item,index) in typeList.BoardType" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">是否接受打叉版</td><td class="n"> | |||
<a-radio-group v-model="formPQ.acceptCrossed"> | |||
<a-radio-button v-for="(item,index) in typeList.AcceptCrossed" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">BGA数量</td><td class="n"><a-input v-model="formPQ.bgaNum" style="width:70px" /></td> | |||
<td class="t">BGA尺寸</td><td class="n"><a-input v-model="formPQ.bgaSize" style="width:70px" /></td> | |||
</tr> | |||
<tr> | |||
<td class="t">测试方式</td><td class="n" colspan="3"> | |||
<a-radio-group v-model="formPQ.flyingProbe"> | |||
<a-radio-button v-for="(item,index) in typeList.FlyingProbe" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">阻抗</td><td class="n"> | |||
<a-radio-group v-model="formPQ.isImpedance"> | |||
<a-radio-button v-for="(item,index) in typeList.IsImpedance" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">阻抗报告</td><td class="n"> | |||
<a-radio-group v-model="formPQ.impedanceReport"> | |||
<a-radio-button v-for="(item,index) in typeList.ImpedanceReport" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
</tr> | |||
<tr> | |||
<td class="t">孔密度</td><td class="n"><a-input v-model="formPQ.boardHoleNum" style="width:70px" /></td> | |||
<td class="t">IPCLevel 出货标准</td><td class="n"> | |||
<a-radio-group v-model="formPQ.ipcLevel"> | |||
<a-radio-button v-for="(item,index) in typeList.IPCLevel" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">确认生产稿</td><td class="n"> | |||
<a-radio-group v-model="formPQ.productFileSure"> | |||
<a-radio-button v-for="(item,index) in typeList.ProductFileSure" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">成型方式</td><td class="n"> | |||
<a-radio-group v-model="formPQ.formingType"> | |||
<a-radio-button v-for="(item,index) in typeList.FormingType" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
</tr> | |||
<tr> | |||
<td class="t">出货报告</td><td class="n" colspan="5"> | |||
<a-checkbox-group v-model="formPQ.needReportList"> | |||
<a-checkbox v-for="(item,index) in typeList.NeedReportList" :key="index" :value="item.dataValue">{{item.caption}}</a-checkbox> | |||
</a-checkbox-group></td> | |||
<td class="t">CAM高端个性化</td><td class="n"> | |||
<a-radio-group v-model="formPQ.camEngineer"> | |||
<a-radio-button v-for="(item,index) in typeList.CamEngineer" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
</tr> | |||
<tr> | |||
<td class="t">锣程</td><td class="n"><a-input v-model="formPQ.routLength" style="width:70px" /></td> | |||
<td class="t">电镀前工艺</td><td class="n"> | |||
<a-radio-group v-model="formPQ.beforePlating"> | |||
<a-radio-button v-for="(item,index) in typeList.BeforePlating" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">更改料号</td><td class="n"><a-input v-model="formPQ.changeItemNum" /></td> | |||
<td class="t">更改周期标识</td><td class="n"><a-input v-model="formPQ.changePeriod" /></td> | |||
</tr> | |||
<tr> | |||
<td class="t">线路工艺</td><td class="n"> | |||
<a-radio-group v-model="formPQ.imageTranster"> | |||
<a-radio-button v-for="(item,index) in typeList.ImageTranster" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">阻焊工艺</td><td class="n"> | |||
<a-radio-group v-model="formPQ.solderTransfer"> | |||
<a-radio-button v-for="(item,index) in typeList.SolderTransfer" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">出货报告材质</td><td class="n"> | |||
<a-radio-group v-model="formPQ.reportMaterial"> | |||
<a-radio-button v-for="(item,index) in typeList.ReportMaterial" :key="index" :value="Number(item.dataValue)">{{item.caption}}</a-radio-button> | |||
</a-radio-group></td> | |||
<td class="t">是否外发</td><td class="n"> | |||
<a-radio-group v-model="formPQ.isOutFactory"> | |||
<a-radio-button :value="0">否</a-radio-button> | |||
<a-radio-button :value="1">是</a-radio-button> | |||
</a-radio-group></td> | |||
</tr> | |||
<tr> | |||
<td class="t">订单备注</td><td class="n" colspan="7"><a-input v-model="formPQ.Note"/></td> | |||
</tr> | |||
<tr> | |||
<td class="t">特殊工艺</td> | |||
<td class="n" colspan="7"> | |||
<template v-for="(item,index) in arrSpecialList"> | |||
<div class="boxListSpecials" :key="item.typeNo" v-if="item.valueType==1"><div class="t">{{item.caption}}<em>{{selSL[index].typeName}}</em></div><a-input v-model="selSL[index].typeValue" style="width:100px"/></div> | |||
<div class="boxListSpecials" :key="item.typeNo" v-else><div class="t">{{item.caption}}<em>{{selSL[index].typeName}}</em></div> | |||
<a-radio-group v-model="selSL[index].typeValue"> | |||
<a-radio-button v-for="(item,index) in item.processDataList" :key="index" :value="item.dataValue">{{item.caption}}</a-radio-button> | |||
</a-radio-group> | |||
</div> | |||
</template> | |||
</td> | |||
</tr> | |||
</table> | |||
</template> | |||
<!-- <a-spin :spinning="loadEdit">--> | |||
<div class="boxBn" v-if="ifEdit"><a-button @click="ifEdit=false">退出修改</a-button><a-button :loading="loadEdit" type="danger" @click="upOrderEdit">保存修改</a-button></div> | |||
<!-- </a-spin>--> | |||
</template> | |||
<template v-else> | |||
<div class="titsc"><b>基本信息</b></div> | |||
<table class="tablesc"> | |||
<template v-if="orderDetail"> | |||
<tr> | |||
<td class="t">订单编号</td><td class="n">{{orderDetail.orderNo}}</td> | |||
<td class="t">订单状态</td><td class="n">{{orderDetail.orderPurchaseStatusValue}}</td> | |||
<td class="t">包裹单号</td><td class="n">{{orderDetail.packageNo}}</td> | |||
<td class="t">产品类型</td><td class="n">{{orderDetail.proTypeValue}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">客编</td><td class="n">{{orderDetail.memberCode}}</td> | |||
<td class="t">业务员</td><td class="n">{{orderDetail.adminName}}</td> | |||
<td class="t">订单备注</td><td class="n">{{orderDetail.note}}</td> | |||
<td class="t">调整金额(浮动金额)</td><td class="n">{{orderDetail.adjustmentAmount}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">销售价</td><td class="n">{{orderDetail.salePrice}}</td> | |||
<td class="t">运费</td><td class="n">{{orderDetail.shipAmount}}</td> | |||
<td class="t">物流方式</td><td class="n">{{orderDetail.shipType}}</td> | |||
<td class="t">调整运费</td><td class="n">{{orderDetail.adjustmentShipAmount}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">总金额</td><td class="n">{{orderDetail.totalAmount}}</td> | |||
<td class="t">实际支付金额</td><td class="n">{{orderDetail.payAmount}}</td> | |||
<td class="t">最后支付时间</td><td class="n">{{formatDateTime(orderDetail.payTime)}}</td> | |||
<td class="t">PCBA关联单号</td><td class="n">{{orderDetail.pcbaNo}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">返单号</td><td class="n">{{orderDetail.reOrderNo}}</td> | |||
<td class="t">根单号</td><td class="n">{{orderDetail.rootOrderNo}}</td> | |||
<td class="t">创建时间</td><td class="n">{{formatDateTime(orderDetail.creationTime)}}</td> | |||
<td class="t">附件列表</td> | |||
<td class="n"> | |||
<ul class="listFiles"> | |||
<li v-for="(file,fid) in orderDetail.files" :key="fid"><a :href="file.url" target="_blank"><a-icon type="link" /> {{file.name}}</a></li> | |||
</ul> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td class="t">是否外发</td><td class="n">{{isOutFactory===0?'非外发':(isOutFactory===1?'外发':'')}}</td> | |||
</tr> | |||
</template> | |||
</table> | |||
<div class="titsc"><b>PCB信息</b></div> | |||
<table class="tablesc"> | |||
<template v-if="pcbDetail.pcbBaseData"> | |||
<tr> | |||
<td class="t">租户Id:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.tenantId}}</td> | |||
<td class="t">订单id:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.orderId}}</td> | |||
<td class="t">订单编号:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.orderNo}}</td> | |||
<td class="t">板材大类:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.proType}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">板材:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.coreType}}</td> | |||
<td class="t">板材tg值:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.coreTg}}</td> | |||
<td class="t">板材code:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.coreTypeCode}}</td> | |||
<td class="t">重量:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.totalWeight}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">面积:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.boardArea}}</td> | |||
<td class="t">板材品牌:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.boardBrand}}</td> | |||
<td class="t">是否为返单:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.isReOrder}}</td> | |||
<td class="t">返单编号:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.reOrderNo}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">交期类别:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.deliveryType}}</td> | |||
<td class="t">交期天数:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.deliveryDays}}</td> | |||
<td class="t">交期:</td> | |||
<td class="n">{{formatDateTime(pcbDetail.pcbBaseData.deliveryDate)}}</td> | |||
<td class="t">生产单号:</td> | |||
<td class="n">{{pcbDetail.pcbBaseData.proOrderNo}}</td> | |||
</tr> | |||
</template> | |||
<template v-if="pcbDetail.areaProcessData"> | |||
<tr> | |||
<td class="t">宽 x 高:</td> | |||
<td class="n">{{pcbDetail.areaProcessData.boardWidth}} x {{pcbDetail.areaProcessData.boardHeight}}</td> | |||
<td class="t">数量:</td> | |||
<td class="n">{{pcbDetail.areaProcessData.num}}</td> | |||
<td class="t">pcs数:</td> | |||
<td class="n">{{pcbDetail.areaProcessData.pcsNum}}</td> | |||
<td class="t">set数:</td> | |||
<td class="n">{{pcbDetail.areaProcessData.setNum}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">拼版类别:</td> | |||
<td class="n">{{pcbDetail.areaProcessData.boardType}}</td> | |||
<td class="t">是否接受打叉板:</td> | |||
<td class="n">{{pcbDetail.areaProcessData.acceptCrossed}}</td> | |||
<td class="t">拼版:</td> | |||
<td class="n">{{pcbDetail.areaProcessData.pinBanX}} x {{pcbDetail.areaProcessData.pinBanY}}</td> | |||
<td class="t">拼版数:</td> | |||
<td class="n">{{pcbDetail.areaProcessData.pinBanNum}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">工艺边:</td> | |||
<td class="n">{{pcbDetail.areaProcessData.processEdges}}</td> | |||
<td class="t">工艺边宽:</td> | |||
<td class="n">{{pcbDetail.areaProcessData.processEdgesWidth}}</td> | |||
<td class="t">v割方式:</td> | |||
<td class="n">{{pcbDetail.areaProcessData.vCut}}</td> | |||
<td class="t">槽间距-高x宽:</td> | |||
<td class="n">{{pcbDetail.areaProcessData.grooveHeight}} x {{pcbDetail.areaProcessData.grooveWidth}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">单Set出货尺寸宽x高:</td> | |||
<td class="n" colspan="7">{{pcbDetail.areaProcessData.deliverWidth}} x {{pcbDetail.areaProcessData.deliverHeight}}</td> | |||
</tr> | |||
</template> | |||
<template v-if="pcbDetail.areaProcessData"> | |||
<tr> | |||
<td class="t">是否需要阻焊:</td> | |||
<td class="n">{{pcbDetail.personalizedProcessData.isImpedance}}</td> | |||
<td class="t">阻焊报告:</td> | |||
<td class="n">{{pcbDetail.personalizedProcessData.impedanceReport}}</td> | |||
<td class="t">确认文件信息:</td> | |||
<td class="n">{{pcbDetail.personalizedProcessData.productFileSure}}</td> | |||
<td class="t">CAM工程师等级:</td> | |||
<td class="n">{{pcbDetail.personalizedProcessData.camEngineer}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">IPC标准等级:</td> | |||
<td class="n">{{pcbDetail.personalizedProcessData.ipcLevel}}</td> | |||
<td class="t">出货报告:</td> | |||
<td class="n">{{pcbDetail.personalizedProcessData.needReportList}}</td> | |||
<td class="t">报告材质:</td> | |||
<td class="n">{{pcbDetail.personalizedProcessData.reportMaterial}}</td> | |||
<td class="t">BGA数量:</td> | |||
<td class="n">{{pcbDetail.personalizedProcessData.bgaNum}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">BGA尺寸:</td> | |||
<td class="n" colspan="7">{{pcbDetail.areaProcessData.bgaSize}}</td> | |||
</tr> | |||
</template> | |||
<template v-if="pcbDetail.pcbProductionProcessData"> | |||
<tr> | |||
<td class="t">更改料号:</td> | |||
<td class="n">{{pcbDetail.pcbProductionProcessData.changeItemNum}}</td> | |||
<td class="t">更改周期标识:</td> | |||
<td class="n">{{pcbDetail.pcbProductionProcessData.changePeriod}}</td> | |||
<td class="t">拼板利用率:</td> | |||
<td class="n">{{pcbDetail.pcbProductionProcessData.utilizationRate}}</td> | |||
<td class="t">沉金面积:</td> | |||
<td class="n">{{pcbDetail.pcbProductionProcessData.immersionGoldArea}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">锣程:</td> | |||
<td class="n">{{pcbDetail.pcbProductionProcessData.routLength}}</td> | |||
<td class="t">孔密度:</td> | |||
<td class="n" colspan="5">{{pcbDetail.pcbProductionProcessData.boardHoleNum}}</td> | |||
</tr> | |||
</template> | |||
<template v-if="pcbDetail.pcbStandardProcessData"> | |||
<tr> | |||
<td class="t">板厚:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.boardThickness}}</td> | |||
<td class="t">板层:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.boardLayers}}</td> | |||
<td class="t">铜厚:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.copperThickness}}</td> | |||
<td class="t">内层铜厚:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.innerCopperThickness}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">测试方式:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.flyingProbe}}</td> | |||
<td class="t">最小孔径:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.vias}}</td> | |||
<td class="t">线宽线距:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.lineWeight}}</td> | |||
<td class="t">阻焊颜色:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.solderColor}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">底层阻焊颜色:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.solderColorBottom}}</td> | |||
<td class="t">字符颜色:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.fontColor}}</td> | |||
<td class="t">底层字符颜色:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.fontColorBottom}}</td> | |||
<td class="t">过孔处理:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.solderCover}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">线路工艺:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.imageTranster}}</td> | |||
<td class="t">阻焊工艺:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.solderTransfer}}</td> | |||
<td class="t">表面处理:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.surfaceFinish}}</td> | |||
<td class="t">沉金厚度:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.imGoldThinckness}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">电镀前工艺:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.beforePlating}}</td> | |||
<td class="t">板材耐压值:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.withstandVoltage}}</td> | |||
<td class="t">成型方式:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.formingType}}</td> | |||
<td class="t">耐压测试:</td> | |||
<td class="n">{{pcbDetail.pcbStandardProcessData.wvTest}}</td> | |||
</tr> | |||
</template> | |||
</table> | |||
<div class="boxKH20"></div> | |||
<div class="titsc"><b>特殊工艺信息</b></div> | |||
<table class="tablesa"> | |||
<tr v-for="(item,index) in pcbDetail.pcbSpecialProcessData" :key="index"> | |||
<td class="t">{{item.typeName}}</td> | |||
<td colspan="7">{{item.typeValue}}</td> | |||
</tr> | |||
</table> | |||
</template> | |||
</a-spin> | |||
<a-modal :title="formOrderCheck.OCType===1?'审核订单':'复审订单'" :visible="showOrderCheck" :confirm-loading="confirmSubmit" @ok="fnOrderCheck" @cancel="showOrderCheck=false"> | |||
<a-form-model v-model="formOrderCheck" v-bind="layout"> | |||
<a-form-model-item label="审核操作"> | |||
<a-radio-group v-model="formOrderCheck.isPass"> | |||
<a-radio :value="1">审核通过</a-radio> | |||
<a-radio :value="0">审核不通过驳回</a-radio> | |||
</a-radio-group> | |||
</a-form-model-item> | |||
<!-- <a-form-model-item label="备注"><a-textarea v-model="formOrderCheck.remark" placeholder="" :rows="3" /></a-form-model-item>--> | |||
</a-form-model> | |||
</a-modal> | |||
</div> | |||
</template> | |||
<script> | |||
import { | |||
OrderPcbDetail, | |||
OrderPcbCheck, | |||
QuotePcbProcessType, | |||
OrderPcbEditDetail, | |||
putOrderPcb, | |||
OrderPcbOffer | |||
} from "@/services/order/Order"; | |||
import {formatDate} from "@/services/Common"; | |||
import bnOrderLogList from "@/pages/Common/bnOrderLogList"; | |||
import bnOrderCancel from "@/pages/Common/bnOrderCancel"; | |||
import BnSetPurchaseStatus from "@/pages/Common/bnSetPurchaseStatus"; | |||
export default { | |||
name: 'PcbDetail', | |||
components: {bnOrderLogList,bnOrderCancel,BnSetPurchaseStatus}, | |||
data(){ | |||
return{ | |||
loadPage:true,showOrderCheck:false,confirmSubmit:false,loadOE:false,ifEdit:false,loadEdit:false,loadOffer:false, | |||
orderId:'',orderStatus:0,orderDetail:{},pcbDetail:{},isOutFactory:'', | |||
formOrderCheck:{orderId:'',isPass:1,remark:'',OCType:''}, | |||
layout: { | |||
labelCol: { span:7 }, | |||
wrapperCol: { span:15 }, | |||
}, | |||
formPQ:{},typeList:{},arrSpecialList:[],selSL:[], | |||
PcbProcessType:{}, | |||
// formPQ:{ | |||
// orderId:'', | |||
// boardWidth:0, | |||
// boardHeight:0, | |||
// boardThickness:0, | |||
// boardLayers:0, | |||
// num:0, | |||
// solderColor:'', | |||
// solderColorBottom:'', | |||
// fontColor:'', | |||
// fontColorBottom:'', | |||
// solderCover:'', | |||
// pinBanX:0, | |||
// pinBanY:0, | |||
// pinBanNum:0, | |||
// processEdges:'', | |||
// processEdgesWidth:0, | |||
// vCut:'', | |||
// grooveHeight:0, | |||
// grooveWidth:0, | |||
// copperThickness:0, | |||
// innerCopperThickness:0, | |||
// surfaceFinish:'', | |||
// flyingProbe:'', | |||
// vias:0, | |||
// lineWeight:'', | |||
// coreType:'', | |||
// coreTg:'', | |||
// boardType:'', | |||
// acceptCrossed:'', | |||
// bgaNum:0, | |||
// bgaSize:0, | |||
// imGoldThinckness:0, | |||
// impedanceReport:0, | |||
// isImpedance:0, | |||
// boardHoleNum:0, | |||
// ipcLevel:0, | |||
// needReportList:'', | |||
// productFileSure:0, | |||
// camEngineer:0, | |||
// aluminumType:'', | |||
// withstandVoltage:'', | |||
// formingType:'', | |||
// routLength:0, | |||
// beforePlating:'', | |||
// changeItemNum:0, | |||
// changePeriod:0, | |||
// imageTranster:'', | |||
// utilizationRate:0, | |||
// solderTransfer:'', | |||
// wvTest:'', | |||
// halfHole:0, | |||
// reportMaterial:0, | |||
// Note:'', | |||
// SpecialProcess:[], | |||
// } | |||
} | |||
}, | |||
mounted() { | |||
this.orderId = this.$route.query.id; | |||
this.getOrderDetail(); | |||
}, | |||
methods:{ | |||
async getOrderDetail(){ | |||
this.loadPage = true; | |||
let res = await OrderPcbDetail(this.orderId); | |||
this.pcbDetail = res.pcbDetail; | |||
this.isOutFactory = res.pcbDetail.pcbBaseData.isOutFactory; | |||
this.orderDetail = res.orderDetail; | |||
this.orderStatus = res.orderDetail.orderPurchaseStatus; | |||
this.loadPage = false; | |||
}, | |||
formatDateTime(time){ | |||
return formatDate(time,'yyyy-MM-dd hh:mm'); | |||
}, | |||
fnShowOrderCheck(key){ | |||
this.formOrderCheck.OCType = key; | |||
this.showOrderCheck = true; | |||
}, | |||
//审核订单 | |||
fnOrderCheck(){ | |||
this.confirmSubmit = true; | |||
this.formOrderCheck.orderId = this.orderId; | |||
OrderPcbCheck(this.formOrderCheck).then(res=>{ | |||
this.$message.success('设置成功!'); | |||
this.showOrderCheck = false; | |||
this.confirmSubmit = false; | |||
this.getOrderDetail() | |||
}).catch(err=>{ | |||
this.confirmSubmit = false; | |||
}); | |||
}, | |||
//修改订单 | |||
async BeforeOrderEdit(){ | |||
this.loadOE = true; | |||
this.PcbProcessType = await QuotePcbProcessType(this.orderDetail.tenantId); | |||
let resOPED = await OrderPcbEditDetail(this.orderId); | |||
this.typeList={ | |||
BoardLayers:this.resEditPP('BoardLayers'), | |||
BoardThickness:this.resEditPP('BoardThickness'), | |||
SolderColor:this.resEditPP('SolderColor'), | |||
FontColor:this.resEditPP('FontColor'), | |||
SolderCover:this.resEditPP('SolderCover'), | |||
ProcessEdges:this.resEditPP('ProcessEdges'), | |||
VCut:this.resEditPP('VCut'), | |||
CopperThickness:this.resEditPP('CopperThickness'), | |||
InnerCopperThickness:this.resEditPP('InnerCopperThickness'), | |||
SurfaceFinish:this.resEditPP('SurfaceFinish'), | |||
FlyingProbe:this.resEditPP('FlyingProbe'), | |||
Vias:this.resEditPP('Vias'), | |||
LineWeight:this.resEditPP('LineWeight'), | |||
CoreType:this.resEditPP('CoreType'), | |||
CoreTg:this.resEditPP('CoreTg'), | |||
BoardType:this.resEditPP('BoardType'), | |||
AcceptCrossed:this.resEditPP('AcceptCrossed'), | |||
ImGoldThinckness:this.resEditPP('ImGoldThinckness'), | |||
IsImpedance:this.resEditPP('IsImpedance'), | |||
ImpedanceReport:this.resEditPP('ImpedanceReport'), | |||
IPCLevel:this.resEditPP('IPCLevel'), | |||
NeedReportList:this.resEditPP('NeedReportList'), | |||
ProductFileSure:this.resEditPP('ProductFileSure'), | |||
CamEngineer:this.resEditPP('CamEngineer'), | |||
FormingType:this.resEditPP('FormingType'), | |||
BeforePlating:this.resEditPP('BeforePlating'), | |||
ImageTranster:this.resEditPP('ImageTranster'), | |||
SolderTransfer:this.resEditPP('SolderTransfer'), | |||
ReportMaterial:this.resEditPP('ReportMaterial'), | |||
} | |||
this.loadOE = false; | |||
this.formPQ={ | |||
orderId:this.orderId, | |||
boardWidth:resOPED.areaProcessData.boardWidth, | |||
boardHeight:resOPED.areaProcessData.boardHeight, | |||
boardThickness:resOPED.pcbStandardProcessData.boardThickness, | |||
boardLayers:resOPED.pcbStandardProcessData.boardLayers, | |||
num:resOPED.areaProcessData.num, | |||
solderColor:resOPED.pcbStandardProcessData.solderColor, | |||
solderColorBottom:resOPED.pcbStandardProcessData.solderColorBottom, | |||
fontColor:resOPED.pcbStandardProcessData.fontColor, | |||
fontColorBottom:resOPED.pcbStandardProcessData.fontColorBottom, | |||
solderCover:resOPED.pcbStandardProcessData.solderCover, | |||
pinBanX:resOPED.areaProcessData.pinBanX, | |||
pinBanY:resOPED.areaProcessData.pinBanY, | |||
pinBanNum:resOPED.areaProcessData.pinBanNum, | |||
processEdges:resOPED.areaProcessData.processEdges, | |||
processEdgesWidth:resOPED.areaProcessData.processEdgesWidth, | |||
vCut:resOPED.areaProcessData.vCut, | |||
grooveHeight:resOPED.areaProcessData.grooveHeight, | |||
grooveWidth:resOPED.areaProcessData.grooveWidth, | |||
copperThickness:resOPED.pcbStandardProcessData.copperThickness, | |||
innerCopperThickness:resOPED.pcbStandardProcessData.innerCopperThickness, | |||
surfaceFinish:resOPED.pcbStandardProcessData.surfaceFinish, | |||
flyingProbe:resOPED.pcbStandardProcessData.flyingProbe, | |||
vias:resOPED.pcbStandardProcessData.vias, | |||
lineWeight:resOPED.pcbStandardProcessData.lineWeight, | |||
coreType:resOPED.pcbBaseData.coreType, | |||
coreTg:resOPED.pcbBaseData.coreTg, | |||
boardType:resOPED.areaProcessData.boardType, | |||
acceptCrossed:resOPED.areaProcessData.acceptCrossed, | |||
bgaNum:resOPED.personalizedProcessData.bgaNum, | |||
bgaSize:resOPED.personalizedProcessData.bgaSize, | |||
imGoldThinckness:resOPED.pcbStandardProcessData.imGoldThinckness, | |||
impedanceReport:resOPED.personalizedProcessData.impedanceReport, | |||
// impedanceSize:resOPED.personalizedProcessData.impedanceSize, | |||
isImpedance:resOPED.personalizedProcessData.isImpedance, | |||
boardHoleNum:resOPED.pcbProductionProcessData.boardHoleNum, | |||
ipcLevel:resOPED.personalizedProcessData.ipcLevel, | |||
needReportList:resOPED.personalizedProcessData.needReportList.split(','), | |||
productFileSure:resOPED.personalizedProcessData.productFileSure, | |||
camEngineer:resOPED.personalizedProcessData.camEngineer, | |||
// aluminumType:resOPED.areaProcessData.aluminumType, | |||
withstandVoltage:resOPED.pcbStandardProcessData.withstandVoltage, | |||
formingType:resOPED.pcbStandardProcessData.formingType, | |||
routLength:resOPED.pcbProductionProcessData.routLength, | |||
beforePlating:resOPED.pcbStandardProcessData.beforePlating, | |||
changeItemNum:resOPED.pcbProductionProcessData.changeItemNum, | |||
changePeriod:resOPED.pcbProductionProcessData.changePeriod, | |||
imageTranster:resOPED.pcbStandardProcessData.imageTranster, | |||
utilizationRate:resOPED.pcbProductionProcessData.utilizationRate, | |||
solderTransfer:resOPED.pcbStandardProcessData.solderTransfer, | |||
wvTest:resOPED.pcbStandardProcessData.wvTest, | |||
// halfHole:resOPED.areaProcessData.halfHole, | |||
reportMaterial:resOPED.personalizedProcessData.reportMaterial, | |||
IsOutFactory:resOPED.pcbBaseData.isOutFactory, | |||
// Note:resOPED.orderDetail.note, | |||
Note:'', | |||
SpecialProcess:[], | |||
} | |||
//特殊工艺取类 | |||
let arrSpecial = []; | |||
for (let i in this.PcbProcessType){ | |||
let ppt = this.PcbProcessType[i]; | |||
if(ppt.isSpecial === 1){ | |||
arrSpecial.push(ppt); | |||
} | |||
} | |||
this.arrSpecialList = arrSpecial; | |||
let fmSP = []; | |||
for (let i in arrSpecial){ | |||
fmSP.push({typeName:arrSpecial[i].typeName,typeValue:''}); | |||
} | |||
for(let i in fmSP){ | |||
let rSP = resOPED.pcbSpecialProcessData; | |||
for (let rid in rSP){ | |||
if(fmSP[i].typeName==rSP[rid].typeName){ | |||
fmSP[i].typeValue = rSP[rid].typeValue; | |||
continue; | |||
} | |||
} | |||
} | |||
this.selSL = fmSP; | |||
this.ifEdit = true; | |||
}, | |||
upOrderEdit(){ | |||
let selSL = this.selSL; | |||
let selSLDB = {}; | |||
for (let i in selSL){ | |||
let ts = selSL[i]; | |||
if (ts.typeValue!='' && ts.typeValue!='0'){ | |||
selSLDB[ts.typeName] = ts.typeValue.toString(); | |||
// selSLDB.push(obj); | |||
} | |||
} | |||
this.formPQ.SpecialProcess = selSLDB; | |||
this.loadEdit = true; | |||
let params = {...this.formPQ} | |||
params.needReportList = params.needReportList.toString(); | |||
putOrderPcb(params).then(res=>{ | |||
this.$message.success('修改成功!'); | |||
this.ifEdit = false; | |||
this.loadEdit = false; | |||
this.getOrderDetail() | |||
}).catch(err=>{ | |||
this.loadEdit = false; | |||
}) | |||
}, | |||
//申请外发报价 | |||
async fnPcbOffer(){ | |||
this.loadOffer = true; | |||
try{ | |||
await OrderPcbOffer(this.orderId) | |||
this.$message.success('提交成功!'); | |||
}catch (e) { | |||
console.log(e); | |||
}finally { | |||
this.loadOffer = false; | |||
} | |||
}, | |||
//调整价格 | |||
fnAdjustAmount(){ | |||
this.$message.warning('emmm.. 暂不支持调价!'); | |||
}, | |||
//参数获取返回解析 | |||
resEditPP(key){ | |||
for (let i in this.PcbProcessType){ | |||
let ppt = this.PcbProcessType[i]; | |||
if(ppt.typeName==key){ | |||
let arr = ppt.processDataList.sort((a,b)=>a.dataValue - b.dataValue); | |||
return arr; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
td.t{color:#000} | |||
.ant-radio-button-wrapper.ant-radio-button-wrapper-checked{background-color:#f90; color:#fff} | |||
.ant-radio-button-wrapper{padding:0 10px;} | |||
</style> |
@@ -1,644 +0,0 @@ | |||
<template> | |||
<div class="boxMain"> | |||
<a-spin :spinning="loadPage"> | |||
<div class="boxFilter bn"> | |||
<bnOrderLogList :order-id="orderId" /> | |||
<a-button type="primary" :loading="loadBindList" @click="fnBeforeBindList">关联订单PCB/BOM</a-button> | |||
<a-button type="primary" v-if="ifEdit==false" @click="ifEdit=true">编辑</a-button> | |||
<a-button v-else @click="ifEdit=false">取消编辑</a-button> | |||
<a-button type="primary" :loading="loadSmtCheck" @click="fnShowOrderCheck(1)">审核</a-button> | |||
<a-button type="primary" :loading="loadSmtCheck2" @click="fnShowOrderCheck(2)">复审</a-button> | |||
<!-- <a-button type="primary" :loading="loadSmtSure" @click="fnSmtSure">确认订单</a-button>--> | |||
<a-button type="primary" :loading="loadSmtProduction" @click="fnSmtProduction">投产</a-button> | |||
<a-button type="primary" @click="showSmtApplyBack=true">申请打回</a-button> | |||
<bn-set-purchase-status :order-id="orderId" :order-status="orderStatus" :getList="getOrderDetail"/> | |||
<bnOrderCancel :order-id="orderId" /> | |||
</div> | |||
<template v-if="ifEdit"> | |||
<div class="titsc"><b>编辑SMT订单 ID:{{formEdit.orderId}}</b></div> | |||
<table class="tablesc"> | |||
<tr> | |||
<td class="t">生产数量</td><td class="n"><a-input v-model="formEdit.productNum" style="width:70px" /></td> | |||
<td class="t">单双面</td><td class="n"><a-input v-model="formEdit.layer" style="width:70px" /></td> | |||
<td class="t">物料种类</td><td class="n"><a-input v-model="formEdit.patchElementType" style="width:70px" /></td> | |||
<td class="t">贴片点数</td><td class="n"><a-input v-model="formEdit.patchElementPointNum" style="width:70px" /></td> | |||
</tr> | |||
<tr> | |||
<td class="t">插件点数</td><td class="n"><a-input v-model="formEdit.dipPointNum" style="width:70px" /></td> | |||
<td class="t">PCB高x长</td><td class="n"><a-input v-model="formEdit.pcbSizeX" style="width:70px" /> x <a-input v-model="formEdit.pcbSizeY" style="width:70px" /></td> | |||
<td class="t">Set中Pcs数</td><td class="n"><a-input v-model="formEdit.setPcsNum" style="width:70px" /></td> | |||
<td class="t">PCB供料方式</td> | |||
<td class="n"> | |||
<a-radio-group v-model="formEdit.productPCBType" button-style="solid"> | |||
<a-radio-button v-for="(item,index) in arrDB.productPCBType" :key="index" :value="item.v">{{item.t}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td class="t">BOM供料方式</td> | |||
<td class="n"> | |||
<a-radio-group v-model="formEdit.purchaseGoodsType" button-style="solid"> | |||
<a-radio-button v-for="(item,index) in arrDB.purchaseGoodsType" :key="index" :value="item.v">{{item.t}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
<td class="t">工艺要求</td> | |||
<td class="n"> | |||
<a-radio-group v-model="formEdit.hasLead" button-style="solid"> | |||
<a-radio-button v-for="(item,index) in arrDB.hasLead" :key="index" :value="item.v">{{item.t}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
<td class="t">锡膏</td> | |||
<td class="n"> | |||
<a-radio-group v-model="formEdit.solderPaste" button-style="solid"> | |||
<a-radio-button v-for="(item,index) in arrDB.solderPaste" :key="index" :value="item.v">{{item.t}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
<td class="t">PCBA出货品质</td> | |||
<td class="n"> | |||
<a-radio-group v-model="formEdit.isHighQuality" button-style="solid"> | |||
<a-radio-button v-for="(item,index) in arrDB.isHighQuality" :key="index" :value="item.v">{{item.t}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td class="t">一体化装配服务</td> | |||
<td class="n"> | |||
<a-radio-group v-model="formEdit.assemblyService" button-style="solid"> | |||
<a-radio-button v-for="(item,index) in arrDB.need" :key="index" :value="item.v">{{item.t}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
<td class="t">PCBA出货包装</td> | |||
<td class="n"> | |||
<a-radio-group v-model="formEdit.pcbaPackageType" button-style="solid"> | |||
<a-radio-button v-for="(item,index) in arrDB.pcbaPackageType" :key="index" :value="item.v">{{item.t}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
<td class="t">PCB拼版方式</td> | |||
<td class="n"> | |||
<a-radio-group v-model="formEdit.pcbIsPinban" button-style="solid"> | |||
<a-radio-button v-for="(item,index) in arrDB.pcbIsPinban" :key="index" :value="item.v">{{item.t}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
<td class="t">PCBA确认</td> | |||
<td class="n"> | |||
<a-radio-group v-model="formEdit.firstSure" button-style="solid"> | |||
<a-radio-button v-for="(item,index) in arrDB.need" :key="index" :value="item.v">{{item.t}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td class="t">项目名称</td><td class="n"><a-input v-model="formEdit.projectName"/></td> | |||
<td class="t">应用领域</td><td class="n"><a-input v-model="formEdit.applicationArea"/></td> | |||
<td class="t">PCB产品类别</td> | |||
<td class="n" colspan="3"> | |||
<a-radio-group v-model="formEdit.pcbProductType" button-style="solid"> | |||
<a-radio-button v-for="(item,index) in arrDB.pcbProductType" :key="index" :value="item.v">{{item.t}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td class="t">自定义编号1</td><td class="n"><a-input v-model="formEdit.autoField1"/></td> | |||
<td class="t">自定义编号2</td><td class="n"><a-input v-model="formEdit.autoField2"/></td> | |||
<td class="t">钢网随货发货</td> | |||
<td class="n" colspan="3"> | |||
<a-radio-group v-model="formEdit.isMergeDelivery" button-style="solid"> | |||
<a-radio-button v-for="(item,index) in arrDB.yesNo" :key="index" :value="item.v">{{item.t}}</a-radio-button> | |||
</a-radio-group> | |||
</td> | |||
</tr> | |||
</table> | |||
<div class="boxBn"><a-button @click="ifEdit=false">退出修改</a-button><a-button :loading="loadEdit" type="danger" @click="upOrderEdit">保存修改</a-button></div> | |||
</template> | |||
<template v-else> | |||
<div class="titsc"><b>基础信息</b></div> | |||
<table class="tablesc"> | |||
<tbody> | |||
<tr> | |||
<td class="t">订单号:</td><td class="n">{{detail.orderNo}}</td> | |||
<td class="t">订单状态:</td><td class="n">{{detail.orderPurchaseStatusValue}}</td> | |||
<td class="t">订单包:</td><td class="n">{{detail.packageNo}}</td> | |||
<td class="t">订单类型:</td><td class="n">{{detail.proType}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">订单类型名称:</td><td class="n">{{detail.proTypeValue}}</td> | |||
<td class="t">客编:</td><td class="n">{{detail.memberCode}}</td> | |||
<td class="t">业务员:</td><td class="n">{{detail.adminName}}</td> | |||
<td class="t">生产数量:</td><td class="n">{{detail.qty}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">浮动金额:</td><td class="n">{{detail.adjustmentAmount}}</td> | |||
<td class="t">折扣:</td><td class="n">{{detail.discount}}</td> | |||
<td class="t">优惠券金额:</td><td class="n">{{detail.couponAmount}}</td> | |||
<td class="t">销售价:</td><td class="n">{{detail.salePrice}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">运费:</td><td class="n">{{detail.shipAmount}}</td> | |||
<td class="t">调整运费:</td><td class="n">{{detail.adjustmentShipAmount}}</td> | |||
<td class="t">手续费:</td><td class="n">{{detail.serviceCharge}}</td> | |||
<td class="t">总金额:</td><td class="n">{{detail.totalAmount}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">实际支付金额:</td><td class="n">{{detail.payAmount}}</td> | |||
<td class="t">重量:</td><td class="n">{{detail.weight}}</td> | |||
<td class="t">物流方式:</td><td class="n">{{detail.shipType}}</td> | |||
<td class="t">交期天数:</td><td class="n">{{detail.deliveryDays}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">创建时间:</td><td class="n">{{formatDateTime(detail.creationTime)}}</td> | |||
<td class="t">下单时间:</td><td class="n">{{formatDateTime(detail.orderTime)}}</td> | |||
<td class="t">最后支付时间:</td><td class="n">{{formatDateTime(detail.payTime)}}</td> | |||
<td class="t">预计交货时间:</td><td class="n">{{formatDateTime(detail.deliveryDate)}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">发货时间:</td><td class="n">{{formatDateTime(detail.shipTime)}}</td> | |||
<td class="t">PCBA关联单号:</td><td class="n">{{detail.pcbaNo}}</td> | |||
<td class="t">复制单号:</td><td class="n">{{detail.copyOrderNo}}</td> | |||
<td class="t">返单号:</td><td class="n">{{detail.reOrderNo}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">原始单号:</td><td class="n">{{detail.rootOrderNo}}</td> | |||
<td class="t">订单备注:</td><td class="n" colspan="3">{{detail.note}}</td> | |||
<td class="t">附件列表:</td> | |||
<td class="n"> | |||
<ul class="listFiles"> | |||
<li v-for="(file,fid) in detail.files" :key="fid"><a :href="file.url" target="_blank"><a-icon type="link" /> {{file.name}}</a></li> | |||
</ul> | |||
</td> | |||
</tr> | |||
</tbody> | |||
</table> | |||
<div class="titsc"><b>贴片参数</b></div> | |||
<table class="tablesc"> | |||
<tbody> | |||
<tr> | |||
<td class="t">创建人:</td> | |||
<td class="n">{{smtDto.creatorId}}</td> | |||
<td class="t">租户:</td> | |||
<td class="n" colspan="5">{{smtDto.tenantId}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">套数:</td> | |||
<td class="n">{{smtDto.productNum}}</td> | |||
<td class="t">单双面:</td> | |||
<td class="n">{{smtDto.layer}}</td> | |||
<td class="t">物料种类:</td> | |||
<td class="n">{{smtDto.patchElementType}}</td> | |||
<td class="t">贴片点数:</td> | |||
<td class="n">{{smtDto.patchElementPointNum}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">插件点数:</td> | |||
<td class="n">{{smtDto.dipPointNum}}</td> | |||
<td class="t">宽x长:</td> | |||
<td class="n">{{smtDto.pcbSizeX}} x {{smtDto.pcbSizeY}}</td> | |||
<td class="t">Set中Pcs数:</td> | |||
<td class="n">{{smtDto.setPcsNum}}</td> | |||
<td class="t">PCB物料供料方式:</td> | |||
<td class="n">{{resArrays('productPCBType',smtDto.productPCBType)}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">BOM物料供料方式:</td> | |||
<td class="n">{{resArrays('purchaseGoodsType',smtDto.purchaseGoodsType)}}</td> | |||
<td class="t">工艺要求:</td> | |||
<td class="n">{{resArrays('hasLead',smtDto.hasLead)}}</td> | |||
<td class="t">锡膏:</td> | |||
<td class="n">{{resArrays('solderPaste',smtDto.solderPaste)}}</td> | |||
<td class="t">PCBA出货品质:</td> | |||
<td class="n">{{resArrays('isHighQuality',smtDto.isHighQuality)}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">一体化装配服务:</td> | |||
<td class="n">{{resArrays('need',smtDto.isHighQuality)}}</td> | |||
<td class="t">PCBA板出货包装:</td> | |||
<td class="n">{{resArrays('pcbaPackageType',smtDto.pcbaPackageType)}}</td> | |||
<td class="t">PCB拼版方式:</td> | |||
<td class="n">{{resArrays('pcbIsPinban',smtDto.pcbIsPinban)}}</td> | |||
<td class="t">PCBA确认:</td> | |||
<td class="n">{{resArrays('need',smtDto.isHighQuality)}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">项目名称:</td> | |||
<td class="n">{{smtDto.projectName}}</td> | |||
<td class="t">应用领域:</td> | |||
<td class="n">{{smtDto.applicationArea}}</td> | |||
<td class="t">PCB产品类别:</td> | |||
<td class="n">{{resArrays('pcbProductType',smtDto.pcbProductType)}}</td> | |||
<td class="t">自定义编号1 # 2:</td> | |||
<td class="n">{{smtDto.autoField1}} # {{smtDto.autoField2}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">供应商ID:</td> | |||
<td class="n">{{smtDto.supplyId}}</td> | |||
<td class="t">PCBA生产端客服:</td> | |||
<td class="n">{{smtDto.smtServiceName}}</td> | |||
<td class="t">修改贴片订单标识:</td> | |||
<td class="n">{{resArrays('hasUpdateSMT',smtDto.hasUpdateSMT)}}</td> | |||
<td class="t">修改贴片具体信息:</td> | |||
<td class="n">{{smtDto.updateSMTStr}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">钢网随货发货:</td> | |||
<td class="n">{{resArrays('yesNo',smtDto.isMergeDelivery)}}</td> | |||
<td class="t">样品图片:</td> | |||
<td class="n">{{smtDto.sampleImagePath}}</td> | |||
<td class="t">PCBA审核不通过原因:</td> | |||
<td class="n" colspan="3">{{smtDto.unPassReason}}</td> | |||
</tr> | |||
</tbody> | |||
</table> | |||
<div class="boxKH20"></div> | |||
<div class="titsc"><b>金额</b></div> | |||
<table class="tablesc" v-if="smtDto.orderSmtPriceDto"> | |||
<tbody> | |||
<tr> | |||
<td class="t">销售价:</td> | |||
<td class="n">{{detail.systemPrice}}</td> | |||
<td class="t">成本价:</td> | |||
<td class="n">{{detail.systemPrice}}</td> | |||
<td class="t">工程费:</td> | |||
<td class="n">{{smtDto.orderSmtPriceDto.layerMoney}}</td> | |||
<td class="t">BOM物料种类费用:</td> | |||
<td class="n">{{smtDto.orderSmtPriceDto.patchElementTypeMoney}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">PCBA贴片元件个数费用:</td> | |||
<td class="n">{{smtDto.orderSmtPriceDto.patchElementNumMoney}}</td> | |||
<td class="t">BGA数量费用:</td> | |||
<td class="n">{{smtDto.orderSmtPriceDto.bgaNumMoney}}</td> | |||
<td class="t">PCB拼版费用:</td> | |||
<td class="n">{{smtDto.orderSmtPriceDto.pcbPinbanMoney}}</td> | |||
<td class="t">其他费用:</td> | |||
<td class="n">{{smtDto.orderSmtPriceDto.otherMoney}}</td> | |||
</tr> | |||
<tr> | |||
<td class="t">插件费用:</td> | |||
<td class="n">{{smtDto.orderSmtPriceDto.dipMoney}}</td> | |||
<td class="t">测试费用:</td> | |||
<td class="n">{{smtDto.orderSmtPriceDto.testMoney}}</td> | |||
<td class="t">包装费用:</td> | |||
<td class="n">{{smtDto.orderSmtPriceDto.packageMoney}}</td> | |||
<td class="t">特殊工艺费:</td> | |||
<td class="n">{{smtDto.orderSmtPriceDto.specialCraftMoney}}</td> | |||
</tr> | |||
</tbody></table> | |||
<div class="boxKH20"></div> | |||
<div class="titsc"><b>特殊工艺信息</b></div> | |||
<a-table class="tablesa" :columns="tableSmtCraftDto" :data-source="smtDto.orderSmtCraftDto" :pagination="false" :rowKey="(record,index)=>{return index}"> | |||
<span slot="createTime" slot-scope="text">{{ formatDateTime(text) }}</span> | |||
</a-table> | |||
<div class="boxKH20"></div> | |||
<div class="titsc"><b>关联订单</b></div> | |||
<a-table class="tablesa" :columns="tableBindList" :data-source="smtDto.bindList" :rowKey="lists => lists.orderId" :pagination="false"> | |||
<span slot="proType" slot-scope="text">{{ getProTypes(text,'title') }}</span> | |||
<span slot="orderNo" slot-scope="text,record"> | |||
<router-link v-if="record.proType==1" :to="'/order/pcb/detail?id='+record.orderId"><a-icon type="link" /> {{text}}</router-link> | |||
<router-link v-if="record.proType==2" :to="'/order/bom/detail?id='+record.orderId"><a-icon type="link" /> {{text}}</router-link> | |||
</span> | |||
<span slot="createTime" slot-scope="text">{{formatDateTime(text)}}</span> | |||
</a-table> | |||
</template> | |||
<a-modal v-model="showBindList" title="添加 PCB/BOM" :confirm-loading="confirmLoading" :width="800" @ok="setBindSMT()"> | |||
<div class="boxShowSmtBindList"> | |||
<template v-for="(item,index) in listBindSmt"> | |||
<div :key="index" v-if="item.list.length>=1"> | |||
<p class="title"><b>{{ item.title }}</b></p> | |||
<a-table :columns="smtBindHead" :data-source="item.list" :scroll="{y:180}" :rowKey="(record,index)=>{return index}" :pagination="false" :rowSelection="{type:'radio',onChange:onSelectChange}" :locale="{emptyText:'No data'}"> | |||
<span slot="orderNo" slot-scope="text">{{ text }}</span> | |||
<span slot="qty" slot-scope="text,record">{{ text }} {{ record.proType==2?'line':'pcs' }}</span> | |||
<span slot="deliveryDays" slot-scope="text">Lead Time: {{ text }} days</span> | |||
<span slot="creationTime" slot-scope="text">{{ text }}</span> | |||
</a-table> | |||
</div> | |||
</template> | |||
</div> | |||
</a-modal> | |||
<a-modal title="申请打回" :width="800" :visible="showSmtApplyBack" :confirm-loading="confirmLoading" @ok="fnSmtApplyBack" @cancel="showSmtApplyBack = false"> | |||
<a-form-model v-model="formAB" v-bind="layout"> | |||
<a-form-model-item label="申请原因"> | |||
<a-radio-group v-model="formAB.applyType" button-style="solid"> | |||
<a-radio-button :value="1">补料打回</a-radio-button> | |||
<a-radio-button :value="2">订单打回</a-radio-button> | |||
</a-radio-group> | |||
</a-form-model-item> | |||
<a-form-model-item label="申请原因"> | |||
<a-textarea v-model="formAB.applyReason" placeholder="申请原因" :auto-size="{ minRows: 3, maxRows: 5 }" /> | |||
</a-form-model-item> | |||
<a-form-model-item label="上传文件地址"> | |||
<a-spin :spinning="loadUp"> | |||
<a-input-group compact> | |||
<a-upload name="file" :showUploadList="false" :customRequest="(file)=>{fnToOssUpfile(file,'gerber')}" accept=".zip,.rar,.jpg,.png,.gif"> | |||
<a-button type="primary"><a-icon type="upload" /> 上传文件</a-button> | |||
</a-upload> | |||
</a-input-group> | |||
</a-spin> | |||
<ul class="listFiles"> | |||
<li v-for="(file,fid) in upFilesAB" :key="fid"><a-icon type="delete" @click="delUpFiles(fid)" /> <a :href="file" target="_blank"><a-icon type="link" /> {{file}}</a></li> | |||
</ul> | |||
</a-form-model-item> | |||
</a-form-model> | |||
</a-modal> | |||
</a-spin> | |||
<a-modal :title="formOrderCheck.OCType===1?'审核订单':'复审订单'" :visible="showOrderCheck" :confirm-loading="confirmSubmit" @ok="fnSmtCheck" @cancel="showOrderCheck=false"> | |||
<a-form-model v-model="formOrderCheck" v-bind="layout"> | |||
<a-form-model-item label="审核操作"> | |||
<a-radio-group v-model="formOrderCheck.isPass"> | |||
<a-radio :value="1">审核通过</a-radio> | |||
<!-- <a-radio :value="0">审核不通过驳回</a-radio>--> | |||
</a-radio-group> | |||
</a-form-model-item> | |||
<!-- <a-form-model-item label="备注"><a-textarea v-model="formOrderCheck.remark" placeholder="" :rows="3" /></a-form-model-item>--> | |||
</a-form-model> | |||
</a-modal> | |||
</div> | |||
</template> | |||
<script> | |||
import { | |||
OrderSmtBind, | |||
OrderSmtBindList, | |||
OrderSmtDetail, | |||
OrderSmtSure, | |||
OrderSmtCheck, | |||
OrderSmtProduction, | |||
OrderSmtApplyBack, OrderSmtEdit, | |||
} from '@/services/order/Order'; | |||
import {formatDate, resProTypes} from '@/services/Common'; | |||
import bnOrderLogList from "@/pages/Common/bnOrderLogList"; | |||
import bnOrderCancel from "@/pages/Common/bnOrderCancel"; | |||
import bnSetPurchaseStatus from "@/pages/Common/bnSetPurchaseStatus"; | |||
import {upFileToOSS} from "@/services/uploadFile"; | |||
import BnSetPurchaseStatus from "@/pages/Common/bnSetPurchaseStatus"; | |||
export default { | |||
name: 'SmtDetail', | |||
components: {BnSetPurchaseStatus, bnOrderLogList,bnOrderCancel}, | |||
data(){ | |||
return{ | |||
loadPage:true,loadBindList:false,showBindList:false,loadSmtSure:false,loadSmtCheck:false,loadSmtCheck2:false,loadSmtProduction:false,confirmLoading:false,showSmtApplyBack:false,loadUp:false,ifEdit:false,loadEdit:false, | |||
orderId:'',detail: {},smtDto:{},listBindSmt:[],listProType:resProTypes(), | |||
tableSmtCraftDto:[ | |||
{title: '特殊工艺类别',dataIndex: 'craftType',key: 'craftType',}, | |||
{title: '特殊工艺项目名称',dataIndex: 'craftName',key: 'craftName',}, | |||
{title: '特殊工艺对应值',dataIndex: 'quantity',key: 'quantity',}, | |||
{title: '特殊工艺对应金额',dataIndex: 'amount',key: 'amount',}, | |||
{title: '创建时间',dataIndex: 'createTime',key: 'createTime',scopedSlots: { customRender: 'createTime' }}, | |||
{title: '是否客选',dataIndex: 'isUserSelect',key: 'isUserSelect',}, | |||
], | |||
formOrderCheck:{orderId:'',isPass:1,remark:'',OCType:''},showOrderCheck:false,confirmSubmit:false, | |||
upFilesAB:[],orderStatus:0,orderStatusValue:'', | |||
formAB:{orderId:'',applyType:1,applyReason:'',businessImages:''}, | |||
arrDB:{ | |||
productPCBType:[{v:1,t:'代工'},{v:2,t:'客供'}], | |||
purchaseGoodsType:[{v:1,t:'代购'},{v:2,t:'客供'},{v:3,t:'部分代购'}], | |||
hasLead:[{v:0,t:'无铅'},{v:1,t:'有铅'}], | |||
solderPaste:[{v:0,t:'国产千住'},{v:1,t:'日本千住'}], | |||
isHighQuality:[{v:1,t:'标品'},{v:2,t:'优品'}], | |||
need:[{v:0,t:'不需要'},{v:1,t:'需要'}], | |||
yesNo:[{v:0,t:'否'},{v:1,t:'是'}], | |||
pcbaPackageType:[{v:1,t:'泡泡袋包装'},{v:2,t:'屏蔽袋包装'}], | |||
pcbIsPinban:[{v:0,t:'无拼版'},{v:1,t:'有拼版'}], | |||
pcbProductType:[{v:0,t:'PCB硬板'},{v:1,t:'PCB软板'},{v:2,t:'软硬'}], | |||
hasUpdateSMT: [{v:0,t:'无'},{v:1,t:'无修改'},{v:2,t:'修改过'}], | |||
}, | |||
formEdit:{ | |||
// id:'',orderId:'', | |||
// productNum:'', | |||
// layer:'', | |||
// patchElementType:'', | |||
// patchElementPointNum:'', | |||
// dipPointNum:'', | |||
// pcbSizeX:'', | |||
// pcbSizeY:'', | |||
// setPcsNum:'', | |||
// productPCBType:'', | |||
// purchaseGoodsType:'', | |||
// hasLead:'', | |||
// solderPaste:'', | |||
// isHighQuality:'', | |||
// assemblyService:'', | |||
// pcbaPackageType:'', | |||
// pcbIsPinban:'', | |||
// firstSure:'', | |||
// projectName:'', | |||
// applicationArea:'', | |||
// pcbProductType:'', | |||
// autoField1:'', | |||
// autoField2:'', | |||
// isMergeDelivery:'', | |||
}, | |||
tableBindList:[ | |||
{title: '订单类型',width:'100px',dataIndex: 'proType',key: 'proType',scopedSlots: { customRender: 'proType' }}, | |||
{title: '订单编号',width:'260px',dataIndex: 'orderNo',key: 'orderNo',scopedSlots: { customRender: 'orderNo' }}, | |||
{title: '套数',dataIndex: 'qty',key: 'qty',}, | |||
{title: '创建时间',dataIndex: 'creationTime',key: 'creationTime',scopedSlots: { customRender: 'createTime' }}, | |||
{title: '交期天数',dataIndex: 'deliveryDays',key: 'deliveryDays'}, | |||
], | |||
smtBindHead:[ | |||
{title:'订单编号',width:'35%',dataIndex:'orderNo',key:'orderNo',scopedSlots: { customRender: 'orderNo' },}, | |||
{title:'套数',width:'15%',dataIndex:'qty',key:'qty',scopedSlots: { customRender: 'qty' },}, | |||
{title:'交期天数',dataIndex:'deliveryDays',key:'deliveryDays',scopedSlots: { customRender: 'deliveryDays' },}, | |||
{title:'创建时间',dataIndex:'creationTime2',key:'creationTime2'}, | |||
], | |||
layout: { | |||
labelCol: { span:5 }, | |||
wrapperCol: { span:17 }, | |||
}, | |||
} | |||
}, | |||
mounted() { | |||
this.orderId = this.$route.query.id; | |||
this.getOrderDetail(); | |||
}, | |||
methods:{ | |||
async getOrderDetail(){ | |||
this.loadPage = true; | |||
let res = await OrderSmtDetail(this.orderId); | |||
this.orderStatus = res.orderDetailDto.orderPurchaseStatus; | |||
this.orderStatusValue = res.orderDetailDto.orderPurchaseStatusValue; | |||
this.detail = res.orderDetailDto; | |||
this.smtDto = res.orderSmtDto; | |||
this.loadPage = false; | |||
this.formEdit={ | |||
id:res.orderSmtDto.id, | |||
orderId:res.orderSmtDto.orderId, | |||
productNum:res.orderSmtDto.productNum, | |||
layer:res.orderSmtDto.layer, | |||
patchElementType:res.orderSmtDto.patchElementType, | |||
patchElementPointNum:res.orderSmtDto.patchElementPointNum, | |||
dipPointNum:res.orderSmtDto.dipPointNum, | |||
pcbSizeX:res.orderSmtDto.pcbSizeX, | |||
pcbSizeY:res.orderSmtDto.pcbSizeY, | |||
setPcsNum:res.orderSmtDto.setPcsNum, | |||
productPCBType:res.orderSmtDto.productPCBType, | |||
purchaseGoodsType:res.orderSmtDto.purchaseGoodsType, | |||
hasLead:res.orderSmtDto.hasLead, | |||
solderPaste:res.orderSmtDto.solderPaste, | |||
isHighQuality:res.orderSmtDto.isHighQuality, | |||
assemblyService:res.orderSmtDto.assemblyService, | |||
pcbaPackageType:res.orderSmtDto.pcbaPackageType, | |||
pcbIsPinban:res.orderSmtDto.pcbIsPinban, | |||
firstSure:res.orderSmtDto.firstSure, | |||
projectName:res.orderSmtDto.projectName, | |||
applicationArea:res.orderSmtDto.applicationArea, | |||
pcbProductType:res.orderSmtDto.pcbProductType, | |||
autoField1:res.orderSmtDto.autoField1, | |||
autoField2:res.orderSmtDto.autoField2, | |||
isMergeDelivery:res.orderSmtDto.isMergeDelivery, | |||
} | |||
}, | |||
//SMT确认 | |||
fnSmtSure(){ | |||
this.loadSmtSure = true; | |||
OrderSmtSure(this.orderId).then(res=>{ | |||
this.$message.success('确认成功!'); | |||
this.getOrderDetail(); | |||
this.loadSmtSure = false; | |||
}).catch(err=>{ | |||
this.loadSmtSure = false; | |||
}) | |||
}, | |||
//SMT投产 | |||
fnSmtProduction(){ | |||
this.loadSmtProduction = true; | |||
OrderSmtProduction(this.orderId).then(res=>{ | |||
this.$message.success('确认成功!'); | |||
this.getOrderDetail(); | |||
this.showSmtApplyBack = false; | |||
this.loadSmtProduction = false; | |||
}).catch(err=>{ | |||
this.loadSmtProduction = false; | |||
}) | |||
}, | |||
//SMT申请打回 | |||
fnSmtApplyBack(){ | |||
this.confirmLoading = true; | |||
this.formAB.orderId = this.orderId; | |||
this.formAB.businessImages = this.upFilesAB.toString() | |||
OrderSmtApplyBack(this.formAB).then(res=>{ | |||
this.$message.success('申请成功!'); | |||
this.getOrderDetail(); | |||
this.confirmLoading = false; | |||
}).catch(err=>{ | |||
this.confirmLoading = false; | |||
}) | |||
}, | |||
//SMT编辑 | |||
upOrderEdit(){ | |||
this.loadEdit = true; | |||
OrderSmtEdit(this.formEdit).then(res=>{ | |||
this.$message.success('修改成功!'); | |||
this.ifEdit = false; | |||
this.loadEdit = false; | |||
this.getOrderDetail(); | |||
}).catch(err=>{ | |||
this.loadEdit = false; | |||
}) | |||
}, | |||
fnShowOrderCheck(key){ | |||
this.formOrderCheck.OCType = key; | |||
this.showOrderCheck = true; | |||
}, | |||
//SMT审核 | |||
fnSmtCheck(){ | |||
this.formOrderCheck.OCType===1?this.loadSmtCheck = true:this.loadSmtCheck2 = true; | |||
this.formOrderCheck.orderId = this.orderId; | |||
OrderSmtCheck(this.formOrderCheck).then(res=>{ | |||
this.$message.success('审核成功!'); | |||
this.getOrderDetail(); | |||
}).catch(err=>{ | |||
console.log(err) | |||
}).finally(res=>{ | |||
this.loadSmtCheck = false; | |||
this.loadSmtCheck2 = false; | |||
this.showOrderCheck = false; | |||
}) | |||
}, | |||
//获取关联订单 | |||
async fnBeforeBindList(){ | |||
this.loadBindList = true; | |||
let res = await OrderSmtBindList({orderId:this.orderId}); | |||
for (let i in this.listProType){ | |||
let type = this.listProType[i]; | |||
let resli = []; | |||
for (let bid in res){ | |||
if(type.proType == res[bid].proType){ | |||
resli.push(res[bid]); | |||
} | |||
} | |||
this.listBindSmt[i] ={title:type.title,list:resli,bindOrderId:'',proType:type.proType}; | |||
} | |||
this.showBindList = true; | |||
this.loadBindList = false; | |||
}, | |||
//勾选绑定赋值 | |||
onSelectChange(index,arr) { | |||
arr = arr[0]; | |||
for (let i in this.listBindSmt){ | |||
let liBS = this.listBindSmt[i]; | |||
if(liBS.proType == arr.proType){ | |||
liBS.bindOrderId = arr.orderId; | |||
} | |||
} | |||
}, | |||
//提交SMT绑定 | |||
setBindSMT(){ | |||
let bindID = []; | |||
for (let i in this.listBindSmt){ | |||
if(this.listBindSmt[i].bindOrderId){ | |||
bindID = bindID.concat(this.listBindSmt[i].bindOrderId); | |||
} | |||
} | |||
if(bindID.length<=0){ | |||
this.$message.warning('Please Choose PCB/BOM Order'); | |||
return false; | |||
} | |||
this.confirmLoading = true; | |||
let params = { | |||
SmtOrderId:this.orderId, | |||
bindOrderIds:bindID.toString() | |||
} | |||
console.log(params) | |||
OrderSmtBind(params).then(res=>{ | |||
this.getOrderDetail(); | |||
this.showBindSMT = false; | |||
this.confirmLoading = false; | |||
}).catch(err=>{ | |||
this.confirmLoading = false; | |||
}) | |||
}, | |||
//上传OSS | |||
async fnToOssUpfile(file){ | |||
this.loadUp = true; | |||
let resUpInfo = await upFileToOSS(file); | |||
if(resUpInfo.url){ | |||
this.upFilesAB.push(resUpInfo.url); | |||
this.$message.success('文件上传成功!'); | |||
} | |||
this.loadUp = false; | |||
}, | |||
delUpFiles(i){ | |||
this.upFilesAB.splice(i,1); | |||
}, | |||
formatDateTime(time){ | |||
return formatDate(time,'yyyy-MM-dd hh:mm'); | |||
}, | |||
getProTypes(id,key){ | |||
return resProTypes(id)[key]; | |||
}, | |||
resArrays(arrName,key){ | |||
let arr = this.arrDB[arrName]; | |||
for (let i in arr){ | |||
let ts = arr[i]; | |||
if (ts.v==key) return ts.t; | |||
} | |||
}, | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
/deep/ .ant-table-header{background-color:#f5f5f5} | |||
/deep/ .ant-table-thead>tr>th{background-color:#f5f5f5; padding:5px} | |||
/deep/ .ant-table-tbody>tr>td{padding:5px} | |||
/deep/ .ant-radio-inner::after{display: inline-block} | |||
.ant-form .listFiles li{padding:1em 0 0} | |||
</style> |
@@ -108,14 +108,13 @@ export default { | |||
newRoles(this.formNA).then(res=>{ | |||
if(res.id) { | |||
this.$message.success(this.altTitNE?'角色添加成功!':'编辑修改成功!'); | |||
this.filterSearch(); | |||
// this.$refs['formNA'].resetFields(); | |||
this.formNA={name:'',isDefault:false,isPublic:false}; | |||
// this.formNA={name:'',isDefault:false,isPublic:false}; | |||
} | |||
this.showNA = false; | |||
}).finally(()=>{ | |||
this.confirmLoad = false; | |||
}).catch(err=>{ | |||
this.confirmLoad = false; | |||
this.filterSearch(); | |||
}); | |||
}, | |||
//权限分配 | |||
@@ -230,13 +229,18 @@ export default { | |||
// console.log(this.listInput) | |||
if(typeof(page)=='object'){ | |||
this.pagination.current = page.current; | |||
}else if (typeof (page) == 'number'){ | |||
this.pagination.current = page; | |||
} | |||
let count = (this.pagination.current-1)*this.pagination.pageSize; | |||
let params={ | |||
filter:this.listInput[0].value, | |||
skipCount:count, | |||
maxResultCount:this.pagination.pageSize, | |||
} | |||
for (let i in this.listInput){ | |||
let ts = this.listInput[i]; | |||
if (ts.value!=='') params[ts.name] = ts.value; | |||
} | |||
// console.log(params) | |||
this.fetch(params); | |||
}, | |||
@@ -57,49 +57,71 @@ const options = { | |||
}, | |||
{ | |||
path: 'order', | |||
name: '订单', | |||
meta: {icon: 'icon-xiangmu'}, | |||
name: '订单管理', | |||
meta: {icon: 'icon-xiangmu',type: 'link',}, | |||
redirect: '/order/list', | |||
component: BlankView, | |||
// component: () => import('@/pages/agent/list'), | |||
children: [ | |||
{ | |||
path: 'pcb/', | |||
name: 'PCB订单管理', | |||
meta: {icon: 'profile'}, | |||
component: () => import('@/pages/order/OrderList'), | |||
}, | |||
{ | |||
path: 'pcb/detail', | |||
name: 'Pcb订单详情', | |||
meta: {invisible: true}, | |||
component: () => import('@/pages/order/pcbOrder/PcbDetail'), | |||
}, | |||
{ | |||
path: 'smt/', | |||
name: 'SMT订单管理', | |||
meta: {icon: 'profile'}, | |||
component: () => import('@/pages/order/OrderList'), | |||
}, | |||
{ | |||
path: 'smt/detail', | |||
name: 'SMT订单详情', | |||
meta: {invisible: true}, | |||
component: () => import('@/pages/order/smtOrder/SmtDetail'), | |||
}, | |||
{ | |||
path: 'bom/', | |||
name: 'BOM订单管理', | |||
meta: {icon: 'profile'}, | |||
component: () => import('@/pages/order/OrderList'), | |||
path: 'list', | |||
name: '订单列表', | |||
// meta: {invisible: true}, | |||
component: () => import('@/pages/order/list'), | |||
}, | |||
{ | |||
path: 'bom/detail', | |||
name: 'BOM订单详情', | |||
meta: {invisible: true}, | |||
component: () => import('@/pages/order/bomOrder/BomDetail'), | |||
path: 'detail', | |||
name: '订单详情', | |||
// meta: {invisible: true}, | |||
component: () => import('@/pages/order/detail'), | |||
}, | |||
], | |||
] | |||
}, | |||
// { | |||
// path: 'order', | |||
// name: '订单', | |||
// meta: {icon: 'icon-xiangmu'}, | |||
// component: BlankView, | |||
// children: [ | |||
// { | |||
// path: 'pcb/', | |||
// name: 'PCB订单管理', | |||
// meta: {icon: 'profile'}, | |||
// component: () => import('@/pages/order/OrderList'), | |||
// }, | |||
// { | |||
// path: 'pcb/detail', | |||
// name: 'Pcb订单详情', | |||
// meta: {invisible: true}, | |||
// component: () => import('@/pages/order/pcbOrder/PcbDetail'), | |||
// }, | |||
// { | |||
// path: 'smt/', | |||
// name: 'SMT订单管理', | |||
// meta: {icon: 'profile'}, | |||
// component: () => import('@/pages/order/OrderList'), | |||
// }, | |||
// { | |||
// path: 'smt/detail', | |||
// name: 'SMT订单详情', | |||
// meta: {invisible: true}, | |||
// component: () => import('@/pages/order/smtOrder/SmtDetail'), | |||
// }, | |||
// { | |||
// path: 'bom/', | |||
// name: 'BOM订单管理', | |||
// meta: {icon: 'profile'}, | |||
// component: () => import('@/pages/order/OrderList'), | |||
// }, | |||
// { | |||
// path: 'bom/detail', | |||
// name: 'BOM订单详情', | |||
// meta: {invisible: true}, | |||
// component: () => import('@/pages/order/bomOrder/BomDetail'), | |||
// }, | |||
// ], | |||
// }, | |||
// { | |||
// path: 'delivery', | |||
// name: '单证物流', | |||
// meta: {icon: 'icon-DCC'}, | |||
@@ -58,31 +58,44 @@ function padLeftZero (str) { | |||
return ('00' + str).substr(str.length); | |||
} | |||
//返回订单状态 | |||
export function resOrderStatus(status,key){ | |||
let list = [ | |||
{value:'-10',text:'取消',en:'Cancelled'}, | |||
{value:'0',text:'待审核',en:'Audit'}, | |||
{value:'10',text:'审核中',en:'Auditing'}, | |||
{value:'20',text:'审核不通过',en:'Audit Failed'}, | |||
{value:'30',text:'审核通过',en:'Pass'}, | |||
{value:'35',text:'复审中',en:'Auditing'}, | |||
{value:'40',text:'复审不通过',en:'Audit Failed'}, | |||
{value:'50',text:'复审通过',en:'Pass'}, | |||
{value:'60',text:'待付款',en:'Pending Payment'}, | |||
{value:'65',text:'待投产',en:'Pending Production'}, | |||
{value:'70',text:'生产中',en:'In Production'}, | |||
{value:'80',text:'待发货',en:'Pending Delivery'}, | |||
{value:'90',text:'已发货',en:'Shipped'}, | |||
{value:'100',text:'交易完成',en:'Completed'}, | |||
] | |||
if(typeof status=='number'){ | |||
//返回选择/解析 | |||
//订单类型:orderType | |||
//订单状态:orderStatus | |||
//解析状态:parseStatue | |||
export function resSelects(type='',val=''){ | |||
// console.log(type,val) | |||
let list = []; | |||
if (type==='orderType'){ | |||
list = [ | |||
{value:'1',text:'打样'}, | |||
{value:'2',text:'批量'}, | |||
] | |||
} | |||
else if (type==='orderStatus'){ | |||
list = [ | |||
{value:'0',text:'待审核'}, | |||
{value:'1',text:'审核中'}, | |||
{value:'2',text:'审核通过'}, | |||
{value:'3',text:'审核不通过'}, | |||
{value:'4',text:'订单取消'}, | |||
] | |||
} | |||
else if (type==='parseStatue'){ | |||
list = [ | |||
{value:'0',text:'带解析'}, | |||
{value:'1',text:'锁定中'}, | |||
{value:'2',text:'解析成功'}, | |||
{value:'3',text:'解析失败'}, | |||
] | |||
} | |||
else return false; | |||
//返回内容 | |||
if(val!=='' && typeof val=='number'){ | |||
for(let i in list){ | |||
if (status== list[i].value) return list[i]; | |||
if (val.toString() === list[i].value) return list[i].text; | |||
} | |||
}else{ | |||
return list; | |||
} | |||
else return list; | |||
} | |||
//邮箱地址 | |||
@@ -19,8 +19,8 @@ export function delRoles(id) { | |||
//新增角色 | |||
export function newRoles(params) { | |||
return new Promise((resolve, reject) => { | |||
if(params.id){ | |||
requestApi('/api/identity/roles/'+params.id, METHOD.PUT, params).then(res => {resolve(res);}).catch(err=>{reject(err);}) | |||
if(params.Id){ | |||
requestApi('/api/identity/roles/'+params.Id, METHOD.PUT, params).then(res => {resolve(res);}).catch(err=>{reject(err);}) | |||
}else { | |||
requestApi('/api/identity/roles/', METHOD.POST, params).then(res => {resolve(res);}).catch(err=>{reject(err);}) | |||
} | |||
@@ -26,8 +26,8 @@ const resp401 = { | |||
if (error.response && error.response.status == 401) { | |||
message.error('认证 token 已过期,请重新登录'); | |||
Cookie.remove(xsrfHeaderName); | |||
//router.push('/login'); | |||
router.push('/loginOA'); | |||
router.push('/loginjmp'); | |||
// router.push('/loginOA'); | |||
return Promise.reject(error); | |||
} | |||
let msg = ''; | |||