aaa
This commit is contained in:
parent
2f25b02533
commit
55a32a3831
@ -69,3 +69,13 @@ export function delDetails(id) {
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 导入电气BOM(Excel)
|
||||
export function importElectricalBom(formData) {
|
||||
return request({
|
||||
url: '/system/details/importElectricalBom',
|
||||
method: 'post',
|
||||
data: formData,
|
||||
headers: { 'Content-Type': 'multipart/form-data' }
|
||||
})
|
||||
}
|
||||
|
||||
@ -140,8 +140,19 @@ export function uploadPDF(id) {
|
||||
// 下载生产工艺计划表
|
||||
export function exportRoute(id) {
|
||||
return request({
|
||||
url: `/system/orderPro/exportRoute2?id=${id}`,
|
||||
method: 'post',
|
||||
url: '/system/orderPro/exportRoute2',
|
||||
method: 'get',
|
||||
params: { id },
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
// 下载工艺计划表(新路径 exportRoute3)
|
||||
export function exportRoute3(id) {
|
||||
return request({
|
||||
url: '/system/orderPro/exportRoute3',
|
||||
method: 'get',
|
||||
params: { id },
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
44
src/api/system/spec100r.js
Normal file
44
src/api/system/spec100r.js
Normal file
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询100R设备规格参数列表
|
||||
export function listSpec100r(query) {
|
||||
return request({
|
||||
url: '/system/spec100r/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询100R设备规格参数详细
|
||||
export function getSpec100r(id) {
|
||||
return request({
|
||||
url: '/system/spec100r/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增100R设备规格参数
|
||||
export function addSpec100r(data) {
|
||||
return request({
|
||||
url: '/system/spec100r',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改100R设备规格参数
|
||||
export function updateSpec100r(data) {
|
||||
return request({
|
||||
url: '/system/spec100r',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除100R设备规格参数
|
||||
export function delSpec100r(id) {
|
||||
return request({
|
||||
url: '/system/spec100r/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
44
src/api/system/spec40r.js
Normal file
44
src/api/system/spec40r.js
Normal file
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询40R设备规格参数列表
|
||||
export function listSpec40r(query) {
|
||||
return request({
|
||||
url: '/system/spec40r/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询40R设备规格参数详细
|
||||
export function getSpec40r(id) {
|
||||
return request({
|
||||
url: '/system/spec40r/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增40R设备规格参数
|
||||
export function addSpec40r(data) {
|
||||
return request({
|
||||
url: '/system/spec40r',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改40R设备规格参数
|
||||
export function updateSpec40r(data) {
|
||||
return request({
|
||||
url: '/system/spec40r',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除40R设备规格参数
|
||||
export function delSpec40r(id) {
|
||||
return request({
|
||||
url: '/system/spec40r/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
44
src/api/system/spec40s.js
Normal file
44
src/api/system/spec40s.js
Normal file
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询40S设备规格参数列表
|
||||
export function listSpec40s(query) {
|
||||
return request({
|
||||
url: '/system/spec40s/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询40S设备规格参数详细
|
||||
export function getSpec40s(id) {
|
||||
return request({
|
||||
url: '/system/spec40s/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增40S设备规格参数
|
||||
export function addSpec40s(data) {
|
||||
return request({
|
||||
url: '/system/spec40s',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改40S设备规格参数
|
||||
export function updateSpec40s(data) {
|
||||
return request({
|
||||
url: '/system/spec40s',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除40S设备规格参数
|
||||
export function delSpec40s(id) {
|
||||
return request({
|
||||
url: '/system/spec40s/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
@ -129,23 +129,15 @@
|
||||
<el-table-column label="执行单图" align="center" min-width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-image
|
||||
v-if="scope.row.drawingPath"
|
||||
:src="getFullImageUrl(scope.row.drawingPath)"
|
||||
v-if="scope.row.drawingPathUrl || scope.row.drawingPath"
|
||||
:src="getFullImageUrl(scope.row)"
|
||||
style="width:80px; height:80px; object-fit:cover; border-radius:4px;"
|
||||
:preview-src-list="[getFullImageUrl(scope.row.drawingPath)]"
|
||||
:preview-src-list="[getFullImageUrl(scope.row)]"
|
||||
fit="cover"
|
||||
/>
|
||||
<span v-else style="color: #909399; font-size: 12px;">暂无执行单图</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="项目类型" align="center" prop="drawingType">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.drawingType">
|
||||
{{ getDrawingTypeLabel(scope.row.drawingType) }}
|
||||
</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
</el-table-column>-->
|
||||
|
||||
<el-table-column label="项目状态" align="center" prop="imCategory">
|
||||
<template slot-scope="scope">
|
||||
@ -171,7 +163,7 @@
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="创建人" align="center" prop="createBy"/>
|
||||
<el-table-column label="项目完成时间" align="center" prop="projectEndTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.projectEndTime, '{y}-{m}-{d}') }}</span>
|
||||
@ -235,7 +227,21 @@
|
||||
</el-divider>
|
||||
<div style="padding: 20px;">
|
||||
<!-- 第一部分:销齿链型号表格管理 -->
|
||||
<el-button type="primary" @click="openAddChainDialog" size="mini" style="margin-bottom:10px;">新增</el-button>
|
||||
<div style="display: flex; align-items: center; gap: 8px; margin-bottom: 10px;">
|
||||
<el-button type="primary" @click="openAddChainDialog" size="mini" v-hasPermi="['system:save:add']">新增</el-button>
|
||||
<el-upload
|
||||
:action="dwgUploadUrl"
|
||||
:headers="uploadHeaders"
|
||||
:show-file-list="false"
|
||||
accept=".dwg"
|
||||
:http-request="batchUploadDwg"
|
||||
:before-upload="beforeBatchDwgUpload"
|
||||
>
|
||||
<el-button type="success" size="mini" :disabled="!selectedChainIds.length" v-hasPermi="['system:orderPro:uploadDwg']">
|
||||
<i class="el-icon-upload2"></i> 上传图纸
|
||||
</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
<el-table
|
||||
:data="chainTable"
|
||||
border
|
||||
@ -244,8 +250,9 @@
|
||||
style="width: 100%; margin-bottom: 10px;"
|
||||
highlight-current-row
|
||||
:header-cell-style="{ fontWeight: 'bold', background: '#f5f7fa' }"
|
||||
@selection-change="handleChainSelectionChange"
|
||||
>
|
||||
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="figureNumber" label="产品型号" min-width="100"/>
|
||||
<el-table-column prop="figureName" label="产品名称" min-width="140"/>
|
||||
<el-table-column prop="jdInventory" label="行程" min-width="80"/>
|
||||
@ -255,27 +262,12 @@
|
||||
<el-table-column label="操作" width="200">
|
||||
<template slot-scope="scope">
|
||||
<div style="display: flex; align-items: center; gap: 8px;">
|
||||
<el-upload
|
||||
:action="dwgUploadUrl"
|
||||
:headers="uploadHeaders"
|
||||
:data="{ id: scope.row.id }"
|
||||
:show-file-list="false"
|
||||
:before-upload="(file) => beforeDwgUpload(file, scope.row)"
|
||||
:on-success="(response, file) => handleDwgUploadSuccess(response, file, scope.row)"
|
||||
:on-error="(error, file) => handleDwgUploadError(error, file, scope.row)"
|
||||
accept=".dwg"
|
||||
:disabled="form.isEnterpriseStandard === 1"
|
||||
>
|
||||
<el-button size="mini" type="primary" :disabled="form.isEnterpriseStandard === 1">
|
||||
<i class="el-icon-upload2"></i> 上传
|
||||
</el-button>
|
||||
</el-upload>
|
||||
|
||||
<el-button type="text" size="mini" @click="editChain(scope.$index, scope.row)">
|
||||
|
||||
<el-button type="text" size="mini" @click="editChain(scope.$index, scope.row)" v-hasPermi="['system:save:edit']">
|
||||
<i class="el-icon-edit"></i> 修改
|
||||
</el-button>
|
||||
|
||||
<el-button type="text" size="mini" @click="removeChain(scope.$index)">
|
||||
<el-button type="text" size="mini" @click="removeChain(scope.$index)" v-hasPermi="['system:save:remove']">
|
||||
<i class="el-icon-delete"></i> 删除
|
||||
</el-button>
|
||||
</div>
|
||||
@ -290,16 +282,31 @@
|
||||
</el-divider>
|
||||
<!-- 第二部分:执行出图命令及日志展示 -->
|
||||
<div style="margin-bottom: 20px;">
|
||||
<el-button type="success" :loading="drawLoading" @click="executeDrawCommand" style="margin-bottom: 10px;">
|
||||
执行出图
|
||||
</el-button>
|
||||
<el-button type="primary" @click="downloadPDF" style="margin-bottom: 10px; margin-left: 10px;">
|
||||
下载PDF
|
||||
</el-button>
|
||||
<el-button type="warning" @click="downloadRoute" style="margin-bottom: 10px; margin-left: 10px;"
|
||||
v-hasPermi="['system:route:exportRoute']">
|
||||
下载生产工艺计划表
|
||||
</el-button>
|
||||
<div style="display: flex; align-items: center; gap: 10px; margin-bottom: 10px;">
|
||||
<el-button type="success" :loading="drawLoading" @click="executeDrawCommand" v-hasPermi="['system:orderPro:executDrawing']">
|
||||
执行出图
|
||||
</el-button>
|
||||
<el-button type="primary" @click="downloadPDF" v-hasPermi="['system:orderPro:uploadPDF']">
|
||||
下载PDF
|
||||
</el-button>
|
||||
<el-button type="warning" @click="downloadRoute" v-hasPermi="['system:orderPro:exportRoute2']">
|
||||
下载金蝶工艺计划表
|
||||
</el-button>
|
||||
<el-button type="primary" @click="downloadRoute3" v-hasPermi="['system:orderPro:exportRoute3']">
|
||||
导出工艺计划表
|
||||
</el-button>
|
||||
<el-upload
|
||||
:show-file-list="false"
|
||||
:http-request="uploadElectricalBom"
|
||||
:before-upload="beforeElectricalBomUpload"
|
||||
accept=".xls,.xlsx"
|
||||
style="display: inline-block;"
|
||||
>
|
||||
<el-button type="info" v-hasPermi="['system:details:importElectricalBom']">
|
||||
导入电气BOM
|
||||
</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
<el-progress :text-inside="true" :stroke-width="26" :percentage="percentage"></el-progress>
|
||||
<el-card shadow="never" style="background: #f9f9f9; min-height: 120px; max-height: 220px; overflow-y: auto;">
|
||||
<div style="font-size: 13px; color: #333; white-space: pre-line;">
|
||||
@ -736,12 +743,8 @@
|
||||
</el-card>
|
||||
|
||||
<!-- 新增/编辑弹窗 -->
|
||||
<el-dialog
|
||||
:title="isEditChain ? '编辑销齿链型号' : '新增销齿链型号'"
|
||||
:visible.sync="chainDialogVisible"
|
||||
width="420px"
|
||||
append-to-body
|
||||
>
|
||||
<el-dialog :title="isEditChain ? '编辑销齿链型号' : '新增销齿链型号'" :visible.sync="chainDialogVisible"
|
||||
width="420px" append-to-body >
|
||||
<el-form :model="chainForm" label-width="100px">
|
||||
<div
|
||||
style="margin-bottom: 16px; padding: 12px; background-color: #f0f9ff; border: 1px solid #b3d8ff; border-radius: 4px; color: #409eff; font-size: 13px;">
|
||||
@ -757,12 +760,13 @@
|
||||
filterable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入行程/类型/名称/产品名(可选)"
|
||||
:placeholder="isEditChain ? '编辑模式不使用此项' : '请输入行程/类型/名称/产品名(可选)'"
|
||||
:remote-method="searchRigidChain"
|
||||
:loading="chainLoading"
|
||||
@change="onRigidChainSelect"
|
||||
popper-class="chain-autocomplete-dropdown"
|
||||
:default-first-option="false"
|
||||
:disabled="isEditChain"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
@ -783,21 +787,32 @@
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="产品名称" required>
|
||||
<el-input v-model="chainForm.figureName" placeholder="请输入产品名称"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="生产令号">
|
||||
<el-input v-model="chainForm.productionCode" placeholder="请输入生产令号"/>
|
||||
<el-input v-model="chainForm.productionCode" placeholder="请输入生产令号" disabled/>
|
||||
</el-form-item>
|
||||
<el-form-item label="产品型号" required>
|
||||
<el-input v-model="chainForm.figureNumber" placeholder="请输入产品型号"/>
|
||||
<el-form-item label="物料类型">
|
||||
<el-select v-model="chainForm.productType" placeholder="请选择类型" clearable>
|
||||
<el-option label="30S" value="30S" />
|
||||
<el-option label="30D" value="30D" />
|
||||
<el-option label="35R" value="35R" />
|
||||
<el-option label="40S" value="40S" />
|
||||
<el-option label="40R" value="40R" />
|
||||
<el-option label="60R" value="60R" />
|
||||
<el-option label="80R" value="80R" />
|
||||
<el-option label="100R" value="100R" />
|
||||
<el-option label="125R" value="125R" />
|
||||
<el-option label="150R" value="150R" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="数量" required>
|
||||
<el-form-item label="物料编码" required>
|
||||
<el-input v-model="chainForm.figureNumber" placeholder="请输入图号"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物料名称" required>
|
||||
<el-input v-model="chainForm.figureName" placeholder="请输入名称"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物料数量" required>
|
||||
<el-input v-model="chainForm.figureNum" placeholder="请输入数量" type="number" min="1"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="行程" required>
|
||||
<el-input v-model="chainForm.jdInventory" placeholder="请输入行程"/>
|
||||
</el-form-item>
|
||||
<!-- 文件路径和DWG上传,企标可编辑,非企标只读+可上传 -->
|
||||
<el-form-item label="文件路径">
|
||||
<div>
|
||||
@ -820,9 +835,7 @@
|
||||
<el-input v-model="chainForm.drawPath" placeholder="请输入文件路径"/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="产品类型" required>
|
||||
<el-input v-model="chainForm.productType" placeholder="请输入产品类型"/>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer" style="text-align: right;">
|
||||
<el-button @click="chainDialogVisible = false">取 消</el-button>
|
||||
@ -919,20 +932,23 @@ import {
|
||||
delSave,
|
||||
uploadPDF,
|
||||
exportRoute,
|
||||
exportRoute3,
|
||||
getMRPResults,
|
||||
getRouteLog,
|
||||
getBomUploadStatus
|
||||
} from "@/api/system/orderPro";
|
||||
import {processList} from "../../../api/system/orderPro";
|
||||
import {listRigidChain} from '@/api/system/pcRigidChain';
|
||||
import {addProduct} from '@/api/system/orderPro';
|
||||
import {addProduct, updateProduct} from '@/api/system/orderPro';
|
||||
import {getstate} from '@/utils/external-api';
|
||||
import {listConfigIni} from '@/api/system/configIni';
|
||||
import ImageUpload from '@/components/ImageUpload';
|
||||
import {getToken} from '@/utils/auth';
|
||||
import axios from 'axios';
|
||||
import bomInfo from '@/views/system/details/index.vue'; //bom明细
|
||||
import processInfo from '@/views/system/route/index.vue'; //工艺信息
|
||||
import {listMrp, exportMrp} from '@/api/system/mrp';
|
||||
import {importElectricalBom} from '@/api/system/details';
|
||||
import dayjs from "dayjs";
|
||||
|
||||
export default {
|
||||
@ -985,6 +1001,7 @@ export default {
|
||||
planStartTime: undefined,
|
||||
drawingType: undefined,
|
||||
projectEndTime: undefined,
|
||||
createBy: undefined,
|
||||
unit: undefined,
|
||||
quantity: undefined,
|
||||
isEnterpriseStandard: undefined,
|
||||
@ -1081,19 +1098,26 @@ export default {
|
||||
chainTable: [], // 销齿链型号表格数据
|
||||
chainForm: {
|
||||
pid: '',
|
||||
jdInventory: '',
|
||||
figureNumber: '',
|
||||
productType: '',
|
||||
figureNum: '',
|
||||
productName: '',
|
||||
productionCode: '',
|
||||
selectedFileType: '', // 新增
|
||||
productType: '',
|
||||
figureNumber: '',
|
||||
figureName: '',
|
||||
figureNum: '',
|
||||
jdInventory: '',
|
||||
axialType: '',
|
||||
boxType: '',
|
||||
selectedFileType: '',
|
||||
drawPath: '',
|
||||
id: undefined,
|
||||
},
|
||||
chainDialogVisible: false, // 控制新增/编辑弹窗
|
||||
isEditChain: false, // 区分新增/编辑
|
||||
editChainIndex: null, // 编辑时的索引
|
||||
rigidChainOptions: [],
|
||||
typeOptions: [],
|
||||
journeyOptions: [],
|
||||
chainLoading: false,
|
||||
selectedChainIds: [],
|
||||
drawLog: '', // 出图日志内容
|
||||
drawLoading: false, // 出图按钮 loading
|
||||
currentPid: null, // 当前项目id
|
||||
@ -1131,7 +1155,7 @@ export default {
|
||||
this.getDrawingTypeOptions();
|
||||
this.getConfigIniOptions(); // 新增
|
||||
|
||||
this.$api = {addProduct};
|
||||
this.$api = {addProduct, updateProduct};
|
||||
},
|
||||
watch: {
|
||||
'form.isEnterpriseStandard': function (newVal) {
|
||||
@ -1316,13 +1340,11 @@ export default {
|
||||
this.clearProcessLog();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!latest) {
|
||||
this.$message.info('暂无工艺上传日志');
|
||||
this.clearProcessLog();
|
||||
return;
|
||||
}
|
||||
|
||||
// 直接使用解析后的数据结构
|
||||
// 处理时间:dayjs 支持时间戳(毫秒)和日期字符串
|
||||
this.processUploadLog = {
|
||||
@ -1331,12 +1353,10 @@ export default {
|
||||
duplicateRoutes: latest.duplicateRoutes || [],
|
||||
failedRoutes: latest.failedRoutes || []
|
||||
};
|
||||
this.$message.success('已拉取最新日志');
|
||||
} else {
|
||||
this.$message.error(res && res.msg ? res.msg : '获取工艺上传日志失败');
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('获取工艺上传日志异常', e);
|
||||
this.$message.error('获取工艺上传日志失败');
|
||||
} finally {
|
||||
this.processLogLoading = false;
|
||||
@ -1400,12 +1420,10 @@ export default {
|
||||
this.bomUploadLog = {
|
||||
items: items
|
||||
};
|
||||
this.$message.success('已拉取最新BOM日志');
|
||||
} else {
|
||||
this.$message.error(res && res.msg ? res.msg : '获取BOM上传日志失败');
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('获取BOM上传日志异常', e);
|
||||
this.$message.error('获取BOM上传日志失败');
|
||||
} finally {
|
||||
this.bomLogLoading = false;
|
||||
@ -1926,26 +1944,45 @@ export default {
|
||||
...this.queryParams
|
||||
}, `orderPro_${new Date().getTime()}.xlsx`)
|
||||
},
|
||||
openAddChainDialog() {
|
||||
this.isEditChain = false;
|
||||
this.chainForm = {
|
||||
productName: '',
|
||||
openAddChainDialog() {
|
||||
this.isEditChain = false;
|
||||
this.chainForm = {
|
||||
pid: this.id,
|
||||
productionCode: this.productionObj.productionOrderNo,
|
||||
figureName: '',
|
||||
productType: '',
|
||||
figureNumber: '',
|
||||
figureName: '',
|
||||
figureNum: '',
|
||||
jdInventory: '',
|
||||
productType: '',
|
||||
selectedFileType: '', // 新增
|
||||
id: undefined, // 确保新增时没有id
|
||||
axialType: '',
|
||||
boxType: '',
|
||||
selectedFileType: '',
|
||||
drawPath: '',
|
||||
id: undefined,
|
||||
};
|
||||
this.chainDialogVisible = true;
|
||||
},
|
||||
editChain(index, row) {
|
||||
this.isEditChain = true;
|
||||
this.editChainIndex = index;
|
||||
this.chainForm = {...row};
|
||||
this.chainForm = {
|
||||
pid: this.productionObj && this.productionObj.id,
|
||||
productionCode: this.productionObj && this.productionObj.productionOrderNo,
|
||||
productType: row && (row.productType || row.type) || '',
|
||||
figureNumber: row && row.figureNumber || '',
|
||||
figureName: row && (row.figureName || row.productName) || '',
|
||||
figureNum: row && row.figureNum || '',
|
||||
jdInventory: row && row.jdInventory || '',
|
||||
axialType: row && row.axialType || '',
|
||||
boxType: row && row.boxType || '',
|
||||
selectedFileType: row && (row.fileType || row.selectedFileType) || '',
|
||||
drawPath: row && row.drawPath || '',
|
||||
id: row && row.id
|
||||
};
|
||||
// 同步文件类型选择:优先使用后端返回的 fileType;若无,则根据当前路径匹配配置项
|
||||
if (!this.chainForm.selectedFileType) {
|
||||
this.setSelectedFileTypeFromPath(this.chainForm.drawPath);
|
||||
}
|
||||
this.chainDialogVisible = true;
|
||||
},
|
||||
removeChain(index) {
|
||||
@ -1960,59 +1997,166 @@ export default {
|
||||
// 删除失败时不显示错误信息,因为用户可能取消了操作
|
||||
});
|
||||
},
|
||||
handleChainSelectionChange(selection) {
|
||||
this.selectedChainIds = selection.map(item => item.id).filter(Boolean);
|
||||
},
|
||||
beforeBatchDwgUpload(file) {
|
||||
const name = file.name || '';
|
||||
const suffix = name.substring(name.lastIndexOf('.') + 1).toLowerCase();
|
||||
if (!this.selectedChainIds.length) {
|
||||
this.$message.warning('请先勾选需要上传的行');
|
||||
return false;
|
||||
}
|
||||
if (suffix !== 'dwg') {
|
||||
this.$message.error('仅允许上传 DWG 文件');
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
async batchUploadDwg({ file }) {
|
||||
try {
|
||||
const formData = new FormData();
|
||||
// Spring 接收 List<Long> ids,使用重复键形式提交
|
||||
this.selectedChainIds.forEach(id => formData.append('ids', id));
|
||||
formData.append('file', file);
|
||||
|
||||
const res = await axios.post(this.dwgUploadUrl, formData, {
|
||||
headers: {
|
||||
...this.uploadHeaders
|
||||
}
|
||||
});
|
||||
|
||||
const payload = res && res.data ? res.data : {};
|
||||
const ok = payload.code === 200 || payload.success === true;
|
||||
const msg = payload.msg || '上传完成';
|
||||
if (ok) {
|
||||
this.$message.success(msg);
|
||||
this.loadChainTableData();
|
||||
} else {
|
||||
this.$message.error(msg || '上传失败');
|
||||
}
|
||||
} catch (e) {
|
||||
const status = e && e.response && e.response.status;
|
||||
const serverMsg = (e && e.response && (e.response.data && (e.response.data.msg || e.response.data.message || e.response.data))) || '';
|
||||
if (status === 413) {
|
||||
this.$message.error('文件过大,已超过服务器限制');
|
||||
} else if (status === 401) {
|
||||
this.$message.error('未认证或登录已过期');
|
||||
} else if (status === 403) {
|
||||
this.$message.error('权限不足,无法上传');
|
||||
} else if (status === 404) {
|
||||
this.$message.error('上传接口不存在或路径错误');
|
||||
} else if (status === 415) {
|
||||
this.$message.error('服务器不支持当前文件类型');
|
||||
} else if (status >= 500) {
|
||||
this.$message.error('服务器内部错误:' + (serverMsg || '请联系管理员'));
|
||||
} else {
|
||||
this.$message.error('上传失败:' + (serverMsg || e.message || '请重试'));
|
||||
}
|
||||
}
|
||||
},
|
||||
beforeElectricalBomUpload(file) {
|
||||
const name = file.name || '';
|
||||
const suffix = name.substring(name.lastIndexOf('.') + 1).toLowerCase();
|
||||
if (!(suffix === 'xls' || suffix === 'xlsx')) {
|
||||
this.$message.error('仅支持Excel文件(xls/xlsx)');
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
async uploadElectricalBom({ file }) {
|
||||
try {
|
||||
const formData = new FormData();
|
||||
formData.append('file', file);
|
||||
const res = await importElectricalBom(formData);
|
||||
if (res && (res.code === 200 || res.success)) {
|
||||
let payload = res.data || res.msg || {};
|
||||
if (typeof payload === 'string') {
|
||||
try { payload = JSON.parse(payload); } catch (_) { payload = {}; }
|
||||
}
|
||||
const total = payload.totalRows ?? payload.total ?? 0;
|
||||
const parsed = payload.parsedRows ?? 0;
|
||||
const saved = payload.savedRows ?? payload.saved ?? 0;
|
||||
const message = payload.message || '导入完成';
|
||||
this.$message.success(`${message}(总:${total} 解析:${parsed} 保存:${saved})`);
|
||||
this.fetchBomLog();
|
||||
} else {
|
||||
this.$message.error(res?.msg || '导入失败');
|
||||
}
|
||||
} catch (e) {
|
||||
this.$message.error('导入失败: ' + (e.message || e));
|
||||
}
|
||||
},
|
||||
async saveChainForm() {
|
||||
// 验证必填字段
|
||||
if (!this.chainForm.figureName) {
|
||||
this.$message.warning('产品名称不能为空');
|
||||
if (!this.chainForm.productionCode) {
|
||||
this.$message.warning('生产令号不能为空');
|
||||
return;
|
||||
}
|
||||
if (!this.chainForm.figureNumber) {
|
||||
this.$message.warning('产品型号不能为空');
|
||||
this.$message.warning('图号不能为空');
|
||||
return;
|
||||
}
|
||||
if (!this.chainForm.figureName) {
|
||||
this.$message.warning('名称不能为空');
|
||||
return;
|
||||
}
|
||||
if (!this.chainForm.figureNum || Number(this.chainForm.figureNum) < 1) {
|
||||
this.$message.warning('数量不能为空且必须大于0');
|
||||
return;
|
||||
}
|
||||
if (!this.chainForm.productType) {
|
||||
this.$message.warning('产品类型不能为空');
|
||||
return;
|
||||
}
|
||||
// 组装数据,字段名与实体类完全一致
|
||||
const payload = {
|
||||
figureName: this.chainForm.figureName,
|
||||
productionCode: this.chainForm.productionCode,
|
||||
figureNumber: this.chainForm.figureNumber,
|
||||
figureNum: this.chainForm.figureNum,
|
||||
jdInventory: this.chainForm.jdInventory,
|
||||
drawPath: this.chainForm.drawPath || '',
|
||||
productType: this.chainForm.productType,
|
||||
id: this.chainForm.id,
|
||||
pid: this.productionObj.id,
|
||||
productionCode: this.chainForm.productionCode,
|
||||
productType: this.chainForm.productType,
|
||||
figureNumber: this.chainForm.figureNumber,
|
||||
figureName: this.chainForm.figureName,
|
||||
figureNum: this.chainForm.figureNum,
|
||||
jdInventory: this.chainForm.jdInventory || undefined,
|
||||
axialType: this.chainForm.axialType || undefined,
|
||||
boxType: this.chainForm.boxType || undefined,
|
||||
selectedFileType: this.chainForm.selectedFileType || '',
|
||||
drawPath: this.chainForm.drawPath || '',
|
||||
};
|
||||
|
||||
// 只有在编辑模式下才添加id字段
|
||||
if (this.isEditChain && this.chainForm.id) {
|
||||
payload.id = this.chainForm.id;
|
||||
}
|
||||
console.log('saveChainForm........', payload);
|
||||
try {
|
||||
await this.$api.addProduct(payload);
|
||||
this.$message.success('添加成功');
|
||||
if (this.isEditChain) {
|
||||
await this.$api.updateProduct(payload);
|
||||
this.$message.success('修改成功');
|
||||
} else {
|
||||
await this.$api.addProduct(payload);
|
||||
this.$message.success('添加成功');
|
||||
}
|
||||
this.chainDialogVisible = false;
|
||||
// 添加成功后刷新表格数据
|
||||
this.loadChainTableData();
|
||||
} catch (e) {
|
||||
this.$message.error('添加失败');
|
||||
const msg = this.isEditChain ? '修改失败' : '添加失败';
|
||||
this.$message.error(msg);
|
||||
}
|
||||
},
|
||||
searchRigidChain(query) {
|
||||
if (!query) {
|
||||
this.rigidChainOptions = [];
|
||||
this.typeOptions = [];
|
||||
this.journeyOptions = [];
|
||||
return;
|
||||
}
|
||||
this.chainLoading = true;
|
||||
listRigidChain({typeName: query}).then(res => {
|
||||
this.rigidChainOptions = (res.rows || []).slice(0, 10); // 最多10条
|
||||
this.rigidChainOptions = (res.rows || []).slice(0, 10);
|
||||
const types = new Set();
|
||||
const journeys = new Set();
|
||||
this.rigidChainOptions.forEach(item => {
|
||||
if (item.type) types.add(item.type);
|
||||
if (item.typeName) types.add(item.typeName);
|
||||
if (item.journey) journeys.add(item.journey);
|
||||
});
|
||||
this.typeOptions = Array.from(types);
|
||||
this.journeyOptions = Array.from(journeys);
|
||||
this.chainLoading = false;
|
||||
}).catch(() => {
|
||||
this.chainLoading = false;
|
||||
@ -2020,30 +2164,23 @@ export default {
|
||||
},
|
||||
onRigidChainSelect(id) {
|
||||
if (!id) {
|
||||
// 用户清空了选择,重置相关字段,允许手动填写
|
||||
this.chainForm.figureName = '';
|
||||
this.chainForm.figureNumber = '';
|
||||
this.chainForm.jdInventory = '';
|
||||
this.chainForm.drawPath = '';
|
||||
this.chainForm.productType = '';
|
||||
this.chainForm.productName = '';
|
||||
this.chainForm.figureNumber = '';
|
||||
this.chainForm.figureName = '';
|
||||
this.chainForm.drawPath = '';
|
||||
return;
|
||||
}
|
||||
|
||||
const selected = this.rigidChainOptions.find(item => item.id === id);
|
||||
|
||||
if (selected) {
|
||||
this.chainForm.figureName = selected.productName || '';
|
||||
this.chainForm.figureNumber = selected.typeName || '';
|
||||
this.chainForm.jdInventory = selected.journey || '';
|
||||
this.chainForm.drawPath = selected.drawPath || '';
|
||||
this.chainForm.productType = selected.type || '';
|
||||
this.chainForm.productName = selected.productName || '';
|
||||
// 如果数量未填写,自动赋值为1
|
||||
this.chainForm.figureNumber = selected.typeName || selected.figureNumber || '';
|
||||
this.chainForm.figureName = selected.productName || '';
|
||||
this.chainForm.drawPath = selected.drawPath || '';
|
||||
if (!this.chainForm.figureNum) {
|
||||
this.chainForm.figureNum = 1;
|
||||
}
|
||||
// 在新增模式下,清除id字段,避免误传
|
||||
if (!this.isEditChain) {
|
||||
this.chainForm.id = undefined;
|
||||
}
|
||||
@ -2116,10 +2253,31 @@ export default {
|
||||
this.chainForm.drawPath = selected.fileUrl;
|
||||
}
|
||||
},
|
||||
getFullImageUrl(path) {
|
||||
if (!path) return '';
|
||||
|
||||
return path;
|
||||
setSelectedFileTypeFromPath(path) {
|
||||
if (!path) {
|
||||
this.chainForm.selectedFileType = '';
|
||||
return;
|
||||
}
|
||||
const match = this.configIniOptions && this.configIniOptions.find(opt => opt.fileUrl === path);
|
||||
if (match) {
|
||||
this.chainForm.selectedFileType = match.fileType;
|
||||
} else if (!this.configIniOptions || this.configIniOptions.length === 0) {
|
||||
// 配置尚未加载,拉取后再匹配
|
||||
this.getConfigIniOptions();
|
||||
this.$nextTick(() => {
|
||||
const m = this.configIniOptions.find(opt => opt.fileUrl === path);
|
||||
if (m) this.chainForm.selectedFileType = m.fileType;
|
||||
});
|
||||
}
|
||||
},
|
||||
getFullImageUrl(row) {
|
||||
if (!row) return '';
|
||||
let url = row.drawingPathUrl || row.drawingPath || '';
|
||||
if (!url) return '';
|
||||
if (typeof url === 'string') {
|
||||
url = url.replace(/[`'"]/g, '').trim();
|
||||
}
|
||||
return url;
|
||||
},
|
||||
beforeDwgUpload(file, row) {
|
||||
// 验证文件格式
|
||||
@ -2242,7 +2400,7 @@ export default {
|
||||
link.click();
|
||||
window.URL.revokeObjectURL(url);
|
||||
|
||||
this.$message.success('生产工艺计划表下载成功');
|
||||
this.$message.success('生产工艺计划表下载成功');
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('下载失败:', error);
|
||||
@ -2250,6 +2408,29 @@ export default {
|
||||
this.$message.error('下载失败: ' + (error.message || '项目未出图'));
|
||||
});
|
||||
},
|
||||
downloadRoute3() {
|
||||
this.$message.success('开始导出工艺计划表');
|
||||
console.log('开始下载,生产令号ID:', this.productionObj.id);
|
||||
exportRoute3(this.productionObj.id)
|
||||
.then(response => {
|
||||
if (response.size === 0) {
|
||||
this.$message.error('文件为空或下载失败');
|
||||
return;
|
||||
}
|
||||
const blob = new Blob([response], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
const link = document.createElement('a');
|
||||
link.href = url;
|
||||
link.download = `${this.productionObj.productionOrderNo}_工艺计划表.xlsx`;
|
||||
link.click();
|
||||
window.URL.revokeObjectURL(url);
|
||||
this.$message.success('工艺计划表下载成功');
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('下载失败:', error);
|
||||
this.$message.error('下载失败: ' + (error.message || '项目未出图'));
|
||||
});
|
||||
},
|
||||
},
|
||||
beforeMount() {
|
||||
clearInterval(this.time);
|
||||
|
||||
@ -154,10 +154,27 @@ export default {
|
||||
'color': '#5692f0'
|
||||
})
|
||||
}
|
||||
// 字段兼容映射,确保表格列有值
|
||||
newObj.materialCode = newObj.materialCode || newObj.material_code || newObj.FNumber || '';
|
||||
newObj.materialName = newObj.materialName || newObj.material_name || newObj.FName || '';
|
||||
// 兼容日期字段命名
|
||||
newObj.start_date = newObj.start_date || newObj.startDate || newObj.FStartDate || newObj.start_time || newObj.start;
|
||||
newObj.end_date = newObj.end_date || newObj.endDate || newObj.FEndDate || newObj.end_time || newObj.end;
|
||||
if (newObj.parent) {
|
||||
var t = newObj.text || '';
|
||||
var parts = t.trim().split(/\s+/);
|
||||
if (parts.length >= 2) {
|
||||
var code = parts[parts.length - 1];
|
||||
var name = parts.slice(1, parts.length - 1).join(' ');
|
||||
if (!newObj.materialCode) newObj.materialCode = code;
|
||||
if (!newObj.materialName) newObj.materialName = name;
|
||||
}
|
||||
}
|
||||
return newObj
|
||||
})
|
||||
// this.initData(); // 调用初始化甘特图数据的方法
|
||||
// 数据解析
|
||||
console.log('Gantt tasks (initData) sample:', (this.tasks.data || []).slice(0, 3));
|
||||
this.tasks.data = this.groupByMaterialCode(this.tasks.data)
|
||||
gantt.parse(this.tasks)
|
||||
this.loading = false;
|
||||
} else {
|
||||
@ -238,6 +255,22 @@ export default {
|
||||
'color': '#5692f0'
|
||||
})
|
||||
}
|
||||
// 字段兼容映射,确保表格列有值
|
||||
newObj.materialCode = newObj.materialCode || newObj.material_code || newObj.FNumber || '';
|
||||
newObj.materialName = newObj.materialName || newObj.material_name || newObj.FName || '';
|
||||
// 兼容日期字段命名
|
||||
newObj.start_date = newObj.start_date || newObj.startDate || newObj.FStartDate || newObj.start_time || newObj.start;
|
||||
newObj.end_date = newObj.end_date || newObj.endDate || newObj.FEndDate || newObj.end_time || newObj.end;
|
||||
if (newObj.parent) {
|
||||
var t = newObj.text || '';
|
||||
var parts = t.trim().split(/\s+/);
|
||||
if (parts.length >= 2) {
|
||||
var code = parts[parts.length - 1];
|
||||
var name = parts.slice(1, parts.length - 1).join(' ');
|
||||
if (!newObj.materialCode) newObj.materialCode = code;
|
||||
if (!newObj.materialName) newObj.materialName = name;
|
||||
}
|
||||
}
|
||||
return newObj
|
||||
})
|
||||
|
||||
@ -245,6 +278,8 @@ export default {
|
||||
//this.initData(); // 调用初始化甘特图数据的方法
|
||||
gantt.clearAll()
|
||||
// 数据解析
|
||||
console.log('Gantt tasks (selectChange) sample:', (this.tasks.data || []).slice(0, 3));
|
||||
this.tasks.data = this.groupByMaterialCode(this.tasks.data)
|
||||
gantt.parse(this.tasks)
|
||||
this.loading = false;
|
||||
} else {
|
||||
@ -255,6 +290,33 @@ export default {
|
||||
this.loading = false;
|
||||
})
|
||||
},
|
||||
groupByMaterialCode(tasks) {
|
||||
const childrenByParent = {};
|
||||
tasks.forEach(t => {
|
||||
if (t && t.parent != null) {
|
||||
const p = t.parent;
|
||||
if (!childrenByParent[p]) childrenByParent[p] = [];
|
||||
childrenByParent[p].push(t);
|
||||
}
|
||||
});
|
||||
const groups = [];
|
||||
Object.keys(childrenByParent).forEach(pid => {
|
||||
const list = childrenByParent[pid];
|
||||
const map = {};
|
||||
list.forEach(ch => {
|
||||
const code = ch.materialCode || '';
|
||||
if (code) {
|
||||
if (!map[code]) {
|
||||
const gid = `g_${pid}_${code}`;
|
||||
map[code] = { id: gid, text: code, parent: Number(pid) || pid, open: true, materialCode: code, materialName: '' };
|
||||
groups.push(map[code]);
|
||||
}
|
||||
ch.parent = map[code].id;
|
||||
}
|
||||
});
|
||||
});
|
||||
return tasks.concat(groups);
|
||||
},
|
||||
|
||||
search() {
|
||||
// 构建查询参数
|
||||
@ -303,15 +365,63 @@ export default {
|
||||
width: 180,
|
||||
align: "left",
|
||||
editor: {type: 'text', map_to: 'text'},
|
||||
onrender: function (task, node) {
|
||||
node.setAttribute("class", "gantt_cell gantt_last_cell gantt_cell_tree " + task.status);
|
||||
template: function (task) {
|
||||
return task.text || task.productionOrderNo || '';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "materialCode",
|
||||
label: "物料编码",
|
||||
width: 120,
|
||||
resize: true,
|
||||
align: "left",
|
||||
template: function (task) {
|
||||
if (!task.parent) return '';
|
||||
return task.materialCode || task.material_code || task.FNumber || '';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "materialName",
|
||||
label: "物料名称",
|
||||
width: 150,
|
||||
resize: true,
|
||||
align: "left",
|
||||
template: function (task) {
|
||||
if (!task.parent) return '';
|
||||
return task.materialName || task.material_name || task.FName || '';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "start_date",
|
||||
label: "开始时间",
|
||||
width: 120,
|
||||
resize: true,
|
||||
align: "left",
|
||||
template: function (task) {
|
||||
var d = task.start_date || task.startDate;
|
||||
if (!d) return '';
|
||||
if (typeof d === 'string') {
|
||||
return d.split('T')[0] || d;
|
||||
}
|
||||
return gantt.date.date_to_str("%Y-%m-%d")(d);
|
||||
}
|
||||
},
|
||||
{name: "materialCode", label: "物料编码", width: 120, resize: true, align: "left"},
|
||||
{name: "materialName", label: "物料名称", width: 150, resize: true, align: "left"},
|
||||
{name: "start_date", label: "开始时间", width: 120, resize: true, align: "left"},
|
||||
{name: "duration", label: "天数", width: 80, resize: true, align: "center"},
|
||||
{name: 'end_date', label: '完成时间', width: 120, resize: true, align: "left"},
|
||||
{
|
||||
name: 'end_date',
|
||||
label: '完成时间',
|
||||
width: 120,
|
||||
resize: true,
|
||||
align: "left",
|
||||
template: function (task) {
|
||||
var d = task.end_date || task.endDate;
|
||||
if (!d) return '';
|
||||
if (typeof d === 'string') {
|
||||
return d.split('T')[0] || d;
|
||||
}
|
||||
return gantt.date.date_to_str("%Y-%m-%d")(d);
|
||||
}
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-upload" size="mini" @click="handleImport"
|
||||
v-hasPermi="['system:details:importRoute']">导入工艺
|
||||
v-hasPermi="['system:route:importRoute']">导入工艺
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@ -54,7 +54,7 @@
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="info" plain icon="el-icon-share" size="mini" @click="pushRouteBom"
|
||||
v-hasPermi="['system:details:pushRouteBom']">推送工艺
|
||||
v-hasPermi="['system:route:pushRouteBom']">推送工艺
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="3">
|
||||
@ -67,17 +67,17 @@
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="el-icon-edit" size="mini" :disabled="multiple" @click="updateProcessPlan"
|
||||
v-hasPermi="['system:details:updateProcessPlan']">更新计划时间
|
||||
v-hasPermi="['system:route:updateProcessPlan']">更新计划时间
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="el-icon-setting" size="mini" @click="updateProcesTime"
|
||||
v-hasPermi="['system:details:updateProcesTime']">更新生产订单
|
||||
v-hasPermi="['system:route:updateProcesTime']">更新生产订单
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="el-icon-document" size="mini" @click="generatePDFs1"
|
||||
v-hasPermi="['system:details:generatePDFs1']">生成PDF
|
||||
v-hasPermi="['system:route:generatePDFs']">生成PDF
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
@ -116,8 +116,8 @@
|
||||
scope.row.routeDescription }}</router-link>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="物料编码" width="120" align="center" prop="materialCode"/>
|
||||
<el-table-column label="名称" width="120" align="center" prop="materialName"/>
|
||||
<el-table-column label="物料编码" width="120" align="center" prop="materialCode" fixed="left"/>
|
||||
<el-table-column label="名称" width="120" align="center" prop="materialName" fixed="left"/>
|
||||
|
||||
<el-table-column label="材质" width="80" align="center" prop="material"/>
|
||||
<el-table-column label="单重" width="60" align="center" prop="discWeight"/>
|
||||
@ -134,7 +134,7 @@
|
||||
<el-table-column label="本批数" width="60" align="center" prop="batchQuantity"/>
|
||||
|
||||
<!--
|
||||
<el-table-column label="材料BOM物料编码" width="220"align="center" prop="rawMaterialCode" />
|
||||
<el-table-column label="材料BOM物料编码" width="220"align="center" prop="ra wMaterialCode" />
|
||||
<el-table-column label="材料BOM物料名称"width="220" align="center" prop="rawMaterialName" />
|
||||
<el-table-column label="用量"width="60"align="center" prop="discUsage" />
|
||||
<el-table-column label="单位"width="60" align="center" prop="bomUnit" />-->
|
||||
@ -595,8 +595,8 @@
|
||||
<el-table :data="processRoutes" stripe border v-loading="processLoading">
|
||||
<el-table-column label="工艺编号" prop="fnumber" width="120" align="center"/>
|
||||
<el-table-column label="项目令号" prop="project_code" width="180" align="center"/>
|
||||
<el-table-column label="物料编码" prop="materialCode" width="140" align="center"/>
|
||||
<el-table-column label="物料名称" prop="materialName" min-width="140" align="center"/>
|
||||
<el-table-column label="物料编码" prop="materialCode" fixed="left" width="140" align="center"/>
|
||||
<el-table-column label="物料名称" prop="materialName" fixed="left" min-width="140" align="center"/>
|
||||
<el-table-column label="操作" width="120" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
|
||||
@ -138,8 +138,8 @@
|
||||
<el-form-item label="最高安全库存" prop="maxSafetyStock">
|
||||
<el-input v-model="form.maxSafetyStock" placeholder="请输入最高安全库存" />
|
||||
</el-form-item>
|
||||
<el-form-item label="即时库存" prop="currentStock">
|
||||
<el-input v-model="form.currentStock" placeholder="请输入最高安全库存" />
|
||||
<el-form-item label="类型" prop="type">
|
||||
<el-input v-model="form.type" placeholder="请输入类型" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
|
||||
585
src/views/system/spec100r/index.vue
Normal file
585
src/views/system/spec100r/index.vue
Normal file
@ -0,0 +1,585 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="行程变量" prop="travelLength">
|
||||
<el-input
|
||||
v-model="queryParams.travelLength"
|
||||
placeholder="请输入行程变量"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="箱体" prop="boxType">
|
||||
<el-select
|
||||
v-model="queryParams.boxType"
|
||||
placeholder="请选择箱体层数"
|
||||
clearable
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-option label="S(单层)" value="S" />
|
||||
<el-option label="D(双层)" value="D" />
|
||||
<el-option label="T(三层)" value="T" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['system:spec100r:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['system:spec100r:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['system:spec100r:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['system:spec100r:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" border="true" :data="spec100rList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="行程" align="center" prop="travelLength" />
|
||||
<el-table-column label="类型" align="center" prop="itemType" />
|
||||
<el-table-column label="箱体" align="center" prop="boxType" />
|
||||
<el-table-column label="v1" align="center" prop="v1" />
|
||||
<el-table-column label="v2" align="center" prop="v2" />
|
||||
<el-table-column label="v3" align="center" prop="v3" />
|
||||
<el-table-column label="v4" align="center" prop="v4" />
|
||||
<el-table-column label="v5" align="center" prop="v5" />
|
||||
<el-table-column label="v6" align="center" prop="v6" />
|
||||
<el-table-column label="v7" align="center" prop="v7" />
|
||||
<el-table-column label="v8" align="center" prop="v8" />
|
||||
<el-table-column label="g1" align="center" prop="g1" />
|
||||
<el-table-column label="v9" align="center" prop="v9" />
|
||||
<el-table-column label="g2" align="center" prop="g2" />
|
||||
<el-table-column label="v10" align="center" prop="v10" />
|
||||
<el-table-column label="g5" align="center" prop="g5" />
|
||||
<el-table-column label="v11" align="center" prop="v11" />
|
||||
<el-table-column label="v12" align="center" prop="v12" />
|
||||
<el-table-column label="g6" align="center" prop="g6" />
|
||||
<el-table-column label="v13" align="center" prop="v13" />
|
||||
<el-table-column label="v14" align="center" prop="v14" />
|
||||
<el-table-column label="g7" align="center" prop="g7" />
|
||||
<el-table-column label="v15" align="center" prop="v15" />
|
||||
<el-table-column label="v41" align="center" prop="v41" />
|
||||
<el-table-column label="v42" align="center" prop="v42" />
|
||||
<el-table-column label="v43" align="center" prop="v43" />
|
||||
<el-table-column label="v44" align="center" prop="v44" />
|
||||
<el-table-column label="v45" align="center" prop="v45" />
|
||||
<el-table-column label="v46" align="center" prop="v46" />
|
||||
<el-table-column label="v47" align="center" prop="v47" />
|
||||
<el-table-column label="v48" align="center" prop="v48" />
|
||||
<el-table-column label="v49" align="center" prop="v49" />
|
||||
<el-table-column label="v50" align="center" prop="v50" />
|
||||
<el-table-column label="v51" align="center" prop="v51" />
|
||||
<el-table-column label="v52" align="center" prop="v52" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['system:spec100r:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['system:spec100r:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改100R设备规格参数对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="行程变量" prop="travelLength">
|
||||
<el-input v-model="form.travelLength" placeholder="请输入行程变量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v1" prop="v1">
|
||||
<el-input v-model="form.v1" placeholder="请输入行程" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v2" prop="v2">
|
||||
<el-input v-model="form.v2" placeholder="请输入设备总长" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v3" prop="v3">
|
||||
<el-input v-model="form.v3" placeholder="请输入地脚位置1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v4" prop="v4">
|
||||
<el-input v-model="form.v4" placeholder="请输入地脚位置1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v5" prop="v5">
|
||||
<el-input v-model="form.v5" placeholder="请输入箱体装配长度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v6" prop="v6">
|
||||
<el-input v-model="form.v6" placeholder="请输入箱体地脚位置1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v7" prop="v7">
|
||||
<el-input v-model="form.v7" placeholder="请输入箱体地脚位置1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v8" prop="v8">
|
||||
<el-input v-model="form.v8" placeholder="请输入铝箱长度1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="g1" prop="g1">
|
||||
<el-input v-model="form.g1" placeholder="请输入铝箱1重量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v9" prop="v9">
|
||||
<el-input v-model="form.v9" placeholder="请输入铝箱长度2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="g2" prop="g2">
|
||||
<el-input v-model="form.g2" placeholder="请输入铝箱2重量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v10" prop="v10">
|
||||
<el-input v-model="form.v10" placeholder="请输入导向条长度1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="g5" prop="g5">
|
||||
<el-input v-model="form.g5" placeholder="请输入导向条1单重" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v11" prop="v11">
|
||||
<el-input v-model="form.v11" placeholder="请输入导向条长度1数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v12" prop="v12">
|
||||
<el-input v-model="form.v12" placeholder="请输入导向条长度2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="g6" prop="g6">
|
||||
<el-input v-model="form.g6" placeholder="请输入导向条2单重" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v13" prop="v13">
|
||||
<el-input v-model="form.v13" placeholder="请输入导向条2数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v14" prop="v14">
|
||||
<el-input v-model="form.v14" placeholder="请输入导向条长度3" />
|
||||
</el-form-item>
|
||||
<el-form-item label="g7" prop="g7">
|
||||
<el-input v-model="form.g7" placeholder="请输入导向条3单重" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v15" prop="v15">
|
||||
<el-input v-model="form.v15" placeholder="请输入导向条3数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v41" prop="v41">
|
||||
<el-input v-model="form.v41" placeholder="请输入外链板" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v42" prop="v42">
|
||||
<el-input v-model="form.v42" placeholder="请输入内链板" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v43" prop="v43">
|
||||
<el-input v-model="form.v43" placeholder="请输入连接板" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v44" prop="v44">
|
||||
<el-input v-model="form.v44" placeholder="请输入滚轮轴" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v45" prop="v45">
|
||||
<el-input v-model="form.v45" placeholder="请输入隔套" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v46" prop="v46">
|
||||
<el-input v-model="form.v46" placeholder="请输入隔垫" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v47" prop="v47">
|
||||
<el-input v-model="form.v47" placeholder="请输入滚轮" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v48" prop="v48">
|
||||
<el-input v-model="form.v48" placeholder="请输入垫圈" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v49" prop="v49">
|
||||
<el-input v-model="form.v49" placeholder="请输入挡圈" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v50" prop="v50">
|
||||
<el-input v-model="form.v50" placeholder="请输入滚轮隔套" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v51" prop="v51">
|
||||
<el-input v-model="form.v51" placeholder="请输入内链板组件" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v52" prop="v52">
|
||||
<el-input v-model="form.v52" placeholder="请输入内链板组件" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listSpec100r, getSpec100r, delSpec100r, addSpec100r, updateSpec100r } from "@/api/system/spec100r";
|
||||
|
||||
export default {
|
||||
name: "Spec100r",
|
||||
data() {
|
||||
return {
|
||||
// 按钮loading
|
||||
buttonLoading: false,
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 100R设备规格参数表格数据
|
||||
spec100rList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
travelLength: undefined,
|
||||
itemType: undefined,
|
||||
axialType: undefined,
|
||||
boxType: undefined,
|
||||
V1: undefined,
|
||||
V2: undefined,
|
||||
V3: undefined,
|
||||
V4: undefined,
|
||||
V5: undefined,
|
||||
V6: undefined,
|
||||
V7: undefined,
|
||||
V8: undefined,
|
||||
G1: undefined,
|
||||
V9: undefined,
|
||||
G2: undefined,
|
||||
V10: undefined,
|
||||
G5: undefined,
|
||||
V11: undefined,
|
||||
V12: undefined,
|
||||
G6: undefined,
|
||||
V13: undefined,
|
||||
V14: undefined,
|
||||
G7: undefined,
|
||||
V15: undefined,
|
||||
V41: undefined,
|
||||
V42: undefined,
|
||||
V43: undefined,
|
||||
V44: undefined,
|
||||
V45: undefined,
|
||||
V46: undefined,
|
||||
V47: undefined,
|
||||
V48: undefined,
|
||||
V49: undefined,
|
||||
V50: undefined,
|
||||
V51: undefined,
|
||||
V52: undefined,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
id: [
|
||||
{ required: true, message: "主键ID不能为空", trigger: "blur" }
|
||||
],
|
||||
travelLength: [
|
||||
{ required: true, message: "行程变量不能为空", trigger: "blur" }
|
||||
],
|
||||
itemType: [
|
||||
{ required: true, message: "类型不能为空", trigger: "change" }
|
||||
],
|
||||
axialType: [
|
||||
{ required: true, message: "轴向不能为空", trigger: "change" }
|
||||
],
|
||||
boxType: [
|
||||
{ required: true, message: "箱体不能为空", trigger: "change" }
|
||||
],
|
||||
V1: [
|
||||
{ required: true, message: "行程不能为空", trigger: "blur" }
|
||||
],
|
||||
V2: [
|
||||
{ required: true, message: "设备总长不能为空", trigger: "blur" }
|
||||
],
|
||||
V3: [
|
||||
{ required: true, message: "地脚位置1不能为空", trigger: "blur" }
|
||||
],
|
||||
V4: [
|
||||
{ required: true, message: "地脚位置1不能为空", trigger: "blur" }
|
||||
],
|
||||
V5: [
|
||||
{ required: true, message: "箱体装配长度不能为空", trigger: "blur" }
|
||||
],
|
||||
V6: [
|
||||
{ required: true, message: "箱体地脚位置1不能为空", trigger: "blur" }
|
||||
],
|
||||
V7: [
|
||||
{ required: true, message: "箱体地脚位置1不能为空", trigger: "blur" }
|
||||
],
|
||||
V8: [
|
||||
{ required: true, message: "铝箱长度1不能为空", trigger: "blur" }
|
||||
],
|
||||
G1: [
|
||||
{ required: true, message: "铝箱1重量不能为空", trigger: "blur" }
|
||||
],
|
||||
V9: [
|
||||
{ required: true, message: "铝箱长度2不能为空", trigger: "blur" }
|
||||
],
|
||||
G2: [
|
||||
{ required: true, message: "铝箱2重量不能为空", trigger: "blur" }
|
||||
],
|
||||
V10: [
|
||||
{ required: true, message: "导向条长度1不能为空", trigger: "blur" }
|
||||
],
|
||||
G5: [
|
||||
{ required: true, message: "导向条1单重不能为空", trigger: "blur" }
|
||||
],
|
||||
V11: [
|
||||
{ required: true, message: "导向条长度1数量不能为空", trigger: "blur" }
|
||||
],
|
||||
V12: [
|
||||
{ required: true, message: "导向条长度2不能为空", trigger: "blur" }
|
||||
],
|
||||
G6: [
|
||||
{ required: true, message: "导向条2单重不能为空", trigger: "blur" }
|
||||
],
|
||||
V13: [
|
||||
{ required: true, message: "导向条2数量不能为空", trigger: "blur" }
|
||||
],
|
||||
V14: [
|
||||
{ required: true, message: "导向条长度3不能为空", trigger: "blur" }
|
||||
],
|
||||
G7: [
|
||||
{ required: true, message: "导向条3单重不能为空", trigger: "blur" }
|
||||
],
|
||||
V15: [
|
||||
{ required: true, message: "导向条3数量不能为空", trigger: "blur" }
|
||||
],
|
||||
V41: [
|
||||
{ required: true, message: "外链板不能为空", trigger: "blur" }
|
||||
],
|
||||
V42: [
|
||||
{ required: true, message: "内链板不能为空", trigger: "blur" }
|
||||
],
|
||||
V43: [
|
||||
{ required: true, message: "连接板不能为空", trigger: "blur" }
|
||||
],
|
||||
V44: [
|
||||
{ required: true, message: "滚轮轴不能为空", trigger: "blur" }
|
||||
],
|
||||
V45: [
|
||||
{ required: true, message: "隔套不能为空", trigger: "blur" }
|
||||
],
|
||||
V46: [
|
||||
{ required: true, message: "隔垫不能为空", trigger: "blur" }
|
||||
],
|
||||
V47: [
|
||||
{ required: true, message: "滚轮不能为空", trigger: "blur" }
|
||||
],
|
||||
V48: [
|
||||
{ required: true, message: "垫圈不能为空", trigger: "blur" }
|
||||
],
|
||||
V49: [
|
||||
{ required: true, message: "挡圈不能为空", trigger: "blur" }
|
||||
],
|
||||
V50: [
|
||||
{ required: true, message: "滚轮隔套不能为空", trigger: "blur" }
|
||||
],
|
||||
V51: [
|
||||
{ required: true, message: "内链板组件不能为空", trigger: "blur" }
|
||||
],
|
||||
V52: [
|
||||
{ required: true, message: "内链板组件不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询100R设备规格参数列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listSpec100r(this.queryParams).then(response => {
|
||||
this.spec100rList = response.rows || [];
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: undefined,
|
||||
travelLength: undefined,
|
||||
itemType: undefined,
|
||||
axialType: undefined,
|
||||
boxType: undefined,
|
||||
V1: undefined,
|
||||
V2: undefined,
|
||||
V3: undefined,
|
||||
V4: undefined,
|
||||
V5: undefined,
|
||||
V6: undefined,
|
||||
V7: undefined,
|
||||
V8: undefined,
|
||||
G1: undefined,
|
||||
V9: undefined,
|
||||
G2: undefined,
|
||||
V10: undefined,
|
||||
G5: undefined,
|
||||
V11: undefined,
|
||||
V12: undefined,
|
||||
G6: undefined,
|
||||
V13: undefined,
|
||||
V14: undefined,
|
||||
G7: undefined,
|
||||
V15: undefined,
|
||||
V41: undefined,
|
||||
V42: undefined,
|
||||
V43: undefined,
|
||||
V44: undefined,
|
||||
V45: undefined,
|
||||
V46: undefined,
|
||||
V47: undefined,
|
||||
V48: undefined,
|
||||
V49: undefined,
|
||||
V50: undefined,
|
||||
V51: undefined,
|
||||
V52: undefined,
|
||||
createTime: undefined,
|
||||
updateTime: undefined,
|
||||
createBy: undefined,
|
||||
updateBy: undefined
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加100R设备规格参数";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.loading = true;
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getSpec100r(id).then(response => {
|
||||
this.loading = false;
|
||||
this.form = response.data || {};
|
||||
this.open = true;
|
||||
this.title = "修改100R设备规格参数";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
this.buttonLoading = true;
|
||||
if (this.form.id != null) {
|
||||
updateSpec100r(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}).finally(() => {
|
||||
this.buttonLoading = false;
|
||||
});
|
||||
} else {
|
||||
addSpec100r(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}).finally(() => {
|
||||
this.buttonLoading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除100R设备规格参数编号为"' + ids + '"的数据项?').then(() => {
|
||||
this.loading = true;
|
||||
return delSpec100r(ids);
|
||||
}).then(() => {
|
||||
this.loading = false;
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {
|
||||
}).finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('system/spec100r/export', {
|
||||
...this.queryParams
|
||||
}, `spec100r_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@ -9,6 +9,18 @@
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="箱体" prop="boxType">
|
||||
<el-select
|
||||
v-model="queryParams.boxType"
|
||||
placeholder="请选择箱体层数"
|
||||
clearable
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-option label="S(单层)" value="S" />
|
||||
<el-option label="D(双层)" value="D" />
|
||||
<el-option label="T(三层)" value="T" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
@ -61,12 +73,11 @@
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="spec35rList" @selection-change="handleSelectionChange">
|
||||
<el-table v-loading="loading" border :data="spec35rList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="主键ID" align="center" prop="id" v-if="true"/>
|
||||
<el-table-column label="行程变量" align="center" prop="travelLength" />
|
||||
|
||||
<el-table-column label="行程" align="center" prop="travelLength" />
|
||||
<el-table-column label="类型" align="center" prop="itemType" />
|
||||
<el-table-column label="轴向" align="center" prop="axialType" />
|
||||
<el-table-column label="箱体" align="center" prop="boxType" />
|
||||
<el-table-column label="V1" align="center" prop="V1" />
|
||||
<el-table-column label="V2" align="center" prop="V2" />
|
||||
@ -89,6 +100,8 @@
|
||||
<el-table-column label="V44" align="center" prop="V44" />
|
||||
<el-table-column label="V45" align="center" prop="V45" />
|
||||
<el-table-column label="V46" align="center" prop="V46" />
|
||||
<el-table-column label="V47" align="center" prop="V47" />
|
||||
<el-table-column label="V48" align="center" prop="V48" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
@ -186,6 +199,12 @@
|
||||
<el-form-item label="V46" prop="V46">
|
||||
<el-input v-model="form.V46" placeholder="请输入35E链板" />
|
||||
</el-form-item>
|
||||
<el-form-item label="V47" prop="V47">
|
||||
<el-input v-model="form.V47" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="V48" prop="V48">
|
||||
<el-input v-model="form.V48" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
@ -251,6 +270,8 @@ export default {
|
||||
V44: undefined,
|
||||
V45: undefined,
|
||||
V46: undefined,
|
||||
V47: undefined,
|
||||
V48: undefined,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
@ -265,75 +286,11 @@ export default {
|
||||
itemType: [
|
||||
{ required: true, message: "类型不能为空", trigger: "change" }
|
||||
],
|
||||
axialType: [
|
||||
{ required: true, message: "轴向不能为空", trigger: "change" }
|
||||
],
|
||||
|
||||
boxType: [
|
||||
{ required: true, message: "箱体不能为空", trigger: "change" }
|
||||
],
|
||||
V1: [
|
||||
{ required: true, message: "行程不能为空", trigger: "blur" }
|
||||
],
|
||||
V2: [
|
||||
{ required: true, message: "设备总长不能为空", trigger: "blur" }
|
||||
],
|
||||
V3: [
|
||||
{ required: true, message: "地脚位置1不能为空", trigger: "blur" }
|
||||
],
|
||||
V5: [
|
||||
{ required: true, message: "箱体装配长度不能为空", trigger: "blur" }
|
||||
],
|
||||
V6: [
|
||||
{ required: true, message: "箱体地脚位置1不能为空", trigger: "blur" }
|
||||
],
|
||||
V8: [
|
||||
{ required: true, message: "铝箱长度1不能为空", trigger: "blur" }
|
||||
],
|
||||
G1: [
|
||||
{ required: true, message: "铝箱1重量不能为空", trigger: "blur" }
|
||||
],
|
||||
V9: [
|
||||
{ required: true, message: "铝箱长度2不能为空", trigger: "blur" }
|
||||
],
|
||||
G2: [
|
||||
{ required: true, message: "铝箱2重量不能为空", trigger: "blur" }
|
||||
],
|
||||
V10: [
|
||||
{ required: true, message: "导向条长度1不能为空", trigger: "blur" }
|
||||
],
|
||||
G5: [
|
||||
{ required: true, message: "导向条1单重不能为空", trigger: "blur" }
|
||||
],
|
||||
V12: [
|
||||
{ required: true, message: "导向条长度2不能为空", trigger: "blur" }
|
||||
],
|
||||
G6: [
|
||||
{ required: true, message: "导向条2单重不能为空", trigger: "blur" }
|
||||
],
|
||||
V14: [
|
||||
{ required: true, message: "导向条长度3不能为空", trigger: "blur" }
|
||||
],
|
||||
G7: [
|
||||
{ required: true, message: "导向条3单重不能为空", trigger: "blur" }
|
||||
],
|
||||
V41: [
|
||||
{ required: true, message: "轴挡不能为空", trigger: "blur" }
|
||||
],
|
||||
V42: [
|
||||
{ required: true, message: "35E链条滚轮不能为空", trigger: "blur" }
|
||||
],
|
||||
V43: [
|
||||
{ required: true, message: "35E垫圈不能为空", trigger: "blur" }
|
||||
],
|
||||
V44: [
|
||||
{ required: true, message: "35R链节轴2不能为空", trigger: "blur" }
|
||||
],
|
||||
V45: [
|
||||
{ required: true, message: "35E链节轴2不能为空", trigger: "blur" }
|
||||
],
|
||||
V46: [
|
||||
{ required: true, message: "35E链板不能为空", trigger: "blur" }
|
||||
],
|
||||
|
||||
}
|
||||
};
|
||||
},
|
||||
@ -394,6 +351,8 @@ export default {
|
||||
V44: undefined,
|
||||
V45: undefined,
|
||||
V46: undefined,
|
||||
V47: undefined,
|
||||
V48: undefined,
|
||||
createTime: undefined,
|
||||
updateTime: undefined,
|
||||
createBy: undefined,
|
||||
|
||||
549
src/views/system/spec40r/index.vue
Normal file
549
src/views/system/spec40r/index.vue
Normal file
@ -0,0 +1,549 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="行程变量" prop="travelLength">
|
||||
<el-input
|
||||
v-model="queryParams.travelLength"
|
||||
placeholder="请输入行程变量"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="箱体" prop="boxType">
|
||||
<el-select
|
||||
v-model="queryParams.boxType"
|
||||
placeholder="请选择箱体层数"
|
||||
clearable
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-option label="S(单层)" value="S" />
|
||||
<el-option label="D(双层)" value="D" />
|
||||
<el-option label="T(三层)" value="T" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['system:spec40r:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['system:spec40r:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['system:spec40r:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['system:spec40r:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" border :data="spec40rList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="行程变量" align="center" prop="travelLength" />
|
||||
<el-table-column label="类型" align="center" prop="itemType" />
|
||||
<el-table-column label="箱体" align="center" prop="boxType" />
|
||||
<el-table-column label="v1" align="center" prop="v1" />
|
||||
<el-table-column label="v2" align="center" prop="v2" />
|
||||
<el-table-column label="v3" align="center" prop="v3" />
|
||||
<el-table-column label="v5" align="center" prop="v5" />
|
||||
<el-table-column label="v6" align="center" prop="v6" />
|
||||
<el-table-column label="v8" align="center" prop="v8" />
|
||||
<el-table-column label="g1" align="center" prop="g1" />
|
||||
<el-table-column label="v9" align="center" prop="v9" />
|
||||
<el-table-column label="g2" align="center" prop="g2" />
|
||||
<el-table-column label="v10" align="center" prop="v10" />
|
||||
<el-table-column label="g5" align="center" prop="g5" />
|
||||
<el-table-column label="v11" align="center" prop="v11" />
|
||||
<el-table-column label="v12" align="center" prop="v12" />
|
||||
<el-table-column label="g6" align="center" prop="g6" />
|
||||
<el-table-column label="v13" align="center" prop="v13" />
|
||||
<el-table-column label="v14" align="center" prop="v14" />
|
||||
<el-table-column label="g7" align="center" prop="g7" />
|
||||
<el-table-column label="v15" align="center" prop="v15" />
|
||||
<el-table-column label="v41" align="center" prop="v41" />
|
||||
<el-table-column label="v42" align="center" prop="v42" />
|
||||
<el-table-column label="v43" align="center" prop="v43" />
|
||||
<el-table-column label="v44" align="center" prop="v44" />
|
||||
<el-table-column label="v45" align="center" prop="v45" />
|
||||
<el-table-column label="v46" align="center" prop="v46" />
|
||||
<el-table-column label="v47" align="center" prop="v47" />
|
||||
<el-table-column label="v48" align="center" prop="v48" />
|
||||
<el-table-column label="v49" align="center" prop="v49" />
|
||||
<el-table-column label="v50" align="center" prop="v50" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['system:spec40r:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['system:spec40r:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改40R设备规格参数对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="行程变量" prop="travelLength">
|
||||
<el-input v-model="form.travelLength" placeholder="请输入行程变量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="行程" prop="v1">
|
||||
<el-input v-model="form.v1" placeholder="请输入行程" />
|
||||
</el-form-item>
|
||||
<el-form-item label="设备总长" prop="v2">
|
||||
<el-input v-model="form.v2" placeholder="请输入设备总长" />
|
||||
</el-form-item>
|
||||
<el-form-item label="地脚位置1" prop="v3">
|
||||
<el-input v-model="form.v3" placeholder="请输入地脚位置1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="箱体装配长度" prop="v5">
|
||||
<el-input v-model="form.v5" placeholder="请输入箱体装配长度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="箱体地脚位置1" prop="v6">
|
||||
<el-input v-model="form.v6" placeholder="请输入箱体地脚位置1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="铝箱长度1" prop="v8">
|
||||
<el-input v-model="form.v8" placeholder="请输入铝箱长度1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="铝箱1重量" prop="g1">
|
||||
<el-input v-model="form.g1" placeholder="请输入铝箱1重量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="铝箱长度2" prop="v9">
|
||||
<el-input v-model="form.v9" placeholder="请输入铝箱长度2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="铝箱2重量" prop="g2">
|
||||
<el-input v-model="form.g2" placeholder="请输入铝箱2重量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="导向条长度1" prop="v10">
|
||||
<el-input v-model="form.v10" placeholder="请输入导向条长度1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="导向条1单重" prop="g5">
|
||||
<el-input v-model="form.g5" placeholder="请输入导向条1单重" />
|
||||
</el-form-item>
|
||||
<el-form-item label="导向条长度1数量" prop="v11">
|
||||
<el-input v-model="form.v11" placeholder="请输入导向条长度1数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="导向条长度2" prop="v12">
|
||||
<el-input v-model="form.v12" placeholder="请输入导向条长度2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="导向条2单重" prop="g6">
|
||||
<el-input v-model="form.g6" placeholder="请输入导向条2单重" />
|
||||
</el-form-item>
|
||||
<el-form-item label="导向条2数量" prop="v13">
|
||||
<el-input v-model="form.v13" placeholder="请输入导向条2数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="导向条长度3" prop="v14">
|
||||
<el-input v-model="form.v14" placeholder="请输入导向条长度3" />
|
||||
</el-form-item>
|
||||
<el-form-item label="导向条3单重" prop="g7">
|
||||
<el-input v-model="form.g7" placeholder="请输入导向条3单重" />
|
||||
</el-form-item>
|
||||
<el-form-item label="导向条3数量" prop="v15">
|
||||
<el-input v-model="form.v15" placeholder="请输入导向条3数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="外链板" prop="v41">
|
||||
<el-input v-model="form.v41" placeholder="请输入外链板" />
|
||||
</el-form-item>
|
||||
<el-form-item label="内链板" prop="v42">
|
||||
<el-input v-model="form.v42" placeholder="请输入内链板" />
|
||||
</el-form-item>
|
||||
<el-form-item label="连接板" prop="v43">
|
||||
<el-input v-model="form.v43" placeholder="请输入连接板" />
|
||||
</el-form-item>
|
||||
<el-form-item label="滚轮轴" prop="v44">
|
||||
<el-input v-model="form.v44" placeholder="请输入滚轮轴" />
|
||||
</el-form-item>
|
||||
<el-form-item label="隔套" prop="v45">
|
||||
<el-input v-model="form.v45" placeholder="请输入隔套" />
|
||||
</el-form-item>
|
||||
<el-form-item label="隔垫" prop="v46">
|
||||
<el-input v-model="form.v46" placeholder="请输入隔垫" />
|
||||
</el-form-item>
|
||||
<el-form-item label="滚轮" prop="v47">
|
||||
<el-input v-model="form.v47" placeholder="请输入滚轮" />
|
||||
</el-form-item>
|
||||
<el-form-item label="卡簧" prop="v48">
|
||||
<el-input v-model="form.v48" placeholder="请输入卡簧" />
|
||||
</el-form-item>
|
||||
<el-form-item label="链套轴" prop="v49">
|
||||
<el-input v-model="form.v49" placeholder="请输入链套轴" />
|
||||
</el-form-item>
|
||||
<el-form-item label="链套" prop="v50">
|
||||
<el-input v-model="form.v50" placeholder="请输入链套" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listSpec40r, getSpec40r, delSpec40r, addSpec40r, updateSpec40r } from "@/api/system/spec40r";
|
||||
|
||||
export default {
|
||||
name: "Spec40r",
|
||||
data() {
|
||||
return {
|
||||
// 按钮loading
|
||||
buttonLoading: false,
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 40R设备规格参数表格数据
|
||||
spec40rList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
travelLength: undefined,
|
||||
itemType: undefined,
|
||||
axialType: undefined,
|
||||
boxType: undefined,
|
||||
v1: undefined,
|
||||
v2: undefined,
|
||||
v3: undefined,
|
||||
v5: undefined,
|
||||
v6: undefined,
|
||||
v8: undefined,
|
||||
g1: undefined,
|
||||
v9: undefined,
|
||||
g2: undefined,
|
||||
v10: undefined,
|
||||
g5: undefined,
|
||||
v11: undefined,
|
||||
v12: undefined,
|
||||
g6: undefined,
|
||||
v13: undefined,
|
||||
v14: undefined,
|
||||
g7: undefined,
|
||||
v15: undefined,
|
||||
v41: undefined,
|
||||
v42: undefined,
|
||||
v43: undefined,
|
||||
v44: undefined,
|
||||
v45: undefined,
|
||||
v46: undefined,
|
||||
v47: undefined,
|
||||
v48: undefined,
|
||||
v49: undefined,
|
||||
v50: undefined,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
id: [
|
||||
{ required: true, message: "主键ID不能为空", trigger: "blur" }
|
||||
],
|
||||
travelLength: [
|
||||
{ required: true, message: "行程变量不能为空", trigger: "blur" }
|
||||
],
|
||||
itemType: [
|
||||
{ required: true, message: "类型不能为空", trigger: "change" }
|
||||
],
|
||||
axialType: [
|
||||
{ required: true, message: "轴向不能为空", trigger: "change" }
|
||||
],
|
||||
boxType: [
|
||||
{ required: true, message: "箱体不能为空", trigger: "change" }
|
||||
],
|
||||
v1: [
|
||||
{ required: true, message: "行程不能为空", trigger: "blur" }
|
||||
],
|
||||
v2: [
|
||||
{ required: true, message: "设备总长不能为空", trigger: "blur" }
|
||||
],
|
||||
v3: [
|
||||
{ required: true, message: "地脚位置1不能为空", trigger: "blur" }
|
||||
],
|
||||
v5: [
|
||||
{ required: true, message: "箱体装配长度不能为空", trigger: "blur" }
|
||||
],
|
||||
v6: [
|
||||
{ required: true, message: "箱体地脚位置1不能为空", trigger: "blur" }
|
||||
],
|
||||
v8: [
|
||||
{ required: true, message: "铝箱长度1不能为空", trigger: "blur" }
|
||||
],
|
||||
g1: [
|
||||
{ required: true, message: "铝箱1重量不能为空", trigger: "blur" }
|
||||
],
|
||||
v9: [
|
||||
{ required: true, message: "铝箱长度2不能为空", trigger: "blur" }
|
||||
],
|
||||
g2: [
|
||||
{ required: true, message: "铝箱2重量不能为空", trigger: "blur" }
|
||||
],
|
||||
v10: [
|
||||
{ required: true, message: "导向条长度1不能为空", trigger: "blur" }
|
||||
],
|
||||
g5: [
|
||||
{ required: true, message: "导向条1单重不能为空", trigger: "blur" }
|
||||
],
|
||||
v11: [
|
||||
{ required: true, message: "导向条长度1数量不能为空", trigger: "blur" }
|
||||
],
|
||||
v12: [
|
||||
{ required: true, message: "导向条长度2不能为空", trigger: "blur" }
|
||||
],
|
||||
g6: [
|
||||
{ required: true, message: "导向条2单重不能为空", trigger: "blur" }
|
||||
],
|
||||
v13: [
|
||||
{ required: true, message: "导向条2数量不能为空", trigger: "blur" }
|
||||
],
|
||||
v14: [
|
||||
{ required: true, message: "导向条长度3不能为空", trigger: "blur" }
|
||||
],
|
||||
g7: [
|
||||
{ required: true, message: "导向条3单重不能为空", trigger: "blur" }
|
||||
],
|
||||
v15: [
|
||||
{ required: true, message: "导向条3数量不能为空", trigger: "blur" }
|
||||
],
|
||||
v41: [
|
||||
{ required: true, message: "外链板不能为空", trigger: "blur" }
|
||||
],
|
||||
v42: [
|
||||
{ required: true, message: "内链板不能为空", trigger: "blur" }
|
||||
],
|
||||
v43: [
|
||||
{ required: true, message: "连接板不能为空", trigger: "blur" }
|
||||
],
|
||||
v44: [
|
||||
{ required: true, message: "滚轮轴不能为空", trigger: "blur" }
|
||||
],
|
||||
v45: [
|
||||
{ required: true, message: "隔套不能为空", trigger: "blur" }
|
||||
],
|
||||
v46: [
|
||||
{ required: true, message: "隔垫不能为空", trigger: "blur" }
|
||||
],
|
||||
v47: [
|
||||
{ required: true, message: "滚轮不能为空", trigger: "blur" }
|
||||
],
|
||||
v48: [
|
||||
{ required: true, message: "卡簧不能为空", trigger: "blur" }
|
||||
],
|
||||
v49: [
|
||||
{ required: true, message: "链套轴不能为空", trigger: "blur" }
|
||||
],
|
||||
v50: [
|
||||
{ required: true, message: "链套不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询40R设备规格参数列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listSpec40r(this.queryParams).then(response => {
|
||||
this.spec40rList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: undefined,
|
||||
travelLength: undefined,
|
||||
itemType: undefined,
|
||||
axialType: undefined,
|
||||
boxType: undefined,
|
||||
v1: undefined,
|
||||
v2: undefined,
|
||||
v3: undefined,
|
||||
v5: undefined,
|
||||
v6: undefined,
|
||||
v8: undefined,
|
||||
g1: undefined,
|
||||
v9: undefined,
|
||||
g2: undefined,
|
||||
v10: undefined,
|
||||
g5: undefined,
|
||||
v11: undefined,
|
||||
v12: undefined,
|
||||
g6: undefined,
|
||||
v13: undefined,
|
||||
v14: undefined,
|
||||
g7: undefined,
|
||||
v15: undefined,
|
||||
v41: undefined,
|
||||
v42: undefined,
|
||||
v43: undefined,
|
||||
v44: undefined,
|
||||
v45: undefined,
|
||||
v46: undefined,
|
||||
v47: undefined,
|
||||
v48: undefined,
|
||||
v49: undefined,
|
||||
v50: undefined,
|
||||
createTime: undefined,
|
||||
updateTime: undefined,
|
||||
createBy: undefined,
|
||||
updateBy: undefined
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加40R设备规格参数";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.loading = true;
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getSpec40r(id).then(response => {
|
||||
this.loading = false;
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改40R设备规格参数";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
this.buttonLoading = true;
|
||||
if (this.form.id != null) {
|
||||
updateSpec40r(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}).finally(() => {
|
||||
this.buttonLoading = false;
|
||||
});
|
||||
} else {
|
||||
addSpec40r(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}).finally(() => {
|
||||
this.buttonLoading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除40R设备规格参数编号为"' + ids + '"的数据项?').then(() => {
|
||||
this.loading = true;
|
||||
return delSpec40r(ids);
|
||||
}).then(() => {
|
||||
this.loading = false;
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {
|
||||
}).finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('system/spec40r/export', {
|
||||
...this.queryParams
|
||||
}, `spec40r_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
576
src/views/system/spec40s/index.vue
Normal file
576
src/views/system/spec40s/index.vue
Normal file
@ -0,0 +1,576 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="行程变量" prop="travelLength">
|
||||
<el-input
|
||||
v-model="queryParams.travelLength"
|
||||
placeholder="请输入行程变量"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="箱体" prop="boxType">
|
||||
<el-select
|
||||
v-model="queryParams.boxType"
|
||||
placeholder="请选择箱体层数"
|
||||
clearable
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-option label="S(单层)" value="S" />
|
||||
<el-option label="D(双层)" value="D" />
|
||||
<el-option label="T(三层)" value="T" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['system:spec40s:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['system:spec40s:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['system:spec40s:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['system:spec40s:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" border :data="spec40sList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="行程" align="center" prop="travelLength" />
|
||||
<el-table-column label="类型" align="center" prop="itemType" />
|
||||
<el-table-column label="箱体" align="center" prop="boxType" />
|
||||
<el-table-column label="v1" align="center" prop="v1" />
|
||||
<el-table-column label="v2" align="center" prop="v2" />
|
||||
<el-table-column label="v22" align="center" prop="v22" />
|
||||
<el-table-column label="v3" align="center" prop="v3" />
|
||||
<el-table-column label="v23" align="center" prop="v23" />
|
||||
<el-table-column label="v5" align="center" prop="v5" />
|
||||
<el-table-column label="v6" align="center" prop="v6" />
|
||||
<el-table-column label="v8" align="center" prop="v8" />
|
||||
<el-table-column label="g1" align="center" prop="g1" />
|
||||
<el-table-column label="v9" align="center" prop="v9" />
|
||||
<el-table-column label="g2" align="center" prop="g2" />
|
||||
<el-table-column label="v10" align="center" prop="v10" />
|
||||
<el-table-column label="g5" align="center" prop="g5" />
|
||||
<el-table-column label="v11" align="center" prop="v11" />
|
||||
<el-table-column label="v12" align="center" prop="v12" />
|
||||
<el-table-column label="g6" align="center" prop="g6" />
|
||||
<el-table-column label="v13" align="center" prop="v13" />
|
||||
<el-table-column label="v14" align="center" prop="v14" />
|
||||
<el-table-column label="g7" align="center" prop="g7" />
|
||||
<el-table-column label="v15" align="center" prop="v15" />
|
||||
<el-table-column label="v41" align="center" prop="v41" />
|
||||
<el-table-column label="v42" align="center" prop="v42" />
|
||||
<el-table-column label="v43" align="center" prop="v43" />
|
||||
<el-table-column label="v44" align="center" prop="v44" />
|
||||
<el-table-column label="v45" align="center" prop="v45" />
|
||||
<el-table-column label="v46" align="center" prop="v46" />
|
||||
<el-table-column label="v47" align="center" prop="v47" />
|
||||
<el-table-column label="v48" align="center" prop="v48" />
|
||||
<el-table-column label="v49" align="center" prop="v49" />
|
||||
<el-table-column label="v50" align="center" prop="v50" />
|
||||
<el-table-column label="v51" align="center" prop="v51" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['system:spec40s:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['system:spec40s:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改40S设备规格参数对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="行程" prop="travelLength">
|
||||
<el-input v-model="form.travelLength" placeholder="请输入行程变量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v1" prop="v1">
|
||||
<el-input v-model="form.v1" placeholder="请输入行程" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v2" prop="v2">
|
||||
<el-input v-model="form.v2" placeholder="请输入设备总长" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v22" prop="v22">
|
||||
<el-input v-model="form.v22" placeholder="请输入P40SI设备总仓" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v3" prop="v3">
|
||||
<el-input v-model="form.v3" placeholder="请输入地脚位置1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v23" prop="v23">
|
||||
<el-input v-model="form.v23" placeholder="请输入P40SI地脚位置" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v5" prop="v5">
|
||||
<el-input v-model="form.v5" placeholder="请输入箱体装配长度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v6" prop="v6">
|
||||
<el-input v-model="form.v6" placeholder="请输入箱体地脚位置1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v8" prop="v8">
|
||||
<el-input v-model="form.v8" placeholder="请输入铝箱长度1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="g1" prop="g1">
|
||||
<el-input v-model="form.g1" placeholder="请输入铝箱1重量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v9" prop="v9">
|
||||
<el-input v-model="form.v9" placeholder="请输入铝箱长度2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="g2" prop="g2">
|
||||
<el-input v-model="form.g2" placeholder="请输入铝箱2重量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v10" prop="v10">
|
||||
<el-input v-model="form.v10" placeholder="请输入导向条长度1" />
|
||||
</el-form-item>
|
||||
<el-form-item label="g5" prop="g5">
|
||||
<el-input v-model="form.g5" placeholder="请输入导向条1单重" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v11" prop="v11">
|
||||
<el-input v-model="form.v11" placeholder="请输入导向条长度1数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v12" prop="v12">
|
||||
<el-input v-model="form.v12" placeholder="请输入导向条长度2" />
|
||||
</el-form-item>
|
||||
<el-form-item label="g6" prop="g6">
|
||||
<el-input v-model="form.g6" placeholder="请输入导向条2单重" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v13" prop="v13">
|
||||
<el-input v-model="form.v13" placeholder="请输入导向条2数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v14" prop="v14">
|
||||
<el-input v-model="form.v14" placeholder="请输入导向条长度3" />
|
||||
</el-form-item>
|
||||
<el-form-item label="g7" prop="g7">
|
||||
<el-input v-model="form.g7" placeholder="请输入导向条3单重" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v15" prop="v15">
|
||||
<el-input v-model="form.v15" placeholder="请输入导向条3数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v41" prop="v41">
|
||||
<el-input v-model="form.v41" placeholder="请输入外链板" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v42" prop="v42">
|
||||
<el-input v-model="form.v42" placeholder="请输入内链板" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v43" prop="v43">
|
||||
<el-input v-model="form.v43" placeholder="请输入连接板" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v44" prop="v44">
|
||||
<el-input v-model="form.v44" placeholder="请输入滚轮轴" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v45" prop="v45">
|
||||
<el-input v-model="form.v45" placeholder="请输入隔套" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v46" prop="v46">
|
||||
<el-input v-model="form.v46" placeholder="请输入隔垫" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v47" prop="v47">
|
||||
<el-input v-model="form.v47" placeholder="请输入滚轮" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v48" prop="v48">
|
||||
<el-input v-model="form.v48" placeholder="请输入垫圈" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v49" prop="v49">
|
||||
<el-input v-model="form.v49" placeholder="请输入挡圈" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v50" prop="v50">
|
||||
<el-input v-model="form.v50" placeholder="请输入滚轮隔套" />
|
||||
</el-form-item>
|
||||
<el-form-item label="v51" prop="v51">
|
||||
<el-input v-model="form.v51" placeholder="请输入内链板组件" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listSpec40s, getSpec40s, delSpec40s, addSpec40s, updateSpec40s } from "@/api/system/spec40s";
|
||||
|
||||
export default {
|
||||
name: "Spec40s",
|
||||
data() {
|
||||
return {
|
||||
// 按钮loading
|
||||
buttonLoading: false,
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 40S设备规格参数表格数据
|
||||
spec40sList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
travelLength: undefined,
|
||||
itemType: undefined,
|
||||
axialType: undefined,
|
||||
boxType: undefined,
|
||||
v1: undefined,
|
||||
v2: undefined,
|
||||
v22: undefined,
|
||||
v3: undefined,
|
||||
v23: undefined,
|
||||
v5: undefined,
|
||||
v6: undefined,
|
||||
v8: undefined,
|
||||
g1: undefined,
|
||||
v9: undefined,
|
||||
g2: undefined,
|
||||
v10: undefined,
|
||||
g5: undefined,
|
||||
v11: undefined,
|
||||
v12: undefined,
|
||||
g6: undefined,
|
||||
v13: undefined,
|
||||
v14: undefined,
|
||||
g7: undefined,
|
||||
v15: undefined,
|
||||
v41: undefined,
|
||||
v42: undefined,
|
||||
v43: undefined,
|
||||
v44: undefined,
|
||||
v45: undefined,
|
||||
v46: undefined,
|
||||
v47: undefined,
|
||||
v48: undefined,
|
||||
v49: undefined,
|
||||
v50: undefined,
|
||||
v51: undefined,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
id: [
|
||||
{ required: true, message: "主键ID不能为空", trigger: "blur" }
|
||||
],
|
||||
travelLength: [
|
||||
{ required: true, message: "行程变量不能为空", trigger: "blur" }
|
||||
],
|
||||
itemType: [
|
||||
{ required: true, message: "类型不能为空", trigger: "change" }
|
||||
],
|
||||
axialType: [
|
||||
{ required: true, message: "轴向不能为空", trigger: "change" }
|
||||
],
|
||||
boxType: [
|
||||
{ required: true, message: "箱体不能为空", trigger: "change" }
|
||||
],
|
||||
v1: [
|
||||
{ required: true, message: "行程不能为空", trigger: "blur" }
|
||||
],
|
||||
v2: [
|
||||
{ required: true, message: "设备总长不能为空", trigger: "blur" }
|
||||
],
|
||||
v22: [
|
||||
{ required: true, message: "P40SI设备总仓不能为空", trigger: "blur" }
|
||||
],
|
||||
v3: [
|
||||
{ required: true, message: "地脚位置1不能为空", trigger: "blur" }
|
||||
],
|
||||
v23: [
|
||||
{ required: true, message: "P40SI地脚位置不能为空", trigger: "blur" }
|
||||
],
|
||||
v5: [
|
||||
{ required: true, message: "箱体装配长度不能为空", trigger: "blur" }
|
||||
],
|
||||
v6: [
|
||||
{ required: true, message: "箱体地脚位置1不能为空", trigger: "blur" }
|
||||
],
|
||||
v8: [
|
||||
{ required: true, message: "铝箱长度1不能为空", trigger: "blur" }
|
||||
],
|
||||
g1: [
|
||||
{ required: true, message: "铝箱1重量不能为空", trigger: "blur" }
|
||||
],
|
||||
v9: [
|
||||
{ required: true, message: "铝箱长度2不能为空", trigger: "blur" }
|
||||
],
|
||||
g2: [
|
||||
{ required: true, message: "铝箱2重量不能为空", trigger: "blur" }
|
||||
],
|
||||
v10: [
|
||||
{ required: true, message: "导向条长度1不能为空", trigger: "blur" }
|
||||
],
|
||||
g5: [
|
||||
{ required: true, message: "导向条1单重不能为空", trigger: "blur" }
|
||||
],
|
||||
v11: [
|
||||
{ required: true, message: "导向条长度1数量不能为空", trigger: "blur" }
|
||||
],
|
||||
v12: [
|
||||
{ required: true, message: "导向条长度2不能为空", trigger: "blur" }
|
||||
],
|
||||
g6: [
|
||||
{ required: true, message: "导向条2单重不能为空", trigger: "blur" }
|
||||
],
|
||||
v13: [
|
||||
{ required: true, message: "导向条2数量不能为空", trigger: "blur" }
|
||||
],
|
||||
v14: [
|
||||
{ required: true, message: "导向条长度3不能为空", trigger: "blur" }
|
||||
],
|
||||
g7: [
|
||||
{ required: true, message: "导向条3单重不能为空", trigger: "blur" }
|
||||
],
|
||||
v15: [
|
||||
{ required: true, message: "导向条3数量不能为空", trigger: "blur" }
|
||||
],
|
||||
v41: [
|
||||
{ required: true, message: "外链板不能为空", trigger: "blur" }
|
||||
],
|
||||
v42: [
|
||||
{ required: true, message: "内链板不能为空", trigger: "blur" }
|
||||
],
|
||||
v43: [
|
||||
{ required: true, message: "连接板不能为空", trigger: "blur" }
|
||||
],
|
||||
v44: [
|
||||
{ required: true, message: "滚轮轴不能为空", trigger: "blur" }
|
||||
],
|
||||
v45: [
|
||||
{ required: true, message: "隔套不能为空", trigger: "blur" }
|
||||
],
|
||||
v46: [
|
||||
{ required: true, message: "隔垫不能为空", trigger: "blur" }
|
||||
],
|
||||
v47: [
|
||||
{ required: true, message: "滚轮不能为空", trigger: "blur" }
|
||||
],
|
||||
v48: [
|
||||
{ required: true, message: "垫圈不能为空", trigger: "blur" }
|
||||
],
|
||||
v49: [
|
||||
{ required: true, message: "挡圈不能为空", trigger: "blur" }
|
||||
],
|
||||
v50: [
|
||||
{ required: true, message: "滚轮隔套不能为空", trigger: "blur" }
|
||||
],
|
||||
v51: [
|
||||
{ required: true, message: "内链板组件不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询40S设备规格参数列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listSpec40s(this.queryParams).then(response => {
|
||||
this.spec40sList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: undefined,
|
||||
travelLength: undefined,
|
||||
itemType: undefined,
|
||||
axialType: undefined,
|
||||
boxType: undefined,
|
||||
v1: undefined,
|
||||
v2: undefined,
|
||||
v22: undefined,
|
||||
v3: undefined,
|
||||
v23: undefined,
|
||||
v5: undefined,
|
||||
v6: undefined,
|
||||
v8: undefined,
|
||||
g1: undefined,
|
||||
v9: undefined,
|
||||
g2: undefined,
|
||||
v10: undefined,
|
||||
g5: undefined,
|
||||
v11: undefined,
|
||||
v12: undefined,
|
||||
g6: undefined,
|
||||
v13: undefined,
|
||||
v14: undefined,
|
||||
g7: undefined,
|
||||
v15: undefined,
|
||||
v41: undefined,
|
||||
v42: undefined,
|
||||
v43: undefined,
|
||||
v44: undefined,
|
||||
v45: undefined,
|
||||
v46: undefined,
|
||||
v47: undefined,
|
||||
v48: undefined,
|
||||
v49: undefined,
|
||||
v50: undefined,
|
||||
v51: undefined,
|
||||
createTime: undefined,
|
||||
updateTime: undefined,
|
||||
createBy: undefined,
|
||||
updateBy: undefined
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加40S设备规格参数";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.loading = true;
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getSpec40s(id).then(response => {
|
||||
this.loading = false;
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改40S设备规格参数";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
this.buttonLoading = true;
|
||||
if (this.form.id != null) {
|
||||
updateSpec40s(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}).finally(() => {
|
||||
this.buttonLoading = false;
|
||||
});
|
||||
} else {
|
||||
addSpec40s(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}).finally(() => {
|
||||
this.buttonLoading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除40S设备规格参数编号为"' + ids + '"的数据项?').then(() => {
|
||||
this.loading = true;
|
||||
return delSpec40s(ids);
|
||||
}).then(() => {
|
||||
this.loading = false;
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {
|
||||
}).finally(() => {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('system/spec40s/export', {
|
||||
...this.queryParams
|
||||
}, `spec40s_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
Loading…
Reference in New Issue
Block a user