<template>
|
<div class="quality">
|
<div class="filter">
|
<div class="filter-card">
|
<CommonSearch
|
:show-add="false"
|
:show-download="false"
|
:amount-view="false"
|
:show-action-btn="false"
|
:placeholder="'请输入供应商/物料/采购单等'"
|
@searchClick="onFilterSearch"
|
/>
|
</div>
|
</div>
|
|
<div class="body">
|
<div class="body-card">
|
<div class="list-view">
|
<TableCommonView
|
class="content-table"
|
ref="tableListRef"
|
:table-list="tableList"
|
@selCommonClick="selCommonClick"
|
@selTableCol="selTableCol"
|
>
|
<template slot="tableButton">
|
<el-table-column align="center" label="状态" width="120">
|
<template slot-scope="scope">
|
{{ getQualityStatus(scope.row.member_name) }}
|
</template>
|
</el-table-column>
|
<el-table-column align="center" label="操作" width="120" fixed="right">
|
<template slot-scope="scope">
|
<el-button @click="qualityClick(scope.row)" type="text" size="small">去质检</el-button>
|
</template>
|
</el-table-column>
|
</template>
|
</TableCommonView>
|
</div>
|
<div class="btn-pager">
|
<PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
|
</div>
|
</div>
|
</div>
|
|
<!-- 新建/编辑销售线索 -->
|
<!-- <AddSalesLeadDialog v-if="editSalesLeadConfig.visible" :edit-rightContent-config="editSalesLeadConfig" /> -->
|
<!-- 详情 -->
|
<DetailSupplier v-if="commonDetail.visible" :common-detail="commonDetail" @qualityClick="qualityClick" />
|
</div>
|
</template>
|
|
<script>
|
import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
|
import {
|
qualityInspectList,getPurchaseInfo,submitPurchase,
|
} from "@/api/purchaseManage/purchase";
|
import DetailSupplier from "@/views/purchaseManage/quality/DetailSupplier"
|
import { getDataByType } from "@/api/data";
|
export default {
|
name: "SupplierManage",
|
props: {},
|
components: { DetailSupplier },
|
mixins: [pageMixin],
|
computed: {},
|
data() {
|
return {
|
tableList: {}, // 列表
|
selValueList: [],
|
commonDetail: {
|
visible: false,
|
infomation: {}
|
},
|
search: {},
|
qualityStatusList:getDataByType('qualityStatus'),
|
tableColumn: [
|
{ label: "质检单编号", prop: "number", min: 190, isCommonClick: true,default:true },
|
{ label: "采购单编号", prop: "name", min: 130, isCommonClick: true },
|
{ label: "单据类型", prop: "contact_name", min: 130 },
|
{ label: "供应商名称", prop: "contact_phone", min: 130 },
|
{ label: "到货仓库", prop: "sales_resources", min: 130 },
|
{ label: "质检数量", prop: "province", min: 130 },
|
{ label: "检验员", prop: "city", min: 130 },
|
// { label: "状态", prop: "member_name", min: 110 },
|
{ label: "质检时间", prop: "member_name", min: 150 },
|
],
|
showCol: ['质检单编号', '采购单编号', '单据类型', '供应商名称', '到货仓库', '质检数量', '检验员', '质检时间']
|
}
|
},
|
created() {
|
this.setTable()
|
this.getData()
|
},
|
methods: {
|
getQualityStatus(val) {
|
if (val) {
|
for (let i in this.qualityStatusList) {
|
if (this.qualityStatusList[i].id == val) {
|
return this.qualityStatusList[i].name;
|
}
|
}
|
} else {
|
return "--";
|
}
|
},
|
setColumnVisible(showCol){
|
return this.tableColumn.map(ele=>{
|
return {
|
...ele,
|
isShowColumn:showCol.includes(ele.label)
|
}
|
})
|
},
|
setTable() {
|
this.tableList = {
|
tableInfomation: [],
|
selectIndex: true,
|
showcol: this.showCol,
|
allcol: [],
|
tableColumn:this.setColumnVisible(this.showCol)
|
}
|
this.tableList.allcol = this.tableList.tableColumn.filter(ele=>!ele.default).map(ele=>ele.label);
|
},
|
selTableCol(val) {
|
this.showcol = val;
|
this.tableList.tableColumn = this.setColumnVisible(val);
|
},
|
// 请求数据
|
async getData() {
|
|
await qualityInspectList({
|
keyword: this.search,
|
page: this.pagerOptions.currPage,
|
pageSize: this.pagerOptions.pageSize
|
})
|
.then((res) => {
|
const list = res.data.data.list
|
this.tableList.tableInfomation = list || []
|
this.pagerOptions.totalCount = res.data.data.total
|
})
|
.catch((err) => {
|
console.log(err)
|
})
|
},
|
// 搜索
|
searchClick(val, content) {
|
console.log(val, content)
|
this.search = content
|
this.getData()
|
},
|
resetClick() {
|
this.search = ''
|
this.getData()
|
},
|
onFilterSearch(searchText){
|
this.search = searchText ?? ''
|
this.getData()
|
},
|
|
// 确认发货
|
qualityClick() {
|
this.$confirm("是否质检?", "提示", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning"
|
})
|
.then(() => {
|
console.log("dddd")
|
submitPurchase({ ids: this.selValueList }).then((response) => {
|
if (response.code === 200) {
|
this.$message.success("确认发货成功")
|
this.getData()
|
} else {
|
this.$message.warning("确认发货失败")
|
}
|
})
|
})
|
.catch(() => {})
|
},
|
|
// 详情
|
selCommonClick(row) {
|
console.log(row)
|
getPurchaseInfo({id:row.ID}).then((res) => {
|
if (res.code == 200) {
|
this.commonDetail.visible = true
|
this.commonDetail.infomation = {
|
productList:res.data.productList,
|
...res.data.purchase
|
}
|
}else{
|
this.$message.error(res.msg?res.msg+',':''+'获取信息失败!')
|
}
|
})
|
}
|
}
|
}
|
</script>
|
|
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
<style lang="scss" scoped>
|
//.rightContent {
|
// width:100%;
|
// height:calc(100% - 10px);
|
// .content-box {
|
// height:100%;
|
// .supplier-search {
|
// display: flex;
|
// align-items: center;
|
// .add-view {
|
// margin-left: auto;
|
// margin-right: 20px;
|
// }
|
// }
|
// .content-table{
|
// // height:calc(100% - 60px - 42px);
|
// }
|
// .btn-pager {
|
// display: flex;
|
// .page {
|
// margin-left: auto;
|
// }
|
// }
|
// }
|
// .bottom {
|
// .product-search {
|
// display: flex;
|
// align-items: center;
|
// .search {
|
// margin-left: auto;
|
// }
|
// .add-view {
|
// margin-left: 20px;
|
// margin-right: 20px;
|
// }
|
// }
|
// .btn-pager {
|
// display: flex;
|
// .page {
|
// margin-left: auto;
|
// }
|
// }
|
// }
|
//}
|
|
|
.quality{
|
height: 100%;
|
overflow: hidden;
|
.filter{
|
height: 80px;
|
display: flex;
|
align-items: center;
|
padding: 12px 20px 0 20px;
|
&-card{
|
height: 80px;
|
display: flex;
|
align-items: center;
|
box-sizing: border-box;
|
padding: 10px 20px;
|
flex: 1;
|
border-radius: 12px;
|
background-color: #fff;
|
}
|
}
|
.body{
|
box-sizing: border-box;
|
padding: 10px 20px;
|
border-radius: 12px;
|
height: calc(100% - 92px);
|
.body-card {
|
background-color: #fff;
|
border-radius: 12px;
|
height: 100%;
|
overflow: hidden;
|
}
|
|
.supplier-search {
|
display: flex;
|
align-items: center;
|
.add-view {
|
margin-left: auto;
|
margin-right: 20px;
|
}
|
}
|
.list-view {
|
height: calc(100% - 60px);
|
overflow: hidden;
|
}
|
.btn-pager {
|
display: flex;
|
.page {
|
margin-left: auto;
|
}
|
}
|
}
|
}
|
</style>
|