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

dev-scheduling
姜雪 4 weeks ago
commit e5612aa868
  1. 2
      src/api/qualityManagement/inspectionArchiving/rbFilePreserve.js
  2. 4
      src/api/storeManagement/materialMaintenance.js
  3. 38
      src/views/basicData/components/addRuleDialog.vue
  4. 8
      src/views/basicData/materialQuota/components/KAu.vue
  5. 15
      src/views/processManagement/procepssPlanning.vue
  6. 19
      src/views/processManagement/sinTer/index.vue
  7. 2
      src/views/productionManagement/blbWorkOrder/components/glass.vue
  8. 2
      src/views/productionManagement/blbWorkOrder/components/others.vue
  9. 33
      src/views/productionManagement/components/batchesDialog.vue
  10. 99
      src/views/productionManagement/components/outsourceDialog.vue
  11. 57
      src/views/productionManagement/productionMonitoring/index.vue
  12. 14
      src/views/productionManagement/sinTerWorkOrder/index.vue
  13. 10
      src/views/productionSchedulingPlan/basic/components/addEquipment.vue
  14. 1
      src/views/productionSchedulingPlan/basic/equipmentCapacity.vue
  15. 23
      src/views/productionSchedulingPlan/basic/qualityGrade.vue
  16. 2
      src/views/productionTesting/components/trialStandard.vue
  17. 6
      src/views/productionTesting/productionQuality.vue
  18. 4
      src/views/qualityManagement/inspectionArchiving/auditFile/index.vue
  19. 6
      src/views/qualityManagement/inspectionArchiving/rbFilePreserve/addPreserve.vue
  20. 4
      src/views/qualityManagement/inspectionArchiving/rbFilePreserve/index.vue
  21. 4
      src/views/qualityManagement/tankSolutionSystem/info.vue
  22. 8
      src/views/warehouseManagement/leveragingManagement.vue
  23. 4
      src/views/warehouseManagement/materialMaintenance.vue
  24. 4
      src/views/zhgd-work/workReport/index.vue

