aaa
This commit is contained in:
parent
2f25b02533
commit
55a32a3831
@ -69,3 +69,13 @@ export function delDetails(id) {
|
|||||||
method: 'delete'
|
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) {
|
export function exportRoute(id) {
|
||||||
return request({
|
return request({
|
||||||
url: `/system/orderPro/exportRoute2?id=${id}`,
|
url: '/system/orderPro/exportRoute2',
|
||||||
method: 'post',
|
method: 'get',
|
||||||
|
params: { id },
|
||||||
|
responseType: 'blob'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 下载工艺计划表(新路径 exportRoute3)
|
||||||
|
export function exportRoute3(id) {
|
||||||
|
return request({
|
||||||
|
url: '/system/orderPro/exportRoute3',
|
||||||
|
method: 'get',
|
||||||
|
params: { id },
|
||||||
responseType: 'blob'
|
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">
|
<el-table-column label="执行单图" align="center" min-width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-image
|
<el-image
|
||||||
v-if="scope.row.drawingPath"
|
v-if="scope.row.drawingPathUrl || scope.row.drawingPath"
|
||||||
:src="getFullImageUrl(scope.row.drawingPath)"
|
:src="getFullImageUrl(scope.row)"
|
||||||
style="width:80px; height:80px; object-fit:cover; border-radius:4px;"
|
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"
|
fit="cover"
|
||||||
/>
|
/>
|
||||||
<span v-else style="color: #909399; font-size: 12px;">暂无执行单图</span>
|
<span v-else style="color: #909399; font-size: 12px;">暂无执行单图</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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">
|
<el-table-column label="项目状态" align="center" prop="imCategory">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@ -171,7 +163,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="创建人" align="center" prop="createBy"/>
|
||||||
<el-table-column label="项目完成时间" align="center" prop="projectEndTime" width="180">
|
<el-table-column label="项目完成时间" align="center" prop="projectEndTime" width="180">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ parseTime(scope.row.projectEndTime, '{y}-{m}-{d}') }}</span>
|
<span>{{ parseTime(scope.row.projectEndTime, '{y}-{m}-{d}') }}</span>
|
||||||
@ -235,7 +227,21 @@
|
|||||||
</el-divider>
|
</el-divider>
|
||||||
<div style="padding: 20px;">
|
<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
|
<el-table
|
||||||
:data="chainTable"
|
:data="chainTable"
|
||||||
border
|
border
|
||||||
@ -244,8 +250,9 @@
|
|||||||
style="width: 100%; margin-bottom: 10px;"
|
style="width: 100%; margin-bottom: 10px;"
|
||||||
highlight-current-row
|
highlight-current-row
|
||||||
:header-cell-style="{ fontWeight: 'bold', background: '#f5f7fa' }"
|
: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="figureNumber" label="产品型号" min-width="100"/>
|
||||||
<el-table-column prop="figureName" label="产品名称" min-width="140"/>
|
<el-table-column prop="figureName" label="产品名称" min-width="140"/>
|
||||||
<el-table-column prop="jdInventory" label="行程" min-width="80"/>
|
<el-table-column prop="jdInventory" label="行程" min-width="80"/>
|
||||||
@ -255,27 +262,12 @@
|
|||||||
<el-table-column label="操作" width="200">
|
<el-table-column label="操作" width="200">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div style="display: flex; align-items: center; gap: 8px;">
|
<div style="display: flex; align-items: center; gap: 8px;">
|
||||||
<el-upload
|
|
||||||
:action="dwgUploadUrl"
|
<el-button type="text" size="mini" @click="editChain(scope.$index, scope.row)" v-hasPermi="['system:save:edit']">
|
||||||
: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)">
|
|
||||||
<i class="el-icon-edit"></i> 修改
|
<i class="el-icon-edit"></i> 修改
|
||||||
</el-button>
|
</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> 删除
|
<i class="el-icon-delete"></i> 删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
@ -290,16 +282,31 @@
|
|||||||
</el-divider>
|
</el-divider>
|
||||||
<!-- 第二部分:执行出图命令及日志展示 -->
|
<!-- 第二部分:执行出图命令及日志展示 -->
|
||||||
<div style="margin-bottom: 20px;">
|
<div style="margin-bottom: 20px;">
|
||||||
<el-button type="success" :loading="drawLoading" @click="executeDrawCommand" style="margin-bottom: 10px;">
|
<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" style="margin-bottom: 10px; margin-left: 10px;">
|
</el-button>
|
||||||
下载PDF
|
<el-button type="primary" @click="downloadPDF" v-hasPermi="['system:orderPro:uploadPDF']">
|
||||||
</el-button>
|
下载PDF
|
||||||
<el-button type="warning" @click="downloadRoute" style="margin-bottom: 10px; margin-left: 10px;"
|
</el-button>
|
||||||
v-hasPermi="['system:route:exportRoute']">
|
<el-button type="warning" @click="downloadRoute" v-hasPermi="['system:orderPro:exportRoute2']">
|
||||||
下载生产工艺计划表
|
下载金蝶工艺计划表
|
||||||
</el-button>
|
</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-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;">
|
<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;">
|
<div style="font-size: 13px; color: #333; white-space: pre-line;">
|
||||||
@ -736,12 +743,8 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<!-- 新增/编辑弹窗 -->
|
<!-- 新增/编辑弹窗 -->
|
||||||
<el-dialog
|
<el-dialog :title="isEditChain ? '编辑销齿链型号' : '新增销齿链型号'" :visible.sync="chainDialogVisible"
|
||||||
:title="isEditChain ? '编辑销齿链型号' : '新增销齿链型号'"
|
width="420px" append-to-body >
|
||||||
:visible.sync="chainDialogVisible"
|
|
||||||
width="420px"
|
|
||||||
append-to-body
|
|
||||||
>
|
|
||||||
<el-form :model="chainForm" label-width="100px">
|
<el-form :model="chainForm" label-width="100px">
|
||||||
<div
|
<div
|
||||||
style="margin-bottom: 16px; padding: 12px; background-color: #f0f9ff; border: 1px solid #b3d8ff; border-radius: 4px; color: #409eff; font-size: 13px;">
|
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
|
filterable
|
||||||
remote
|
remote
|
||||||
reserve-keyword
|
reserve-keyword
|
||||||
placeholder="请输入行程/类型/名称/产品名(可选)"
|
:placeholder="isEditChain ? '编辑模式不使用此项' : '请输入行程/类型/名称/产品名(可选)'"
|
||||||
:remote-method="searchRigidChain"
|
:remote-method="searchRigidChain"
|
||||||
:loading="chainLoading"
|
:loading="chainLoading"
|
||||||
@change="onRigidChainSelect"
|
@change="onRigidChainSelect"
|
||||||
popper-class="chain-autocomplete-dropdown"
|
popper-class="chain-autocomplete-dropdown"
|
||||||
:default-first-option="false"
|
:default-first-option="false"
|
||||||
|
:disabled="isEditChain"
|
||||||
clearable
|
clearable
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@ -783,21 +787,32 @@
|
|||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="产品名称" required>
|
|
||||||
<el-input v-model="chainForm.figureName" placeholder="请输入产品名称"/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="生产令号">
|
<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>
|
||||||
<el-form-item label="产品型号" required>
|
<el-form-item label="物料类型">
|
||||||
<el-input v-model="chainForm.figureNumber" placeholder="请输入产品型号"/>
|
<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>
|
||||||
<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-input v-model="chainForm.figureNum" placeholder="请输入数量" type="number" min="1"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="行程" required>
|
|
||||||
<el-input v-model="chainForm.jdInventory" placeholder="请输入行程"/>
|
|
||||||
</el-form-item>
|
|
||||||
<!-- 文件路径和DWG上传,企标可编辑,非企标只读+可上传 -->
|
<!-- 文件路径和DWG上传,企标可编辑,非企标只读+可上传 -->
|
||||||
<el-form-item label="文件路径">
|
<el-form-item label="文件路径">
|
||||||
<div>
|
<div>
|
||||||
@ -820,9 +835,7 @@
|
|||||||
<el-input v-model="chainForm.drawPath" placeholder="请输入文件路径"/>
|
<el-input v-model="chainForm.drawPath" placeholder="请输入文件路径"/>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="产品类型" required>
|
|
||||||
<el-input v-model="chainForm.productType" placeholder="请输入产品类型"/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer" style="text-align: right;">
|
<div slot="footer" class="dialog-footer" style="text-align: right;">
|
||||||
<el-button @click="chainDialogVisible = false">取 消</el-button>
|
<el-button @click="chainDialogVisible = false">取 消</el-button>
|
||||||
@ -919,20 +932,23 @@ import {
|
|||||||
delSave,
|
delSave,
|
||||||
uploadPDF,
|
uploadPDF,
|
||||||
exportRoute,
|
exportRoute,
|
||||||
|
exportRoute3,
|
||||||
getMRPResults,
|
getMRPResults,
|
||||||
getRouteLog,
|
getRouteLog,
|
||||||
getBomUploadStatus
|
getBomUploadStatus
|
||||||
} from "@/api/system/orderPro";
|
} from "@/api/system/orderPro";
|
||||||
import {processList} from "../../../api/system/orderPro";
|
import {processList} from "../../../api/system/orderPro";
|
||||||
import {listRigidChain} from '@/api/system/pcRigidChain';
|
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 {getstate} from '@/utils/external-api';
|
||||||
import {listConfigIni} from '@/api/system/configIni';
|
import {listConfigIni} from '@/api/system/configIni';
|
||||||
import ImageUpload from '@/components/ImageUpload';
|
import ImageUpload from '@/components/ImageUpload';
|
||||||
import {getToken} from '@/utils/auth';
|
import {getToken} from '@/utils/auth';
|
||||||
|
import axios from 'axios';
|
||||||
import bomInfo from '@/views/system/details/index.vue'; //bom明细
|
import bomInfo from '@/views/system/details/index.vue'; //bom明细
|
||||||
import processInfo from '@/views/system/route/index.vue'; //工艺信息
|
import processInfo from '@/views/system/route/index.vue'; //工艺信息
|
||||||
import {listMrp, exportMrp} from '@/api/system/mrp';
|
import {listMrp, exportMrp} from '@/api/system/mrp';
|
||||||
|
import {importElectricalBom} from '@/api/system/details';
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@ -985,6 +1001,7 @@ export default {
|
|||||||
planStartTime: undefined,
|
planStartTime: undefined,
|
||||||
drawingType: undefined,
|
drawingType: undefined,
|
||||||
projectEndTime: undefined,
|
projectEndTime: undefined,
|
||||||
|
createBy: undefined,
|
||||||
unit: undefined,
|
unit: undefined,
|
||||||
quantity: undefined,
|
quantity: undefined,
|
||||||
isEnterpriseStandard: undefined,
|
isEnterpriseStandard: undefined,
|
||||||
@ -1081,19 +1098,26 @@ export default {
|
|||||||
chainTable: [], // 销齿链型号表格数据
|
chainTable: [], // 销齿链型号表格数据
|
||||||
chainForm: {
|
chainForm: {
|
||||||
pid: '',
|
pid: '',
|
||||||
jdInventory: '',
|
|
||||||
figureNumber: '',
|
|
||||||
productType: '',
|
|
||||||
figureNum: '',
|
|
||||||
productName: '',
|
|
||||||
productionCode: '',
|
productionCode: '',
|
||||||
selectedFileType: '', // 新增
|
productType: '',
|
||||||
|
figureNumber: '',
|
||||||
|
figureName: '',
|
||||||
|
figureNum: '',
|
||||||
|
jdInventory: '',
|
||||||
|
axialType: '',
|
||||||
|
boxType: '',
|
||||||
|
selectedFileType: '',
|
||||||
|
drawPath: '',
|
||||||
|
id: undefined,
|
||||||
},
|
},
|
||||||
chainDialogVisible: false, // 控制新增/编辑弹窗
|
chainDialogVisible: false, // 控制新增/编辑弹窗
|
||||||
isEditChain: false, // 区分新增/编辑
|
isEditChain: false, // 区分新增/编辑
|
||||||
editChainIndex: null, // 编辑时的索引
|
editChainIndex: null, // 编辑时的索引
|
||||||
rigidChainOptions: [],
|
rigidChainOptions: [],
|
||||||
|
typeOptions: [],
|
||||||
|
journeyOptions: [],
|
||||||
chainLoading: false,
|
chainLoading: false,
|
||||||
|
selectedChainIds: [],
|
||||||
drawLog: '', // 出图日志内容
|
drawLog: '', // 出图日志内容
|
||||||
drawLoading: false, // 出图按钮 loading
|
drawLoading: false, // 出图按钮 loading
|
||||||
currentPid: null, // 当前项目id
|
currentPid: null, // 当前项目id
|
||||||
@ -1131,7 +1155,7 @@ export default {
|
|||||||
this.getDrawingTypeOptions();
|
this.getDrawingTypeOptions();
|
||||||
this.getConfigIniOptions(); // 新增
|
this.getConfigIniOptions(); // 新增
|
||||||
|
|
||||||
this.$api = {addProduct};
|
this.$api = {addProduct, updateProduct};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'form.isEnterpriseStandard': function (newVal) {
|
'form.isEnterpriseStandard': function (newVal) {
|
||||||
@ -1316,13 +1340,11 @@ export default {
|
|||||||
this.clearProcessLog();
|
this.clearProcessLog();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!latest) {
|
if (!latest) {
|
||||||
this.$message.info('暂无工艺上传日志');
|
this.$message.info('暂无工艺上传日志');
|
||||||
this.clearProcessLog();
|
this.clearProcessLog();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 直接使用解析后的数据结构
|
// 直接使用解析后的数据结构
|
||||||
// 处理时间:dayjs 支持时间戳(毫秒)和日期字符串
|
// 处理时间:dayjs 支持时间戳(毫秒)和日期字符串
|
||||||
this.processUploadLog = {
|
this.processUploadLog = {
|
||||||
@ -1331,12 +1353,10 @@ export default {
|
|||||||
duplicateRoutes: latest.duplicateRoutes || [],
|
duplicateRoutes: latest.duplicateRoutes || [],
|
||||||
failedRoutes: latest.failedRoutes || []
|
failedRoutes: latest.failedRoutes || []
|
||||||
};
|
};
|
||||||
this.$message.success('已拉取最新日志');
|
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(res && res.msg ? res.msg : '获取工艺上传日志失败');
|
this.$message.error(res && res.msg ? res.msg : '获取工艺上传日志失败');
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('获取工艺上传日志异常', e);
|
|
||||||
this.$message.error('获取工艺上传日志失败');
|
this.$message.error('获取工艺上传日志失败');
|
||||||
} finally {
|
} finally {
|
||||||
this.processLogLoading = false;
|
this.processLogLoading = false;
|
||||||
@ -1400,12 +1420,10 @@ export default {
|
|||||||
this.bomUploadLog = {
|
this.bomUploadLog = {
|
||||||
items: items
|
items: items
|
||||||
};
|
};
|
||||||
this.$message.success('已拉取最新BOM日志');
|
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(res && res.msg ? res.msg : '获取BOM上传日志失败');
|
this.$message.error(res && res.msg ? res.msg : '获取BOM上传日志失败');
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('获取BOM上传日志异常', e);
|
|
||||||
this.$message.error('获取BOM上传日志失败');
|
this.$message.error('获取BOM上传日志失败');
|
||||||
} finally {
|
} finally {
|
||||||
this.bomLogLoading = false;
|
this.bomLogLoading = false;
|
||||||
@ -1926,26 +1944,45 @@ export default {
|
|||||||
...this.queryParams
|
...this.queryParams
|
||||||
}, `orderPro_${new Date().getTime()}.xlsx`)
|
}, `orderPro_${new Date().getTime()}.xlsx`)
|
||||||
},
|
},
|
||||||
openAddChainDialog() {
|
openAddChainDialog() {
|
||||||
this.isEditChain = false;
|
this.isEditChain = false;
|
||||||
this.chainForm = {
|
this.chainForm = {
|
||||||
productName: '',
|
|
||||||
pid: this.id,
|
pid: this.id,
|
||||||
productionCode: this.productionObj.productionOrderNo,
|
productionCode: this.productionObj.productionOrderNo,
|
||||||
figureName: '',
|
productType: '',
|
||||||
figureNumber: '',
|
figureNumber: '',
|
||||||
|
figureName: '',
|
||||||
figureNum: '',
|
figureNum: '',
|
||||||
jdInventory: '',
|
jdInventory: '',
|
||||||
productType: '',
|
axialType: '',
|
||||||
selectedFileType: '', // 新增
|
boxType: '',
|
||||||
id: undefined, // 确保新增时没有id
|
selectedFileType: '',
|
||||||
|
drawPath: '',
|
||||||
|
id: undefined,
|
||||||
};
|
};
|
||||||
this.chainDialogVisible = true;
|
this.chainDialogVisible = true;
|
||||||
},
|
},
|
||||||
editChain(index, row) {
|
editChain(index, row) {
|
||||||
this.isEditChain = true;
|
this.isEditChain = true;
|
||||||
this.editChainIndex = index;
|
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;
|
this.chainDialogVisible = true;
|
||||||
},
|
},
|
||||||
removeChain(index) {
|
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() {
|
async saveChainForm() {
|
||||||
// 验证必填字段
|
if (!this.chainForm.productionCode) {
|
||||||
if (!this.chainForm.figureName) {
|
this.$message.warning('生产令号不能为空');
|
||||||
this.$message.warning('产品名称不能为空');
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!this.chainForm.figureNumber) {
|
if (!this.chainForm.figureNumber) {
|
||||||
this.$message.warning('产品型号不能为空');
|
this.$message.warning('图号不能为空');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!this.chainForm.figureName) {
|
||||||
|
this.$message.warning('名称不能为空');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!this.chainForm.figureNum || Number(this.chainForm.figureNum) < 1) {
|
if (!this.chainForm.figureNum || Number(this.chainForm.figureNum) < 1) {
|
||||||
this.$message.warning('数量不能为空且必须大于0');
|
this.$message.warning('数量不能为空且必须大于0');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!this.chainForm.productType) {
|
|
||||||
this.$message.warning('产品类型不能为空');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// 组装数据,字段名与实体类完全一致
|
|
||||||
const payload = {
|
const payload = {
|
||||||
figureName: this.chainForm.figureName,
|
id: this.chainForm.id,
|
||||||
productionCode: this.chainForm.productionCode,
|
|
||||||
figureNumber: this.chainForm.figureNumber,
|
|
||||||
figureNum: this.chainForm.figureNum,
|
|
||||||
jdInventory: this.chainForm.jdInventory,
|
|
||||||
drawPath: this.chainForm.drawPath || '',
|
|
||||||
productType: this.chainForm.productType,
|
|
||||||
pid: this.productionObj.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) {
|
if (this.isEditChain && this.chainForm.id) {
|
||||||
payload.id = this.chainForm.id;
|
payload.id = this.chainForm.id;
|
||||||
}
|
}
|
||||||
console.log('saveChainForm........', payload);
|
console.log('saveChainForm........', payload);
|
||||||
try {
|
try {
|
||||||
await this.$api.addProduct(payload);
|
if (this.isEditChain) {
|
||||||
this.$message.success('添加成功');
|
await this.$api.updateProduct(payload);
|
||||||
|
this.$message.success('修改成功');
|
||||||
|
} else {
|
||||||
|
await this.$api.addProduct(payload);
|
||||||
|
this.$message.success('添加成功');
|
||||||
|
}
|
||||||
this.chainDialogVisible = false;
|
this.chainDialogVisible = false;
|
||||||
// 添加成功后刷新表格数据
|
|
||||||
this.loadChainTableData();
|
this.loadChainTableData();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.$message.error('添加失败');
|
const msg = this.isEditChain ? '修改失败' : '添加失败';
|
||||||
|
this.$message.error(msg);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
searchRigidChain(query) {
|
searchRigidChain(query) {
|
||||||
if (!query) {
|
if (!query) {
|
||||||
this.rigidChainOptions = [];
|
this.rigidChainOptions = [];
|
||||||
|
this.typeOptions = [];
|
||||||
|
this.journeyOptions = [];
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.chainLoading = true;
|
this.chainLoading = true;
|
||||||
listRigidChain({typeName: query}).then(res => {
|
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;
|
this.chainLoading = false;
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.chainLoading = false;
|
this.chainLoading = false;
|
||||||
@ -2020,30 +2164,23 @@ export default {
|
|||||||
},
|
},
|
||||||
onRigidChainSelect(id) {
|
onRigidChainSelect(id) {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
// 用户清空了选择,重置相关字段,允许手动填写
|
|
||||||
this.chainForm.figureName = '';
|
|
||||||
this.chainForm.figureNumber = '';
|
|
||||||
this.chainForm.jdInventory = '';
|
|
||||||
this.chainForm.drawPath = '';
|
|
||||||
this.chainForm.productType = '';
|
this.chainForm.productType = '';
|
||||||
this.chainForm.productName = '';
|
this.chainForm.figureNumber = '';
|
||||||
|
this.chainForm.figureName = '';
|
||||||
|
this.chainForm.drawPath = '';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const selected = this.rigidChainOptions.find(item => item.id === id);
|
const selected = this.rigidChainOptions.find(item => item.id === id);
|
||||||
|
|
||||||
if (selected) {
|
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.productType = selected.type || '';
|
||||||
this.chainForm.productName = selected.productName || '';
|
this.chainForm.figureNumber = selected.typeName || selected.figureNumber || '';
|
||||||
// 如果数量未填写,自动赋值为1
|
this.chainForm.figureName = selected.productName || '';
|
||||||
|
this.chainForm.drawPath = selected.drawPath || '';
|
||||||
if (!this.chainForm.figureNum) {
|
if (!this.chainForm.figureNum) {
|
||||||
this.chainForm.figureNum = 1;
|
this.chainForm.figureNum = 1;
|
||||||
}
|
}
|
||||||
// 在新增模式下,清除id字段,避免误传
|
|
||||||
if (!this.isEditChain) {
|
if (!this.isEditChain) {
|
||||||
this.chainForm.id = undefined;
|
this.chainForm.id = undefined;
|
||||||
}
|
}
|
||||||
@ -2116,10 +2253,31 @@ export default {
|
|||||||
this.chainForm.drawPath = selected.fileUrl;
|
this.chainForm.drawPath = selected.fileUrl;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getFullImageUrl(path) {
|
setSelectedFileTypeFromPath(path) {
|
||||||
if (!path) return '';
|
if (!path) {
|
||||||
|
this.chainForm.selectedFileType = '';
|
||||||
return path;
|
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) {
|
beforeDwgUpload(file, row) {
|
||||||
// 验证文件格式
|
// 验证文件格式
|
||||||
@ -2242,7 +2400,7 @@ export default {
|
|||||||
link.click();
|
link.click();
|
||||||
window.URL.revokeObjectURL(url);
|
window.URL.revokeObjectURL(url);
|
||||||
|
|
||||||
this.$message.success('生产工艺计划表下载成功');
|
this.$message.success('生产工艺计划表下载成功');
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.error('下载失败:', error);
|
console.error('下载失败:', error);
|
||||||
@ -2250,6 +2408,29 @@ export default {
|
|||||||
this.$message.error('下载失败: ' + (error.message || '项目未出图'));
|
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() {
|
beforeMount() {
|
||||||
clearInterval(this.time);
|
clearInterval(this.time);
|
||||||
|
|||||||
@ -154,10 +154,27 @@ export default {
|
|||||||
'color': '#5692f0'
|
'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
|
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)
|
gantt.parse(this.tasks)
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
} else {
|
} else {
|
||||||
@ -238,6 +255,22 @@ export default {
|
|||||||
'color': '#5692f0'
|
'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
|
return newObj
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -245,6 +278,8 @@ export default {
|
|||||||
//this.initData(); // 调用初始化甘特图数据的方法
|
//this.initData(); // 调用初始化甘特图数据的方法
|
||||||
gantt.clearAll()
|
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)
|
gantt.parse(this.tasks)
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
} else {
|
} else {
|
||||||
@ -255,6 +290,33 @@ export default {
|
|||||||
this.loading = false;
|
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() {
|
search() {
|
||||||
// 构建查询参数
|
// 构建查询参数
|
||||||
@ -303,15 +365,63 @@ export default {
|
|||||||
width: 180,
|
width: 180,
|
||||||
align: "left",
|
align: "left",
|
||||||
editor: {type: 'text', map_to: 'text'},
|
editor: {type: 'text', map_to: 'text'},
|
||||||
onrender: function (task, node) {
|
template: function (task) {
|
||||||
node.setAttribute("class", "gantt_cell gantt_last_cell gantt_cell_tree " + task.status);
|
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: "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>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="success" plain icon="el-icon-upload" size="mini" @click="handleImport"
|
<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-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
@ -54,7 +54,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="info" plain icon="el-icon-share" size="mini" @click="pushRouteBom"
|
<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-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="3">
|
<el-col :span="3">
|
||||||
@ -67,17 +67,17 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="danger" plain icon="el-icon-edit" size="mini" :disabled="multiple" @click="updateProcessPlan"
|
<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-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="success" plain icon="el-icon-setting" size="mini" @click="updateProcesTime"
|
<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-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" plain icon="el-icon-document" size="mini" @click="generatePDFs1"
|
<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-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
@ -116,8 +116,8 @@
|
|||||||
scope.row.routeDescription }}</router-link>
|
scope.row.routeDescription }}</router-link>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column> -->
|
</el-table-column> -->
|
||||||
<el-table-column label="物料编码" width="120" align="center" prop="materialCode"/>
|
<el-table-column label="物料编码" width="120" align="center" prop="materialCode" fixed="left"/>
|
||||||
<el-table-column label="名称" width="120" align="center" prop="materialName"/>
|
<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="80" align="center" prop="material"/>
|
||||||
<el-table-column label="单重" width="60" align="center" prop="discWeight"/>
|
<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="本批数" 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="材料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="discUsage" />
|
||||||
<el-table-column label="单位"width="60" align="center" prop="bomUnit" />-->
|
<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 :data="processRoutes" stripe border v-loading="processLoading">
|
||||||
<el-table-column label="工艺编号" prop="fnumber" width="120" align="center"/>
|
<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="project_code" width="180" align="center"/>
|
||||||
<el-table-column label="物料编码" prop="materialCode" width="140" align="center"/>
|
<el-table-column label="物料编码" prop="materialCode" fixed="left" width="140" align="center"/>
|
||||||
<el-table-column label="物料名称" prop="materialName" min-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">
|
<el-table-column label="操作" width="120" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
|
|||||||
@ -138,8 +138,8 @@
|
|||||||
<el-form-item label="最高安全库存" prop="maxSafetyStock">
|
<el-form-item label="最高安全库存" prop="maxSafetyStock">
|
||||||
<el-input v-model="form.maxSafetyStock" placeholder="请输入最高安全库存" />
|
<el-input v-model="form.maxSafetyStock" placeholder="请输入最高安全库存" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="即时库存" prop="currentStock">
|
<el-form-item label="类型" prop="type">
|
||||||
<el-input v-model="form.currentStock" placeholder="请输入最高安全库存" />
|
<el-input v-model="form.type" placeholder="请输入类型" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<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"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</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-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
<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-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
@ -61,12 +73,11 @@
|
|||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</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 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="itemType" />
|
||||||
<el-table-column label="轴向" align="center" prop="axialType" />
|
|
||||||
<el-table-column label="箱体" align="center" prop="boxType" />
|
<el-table-column label="箱体" align="center" prop="boxType" />
|
||||||
<el-table-column label="V1" align="center" prop="V1" />
|
<el-table-column label="V1" align="center" prop="V1" />
|
||||||
<el-table-column label="V2" align="center" prop="V2" />
|
<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="V44" align="center" prop="V44" />
|
||||||
<el-table-column label="V45" align="center" prop="V45" />
|
<el-table-column label="V45" align="center" prop="V45" />
|
||||||
<el-table-column label="V46" align="center" prop="V46" />
|
<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">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
@ -186,6 +199,12 @@
|
|||||||
<el-form-item label="V46" prop="V46">
|
<el-form-item label="V46" prop="V46">
|
||||||
<el-input v-model="form.V46" placeholder="请输入35E链板" />
|
<el-input v-model="form.V46" placeholder="请输入35E链板" />
|
||||||
</el-form-item>
|
</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>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||||
@ -251,6 +270,8 @@ export default {
|
|||||||
V44: undefined,
|
V44: undefined,
|
||||||
V45: undefined,
|
V45: undefined,
|
||||||
V46: undefined,
|
V46: undefined,
|
||||||
|
V47: undefined,
|
||||||
|
V48: undefined,
|
||||||
},
|
},
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {},
|
||||||
@ -265,75 +286,11 @@ export default {
|
|||||||
itemType: [
|
itemType: [
|
||||||
{ required: true, message: "类型不能为空", trigger: "change" }
|
{ required: true, message: "类型不能为空", trigger: "change" }
|
||||||
],
|
],
|
||||||
axialType: [
|
|
||||||
{ required: true, message: "轴向不能为空", trigger: "change" }
|
|
||||||
],
|
|
||||||
boxType: [
|
boxType: [
|
||||||
{ required: true, message: "箱体不能为空", trigger: "change" }
|
{ 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,
|
V44: undefined,
|
||||||
V45: undefined,
|
V45: undefined,
|
||||||
V46: undefined,
|
V46: undefined,
|
||||||
|
V47: undefined,
|
||||||
|
V48: undefined,
|
||||||
createTime: undefined,
|
createTime: undefined,
|
||||||
updateTime: undefined,
|
updateTime: undefined,
|
||||||
createBy: 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