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

dev-scheduling
zhangdi 2 months ago
commit 20df26a9dd
  1. 34
      src/api/basicData/bigBatch.js
  2. 9
      src/api/orderManagement/exceptionOrder.js
  3. 79
      src/components/basic-import/main.vue
  4. 93
      src/views/basicData/bigBatch/addBatch.vue
  5. 91
      src/views/basicData/bigBatch/index.vue
  6. 247
      src/views/basicData/materialQuota/components/silverAnode.vue
  7. 1
      src/views/basicData/platThicknessRelation/index.vue
  8. 7
      src/views/basicData/teamManagement.vue
  9. 2
      src/views/oem/oemCustomer/index.vue
  10. 19
      src/views/oem/oemOrderSettlement/components/settlementDailog.vue
  11. 18
      src/views/oem/outsourcingAssignmentControl/index.vue
  12. 19
      src/views/orderManagement/components/lookProcess.vue
  13. 5
      src/views/orderManagement/plannedOrder.vue
  14. 4
      src/views/orderManagement/sinTerPlanOrder.vue
  15. 18
      src/views/productionManagement/abnormalOrder.vue
  16. 16
      src/views/productionManagement/addRequirements.vue
  17. 16
      src/views/productionManagement/assayedContent.vue
  18. 10
      src/views/productionManagement/coatingMaterial.vue
  19. 503
      src/views/productionManagement/components/coatingMater/abnormalOrder.vue
  20. 12
      src/views/qualityManagement/tankSolutionSystem/workTankManagement.vue
  21. 53
      src/views/safetyManagement/wasteGasSet/components/dosingRecord.vue
  22. 5
      src/views/safetyManagement/wastewater/components/dosingRecord.vue

@ -0,0 +1,34 @@
// 大批量配置
import request from '@/axios';
// 列表
export const getList = params =>
request({
url: '/api/blade-desk/BA/BatConfig/page',
method: 'get',
params
})
// 批量新增
export const addBat = data =>
request({
url: '/api/blade-desk/BA/BatConfig/saveBat',
method: 'post',
data
})
// 修改
export const updateBat = data =>
request({
url: '/api/blade-desk/BA/BatConfig/update',
method: 'post',
data
})
// 删除
export const remove = params =>
request({
url: '/api/blade-desk/BA/BatConfig/remove',
method: 'post',
params
})

@ -70,3 +70,12 @@ export const getProductionIdentificationList = (params) => {
params params
}); });
}; };
// 定额异常订单重新计算
export const reCalculate = (params) => {
return request({
url: '/blade-desk/order/yieldOrder/calculateCoatingMaterial',
method: 'post',
params
});
};

