Merge branch 'dev-scheduling' of http://42.192.7.176:3000/suojin/jonhon-mes-web into dev-scheduling

dev-scheduling
姜雪 3 weeks ago
commit 7f3a868bc1
  1. 13
      public/config.js
  2. 9
      src/api/qualityManagement/remindRedeem/remindRedeem.js
  3. 20
      src/views/basicData/components/addRuleDialog.vue
  4. 2
      src/views/inboundOutboundManagement/components/addEditDialog.vue
  5. 4
      src/views/inboundOutboundManagement/returnReceiving.vue
  6. 4
      src/views/oem/outsourcingAssignmentControl/index.vue
  7. 2
      src/views/processManagement/components/assignDaialog.vue
  8. 5
      src/views/processManagement/components/processMainte/dsPartBasicInfo.vue
  9. 13
      src/views/processManagement/sinTer/index.vue
  10. 3
      src/views/productionManagement/productionMonitoring/index.vue
  11. 91
      src/views/productionSchedulingPlan/basic/qualityGrade.vue
  12. 20
      src/views/qualityManagement/remindRedeem/components/batchAdd.vue
  13. 28
      src/views/qualityManagement/remindRedeem/index.vue
  14. 20
      src/views/qualityManagement/similarParts/index.vue
  15. 14
      src/views/warehouseManagement/materialPreserve.vue

@ -2,9 +2,15 @@ window.LOAD_Remind = 86400000
window.TIMED_Trigger=86400000 window.TIMED_Trigger=86400000
window.YINGDU_Trigger=3000 //硬度检测 轮巡时间 window.YINGDU_Trigger=3000 //硬度检测 轮巡时间
window.PROCESS_FLOW_CARD_HEAT_METER="http://192.168.169.172:9000/jmreport/view/1154214123878776832"//工艺流程卡地址 热表公用 window.PROCESS_FLOW_CARD_HEAT_METER="http://192.168.169.172:9000/jmreport/view/1179931264832327680"//工艺流程卡地址 热表公用
window.PROCESS_FLOW_CARD_HEAT_SINTER="http://192.168.169.172:9000/jmreport/view/1179931277666897920"//工艺流程卡地址 烧结
// 车间订单 标签打印 ?wold=20215636716975144988num=12
window.PROCESS_FLOW_CARD_PRINT="http://192.168.169.172:9000/jmreport/view/11963457061889843202"
// 车间订单 配套单打印 192.168.169.172:9000/jmreport/view/1196345720432840704?yold=2021505360038002689
window.PROCESS_FLOW_CARD_PRINT_SUPPORT="http://192.168.169.172:9000/jmreport/view/11963457061889843202"
window.PROCESS_FLOW_CARD_HEAT_SINTER="http://192.168.169.172:9000/jmreport/view/1154632438942031872"//工艺流程卡地址 烧结
window.SCHEDULING_DASHBOARD = "http://192.168.169.172:8088/SCHEDULING_DASHBOARD" //排产看板地址 window.SCHEDULING_DASHBOARD = "http://192.168.169.172:8088/SCHEDULING_DASHBOARD" //排产看板地址
window.SCHEDULING_EXCEPTION = "http://192.168.169.172:8088/SCHEDULING_EXCEPTION" //排产异常地址 window.SCHEDULING_EXCEPTION = "http://192.168.169.172:8088/SCHEDULING_EXCEPTION" //排产异常地址
@ -14,6 +20,9 @@ window.PROCESS_QUALITY_RECORD = "http://192.168.169.172:9000/jmreport/view/11531
window.WARE_MATERIAL_STOCK = "http://192.168.169.172:9000/jmreport/view/1186917825215324160" //仓管-库存汇总-存料登记卡打印 window.WARE_MATERIAL_STOCK = "http://192.168.169.172:9000/jmreport/view/1186917825215324160" //仓管-库存汇总-存料登记卡打印
// 配套单打印 /jmreport/view/1188705683594706944?yoId=2008439579960193026 // 配套单打印 /jmreport/view/1188705683594706944?yoId=2008439579960193026
window.COMPANION = "http://192.168.169.172:9000/jmreport/view/1188705683594706944" window.COMPANION = "http://192.168.169.172:9000/jmreport/view/1188705683594706944"

@ -51,3 +51,12 @@ export const getPartList = () =>{
method:'get' method:'get'
}) })
} }
// 子件下拉
export const getSubPartList = (params) =>{
return request({
url:'/api/blade-desk/dsPartRelation/getSubParts',
method:'get',
params
})
}

