Files
JY1.0/src/views/ManufacturingCenter/QuotaFormulation/index.vue
2019-01-22 10:23:19 +08:00

376 lines
14 KiB
Vue

<template>
<div class="app-container">
<el-card>
<div style="margin-top: -10px;">
<el-radio-group v-model="radio" style="margin: 10px;" @change="radioChange">
<el-radio :label="1">未编制</el-radio>
<el-radio :label="2">已编制</el-radio>
</el-radio-group>
<span style="margin: 10px">定额员:</span>
<el-select v-model="personValue" size="small" placeholder="定额员" @change="personChange">
<el-option
v-for="item in person"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<span style="margin: 10px">零件号:</span>
<el-select v-model="partNumValue" size="small" filterable placeholder="零件号" style="margin: 10px">
<el-option
v-for="item in partNum"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
<el-button type="success" size="small" icon="el-icon-search" style="margin: 10px" @click="typeChange()">查询</el-button>
<span v-if="radio === 1" style="color: #53A3F7;font-size: 14px"> 未编制的数量{{ partNum.length }}</span>
<span v-if="radio === 2" style="color: #53A3F7;font-size: 14px"> {{ shuliang }}</span>
</div>
<div>
<span>种类:</span>
<el-input
v-model="typeValue"
size="small"
placeholder="种类"
readonly
style="margin: 10px;width:180px"/>
<span>零件名称:</span>
<el-input
v-model="partName"
size="small"
placeholder="零件名称"
readonly
style="margin: 10px;width:180px"/>
<span>投产总数量:</span>
<el-input
v-model="batchNum"
size="small"
placeholder="投产总数量"
readonly
style="margin: 10px;width:180px"/>
<span>材质:</span>
<el-input
v-model="material"
size="small"
placeholder="材质"
readonly
style="margin: 10px;width:180px"/>
</div>
</el-card>
<el-card>
<div>
<el-table v-loading="listLoading" :data="tableData" border style="width: 100%;" height="550px">
<el-table-column type="index" label="序号" width="50" align="center"/>
<el-table-column prop="name" label="工艺名称" width="180" align="center">
<template slot-scope="scope">
<el-input v-model="tableData[scope.$index].name" style="width:150px" placeholder="工艺名称" readonly/>
</template>
</el-table-column>
<el-table-column prop="request" label="工艺要求" align="center">
<template slot-scope="scope">
<el-input v-model="tableData[scope.$index].request" :rows="1" placeholder="工艺要求" type="textarea" readonly/>
</template>
</el-table-column>
<el-table-column prop="singleton" label="单件" width="180" align="center">
<template slot-scope="scope">
<el-input v-model="tableData[scope.$index].singleton" :readonly="tableData[scope.$index].name===''" style="width:150px" placeholder="单件"/>
</template>
</el-table-column>
<el-table-column prop="Settlement" label="准结" width="180" align="center">
<template slot-scope="scope">
<el-input v-model="tableData[scope.$index].Settlement" :readonly="tableData[scope.$index].name===''" style="width:150px" placeholder="准结"/>
</template>
</el-table-column>
<el-table-column v-if="isShow" prop="budget" label="外协预算" width="180" align="center">
<template slot-scope="scope">
<el-input v-model="tableData[scope.$index].budget" style="width:150px" placeholder="外协预算" readonly/>
</template>
</el-table-column>
</el-table>
<el-button v-if="radio === 2" type="primary" icon="el-icon-cjn-09" size="small" style="float:right;margin: 10px" @click="ADD">保存</el-button>
<el-button v-if="radio === 1" type="primary" icon="el-icon-cjn-09" size="small" style="float:right;margin: 10px" @click="ADD1">保存</el-button>
</div>
</el-card>
</div>
</template>
<script>
import { getPerson, mainTable, getPartnames1, getPartnames2, detailInfo, mainTable1, TableAddLi, TableAddLi1 } from '@/api/ManufacturingCenter/QuotaFormulation'
import { mapGetters } from 'vuex'
export default {
data() {
return {
listLoading: false,
shuliang: '',
q: 0,
result: 0,
budget1: [],
personValue: '',
person: [],
radio: 1, // 第一组
radio1: 1, // 第二组
partNumValue: '', // 零件号值
partNum: [], // 零件号
typeValue: '', // 种类
CraftsmenValue: '', // 工艺员值
Craftsmen: [], // 工艺员
CraftmanValue: '', // 完艺表单工艺员值
Craftman: [], // 完艺表单工艺员
partName: '', // 零件名称
batchNum: '', // 投产总数量
material: '', // 材质
// materialClass: [], // 材质类
typicalClassValue: '', // 典型工艺零件分类值
typicalClass: [], // 典型工艺零件分类
partNameValue1: '', // 典型工艺零件名称值
partName1: [], // 典型工艺零件名称
partNameValue1check: false, // 典型工艺零件名称check
processNumValue: '', // 典型工艺号值
processNum: [], // 典型工艺号
processNumValuecheck: false, // 典型工艺号check
remark: '', // 备注
remark1: '', // 完艺零件名称
numVal: '', // 输入数值
tolerance: '', // 公差
tableData: [],
tableData3: null, // 工艺定额人员
tableData4: null, // 完艺表格
processSelect: [], // 工艺分类流水号
processNameClass: [], // 工艺名称分类
processNameClassValue: '',
processName: [], // 工艺名称
processNameValue: '',
processRequest: [], // 工艺要求
processRequestValue: '',
processN1: [], // 工艺编号
str: '', // 拼接字符串用的
value: '', // 第一个select的
input1: '', // 种类
checked: false, // 是否核准
checked1: false, // 修改
input: '', // 规格
isShow: false, // 2的可见性
date0: ['', ''], // 完艺时间段
PN: '0000', // 零件号0000
num: '', // 工艺计划流水号
num0: '', // 主表工艺计划流水号
perNum: [],
tuhao: [],
tuhaoValue: '',
check1: '',
check2: '',
check3: '',
check4: '',
input2: '',
list: null,
value7: '',
restaurants: [],
state4: '',
timeout: null
}
},
computed: {
...mapGetters([
'sidebar',
'avatar',
'name',
'id'
])
},
created() {
this.fetchData()
},
methods: {
fetchData() { // 初始化未编制零件号
getPerson().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.person.push({
label: response.data[i].姓名,
value: response.data[i].人员编号
})
}
})
getPartnames1().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.partNum.push({
label: response.data[i].零件图号,
value: response.data[i].工艺计划流水号
})
}
})
},
personChange() {
if (this.radio === 2) {
this.shuliang = '加载中...'
this.partNumValue = ''
this.partNum = []
this.typeValue = ''
this.Craftsmen = ''
this.batchNum = ''
this.material = ''
this.partName = ''
this.tableData = [] // 清主表
getPartnames2(this.personValue).then(response => {
for (let i = 0; i < response.data.length; i++) {
this.partNum.push({
label: response.data[i].零件图号,
value: response.data[i].工艺计划流水号
})
}
this.shuliang = '已编制的数量' + this.partNum.length
})
}
},
radioChange() { // radio改变 编制情况 获取不同零件号
if (this.radio === 2) { // 已编制
this.isShow = true
this.partNumValue = ''
this.partNum = []
this.typeValue = ''
this.Craftsmen = ''
this.partName = ''
this.batchNum = ''
this.material = ''
this.personValue = ''
this.tableData = [] // 清主表
} else { // 未编制
this.shuliang = ''
this.isShow = false
this.partNumValue = ''
this.partNum = []
this.typeValue = ''
this.Craftsmen = ''
this.partName = ''
this.batchNum = ''
this.material = ''
this.personValue = ''
this.tableData = [] // 清主表
getPartnames1().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.partNum.push({
label: response.data[i].零件图号,
value: response.data[i].工艺计划流水号
})
}
})
}
},
typeChange() { // 当零件号改变时,改变种类、工艺员、零件名称、投产总数量、材质,并且显示主表信息
this.listLoading = true
this.tableData = []
this.num0 = ''
if (this.radio === 1) { // 未编制
detailInfo(this.partNumValue).then(response => {
if (response.data.length !== 0) {
this.typeValue = response.data[0].零件类型名称
this.partName = response.data[0].零件名称
this.batchNum = response.data[0].批次数量
this.num0 = response.data[0].工艺计划流水号
this.material = response.data[0].材料
}
}).then(() => {
mainTable(this.num0).then(response => {
if (response.data.length === 0) {
this.listLoading = false
} else {
for (let i = 0; i < response.data.length; i++) {
this.tableData.push({
name: response.data[i].工艺名称,
request: response.data[i].工艺要求,
num1: response.data[i].工序流水号,
Settlement: response.data[i].准结定额工时,
singleton: response.data[i].单件定额工时,
lingjian: response.data[i].零件图号,
numm: response.data[i].工艺计划流水号
})
}
this.listLoading = false
}
})
})
} else {
detailInfo(this.partNumValue).then(response => {
if (response.data.length !== 0) {
this.typeValue = response.data[0].零件类型名称
this.partName = response.data[0].零件名称
this.batchNum = response.data[0].批次数量
this.num0 = response.data[0].工艺计划流水号
this.material = response.data[0].材料
}
}).then(() => {
mainTable1(this.partNumValue).then(response => {
if (response.data.length === 0) {
this.listLoading = false
} else {
for (let i = 0; i < response.data.length; i++) {
this.tableData.push({
name: response.data[i].工艺名称,
request: response.data[i].工艺要求,
num1: response.data[i].工序流水号,
Settlement: response.data[i].准结定额工时,
singleton: response.data[i].单件定额工时,
budget: response.data[i].外协预算价格1,
lingjian: response.data[i].零件图号,
numm: response.data[i].工艺计划流水号
})
}
this.listLoading = false
}
})
})
}
},
ADD() {
this.result = 0
for (let i = 0; i < this.tableData.length; i++) {
TableAddLi(this.tableData[i].singleton, this.tableData[i].Settlement, this.tableData[i].lingjian, this.tableData[i].num1, this.tableData[i].numm).then(response => {
this.result += parseInt(response.data[0].result)
if (this.result === this.tableData.length) {
this.$message.success('保存成功')
this.typeChange()
} else if (response.data[0].result === '0') {
this.$message.error('第' + (i + 1) + '行保存失败')
}
})
}
},
ADD1() {
this.result = 0
if (this.personValue === '') {
this.$message.error('请选择人员')
} else {
for (let i = 0; i < this.tableData.length; i++) {
TableAddLi(this.tableData[i].singleton, this.tableData[i].Settlement, this.tableData[i].lingjian, this.tableData[i].num1, this.tableData[i].numm).then(response => {
this.result += parseInt(response.data[0].result)
if (this.result === this.tableData.length) {
TableAddLi1(this.partNumValue, this.personValue).then(response => {
if (response.data[0].result === '1') {
this.$message.success('保存成功')
this.radioChange()
} else {
this.$message.error('保存失败')
}
})
} else if (response.data[0].result === '0') {
this.$message.error('保存失败')
}
})
}
}
}
}
}
</script>
<style scoped>
.doing-row4{
background: #f0f9eb;
}
.el-card{
margin-bottom: 15px;
}
</style>