Browse Source

2023-12-19 修改

master
fengyuan_yang 3 years ago
parent
commit
c6c6341c12
  1. 14
      src/api/part/bomManagement.js
  2. 28
      src/api/part/partInformation.js
  3. 7
      src/api/part/routingManagement.js
  4. 99
      src/api/test/testInformation.js
  5. 273
      src/views/modules/part/bomManagement.vue
  6. 427
      src/views/modules/part/partInformation.vue
  7. 175
      src/views/modules/part/routingManagement.vue
  8. 10
      src/views/modules/proofing/requestForProofing.vue
  9. 10
      src/views/modules/quotation/requestForQuote.vue
  10. 2481
      src/views/modules/test/requestForTest.vue
  11. 136
      src/views/modules/test/test_upload_file.vue

14
src/api/part/bomManagement.js

@ -70,6 +70,13 @@ export const bomDetailUpdate = data => createAPI(`/plm/bomManagement/bomDetailUp
*/
export const bomDetailDelete = data => createAPI(`/plm/bomManagement/bomDetailDelete`,'post',data)
/**
* 修改明细状态
* @param data
* @returns {*}
*/
export const updateAlternativeStatus = data => createAPI(`/plm/bomManagement/updateAlternativeStatus`,'post',data)
/**
* 新增bom主信息
* @param data
@ -105,5 +112,12 @@ export const updateBomComponent = data => createAPI(`/plm/bomManagement/updateBo
*/
export const deleteBomComponent = data => createAPI(`/plm/bomManagement/deleteBomComponent`,'post',data)
/**
* 根据物料编码查询工序
* @param data
* @returns {*}
*/
export const queryOperationList = data => createAPI(`/plm/bomManagement/queryOperationList`,'post',data)

28
src/api/part/partInformation.js

@ -53,6 +53,34 @@ export const getAgentList = data => createAPI(`/plm/partInformation/getAgentList
*/
export const getPartAgent = data => createAPI(`/plm/partInformation/getPartAgent`,'post',data)
/**
* 新增物料代理商
* @param data
* @returns {*}
*/
export const addPartAgent = data => createAPI(`/plm/partInformation/addPartAgent`,'post',data)
/**
* 删除物料代理商
* @param data
* @returns {*}
*/
export const deletePartAgent = data => createAPI(`/plm/partInformation/deletePartAgent`,'post',data)
/**
* 根据条件查询可选代理商
* @param data
* @returns {*}
*/
export const getAgentListBy = data => createAPI(`/plm/partInformation/getAgentListBy`,'post',data)
/**
* 删除物料代理商
* @param data
* @returns {*}
*/
export const deleteAgent = data => createAPI(`/plm/partInformation/deleteAgent`,'post',data)
/**
* 查询材料信息

7
src/api/part/routingManagement.js

@ -63,6 +63,13 @@ export const routingDetailSave = data => createAPI(`/plm/routingManagement/routi
*/
export const routingDetailUpdate = data => createAPI(`/plm/routingManagement/routingDetailUpdate`,'post',data)
/**
* 修改明细状态
* @param data
* @returns {*}
*/
export const updateAlternativeStatus = data => createAPI(`/plm/routingManagement/updateAlternativeStatus`,'post',data)
/**
* routing明细删除
* @param data

99
src/api/test/testInformation.js

@ -0,0 +1,99 @@
import { createAPI } from "@/utils/httpRequest.js";
/**
* 测试信息列表查询
* @param data
* @returns {*}
*/
export const testInformationSearch = data => createAPI(`/plm/testInformation/testInformationSearch`,'post',data)
/**
* 测试信息新增
* @param data
* @returns {*}
*/
export const testInformationSave = data => createAPI(`/plm/testInformation/testInformationSave`,'post',data)
/**
* 测试信息编辑
* @param data
* @returns {*}
*/
export const testInformationEdit = data => createAPI(`/plm/testInformation/testInformationEdit`,'post',data)
/**
* 测试信息删除
* @param data
* @returns {*}
*/
export const testInformationDelete = data => createAPI(`/plm/testInformation/testInformationDelete`,'post',data)
/**
* 获取产品列表
* @param data
* @returns {*}
*/
export const getProjectPartList = data => createAPI(`/plm/testInformation/getProjectPartList`,'post',data)
/**
* 获取测试结果对象
* @param data
* @returns {*}
*/
export const testResultSearch = data => createAPI(`/plm/testInformation/testResultSearch`,'post',data)
/**
* 检查测试进度
* @param data
* @returns {*}
*/
export const checkTestStatus = data => createAPI(`/plm/testInformation/checkTestStatus`,'post',data)
/**
* 获取测试单附件列表
* @param data
* @returns {*}
*/
export const getFileContentList = data => createAPI(`/plm/testInformation/getFileContentList`,'post',data)
/**
* 文件删除
* @param data
* @returns {*}
*/
export const deleteTestFile = data => createAPI(`/plm/testInformation/deleteTestFile`,'post',data)
/**
* 保存测试结果
* @param data
* @returns {*}
*/
export const saveTestResult = data => createAPI(`/plm/testInformation/saveTestResult`,'post',data)
/**
* 保存送样结果
* @param data
* @returns {*}
*/
export const saveSubmitResult = data => createAPI(`/plm/testInformation/saveSubmitResult`,'post',data)
/**
* 保存客户回复
* @param data
* @returns {*}
*/
export const saveCustomerResponse = data => createAPI(`/plm/testInformation/saveCustomerResponse`,'post',data)
/**
* 获取项目信息
* @param data
* @returns {*}
*/
export const getProjectInformation = data => createAPI(`/plm/testInformation/getProjectInformation`,'post',data)
/**
* 获取客户信息
* @param data
* @returns {*}
*/
export const getCustomerInformation = data => createAPI(`/plm/testInformation/getCustomerInformation`,'post',data)
/**
* 关闭模态框删除文件
* @param data
* @returns {*}
*/
export const closeModalDeleteFile = data => createAPI(`/plm/testInformation/closeModalDeleteFile`,'post',data)
/**
* 批量文件删除
* @param data
* @returns {*}
*/
export const batchDeleteTestFile = data => createAPI(`/plm/testInformation/batchDeleteTestFile`,'post',data)

273
src/views/modules/part/bomManagement.vue

@ -97,7 +97,7 @@
</el-form-item>
<el-form-item :label="'制造类型'" prop="bomType" :rules="rules.bomType">
<el-select v-model="modalData.bomType" :disabled="modalDisableFlag" style="width: 221px">
<el-option label="制造" value="manufacturing"></el-option>
<el-option label="Manufacturing" value="Manufacturing"></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item :label="'类型'" prop="typeFlag" :rules="rules.typeFlag">-->
@ -121,7 +121,7 @@
:editable=false>
</el-date-picker>
</el-form-item>
<el-form-item label="结束日期" prop="effPhaseOutDate" :rules="rules.effPhaseOutDate">
<el-form-item label="结束日期">
<el-date-picker
style="width: 221px"
v-model="modalData.effPhaseOutDate"
@ -132,7 +132,7 @@
</el-date-picker>
</el-form-item>
<el-form-item :label="'BOM版本号'" prop="engChgLevel" :rules="rules.engChgLevel">
<el-input v-model="modalData.engChgLevel" :disabled="modalDisableFlag" style="width: 221px"></el-input>
<el-input v-model="modalData.engChgLevel" type="number" :disabled="modalDisableFlag" style="width: 221px"></el-input>
</el-form-item>
<el-form-item :label="'工程版本号'">
<el-input v-model="modalData.engRevision" style="width: 221px"></el-input>
@ -154,6 +154,8 @@
<el-button type="primary" @click="saveBomDetail()" style="margin-left: 7px">新增</el-button>
<el-button type="primary" @click="deleteBomDetail()">删除</el-button>
<el-button type="primary" @click="updateBomDetail()">编辑</el-button>
<el-button v-if="detailData.status === 'Tentative'" type="primary" @click="updateStatusToBuildable()">Buildable</el-button>
<el-button v-if="detailData.status === 'Buildable'" type="primary" @click="updateStatusToObsolete()">Obsolete</el-button>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="detailData" :rules="rules" style="margin-left: 7px">
@ -171,11 +173,12 @@
<el-input v-model="detailData.alternativeDescription" readonly style="width: 221px"></el-input>
</el-form-item>
<el-form-item :label="'状态'">
<el-select v-model="detailData.status" disabled style="width: 221px">
<el-option label="暂定" value="Tentative"></el-option>
<el-option label="创建" value="Buildable"></el-option>
<el-option label="销毁" value="Obsolete"></el-option>
</el-select>
<!-- <el-select v-model="detailData.status" disabled style="width: 221px">-->
<!-- <el-option label="暂定" value="Tentative"></el-option>-->
<!-- <el-option label="创建" value="Buildable"></el-option>-->
<!-- <el-option label="销毁" value="Obsolete"></el-option>-->
<!-- </el-select>-->
<el-input v-model="detailData.status" readonly style="width: 221px"></el-input>
</el-form-item>
<el-form-item :label="'最小订单数'">
<el-input class="numInput" v-model="detailData.minLotQty" @input="handleInput(detailData.minLotQty,2)" type="number" readonly style="width: 221px"></el-input>
@ -242,7 +245,7 @@
</el-dialog>
<!-- 明细新增模态框 -->
<el-dialog title="新增替代" :close-on-click-modal="false" v-drag :visible.sync="saveDetailModalFlag" width="530px">
<el-dialog title="替代" :close-on-click-modal="false" v-drag :visible.sync="saveDetailModalFlag" width="530px">
<el-form :inline="true" label-position="top" :model="saveDetailData" :rules="detailRules" style="margin-left: 5px">
<el-form-item :label="'替代编码'" prop="alternativeNo" :rules="detailRules.alternativeNo">
<el-input v-model="saveDetailData.alternativeNo" :disabled="saveDetailModalDisable" style="width: 235px"></el-input>
@ -253,11 +256,7 @@
</el-form>
<el-form :inline="true" label-position="top" :model="saveDetailData" :rules="detailRules" style="margin-left: 5px">
<el-form-item :label="'状态'" prop="status" :rules="detailRules.status">
<el-select v-model="saveDetailData.status" style="width: 235px">
<el-option label="暂定" value="Tentative"></el-option>
<el-option label="创建" value="Buildable"></el-option>
<el-option label="销毁" value="Obsolete"></el-option>
</el-select>
<el-input v-model="saveDetailData.status" disabled style="width: 235px"></el-input>
</el-form-item>
<el-form-item :label="'最小订单数'" prop="minLotQty" :rules="detailRules.minLotQty">
<el-input class="numInput" v-model="saveDetailData.minLotQty" @input="handleInput(saveDetailData.minLotQty,3)" type="number" style="width: 235px"></el-input>
@ -378,10 +377,13 @@
</el-form>
<el-form :inline="true" label-position="top" :model="componentData" :rules="componentRules" style="margin-left: 5px">
<el-form-item :label="'单位'">
<el-input v-model="componentData.printUnitName" disabled style="width: 221px"></el-input>
<el-input v-model="componentData.printUnitName" disabled style="width: 142px"></el-input>
</el-form-item>
<el-form-item :label="'排序'">
<el-input v-model="componentData.lineSequence" type="number" style="width: 142px"></el-input>
</el-form-item>
<el-form-item :label="'生产属性'" prop="issueType" :rules="componentRules.issueType">
<el-select v-model="componentData.issueType" clearable style="width: 221px">
<el-select v-model="componentData.issueType" clearable style="width: 142px">
<el-option label="领退料倒冲" value="A"></el-option>
<el-option label="工单倒冲" value="B"></el-option>
<el-option label="生产订单倒冲" value="C"></el-option>
@ -394,7 +396,7 @@
</el-form>
<el-form :inline="true" label-position="top" :model="componentData" style="margin-left: 5px">
<el-form-item>
<span slot="label" @click="getBaseList(103)"><a herf="#">工序</a></span>
<span slot="label" @click="queryOperationList()"><a>工序</a></span>
<el-input v-model="componentData.operationName" style="width: 221px"></el-input>
</el-form-item>
<el-form-item>
@ -413,6 +415,45 @@
</el-footer>
</el-dialog>
<!-- 工序 -->
<el-dialog title="工序清单" :close-on-click-modal="false" v-drag :visible.sync="operationModelFlag" width="400px">
<div class="rq">
<el-form :inline="true" label-position="top" :model="operationData">
<el-form-item :label="'模板名称'">
<el-input v-model="operationData.operationName" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button type="primary" @click="queryOperationList()">查询</el-button>
</el-form-item>
</el-form>
<el-table
:height="300"
:data="operationList"
@row-dblclick="getRowOperationData"
border
style="width: 100%;">
<el-table-column
v-for="(item,index) in operationDetailList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed==''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
</div>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="operationModelFlag=false">关闭</el-button>
</el-footer>
</el-dialog>
<!-- chooseList模态框 -->
<ChooseList ref="baseList" @getBaseData="getBaseData"></ChooseList>
</div>
@ -430,11 +471,13 @@ import {
bomDetailSave, // bom
bomDetailUpdate, // bom
bomDetailDelete, // bom
updateAlternativeStatus, //
queryPartList, //
queryBomComponent, // bom
saveBomComponent, // bom
updateBomComponent, // bom
deleteBomComponent, // bom
queryOperationList, //
} from '@/api/part/bomManagement.js'
import ChooseList from '@/views/modules/common/Chooselist'
import dayjs from "dayjs";
@ -545,7 +588,6 @@ export default {
issueType: '',
shrinkageFactor: '',
lineItemNo: '',
operationNo: '',
operationName: '',
issueToLoc: '',
issueToLocName: '',
@ -553,7 +595,8 @@ export default {
createDate: '',
createBy: '',
updateDate: '',
updateBy: ''
updateBy: '',
lineSequence: ''
},
partData: {
site: this.$store.state.user.site,
@ -582,6 +625,11 @@ export default {
updateDate: '',
updateBy: ''
},
operationData: {
site: this.$store.state.user.site,
partNo: '',
operationName: '',
},
// ======== ========
dataList: [],
partList: [],
@ -590,6 +638,7 @@ export default {
subDetailList: [],
detailDataList: [],
checkedDetail: [],
operationList: [],
// ======== ========
columnList: [
{
@ -862,6 +911,24 @@ export default {
}
],
columnSubDetailList: [
{
userId: this.$store.state.user.name,
functionId: 104002,
serialNumber: '104002Table2LineSequence',
tableId: '104002Table2',
tableName: 'BOM子物料表',
columnProp: 'lineSequence',
headerAlign: 'center',
align: 'center',
columnLabel: '排序',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 60
},
{
userId: this.$store.state.user.name,
functionId: 104002,
@ -994,9 +1061,9 @@ export default {
serialNumber: '104002Table2OperationDesc',
tableId: '104002Table2',
tableName: 'BOM子物料表',
columnProp: 'operationNo',
columnProp: 'operationName',
headerAlign: 'center',
align: 'left',
align: 'center',
columnLabel: '工序',
columnHidden: false,
columnImage: false,
@ -1030,7 +1097,7 @@ export default {
serialNumber: '104002Table2NoteText',
tableId: '104002Table2',
tableName: 'BOM子物料表',
columnProp: 'componentNoteText',
columnProp: 'noteText',
headerAlign: 'center',
align: 'left',
columnLabel: '备注',
@ -1043,6 +1110,20 @@ export default {
columnWidth: 150
},
],
operationDetailList: [
{
columnProp: 'operationName',
headerAlign: "center",
align: "center",
columnLabel: '工序名称',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
}
],
// ======== ========
rules: {
partNo: [
@ -1073,13 +1154,6 @@ export default {
trigger: 'change'
}
],
effPhaseOutDate: [
{
required: true,
message: ' ',
trigger: 'change'
}
],
engChgLevel: [
{
required: true,
@ -1172,7 +1246,8 @@ export default {
saveDetailModalFlag :false,
saveDetailModalDisable: false,
componentSaveModal: false,
componentDisableFlag: false
componentDisableFlag: false,
operationModelFlag: false,
}
},
mounted () {
@ -1287,7 +1362,7 @@ export default {
partNo: '',
partDesc: '',
engChgLevel: '',
bomType: 'manufacturing',
bomType: 'Manufacturing',
noteText: '',
effPhaseInDate: new Date(+ new Date() + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, ''),
effPhaseOutDate: '',
@ -1306,11 +1381,11 @@ export default {
minLotQty: '',
defaultFlag: '',
detailNoteText: '',
status: 'Tentative',
status: '',
createDate: '',
createBy: '',
createBy: this.$store.state.user.name,
updateDate: '',
updateBy: ''
updateBy: this.$store.state.user.name
}
this.subDetailList = []
this.modalDisableFlag = false
@ -1471,12 +1546,12 @@ export default {
issueType: '',
shrinkageFactor: 0,
lineItemNo: '',
operationNo: '',
operationName: '',
issueToLoc: '',
issueToLocName: '',
noteText: '',
createBy: this.$store.state.user.name,
lineSequence: ''
}
this.componentDisableFlag = false
this.componentSaveModal = true
@ -1505,12 +1580,12 @@ export default {
issueType: row.issueType,
shrinkageFactor: row.shrinkageFactor,
lineItemNo: row.lineItemNo,
operationNo: row.operationNo,
operationName: row.operationName,
issueToLoc: row.issueToLoc,
issueToLocName: row.issueToLocName,
noteText: row.noteText,
updateBy: this.$store.state.user.name,
lineSequence: row.lineSequence
}
this.componentDisableFlag = true
this.componentSaveModal = true
@ -1538,10 +1613,10 @@ export default {
this.$message.warning('请选择开始时间!')
return
}
if (this.modalData.effPhaseOutDate === '' || this.modalData.effPhaseOutDate == null) {
this.$message.warning('请选择结束时间!')
return
}
// if (this.modalData.effPhaseOutDate === '' || this.modalData.effPhaseOutDate == null) {
// this.$message.warning('')
// return
// }
if (this.modalData.engChgLevel === '' || this.modalData.engChgLevel == null) {
this.$message.warning('请填写BOM版本号!')
return
@ -1749,6 +1824,14 @@ export default {
this.modalData.partDesc = row.partDesc
this.partModelFlag = false
},
/**
* 双击选中工序
* @param row
*/
getRowOperationData (row) {
this.componentData.operationName = row.operationName
this.operationModelFlag = false
},
getComponentRowData (row) {
this.componentData.componentPart = row.partNo
this.componentData.componentPartDesc = row.partDesc
@ -1867,22 +1950,30 @@ export default {
this.$message.warning('请选择子物料编码!')
return
}
if (this.componentData.componentPartDesc === '' || this.componentData.componentPartDesc == null) {
this.$message.warning('请选择子物料名称!')
return
}
if (this.componentData.qtyPerAssembly === '' || this.componentData.qtyPerAssembly == null) {
this.$message.warning('请填写单位用量!')
return
}
if (this.componentData.qtyPerAssembly === 0) {
this.$message.warning('单位用量不能为0!')
return
}
if (this.componentData.componentScrap === '' || this.componentData.componentScrap == null) {
this.$message.warning('请填写调机量!')
return
}
if (this.componentData.componentScrap === 0) {
this.$message.warning('调机量不能为0!')
return
}
if (this.componentData.shrinkageFactor === '' || this.componentData.shrinkageFactor == null) {
this.$message.warning('请填写损耗率!')
return
}
if (this.componentData.shrinkageFactor === 0) {
this.$message.warning('损耗率不能为0!')
return
}
if (this.componentData.issueType === '' || this.componentData.issueType == null) {
this.$message.warning('请选择生产属性!')
return
@ -2111,14 +2202,73 @@ export default {
}).catch(() => {
})
},
/**
* 修改替代状态为 Buildable
*/
updateStatusToBuildable () {
this.$confirm(`是否修改状态为Buildable?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
updateAlternativeStatus(this.detailData).then(({data}) => {
if (data && data.code === 0) {
this.detailDataList = data.rows.detailDataList
this.detailData = data.rows.detailData
this.subDetailList = data.rows.subDetailList
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {confirmButtonText: '确定'})
//
this.alternativeChange()
}
})
}).catch(() => {
})
},
/**
* 修改替代状态为 Obsolete
*/
updateStatusToObsolete () {
this.$confirm(`是否修改状态为Obsolete?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
updateAlternativeStatus(this.detailData).then(({data}) => {
if (data && data.code === 0) {
this.detailDataList = data.rows.detailDataList
this.detailData = data.rows.detailData
this.subDetailList = data.rows.subDetailList
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {confirmButtonText: '确定'})
//
this.alternativeChange()
}
})
}).catch(() => {
})
},
/**
* 替代改变事件
*/
alternativeChange () {
queryBomComponent(this.detailData).then(({data}) => {
if (data && data.code === 0) {
this.detailDataList = data.rows.detailDataList
this.detailData = data.rows.detailData
this.subDetailList = data.rows.componentList
this.subDetailList = data.rows.subDetailList
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
@ -2149,6 +2299,7 @@ export default {
}
},
handleInputB (value) {
// 0-100
const reg = /^(([1-9]?\d{0,1}(\.\d{1,2})?)|100|100\.(0){1,2})$/
if (reg.test(value) === true) {
this.componentData.shrinkageFactor = value
@ -2158,6 +2309,38 @@ export default {
this.componentData.shrinkageFactor = 0
}
},
// handleInputC (value, type) {
// //
// // let val = value.replace(/^\+?[1-9][0-9]*$/,'$1')
// // if (val === null || val === undefined || val === '') {
// // val = 1
// // }
// // if (type === 1) {
// // this.modalData.engChgLevel = val
// // }
// const reg = /^\+?[1-9][0-9]*$/
// if (reg.test(value) === true) {
// this.modalData.engChgLevel = value
// }
//
// },
/**
* 根据物料编码查询工序
*/
queryOperationList () {
this.operationData.partNo = this.modalData.partNo
//
queryOperationList(this.operationData).then(({data}) => {
if (data && data.code === 0) {
this.operationList = data.rows
this.operationModelFlag = true
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
// ======== chooseList ========
/**

427
src/views/modules/part/partInformation.vue

@ -117,12 +117,12 @@
<!-- 材料新增/编辑模态框 -->
<el-dialog :title="modalData.title" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="495px">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="材料编码" prop="partNo" :rules="rules.partNo">
<el-input v-model="modalData.partNo" style="width: 221px"></el-input>
</el-form-item>
<el-form-item label="材料描述" prop="partDesc" :rules="rules.partDesc">
<el-input v-model="modalData.partDesc" style="width: 221px"></el-input>
</el-form-item>
<el-form-item label="ERP物料编码">
<el-input v-model="modalData.erpPartNo" style="width: 221px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="规格型号" prop="spec" :rules="rules.spec">
@ -180,25 +180,17 @@
<el-option label="否" value="N"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="agentName" :rules="rules.agentName">
<span slot="label" @click="getAgentList()"><a>代理商</a></span>
<el-input v-model="modalData.agentName" style="width: 221px"></el-input>
</el-form-item>
<!-- <el-form-item prop="agentName" :rules="rules.agentName">-->
<!-- <span slot="label" @click="getAgentList()"><a>代理商</a></span>-->
<!-- <el-input v-model="modalData.agentName" style="width: 221px"></el-input>-->
<!-- </el-form-item>-->
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="备注">
<el-input
type="textarea"
v-model="modalData.remark"
:rows="3"
resize='none'
maxlength="300"
show-word-limit
style="width: 456px;height: 60px">
</el-input>
<el-input type="textarea" v-model="modalData.remark" :rows="3" resize='none' show-word-limit style="width: 456px;height: 60px"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:30px;margin-top: 60px;text-align:center">
<el-footer style="height:35px;margin-top: 55px;text-align:center">
<el-button type="primary" @click="saveData()">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button>
</el-footer>
@ -243,11 +235,15 @@
</el-tab-pane>
<!-- 代理商页签 -->
<el-tab-pane label="代理商" name="part_agent">
<el-form label-position="top" style="margin-top: 5px; margin-left: 0px;">
<el-form :inline="true" label-position="top" style="margin-top: 5px">
<el-button type="primary" @click="savePartAgent()">新增</el-button>
</el-form>
</el-form>
<el-table
:data="partAgentList"
:height="secondHeight"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnAgentList" :key="index"
@ -264,16 +260,16 @@
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- header-align="center"-->
<!-- align="center"-->
<!-- width="150"-->
<!-- fixed="right"-->
<!-- label="操作">-->
<!-- <template slot-scope="scope">-->
<!-- <a type="text" size="small" @click="updateItemModal(scope.row)">编辑</a>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
header-align="center"
align="center"
width="150"
fixed="right"
label="操作">
<template slot-scope="scope">
<a type="text" size="small" @click="deleteAgent2(scope.row)">删除</a>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<!-- 文档页签 -->
@ -349,9 +345,63 @@
</span>
</el-dialog>
<!-- 代理商模态框 -->
<el-dialog title="代理商清单" :close-on-click-modal="false" v-drag :visible.sync="agentModelFlag" width="520px">
<div class="rq">
<!-- &lt;!&ndash; 代理商模态框 &ndash;&gt;-->
<!-- <el-dialog title="代理商清单" :close-on-click-modal="false" v-drag :visible.sync="agentModelFlag" width="520px">-->
<!-- <div class="rq">-->
<!-- <el-form :inline="true" label-position="top" :model="agentData">-->
<!-- <el-form-item :label="'代理商编码'">-->
<!-- <el-input v-model="agentData.agentId" clearable style="width: 120px"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item :label="'代理商名称'">-->
<!-- <el-input v-model="agentData.agentName" clearable style="width: 120px"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item :label="' '">-->
<!-- <el-button type="primary" @click="getAgentList()">查询</el-button>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- <el-table-->
<!-- :height="300"-->
<!-- :data="agentList"-->
<!-- ref="agentTable"-->
<!-- @row-click="agentClickRow"-->
<!-- @selection-change="selectionAgent"-->
<!-- :row-key="getRowKeys"-->
<!-- border-->
<!-- v-loading="dataListLoading"-->
<!-- style="width: 100%;">-->
<!-- <el-table-column-->
<!-- type="selection"-->
<!-- header-align="center"-->
<!-- align="center"-->
<!-- :reserve-selection="true"-->
<!-- width="50">-->
<!-- </el-table-column>-->
<!-- <el-table-column-->
<!-- v-for="(item,index) in agentColumnList" :key="index"-->
<!-- :sortable="item.columnSortable"-->
<!-- :prop="item.columnProp"-->
<!-- :header-align="item.headerAlign"-->
<!-- :show-overflow-tooltip="item.showOverflowTooltip"-->
<!-- :align="item.align"-->
<!-- :fixed="item.fixed==''?false:item.fixed"-->
<!-- :min-width="item.columnWidth"-->
<!-- :label="item.columnLabel">-->
<!-- <template slot-scope="scope">-->
<!-- <span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>-->
<!-- <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table>-->
<!-- </div>-->
<!-- <el-footer style="height:40px;margin-top: 20px;text-align:center">-->
<!-- <el-button type="primary" @click="confirmAgent()">确认</el-button>-->
<!-- <el-button type="primary" @click="agentModelFlag = false">关闭</el-button>-->
<!-- </el-footer>-->
<!-- </el-dialog>-->
<!-- 代理商-> 快速新增 -->
<el-dialog title="新增" @close="refreshDetailList" :close-on-click-modal="false" v-drag :visible.sync="agentModelFlag" width="900px">
<div style="font-size: 12px">
<el-form :inline="true" label-position="top" :model="agentData">
<el-form-item :label="'代理商编码'">
<el-input v-model="agentData.agentId" clearable style="width: 120px"></el-input>
@ -363,42 +413,86 @@
<el-button type="primary" @click="getAgentList()">查询</el-button>
</el-form-item>
</el-form>
<el-table
:height="300"
:data="agentList"
ref="agentTable"
@row-click="agentClickRow"
@selection-change="selectionAgent"
:row-key="getRowKeys"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
:reserve-selection="true"
width="50">
</el-table-column>
<el-table-column
v-for="(item,index) in agentColumnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed==''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
</div>
<el-container style="margin-top: 0px;">
<el-main style="width: 350px; padding: 1px">
<span style="font-size: 12px" >可选代理商:</span>
<el-table
height="400px"
:data="agentList1"
border
ref="agentTable1"
@row-click="agentClickRow1"
@selection-change="selectionAgent1"
highlight-current-row
style="width: 100%">
<el-table-column
type="selection"
header-align="center"
align="center"
:selectable="selectFlag"
width="50">
</el-table-column>
<el-table-column
prop="agentId"
header-align="center"
align="center"
min-width="80"
label="代理商编码">
</el-table-column>
<el-table-column
prop="agentName"
header-align="center"
align="center"
min-width="120"
label="代理商名称">
</el-table-column>
</el-table>
</el-main>
<el-main style="width: 111px;padding: -1px">
<div style="margin-top: 182px;margin-left: 18px">
<el-button type="primary" @click="addAgent()">添加>></el-button>
</div>
<div style="margin-top: 15px;margin-left: 18px">
<el-button type="primary" @click="deleteAgent()">删除<<</el-button>
</div>
</el-main>
<el-main style="width: 350px;padding: 1px">
<span style="font-size: 12px" >已有代理商:</span>
<el-table
height="400px"
:data="agentList2"
border
ref="agentTable2"
@row-click="agentClickRow2"
@selection-change="selectionAgent2"
highlight-current-row
style="width: 100%">
<el-table-column
type="selection"
header-align="center"
align="center"
:selectable="selectFlag"
width="50">
</el-table-column>
<el-table-column
prop="agentId"
header-align="center"
align="center"
min-width="80"
label="代理商编码">
</el-table-column>
<el-table-column
prop="agentName"
header-align="center"
align="center"
min-width="120"
label="代理商名称">
</el-table-column>
</el-table>
</el-main>
</el-container>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="confirmAgent()">确认</el-button>
<el-button type="primary" @click="agentModelFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
@ -421,6 +515,10 @@
savePartItemValue, //
getAgentList, //
getPartAgent, //
getAgentListBy, //
addPartAgent, //
deletePartAgent, //
deleteAgent // ()
} from '@/api/part/partInformation.js'
import {
getFileContentList, //
@ -445,7 +543,7 @@
modalData: {
deep: true,
handler: function (newV, oldV) {
this.modalData.partNo = this.modalData.umId.toUpperCase()
this.modalData.partNo = this.modalData.partNo.toUpperCase()
this.modalData.erpPartNo = this.modalData.erpPartNo.toUpperCase()
}
}
@ -544,6 +642,10 @@
availableValueList:[],
agentList: [],
agentSelections: [],
agentSelections1: [],
agentSelections2: [],
agentList1: [],
agentList2: [],
// ======== ========
columnList: [
{
@ -564,24 +666,24 @@
fixed: '',
columnWidth: 120
},
{
userId: this.$store.state.user.name,
functionId: 104001,
serialNumber: '104001Table1ERPPartNo',
tableId: '104001Table1',
tableName: '材料信息表',
columnProp: 'erpPartNo',
headerAlign: 'center',
align: 'left',
columnLabel: 'ERP物料编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
},
// {
// userId: this.$store.state.user.name,
// functionId: 104001,
// serialNumber: '104001Table1ERPPartNo',
// tableId: '104001Table1',
// tableName: '',
// columnProp: 'erpPartNo',
// headerAlign: 'center',
// align: 'left',
// columnLabel: 'ERP',
// columnHidden: false,
// columnImage: false,
// columnSortable: false,
// sortLv: 0,
// status: true,
// fixed: '',
// columnWidth: 120
// },
{
userId: this.$store.state.user.name,
functionId: 104001,
@ -1218,6 +1320,13 @@
],
// ======== ========
rules: {
partNo: [
{
required: true,
message: ' ',
trigger: 'change'
}
],
partDesc: [
{
required: true,
@ -1396,7 +1505,7 @@
let tempData = {
site: this.$store.state.user.site,
partNo: this.partCurrentRow.partNo,
agentId: this.partCurrentRow.agentId
//agentId: this.partCurrentRow.agentId
}
getPartAgent(tempData).then(({data}) => {
if (data && data.code === 0) {
@ -1527,21 +1636,21 @@
* 选择代理商
*/
getAgentList () {
//
this.$nextTick(() => this.$refs.agentTable.clearSelection())
// id
let tempDataList = this.modalData.agentId.split(';')
// //
// this.$nextTick(() => this.$refs.agentTable.clearSelection())
// // id
// let tempDataList = this.modalData.agentId.split(';')
//
getAgentList(this.agentData).then(({data}) => {
getAgentListBy(this.agentData).then(({data}) => {
if (data && data.code === 0) {
this.agentList = data.rows
this.agentList.forEach(val => {
//
if (tempDataList.includes(val.agentId)) {
this.$nextTick(() => this.$refs.agentTable.toggleRowSelection(val, true))
}
})
this.agentModelFlag = true
this.agentList1 = data.rows
// this.agentList.forEach(val => {
// //
// if (tempDataList.includes(val.agentId)) {
// this.$nextTick(() => this.$refs.agentTable.toggleRowSelection(val, true))
// }
// })
// this.agentModelFlag = true
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
@ -1570,7 +1679,7 @@
*/
getRowKeys (row) {
// id
return row.agentId;
return row.agentId
},
/**
* 确认多选代理商
@ -1588,11 +1697,123 @@
this.agentModelFlag = false
},
savePartAgent () {
this.agentSelections1 = null
this.agentSelections2 = null
getAgentList(this.partCurrentRow).then(({data}) => {
this.agentList1 = data.row1
this.agentList2 = data.row2
})
this.agentData = {
site: this.$store.state.user.site,
agentId: '',
agentName: '',
}
this.agentModelFlag = true
},
//
agentClickRow1 (row) {
this.$refs.agentTable1.toggleRowSelection(row);
},
//
agentClickRow2 (row) {
this.$refs.agentTable2.toggleRowSelection(row);
},
selectionAgent1 (val) {
this.agentSelections1 = val
},
selectionAgent2 (val) {
this.agentSelections2 = val
},
//
addAgent () {
if(this.agentSelections1 == null || this.agentSelections1.length === 0){
this.$message.warning('请选择可选代理商!')
return
}
let inData = {
site: this.$store.state.user.site,
partNo: this.partCurrentRow.partNo,
agentList: this.agentSelections1
}
addPartAgent(inData).then(({data}) => {
if (data && data.code === 0) {
getAgentList(this.partCurrentRow).then(({data}) => {
this.agentList1 = data.row1
this.agentList2 = data.row2
})
this.agentSelections1 = []
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
//
deleteAgent () {
if(this.agentSelections2 == null || this.agentSelections2.length === 0){
this.$message.warning('请选择已有代理商!')
return
}
let inData = {
site: this.$store.state.user.site,
partNo: this.partCurrentRow.partNo,
agentList: this.agentSelections2
}
deletePartAgent(inData).then(({data}) => {
if (data && data.code === 0) {
getAgentList(this.partCurrentRow).then(({data}) => {
this.agentList1 = data.row1
this.agentList2 = data.row2
})
this.agentSelections2 = []
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
//
deleteAgent2 (row) {
this.$confirm(`是否删除该代理商?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteAgent(row).then(({data}) => {
if (data && data.code === 0) {
this.getPartAgent()
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
}).catch(() => {
})
},
//
refreshDetailList(){
this.getPartAgent()
},
// ======== // ========
/**
* 材料信息新增/编辑
*/
saveData () {
if (this.modalData.partNo === '' || this.modalData.partNo == null) {
this.$message.warning('请填写材料编码!')
return
}
if (this.modalData.partDesc === '' || this.modalData.partDesc == null) {
this.$message.warning('请填写材料描述!')
return
@ -1625,10 +1846,10 @@
this.$message.warning('请选择是否在用!')
return
}
if (this.modalData.agentId === '' || this.modalData.agentId == null) {
this.$message.warning('请选择代理商!')
return
}
// if (this.modalData.agentId === '' || this.modalData.agentId == null) {
// this.$message.warning('')
// return
// }
if (this.modalData.flag === '1') {
partInformationSave(this.modalData).then(({data}) => {
if (data && data.code === 0) {

175
src/views/modules/part/routingManagement.vue

@ -97,7 +97,7 @@
</el-form-item>
<el-form-item :label="'工艺类型'" prop="routingType" :rules="rules.routingType">
<el-select v-model="modalData.routingType" :disabled="modalDisableFlag" style="width: 221px">
<el-option label="制造" value="manufacturing"></el-option>
<el-option label="Manufacturing" value="Manufacturing"></el-option>
</el-select>
</el-form-item>
</el-form>
@ -112,7 +112,7 @@
:editable=false>
</el-date-picker>
</el-form-item>
<el-form-item label="结束日期" prop="phaseOutDate" :rules="rules.phaseOutDate">
<el-form-item label="结束日期">
<el-date-picker
style="width: 221px"
v-model="modalData.phaseOutDate"
@ -123,7 +123,7 @@
</el-date-picker>
</el-form-item>
<el-form-item :label="'Routing版本号'" prop="routingRevision" :rules="rules.routingRevision">
<el-input v-model="modalData.routingRevision" :disabled="modalDisableFlag" style="width: 221px"></el-input>
<el-input v-model="modalData.routingRevision" type="number" :disabled="modalDisableFlag" style="width: 221px"></el-input>
</el-form-item>
<el-form-item v-if="!modalDisableFlag">
<el-button :loading="saveHeaderLoading" type="primary" @click="saveRoutingHeader()" style="margin-top: 23px;width: 142px">保存</el-button>
@ -136,12 +136,14 @@
</el-form>
<el-tabs v-model="detailTable" style="margin-top: 50px; width: 100%; min-height: 120px" type="border-card" @tab-click="tabDetailClick" class="detail-tab">
<!-- Routing明细信息页签 -->
<el-tab-pane label="Product Structure" name="routing_detail">
<el-tab-pane label="Routings" name="routing_detail">
<el-form label-position="top" style="margin-top: -10px">
<el-form-item>
<el-button type="primary" @click="saveRoutingDetail()" style="margin-left: 7px">新增</el-button>
<el-button type="primary" @click="deleteRoutingDetail()">删除</el-button>
<el-button type="primary" @click="updateRoutingDetail()">编辑</el-button>
<el-button v-if="detailData.status === 'Tentative'" type="primary" @click="updateStatusToBuildable()">Buildable</el-button>
<el-button v-if="detailData.status === 'Buildable'" type="primary" @click="updateStatusToObsolete()">Obsolete</el-button>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="detailData" :rules="rules" style="margin-left: 7px">
@ -159,11 +161,12 @@
<el-input v-model="detailData.alternativeDescription" readonly style="width: 221px"></el-input>
</el-form-item>
<el-form-item :label="'状态'">
<el-select v-model="detailData.status" disabled style="width: 221px">
<el-option label="暂定" value="Tentative"></el-option>
<el-option label="创建" value="Buildable"></el-option>
<el-option label="销毁" value="Obsolete"></el-option>
</el-select>
<!-- <el-select v-model="detailData.status" disabled style="width: 221px">-->
<!-- <el-option label="暂定" value="Tentative"></el-option>-->
<!-- <el-option label="创建" value="Buildable"></el-option>-->
<!-- <el-option label="销毁" value="Obsolete"></el-option>-->
<!-- </el-select>-->
<el-input v-model="detailData.status" readonly style="width: 221px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="detailData" style="margin-left: 7px">
@ -175,7 +178,7 @@
</el-tabs>
<el-tabs v-model="subDetailTable" style="width: 100%; min-height: 330px" type="border-card" @tab-click="tabSubDetailClick" class="sub_detail-tab">
<!-- Routing子明细信息页签 -->
<el-tab-pane label="Components" name="routing_sub_detail">
<el-tab-pane label="Operations" name="routing_sub_detail">
<el-form label-position="top" style="margin-top: 5px">
<el-form-item>
<el-button type="primary" @click="saveComponentModal()" style="margin-left: 7px">新增</el-button>
@ -227,7 +230,7 @@
</el-dialog>
<!-- 明细新增模态框 -->
<el-dialog title="新增替代" :close-on-click-modal="false" v-drag :visible.sync="saveDetailModalFlag" width="650px">
<el-dialog title="替代" :close-on-click-modal="false" v-drag :visible.sync="saveDetailModalFlag" width="730px">
<el-form :inline="true" label-position="top" :model="saveDetailData" :rules="detailRules" style="margin-left: 5px">
<el-form-item :label="'替代编码'" prop="alternativeNo" :disabled="saveDetailModalDisable" :rules="detailRules.alternativeNo">
<el-input v-model="saveDetailData.alternativeNo" style="width: 221px"></el-input>
@ -236,16 +239,17 @@
<el-input v-model="saveDetailData.alternativeDescription" style="width: 221px"></el-input>
</el-form-item>
<el-form-item :label="'状态'" prop="status" :rules="detailRules.status">
<el-select v-model="saveDetailData.status" style="width: 235px">
<el-option label="暂定" value="Tentative"></el-option>
<el-option label="创建" value="Buildable"></el-option>
<el-option label="销毁" value="Obsolete"></el-option>
</el-select>
<!-- <el-select v-model="saveDetailData.status" style="width: 235px">-->
<!-- <el-option label="暂定" value="Tentative"></el-option>-->
<!-- <el-option label="创建" value="Buildable"></el-option>-->
<!-- <el-option label="销毁" value="Obsolete"></el-option>-->
<!-- </el-select>-->
<el-input v-model="saveDetailData.status" disabled style="width: 221px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="saveDetailData" style="margin-left: 5px">
<el-form-item label="备注">
<el-input type="textarea" v-model="saveDetailData.detailNoteText" :rows="3" resize='none' show-word-limit style="width: 600px;height: 20px"></el-input>
<el-input type="textarea" v-model="saveDetailData.detailNoteText" :rows="3" resize='none' show-word-limit style="width: 690px;height: 20px"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:35px;margin-top:65px;text-align:center">
@ -358,36 +362,39 @@
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="componentData" style="margin-left: 5px">
<el-form-item :label="'机器效率%'">
<el-input class="numInput" v-model="componentData.efficiencyFactor" @input="handleInputB(componentData.efficiencyFactor,1)" type="number" style="width: 221px"></el-input>
</el-form-item>
<el-form-item :label="'机器运行速度'">
<el-input class="numInput" v-model="componentData.machRunFactor" @input="handleInput(componentData.machRunFactor,1)" type="number" style="width: 221px"></el-input>
</el-form-item>
<el-form-item :label="'人工生产速度'">
<el-input class="numInput" v-model="componentData.laborSetupTime" @input="handleInput(componentData.laborSetupTime,5)" type="number" style="width: 221px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="componentData" style="margin-left: 5px">
<el-form-item :label="'调机时长'">
<el-input class="numInput" v-model="componentData.machSetupTime" @input="handleInput(componentData.machSetupTime,2)" type="number" style="width: 221px"></el-input>
</el-form-item>
<el-form-item :label="'调机过程中人数'">
<el-input class="numInput" v-model="componentData.setupCrewSize" @input="handleInput(componentData.setupCrewSize,3)" type="number" style="width: 221px"></el-input>
<el-form-item :label="'时长单位'">
<el-select v-model="componentData.runTimeCode" clearable style="width: 221px">
<el-option label="单位/小时" value="A"></el-option>
<el-option label="小时/单位" value="B"></el-option>
<el-option label="小时" value="C"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="componentData" style="margin-left: 5px">
<el-form-item>
<span slot="label" @click="getBaseList(118, 2)"><a herf="#">调机时的人员等级</a></span>
<el-input v-model="componentData.setupLaborClassDesc" style="width: 221px"></el-input>
<el-form-item :label="'调机过程中人数'">
<el-input class="numInput" v-model="componentData.setupCrewSize" @input="handleInput(componentData.setupCrewSize,3)" type="number" style="width: 221px"></el-input>
</el-form-item>
<el-form-item :label="'人工效率%'">
<el-input class="numInput" v-model="componentData.laborRunFactor" @input="handleInputB(componentData.laborRunFactor,2)" type="number" style="width: 221px"></el-input>
<el-form-item :label="'生产过程中人数'">
<el-input class="numInput" v-model="componentData.crewSize" @input="handleInput(componentData.crewSize,4)" type="number" style="width: 221px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="componentData" style="margin-left: 5px">
<el-form-item :label="'生产过程中人数'">
<el-input class="numInput" v-model="componentData.crewSize" @input="handleInput(componentData.crewSize,4)" type="number" style="width: 221px"></el-input>
<el-form-item :label="'机器效率%'">
<el-input class="numInput" v-model="componentData.efficiencyFactor" @input="handleInputB(componentData.efficiencyFactor,1)" type="number" style="width: 221px"></el-input>
</el-form-item>
<el-form-item :label="'人工生产速度'">
<el-input class="numInput" v-model="componentData.laborSetupTime" @input="handleInput(componentData.laborSetupTime,5)" type="number" style="width: 221px"></el-input>
<el-form-item :label="'人工效率%'">
<el-input class="numInput" v-model="componentData.laborRunFactor" @input="handleInputB(componentData.laborRunFactor,2)" type="number" style="width: 221px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="componentData" style="margin-left: 5px">
@ -395,25 +402,22 @@
<span slot="label" @click="getBaseList(118, 1)"><a herf="#">人员等级</a></span>
<el-input v-model="componentData.laborClassDesc" style="width: 221px"></el-input>
</el-form-item>
<el-form-item :label="'外协采购料号'">
<el-input v-model="componentData.outsideOpItem" style="width: 221px"></el-input>
<el-form-item>
<span slot="label" @click="getBaseList(118, 2)"><a herf="#">调机时的人员等级</a></span>
<el-input v-model="componentData.setupLaborClassDesc" style="width: 221px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="componentData" style="margin-left: 5px">
<el-form-item :label="'时长单位'">
<el-select v-model="componentData.runTimeCode" clearable style="width: 221px">
<el-option label="单位/小时" value="A"></el-option>
<el-option label="小时/单位" value="B"></el-option>
<el-option label="小时" value="C"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="'机台'">
<el-input v-model="componentData.machineNo" style="width: 221px"></el-input>
<el-form-item :label="'外协采购料号'">
<el-input v-model="componentData.outsideOpItem" style="width: 456px"></el-input>
</el-form-item>
<!-- <el-form-item :label="'机台'">-->
<!-- <el-input v-model="componentData.machineNo" style="width: 221px"></el-input>-->
<!-- </el-form-item>-->
</el-form>
<el-form :inline="true" label-position="top" :model="componentData" style="margin-left: 5px">
<el-form-item label="备注">
<el-input type="textarea" v-model="componentData.noteText" :rows="3" resize='none' show-word-limit style="width: 455px;height: 20px"></el-input>
<el-input type="textarea" v-model="componentData.noteText" :rows="3" resize='none' show-word-limit style="width: 456px;height: 20px"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:35px;margin-top:65px;text-align:center">
@ -438,6 +442,7 @@ import {
queryRoutingDetail, // routing
routingDetailSave, // routing
routingDetailUpdate, // routing
updateAlternativeStatus, //
routingDetailDelete, // routing
queryPartList, //
queryRoutingComponent, // routing
@ -1092,7 +1097,7 @@ export default {
serialNumber: '104003Table2NoteText',
tableId: '104003Table2',
tableName: 'Routing工序表',
columnProp: 'componentNoteText',
columnProp: 'noteText',
headerAlign: 'center',
align: 'left',
columnLabel: '备注',
@ -1135,13 +1140,6 @@ export default {
trigger: 'change'
}
],
phaseOutDate: [
{
required: true,
message: ' ',
trigger: 'change'
}
],
routingRevision: [
{
required: true,
@ -1321,7 +1319,7 @@ export default {
partNo: '',
partDesc: '',
routingRevision: '',
routingType: '',
routingType: 'Manufacturing',
noteText: '',
phaseInDate: new Date(+ new Date() + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, ''),
phaseOutDate: '',
@ -1344,7 +1342,7 @@ export default {
forLotByDay: '',
minLotQty: '',
detailNoteText: '',
status: 'Tentative',
status: '',
createBy: this.$store.state.user.name
}
this.subDetailList = []
@ -1520,7 +1518,7 @@ export default {
runTimeCode: '',
laborRunFactor: 100,
laborSetupTime: '',
crewSize: '',
crewSize: 1,
setupCrewSize: 1,
outsideOpItem: '',
machineNo: '',
@ -1601,10 +1599,10 @@ export default {
this.$message.warning('请选择开始时间!')
return
}
if (this.modalData.phaseOutDate === '' || this.modalData.phaseOutDate == null) {
this.$message.warning('请选择结束时间!')
return
}
// if (this.modalData.phaseOutDate === '' || this.modalData.phaseOutDate == null) {
// this.$message.warning('')
// return
// }
if (this.modalData.routingRevision === '' || this.modalData.routingRevision == null) {
this.$message.warning('请填写Routing版本号!')
return
@ -2143,14 +2141,73 @@ export default {
}).catch(() => {
})
},
/**
* 修改替代状态为 Buildable
*/
updateStatusToBuildable () {
this.$confirm(`是否修改状态为Buildable?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
updateAlternativeStatus(this.detailData).then(({data}) => {
if (data && data.code === 0) {
this.detailDataList = data.rows.detailDataList
this.detailData = data.rows.detailData
this.subDetailList = data.rows.subDetailList
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {confirmButtonText: '确定'})
//
this.alternativeChange()
}
})
}).catch(() => {
})
},
/**
* 修改替代状态为 Obsolete
*/
updateStatusToObsolete () {
this.$confirm(`是否修改状态为Obsolete?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
updateAlternativeStatus(this.detailData).then(({data}) => {
if (data && data.code === 0) {
this.detailDataList = data.rows.detailDataList
this.detailData = data.rows.detailData
this.subDetailList = data.rows.subDetailList
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {confirmButtonText: '确定'})
//
this.alternativeChange()
}
})
}).catch(() => {
})
},
/**
* 替代改变事件
*/
alternativeChange () {
queryRoutingComponent(this.detailData).then(({data}) => {
if (data && data.code === 0) {
this.detailDataList = data.rows.detailDataList
this.detailData = data.rows.detailData
this.subDetailList = data.rows.componentList
this.subDetailList = data.rows.subDetailList
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'

10
src/views/modules/proofing/requestForProofing.vue

@ -148,27 +148,27 @@
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="customerDesc" :rules="rules.customerDesc">
<span slot="label" style="" @click="getBaseList(102,1)"><a herf="#">客户</a></span>
<el-input v-model="modalData.customerDesc" readonly @focus="getBaseList(102,1)" style="width: 221px"></el-input>
<el-input v-model="modalData.customerDesc" style="width: 221px"></el-input>
</el-form-item>
<el-form-item prop="trackerName" :rules="rules.trackerName">
<span slot="label" style="" @click="getBaseList(103,1)"><a herf="#">跟单员</a></span>
<el-input v-model="modalData.trackerName" readonly @focus="getBaseList(103,1)" style="width: 221px"></el-input>
<el-input v-model="modalData.trackerName" style="width: 221px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="projectName" :rules="rules.projectName">
<span slot="label" style="" @click="getBaseList(104,1)"><a herf="#">项目</a></span>
<el-input v-model="modalData.projectName" readonly @focus="getBaseList(104,1)" style="width: 221px"></el-input>
<el-input v-model="modalData.projectName" style="width: 221px"></el-input>
</el-form-item>
<el-form-item prop="engineerName" :rules="rules.engineerName">
<span slot="label" style="" @click="getBaseList(103,2)"><a herf="#">工程师</a></span>
<el-input v-model="modalData.engineerName" readonly @focus="getBaseList(103,2)" style="width: 221px"></el-input>
<el-input v-model="modalData.engineerName" style="width: 221px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="partName" :rules="rules.partName">
<span slot="label" @click="getProjectPartList()"><a>项目物料</a></span>
<el-input v-model="modalData.partName" readonly @focus="getProjectPartList()" style="width: 221px"></el-input>
<el-input v-model="modalData.partName" style="width: 221px"></el-input>
</el-form-item>
<el-form-item label="优先等级" prop="priorityLevel" :rules="rules.priorityLevel">
<el-select v-model="modalData.priorityLevel" style="width: 221px">

10
src/views/modules/quotation/requestForQuote.vue

@ -148,27 +148,27 @@
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="customerDesc" :rules="rules.customerDesc">
<span slot="label" style="" @click="getBaseList(102,1)"><a herf="#">客户</a></span>
<el-input v-model="modalData.customerDesc" readonly @focus="getBaseList(102,1)" style="width: 221px"></el-input>
<el-input v-model="modalData.customerDesc" style="width: 221px"></el-input>
</el-form-item>
<el-form-item prop="trackerName" :rules="rules.trackerName">
<span slot="label" style="" @click="getBaseList(103,1)"><a herf="#">跟单员</a></span>
<el-input v-model="modalData.trackerName" readonly @focus="getBaseList(103,1)" style="width: 221px"></el-input>
<el-input v-model="modalData.trackerName" style="width: 221px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="projectName" :rules="rules.projectName">
<span slot="label" style="" @click="getBaseList(104,1)"><a herf="#">项目</a></span>
<el-input v-model="modalData.projectName" readonly @focus="getBaseList(104,1)" style="width: 221px"></el-input>
<el-input v-model="modalData.projectName" style="width: 221px"></el-input>
</el-form-item>
<el-form-item prop="quoterName" :rules="rules.quoterName">
<span slot="label" style="" @click="getBaseList(103,2)"><a herf="#">报价专员</a></span>
<el-input v-model="modalData.quoterName" readonly @focus="getBaseList(103,2)" style="width: 221px"></el-input>
<el-input v-model="modalData.quoterName" style="width: 221px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="partName" :rules="rules.partName">
<span slot="label" @click="getProjectPartList()"><a>项目物料</a></span>
<el-input v-model="modalData.partName" readonly @focus="getProjectPartList()" style="width: 221px"></el-input>
<el-input v-model="modalData.partName" style="width: 221px"></el-input>
</el-form-item>
<el-form-item label="优先等级" prop="priorityLevel" :rules="rules.priorityLevel">
<el-select v-model="modalData.priorityLevel" style="width: 221px">

2481
src/views/modules/test/requestForTest.vue
File diff suppressed because it is too large
View File

136
src/views/modules/test/test_upload_file.vue

@ -0,0 +1,136 @@
<template>
<div class="customer-css">
<el-dialog :title="pageData.titleCon" :close-on-click-modal="false" :visible.sync="visible" width="390px" style="height: 520px;" class="customer-dialog">
<el-form :inline="true" label-position="top" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item class="customer-item" label="测试单号:" >
<el-input v-model="pageData.testNo" readonly style="width: 120px"></el-input>
<!-- <el-select v-model="pageData.testNo" placeholder="请选择" style="width: 120px;">-->
<!-- <el-option-->
<!-- v-for = "item in options"-->
<!-- :key = "item.key"-->
<!-- :label = "item.value"-->
<!-- :value = "item.value">-->
<!-- </el-option>-->
<!-- </el-select>-->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-upload class="customer-upload" drag
action="javascript:void(0);" ref="uploadFile" :limit="1"
:before-upload="beforeUploadHandle" :on-change="onChange"
accept="*" :auto-upload="false"
style="text-align: left;">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
</el-upload>
</el-col>
</el-row>
<el-row>
<el-col :span="24" style="margin-bottom: 30px;">
<el-form-item class="customer-item" label="备注:" >
<el-input type="textarea" style="width: 360px;" placeholder="请输入内容" v-model="pageData.fileRemark"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="saveUploadFile()">保存</el-button>
<el-button type="primary" @click="closeDialog">关闭</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {
uploadFile //
} from '@/api/quotation/quotationInformation.js'
export default {
data() {
return {
folder: '',
visible: false,
fileList: [],
pageData: {
titleCon: '',
site: this.$store.state.user.site,
createBy: this.$store.state.user.name,
testNo: '',
fileRemark: '',
folder: '',
// options: []
},
// options: [],
dataListLoading: false,
}
},
methods: {
//
init(currentRow) {
//
this.pageData = JSON.parse(JSON.stringify(currentRow))
// this.options = this.pageData.options
this.folder = this.pageData.folder
//
this.visible = true
},
//
beforeUploadHandle(file) {},
/*选择上传文件时*/
onChange(file){
this.fileList.push(file)
},
/*关闭modal*/
closeDialog(){
this.fileList = []
//
this.$emit('refreshPageTables')
//
this.visible = false
},
/*保修当前的数据*/
saveUploadFile(){
let remark = this.pageData.fileRemark
if(remark == null || remark == undefined){
remark = ''
}
/*判断文件是否上传*/
if(this.fileList == null || this.fileList.length === 0){
this.$message.error("请先上传文件!")
return false
}
// if(this.pageData.testNo === '' || this.pageData.testNo == null){
// this.$message.error("!")
// return false
// }
const formData = new FormData()
//
formData.append("file", this.fileList[0].raw)
formData.append("folder", this.folder)
formData.append("orderRef1", this.pageData.site)
formData.append("orderRef2", this.pageData.testNo)
formData.append("fileRemark", remark)
uploadFile(formData).then(({data}) => {
if (data.code === 0) {
this.$message.success(data.msg)
//
this.$refs.uploadFile.clearFiles()
this.pageData.fileRemark = ''
this.fileList = []
}else {
this.$message.warning(data.msg)
}
})
}
},
}
</script>
<style scoped lang="scss">
</style>
Loading…
Cancel
Save