<template>
|
<div style="width: 100%">
|
<div style="margin: 0px 10px;height: 70px;background-color: #FFFFFF;">
|
<div style="display:flex;align-items:center;height:100%;">
|
<div>
|
<el-button
|
type="primary"
|
style="margin-left:25px;"
|
@click="openConditionQueryDialog"
|
>查询IFS车间订单申请</el-button
|
>
|
<el-button
|
type="success"
|
style="margin-left:25px;"
|
@click="jumpToCreateManufacturingorder"
|
>创建车间订单</el-button
|
>
|
</div>
|
</div>
|
</div>
|
<div style="height: 10px;"></div>
|
<div style="margin: 0px 10px 0px;background:#fff;padding-top:20px ;">
|
<div style="margin: 0px 20px 0px;">
|
<el-table
|
class="manufacturingorder-apply-table"
|
:data="tableData"
|
style="width: 100%;"
|
v-adaptive="{ bottomOffset: 20, fixedHeight: 0 }"
|
height="100px"
|
border
|
highlight-current-row
|
@current-change="handleCurrentChange"
|
stripe
|
ref="manufacturingorderApplyTable"
|
>
|
<el-table-column align="center" width="55" label="单选">
|
<template slot-scope="scope">
|
<el-checkbox
|
class="manufacturingorder-apply-table-single-checkbox"
|
v-model="scope.row.commonChecked"
|
disabled
|
></el-checkbox>
|
</template>
|
</el-table-column>
|
<el-table-column type="index" width="50" label="序号" align="center">
|
</el-table-column>
|
<el-table-column
|
prop="proposalNo"
|
label="车间订单申请号"
|
align="center"
|
>
|
</el-table-column>
|
<el-table-column
|
prop="partNo"
|
label="零件号"
|
align="center"
|
show-overflow-tooltip
|
:filters="partNoFilters"
|
:filter-method="filterHandler"
|
>
|
</el-table-column>
|
<el-table-column
|
prop="partName"
|
label="零件描述"
|
align="center"
|
show-overflow-tooltip
|
:filters="partNameFilters"
|
:filter-method="filterHandler"
|
>
|
</el-table-column>
|
<el-table-column prop="applyType" label="申请类型" align="center">
|
</el-table-column>
|
<el-table-column
|
prop="soReqType"
|
label="申请类型描述"
|
align="center"
|
:filters="soReqTypeFilters"
|
:filter-method="filterHandler"
|
>
|
</el-table-column>
|
<el-table-column prop="soReqQty" label="申请数量" align="center">
|
</el-table-column>
|
<el-table-column prop="state" label="状态" align="center">
|
</el-table-column>
|
<el-table-column prop="dueDate" label="到期日" align="center">
|
</el-table-column>
|
<el-table-column prop="beginDate" label="开始日期" align="center">
|
</el-table-column>
|
<el-table-column prop="createDate" label="创建日期" align="center">
|
</el-table-column>
|
<el-table-column
|
prop="createUser"
|
label="计划人"
|
align="center"
|
:filters="createUserFilters"
|
:filter-method="filterHandler"
|
>
|
</el-table-column>
|
</el-table>
|
</div>
|
<div style="height: 10px;"></div>
|
</div>
|
<ConditionForm
|
:currshowlist.sync="showConditionForm"
|
@refreshApply="refreshApply"
|
></ConditionForm>
|
</div>
|
</template>
|
<script>
|
import { fetchList } from '@/api/basic/part'
|
import { queryShopOrderReqStd } from '@/api/plan/manufacturingorderapply'
|
import ConditionForm from './condition-form.vue'
|
import adaptive from '@/util/adaptive'
|
export default {
|
data() {
|
return {
|
showConditionForm: false,
|
tableData: [],
|
currRow: null,
|
partNoFilters: [],
|
partNameFilters: [],
|
soReqTypeFilters: [],
|
createUserFilters: []
|
}
|
},
|
components: {
|
ConditionForm
|
},
|
directives: {
|
adaptive
|
},
|
methods: {
|
queryData(queryData) {
|
this.tableData = []
|
this.partNoFilters = []
|
this.createUserFilters = []
|
const queryParam = {
|
partNo: queryData.partNo,
|
partName: queryData.partName,
|
workshopTypeCode: queryData.workshopTypeCode,
|
state: queryData.state,
|
createUser: queryData.createUser
|
}
|
queryShopOrderReqStd(queryParam).then((response) => {
|
const resData = response.data
|
if (resData.code === 0) {
|
const datas = resData.data
|
if (datas.length > 0) {
|
let data
|
for (let i = 0; i < datas.length; i++) {
|
data = datas[i]
|
this.tableData.push({
|
id: i + 1,
|
partNo: data.PART_NO,
|
partName: data.PART_DESC,
|
applyType: data.SO_REQ_TYPE_DB,
|
state: data.STATE_DB,
|
dueDate: data.REVISED_DUE_DATE,
|
beginDate: data.PROP_START_DATE,
|
createDate: data.DATE_ENTERED,
|
createUser: data.PLANNER_BUYER,
|
proposalNo: data.PROPOSAL_NO,
|
soReqType: data.SO_REQ_TYPE,
|
soReqQty: data.SO_REQ_QTY,
|
structVersion: data.STRUCT_VERSION,
|
commonChecked: false
|
})
|
}
|
}
|
this.filterAndRender()
|
} else {
|
this.$message.error('查询车间订单申请失败!')
|
}
|
})
|
},
|
// 过滤和渲染
|
filterAndRender() {
|
this.tableData.forEach((item) => {
|
const exsitPartNo = this.partNoFilters.find((el) => {
|
return el.value === item.partNo
|
})
|
if (!exsitPartNo) {
|
this.partNoFilters.push({ text: item.partNo, value: item.partNo })
|
}
|
|
const exsitPartName = this.partNameFilters.find((el) => {
|
return el.value === item.partName
|
})
|
if (!exsitPartName) {
|
this.partNameFilters.push({
|
text: item.partName,
|
value: item.partName
|
})
|
}
|
|
const exsitSoReqType = this.soReqTypeFilters.find((el) => {
|
return el.value === item.soReqType
|
})
|
if (!exsitSoReqType) {
|
this.soReqTypeFilters.push({
|
text: item.soReqType,
|
value: item.soReqType
|
})
|
}
|
|
const exsitCreateUser = this.createUserFilters.find((el) => {
|
return el.value === item.createUser
|
})
|
if (!exsitCreateUser) {
|
this.createUserFilters.push({
|
text: item.createUser,
|
value: item.createUser
|
})
|
}
|
})
|
this.$nextTick(() => {
|
this.$refs.manufacturingorderApplyTable.doLayout()
|
})
|
},
|
// 单行选中
|
handleCurrentChange(row) {
|
if (row != null) {
|
this.tableData.forEach((item) => {
|
// 排他,每次选择时把其他选项都清除
|
if (item.id !== row.id) {
|
item.commonChecked = false
|
} else {
|
item.commonChecked = true
|
}
|
})
|
}
|
this.currRow = row
|
},
|
getCurrRow() {
|
console.log('currRow', this.currRow)
|
},
|
filterHandler(value, row, column) {
|
const property = column.property
|
return row[property] === value
|
},
|
// 打开条件查询弹出框
|
openConditionQueryDialog() {
|
this.showConditionForm = true
|
},
|
// 查询条件回调
|
refreshApply(queryData) {
|
this.queryData(queryData)
|
},
|
// 跳转至车间订单新增页面
|
jumpToCreateManufacturingorder() {
|
if (this.currRow != null) {
|
// 根据零件号和结构版本,去查询唯一的零件记录
|
fetchList(
|
Object.assign(
|
{
|
current: 1,
|
size: 10
|
},
|
{
|
partNo: this.currRow.partNo,
|
engChgLevel: this.currRow.structVersion
|
}
|
)
|
).then((response) => {
|
const records = response.data.data.records
|
if (records != null && records.length > 0) {
|
const record = records[0]
|
if (records.length === 1) {
|
this.$router.push({
|
name: 'productorderForm',
|
query: {
|
id: null,
|
partId: record.id,
|
partNo: record.partNo,
|
partName: record.partName,
|
proposalNo: this.currRow.proposalNo,
|
dueDate: this.currRow.dueDate,
|
beginDate: this.currRow.beginDate,
|
soReqQty: this.currRow.soReqQty
|
}
|
})
|
} else {
|
this.$message.error('系统中找到多条零件记录!')
|
}
|
} else {
|
this.$message.error('系统中未找到零件记录!')
|
}
|
})
|
} else {
|
this.$message.error('请选择一条车间订单申请记录!')
|
}
|
}
|
}
|
}
|
</script>
|
<style scoped>
|
.manufacturingorder-apply-table >>> .el-table__header th {
|
color: #666666;
|
}
|
.manufacturingorder-apply-table-single-checkbox
|
>>> .el-checkbox__input.is-disabled.is-checked
|
.el-checkbox__inner {
|
background-color: #006eff;
|
border-color: #006eff;
|
}
|
.manufacturingorder-apply-table-single-checkbox
|
>>> .el-checkbox__input.is-disabled
|
.el-checkbox__inner {
|
background-color: #ffffff;
|
cursor: pointer;
|
}
|
.manufacturingorder-apply-table-single-checkbox >>> .el-checkbox__inner::after {
|
border: 1px solid #fff !important;
|
border-left: 0 !important;
|
border-top: 0 !important;
|
cursor: pointer !important;
|
}
|
.manufacturingorder-apply-table >>> th {
|
padding: 3px 0px;
|
height: 31px;
|
}
|
.manufacturingorder-apply-table >>> td {
|
padding: 1px 0 0 0;
|
}
|
/*.manufacturingorder-apply-table >>> th.gutter {
|
display: table-cell !important;
|
}*/
|
/*.manufacturingorder-apply-table >>> th.gutter:last-of-type {
|
display: block !important;
|
width: 10px !important;
|
height: 41px;
|
}*/
|
</style>
|