@ -64,13 +64,6 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="单件面积上限(dm²)" prop="upArea">
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].upArea`" :rules="formRules.upArea">
<el-input v-model="scope.row.upArea" placeholder="请输入单件面积上限"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" label="单件面积下限(dm²)" prop="lowArea"> <el-table-column align="center" label="单件面积下限(dm²)" prop="lowArea">
<template #default="scope"> <template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].lowArea`" :rules="formRules.lowArea"> <el-form-item :prop="`tableData[${scope.$index}].lowArea`" :rules="formRules.lowArea">
@ -78,10 +71,10 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="单面积上限(dm²)" prop="singleUpArea"> <el-table-column align="center" label="单面积上限(dm²)" prop="upArea">
<template #default="scope"> <template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].singleUpArea`" :rules="formRules.singleUpArea"> <el-form-item :prop="`tableData[${scope.$index}].upArea`" :rules="formRules.upArea">
<el-input v-model="scope.row.singleUpArea" placeholder="请输入单批面积上限"></el-input> <el-input v-model="scope.row.upArea" placeholder="请输入单件面积上限"></el-input>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
@ -92,6 +85,13 @@
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="单批面积上限(dm²)" prop="singleUpArea">
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].singleUpArea`" :rules="formRules.singleUpArea">
<el-input v-model="scope.row.singleUpArea" placeholder="请输入单批面积上限"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" label="限制类型" prop="limitType"> <el-table-column align="center" label="限制类型" prop="limitType">
<template #header> <template #header>
<span><i style="color: red">*</i>限制类型</span> <span><i style="color: red">*</i>限制类型</span>

@ -238,7 +238,7 @@ export default {
// //
changeWarehouse(val){ changeWarehouse(val){
if(this.tableData.length > 0){ if(this.tableData.length > 0){
if(this.tableData.length == 1){ if(this.tableData.length == 1 && this.tableData[0].goodsCode){
this.tableData[0].slId = '' this.tableData[0].slId = ''
getLocationList({ getLocationList({
shId:this.ruleForm.shId, shId:this.ruleForm.shId,

@ -22,7 +22,7 @@
<!-- 物料入库 --> <!-- 物料入库 -->
<!-- <el-form v-model="searchFrom"> --> <!-- <el-form v-model="searchFrom"> -->
<!-- <el-form-item label="物料编号:"> --> <!-- <el-form-item label="物料编号:"> -->
<span>物料编号</span> <span style="font-size:12px;color:#606266;">物料编号</span>
<el-input style="width:240px;" v-model="searchFrom.prtno" @keyup.enter.native="changeCode"></el-input> <el-input style="width:240px;" v-model="searchFrom.prtno" @keyup.enter.native="changeCode"></el-input>
<!-- </el-form-item> --> <!-- </el-form-item> -->
<!-- </el-form> --> <!-- </el-form> -->
@ -113,7 +113,7 @@ export default {
calcHeight: 32, calcHeight: 32,
simplePage: false, simplePage: false,
searchShow: true, searchShow: true,
searchMenuSpan: 6, searchMenuSpan: 18,
searchIcon: true, searchIcon: true,
searchIndex: 3, searchIndex: 3,
tree: false, tree: false,

@ -46,10 +46,6 @@
<template #proportion="{ row }"> <template #proportion="{ row }">
<span>{{ row.proportion ? row.proportion + "%" : "0%" }}</span> <span>{{ row.proportion ? row.proportion + "%" : "0%" }}</span>
</template> </template>
<template #menu-form>
<el-button type="primary" @click="handleDelete">发送审批 </el-button>
</template>
</avue-crud> </avue-crud>
<!-- 导入 --> <!-- 导入 -->
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport" <basic-import v-if="isShowImport" title="导入" :isShow="isShowImport"

@ -55,7 +55,7 @@ export default {
type: 'select', type: 'select',
filterable:true, filterable:true,
clearable: true, clearable: true,
dicUrl: '/blade-system/user/page?current=1&&size=99999', dicUrl: '/blade-system/user/list-process-engineer',
props: { props: {
label: 'realName', label: 'realName',
value: 'id', value: 'id',

@ -691,6 +691,7 @@ export default {
search: false, search: false,
sortable: true, sortable: true,
overHidden: true, overHidden: true,
cell: true,
}, },
{ {
label: '面积(d㎡)', label: '面积(d㎡)',
@ -698,13 +699,13 @@ export default {
search: false, search: false,
sortable: true, sortable: true,
overHidden: true, overHidden: true,
cell: true, cell: false,
}, },
{ {
label: '总面积', label: '总面积',
prop: 'totalArea', prop: 'totalArea',
cell: true, cell: false,
search: false, search: false,
sortable: true, sortable: true,
overHidden: true, overHidden: true,

@ -237,15 +237,18 @@ export default {
symbol: 'roundRect', symbol: 'roundRect',
itemStyle: { itemStyle: {
color: '#284c89', color: '#284c89',
borderWidth: 2,
borderColor: '#fff',
borderRadius: 4, //
}, },
// ==*+ // ==*+
symbolSize: params => { symbolSize: (val, params) => {
// params/name // params/name
const nodeName = params?.name || '未知节点'; const nodeName = params?.name || '未知节点';
const childCount = params?.children?.length || 0; const childCount = params?.children?.length || 0;
const childText = `${childCount}个子件`; const childText = `${childCount}个子件`;
// //
const textWidth = Math.max(nodeName.length * 12, childText.length * 12) + 20; const textWidth = Math.max(nodeName.length * 12, childText.length * 12) + 30;
return [Math.max(textWidth, 100), 60]; // 60px return [Math.max(textWidth, 100), 60]; // 60px
}, },
@ -258,9 +261,11 @@ export default {
lineHeight: 20, lineHeight: 20,
color: '#fff', color: '#fff',
formatter: params => { formatter: params => {
const childText =params.data.quota>=0?`${params.data.quota}`:'' const childText = params.data.quota >= 0 ? `${params.data.quota}` : '';
// \n // \n
return `${params.name}${childText ? '\n' + childText : ''}`; return `${params.data.partCode}\n${params.name}${
childText ? '\n' + childText : ''
}`;
}, },
}, },
}, },

@ -341,6 +341,7 @@ export default {
sortable: true, sortable: true,
overHidden: true, overHidden: true,
width: 150, width: 150,
searchOrder:19,
}, },
{ {
label: '批次号', label: '批次号',
@ -349,6 +350,7 @@ export default {
sortable: true, sortable: true,
overHidden: true, overHidden: true,
width: 150, width: 150,
searchOrder:18,
}, },
{ {
label: '流程卡号', label: '流程卡号',
@ -357,6 +359,7 @@ export default {
sortable: true, sortable: true,
overHidden: true, overHidden: true,
width: 150, width: 150,
searchOrder:20,
}, },
{ {
label: '产品型号', label: '产品型号',

@ -23,7 +23,12 @@
<template #menu-right> </template> <template #menu-right> </template>
<template #menu="{ row }"> </template> <template #menu="{ row }"> </template>
<template #heatTreat="scope"> </template> <template #isThickness="scope">
<span>{{scope.row.isThickness == 1 ? '√' : ''}}</span>
</template>
<template #isLocal="scope">
<span>{{scope.row.isLocal == 1 ? '√' : ''}}</span>
</template>
</avue-crud> </avue-crud>
</basic-container> </basic-container>
</template> </template>
@ -113,13 +118,13 @@ export default {
sortable: true, sortable: true,
span: 12, span: 12,
type:'select', type:'select',
rules: [ // rules: [
{ // {
required: true, // required: true,
message: '请选择', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
dicData:[ dicData:[
{ {
label:'军品', label:'军品',
@ -143,13 +148,13 @@ export default {
sortable: true, sortable: true,
span: 12, span: 12,
type:'select', type:'select',
rules: [ // rules: [
{ // {
required: true, // required: true,
message: '请选择', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
dicData:[ dicData:[
{ {
label:'军品', label:'军品',
@ -165,7 +170,50 @@ export default {
} }
] ]
}, },
{
label:"局部镀",
prop:"isLocal",
type:'radio',
rules:[
{
required: true,
message: '请选择',
trigger: 'blur',
},
],
dicData:[
{
label:'是',
value:1
},
{
label:'否',
value:0
}
]
},
{
label:"厚金区固定厚度",
prop:"isThickness",
type:'radio',
dicData:[
{
label:'是',
value:1
},
{
label:'否',
value:0
}
],
rules:[
{
required: true,
message: '请选择',
trigger: 'blur',
},
],
}
], ],
}, },
@ -175,15 +223,20 @@ export default {
methods: { methods: {
beforeOpen(done, type) { beforeOpen(done, type) {
if (['edit', 'view'].includes(type)) { if (['edit', 'view'].includes(type)) {
done();
}else if(['add'].includes(type)){
this.form.isLocal = 0
this.form.isThickness = 0
done();
} }
done();
}, },
rowSave(row, done, loading) { rowSave(row, done, loading) {
console.log(row); console.log(row);
let params = { let params = {
qualityGrade:row.qualityGrade, qualityGrade:row.qualityGrade,
types:row.type types:row.type,
isLocal:row.isLocal,
isThickness:row.isThickness
} }
addGualityGrade(params).then( addGualityGrade(params).then(
() => { () => {

@ -80,13 +80,13 @@
</template> --> </template> -->
<template #default="scope"> <template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].subPartId`" :rules="formRules.subPartId"> <el-form-item :prop="`tableData[${scope.$index}].subPartCode`" :rules="formRules.subPartCode">
<el-select <el-select
v-model="scope.row.subPartId" v-model="scope.row.subPartCode"
placeholder="请选择" placeholder="请选择"
style="width: 100%" style="width: 100%"
> >
<el-option v-for="item in pqList" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in scope.row.subList" :key="item.partCode" :label="item.partCode" :value="item.partCode"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</template> </template>
@ -175,7 +175,7 @@
<script> <script>
// import { getWorkCenterList } from '@/api/processManagement/addQuantity.js'; // import { getWorkCenterList } from '@/api/processManagement/addQuantity.js';
import {getPqList,addBatch,getPartList} from '@/api/qualityManagement/remindRedeem/remindRedeem' import {getPqList,addBatch,getPartList,getSubPartList} from '@/api/qualityManagement/remindRedeem/remindRedeem'
// import { submitBatchData } from '@/api/processManagement/periodical.js'; // // import { submitBatchData } from '@/api/processManagement/periodical.js'; //
export default { export default {
@ -188,6 +188,7 @@ export default {
return { return {
openShow: false, openShow: false,
wcData: [], wcData: [],
subList:[],
formError: '', // formError: '', //
// //
@ -263,6 +264,16 @@ export default {
this.partData = res.data.data this.partData = res.data.data
}) })
}, },
getSubPartList(val,index){
let tmp = this.partData.find(item => item.id === val)
console.log('tmp----------------',tmp)
getSubPartList({
partCode:tmp && tmp.partCode
}).then(res =>{
console.log('res----------------',res)
this.form.tableData[index].subList = res.data.data
})
},
getPqData(){ getPqData(){
getPqList().then(res =>{ getPqList().then(res =>{
this.pqList = res.data.data this.pqList = res.data.data
@ -278,6 +289,7 @@ export default {
changePart(val,index){ changePart(val,index){
let tmp = this.partData.find(item => item.id == val) let tmp = this.partData.find(item => item.id == val)
this.form.tableData[index].partName = tmp.partName this.form.tableData[index].partName = tmp.partName
this.getSubPartList(val,index)
}, },
selectChange(list, row) { selectChange(list, row) {

@ -26,9 +26,9 @@
<!-- 导入 --> <!-- 导入 -->
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport" <basic-import v-if="isShowImport" title="导入" :isShow="isShowImport"
templateUrl="/blade-desk/QA/CycleTestItem/download-excel-template" templateUrl="/blade-desk/QA/RemindMsg/downloadExcelTemplate"
templateName="试验项目模板.xls" templateName="提醒信息维护模板.xls"
importUrl="/blade-desk/QA/CycleTestItem/import-excel" importUrl="/blade-desk/QA/RemindMsg/importExcel"
@closeDialog="closeDialog"></basic-import> @closeDialog="closeDialog"></basic-import>
<batch-add v-if="showDialog" :show-dialog="showDialog" @closeDialog="closeDialog"></batch-add> <batch-add v-if="showDialog" :show-dialog="showDialog" @closeDialog="closeDialog"></batch-add>
@ -47,7 +47,7 @@ import {
remove, remove,
update, update,
} from '@/api/system/role'; } from '@/api/system/role';
import {getList,deleteRemind,editRemind} from '@/api/qualityManagement/remindRedeem/remindRedeem' import {getList,deleteRemind,editRemind,getSubPartList} from '@/api/qualityManagement/remindRedeem/remindRedeem'
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { validatenull } from '@/utils/validate'; import { validatenull } from '@/utils/validate';
import basicImport from '@/components/basic-import/main.vue' import basicImport from '@/components/basic-import/main.vue'
@ -144,7 +144,7 @@ export default {
rules: [ rules: [
{ {
required: true, required: true,
message: '请输入角色名称', message: '请选择零件号',
trigger: 'blur', trigger: 'blur',
}, },
], ],
@ -155,7 +155,14 @@ export default {
}, },
onChange:val =>{ onChange:val =>{
console.log('val-------------',val) console.log('val-------------',val)
this.form.partName = val.item.partName this.form.partName = val && val.item && val.item.partName
getSubPartList({
partCode:val && val.item && val.item.partCode
}).then(res =>{
console.log('option--------',this.option)
this.option.column[6].dicData = res.data.data
// this.form.tableData[index].subList = res.data.data
})
} }
}, },
{ {
@ -214,12 +221,18 @@ export default {
}, },
{ {
label: '子件编码', label: '子件编码',
prop: 'subPartId', prop: 'subPartCode',
type:'select', type:'select',
search: false, search: false,
sortable: true, sortable: true,
width: 150, width: 150,
span: 12, span: 12,
type:'select',
dicData:[],
props:{
label:"partCode",
value:"id"
}
}, },
{ {
label: '提醒内容', label: '提醒内容',
@ -349,6 +362,7 @@ export default {
this.isRushOpen = false this.isRushOpen = false
this.isBatchOpen = false this.isBatchOpen = false
this.showDialog = false this.showDialog = false
this.isShowImport = false
console.log('partName---------------------',val) console.log('partName---------------------',val)
if(val){ if(val){
this.onLoad() this.onLoad()

@ -40,7 +40,7 @@
:isShow="isShowImport" :isShow="isShowImport"
templateUrl="/blade-desk/dsSimilarParts/import-template" templateUrl="/blade-desk/dsSimilarParts/import-template"
templateName="相似零件导入模板.xls" templateName="相似零件导入模板.xls"
importUrl="/blade-desk//dsSimilarParts/import-excel-simple" importUrl="/blade-desk/dsSimilarParts/import-excel-simple"
@closeDialog="closeDialog" @closeDialog="closeDialog"
></basic-import> ></basic-import>
</basic-container> </basic-container>
@ -131,17 +131,17 @@ export default {
column: [ column: [
{ {
label: '零件', label: '零件',
prop: 'partOne', prop: 'partOneCode',
search: true, search: true,
sortable: true, sortable: true,
span: 24, span: 24,
type: 'select', // type: 'select',
filterable: true, // filterable: true,
dicUrl: '/blade-desk/dsPart/getPartList', // dicUrl: '/blade-desk/dsPart/getPartList',
props: { // props: {
label: 'partCode', // label: 'partCode',
value: 'id', // value: 'id',
}, // },
rules: [ rules: [
{ {
required: true, required: true,
@ -155,7 +155,7 @@ export default {
}, },
{ {
label: '相似零件', label: '相似零件',
prop: 'partTwo', prop: 'partTwoCode',
search: true, search: true,
sortable: true, sortable: true,
span: 24, span: 24,

@ -138,7 +138,7 @@ export default {
trigger: 'click', trigger: 'click',
}, },
], ],
dicUrl:"/api/blade-wms/stGoods/list", dicUrl:"/api/blade-wms/stGoods/list?current=1&size=9999&goodsCode={{key}}",
remote: true, remote: true,
props:{ props:{
label: 'goodsCode', label: 'goodsCode',
@ -338,6 +338,7 @@ export default {
width: 200, width: 200,
search: true, search: true,
searchLabelWidth: 60, searchLabelWidth: 60,
remote: true,
// rules: [ // rules: [
// { // {
// required: true, // required: true,
@ -350,7 +351,7 @@ export default {
value: 'id', value: 'id',
res: 'data.records', res: 'data.records',
}, },
dicUrl:'/api/blade-system/user/page' dicUrl:'/api/blade-system/user/page?current=1&size=9999&realName={{key}}'
}, },
{ {
label: '配送标记', label: '配送标记',
@ -469,10 +470,13 @@ export default {
beforeOpen(done, type) { beforeOpen(done, type) {
if (['edit', 'view'].includes(type)) { if (['edit', 'view'].includes(type)) {
console.log('form---------------------',this.form) console.log('form---------------------',this.form)
this.form.turnover = this.form.turnover + '' this.form.turnover = this.form.turnover && this.form.turnover + ''
this.form.goodsId = this.form.goodsId + '' this.form.goodsId = this.form.goodsId && this.form.goodsId + ''
done();
}else{
done();
} }
done();
}, },
handlePaint(){ handlePaint(){
this.laInData = [] this.laInData = []

Loading…
Cancel
Save