Browse Source

2025/7/8

master
Aoi_Tori 8 months ago
parent
commit
05a7dba0af
  1. 6
      src/api/part/bomManagement.js
  2. 268
      src/views/modules/part/bomManagement.vue
  3. 130
      src/views/modules/part/recipeManagement.vue
  4. 19
      src/views/modules/sampleManagement/technicalSpecificationDetail/com_bm_printingIndigo.vue

6
src/api/part/bomManagement.js

@ -203,6 +203,12 @@ export const queryPartListBom = data => createAPI(`/plm/bomManagement/queryPartL
* @returns {*}
*/
export const queryPartListAll = data => createAPI(`/plm/bomManagement/queryPartListAll`,'post',data)
/**
* 查出计划人
* @param data
* @returns {*}
*/
export const queryProductGroupId4 = data => createAPI(`/plm/bomManagement/queryProductGroupId4`,'post',data)
/**
* 查子物料BOM

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

@ -158,6 +158,10 @@
<el-form-item :label="'工程版本号'">
<el-input v-model="modalData.engRevision" readonly style="width: 90px"></el-input>
</el-form-item>
<el-form-item prop="productGroupId4">
<span style="cursor: pointer" slot="label" @click="queryProductGroupId4Save"><a herf="#">计划人</a></span>
<el-input v-model="modalData.productGroupId4" readonly clearable style="width: 120px"></el-input>
</el-form-item>
<!-- <el-form-item :label="'净重'">-->
<!-- <el-input-number :controls="false" :step="0" v-model="modalData.netWeight" style="width: 110px"></el-input-number>-->
<!-- </el-form-item>-->
@ -499,6 +503,16 @@
<el-option label="正式物料" value="Y"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="productGroupId4">
<span style="cursor: pointer" slot="label" @click="queryProductGroupId4"><a herf="#">计划人</a></span>
<el-input v-model="componentPartData.productGroupId4" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'零件状态'">
<el-select v-model="componentPartData.partStatus" clearable style="width: 120px">
<el-option label="Active" value="active"></el-option>
<el-option label="All" value="all"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="' '">
<el-button type="primary" @click="queryComponentPartList">查询</el-button>
</el-form-item>
@ -945,6 +959,111 @@
</el-footer>
</el-dialog>
<!-- 计划人查询模态框-->
<el-dialog title="计划人" top="17vh" :close-on-click-modal="false" v-drag :visible.sync="productGroupId4ModelFlag"
width="940px">
<el-form :inline="true" label-position="top" :model="componentPartProductGroupId4Data">
<el-form-item :label="'计划人编码'">
<el-input v-model="componentPartProductGroupId4Data.productGroupId4" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'计划人名称'">
<el-input v-model="componentPartProductGroupId4Data.productGroupName4" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button type="primary" @click="queryProductGroupId4">查询</el-button>
</el-form-item>
</el-form>
<el-table
:height="250"
:data="productGroupId4List"
@row-dblclick="getProductGroupId4RowData"
border
style="width: 100%;">
<el-table-column
v-for="(item,index) in productGroupId4ColumnList" :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>
<!-- 分页插件 -->
<el-pagination
style="margin-top: 5px"
@size-change="sizeChangeHandle5"
@current-change="currentChangeHandle5"
:current-page="pageIndex5"
:page-sizes="[20, 50, 100, 200, 500]"
:page-size="pageSize5"
:total="totalPage5"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-footer style="height:35px;margin-top:10px;text-align:center">
<el-button type="primary" @click="productGroupId4ModelFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<el-dialog title="计划人" top="17vh" :close-on-click-modal="false" v-drag :visible.sync="productGroupId4SaveModelFlag"
width="940px">
<el-form :inline="true" label-position="top" :model="componentPartProductGroupId4SaveData">
<el-form-item :label="'计划人编码'">
<el-input v-model="componentPartProductGroupId4SaveData.productGroupId4" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'计划人名称'">
<el-input v-model="componentPartProductGroupId4SaveData.productGroupName4" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button type="primary" @click="queryProductGroupId4Save">查询</el-button>
</el-form-item>
</el-form>
<el-table
:height="250"
:data="productGroupId4SaveList"
@row-dblclick="getProductGroupId4SaveRowData"
border
style="width: 100%;">
<el-table-column
v-for="(item,index) in productGroupId4ColumnList" :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>
<!-- 分页插件 -->
<el-pagination
style="margin-top: 5px"
@size-change="sizeChangeHandle6"
@current-change="currentChangeHandle6"
:current-page="pageIndex6"
:page-sizes="[20, 50, 100, 200, 500]"
:page-size="pageSize6"
:total="totalPage6"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-footer style="height:35px;margin-top:10px;text-align:center">
<el-button type="primary" @click="productGroupId4SaveModelFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<!-- chooseList模态框 -->
<ChooseList ref="baseList" @getBaseData="getBaseData"></ChooseList>
<filter-search :visible.sync="filterVisible" @search="queryByAnyField"></filter-search>
@ -990,7 +1109,9 @@ import ChooseList from '@/views/modules/common/Chooselist'
import {isAuth} from "../../../utils";
import FilterSearch from "../../common/filterSearch.vue";
import {partAllInfoSearchAny} from "../../../api/part/partAllInfoSearch";
import {bomManagementSearchAny} from "../../../api/part/bomManagement";
import {bomManagementSearchAny, queryProductGroupId4} from "../../../api/part/bomManagement";
import {queryWorkCenterList} from "../../../api/part/workCenter";
import {queryWorkerLevelList} from "../../../api/base/laborClass";
export default {
//
@ -1042,6 +1163,18 @@ export default {
this.partData.partNo = this.partData.partNo.toUpperCase()
}
},
'componentPartProductGroupId4Data.productGroupId4': {
deep: true,
handler: function (newV, oldV) {
this.componentPartData.productGroupId4 = this.componentPartProductGroupId4Data.productGroupId4
}
},
'componentPartProductGroupId4SaveData.productGroupId4': {
deep: true,
handler: function (newV, oldV) {
this.modalData.productGroupId4 = this.componentPartProductGroupId4SaveData.productGroupId4
}
}
},
//
@ -1069,6 +1202,12 @@ export default {
pageIndex4: 1,
pageSize4: 20,
totalPage4: 0,
pageIndex5: 1,
pageSize5: 20,
totalPage5: 0,
pageIndex6: 1,
pageSize6: 20,
totalPage6: 0,
selectedDataNum: 0,
//
searchData: {
@ -1115,7 +1254,8 @@ export default {
updateBy: '',
printUnit: '',
printUnitName: '',
officialFlag: ''
officialFlag: '',
productGroupId4: ''
},
detailData: {
site: this.$store.state.user.site,
@ -1179,9 +1319,25 @@ export default {
plmPartNo: '',
partDesc: '',
status: '',
productGroupId4: '',
partStatus: 'all',
page: 1,
limit: 10
},
componentPartProductGroupId4Data: {
productGroupId4: '',
productGroupName4: '',
site: this.$store.state.user.site,
page: 1,
limit: 20
},
componentPartProductGroupId4SaveData: {
productGroupId4: '',
productGroupName4: '',
site: this.$store.state.user.site,
page: 1,
limit: 20
},
copyPartData: {
type: '',
site: this.$store.state.user.site,
@ -1278,6 +1434,8 @@ export default {
operationList: [],
multiLevelStructureList: [],
componentPartBomList: [],
productGroupId4List: [],
productGroupId4SaveList: [],
// ======== ========
columnList: [
{
@ -1688,7 +1846,7 @@ export default {
columnWidth: 130
},
{
columnProp: 'partStatus',
columnProp: 'partStatusDesc',
headerAlign: "center",
align: "left",
columnLabel: '零件状态',
@ -2672,6 +2830,30 @@ export default {
columnWidth: 80
},
],
productGroupId4ColumnList: [
{
columnProp: 'productGroupId4',
headerAlign: "center",
align: "left",
columnLabel: '计划人编码',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 80
},
{
columnProp: 'productGroupName4',
headerAlign: "center",
align: "left",
columnLabel: '计划人名称',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 100
}
],
// ======== ========
rules: {
partNo: [
@ -2808,6 +2990,8 @@ export default {
copyAlternativeModelFlag: false,
headerSaveFlag: false,
manufStructCostDistribModal: false,
productGroupId4ModelFlag: false,
productGroupId4SaveModelFlag: false,
filterVisible: false,
isFilterSearch: false,
filterSearchData: {},
@ -3517,7 +3701,8 @@ export default {
status: this.detailData.status,
createBy: this.$store.state.user.name,
updateBy: this.$store.state.user.name,
informationList: this.subDetailList
informationList: this.subDetailList,
productGroupId4: this.modalData.productGroupId4
}
if (this.modalData.flag === '1') {
this.saveAllLoading = true
@ -4747,6 +4932,81 @@ export default {
this.isFilterSearch = true
this.filterVisible = false
},
queryProductGroupId4(){
this.componentPartProductGroupId4Data.productGroupId4 = this.componentPartData.productGroupId4
this.componentPartProductGroupId4Data.limit = this.pageSize5
this.componentPartProductGroupId4Data.page = this.pageIndex5
this.componentPartProductGroupId4Data.site = this.$store.state.user.site
queryProductGroupId4(this.componentPartProductGroupId4Data).then(({data}) => {
if (data && data.code === 0) {
this.productGroupId4List = data.rows.list
this.pageIndex5 = data.rows.currPage
this.pageSize5 = data.rows.pageSize
this.totalPage5 = data.rows.totalCount
this.productGroupId4ModelFlag = true
} else {
this.productGroupId4List = []
}
})
},
getProductGroupId4RowData(row) {
this.componentPartData.productGroupId4 = row.productGroupId4
queryPartListAll(this.componentPartData).then(({data}) => {
if (data && data.code === 0) {
this.componentPartList = data.page.list
} else {
this.componentPartList = []
}
})
this.productGroupId4ModelFlag = false
},
sizeChangeHandle5(val){
this.pageSize5 = val
this.pageIndex5 = 1
this.queryProductGroupId4()
},
currentChangeHandle5(val) {
this.pageIndex5 = val
this.queryProductGroupId4()
},
sizeChangeHandle6(val){
this.pageSize6 = val
this.pageIndex6 = 1
this.queryProductGroupId4Save()
},
currentChangeHandle6(val) {
this.pageIndex6 = val
this.queryProductGroupId4Save()
},
queryProductGroupId4Save(){
this.componentPartProductGroupId4SaveData.productGroupId4 = this.modalData.productGroupId4
this.componentPartProductGroupId4SaveData.limit = this.pageSize6
this.componentPartProductGroupId4SaveData.page = this.pageIndex6
this.componentPartProductGroupId4SaveData.site = this.$store.state.user.site
queryProductGroupId4(this.componentPartProductGroupId4SaveData).then(({data}) => {
if (data && data.code === 0) {
this.productGroupId4SaveList = data.rows.list
this.pageIndex6 = data.rows.currPage
this.pageSize6 = data.rows.pageSize
this.totalPage6 = data.rows.totalCount
this.productGroupId4SaveModelFlag = true
} else {
this.productGroupId4SaveList = []
}
})
},
getProductGroupId4SaveRowData(row){
this.modalData.productGroupId4 = row.productGroupId4
this.productGroupId4SaveModelFlag = false
}
}
}
</script>

130
src/views/modules/part/recipeManagement.vue

@ -152,6 +152,10 @@
<el-form-item :label="'工程版本号'">
<el-input v-model="modalData.engRevision" readonly style="width: 90px"></el-input>
</el-form-item>
<el-form-item prop="productGroupId4">
<span style="cursor: pointer" slot="label" @click="queryProductGroupId4Save"><a herf="#">计划人</a></span>
<el-input v-model="modalData.productGroupId4" readonly clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item>
<el-button v-if="modalData.flag === '1' && headerSaveFlag" :loading="saveHeaderLoading" type="primary" @click="saveRecipeHeader" style="margin-top: 23px;width: 120px">保存</el-button>
<el-button v-else-if="modalData.flag === '2'" type="primary" @click="copyRecipeRevision" style="margin-top: 23px;width: 120px">Copy</el-button>
@ -835,6 +839,58 @@
</el-footer>
</el-dialog>
<el-dialog title="计划人" top="17vh" :close-on-click-modal="false" v-drag :visible.sync="productGroupId4SaveModelFlag"
width="940px">
<el-form :inline="true" label-position="top" :model="componentPartProductGroupId4SaveData">
<el-form-item :label="'计划人编码'">
<el-input v-model="componentPartProductGroupId4SaveData.productGroupId4" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'计划人名称'">
<el-input v-model="componentPartProductGroupId4SaveData.productGroupName4" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button type="primary" @click="queryProductGroupId4Save">查询</el-button>
</el-form-item>
</el-form>
<el-table
:height="250"
:data="productGroupId4SaveList"
@row-dblclick="getProductGroupId4SaveRowData"
border
style="width: 100%;">
<el-table-column
v-for="(item,index) in productGroupId4ColumnList" :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>
<!-- 分页插件 -->
<el-pagination
style="margin-top: 5px"
@size-change="sizeChangeHandle5"
@current-change="currentChangeHandle5"
:current-page="pageIndex5"
:page-sizes="[20, 50, 100, 200, 500]"
:page-size="pageSize5"
:total="totalPage5"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<el-footer style="height:35px;margin-top:10px;text-align:center">
<el-button type="primary" @click="productGroupId4SaveModelFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<!-- chooseList模态框 -->
<ChooseList ref="baseList" @getBaseData="getBaseData"></ChooseList>
<filter-search :visible.sync="filterVisible" @search="queryByAnyField"></filter-search>
@ -879,6 +935,7 @@ import {isAuth} from "../../../utils";
import FilterSearch from "../../common/filterSearch.vue";
import {bomSearchHeaderAny} from "../../../api/part/bomSearch3";
import {recipeManagementSearchAny} from "../../../api/part/recipeManagement";
import {queryProductGroupId4} from "../../../api/part/bomManagement";
export default {
//
@ -957,6 +1014,9 @@ export default {
pageIndex4: 1,
pageSize4: 20,
totalPage4: 0,
pageIndex5: 1,
pageSize5: 20,
totalPage5: 0,
selectedDataNum: 0,
//
searchData: {
@ -1002,7 +1062,15 @@ export default {
updateBy: '',
printUnit: '',
printUnitName: '',
officialFlag: ''
officialFlag: '',
productGroupId4: '',
},
componentPartProductGroupId4SaveData: {
productGroupId4: '',
productGroupName4: '',
site: this.$store.state.user.site,
page: 1,
limit: 20
},
detailData: {
site: this.$store.state.user.site,
@ -1176,6 +1244,7 @@ export default {
componentPartCurrentRow: {},
// ======== ========
dataList: [],
productGroupId4SaveList: [],
partList: [],
componentPartList: [],
copyPartList: [],
@ -1426,6 +1495,30 @@ export default {
columnWidth: 100
}
],
productGroupId4ColumnList: [
{
columnProp: 'productGroupId4',
headerAlign: "center",
align: "left",
columnLabel: '计划人编码',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 80
},
{
columnProp: 'productGroupName4',
headerAlign: "center",
align: "left",
columnLabel: '计划人名称',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 100
}
],
partColumnList: [
{
columnProp: 'plmPartNo',
@ -2780,6 +2873,7 @@ export default {
copyAlternativeModelFlag: false,
headerSaveFlag: false,
manufStructCostDistribModal: false,
productGroupId4SaveModelFlag: false,
filterVisible: false,
isFilterSearch: false,
filterSearchData: {},
@ -4585,6 +4679,40 @@ export default {
this.isFilterSearch = true
this.filterVisible = false
},
sizeChangeHandle5(val){
this.pageSize5 = val
this.pageIndex5 = 1
this.queryProductGroupId4Save()
},
currentChangeHandle5(val) {
this.pageIndex5 = val
this.queryProductGroupId4Save()
},
queryProductGroupId4Save(){
this.componentPartProductGroupId4SaveData.productGroupId4 = this.modalData.productGroupId4
this.componentPartProductGroupId4SaveData.limit = this.pageSize5
this.componentPartProductGroupId4SaveData.page = this.pageIndex5
this.componentPartProductGroupId4SaveData.site = this.$store.state.user.site
queryProductGroupId4(this.componentPartProductGroupId4SaveData).then(({data}) => {
if (data && data.code === 0) {
this.productGroupId4SaveList = data.rows.list
this.pageIndex5 = data.rows.currPage
this.pageSize5 = data.rows.pageSize
this.totalPage5 = data.rows.totalCount
this.productGroupId4SaveModelFlag = true
} else {
this.productGroupId4SaveList = []
}
})
},
getProductGroupId4SaveRowData(row){
this.modalData.productGroupId4 = row.productGroupId4
this.productGroupId4SaveModelFlag = false
}
}
}
</script>

19
src/views/modules/sampleManagement/technicalSpecificationDetail/com_bm_printingIndigo.vue

@ -36,7 +36,7 @@
</el-table-column>
<el-table-column label="色序" header-align="center">
<el-table-column
prop="order"
prop="showOrder"
header-align="center"
align="left"
min-width="100"
@ -161,12 +161,13 @@
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-form-item :label="'印刷面'">
<el-select v-model="colorData.printSide" style="width: 130px">
<el-option label="Front" value="front"></el-option>
<el-option label="Back" value="back"></el-option>
<el-option label="Front" value="Front"></el-option>
<el-option label="Back" value="Back"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="'色序'">
<el-input v-model="colorData.order" :disabled="this.colorData.id!==0" type="number" style="width: 130px" onkeyup="value=value.replace(/^(0+)|[^\d]+/g,'')" ></el-input>
<!-- <el-input v-model="colorData.order" :disabled="this.colorData.id!==0" type="number" style="width: 130px" onkeyup="value=value.replace(/^(0+)|[^\d]+/g,'')" ></el-input>-->
<el-input v-model="colorData.showOrder" type="number" style="width: 130px" ></el-input>
</el-form-item>
<el-form-item >
<span slot="label" style="" @click="getBaseList(133,1)"><a herf="#">油墨代号/颜色IFS No</a></span>
@ -261,6 +262,7 @@
codeNo:'',
printSide:'',
order:'',
showOrder: null,
colorReference:'',
inkCode:'',
colorMatch:'',
@ -331,8 +333,8 @@
}
let number = 1
for (let i = 0; i < this.colorTable.length; i++) {
if (number <= this.colorTable[i].order) {
number = Number(this.colorTable[i].order) + 1
if (number <= this.colorTable[i].showOrder) {
number = Number(this.colorTable[i].showOrder) + 1
}
}
this.colorData = {
@ -340,7 +342,8 @@
site: this.searchData.site,
codeNo: this.searchData.codeNo,
order: number,
printSide: 'front',
showOrder: null,
printSide: 'Front',
colorReference: '',
inkCode: '',
colorMatch: '',
@ -398,7 +401,7 @@
let tempData = {
site: this.searchData.site,
codeNo: this.searchData.codeNo,
printSide: 'front',
printSide: 'Front',
}
saveBMPrintIndigoColorBatch(tempData).then(({data}) => {
if (data && data.code === 0) {

Loading…
Cancel
Save