@ -1,7 +1,17 @@
<template> <template>
<el-dialog :title="title" append-to-body :modelValue="importBox" width="555px" @close="closeDialog"> <el-dialog
<avue-form :option="importOption" v-model="importForm" :upload-after="uploadAfter" :title="title"
:upload-error="uploadError"> append-to-body
:modelValue="importBox"
width="555px"
@close="closeDialog"
>
<avue-form
:option="importOption"
v-model="importForm"
:upload-after="uploadAfter"
:upload-error="uploadError"
>
<template #excelTemplate> <template #excelTemplate>
<el-button type="primary" @click="handleTemplate"> <el-button type="primary" @click="handleTemplate">
点击下载<i class="el-icon-download el-icon--right"></i> 点击下载<i class="el-icon-download el-icon--right"></i>
@ -20,28 +30,32 @@ export default {
props: { props: {
title: { title: {
type: String, type: String,
default:'导入' default: '导入',
}, },
isShow: { isShow: {
type: Boolean, type: Boolean,
default:false default: false,
}, },
templateUrl: { templateUrl: {
type: String, type: String,
default:'' default: '',
}, },
templateName: { templateName: {
type: String, type: String,
default:'模板' default: '模板',
}, },
importUrl: { importUrl: {
type: String, type: String,
default:'' default: '',
}, },
showTips: { showTips: {
type: String, type: String,
default:'请上传 .xls,.xlsx 标准格式文件' default: '请上传 .xls,.xlsx 标准格式文件',
} },
basicImportSearch: {
type: Object,
default: () => {},
},
}, },
data() { data() {
return { return {
@ -61,6 +75,8 @@ export default {
propsHttp: { propsHttp: {
res: 'data', res: 'data',
}, },
//
data: this.basicImportSearch,
tip: this.showTips, tip: this.showTips,
action: this.importUrl, action: this.importUrl,
}, },
@ -71,17 +87,17 @@ export default {
span: 24, span: 24,
}, },
], ],
} },
} };
}, },
watch: { watch: {
isShow(newVal) { isShow(newVal) {
this.importBox = newVal; this.importBox = newVal;
} },
}, },
mounted() { mounted() {
console.log('isShowImport=================',this.isShow) console.log('isShowImport=================', this.isShow);
this.importBox = this.isShow this.importBox = this.isShow;
}, },
methods: { methods: {
closeDialog(val) { closeDialog(val) {
@ -93,7 +109,8 @@ export default {
console.log('下载模板URL:', url); console.log('下载模板URL:', url);
console.log('模板文件名:', this.templateName); console.log('模板文件名:', this.templateName);
exportBlob(url).then(res => { exportBlob(url)
.then(res => {
console.log('API返回状态:', res.status); console.log('API返回状态:', res.status);
console.log('res.data类型:', typeof res.data); console.log('res.data类型:', typeof res.data);
console.log('res.data instanceof Blob:', res.data instanceof Blob); console.log('res.data instanceof Blob:', res.data instanceof Blob);
@ -106,7 +123,8 @@ export default {
} }
// Excel // Excel
this.validateExcelBlob(res.data).then(isValid => { this.validateExcelBlob(res.data)
.then(isValid => {
if (!isValid) { if (!isValid) {
console.error('下载的文件不是有效的Excel文件'); console.error('下载的文件不是有效的Excel文件');
this.$message.error('下载的文件格式不正确'); this.$message.error('下载的文件格式不正确');
@ -122,7 +140,8 @@ export default {
console.log('开始下载文件:', fileName); console.log('开始下载文件:', fileName);
downloadXls(res.data, fileName); downloadXls(res.data, fileName);
this.$message.success('模板下载成功'); this.$message.success('模板下载成功');
}).catch(error => { })
.catch(error => {
console.error('验证文件失败:', error); console.error('验证文件失败:', error);
// 使 // 使
let fileName = this.templateName; let fileName = this.templateName;
@ -132,17 +151,20 @@ export default {
downloadXls(res.data, fileName); downloadXls(res.data, fileName);
this.$message.success('模板下载成功'); this.$message.success('模板下载成功');
}); });
}).catch(error => { })
.catch(error => {
console.error('下载模板失败:', error); console.error('下载模板失败:', error);
this.$message.error('下载失败,请检查网络或稍后重试'); this.$message.error('下载失败,请检查网络或稍后重试');
}); });
}, },
validateExcelBlob(blob) { validateExcelBlob(blob) {
return new Promise((resolve) => { return new Promise(resolve => {
const reader = new FileReader(); const reader = new FileReader();
reader.onloadend = (e) => { reader.onloadend = e => {
const arr = new Uint8Array(e.target.result); const arr = new Uint8Array(e.target.result);
const header = Array.from(arr.slice(0, 8)).map(b => b.toString(16).padStart(2, '0')).join(' '); const header = Array.from(arr.slice(0, 8))
.map(b => b.toString(16).padStart(2, '0'))
.join(' ');
console.log('文件头 (前8字节):', header); console.log('文件头 (前8字节):', header);
// XLSX (ZIP): 50 4B 03 04 // XLSX (ZIP): 50 4B 03 04
@ -160,17 +182,16 @@ export default {
}); });
}, },
uploadAfter(res, done, loading, column) { uploadAfter(res, done, loading, column) {
this.closeDialog(true) this.closeDialog(true);
done(); done();
}, },
uploadError(error, column) { uploadError(error, column) {
console.log('error-------------',error) console.log('error-------------', error);
this.closeDialog() this.closeDialog();
} },
} },
} };
</script> </script>
<style> <style>
</style> </style>

@ -24,17 +24,17 @@
</template> </template>
<template #default="scope"> <template #default="scope">
<!-- prop 格式数组名[索引].字段名 --> <!-- prop 格式数组名[索引].字段名 -->
<el-form-item :prop="`tableData[${scope.$index}].wcId`" :rules="formRules.wcId"> <el-form-item :prop="`tableData[${scope.$index}].caId`" :rules="formRules.caId">
<el-select <el-select
v-model="scope.row.wcId" v-model="scope.row.caId"
placeholder="请选择" placeholder="请选择"
style="width: 100%" style="width: 100%"
> >
<el-option <el-option
v-for="item in wcData" v-for="item in abilityData"
:key="item.id" :key="item.id"
:value="item.id" :value="item.id"
:label="item.wcName" :label="item.caName"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -46,29 +46,29 @@
<span><i style="color: red">*</i>单批面积</span> <span><i style="color: red">*</i>单批面积</span>
</template> </template>
<template #default="scope"> <template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].batchNo`" :rules="formRules.batchNo"> <el-form-item :prop="`tableData[${scope.$index}].area`" :rules="formRules.area">
<el-input-number v-model="scope.row.batchNo" controls-position="right" style="width:99%;"></el-input-number> <el-input-number v-model="scope.row.area" :min="0" controls-position="right" style="width:99%;"></el-input-number>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="零件号" width="200"> <el-table-column align="center" label="零件号" width="200">
<template #default="scope"> <template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].partcode`" :rules="formRules.partcode"> <el-form-item :prop="`tableData[${scope.$index}].partCode`" :rules="formRules.partCode">
<el-input v-model="scope.row.partcode"></el-input> <el-input v-model="scope.row.partCode"></el-input>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="单件面积" width="200"> <el-table-column align="center" label="单件面积" width="200">
<template #default="scope"> <template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].area`" :rules="formRules.area"> <el-form-item :prop="`tableData[${scope.$index}].singletonArea`" :rules="formRules.singletonArea">
<el-input-number v-model="scope.row.area" controls-position="right" style="width:99%;"></el-input-number> <el-input-number v-model="scope.row.singletonArea" :min="0" controls-position="right" style="width:99%;"></el-input-number>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="描述" > <el-table-column align="center" label="描述" >
<template #default="scope"> <template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].remark`" :rules="formRules.remark"> <el-form-item :prop="`tableData[${scope.$index}].describe`" :rules="formRules.describe">
<el-input v-model="scope.row.remark" ></el-input> <el-input v-model="scope.row.describe" ></el-input>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
@ -84,6 +84,8 @@
</template> </template>
<script> <script>
import {addBat,updateBat} from "@/api/basicData/bigBatch"
import {getProcessAbility} from "@/api/basicData/outsourcingAssignmentControl"
export default { export default {
props:{ props:{
showDialog:{ showDialog:{
@ -97,6 +99,10 @@ export default {
moldAddMore:{ moldAddMore:{
type:Boolean, type:Boolean,
default:false default:false
},
checkRow:{
type:Object,
default:()=>{}
} }
}, },
data(){ data(){
@ -106,26 +112,69 @@ export default {
form:{ form:{
tableData:[] tableData:[]
}, },
formRules:{} formRules:{
// 1
tableData: [
{
required: true,
message: '请至少添加一行数据',
trigger: 'submit',
type: 'array' //
},
{
validator: (rule, value, callback) => {
if (value.length === 0) {
callback(new Error('请至少添加一行数据'));
} else {
callback();
}
},
trigger: 'submit'
}
],
// wcId
caId: [
{ required: true, message: '请选择工艺能力', trigger: ['change', 'submit'] }
],
area: [
{ required: true, message: '请填写单批面积', trigger: ['change', 'submit'] }
],
},
abilityData:[],
rowDetail:{}
} }
}, },
created(){ created(){
this.openShow = this.showDialog this.openShow = this.showDialog
this.getAbility()
if(this.title == '新增'){ if(this.title == '新增'){
if(this.form.tableData.length === 0){ if(this.form.tableData.length === 0){
this.addTable() this.addTable()
} }
}else{
this.rowDetail = JSON.parse(JSON.stringify(this.checkRow))
this.rowDetail.caId = this.rowDetail.caId.toString()
console.log('this.rowDetail',this.rowDetail)
this.form.tableData.push(this.rowDetail)
} }
}, },
methods:{ methods:{
getAbility(){
getProcessAbility().then(res =>{
this.abilityData = res.data.data
})
},
selectChange(list, row) { selectChange(list, row) {
row._select = !row._select; row._select = !row._select;
}, },
addTable(){ addTable(){
this.form.tableData.push({ this.form.tableData.push({
_select:false, _select:false,
wcId: '', caId: '',
batchNo: '', area: null,
singletonArea:null,
partCode:'',
describe:''
}) })
}, },
// //
@ -157,7 +206,21 @@ export default {
const { _select, ...validData } = row; // const { _select, ...validData } = row; //
return validData; return validData;
}); });
if(this.title == '新增'){
addBat(submitData).then(res =>{
if(res.data.code == 200){
this.$message.success('新增成功');
this.closeDialog(true)
}
})
}else{
updateBat(submitData[0]).then(res =>{
if(res.data.code == 200){
this.$message.success('修改成功')
this.closeDialog(true) this.closeDialog(true)
}
})
}
}) })
}, },
closeDialog(val) { closeDialog(val) {

@ -19,6 +19,10 @@
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="handleAdd">新增</el-button> <el-button type="primary" @click="handleAdd">新增</el-button>
<el-button type="danger" @click="handleDelete">删除</el-button>
</template>
<template #menu="scope">
<el-button type="primary" text @click="editRow(scope.row)">修改</el-button>
</template> </template>
</avue-crud> </avue-crud>
<add-batch <add-batch
@ -27,12 +31,14 @@
@closeDialog="closeDialog" @closeDialog="closeDialog"
:title="title" :title="title"
:moldAddMore="moldAddMore" :moldAddMore="moldAddMore"
:checkRow="checkRow"
></add-batch> ></add-batch>
</basic-container> </basic-container>
</template> </template>
<script> <script>
import {getList,remove} from "@/api/basicData/bigBatch.js"
import addBatch from "./addBatch.vue" import addBatch from "./addBatch.vue"
export default { export default {
components:{ components:{
@ -52,6 +58,8 @@ export default {
currentPage: 1, currentPage: 1,
total: 0, total: 0,
}, },
selectionList:[],
chechRow:{},
option:{ option:{
columnSort: true, columnSort: true,
tip: false, tip: false,
@ -76,8 +84,8 @@ export default {
addBtn: false, addBtn: false,
labelWidth: 120, labelWidth: 120,
searchLabelWidth: 120, searchLabelWidth: 120,
menu: false, menu: true,
menuWidth: 200, menuWidth: 80,
dialogWidth: 600, dialogWidth: 600,
dialogClickModal: false, dialogClickModal: false,
searchEnter: true, searchEnter: true,
@ -97,7 +105,7 @@ export default {
column: [ column: [
{ {
label: '工艺能力', label: '工艺能力',
prop: 'ypCode', prop: 'caName',
span: 24, span: 24,
overflow: true, overflow: true,
search: false, search: false,
@ -113,7 +121,7 @@ export default {
}, },
{ {
label: '单批面积(dm²)', label: '单批面积(dm²)',
prop: 'ypCode', prop: 'area',
span: 24, span: 24,
overflow: true, overflow: true,
search: false, search: false,
@ -129,7 +137,7 @@ export default {
}, },
{ {
label: '零件号(XXX-XXX)', label: '零件号(XXX-XXX)',
prop: 'ypCode', prop: 'partCode',
span: 24, span: 24,
overflow: true, overflow: true,
search: false, search: false,
@ -145,7 +153,7 @@ export default {
}, },
{ {
label: '单件面积(dm²)', label: '单件面积(dm²)',
prop: 'ypCode', prop: 'singletonArea',
span: 24, span: 24,
overflow: true, overflow: true,
search: false, search: false,
@ -161,7 +169,7 @@ export default {
}, },
{ {
label: '描述', label: '描述',
prop: 'ypCode', prop: 'describe',
span: 24, span: 24,
overflow: true, overflow: true,
search: false, search: false,
@ -177,7 +185,7 @@ export default {
}, },
{ {
label: '维护人', label: '维护人',
prop: 'ypCode', prop: 'updateUserName',
span: 24, span: 24,
overflow: true, overflow: true,
search: false, search: false,
@ -193,7 +201,7 @@ export default {
}, },
{ {
label: '维护时间', label: '维护时间',
prop: 'ypCode', prop: 'updateTime',
span: 24, span: 24,
overflow: true, overflow: true,
search: false, search: false,
@ -215,6 +223,25 @@ export default {
}, },
methods:{ methods:{
searchChange(params, done){
this.query = params
this.page.currentPage = 1
this.onLoad()
done()
},
searchReset(){
this.query = {}
this.onLoad()
},
refreshChange(){
this.onLoad()
},
currentChange(currentPage){
this.page.currentPage = currentPage
},
sizeChange(pageSize){
this.page.pageSize = pageSize
},
closeDialog(val){ closeDialog(val){
this.showDialog = false this.showDialog = false
if(val){ if(val){
@ -222,10 +249,56 @@ export default {
} }
}, },
handleAdd(){ handleAdd(){
this.chechRow = {}
this.title = '新增' this.title = '新增'
this.moldAddMore = true this.moldAddMore = true
this.showDialog = true this.showDialog = true
},
selectionChange(list){
this.selectionList = list
},
handleDelete(){
if(this.selectionList.length == 0){
this.$message.error('请至少选择一条数据')
return
}
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() =>{
remove({
ids:this.selectionList.map(item => item.id).join(',')
}).then(res =>{
if(res.data.code == 200){
this.$message.success('删除成功')
this.onLoad()
} }
})
})
},
editRow(row){
console.log('row========================>',row)
this.checkRow = row
this.title = '修改'
this.moldAddMore = false
this.showDialog = true
},
onLoad(){
this.loading = true;
getList({
current:this.page.currentPage,
size:this.page.pageSize,
...this.query
}).then(res =>{
res.data.data.records.map(item =>{
item.singletonArea = item.singletonArea == -1 ? null : item.singletonArea
})
this.data = res.data.data.records
this.page.total = res.data.data.total
this.loading = false;
})
},
} }
} }
</script> </script>

@ -7,8 +7,8 @@
v-model="form" v-model="form"
v-model:page="page" v-model:page="page"
ref="crud" ref="crud"
:before-open="beforeOpen"
@row-del="rowDel" @row-del="rowDel"
:before-open="beforeOpen"
@row-save="rowSave" @row-save="rowSave"
@row-update="rowUpdate" @row-update="rowUpdate"
@search-change="searchChange" @search-change="searchChange"
@ -21,19 +21,15 @@
> >
<template #menu-left> <template #menu-left>
<!-- <el-button type="primary" icon="el-icon-plus" @click="addEdit">新增 </el-button> --> <!-- <el-button type="primary" icon="el-icon-plus" @click="addEdit">新增 </el-button> -->
<el-button type="danger" icon="el-icon-delete" @click="handleDelete" <el-button type="danger" icon="el-icon-delete" @click="handleDelete">删除 </el-button>
>删除
</el-button>
</template> </template>
<template #menu-right> <template #menu-right>
<el-button type="primary" icon="el-icon-upload" @click="handleImport">导入 </el-button> <el-button type="primary" icon="el-icon-upload" @click="handleImport">导入 </el-button>
</template> </template>
<template #menu="scope"> <template #menu="scope">
<!-- <el-button type="text" @click="editFn(scope.row)">编辑 </el-button> <!-- <el-button type="text" @click="editFn(scope.row)">编辑 </el-button> -->
<el-button type="text" @click="handleDelete">删除 </el-button> --> <!-- <el-button type="text" @click="handleDelete">删除 </el-button> -->
</template> </template>
<template #produceTsTarget="scope"> </template>
<template #quota-form="{ type, disabled }"> <template #quota-form="{ type, disabled }">
<el-input v-model="form.quota" placeholder="请输入 滚振镀银类定额" @input="validateQuota"></el-input> <el-input v-model="form.quota" placeholder="请输入 滚振镀银类定额" @input="validateQuota"></el-input>
</template> </template>
@ -41,18 +37,21 @@
<el-input v-model="form.smallBatQuota" placeholder="请输入 滚振镀银类定额" @input="validateSmallBat"></el-input> <el-input v-model="form.smallBatQuota" placeholder="请输入 滚振镀银类定额" @input="validateSmallBat"></el-input>
</template> </template>
</avue-crud> </avue-crud>
<!-- 导入 --> <!-- 导入 -->
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport" <basic-import
templateUrl="/blade-desk/QA/CycleTestItem/download-excel-template" v-if="isShowImport"
templateName="试验项目模板.xls" title="导入"
importUrl="/blade-desk/QA/CycleTestItem/import-excel" :isShow="isShowImport"
@closeDialog="closeDialog"></basic-import> templateUrl="/blade-desk/BA/MaterialQuota/downloadExcelTemplate"
templateName="银钾定额模板.xls"
importUrl="/blade-desk/BA/MaterialQuota/importExcel"
@closeDialog="closeDialog"
/>
</div> </div>
</template> </template>
<script> <script>
import basicImport from '@/components/basic-import/main.vue' import basicImport from '@/components/basic-import/main.vue';
import {getList,addQuota,updateQuota,deleteQuota} from '@/api/basicData/materialQuota' import { getList, addQuota, updateQuota, deleteQuota } from '@/api/basicData/materialQuota';
export default { export default {
components: { components: {
basicImport, basicImport,
@ -61,10 +60,10 @@ export default {
return { return {
isShowImport: false, isShowImport: false,
selectionList: [], selectionList: [],
loading:false, loading: {},
query: {}, query: {},
option: { option: {
height: "auto", height: 'auto',
calcHeight: 32, calcHeight: 32,
tip: false, tip: false,
// size: "medium", // size: "medium",
@ -81,11 +80,11 @@ export default {
delBtn: true, delBtn: true,
addBtn: true, addBtn: true,
editBtn: true, editBtn: true,
editBtnText: "修改", editBtnText: '修改',
viewBtnIcon: " ", viewBtnIcon: ' ',
delBtnIcon: " ", delBtnIcon: ' ',
editBtnIcon: " ", editBtnIcon: ' ',
viewBtnText: "详情", viewBtnText: '详情',
labelWidth: 120, labelWidth: 120,
menuWidth: 120, menuWidth: 120,
dialogWidth: 640, dialogWidth: 640,
@ -98,53 +97,60 @@ export default {
excelBtn: true, excelBtn: true,
columnSort: true, columnSort: true,
showOverflowTooltip: true, showOverflowTooltip: true,
searchLabelPosition: "left", searchLabelPosition: 'left',
searchLabelPosition: "left", searchLabelPosition: 'left',
searchGutter: 24, searchGutter: 24,
searchSpan: 6, searchSpan: 6,
menuAlign: "center", menuAlign: 'center',
gridBtn: false, gridBtn: false,
searchMenuPosition: "right", searchMenuPosition: 'right',
addBtnIcon: " ", addBtnIcon: ' ',
viewBtnIcon: " ", viewBtnIcon: ' ',
delBtnIcon: " ", delBtnIcon: ' ',
editBtnIcon: " ", editBtnIcon: ' ',
align: "center", align: 'center',
column: [ column: [
{ {
label: "镀层厚度", label: '镀层厚度',
prop: "thickness", prop: 'thickness',
sortable: true, sortable: true,
filter: true, filter: true,
span: 24, span: 24,
search: false, search: false,
rule: [
{
required: true,
message: '请输入镀层厚度',
trigger: 'blur',
},
],
}, },
// { // {
// label: "", // label: "",
// prop: "processAbilityId", // prop: "processAbilityId",
// type:'select', // type:"select",
// sortable: true, // sortable: true,
// filter: true, // filter: true,
// span: 24, // span: 24,
// search: false, // search: false,
// dicUrl:"/api/blade-desk/BA/craftAbility/findList", // dicUrl:"/api/blade-desk/BA/craftAbility/findList",
// props:{ // props:{
// label:'caName', // label:"caName",
// value:"id" // value:"id"
// } // }
// }, // },
{ {
label: "滚振镀银类定额", label: '滚振镀银类定额',
prop: "quota", prop: 'quota',
sortable: true, sortable: true,
filter: true, filter: true,
span: 24, span: 24,
search: false, search: false,
}, },
{ {
label: "挂镀银类定额", label: '挂镀银类定额',
prop: "smallBatQuota", prop: 'smallBatQuota',
sortable: true, sortable: true,
filter: true, filter: true,
span: 24, span: 24,
@ -171,6 +177,10 @@ export default {
}; };
}, },
methods: { methods: {
//
handleImport() {
this.isShowImport = true;
},
validateValue(value) { validateValue(value) {
if (value == null) return ''; if (value == null) return '';
@ -204,14 +214,10 @@ export default {
return filterVal; return filterVal;
}, },
validateQuota(value) { validateQuota(value) {
this.form.quota = this.validateValue(value) this.form.quota = this.validateValue(value);
}, },
validateSmallBat(value) { validateSmallBat(value) {
this.form.smallBatQuota = this.validateValue(value) this.form.smallBatQuota = this.validateValue(value);
},
//
handleImport() {
this.isShowImport = true
}, },
addEdit() { addEdit() {
this.isOpen = true; this.isOpen = true;
@ -219,9 +225,13 @@ export default {
editFn(row) { editFn(row) {
this.isWorkOpen = true; this.isWorkOpen = true;
}, },
closeDialog() { closeDialog(val) {
this.isOpen = false; this.isOpen = false;
this.isWorkOpen = false; this.isWorkOpen = false;
this.isShowImport = false;
if (val) {
this.onLoad();
}
}, },
maintenanceClick() { maintenanceClick() {
// this.$refs.myTable.fullValidate((errMap) => { // this.$refs.myTable.fullValidate((errMap) => {
@ -263,20 +273,23 @@ export default {
this.$message.error('请选择至少一条数据'); this.$message.error('请选择至少一条数据');
return; return;
} }
this.$confirm("确定将选择数据删除?", { this.$confirm('确定将选择数据删除?', {
confirmButtonText: "确定", confirmButtonText: '确定',
cancelButtonText: "取消", cancelButtonText: '取消',
type: "warning", type: 'warning',
}).then(() => { }).then(() => {
deleteQuota({ deleteQuota({
ids:this.selectionList.map(item => item.id).join(',') ids: this.selectionList.map(item => item.id).join(','),
}).then(res => { }).then(res => {
if (res.data.code == 200) { if (res.data.code == 200) {
this.$message.success('删除成功') this.$message.success('删除成功');
this.onLoad() this.onLoad();
} }
})
}); });
});
},
refreshChange() {
this.onLoad();
}, },
// //
selectionChange(list) { selectionChange(list) {
@ -284,33 +297,31 @@ export default {
}, },
beforeOpen(done, type) { beforeOpen(done, type) {
if (type == 'edit') { if (type == 'edit') {
this.form.processAbilityId = this.form.processAbilityId + '' this.form.processAbilityId = this.form.processAbilityId + '';
setTimeout(() =>{ done();
done()
},200)
} else { } else {
done() done();
} }
}, },
rowSave(row, done, loading) { rowSave(row, done, loading) {
row.quotaType = 2 row.quotaType = 2;
addQuota(row).then(res => { addQuota(row).then(res => {
if (res.data.code == 200) { if (res.data.code == 200) {
this.$message.success('新增成功') this.$message.success('新增成功');
this.onLoad() this.onLoad();
done() done();
} }
}) });
}, },
rowUpdate(row, index, done, loading) { rowUpdate(row, index, done, loading) {
row.quotaType = 2 row.quotaType = 2;
updateQuota(row).then(res => { updateQuota(row).then(res => {
if (res.data.code == 200) { if (res.data.code == 200) {
this.$message.success('修改成功') this.$message.success('修改成功');
this.onLoad() this.onLoad();
done() done();
} }
}) });
}, },
rowDel(row) { rowDel(row) {
this.$confirm('确定删除数据吗?', { this.$confirm('确定删除数据吗?', {
@ -319,14 +330,14 @@ export default {
type: 'warning', type: 'warning',
}).then(() => { }).then(() => {
deleteQuota({ deleteQuota({
ids:row.id ids: row.id,
}).then(res => { }).then(res => {
if (res.data.code == 200) { if (res.data.code == 200) {
this.$message.success('删除成功') this.$message.success('删除成功');
this.onLoad() this.onLoad();
} }
}) });
}) });
}, },
onLoad() { onLoad() {
this.loading = true; this.loading = true;
@ -334,88 +345,12 @@ export default {
current: this.page.currentPage, current: this.page.currentPage,
size: this.page.pageSize, size: this.page.pageSize,
quotaType: 2, quotaType: 2,
...this.query ...this.query,
}).then(res => { }).then(res => {
this.data = res.data.data.records this.data = res.data.data.records;
this.page.total = res.data.data.total this.page.total = res.data.data.total;
this.loading = false this.loading = false;
}) });
// this.data = [
// {
// area: null,
// configNo: null,
// keyValue: 27721,
// material: null,
// memo: null,
// partCode: "21E6-040-4006-B1",
// plate: null,
// plateCode: null,
// plateThickness: null,
// prepared: false,
// productType: "XXXX",
// psId: 27721,
// quota: 1.0,
// sinTerType: null,
// sinTerTypeTitle: null,
// subCode: "107-50-003",
// subName: null,
// subType: "B",
// subTypeTitle: "",
// updateMan: null,
// updateTime: null,
// },
// {
// area: null,
// configNo: null,
// keyValue: 27727,
// material: null,
// memo: null,
// partCode: "21E6-040-4271-B1",
// plate: null,
// plateCode: null,
// plateThickness: null,
// prepared: false,
// productType: "XXXX",
// psId: 27727,
// quota: 1.0,
// sinTerType: null,
// sinTerTypeTitle: null,
// subCode: "21E6-040-4218-B1",
// subName: null,
// subType: "A",
// subTypeTitle: "",
// updateMan: null,
// updateTime: null,
// },
// {
// area: null,
// configNo: null,
// keyValue: 27728,
// material: null,
// memo: null,
// partCode: "21E6-040-4271-B1",
// plate: null,
// plateCode: null,
// plateThickness: null,
// prepared: false,
// productType: "XXXX",
// psId: 27728,
// quota: 1.0,
// sinTerType: null,
// sinTerTypeTitle: null,
// subCode: "05-01-1613",
// subName: null,
// subType: "B",
// subTypeTitle: "",
// updateMan: null,
// updateTime: null,
// },
// ];
// this.page.total = this.data.length;
// this.loading = false;
// setTimeout(() => {
// this.selectionClear();
// }, 500);
}, },
}, },
}; };

@ -157,6 +157,7 @@ export default {
filter: true, filter: true,
span: 24, span: 24,
search: false, search: false,
type: "number",
}, },
{ {
label: "质量等级", label: "质量等级",

@ -493,6 +493,13 @@ export default {
label: "否", label: "否",
}, },
], ],
rules: [
{
required: true,
message: "请选择特殊",
trigger: "blur",
},
],
}, },
], ],
}, },

@ -191,7 +191,7 @@ export default {
sortable: true, sortable: true,
search: false, search: false,
overHidden: true, overHidden: true,
width: 120, width: 260,
rules: [ rules: [
{ {
required: true, required: true,

@ -12,7 +12,7 @@
</el-icon> </el-icon>
<h3>计算完成</h3> <h3>计算完成</h3>
</div> </div>
<div> <div v-if="!abnormal">
<h4>计算结果</h4> <h4>计算结果</h4>
<div class="box-txt"> <div class="box-txt">
<el-icon style="color:#67c23a;margin-right: 4px;margin-top: 2px;"> <el-icon style="color:#67c23a;margin-right: 4px;margin-top: 2px;">
@ -25,6 +25,19 @@
</el-icon>{{ exceptionCount }} </el-icon>{{ exceptionCount }}
</div> </div>
</div> </div>
<div v-if="abnormal">
<h4>计算结果</h4>
<div class="box-txt">
<el-icon style="color:#67c23a;margin-right: 4px;margin-top: 2px;">
<SuccessFilled />
</el-icon>{{ successCount }}
</div>
<div class="box-txt">
<el-icon style="color:#f56c6c;margin-right: 4px;margin-top: 2px;">
<CircleCloseFilled />
</el-icon>{{ exceptionCount }}
</div>
</div>
</div> </div>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
@ -43,6 +56,10 @@ export default {
settleResult: { settleResult: {
type: Object, type: Object,
default: null default: null
},
abnormal:{
type: Boolean,
default: false
} }
}, },
data() { data() {

@ -21,7 +21,7 @@
<el-button type="primary" plain @click="handleSave">保存 </el-button> <el-button type="primary" plain @click="handleSave">保存 </el-button>
</template> </template>
<template #oemId="scope"> <template #oemId="scope">
<el-select v-model="scope.row.oemId"> <el-select v-model="scope.row.oemId" @change="handleSupplierChange(scope.row)">
<el-option v-for="item in supplierData" :key="item.id" :label="item.ocName" :value="item.id"></el-option> <el-option v-for="item in supplierData" :key="item.id" :label="item.ocName" :value="item.id"></el-option>
</el-select> </el-select>
</template> </template>
@ -388,6 +388,22 @@ export default {
// this.loading = false // this.loading = false
// }) // })
// }, // },
//
handleSupplierChange(row) {
if (row.oemId) {
getProcessAbility({ supplierId: row.oemId }).then(res => {
row.abilityData = res.data.data || [];
//
row.platingId = '';
}).catch(() => {
row.abilityData = [];
row.platingId = '';
});
} else {
row.abilityData = [];
row.platingId = '';
}
},
async onLoad() { async onLoad() {
this.loading = true; this.loading = true;
try { try {

@ -8,7 +8,10 @@
@opened="opened" @opened="opened"
> >
<el-card v-if="sourceId == 'plannedOrder' || sourceId == 'sinTerOrder'"> <el-card v-if="sourceId == 'plannedOrder' || sourceId == 'sinTerOrder'">
<el-descriptions :column="1" size="medium" class="margin-top" border> <el-descriptions :column="2" size="medium" class="margin-top" border>
<el-descriptions-item label="零件号">
<!-- {{ craftData.primaryCraft }} -->{{ checkPart }}
</el-descriptions-item>
<el-descriptions-item label="一级工艺路线"> <el-descriptions-item label="一级工艺路线">
<!-- {{ craftData.primaryCraft }} -->{{ primaryCraft }} <!-- {{ craftData.primaryCraft }} -->{{ primaryCraft }}
</el-descriptions-item> </el-descriptions-item>
@ -141,17 +144,17 @@ export default {
editBtnIcon: ' ', editBtnIcon: ' ',
align: 'center', align: 'center',
column: [ column: [
{ // {
label: '零件号', // label: '',
prop: 'partcode', // prop: 'partcode',
search: false, // search: false,
// width: 150, // // width: 150,
}, // },
{ {
label: '零件名称', label: '零件名称',
prop: 'partname', prop: 'partname',
search: false, search: false,
width: 170, // width: 170,
}, },
{ {
label: '一级工艺计划(A)号', label: '一级工艺计划(A)号',

@ -275,6 +275,7 @@ export default {
sortable: true, sortable: true,
disabled: true, disabled: true,
span: 12, span: 12,
width:150,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
rules: [ rules: [
@ -322,7 +323,7 @@ export default {
}, },
{ {
label: '使用部门', label: '使用部门',
prop: 'useDeptName', prop: 'useDept',
search: false, search: false,
sortable: true, sortable: true,
disabled: true, disabled: true,
@ -394,7 +395,7 @@ export default {
}, },
{ {
label: '计划员', label: '计划员',
prop: 'planUserName', prop: 'planUser',
search: false, search: false,
sortable: true, sortable: true,
width: 120, width: 120,

@ -289,7 +289,7 @@ export default {
}, },
{ {
label: '使用部门', label: '使用部门',
prop: 'useDeptName', prop: 'useDept',
search: false, search: false,
sortable: true, sortable: true,
disabled: true, disabled: true,
@ -416,7 +416,7 @@ export default {
{ {
label: '计划员', label: '计划员',
prop: 'planUserName', prop: 'planUser',
search: false, search: false,
sortable: true, sortable: true,
width: 120, width: 120,

@ -0,0 +1,18 @@
<template>
<basic-container>
<abnormalOrder></abnormalOrder>
</basic-container>
</template>
<script>
import abnormalOrder from "./components/coatingMater/abnormalOrder.vue"
export default {
components:{
abnormalOrder
}
}
</script>
<style>
</style>

@ -0,0 +1,16 @@
<template>
<basic-container>
<addRequirements ></addRequirements>
</basic-container>
</template>
<script>
import addRequirements from './components/coatingMater/addRequirements.vue'
export default {
components: { addRequirements },
}
</script>
<style>
</style>

@ -0,0 +1,16 @@
<template>
<basic-container>
<assayedContent></assayedContent>
</basic-container>
</template>
<script>
import assayedContent from './components/coatingMater/assayedContent.vue'
export default {
components:{assayedContent}
}
</script>
<style>
</style>

@ -1,15 +1,15 @@
<template> <template>
<basic-container> <basic-container>
<el-tabs v-model="tabPosition" class="demo-tabs" @tab-change="tabPositionChange"> <!-- <el-tabs v-model="tabPosition" class="demo-tabs" @tab-change="tabPositionChange">
<el-tab-pane label="物料需求申报" name="1"></el-tab-pane> <el-tab-pane label="物料需求申报" name="1"></el-tab-pane>
<el-tab-pane label="化验含量" name="2"></el-tab-pane> <el-tab-pane label="化验含量" name="2"></el-tab-pane>
<el-tab-pane label="添加量申报" name="3"></el-tab-pane> <el-tab-pane label="添加量申报" name="3"></el-tab-pane>
<el-tab-pane label="定额异常订单" name="4"></el-tab-pane> <el-tab-pane label="定额异常订单" name="4"></el-tab-pane>
</el-tabs> </el-tabs> -->
<materialRequirements v-if="tabPosition=='1'"></materialRequirements> <materialRequirements ></materialRequirements>
<assayedContent v-if="tabPosition=='2'"></assayedContent> <!-- <assayedContent v-if="tabPosition=='2'"></assayedContent>
<addRequirements v-if="tabPosition=='3'"></addRequirements> <addRequirements v-if="tabPosition=='3'"></addRequirements>
<abnormalOrder v-if="tabPosition=='4'"></abnormalOrder> <abnormalOrder v-if="tabPosition=='4'"></abnormalOrder> -->
</basic-container> </basic-container>
</template> </template>

@ -17,13 +17,29 @@
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
> >
<template #menu-left>
<el-button type="primary" @click="reCalc">重新计算</el-button>
</template>
</avue-crud> </avue-crud>
<settlementDailog
v-if="isOpen"
:abnormal="true"
:showDialog="isOpen"
:settleResult="settleResult"
@closeDialog="closeDialog"
@refresh="refreshTable"
>
</settlementDailog>
</div> </div>
</template> </template>
<script> <script>
import {getList} from "@/api/orderManagement/exceptionOrder" import {getList,reCalculate} from "@/api/orderManagement/exceptionOrder"
import settlementDailog from "@/views/oem/oemOrderSettlement/components/settlementDailog.vue"
export default { export default {
components:{
settlementDailog
},
data(){ data(){
return{ return{
loading:false, loading:false,
@ -35,6 +51,8 @@ export default {
total: 0, total: 0,
}, },
query:{}, query:{},
isOpen:false,
settleResult:{},
selectionList:[], selectionList:[],
option:{ option:{
columnSort: true, columnSort: true,
@ -43,7 +61,7 @@ export default {
calcHeight: 32, calcHeight: 32,
simplePage: false, simplePage: false,
searchShow: true, searchShow: true,
searchMenuSpan: 18, searchMenuSpan: 12,
searchIcon: true, searchIcon: true,
searchIndex: 3, searchIndex: 3,
tree: false, tree: false,
@ -79,11 +97,29 @@ export default {
searchMenuPosition: 'right', searchMenuPosition: 'right',
align: 'center', align: 'center',
column: [ column: [
{
label: '异常原因',
prop: 'validationMomo',
search: false,
sortable: true,
span: 24,
type: 'textarea',
// width: 150,
headerAlign: 'center',
align: 'left',
// rules: [
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
// ],
},
{ {
label: '计划单号', label: '计划单号',
prop: 'ypCode', prop: 'ypCode',
span: 24, span: 24,
width: 150, // width: 150,
overflow: true, overflow: true,
search: true, search: true,
headerAlign: 'center', headerAlign: 'center',
@ -97,18 +133,18 @@ export default {
] ]
}, },
{ {
label: '生产单', label: '生产单',
prop: 'yoCode', prop: 'yoCode',
search: false, search: false,
sortable: true, sortable: true,
width: 150, // width: 150,
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
rules: [ rules: [
{ {
required: true, required: true,
message: '请输入生产单', message: '请输入生产单',
trigger: 'blur', trigger: 'blur',
}, },
], ],
@ -116,9 +152,9 @@ export default {
{ {
label: '零件号', label: '零件号',
prop: 'partCode', prop: 'partCode',
search: false, search: true,
sortable: true, sortable: true,
width: 150, // width: 150,
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -130,112 +166,112 @@ export default {
}, },
], ],
}, },
{ // {
label: '产品型号', // label: '',
prop: 'productType', // prop: 'productType',
search: false, // search: false,
sortable: true, // sortable: true,
disabled: true, // disabled: true,
width: 150, // width: 150,
span: 12, // span: 12,
headerAlign: 'center', // headerAlign: 'center',
align: 'center', // align: 'center',
rules: [ // rules: [
{ // {
required: false, // required: false,
message: '请输入产品型号', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ // {
label: '产品名称', // label: '',
prop: 'partName', // prop: 'partName',
search: false, // search: false,
sortable: true, // sortable: true,
disabled: true, // disabled: true,
span: 12, // span: 12,
width: 150, // width: 150,
headerAlign: 'center', // headerAlign: 'center',
align: 'left', // align: 'left',
rules: [ // rules: [
{ // {
required: false, // required: false,
message: '请输入产品名称', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ // {
label: '流程卡号', // label: '',
prop: 'cardNo', // prop: 'cardNo',
search: false, // search: false,
sortable: true, // sortable: true,
disabled: true, // disabled: true,
span: 12, // span: 12,
width: 150, // width: 150,
headerAlign: 'center', // headerAlign: 'center',
rules: [ // rules: [
{ // {
required: false, // required: false,
message: '请输入流程卡号', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ // {
label: '批次号', // label: '',
prop: 'batchNo', // prop: 'batchNo',
search: false, // search: false,
sortable: true, // sortable: true,
disabled: true, // disabled: true,
span: 12, // span: 12,
width: 150, // width: 150,
headerAlign: 'center', // headerAlign: 'center',
rules: [ // rules: [
{ // {
required: false, // required: false,
message: '请输入批次号', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ // {
label: '镀种', // label: '',
prop: 'plate', // prop: 'plate',
search: false, // search: false,
sortable: true, // sortable: true,
disabled: true, // disabled: true,
width: 150, // width: 150,
span: 12, // span: 12,
headerAlign: 'center', // headerAlign: 'center',
align: 'center', // align: 'center',
rules: [ // rules: [
{ // {
required: false, // required: false,
message: '请输入镀种', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ // {
label: '面积(d㎡)', // label: '(d)',
prop: 'ypArea', // prop: 'ypArea',
search: false, // search: false,
sortable: true, // sortable: true,
width: 120, // width: 120,
span: 12, // span: 12,
disabled: true, // disabled: true,
headerAlign: 'center', // headerAlign: 'center',
align: 'center', // align: 'center',
rules: [ // rules: [
{ // {
required: false, // required: false,
message: '请输入面积(d㎡)', // message: '(d)',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ {
label: '生产标识', label: '生产标识',
prop: 'productIdent', prop: 'productIdent',
@ -259,30 +295,30 @@ export default {
}, },
], ],
}, },
{ // {
label: '使用部门', // label: '使',
prop: 'useDept', // prop: 'useDept',
search: false, // search: false,
sortable: true, // sortable: true,
disabled: true, // disabled: true,
width: 120, // width: 120,
span: 12, // span: 12,
headerAlign: 'center', // headerAlign: 'center',
align: 'center', // align: 'center',
rules: [ // rules: [
{ // {
required: true, // required: true,
message: '请输入使用部门', // message: '使',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ {
label: '生产数量', label: '生产数量',
prop: 'ypQty', prop: 'ypQty',
search: false, search: false,
sortable: true, sortable: true,
width: 120, // width: 120,
span: 12, span: 12,
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -294,49 +330,49 @@ export default {
}, },
], ],
}, },
{ // {
label: '需求交期', // label: '',
prop: 'demandDate', // prop: 'demandDate',
search: false, // search: false,
sortable: true, // sortable: true,
width: 180, // width: 180,
span: 12, // span: 12,
headerAlign: 'center', // headerAlign: 'center',
align: 'center', // align: 'center',
type: 'datetime', // datetime // type: 'datetime', // datetime
valueFormat: 'YYYY-MM-DD HH:mm:ss', // // valueFormat: 'YYYY-MM-DD HH:mm:ss', //
rules: [ // rules: [
{ // {
required: true, // required: true,
message: '请输入需求交期', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ // {
label: '计划员', // label: '',
prop: 'planUser', // prop: 'planUser',
search: false, // search: false,
sortable: true, // sortable: true,
width: 120, // width: 120,
span: 12, // span: 12,
headerAlign: 'center', // headerAlign: 'center',
align: 'center', // align: 'center',
rules: [ // rules: [
{ // {
required: true, // required: true,
message: '请输入计划员', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
], // ],
}, // },
{ {
label: '计划下达时间', label: '计划下达时间',
prop: 'releaseDate', prop: 'releaseDate',
search: false, search: false,
sortable: true, sortable: true,
searchLabelWidth: 100, searchLabelWidth: 100,
width: 180, // width: 180,
span: 12, span: 12,
type: 'datetime', // datetime type: 'datetime', // datetime
valueFormat: 'YYYY-MM-DD HH:mm:ss', // valueFormat: 'YYYY-MM-DD HH:mm:ss', //
@ -350,79 +386,76 @@ export default {
}, },
], ],
}, },
{
label: '订单状态',
prop: 'status',
search: false,
sortable: true,
span: 12,
display: false,
type: 'select',
width: '140',
headerAlign: 'center',
align: 'center',
dicData: [
{
value: 10000,
label: '已同步',
},
{
value: 10001,
label: '订单异常',
},
{
value: 10002,
label: '未下达',
},
{
value: 10003,
label: '待排产',
},
{
value: 10004,
label: '待生产',
},
{
value: 10005,
label: '加工中',
},
{
value: 10006,
label: '排产异常',
},
{
value: 10015,
label: '已完工',
},
{
value: 10021,
label: '已关闭',
},
],
},
{
label: '备注',
prop: 'validationMomo',
search: false,
sortable: true,
span: 24,
type: 'textarea',
width: 150,
headerAlign: 'center',
align: 'left',
// rules: [
// { // {
// required: true, // label: '',
// message: '', // prop: 'status',
// trigger: 'blur', // search: false,
// sortable: true,
// span: 12,
// display: false,
// type: 'select',
// width: '140',
// headerAlign: 'center',
// align: 'center',
// dicData: [
// {
// value: 10000,
// label: '',
// },
// {
// value: 10001,
// label: '',
// },
// {
// value: 10002,
// label: '',
// },
// {
// value: 10003,
// label: '',
// },
// {
// value: 10004,
// label: '',
// },
// {
// value: 10005,
// label: '',
// },
// {
// value: 10006,
// label: '',
// },
// {
// value: 10015,
// label: '',
// },
// {
// value: 10021,
// label: '',
// }, // },
// ], // ],
}, // },
] ]
} }
} }
}, },
methods:{ methods:{
reCalc(){
if(this.selectionList.length == 0){
this.$message.error('请至少选择一条数据!')
return
}
reCalculate({
ids:this.selectionList.map(item => item.id).join(',')
}).then(res =>{
if(res.data.code == 200){
this.settleResult = res.data.data
this.isOpen = true
}
})
},
searchChange(params, done){ searchChange(params, done){
this.query = params; this.query = params;
this.page.currentPage = 1; this.page.currentPage = 1;

@ -302,9 +302,9 @@ export default {
}, },
rowUpdate(row, index, done, loading) { rowUpdate(row, index, done, loading) {
// workstationId // workstationId
if(row.workstationId) { // if(row.workstationId) {
row.workstationId = parseInt(row.workstationId) // row.workstationId = parseInt(row.workstationId)
} // }
updateWorkTank(row).then(res =>{ updateWorkTank(row).then(res =>{
if(res.data.code == 200){ if(res.data.code == 200){
this.$message.success('修改成功') this.$message.success('修改成功')
@ -319,9 +319,9 @@ export default {
console.log('row-------------------',row) console.log('row-------------------',row)
row.status = row.status == "" ? 0 : row.status row.status = row.status == "" ? 0 : row.status
// workstationId // workstationId
if(row.workstationId) { // if(row.workstationId) {
row.workstationId = parseInt(row.workstationId) // row.workstationId = parseInt(row.workstationId)
} // }
addWorkTank(row).then(res =>{ addWorkTank(row).then(res =>{
if(res.data.code == 200){ if(res.data.code == 200){
this.$message.success('新增成功') this.$message.success('新增成功')

@ -35,6 +35,7 @@
templateName="废气加药记录导入模板.xls" templateName="废气加药记录导入模板.xls"
importUrl="/blade-desk/bsDosingRec/importExcel" importUrl="/blade-desk/bsDosingRec/importExcel"
@closeDialog="closeImportDialog" @closeDialog="closeImportDialog"
:basicImportSearch="search"
></basic-import> ></basic-import>
<!-- 新增 --> <!-- 新增 -->
<addEditDialogDosingRecord <addEditDialogDosingRecord
@ -43,18 +44,25 @@
@closeDialog="closeDialog" @closeDialog="closeDialog"
:moldAddMore="moldAddMore" :moldAddMore="moldAddMore"
:dosingManList="dosingManList" :dosingManList="dosingManList"
@submitData="handleSubmitData"> @submitData="handleSubmitData"
>
</addEditDialogDosingRecord> </addEditDialogDosingRecord>
</div> </div>
</template> </template>
<script> <script>
import basicImport from '@/components/basic-import/main.vue'; import basicImport from '@/components/basic-import/main.vue';
import addEditDialogDosingRecord from './addEditDialogDosingRecord.vue'; import addEditDialogDosingRecord from './addEditDialogDosingRecord.vue';
import { getList , remove , add , update , getDosingManList } from '@/api/safetyManagement/dosingRecord.js'; import {
getList,
remove,
add,
update,
getDosingManList,
} from '@/api/safetyManagement/dosingRecord.js';
export default { export default {
components: { components: {
basicImport, basicImport,
addEditDialogDosingRecord addEditDialogDosingRecord,
}, },
data() { data() {
@ -65,6 +73,9 @@ export default {
isShowImport: false, isShowImport: false,
loading: false, loading: false,
selectionList: [], selectionList: [],
search: {
dorType: 1,
},
option: { option: {
addBtn: false, addBtn: false,
height: 'auto', height: 'auto',
@ -204,7 +215,7 @@ export default {
searchLabelWidth: 60, searchLabelWidth: 60,
sortable: true, sortable: true,
filter: true, filter: true,
type: "select", type: 'select',
dicData: [], dicData: [],
rules: [ rules: [
{ {
@ -215,7 +226,7 @@ export default {
], ],
props: { props: {
label: 'name', label: 'name',
value: 'id' value: 'id',
}, },
}, },
{ {
@ -224,7 +235,6 @@ export default {
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
}, },
], ],
}, },
@ -237,7 +247,7 @@ export default {
}; };
}, },
mounted() { mounted() {
this.fetchDosingManList() this.fetchDosingManList();
}, },
methods: { methods: {
// //
@ -245,22 +255,22 @@ export default {
getDosingManList({ getDosingManList({
current: 1, current: 1,
size: 10000000, size: 10000000,
roleId: '2008474700619563009' roleId: '2008474700619563009',
}).then(res => { }).then(res => {
const result = res.data.data.records const result = res.data.data.records;
this.dosingManList = result this.dosingManList = result;
console.log("加药人result", result) console.log('加药人result', result);
this.option.column.forEach(col => { this.option.column.forEach(col => {
if (col.prop === 'dosingMan') { if (col.prop === 'dosingMan') {
col.dicData = this.dosingManList; col.dicData = this.dosingManList;
} }
}); });
}) });
}, },
// //
moldAddFn(row, flag) { moldAddFn(row, flag) {
this.addOpen = true this.addOpen = true;
this.moldAddMore = flag this.moldAddMore = flag;
}, },
// //
closeDialog() { closeDialog() {
@ -307,11 +317,10 @@ export default {
loading(); loading();
} }
); );
}, },
// //
handleImport() { handleImport() {
this.isShowImport = true this.isShowImport = true;
}, },
// //
refreshChange() { refreshChange() {
@ -353,23 +362,21 @@ export default {
searchChange(params, done) { searchChange(params, done) {
this.query = params; this.query = params;
this.page.currentPage = 1; this.page.currentPage = 1;
this.onLoad(this.page, params) this.onLoad(this.page, params);
done() done();
}, },
// //
searchReset() { searchReset() {
this.query = {} this.query = {};
this.onLoad(this.page) this.onLoad(this.page);
}, },
// //
onLoad(page, params = {}) { onLoad(page, params = {}) {
this.loading = true; this.loading = true;
this.query = { ...this.query, dorType: 1 } //12 this.query = { ...this.query, dorType: 1 }; //12
const requestParams = Object.assign({}, params, this.query); const requestParams = Object.assign({}, params, this.query);
// //
if (requestParams.queryDosingTime && Array.isArray(requestParams.queryDosingTime)) { if (requestParams.queryDosingTime && Array.isArray(requestParams.queryDosingTime)) {
requestParams.queryDosingTime = requestParams.queryDosingTime.join(','); requestParams.queryDosingTime = requestParams.queryDosingTime.join(',');
} }
getList(page.currentPage, page.pageSize, requestParams) getList(page.currentPage, page.pageSize, requestParams)

@ -16,6 +16,7 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
:search.sync="search"
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" icon="el-icon-plus" @click="moldAddFn(null, true)" <el-button type="primary" icon="el-icon-plus" @click="moldAddFn(null, true)"
@ -45,6 +46,7 @@
templateName="废水加药记录导入模板.xls" templateName="废水加药记录导入模板.xls"
importUrl="/blade-desk/bsDosingRec/importExcel" importUrl="/blade-desk/bsDosingRec/importExcel"
@closeDialog="closeImportDialog" @closeDialog="closeImportDialog"
:basicImportSearch="search"
></basic-import> ></basic-import>
</div> </div>
</template> </template>
@ -71,6 +73,9 @@ export default {
loading: false, loading: false,
selectionList: [], selectionList: [],
dosingManList: [], dosingManList: [],
search: {
dorType: 2,
},
option: { option: {
addBtn: false, addBtn: false,
height: 'auto', height: 'auto',

Loading…
Cancel
Save