@ -66,7 +66,7 @@ export const getWorkList = (params) =>{
// 获取工序下拉数据 // 获取工序下拉数据
export const getProcessList = (params) =>{ export const getProcessList = (params) =>{
return request({ return request({
url:'/api/blade-desk/dsProcess/list', url:'/api/blade-desk/bsProcessSet/list',
method:'get', method:'get',
params params
}) })

@ -13,9 +13,9 @@ export const getGoodsList = params =>{
// 新增物料 // 新增物料
export const addGoods = data =>{ export const addGoods = data =>{
return request({ return request({
url:'/api/blade-wms/stGoods/save', url:`/api/blade-wms/stGoods/save`,
method:'post', method:'post',
data params:data
}) })
} }

@ -27,6 +27,8 @@
v-model="scope.row.craftAbilityId" v-model="scope.row.craftAbilityId"
placeholder="请选择" placeholder="请选择"
style="width: 100%" style="width: 100%"
filterable
> >
<el-option <el-option
v-for="item in capabilityData" v-for="item in capabilityData"
@ -53,6 +55,7 @@
v-model="scope.row.prodMarkId" v-model="scope.row.prodMarkId"
placeholder="请选择生产标识" placeholder="请选择生产标识"
style="width: 100%" style="width: 100%"
filterable
> >
<el-option <el-option
v-for="item in identificationData" v-for="item in identificationData"
@ -137,6 +140,8 @@
v-model="scope.row.oemId" v-model="scope.row.oemId"
placeholder="请选择外协厂商" placeholder="请选择外协厂商"
style="width: 100%" style="width: 100%"
filterable
clearable
> >
<el-option v-for="item in companyData" :label="item.ocName" :key="item.id" :value="item.id"></el-option> <el-option v-for="item in companyData" :label="item.ocName" :key="item.id" :value="item.id"></el-option>
</el-select> </el-select>
@ -153,6 +158,8 @@
v-model="scope.row.centerId" v-model="scope.row.centerId"
placeholder="请选择作业中心" placeholder="请选择作业中心"
style="width: 100%" style="width: 100%"
filterable
clearable
> >
<el-option v-for="item in workCenterData" :label="item.wcName" :key="item.id" :value="item.id"></el-option> <el-option v-for="item in workCenterData" :label="item.wcName" :key="item.id" :value="item.id"></el-option>
</el-select> </el-select>
@ -204,6 +211,7 @@ export default {
form:{ form:{
tableData:[] tableData:[]
}, },
craftloading:false,
formRules:{ formRules:{
craftAbilityId:[ craftAbilityId:[
{ required: true, message: '请选择工艺能力', trigger: ['change', 'submit'] } { required: true, message: '请选择工艺能力', trigger: ['change', 'submit'] }
@ -253,6 +261,16 @@ export default {
}, },
methods:{ methods:{
// remoteMethodCraft(query){
// console.log('query', query)
// if(query){
// }else{
// getCapability().then(res =>{
// this.capabilityData = res.data.data
// })
// }
// },
getPointRule(){ getPointRule(){
getPointRule().then(res =>{ getPointRule().then(res =>{
this.pointRule = res.data.data this.pointRule = res.data.data
@ -311,16 +329,16 @@ export default {
}); });
return; return;
} }
this.form.tableData.map(item =>{ // this.form.tableData.map(item =>{
if(item.pointType == 1 && (!item.oemId || item.oemId == '')){ // if(item.pointType == 1 && (!item.oemId || item.oemId == '')){
this.formError = '指定类型为外协时,请选择外协厂商'; // this.formError = '';
return // return
} // }
if(item.pointType == 0 && (!item.centerId || item.centerId == '')){ // if(item.pointType == 0 && (!item.centerId || item.centerId == '')){
this.formError = '指定类型为厂内时,请选择作业中心'; // this.formError = '';
return // return
} // }
}) // })
console.log('form----------',this.form.tableData) console.log('form----------',this.form.tableData)
// //

@ -41,8 +41,8 @@
<template #bigBatQuota-form="{ type, disabled }"> <template #bigBatQuota-form="{ type, disabled }">
<el-input v-model="form.bigBatQuota" placeholder="请输入 微孔镀金类定额" @input="validateBigBat"></el-input> <el-input v-model="form.bigBatQuota" placeholder="请输入 微孔镀金类定额" @input="validateBigBat"></el-input>
</template> </template>
<template #partQuota-form="{ type, disabled }"> <template #localBatQuota-form="{ type, disabled }">
<el-input v-model="form.partQuota" placeholder="请输入 局部镀定额" @input="validatePart"></el-input> <el-input v-model="form.localBatQuota" placeholder="请输入 局部镀定额" @input="validatePart"></el-input>
</template> </template>
<template #produceTsTarget="scope"> </template> <template #produceTsTarget="scope"> </template>
</avue-crud> </avue-crud>
@ -171,7 +171,7 @@ export default {
}, },
{ {
label: "局部镀定额", label: "局部镀定额",
prop: "partQuota", prop: "localBatQuota",
sortable: true, sortable: true,
filter: true, filter: true,
span: 24, span: 24,
@ -236,7 +236,7 @@ export default {
this.form.bigBatQuota = this.validateValue(value) this.form.bigBatQuota = this.validateValue(value)
}, },
validatePart(value){ validatePart(value){
this.form.partQuota = this.validateValue(value) this.form.localBatQuota = this.validateValue(value)
}, },
addEdit() { addEdit() {
this.isOpen = true; this.isOpen = true;

@ -25,7 +25,7 @@
<el-button type="primary" @click="setIndate()">有效期维护</el-button> <el-button type="primary" @click="setIndate()">有效期维护</el-button>
</template> </template>
<template #partCode="scope"> <template #partCode="scope">
<el-button type="text" @click="openPage(scope.row)">{{scope.row.partCode}}</el-button> <span class="partSel" @dblclick="openPage(scope.row)">{{scope.row.partCode}}</span>
</template> </template>
<!-- <template #menu-right="{ size }"> </template> --> <!-- <template #menu-right="{ size }"> </template> -->
@ -107,7 +107,7 @@ export default {
tip: false, tip: false,
simplePage: true, simplePage: true,
searchShow: true, searchShow: true,
searchMenuSpan: 18, searchMenuSpan: 6,
searchIcon: true, searchIcon: true,
searchIndex: 3, searchIndex: 3,
tree: false, tree: false,
@ -148,7 +148,7 @@ export default {
{ {
label: '零件号', label: '零件号',
prop: 'partCode', prop: 'partCode',
search: false, search: true,
sortable: true, sortable: true,
overHidden: true, overHidden: true,
width: 210, width: 210,
@ -160,7 +160,7 @@ export default {
label: '零件名称', label: '零件名称',
prop: 'partName', prop: 'partName',
sortable: true, sortable: true,
search: false, search: true,
overHidden: true, overHidden: true,
width: 170, width: 170,
headerAlign: 'center', headerAlign: 'center',
@ -348,3 +348,10 @@ export default {
}, },
}; };
</script> </script>
<style lang="scss" scoped>
.partSel{
cursor: pointer;
color:#284c89 !important;
font-weight: 600;
}
</style>

@ -31,7 +31,8 @@
<div class="form-box"> <div class="form-box">
<div v-if="isComponentOpen"> <div v-if="isComponentOpen">
<div class="form-bom" ref="lineChart"></div> <div v-if="dataTree.length > 0" class="form-bom" ref="lineChart"></div>
<el-empty v-else description="数据为空"></el-empty>
</div> </div>
<div v-if="isSubOpen"> <div v-if="isSubOpen">
<avue-crud <avue-crud
@ -163,6 +164,7 @@ export default {
isSubOpen: false, isSubOpen: false,
isComponentOpen: false, isComponentOpen: false,
data: [], data: [],
dataTree: [],
}; };
}, },
methods: { methods: {
@ -190,6 +192,7 @@ export default {
this.isSubOpen = false; this.isSubOpen = false;
getDsPartTree({ partCode: this.form.bujian, zPartCode: this.form.zijian }).then(res => { getDsPartTree({ partCode: this.form.bujian, zPartCode: this.form.zijian }).then(res => {
let resData = res.data.data; let resData = res.data.data;
this.dataTree = res.data.data;
let arr = JSON.parse(JSON.stringify(resData).replace(/partName/g, 'name')); let arr = JSON.parse(JSON.stringify(resData).replace(/partName/g, 'name'));
this.$nextTick(() => { this.$nextTick(() => {
this.createBarChart(arr); this.createBarChart(arr);
@ -201,8 +204,6 @@ export default {
this.isComponentOpen = false; this.isComponentOpen = false;
} }
}, },
//
// //
resetFn() { resetFn() {
@ -240,6 +241,7 @@ export default {
borderWidth: 2, borderWidth: 2,
borderColor: '#fff', borderColor: '#fff',
borderRadius: 4, // borderRadius: 4, //
paddingLeft: 10,
}, },
// ==*+ // ==*+
symbolSize: (val, params) => { symbolSize: (val, params) => {
@ -247,9 +249,18 @@ export default {
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 nodeQuota = nodeData?.quota !== undefined ? nodeData.quota : '';
// //
const textWidth = Math.max(nodeName.length * 12, childText.length * 12) + 30; const textWidth = Math.max(nodeName.length * 12, childText.length * 12) + 30;
return [Math.max(textWidth, 100), 60]; // 60px //
let lineCount = 2; // 2 partCode + name
if (nodeQuota !== '' && nodeQuota !== null) {
lineCount = 3; // quota 3
}
// 20px + 20px
const height = lineCount * 20 + 10;
return [Math.max(textWidth, 100), height]; // 60px
}, },
label: { label: {

@ -142,7 +142,7 @@ export default {
option: { option: {
height: 'auto', height: 'auto',
calcHeight: 32, calcHeight: 32,
rowKey: 'cardNo', rowKey: 'woId',
tip: false, tip: false,
simplePage: true, simplePage: true,
searchShow: true, searchShow: true,

@ -142,7 +142,7 @@ export default {
option: { option: {
height: 'auto', height: 'auto',
calcHeight: 32, calcHeight: 32,
rowKey: 'cardNo', rowKey: 'woId',
tip: false, tip: false,
simplePage: true, simplePage: true,
searchShow: true, searchShow: true,

@ -24,7 +24,7 @@
</template> </template>
</el-popover> </el-popover>
</el-form-item> </el-form-item>
<el-form-item label="分批数量" prop="makeQty"> <el-form-item label="分批数量" prop="makeQty">
<!-- <el-input <!-- <el-input
placeholder="请输入分批数量" placeholder="请输入分批数量"
v-model="batchesForm.makeQty" v-model="batchesForm.makeQty"
@ -37,13 +37,21 @@
:min="1" :min="1"
></el-input-number> ></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="分批原因" prop="batchReason"> <el-form-item label="分批原因" prop="batchReason">
<el-select placeholder="请选择分批原因" v-model="batchesForm.batchReason"> <el-select placeholder="请选择分批原因" v-model="batchesForm.batchReason">
<el-option value="1" label="返工"></el-option> <el-option value="1" label="返工"></el-option>
<el-option value="2" label="关闭"></el-option> <el-option value="2" label="关闭"></el-option>
<el-option value="3" label="其他"></el-option> <el-option value="3" label="其他"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="车间订单号:" prop="batchReason">
{{ batchesInfo.woCode }}
</el-form-item>
<el-form-item label="流程卡号:" prop="batchReason">
{{ batchesInfo.cardNo }} </el-form-item>
<el-form-item label="批次号:" prop="batchReason">
{{ batchesInfo.batchNo }}
</el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
@ -51,12 +59,11 @@
<el-button type="primary" @click="submit()" :loading="saveLoading"> </el-button> <el-button type="primary" @click="submit()" :loading="saveLoading"> </el-button>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { inBatches,batchesPrepare } from '@/api/productionManagement/productionMonitoring'; import { inBatches, batchesPrepare } from '@/api/productionManagement/productionMonitoring';
export default { export default {
props: { props: {
showBatches: { showBatches: {
@ -77,15 +84,17 @@ export default {
makeQty: [{ required: true, message: '请输入分批数量', trigger: 'blur' }], makeQty: [{ required: true, message: '请输入分批数量', trigger: 'blur' }],
batchReason: [{ required: true, message: '请选择分批原因', trigger: 'blur' }], batchReason: [{ required: true, message: '请选择分批原因', trigger: 'blur' }],
}, },
batchesInfo: {}, //
}; };
}, },
mounted() { mounted() {
this.init() this.init();
}, },
methods: { methods: {
init(){ init() {
batchesPrepare(this.itemData[0].woId).then(res => { batchesPrepare(this.itemData[0].woId).then(res => {
console.log(res,98989898); this.batchesInfo = res.data.data;
console.log(this.batchesInfo, 98989898);
}); });
}, },
// //
@ -98,10 +107,10 @@ export default {
if (valid) { if (valid) {
this.saveLoading = true; this.saveLoading = true;
let query = { let query = {
id: this.itemData[0].woId, id: this.batchesInfo.id,
batchNo: this.itemData[0].batchNo, batchNo: this.batchesInfo.batchNo,
cardNo: this.itemData[0].cardNo, cardNo: this.batchesInfo.cardNo,
woCode: this.itemData[0].woCode, woCode: this.batchesInfo.woCode,
makeQty: this.batchesForm.makeQty, makeQty: this.batchesForm.makeQty,
batchReason: this.batchesForm.batchReason, batchReason: this.batchesForm.batchReason,
}; };

@ -17,9 +17,13 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table :data="outsourceData"> <el-table :data="outsourceData" @selection-change="handleSelectionChange">
<el-table-column align="center" type="selection"></el-table-column> <el-table-column align="center" type="selection"></el-table-column>
<el-table-column align="center" label="工序号" prop="workPlan.processSet.code"></el-table-column> <el-table-column
align="center"
label="工序号"
prop="orders"
></el-table-column>
<el-table-column <el-table-column
align="center" align="center"
label="工序代码" label="工序代码"
@ -31,26 +35,15 @@
prop="workPlan.processSet.name" prop="workPlan.processSet.name"
></el-table-column> ></el-table-column>
<el-table-column align="center" label="工艺能力" prop="caId"> <el-table-column align="center" label="工艺能力" prop="processAbility.name"> </el-table-column>
<template #default="scope">
<el-select v-model="scope.row.processAbility.caId">
<el-option
v-for="item in craftData"
:key="item.caId"
:label="item.caName"
:value="item.caId"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column align="center" label="工序描述" prop="makeMemo"> </el-table-column> <el-table-column align="center" label="工序描述" prop="makeMemo"> </el-table-column>
<el-table-column align="center" label="不可转外协原因" prop="reason"> </el-table-column> <el-table-column align="center" label="不可转外协原因" prop="reason"> </el-table-column>
</el-table> </el-table>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="closeDialog"> </el-button> <el-button @click="closeDialog" :loading="loading"> </el-button>
<el-button type="primary" @click="turnOem">确定</el-button> <el-button type="primary" @click="turnOem" :loading="loading">确定</el-button>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
@ -71,59 +64,20 @@ export default {
}, },
data() { data() {
return { return {
loading:false,
outsourceForm: {}, outsourceForm: {},
outsourceRules: { outsourceRules: {
memo: [{ required: true, message: '请输入', trigger: 'blur' }], memo: [{ required: true, message: '请输入', trigger: 'blur' }],
}, },
outsourceData: [], outsourceData: [],
craftData: [ selectedRows: [],
{
bsWorkType: null,
caCode: 'E3240',
caId: 25,
caName: '化学氧化',
keyValue: 25,
updateTime: '2023-04-03 18:35:23',
},
{
bsWorkType: null,
caCode: 'E802',
caId: 26,
caName: '镀后检验',
keyValue: 26,
updateTime: '2023-04-11 15:31:32',
},
{
bsWorkType: null,
caCode: 'E390',
caId: 27,
caName: '超声波清洗',
keyValue: 27,
updateTime: '2023-04-11 10:19:50',
},
{
bsWorkType: null,
caCode: 'E379',
caId: 28,
caName: '滚镀金或振镀金',
keyValue: 28,
updateTime: '2023-04-11 10:20:29',
},
{
bsWorkType: null,
caCode: 'E386',
caId: 36,
caName: '化学镀镍',
keyValue: 36,
updateTime: '2023-04-11 15:31:25',
},
],
}; };
}, },
mounted() { mounted() {
this.getListProProcess(); this.getListProProcess();
}, },
methods: { methods: {
//
getListProProcess() { getListProProcess() {
let params = { let params = {
woIds: this.itemData.map(item => item.woId), woIds: this.itemData.map(item => item.woId),
@ -136,22 +90,41 @@ export default {
closeDialog() { closeDialog() {
this.$emit('closeDialog'); this.$emit('closeDialog');
}, },
//
handleSelectionChange(selection) {
this.selectedRows = selection;
},
// //
turnOem() { turnOem() {
if (this.outsourceData.length == 0) { if (this.outsourceData.length == 0) {
this.$message.error('当前数据列表为空'); this.$message.error('当前数据列表为空');
return; return;
} }
if (this.selectedRows.length == 0) {
let query={ this.$message.error('请选择需要转外协的数据');
workOrderRuns:this.itemData, return;
workPlanRuns:this.outsourceData
} }
this.loading = true
let orderData = [];
this.itemData.forEach(item => {
item.runType = 1;
orderData.push({
runType: 1,
woId: item.woId,
});
});
let query = {
workOrderRuns: orderData,
workPlanRuns: this.selectedRows,
};
transferBill(query).then(res => { transferBill(query).then(res => {
this.$message.success('操作成功'); this.$message.success('操作成功');
this.closeDialog(); this.closeDialog();
}); this.loading = false
}).catch(err=>{
this.loading = false
})
}, },
}, },
}; };

@ -37,46 +37,22 @@
<el-button type="text" @click="printCraftCard_new(scope.row)">流程卡</el-button> <el-button type="text" @click="printCraftCard_new(scope.row)">流程卡</el-button>
</el-col> </el-col>
<el-col :span="6" v-if="scope.row.runStatus === 2"> <el-col :span="6" v-if="scope.row.runStatus === 2">
<el-button type="text" @click="priorityFn(scope.row)" <el-button type="text" @click="priorityFn(scope.row)">优先级</el-button>
>优先级</el-button
>
</el-col> </el-col>
<el-col :span="6" v-if="[2, 3, 4, 6].includes(scope.row.runStatus)"> <el-col :span="6" v-if="[2, 3, 4, 6].includes(scope.row.runStatus)">
<el-button <el-button type="text" @click="handleBatches(scope.row)">分批</el-button>
type="text"
@click="handleBatches(scope.row)"
>分批</el-button
>
</el-col> </el-col>
<el-col :span="6" v-if="scope.row.runStatus === 3 || scope.row.runStatus === 4"> <el-col :span="6" v-if="scope.row.runStatus === 3 || scope.row.runStatus === 4">
<el-button <el-button type="text" @click="handleAbnormal(scope.row)">异常申报</el-button>
type="text"
@click="handleAbnormal(scope.row)"
>异常申报</el-button
>
</el-col> </el-col>
<el-col :span="6" v-if="scope.row.runStatus <= 6 && scope.row.runStatus !== 5"> <el-col :span="6" v-if="scope.row.runStatus <= 6 && scope.row.runStatus !== 5">
<el-button <el-button type="text" @click="handleOutsource(scope.row)">转外协</el-button>
type="text"
@click="handleOutsource(scope.row)"
>转外协</el-button
>
</el-col> </el-col>
<el-col :span="6" v-if="scope.row.runStatus <= 6 && scope.row.runStatus !== 5"> <el-col :span="6" v-if="scope.row.runStatus <= 6 && scope.row.runStatus !== 5">
<el-button <el-button type="text" @click="handleSintering(scope.row)">转烧结</el-button>
type="text"
@click="handleSintering(scope.row)"
>转烧结</el-button
>
</el-col> </el-col>
<el-col :span="6" v-if="scope.row.runStatus < 15"> <el-col :span="6" v-if="scope.row.runStatus < 15">
<el-button type="text" @click="handleClose(scope.row)" <el-button type="text" @click="handleClose(scope.row)">关闭</el-button>
>关闭</el-button
>
</el-col> </el-col>
</el-row> </el-row>
</template> </template>
@ -191,7 +167,7 @@ export default {
option: { option: {
height: 'auto', height: 'auto',
calcHeight: 32, calcHeight: 32,
rowKey: 'cardNo', rowKey: 'woId',
tip: false, tip: false,
simplePage: true, simplePage: true,
searchShow: true, searchShow: true,
@ -341,7 +317,7 @@ export default {
sortable: true, sortable: true,
overHidden: true, overHidden: true,
width: 150, width: 150,
searchOrder:19, searchOrder: 19,
}, },
{ {
label: '批次号', label: '批次号',
@ -350,7 +326,7 @@ export default {
sortable: true, sortable: true,
overHidden: true, overHidden: true,
width: 150, width: 150,
searchOrder:18, searchOrder: 18,
}, },
{ {
label: '流程卡号', label: '流程卡号',
@ -359,7 +335,7 @@ export default {
sortable: true, sortable: true,
overHidden: true, overHidden: true,
width: 150, width: 150,
searchOrder:20, searchOrder: 20,
}, },
{ {
label: '产品型号', label: '产品型号',
@ -658,7 +634,6 @@ export default {
handleClose(row) { handleClose(row) {
this.itemData = [row]; this.itemData = [row];
this.showClose = true; this.showClose = true;
}, },
// //
@ -669,7 +644,7 @@ export default {
type: 'warning', type: 'warning',
}).then(() => { }).then(() => {
let query = { let query = {
id: row.yoId, yoId: row.yoId,
yieldType: '12002', yieldType: '12002',
}; };
turnType(query).then(res => { turnType(query).then(res => {
@ -698,6 +673,14 @@ export default {
submitPrint() { submitPrint() {
this.$refs.printForm.validate(valid => { this.$refs.printForm.validate(valid => {
if (valid) { if (valid) {
let ids = this.selectionList.map(item => item.woId);
window.open(
window.PROCESS_FLOW_CARD_PRINT +
'?wolds=' +
ids.join(',') +
'&num=' +
this.printForm.quantity
);
this.printDialog = false; this.printDialog = false;
} }
}); });

@ -154,7 +154,7 @@ export default {
option: { option: {
height: 'auto', height: 'auto',
calcHeight: 32, calcHeight: 32,
rowKey: 'cardNo', rowKey: 'woId',
tip: false, tip: false,
simplePage: true, simplePage: true,
searchShow: true, searchShow: true,
@ -583,12 +583,14 @@ export default {
handlePrint() { handlePrint() {
if (this.selectionList.length == 0) { if (this.selectionList.length == 0) {
this.$message.error('请先选择数据'); this.$message.error('请先选择数据');
} else { return false
this.printForm = { }
quantity: 1, if(this.selectionList.length > 1){
}; this.$message.error('只能选择一条数据');
this.printDialog = true; return false
} }
window.open(window.PROCESS_FLOW_CARD_PRINT_SUPPORT+'?yold='+this.selectionList[0].yoId);
}, },
// //
handleAbnormal(row) { handleAbnormal(row) {

@ -113,13 +113,13 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="工序" width="150"> <el-table-column align="center" label="工序" width="150">
<template #header> <!-- <template #header>
<span><i style="color: red">*</i>工序</span> <span><i style="color: red">*</i>工序</span>
</template> </template> :rules="formRules.processId"-->
<template #default="scope"> <template #default="scope">
<el-form-item <el-form-item
:prop="`tableData[${scope.$index}].processId`" :prop="`tableData[${scope.$index}].processId`"
:rules="formRules.processId"
> >
<el-select <el-select
v-model="scope.row.processId" v-model="scope.row.processId"
@ -567,7 +567,7 @@ export default {
this.form.tableData[index].abilityList.push({ this.form.tableData[index].abilityList.push({
startNum: null, startNum: null,
endNum: null, endNum: null,
standardTime: null, standardProcessAbility: null,
}); });
this.onAbilityChange(index); this.onAbilityChange(index);
}, },
@ -611,7 +611,7 @@ export default {
_select: false, // _select: false, //
partType: 0, partType: 0,
standardProcessAbility: null, standardProcessAbility: null,
abilityList: [{ startNum: null, endNum: null, standardTime: null }], abilityList: [{ startNum: null, endNum: null, standardProcessAbility: null }],
}); });
}, },

@ -372,7 +372,6 @@ export default {
for (let i = 0; i < this.spanArr.length; i++) { for (let i = 0; i < this.spanArr.length; i++) {
const ele = this.spanArr[i]; const ele = this.spanArr[i];
if (column.property == ele.prop) { if (column.property == ele.prop) {
console.log(8989, column, ele);
const _row = ele.span[rowIndex]; const _row = ele.span[rowIndex];
// span 0 // span 0
if (_row === undefined || _row === 0) { if (_row === undefined || _row === 0) {

@ -142,7 +142,7 @@ export default {
}, },
{ {
label: '类型', label: '类型',
prop: 'type', prop: 'types',
search: false, search: false,
multiple: true, multiple: true,
sortable: true, sortable: true,
@ -184,11 +184,11 @@ export default {
dicData:[ dicData:[
{ {
label:'是', label:'是',
value:1 value:'1'
}, },
{ {
label:'否', label:'否',
value:0 value:'0'
} }
] ]
}, },
@ -199,11 +199,11 @@ export default {
dicData:[ dicData:[
{ {
label:'是', label:'是',
value:1 value:'1'
}, },
{ {
label:'否', label:'否',
value:0 value:'0'
} }
], ],
rules:[ rules:[
@ -223,18 +223,20 @@ export default {
methods: { methods: {
beforeOpen(done, type) { beforeOpen(done, type) {
if (['edit', 'view'].includes(type)) { if (['edit', 'view'].includes(type)) {
console.log('form----------',this.form)
done(); done();
}else if(['add'].includes(type)){ }else if(['add'].includes(type)){
this.form.isLocal = 0 this.form.isLocal = '0'
this.form.isThickness = 0 this.form.isThickness = '0'
done(); done();
} }
}, },
rowSave(row, done, loading) { rowSave(row, done, loading) {
console.log(row); console.log(row);
console.log(typeof(row.types))
let params = { let params = {
qualityGrade:row.qualityGrade, qualityGrade:row.qualityGrade,
types:row.type, types:typeof(row.types) === 'string' ? row.types : row.types.join(',') ,
isLocal:row.isLocal, isLocal:row.isLocal,
isThickness:row.isThickness isThickness:row.isThickness
} }
@ -254,11 +256,14 @@ export default {
); );
}, },
rowUpdate(row, index, done, loading) { rowUpdate(row, index, done, loading) {
console.log('row---------',row)
// row.types = row.type // row.types = row.type
let params = { let params = {
id:row.id, id:row.id,
qualityGrade:row.qualityGrade, qualityGrade:row.qualityGrade,
types:row.type.split(',') types:row.types,
isLocal:row.isLocal,
isThickness:row.isThickness
} }
updateGualityGrade(params).then( updateGualityGrade(params).then(
() => { () => {

@ -257,6 +257,7 @@ export default {
}, },
insertEvent() { insertEvent() {
const record = { _select: false }; const record = { _select: false };
this.fileList = []
this.tidList.push(record) this.tidList.push(record)
}, },
searchChange(params, done){ searchChange(params, done){
@ -321,6 +322,7 @@ export default {
handleEdit(row,index) { handleEdit(row,index) {
getDetail({id:row.id}).then(res =>{ getDetail({id:row.id}).then(res =>{
console.log('res--------------',res) console.log('res--------------',res)
this.fileList = []
if(res.data.data.attach && JSON.stringify(res.data.data.attach) != '{}'){ if(res.data.data.attach && JSON.stringify(res.data.data.attach) != '{}'){
this.fileList = [ this.fileList = [
{ {

@ -1269,15 +1269,15 @@ export default {
this.vxeTableData.forEach(item =>{ this.vxeTableData.forEach(item =>{
console.log('item--------------',item) console.log('item--------------',item)
if(item.item.specialType == '2' && (item.checkUserId == -1 || item.checkUserRealName == '')){ if(item.item.specialType == '2' && (item.checkUserId == -1 || item.checkUserRealName == '')){
this.ydInterval = setInterval(() =>{ // this.ydInterval = setInterval(() =>{
refreshHardness().then(res =>{ refreshHardness().then(res =>{
console.log('res2--------------------------',res) console.log('res2--------------------------',res)
if (res.data.data.length > 0) { if (res.data.data.length > 0) {
item.checkValue = res.data.data[0].formatted_hardness item.checkValue = res.data.data[0].formatted_hardness
clearInterval(this.ydInterval) // clearInterval(this.ydInterval)
} }
}) })
},window.YINGDU_Trigger) // },window.YINGDU_Trigger)
} }
}) })
} }

@ -105,9 +105,9 @@ export default {
type: 'select', type: 'select',
filterable: true, filterable: true,
remote: true, remote: true,
dicUrl:`/api/blade-desk/dsProcess/list?processName={{key}}`, dicUrl:`/api/blade-desk/bsProcessSet/list?name={{key}}`,
props:{ props:{
label: 'processName', label: 'name',
value: 'id', value: 'id',
res: 'data.records', res: 'data.records',
}, },

@ -85,7 +85,7 @@
<el-option <el-option
v-for="item in processList" v-for="item in processList"
:key="item.id" :key="item.id"
:label="item.processName" :label="item.name"
:value="item.id" :value="item.id"
></el-option> ></el-option>
</el-select> </el-select>
@ -224,7 +224,7 @@ export default {
if (query) { if (query) {
this.loading = true this.loading = true
getProcessList({ getProcessList({
processName:query name:query
}).then(res =>{ }).then(res =>{
this.processList = res.data.data.records; this.processList = res.data.data.records;
this.loading = false this.loading = false
@ -234,7 +234,7 @@ export default {
this.loading = true this.loading = true
getProcessList({ getProcessList({
size:9999, size:9999,
count:1 current:1
}).then(res =>{ }).then(res =>{
this.processList = res.data.data.records; this.processList = res.data.data.records;
this.loading = false this.loading = false

@ -202,9 +202,9 @@ export default {
type: 'select', type: 'select',
filterable: true, filterable: true,
remote: true, remote: true,
dicUrl:`/api/blade-desk/dsProcess/list?processName={{key}}`, dicUrl:`/api/blade-desk/bsProcessSet/list?name={{key}}`,
props:{ props:{
label: 'processName', label: 'name',
value: 'id', value: 'id',
res: 'data.records', res: 'data.records',
}, },

@ -187,7 +187,7 @@ export default {
}, },
{ {
label: '作业槽', label: '作业槽',
prop: 'workTankName', prop: 'workTankId',
search: true, search: true,
type: 'select', type: 'select',
sortable: true, sortable: true,
@ -854,7 +854,7 @@ export default {
current:this.page.currentPage, current:this.page.currentPage,
size:this.page.pageSize, size:this.page.pageSize,
workCenterId:this.search.wcName ? this.search.wcName : '', workCenterId:this.search.wcName ? this.search.wcName : '',
workTankId:this.search.workTankName ? this.search.workTankName : '', workTankId:this.search.workTankId ? this.search.workTankId : '',
testElement:this.search.testElement ? this.search.testElement : '' testElement:this.search.testElement ? this.search.testElement : ''
}).then(res =>{ }).then(res =>{
this.data = res.data.data.records this.data = res.data.data.records

@ -747,7 +747,12 @@ export default {
let tmp = this.returnData.filter(item => item.bfQty > 0) let tmp = this.returnData.filter(item => item.bfQty > 0)
let nameArr = tmp.map(item => item.goodsName) let nameArr = tmp.map(item => item.goodsName)
let nameData = [...new Set(nameArr)] let nameData = [...new Set(nameArr)]
this.scarpTitle = `${nameData.join(',')}】物料报废需工艺员审批,审批通过后可出库` console.log('nameData--------',nameData)
if(nameData.length > 0){
this.scarpTitle = `${nameData.join(',')}】物料报废需工艺员审批,审批通过后可出库`
}else{
this.scarpTitle = ''
}
}, },
selectChange(list, row){ selectChange(list, row){
row._select = !row._select row._select = !row._select
@ -876,6 +881,7 @@ export default {
endLeDate:this.query.leDate && this.query.leDate.length > 0 && this.query.leDate[1], endLeDate:this.query.leDate && this.query.leDate.length > 0 && this.query.leDate[1],
} }
const {leDate,...searchParams} = params const {leDate,...searchParams} = params
console.log('sezrch------------',searchParams)
getList({ getList({
current:this.page.currentPage, current:this.page.currentPage,
size:this.page.pageSize, size:this.page.pageSize,

@ -496,7 +496,9 @@ export default {
this.$message.error('请填写物料编码') this.$message.error('请填写物料编码')
return return
} }
addGoods(this.goodsCode).then(res =>{ addGoods({
goodsCode:this.goodsCode
}).then(res =>{
if(res.data.code == 200){ if(res.data.code == 200){
this.$message.success('添加成功') this.$message.success('添加成功')
this.onLoad() this.onLoad()

@ -16,10 +16,10 @@
<el-form-item label="合格数量:" prop="workQty"> <el-form-item label="合格数量:" prop="workQty">
<el-input-number <el-input-number
:disabled="workPlanDto.notWorkQty - formData.scrapQty == 0" :disabled="workPlanDto.notWorkQty - formData.scrapQty == 0"
v-model="formData.workQty" v-model="workPlanDto.workQty"
@change="handleChange" @change="handleChange"
:min="0" :min="0"
:max="workPlanDto.notWorkQty - formData.scrapQty" :max="workPlanDto.notWorkQty - workPlanDto.scrapQty"
label="请输入" label="请输入"
@blur="scrapQtyBlur($event, 'workQty')" @blur="scrapQtyBlur($event, 'workQty')"
></el-input-number> ></el-input-number>

Loading…
Cancel
Save