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. 321
      src/components/basic-import/main.vue
  4. 95
      src/views/basicData/bigBatch/addBatch.vue
  5. 93
      src/views/basicData/bigBatch/index.vue
  6. 299
      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. 509
      src/views/productionManagement/components/coatingMater/abnormalOrder.vue
  20. 12
      src/views/qualityManagement/tankSolutionSystem/workTankManagement.vue
  21. 101
      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
})

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

@ -1,14 +1,24 @@
<template>
<el-dialog :title="title" append-to-body :modelValue="importBox" width="555px" @close="closeDialog">
<avue-form :option="importOption" v-model="importForm" :upload-after="uploadAfter"
:upload-error="uploadError">
<template #excelTemplate>
<el-button type="primary" @click="handleTemplate">
点击下载<i class="el-icon-download el-icon--right"></i>
</el-button>
</template>
</avue-form>
</el-dialog>
<el-dialog
:title="title"
append-to-body
:modelValue="importBox"
width="555px"
@close="closeDialog"
>
<avue-form
:option="importOption"
v-model="importForm"
:upload-after="uploadAfter"
:upload-error="uploadError"
>
<template #excelTemplate>
<el-button type="primary" @click="handleTemplate">
点击下载<i class="el-icon-download el-icon--right"></i>
</el-button>
</template>
</avue-form>
</el-dialog>
</template>
<script>
@ -17,160 +27,171 @@ import website from '@/config/website';
import { getToken } from '@/utils/auth';
import { downloadXls } from '@/utils/util';
export default {
props: {
title:{
type:String,
default:'导入'
},
isShow:{
type:Boolean,
default:false
},
templateUrl:{
type:String,
default:''
},
templateName:{
type:String,
default:'模板'
},
importUrl:{
type:String,
default:''
},
showTips:{
type:String,
default:'请上传 .xls,.xlsx 标准格式文件'
}
props: {
title: {
type: String,
default: '导入',
},
data(){
return{
importBox:false,
importForm:{},
importOption:{
submitBtn: false,
emptyBtn: false,
column: [
{
label: '模板上传',
prop: 'excelFile',
type: 'upload',
drag: true,
loadText: '模板上传中,请稍等',
span: 24,
propsHttp: {
res: 'data',
},
tip: this.showTips,
action: this.importUrl,
},
{
label: '模板下载',
prop: 'excelTemplate',
formslot: true,
span: 24,
},
],
}
}
isShow: {
type: Boolean,
default: false,
},
watch: {
isShow(newVal) {
this.importBox = newVal;
}
templateUrl: {
type: String,
default: '',
},
mounted(){
console.log('isShowImport=================',this.isShow)
this.importBox = this.isShow
templateName: {
type: String,
default: '模板',
},
methods:{
closeDialog(val) {
this.importBox = false;
this.$emit('closeDialog',val);
},
handleTemplate() {
const url = `${this.templateUrl}?${this.website.tokenHeader}=${getToken()}`;
console.log('下载模板URL:', url);
console.log('模板文件名:', this.templateName);
importUrl: {
type: String,
default: '',
},
showTips: {
type: String,
default: '请上传 .xls,.xlsx 标准格式文件',
},
basicImportSearch: {
type: Object,
default: () => {},
},
},
data() {
return {
importBox: false,
importForm: {},
importOption: {
submitBtn: false,
emptyBtn: false,
column: [
{
label: '模板上传',
prop: 'excelFile',
type: 'upload',
drag: true,
loadText: '模板上传中,请稍等',
span: 24,
propsHttp: {
res: 'data',
},
//
data: this.basicImportSearch,
tip: this.showTips,
action: this.importUrl,
},
{
label: '模板下载',
prop: 'excelTemplate',
formslot: true,
span: 24,
},
],
},
};
},
watch: {
isShow(newVal) {
this.importBox = newVal;
},
},
mounted() {
console.log('isShowImport=================', this.isShow);
this.importBox = this.isShow;
},
methods: {
closeDialog(val) {
this.importBox = false;
this.$emit('closeDialog', val);
},
handleTemplate() {
const url = `${this.templateUrl}?${this.website.tokenHeader}=${getToken()}`;
console.log('下载模板URL:', url);
console.log('模板文件名:', this.templateName);
exportBlob(url).then(res => {
console.log('API返回状态:', res.status);
console.log('res.data类型:', typeof res.data);
console.log('res.data instanceof Blob:', res.data instanceof Blob);
console.log('res.data size:', res.data?.size);
console.log('res.data type:', res.data?.type);
exportBlob(url)
.then(res => {
console.log('API返回状态:', res.status);
console.log('res.data类型:', typeof res.data);
console.log('res.data instanceof Blob:', res.data instanceof Blob);
console.log('res.data size:', res.data?.size);
console.log('res.data type:', res.data?.type);
if (!res.data || res.data.size === 0) {
this.$message.error('下载失败,文件内容为空');
return;
}
if (!res.data || res.data.size === 0) {
this.$message.error('下载失败,文件内容为空');
return;
}
// Excel
this.validateExcelBlob(res.data).then(isValid => {
if (!isValid) {
console.error('下载的文件不是有效的Excel文件');
this.$message.error('下载的文件格式不正确');
return;
}
// Excel
this.validateExcelBlob(res.data)
.then(isValid => {
if (!isValid) {
console.error('下载的文件不是有效的Excel文件');
this.$message.error('下载的文件格式不正确');
return;
}
//
let fileName = this.templateName;
if (!fileName.endsWith('.xlsx') && !fileName.endsWith('.xls')) {
fileName += '.xlsx';
}
//
let fileName = this.templateName;
if (!fileName.endsWith('.xlsx') && !fileName.endsWith('.xls')) {
fileName += '.xlsx';
}
console.log('开始下载文件:', fileName);
downloadXls(res.data, fileName);
this.$message.success('模板下载成功');
}).catch(error => {
console.error('验证文件失败:', error);
// 使
let fileName = this.templateName;
if (!fileName.endsWith('.xlsx') && !fileName.endsWith('.xls')) {
fileName += '.xlsx';
}
downloadXls(res.data, fileName);
this.$message.success('模板下载成功');
});
}).catch(error => {
console.error('下载模板失败:', error);
this.$message.error('下载失败,请检查网络或稍后重试');
console.log('开始下载文件:', fileName);
downloadXls(res.data, fileName);
this.$message.success('模板下载成功');
})
.catch(error => {
console.error('验证文件失败:', error);
// 使
let fileName = this.templateName;
if (!fileName.endsWith('.xlsx') && !fileName.endsWith('.xls')) {
fileName += '.xlsx';
}
downloadXls(res.data, fileName);
this.$message.success('模板下载成功');
});
},
validateExcelBlob(blob) {
return new Promise((resolve) => {
const reader = new FileReader();
reader.onloadend = (e) => {
const arr = new Uint8Array(e.target.result);
const header = Array.from(arr.slice(0, 8)).map(b => b.toString(16).padStart(2, '0')).join(' ');
console.log('文件头 (前8字节):', header);
})
.catch(error => {
console.error('下载模板失败:', error);
this.$message.error('下载失败,请检查网络或稍后重试');
});
},
validateExcelBlob(blob) {
return new Promise(resolve => {
const reader = new FileReader();
reader.onloadend = e => {
const arr = new Uint8Array(e.target.result);
const header = Array.from(arr.slice(0, 8))
.map(b => b.toString(16).padStart(2, '0'))
.join(' ');
console.log('文件头 (前8字节):', header);
// XLSX (ZIP): 50 4B 03 04
const isXlsx = header.startsWith('50 4b 03 04');
// XLS: D0 CF 11 E0 A1 B1 1A E1
const isXls = header.toLowerCase().startsWith('d0 cf 11 e0 a1 b1 1a e1');
// XLSX (ZIP): 50 4B 03 04
const isXlsx = header.startsWith('50 4b 03 04');
// XLS: D0 CF 11 E0 A1 B1 1A E1
const isXls = header.toLowerCase().startsWith('d0 cf 11 e0 a1 b1 1a e1');
console.log('是XLSX格式:', isXlsx);
console.log('是XLS格式:', isXls);
console.log('是XLSX格式:', isXlsx);
console.log('是XLS格式:', isXls);
resolve(isXlsx || isXls);
};
reader.onerror = () => resolve(true); //
reader.readAsArrayBuffer(blob.slice(0, 8));
});
},
uploadAfter(res, done, loading, column) {
this.closeDialog(true)
done();
},
uploadError(error, column){
console.log('error-------------',error)
this.closeDialog()
}
}
}
resolve(isXlsx || isXls);
};
reader.onerror = () => resolve(true); //
reader.readAsArrayBuffer(blob.slice(0, 8));
});
},
uploadAfter(res, done, loading, column) {
this.closeDialog(true);
done();
},
uploadError(error, column) {
console.log('error-------------', error);
this.closeDialog();
},
},
};
</script>
<style>
</style>

@ -24,17 +24,17 @@
</template>
<template #default="scope">
<!-- 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
v-model="scope.row.wcId"
v-model="scope.row.caId"
placeholder="请选择"
style="width: 100%"
>
<el-option
v-for="item in wcData"
v-for="item in abilityData"
:key="item.id"
:value="item.id"
:label="item.wcName"
:label="item.caName"
></el-option>
</el-select>
</el-form-item>
@ -46,29 +46,29 @@
<span><i style="color: red">*</i>单批面积</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].batchNo`" :rules="formRules.batchNo">
<el-input-number v-model="scope.row.batchNo" controls-position="right" style="width:99%;"></el-input-number>
<el-form-item :prop="`tableData[${scope.$index}].area`" :rules="formRules.area">
<el-input-number v-model="scope.row.area" :min="0" controls-position="right" style="width:99%;"></el-input-number>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" label="零件号" width="200">
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].partcode`" :rules="formRules.partcode">
<el-input v-model="scope.row.partcode"></el-input>
<el-form-item :prop="`tableData[${scope.$index}].partCode`" :rules="formRules.partCode">
<el-input v-model="scope.row.partCode"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" label="单件面积" width="200">
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].area`" :rules="formRules.area">
<el-input-number v-model="scope.row.area" controls-position="right" style="width:99%;"></el-input-number>
<el-form-item :prop="`tableData[${scope.$index}].singletonArea`" :rules="formRules.singletonArea">
<el-input-number v-model="scope.row.singletonArea" :min="0" controls-position="right" style="width:99%;"></el-input-number>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" label="描述" >
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].remark`" :rules="formRules.remark">
<el-input v-model="scope.row.remark" ></el-input>
<el-form-item :prop="`tableData[${scope.$index}].describe`" :rules="formRules.describe">
<el-input v-model="scope.row.describe" ></el-input>
</el-form-item>
</template>
</el-table-column>
@ -84,6 +84,8 @@
</template>
<script>
import {addBat,updateBat} from "@/api/basicData/bigBatch"
import {getProcessAbility} from "@/api/basicData/outsourcingAssignmentControl"
export default {
props:{
showDialog:{
@ -97,6 +99,10 @@ export default {
moldAddMore:{
type:Boolean,
default:false
},
checkRow:{
type:Object,
default:()=>{}
}
},
data(){
@ -106,26 +112,69 @@ export default {
form:{
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(){
this.openShow = this.showDialog
this.getAbility()
if(this.title == '新增'){
if(this.form.tableData.length === 0){
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:{
getAbility(){
getProcessAbility().then(res =>{
this.abilityData = res.data.data
})
},
selectChange(list, row) {
row._select = !row._select;
},
addTable(){
this.form.tableData.push({
_select:false,
wcId: '',
batchNo: '',
caId: '',
area: null,
singletonArea:null,
partCode:'',
describe:''
})
},
//
@ -157,7 +206,21 @@ export default {
const { _select, ...validData } = row; //
return validData;
});
this.closeDialog(true)
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)
}
})
}
})
},
closeDialog(val) {

@ -19,6 +19,10 @@
>
<template #menu-left>
<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>
</avue-crud>
<add-batch
@ -27,12 +31,14 @@
@closeDialog="closeDialog"
:title="title"
:moldAddMore="moldAddMore"
:checkRow="checkRow"
></add-batch>
</basic-container>
</template>
<script>
import {getList,remove} from "@/api/basicData/bigBatch.js"
import addBatch from "./addBatch.vue"
export default {
components:{
@ -52,6 +58,8 @@ export default {
currentPage: 1,
total: 0,
},
selectionList:[],
chechRow:{},
option:{
columnSort: true,
tip: false,
@ -76,8 +84,8 @@ export default {
addBtn: false,
labelWidth: 120,
searchLabelWidth: 120,
menu: false,
menuWidth: 200,
menu: true,
menuWidth: 80,
dialogWidth: 600,
dialogClickModal: false,
searchEnter: true,
@ -97,7 +105,7 @@ export default {
column: [
{
label: '工艺能力',
prop: 'ypCode',
prop: 'caName',
span: 24,
overflow: true,
search: false,
@ -113,7 +121,7 @@ export default {
},
{
label: '单批面积(dm²)',
prop: 'ypCode',
prop: 'area',
span: 24,
overflow: true,
search: false,
@ -129,7 +137,7 @@ export default {
},
{
label: '零件号(XXX-XXX)',
prop: 'ypCode',
prop: 'partCode',
span: 24,
overflow: true,
search: false,
@ -145,7 +153,7 @@ export default {
},
{
label: '单件面积(dm²)',
prop: 'ypCode',
prop: 'singletonArea',
span: 24,
overflow: true,
search: false,
@ -161,7 +169,7 @@ export default {
},
{
label: '描述',
prop: 'ypCode',
prop: 'describe',
span: 24,
overflow: true,
search: false,
@ -177,7 +185,7 @@ export default {
},
{
label: '维护人',
prop: 'ypCode',
prop: 'updateUserName',
span: 24,
overflow: true,
search: false,
@ -193,7 +201,7 @@ export default {
},
{
label: '维护时间',
prop: 'ypCode',
prop: 'updateTime',
span: 24,
overflow: true,
search: false,
@ -215,6 +223,25 @@ export default {
},
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){
this.showDialog = false
if(val){
@ -222,10 +249,56 @@ export default {
}
},
handleAdd(){
this.chechRow = {}
this.title = '新增'
this.moldAddMore = 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>

@ -7,8 +7,8 @@
v-model="form"
v-model:page="page"
ref="crud"
:before-open="beforeOpen"
@row-del="rowDel"
:before-open="beforeOpen"
@row-save="rowSave"
@row-update="rowUpdate"
@search-change="searchChange"
@ -21,19 +21,15 @@
>
<template #menu-left>
<!-- <el-button type="primary" icon="el-icon-plus" @click="addEdit">新增 </el-button> -->
<el-button type="danger" icon="el-icon-delete" @click="handleDelete"
>删除
</el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleDelete">删除 </el-button>
</template>
<template #menu-right>
<el-button type="primary" icon="el-icon-upload" @click="handleImport">导入 </el-button>
</template>
<template #menu="scope">
<!-- <el-button type="text" @click="editFn(scope.row)">编辑 </el-button>
<el-button type="text" @click="handleDelete">删除 </el-button> -->
<!-- <el-button type="text" @click="editFn(scope.row)">编辑 </el-button> -->
<!-- <el-button type="text" @click="handleDelete">删除 </el-button> -->
</template>
<template #produceTsTarget="scope"> </template>
<template #quota-form="{ type, disabled }">
<el-input v-model="form.quota" placeholder="请输入 滚振镀银类定额" @input="validateQuota"></el-input>
</template>
@ -41,30 +37,33 @@
<el-input v-model="form.smallBatQuota" placeholder="请输入 滚振镀银类定额" @input="validateSmallBat"></el-input>
</template>
</avue-crud>
<!-- 导入 -->
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport"
templateUrl="/blade-desk/QA/CycleTestItem/download-excel-template"
templateName="试验项目模板.xls"
importUrl="/blade-desk/QA/CycleTestItem/import-excel"
@closeDialog="closeDialog"></basic-import>
<!-- 导入 -->
<basic-import
v-if="isShowImport"
title="导入"
:isShow="isShowImport"
templateUrl="/blade-desk/BA/MaterialQuota/downloadExcelTemplate"
templateName="银钾定额模板.xls"
importUrl="/blade-desk/BA/MaterialQuota/importExcel"
@closeDialog="closeDialog"
/>
</div>
</template>
<script>
import basicImport from '@/components/basic-import/main.vue'
import {getList,addQuota,updateQuota,deleteQuota} from '@/api/basicData/materialQuota'
import basicImport from '@/components/basic-import/main.vue';
import { getList, addQuota, updateQuota, deleteQuota } from '@/api/basicData/materialQuota';
export default {
components: {
basicImport,
},
data() {
return {
isShowImport:false,
isShowImport: false,
selectionList: [],
loading:false,
query:{},
loading: {},
query: {},
option: {
height: "auto",
height: 'auto',
calcHeight: 32,
tip: false,
// size: "medium",
@ -81,11 +80,11 @@ export default {
delBtn: true,
addBtn: true,
editBtn: true,
editBtnText: "修改",
viewBtnIcon: " ",
delBtnIcon: " ",
editBtnIcon: " ",
viewBtnText: "详情",
editBtnText: '修改',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
viewBtnText: '详情',
labelWidth: 120,
menuWidth: 120,
dialogWidth: 640,
@ -98,53 +97,60 @@ export default {
excelBtn: true,
columnSort: true,
showOverflowTooltip: true,
searchLabelPosition: "left",
searchLabelPosition: "left",
searchLabelPosition: 'left',
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: "center",
menuAlign: 'center',
gridBtn: false,
searchMenuPosition: "right",
addBtnIcon: " ",
viewBtnIcon: " ",
delBtnIcon: " ",
editBtnIcon: " ",
align: "center",
searchMenuPosition: 'right',
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
align: 'center',
column: [
{
label: "镀层厚度",
prop: "thickness",
label: '镀层厚度',
prop: 'thickness',
sortable: true,
filter: true,
span: 24,
search: false,
rule: [
{
required: true,
message: '请输入镀层厚度',
trigger: 'blur',
},
],
},
// {
// label: "",
// prop: "processAbilityId",
// type:'select',
// type:"select",
// sortable: true,
// filter: true,
// span: 24,
// search: false,
// dicUrl:"/api/blade-desk/BA/craftAbility/findList",
// props:{
// label:'caName',
// label:"caName",
// value:"id"
// }
// },
{
label: "滚振镀银类定额",
prop: "quota",
label: '滚振镀银类定额',
prop: 'quota',
sortable: true,
filter: true,
span: 24,
search: false,
},
{
label: "挂镀银类定额",
prop: "smallBatQuota",
label: '挂镀银类定额',
prop: 'smallBatQuota',
sortable: true,
filter: true,
span: 24,
@ -171,7 +177,11 @@ export default {
};
},
methods: {
validateValue(value){
//
handleImport() {
this.isShowImport = true;
},
validateValue(value) {
if (value == null) return '';
// 1
@ -203,15 +213,11 @@ export default {
}
return filterVal;
},
validateQuota(value){
this.form.quota = this.validateValue(value)
},
validateSmallBat(value){
this.form.smallBatQuota = this.validateValue(value)
validateQuota(value) {
this.form.quota = this.validateValue(value);
},
//
handleImport() {
this.isShowImport = true
validateSmallBat(value) {
this.form.smallBatQuota = this.validateValue(value);
},
addEdit() {
this.isOpen = true;
@ -219,9 +225,13 @@ export default {
editFn(row) {
this.isWorkOpen = true;
},
closeDialog() {
closeDialog(val) {
this.isOpen = false;
this.isWorkOpen = false;
this.isShowImport = false;
if (val) {
this.onLoad();
}
},
maintenanceClick() {
// this.$refs.myTable.fullValidate((errMap) => {
@ -260,162 +270,87 @@ export default {
},
handleDelete() {
if (this.selectionList.length === 0) {
this.$message.error('请选择至少一条数据');
return;
this.$message.error('请选择至少一条数据');
return;
}
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
deleteQuota({
ids:this.selectionList.map(item => item.id).join(',')
}).then(res =>{
if(res.data.code == 200){
this.$message.success('删除成功')
this.onLoad()
ids: this.selectionList.map(item => item.id).join(','),
}).then(res => {
if (res.data.code == 200) {
this.$message.success('删除成功');
this.onLoad();
}
})
});
});
},
refreshChange() {
this.onLoad();
},
//
selectionChange(list) {
this.selectionList = list;
},
beforeOpen(done, type){
if(type == 'edit'){
this.form.processAbilityId = this.form.processAbilityId + ''
setTimeout(() =>{
done()
},200)
}else{
done()
beforeOpen(done, type) {
if (type == 'edit') {
this.form.processAbilityId = this.form.processAbilityId + '';
done();
} else {
done();
}
},
rowSave(row, done, loading){
row.quotaType = 2
addQuota(row).then(res =>{
if(res.data.code == 200){
this.$message.success('新增成功')
this.onLoad()
done()
rowSave(row, done, loading) {
row.quotaType = 2;
addQuota(row).then(res => {
if (res.data.code == 200) {
this.$message.success('新增成功');
this.onLoad();
done();
}
})
});
},
rowUpdate(row, index, done, loading){
row.quotaType = 2
updateQuota(row).then(res =>{
if(res.data.code == 200){
this.$message.success('修改成功')
this.onLoad()
done()
rowUpdate(row, index, done, loading) {
row.quotaType = 2;
updateQuota(row).then(res => {
if (res.data.code == 200) {
this.$message.success('修改成功');
this.onLoad();
done();
}
})
});
},
rowDel(row){
rowDel(row) {
this.$confirm('确定删除数据吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
deleteQuota({
ids:row.id
}).then(res =>{
if(res.data.code == 200){
this.$message.success('删除成功')
this.onLoad()
ids: row.id,
}).then(res => {
if (res.data.code == 200) {
this.$message.success('删除成功');
this.onLoad();
}
})
})
});
});
},
onLoad() {
this.loading = true;
getList({
current:this.page.currentPage,
size:this.page.pageSize,
quotaType:2,
...this.query
}).then(res =>{
this.data = res.data.data.records
this.page.total = res.data.data.total
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);
current: this.page.currentPage,
size: this.page.pageSize,
quotaType: 2,
...this.query,
}).then(res => {
this.data = res.data.data.records;
this.page.total = res.data.data.total;
this.loading = false;
});
},
},
};

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

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

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

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

@ -21,7 +21,7 @@
<el-button type="primary" plain @click="handleSave">保存 </el-button>
</template>
<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-select>
</template>
@ -388,6 +388,22 @@ export default {
// 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() {
this.loading = true;
try {

@ -8,7 +8,10 @@
@opened="opened"
>
<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="一级工艺路线">
<!-- {{ craftData.primaryCraft }} -->{{ primaryCraft }}
</el-descriptions-item>
@ -141,17 +144,17 @@ export default {
editBtnIcon: ' ',
align: 'center',
column: [
{
label: '零件号',
prop: 'partcode',
search: false,
// width: 150,
},
// {
// label: '',
// prop: 'partcode',
// search: false,
// // width: 150,
// },
{
label: '零件名称',
prop: 'partname',
search: false,
width: 170,
// width: 170,
},
{
label: '一级工艺计划(A)号',

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

@ -289,7 +289,7 @@ export default {
},
{
label: '使用部门',
prop: 'useDeptName',
prop: 'useDept',
search: false,
sortable: true,
disabled: true,
@ -416,7 +416,7 @@ export default {
{
label: '计划员',
prop: 'planUserName',
prop: 'planUser',
search: false,
sortable: true,
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>
<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="2"></el-tab-pane>
<el-tab-pane label="添加量申报" name="3"></el-tab-pane>
<el-tab-pane label="定额异常订单" name="4"></el-tab-pane>
</el-tabs>
<materialRequirements v-if="tabPosition=='1'"></materialRequirements>
<assayedContent v-if="tabPosition=='2'"></assayedContent>
</el-tabs> -->
<materialRequirements ></materialRequirements>
<!-- <assayedContent v-if="tabPosition=='2'"></assayedContent>
<addRequirements v-if="tabPosition=='3'"></addRequirements>
<abnormalOrder v-if="tabPosition=='4'"></abnormalOrder>
<abnormalOrder v-if="tabPosition=='4'"></abnormalOrder> -->
</basic-container>
</template>

@ -17,13 +17,29 @@
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #menu-left>
<el-button type="primary" @click="reCalc">重新计算</el-button>
</template>
</avue-crud>
<settlementDailog
v-if="isOpen"
:abnormal="true"
:showDialog="isOpen"
:settleResult="settleResult"
@closeDialog="closeDialog"
@refresh="refreshTable"
>
</settlementDailog>
</div>
</template>
<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 {
components:{
settlementDailog
},
data(){
return{
loading:false,
@ -35,6 +51,8 @@ export default {
total: 0,
},
query:{},
isOpen:false,
settleResult:{},
selectionList:[],
option:{
columnSort: true,
@ -43,7 +61,7 @@ export default {
calcHeight: 32,
simplePage: false,
searchShow: true,
searchMenuSpan: 18,
searchMenuSpan: 12,
searchIcon: true,
searchIndex: 3,
tree: false,
@ -79,11 +97,29 @@ export default {
searchMenuPosition: 'right',
align: 'center',
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: '计划单号',
prop: 'ypCode',
span: 24,
width: 150,
// width: 150,
overflow: true,
search: true,
headerAlign: 'center',
@ -97,18 +133,18 @@ export default {
]
},
{
label: '生产单',
label: '生产单',
prop: 'yoCode',
search: false,
sortable: true,
width: 150,
// width: 150,
span: 12,
headerAlign: 'center',
align: 'center',
rules: [
{
required: true,
message: '请输入生产单',
message: '请输入生产单',
trigger: 'blur',
},
],
@ -116,9 +152,9 @@ export default {
{
label: '零件号',
prop: 'partCode',
search: false,
search: true,
sortable: true,
width: 150,
// width: 150,
span: 12,
headerAlign: 'center',
align: 'center',
@ -130,112 +166,112 @@ export default {
},
],
},
{
label: '产品型号',
prop: 'productType',
search: false,
sortable: true,
disabled: true,
width: 150,
span: 12,
headerAlign: 'center',
align: 'center',
rules: [
{
required: false,
message: '请输入产品型号',
trigger: 'blur',
},
],
},
{
label: '产品名称',
prop: 'partName',
search: false,
sortable: true,
disabled: true,
span: 12,
width: 150,
headerAlign: 'center',
align: 'left',
rules: [
{
required: false,
message: '请输入产品名称',
trigger: 'blur',
},
],
},
{
label: '流程卡号',
prop: 'cardNo',
search: false,
sortable: true,
disabled: true,
span: 12,
width: 150,
headerAlign: 'center',
rules: [
{
required: false,
message: '请输入流程卡号',
trigger: 'blur',
},
],
},
{
label: '批次号',
prop: 'batchNo',
search: false,
sortable: true,
disabled: true,
span: 12,
width: 150,
headerAlign: 'center',
rules: [
{
required: false,
message: '请输入批次号',
trigger: 'blur',
},
],
},
{
label: '镀种',
prop: 'plate',
search: false,
sortable: true,
disabled: true,
width: 150,
span: 12,
headerAlign: 'center',
align: 'center',
rules: [
{
required: false,
message: '请输入镀种',
trigger: 'blur',
},
],
},
{
label: '面积(d㎡)',
prop: 'ypArea',
search: false,
sortable: true,
width: 120,
span: 12,
disabled: true,
headerAlign: 'center',
align: 'center',
rules: [
{
required: false,
message: '请输入面积(d㎡)',
trigger: 'blur',
},
],
},
// {
// label: '',
// prop: 'productType',
// search: false,
// sortable: true,
// disabled: true,
// width: 150,
// span: 12,
// headerAlign: 'center',
// align: 'center',
// rules: [
// {
// required: false,
// message: '',
// trigger: 'blur',
// },
// ],
// },
// {
// label: '',
// prop: 'partName',
// search: false,
// sortable: true,
// disabled: true,
// span: 12,
// width: 150,
// headerAlign: 'center',
// align: 'left',
// rules: [
// {
// required: false,
// message: '',
// trigger: 'blur',
// },
// ],
// },
// {
// label: '',
// prop: 'cardNo',
// search: false,
// sortable: true,
// disabled: true,
// span: 12,
// width: 150,
// headerAlign: 'center',
// rules: [
// {
// required: false,
// message: '',
// trigger: 'blur',
// },
// ],
// },
// {
// label: '',
// prop: 'batchNo',
// search: false,
// sortable: true,
// disabled: true,
// span: 12,
// width: 150,
// headerAlign: 'center',
// rules: [
// {
// required: false,
// message: '',
// trigger: 'blur',
// },
// ],
// },
// {
// label: '',
// prop: 'plate',
// search: false,
// sortable: true,
// disabled: true,
// width: 150,
// span: 12,
// headerAlign: 'center',
// align: 'center',
// rules: [
// {
// required: false,
// message: '',
// trigger: 'blur',
// },
// ],
// },
// {
// label: '(d)',
// prop: 'ypArea',
// search: false,
// sortable: true,
// width: 120,
// span: 12,
// disabled: true,
// headerAlign: 'center',
// align: 'center',
// rules: [
// {
// required: false,
// message: '(d)',
// trigger: 'blur',
// },
// ],
// },
{
label: '生产标识',
prop: 'productIdent',
@ -259,30 +295,30 @@ export default {
},
],
},
{
label: '使用部门',
prop: 'useDept',
search: false,
sortable: true,
disabled: true,
width: 120,
span: 12,
headerAlign: 'center',
align: 'center',
rules: [
{
required: true,
message: '请输入使用部门',
trigger: 'blur',
},
],
},
// {
// label: '使',
// prop: 'useDept',
// search: false,
// sortable: true,
// disabled: true,
// width: 120,
// span: 12,
// headerAlign: 'center',
// align: 'center',
// rules: [
// {
// required: true,
// message: '使',
// trigger: 'blur',
// },
// ],
// },
{
label: '生产数量',
prop: 'ypQty',
search: false,
sortable: true,
width: 120,
// width: 120,
span: 12,
headerAlign: 'center',
align: 'center',
@ -294,49 +330,49 @@ export default {
},
],
},
{
label: '需求交期',
prop: 'demandDate',
search: false,
sortable: true,
width: 180,
span: 12,
headerAlign: 'center',
align: 'center',
type: 'datetime', // datetime
valueFormat: 'YYYY-MM-DD HH:mm:ss', //
rules: [
{
required: true,
message: '请输入需求交期',
trigger: 'blur',
},
],
},
{
label: '计划员',
prop: 'planUser',
search: false,
sortable: true,
width: 120,
span: 12,
headerAlign: 'center',
align: 'center',
rules: [
{
required: true,
message: '请输入计划员',
trigger: 'blur',
},
],
},
// {
// label: '',
// prop: 'demandDate',
// search: false,
// sortable: true,
// width: 180,
// span: 12,
// headerAlign: 'center',
// align: 'center',
// type: 'datetime', // datetime
// valueFormat: 'YYYY-MM-DD HH:mm:ss', //
// rules: [
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
// ],
// },
// {
// label: '',
// prop: 'planUser',
// search: false,
// sortable: true,
// width: 120,
// span: 12,
// headerAlign: 'center',
// align: 'center',
// rules: [
// {
// required: true,
// message: '',
// trigger: 'blur',
// },
// ],
// },
{
label: '计划下达时间',
prop: 'releaseDate',
search: false,
sortable: true,
searchLabelWidth: 100,
width: 180,
// width: 180,
span: 12,
type: 'datetime', // datetime
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,
// message: '',
// trigger: 'blur',
// },
// ],
},
// {
// 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: '',
// },
// ],
// },
]
}
}
},
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){
this.query = params;
this.page.currentPage = 1;

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

@ -23,7 +23,7 @@
</el-button> -->
</template>
<template #menu-right>
<el-button type="primary" @click="handleImport">导入 </el-button>
<el-button type="primary" @click="handleImport">导入 </el-button>
</template>
</avue-crud>
<!-- 导入 -->
@ -35,36 +35,47 @@
templateName="废气加药记录导入模板.xls"
importUrl="/blade-desk/bsDosingRec/importExcel"
@closeDialog="closeImportDialog"
:basicImportSearch="search"
></basic-import>
<!-- 新增 -->
<addEditDialogDosingRecord
v-if="addOpen"
:showDialog="addOpen"
@closeDialog="closeDialog"
:moldAddMore="moldAddMore"
:dosingManList="dosingManList"
@submitData="handleSubmitData">
<addEditDialogDosingRecord
v-if="addOpen"
:showDialog="addOpen"
@closeDialog="closeDialog"
:moldAddMore="moldAddMore"
:dosingManList="dosingManList"
@submitData="handleSubmitData"
>
</addEditDialogDosingRecord>
</div>
</template>
<script>
import basicImport from '@/components/basic-import/main.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 {
components: {
basicImport,
addEditDialogDosingRecord
addEditDialogDosingRecord,
},
data() {
return {
dosingManList:[],
dosingManList: [],
addOpen: false, //
moldAddMore: false,
isShowImport: false,
loading: false,
selectionList: [],
search: {
dorType: 1,
},
option: {
addBtn: false,
height: 'auto',
@ -165,7 +176,7 @@ export default {
sortable: true,
filter: true,
hide: true,
editDisplay:false,
editDisplay: false,
type: 'datetime',
format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
@ -204,7 +215,7 @@ export default {
searchLabelWidth: 60,
sortable: true,
filter: true,
type: "select",
type: 'select',
dicData: [],
rules: [
{
@ -214,8 +225,8 @@ export default {
},
],
props: {
label: 'name',
value: 'id'
label: 'name',
value: 'id',
},
},
{
@ -224,7 +235,6 @@ export default {
search: false,
sortable: true,
filter: true,
},
],
},
@ -237,7 +247,7 @@ export default {
};
},
mounted() {
this.fetchDosingManList()
this.fetchDosingManList();
},
methods: {
//
@ -245,27 +255,27 @@ export default {
getDosingManList({
current: 1,
size: 10000000,
roleId: '2008474700619563009'
roleId: '2008474700619563009',
}).then(res => {
const result = res.data.data.records
this.dosingManList = result
console.log("加药人result", result)
const result = res.data.data.records;
this.dosingManList = result;
console.log('加药人result', result);
this.option.column.forEach(col => {
if (col.prop === 'dosingMan') {
col.dicData = this.dosingManList;
}
});
})
});
},
//
moldAddFn(row, flag) {
this.addOpen = true
this.moldAddMore = flag
},
//
closeDialog() {
this.addOpen = false;
this.onLoad(this.page);
//
moldAddFn(row, flag) {
this.addOpen = true;
this.moldAddMore = flag;
},
//
closeDialog() {
this.addOpen = false;
this.onLoad(this.page);
},
//
@ -273,7 +283,7 @@ export default {
this.isShowImport = false;
this.onLoad(this.page);
},
//
//
rowUpdate(row, index, done, loading) {
update(row).then(
() => {
@ -290,15 +300,15 @@ export default {
}
);
},
//
handleSubmitData(data) {
add(data).then(
//
handleSubmitData(data) {
add(data).then(
res => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
});
this.addOpen = false;
done();
},
@ -307,11 +317,10 @@ export default {
loading();
}
);
},
},
//
handleImport() {
this.isShowImport = true
this.isShowImport = true;
},
//
refreshChange() {
@ -353,23 +362,21 @@ export default {
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params)
done()
this.onLoad(this.page, params);
done();
},
//
searchReset() {
this.query = {}
this.onLoad(this.page)
this.query = {};
this.onLoad(this.page);
},
//
onLoad(page, params = {}) {
this.loading = true;
this.query = { ...this.query, dorType: 1 } //12
this.query = { ...this.query, dorType: 1 }; //12
const requestParams = Object.assign({}, params, this.query);
//
if (requestParams.queryDosingTime && Array.isArray(requestParams.queryDosingTime)) {
requestParams.queryDosingTime = requestParams.queryDosingTime.join(',');
}
getList(page.currentPage, page.pageSize, requestParams)

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

Loading…
Cancel
Save