金蝶工序计划

This commit is contained in:
tzy 2026-04-12 10:20:24 +08:00
parent 44e8afaacb
commit 1a454695ed
16 changed files with 5186 additions and 0 deletions

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询工序计划明细列表
export function listOperationPlanningDetail(query) {
return request({
url: '/system/operationPlanningDetail/list',
method: 'get',
params: query
})
}
// 查询工序计划明细详细
export function getOperationPlanningDetail(id) {
return request({
url: '/system/operationPlanningDetail/' + id,
method: 'get'
})
}
// 新增工序计划明细
export function addOperationPlanningDetail(data) {
return request({
url: '/system/operationPlanningDetail',
method: 'post',
data: data
})
}
// 修改工序计划明细
export function updateOperationPlanningDetail(data) {
return request({
url: '/system/operationPlanningDetail',
method: 'put',
data: data
})
}
// 删除工序计划明细
export function delOperationPlanningDetail(id) {
return request({
url: '/system/operationPlanningDetail/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,52 @@
import request from '@/utils/request'
// 查询工序计划主列表
export function listOperationPlanningMain(query) {
return request({
url: '/system/operationPlanningMain/list',
method: 'get',
params: query
})
}
// 查询工序计划主详细
export function getOperationPlanningMain(id) {
return request({
url: '/system/operationPlanningMain/' + id,
method: 'get'
})
}
// 新增工序计划主
export function addOperationPlanningMain(data) {
return request({
url: '/system/operationPlanningMain',
method: 'post',
data: data
})
}
// 修改工序计划主
export function updateOperationPlanningMain(data) {
return request({
url: '/system/operationPlanningMain',
method: 'put',
data: data
})
}
// 删除工序计划主
export function delOperationPlanningMain(id) {
return request({
url: '/system/operationPlanningMain/' + id,
method: 'delete'
})
}
export function cascadeListOperationPlanningMain(query) {
return request({
url: '/system/operationPlanningMain/cascadeList',
method: 'get',
params: query
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询125R设备规格参数列表
export function listSpec125r(query) {
return request({
url: '/system/spec125r/list',
method: 'get',
params: query
})
}
// 查询125R设备规格参数详细
export function getSpec125r(id) {
return request({
url: '/system/spec125r/' + id,
method: 'get'
})
}
// 新增125R设备规格参数
export function addSpec125r(data) {
return request({
url: '/system/spec125r',
method: 'post',
data: data
})
}
// 修改125R设备规格参数
export function updateSpec125r(data) {
return request({
url: '/system/spec125r',
method: 'put',
data: data
})
}
// 删除125R设备规格参数
export function delSpec125r(id) {
return request({
url: '/system/spec125r/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询150R设备规格参数列表
export function listSpec150r(query) {
return request({
url: '/system/spec150r/list',
method: 'get',
params: query
})
}
// 查询150R设备规格参数详细
export function getSpec150r(id) {
return request({
url: '/system/spec150r/' + id,
method: 'get'
})
}
// 新增150R设备规格参数
export function addSpec150r(data) {
return request({
url: '/system/spec150r',
method: 'post',
data: data
})
}
// 修改150R设备规格参数
export function updateSpec150r(data) {
return request({
url: '/system/spec150r',
method: 'put',
data: data
})
}
// 删除150R设备规格参数
export function delSpec150r(id) {
return request({
url: '/system/spec150r/' + id,
method: 'delete'
})
}

44
src/api/system/spec30d.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询device_spec_30D 列表
export function listSpec30d(query) {
return request({
url: '/system/spec30d/list',
method: 'get',
params: query
})
}
// 查询device_spec_30D 详细
export function getSpec30d(id) {
return request({
url: '/system/spec30d/' + id,
method: 'get'
})
}
// 新增device_spec_30D
export function addSpec30d(data) {
return request({
url: '/system/spec30d',
method: 'post',
data: data
})
}
// 修改device_spec_30D
export function updateSpec30d(data) {
return request({
url: '/system/spec30d',
method: 'put',
data: data
})
}
// 删除device_spec_30D
export function delSpec30d(id) {
return request({
url: '/system/spec30d/' + id,
method: 'delete'
})
}

44
src/api/system/spec30s.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询30S设备规格参数列表
export function listSpec30s(query) {
return request({
url: '/system/spec30s/list',
method: 'get',
params: query
})
}
// 查询30S设备规格参数详细
export function getSpec30s(id) {
return request({
url: '/system/spec30s/' + id,
method: 'get'
})
}
// 新增30S设备规格参数
export function addSpec30s(data) {
return request({
url: '/system/spec30s',
method: 'post',
data: data
})
}
// 修改30S设备规格参数
export function updateSpec30s(data) {
return request({
url: '/system/spec30s',
method: 'put',
data: data
})
}
// 删除30S设备规格参数
export function delSpec30s(id) {
return request({
url: '/system/spec30s/' + id,
method: 'delete'
})
}

44
src/api/system/spec60r.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询60R设备规格参数列表
export function listSpec60r(query) {
return request({
url: '/system/spec60r/list',
method: 'get',
params: query
})
}
// 查询60R设备规格参数详细
export function getSpec60r(id) {
return request({
url: '/system/spec60r/' + id,
method: 'get'
})
}
// 新增60R设备规格参数
export function addSpec60r(data) {
return request({
url: '/system/spec60r',
method: 'post',
data: data
})
}
// 修改60R设备规格参数
export function updateSpec60r(data) {
return request({
url: '/system/spec60r',
method: 'put',
data: data
})
}
// 删除60R设备规格参数
export function delSpec60r(id) {
return request({
url: '/system/spec60r/' + id,
method: 'delete'
})
}

44
src/api/system/spec80r.js Normal file
View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询80R设备规格参数列表
export function listSpec80r(query) {
return request({
url: '/system/spec80r/list',
method: 'get',
params: query
})
}
// 查询80R设备规格参数详细
export function getSpec80r(id) {
return request({
url: '/system/spec80r/' + id,
method: 'get'
})
}
// 新增80R设备规格参数
export function addSpec80r(data) {
return request({
url: '/system/spec80r',
method: 'post',
data: data
})
}
// 修改80R设备规格参数
export function updateSpec80r(data) {
return request({
url: '/system/spec80r',
method: 'put',
data: data
})
}
// 删除80R设备规格参数
export function delSpec80r(id) {
return request({
url: '/system/spec80r/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,616 @@
<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="关联主表ID(sfc_operation_planning_main.id)" prop="mainId">
<el-input
v-model="queryParams.mainId"
placeholder="请输入关联主表ID(sfc_operation_planning_main.id)"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="主表FID冗余" prop="fid">
<el-input
v-model="queryParams.fid"
placeholder="请输入主表FID冗余"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="单据体内码(K3明细内码)" prop="entityEntryId">
<el-input
v-model="queryParams.entityEntryId"
placeholder="请输入单据体内码(K3明细内码)"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工序号" prop="operNumber">
<el-input
v-model="queryParams.operNumber"
placeholder="请输入工序号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工序数量" prop="operQty">
<el-input
v-model="queryParams.operQty"
placeholder="请输入工序数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="合格数量" prop="qualifiedQty">
<el-input
v-model="queryParams.qualifiedQty"
placeholder="请输入合格数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="转出数量" prop="transOutQty">
<el-input
v-model="queryParams.transOutQty"
placeholder="请输入转出数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="废品数量" prop="unqualifiedQty">
<el-input
v-model="queryParams.unqualifiedQty"
placeholder="请输入废品数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="损耗数量" prop="wastageQty">
<el-input
v-model="queryParams.wastageQty"
placeholder="请输入损耗数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="转入数量" prop="transInQty">
<el-input
v-model="queryParams.transInQty"
placeholder="请输入转入数量"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="加工车间" prop="departmentName">
<el-input
v-model="queryParams.departmentName"
placeholder="请输入加工车间"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工作中心" prop="workCenterName">
<el-input
v-model="queryParams.workCenterName"
placeholder="请输入工作中心"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="作业" prop="processName">
<el-input
v-model="queryParams.processName"
placeholder="请输入作业"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="作业人员" prop="operator">
<el-input
v-model="queryParams.operator"
placeholder="请输入作业人员"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工序序列-计划开始时间" prop="seqPlanStartTime">
<el-date-picker clearable
v-model="queryParams.seqPlanStartTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择工序序列-计划开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="工序序列-计划完成时间" prop="seqPlanFinishTime">
<el-date-picker clearable
v-model="queryParams.seqPlanFinishTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择工序序列-计划完成时间">
</el-date-picker>
</el-form-item>
<el-form-item label="工序控制码" prop="optCtrlCode">
<el-input
v-model="queryParams.optCtrlCode"
placeholder="请输入工序控制码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="关键工序" prop="keyOper">
<el-input
v-model="queryParams.keyOper"
placeholder="请输入关键工序"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="活动一名称" prop="activityName">
<el-input
v-model="queryParams.activityName"
placeholder="请输入活动一名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工序说明" prop="operDescription">
<el-input
v-model="queryParams.operDescription"
placeholder="请输入工序说明"
clearable
@keyup.enter.native="handleQuery"
/>
</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:operationPlanningDetail: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:operationPlanningDetail: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:operationPlanningDetail: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:operationPlanningDetail:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="operationPlanningDetailList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键ID" align="center" prop="id" v-if="true"/>
<el-table-column label="关联主表ID(sfc_operation_planning_main.id)" align="center" prop="mainId" />
<el-table-column label="主表FID冗余" align="center" prop="fid" />
<el-table-column label="单据体内码(K3明细内码)" align="center" prop="entityEntryId" />
<el-table-column label="工序号" align="center" prop="operNumber" />
<el-table-column label="工序数量" align="center" prop="operQty" />
<el-table-column label="合格数量" align="center" prop="qualifiedQty" />
<el-table-column label="转出数量" align="center" prop="transOutQty" />
<el-table-column label="废品数量" align="center" prop="unqualifiedQty" />
<el-table-column label="损耗数量" align="center" prop="wastageQty" />
<el-table-column label="转入数量" align="center" prop="transInQty" />
<el-table-column label="加工车间" align="center" prop="departmentName" />
<el-table-column label="工作中心" align="center" prop="workCenterName" />
<el-table-column label="作业" align="center" prop="processName" />
<el-table-column label="作业人员" align="center" prop="operator" />
<el-table-column label="状态" align="center" prop="operStatus" />
<el-table-column label="工序序列-计划开始时间" align="center" prop="seqPlanStartTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.seqPlanStartTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="工序序列-计划完成时间" align="center" prop="seqPlanFinishTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.seqPlanFinishTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="工序控制码" align="center" prop="optCtrlCode" />
<el-table-column label="关键工序" align="center" prop="keyOper" />
<el-table-column label="活动一名称" align="center" prop="activityName" />
<el-table-column label="工序说明" align="center" prop="operDescription" />
<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:operationPlanningDetail:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:operationPlanningDetail: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"
/>
<!-- 添加或修改工序计划明细对话框 -->
<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="关联主表ID(sfc_operation_planning_main.id)" prop="mainId">
<el-input v-model="form.mainId" placeholder="请输入关联主表ID(sfc_operation_planning_main.id)" />
</el-form-item>
<el-form-item label="主表FID冗余" prop="fid">
<el-input v-model="form.fid" placeholder="请输入主表FID冗余" />
</el-form-item>
<el-form-item label="单据体内码(K3明细内码)" prop="entityEntryId">
<el-input v-model="form.entityEntryId" placeholder="请输入单据体内码(K3明细内码)" />
</el-form-item>
<el-form-item label="工序号" prop="operNumber">
<el-input v-model="form.operNumber" placeholder="请输入工序号" />
</el-form-item>
<el-form-item label="工序数量" prop="operQty">
<el-input v-model="form.operQty" placeholder="请输入工序数量" />
</el-form-item>
<el-form-item label="合格数量" prop="qualifiedQty">
<el-input v-model="form.qualifiedQty" placeholder="请输入合格数量" />
</el-form-item>
<el-form-item label="转出数量" prop="transOutQty">
<el-input v-model="form.transOutQty" placeholder="请输入转出数量" />
</el-form-item>
<el-form-item label="废品数量" prop="unqualifiedQty">
<el-input v-model="form.unqualifiedQty" placeholder="请输入废品数量" />
</el-form-item>
<el-form-item label="损耗数量" prop="wastageQty">
<el-input v-model="form.wastageQty" placeholder="请输入损耗数量" />
</el-form-item>
<el-form-item label="转入数量" prop="transInQty">
<el-input v-model="form.transInQty" placeholder="请输入转入数量" />
</el-form-item>
<el-form-item label="加工车间" prop="departmentName">
<el-input v-model="form.departmentName" placeholder="请输入加工车间" />
</el-form-item>
<el-form-item label="工作中心" prop="workCenterName">
<el-input v-model="form.workCenterName" placeholder="请输入工作中心" />
</el-form-item>
<el-form-item label="作业" prop="processName">
<el-input v-model="form.processName" placeholder="请输入作业" />
</el-form-item>
<el-form-item label="作业人员" prop="operator">
<el-input v-model="form.operator" placeholder="请输入作业人员" />
</el-form-item>
<el-form-item label="工序序列-计划开始时间" prop="seqPlanStartTime">
<el-date-picker clearable
v-model="form.seqPlanStartTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择工序序列-计划开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="工序序列-计划完成时间" prop="seqPlanFinishTime">
<el-date-picker clearable
v-model="form.seqPlanFinishTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择工序序列-计划完成时间">
</el-date-picker>
</el-form-item>
<el-form-item label="工序控制码" prop="optCtrlCode">
<el-input v-model="form.optCtrlCode" placeholder="请输入工序控制码" />
</el-form-item>
<el-form-item label="关键工序" prop="keyOper">
<el-input v-model="form.keyOper" placeholder="请输入关键工序" />
</el-form-item>
<el-form-item label="活动一名称" prop="activityName">
<el-input v-model="form.activityName" placeholder="请输入活动一名称" />
</el-form-item>
<el-form-item label="工序说明" prop="operDescription">
<el-input v-model="form.operDescription" type="textarea" 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 { listOperationPlanningDetail, getOperationPlanningDetail, delOperationPlanningDetail, addOperationPlanningDetail, updateOperationPlanningDetail } from "@/api/system/operationPlanningDetail";
export default {
name: "OperationPlanningDetail",
data() {
return {
// loading
buttonLoading: false,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
operationPlanningDetailList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
mainId: undefined,
fid: undefined,
entityEntryId: undefined,
operNumber: undefined,
operQty: undefined,
qualifiedQty: undefined,
transOutQty: undefined,
unqualifiedQty: undefined,
wastageQty: undefined,
transInQty: undefined,
departmentName: undefined,
workCenterName: undefined,
processName: undefined,
operator: undefined,
operStatus: undefined,
seqPlanStartTime: undefined,
seqPlanFinishTime: undefined,
optCtrlCode: undefined,
keyOper: undefined,
activityName: undefined,
operDescription: undefined,
},
//
form: {},
//
rules: {
id: [
{ required: true, message: "主键ID不能为空", trigger: "blur" }
],
mainId: [
{ required: true, message: "关联主表ID(sfc_operation_planning_main.id)不能为空", trigger: "blur" }
],
fid: [
{ required: true, message: "主表FID冗余不能为空", trigger: "blur" }
],
entityEntryId: [
{ required: true, message: "单据体内码(K3明细内码)不能为空", trigger: "blur" }
],
operNumber: [
{ required: true, message: "工序号不能为空", trigger: "blur" }
],
operQty: [
{ required: true, message: "工序数量不能为空", trigger: "blur" }
],
qualifiedQty: [
{ required: true, message: "合格数量不能为空", trigger: "blur" }
],
transOutQty: [
{ required: true, message: "转出数量不能为空", trigger: "blur" }
],
unqualifiedQty: [
{ required: true, message: "废品数量不能为空", trigger: "blur" }
],
wastageQty: [
{ required: true, message: "损耗数量不能为空", trigger: "blur" }
],
transInQty: [
{ required: true, message: "转入数量不能为空", trigger: "blur" }
],
departmentName: [
{ required: true, message: "加工车间不能为空", trigger: "blur" }
],
workCenterName: [
{ required: true, message: "工作中心不能为空", trigger: "blur" }
],
processName: [
{ required: true, message: "作业不能为空", trigger: "blur" }
],
operator: [
{ required: true, message: "作业人员不能为空", trigger: "blur" }
],
operStatus: [
{ required: true, message: "状态不能为空", trigger: "change" }
],
seqPlanStartTime: [
{ required: true, message: "工序序列-计划开始时间不能为空", trigger: "blur" }
],
seqPlanFinishTime: [
{ required: true, message: "工序序列-计划完成时间不能为空", trigger: "blur" }
],
optCtrlCode: [
{ required: true, message: "工序控制码不能为空", trigger: "blur" }
],
keyOper: [
{ required: true, message: "关键工序不能为空", trigger: "blur" }
],
activityName: [
{ required: true, message: "活动一名称不能为空", trigger: "blur" }
],
operDescription: [
{ required: true, message: "工序说明不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询工序计划明细列表 */
getList() {
this.loading = true;
listOperationPlanningDetail(this.queryParams).then(response => {
this.operationPlanningDetailList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: undefined,
mainId: undefined,
fid: undefined,
entityEntryId: undefined,
operNumber: undefined,
operQty: undefined,
qualifiedQty: undefined,
transOutQty: undefined,
unqualifiedQty: undefined,
wastageQty: undefined,
transInQty: undefined,
departmentName: undefined,
workCenterName: undefined,
processName: undefined,
operator: undefined,
operStatus: undefined,
seqPlanStartTime: undefined,
seqPlanFinishTime: undefined,
optCtrlCode: undefined,
keyOper: undefined,
activityName: undefined,
operDescription: 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 = "添加工序计划明细";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids
getOperationPlanningDetail(id).then(response => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改工序计划明细";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateOperationPlanningDetail(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} else {
addOperationPlanningDetail(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('是否确认删除工序计划明细编号为"' + ids + '"的数据项?').then(() => {
this.loading = true;
return delOperationPlanningDetail(ids);
}).then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/operationPlanningDetail/export', {
...this.queryParams
}, `operationPlanningDetail_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,886 @@
<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="billNo">
<el-input
v-model="queryParams.billNo"
placeholder="请输入单据编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生产订单编号" prop="moNumber">
<el-input
v-model="queryParams.moNumber"
placeholder="请输入生产订单编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生产令号" prop="hbytSclh">
<el-input
v-model="queryParams.hbytSclh"
placeholder="请输入生产令号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="产品编码" prop="productCode">
<el-input
v-model="queryParams.productCode"
placeholder="请输入产品编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="产品名称" prop="productName">
<el-input
v-model="queryParams.productName"
placeholder="请输入产品名称"
clearable
@keyup.enter.native="handleQuery"
/>
</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:operationPlanningMain: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:operationPlanningMain: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:operationPlanningMain: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:operationPlanningMain:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<div v-if="selectedRows.length" class="selection-bar">
<span class="selection-bar__text">已选{{ selectedRows.length }}</span>
<span class="selection-bar__clear" @click="clearSelection">取消选择</span>
</div>
<el-table
ref="mainTable"
v-loading="loading"
:data="operationPlanningMainList"
:row-key="rowKey"
:row-class-name="rowClassName"
:header-cell-style="headerCellStyle"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="46" align="center" />
<el-table-column type="index" label="序号" width="60" align="center" />
<el-table-column label="生产令号" min-width="160">
<template slot-scope="scope">
<div class="cell-main">
<div class="cell-title">{{ scope.row.batchNo || scope.row.hbytSclh || '-' }}</div>
</div>
</template>
</el-table-column>
<el-table-column label="类型" width="90" align="center">
<template slot-scope="scope">
<el-tag :type="typeTagType(scope.row)" size="mini" effect="plain">{{ typeText(scope.row) }}</el-tag>
</template>
</el-table-column>
<el-table-column label="产品主数据" min-width="220">
<template slot-scope="scope">
<div class="cell-main">
<div class="cell-title">{{ scope.row.productCode }}<span v-if="scope.row.productName"> | {{ scope.row.productName }}</span></div>
<div class="cell-sub">{{ scope.row.proSpecification || '-' }}</div>
</div>
</template>
</el-table-column>
<el-table-column label="产线" min-width="180">
<template slot-scope="scope">
<div class="cell-main">
<div class="cell-title">{{ scope.row.lineText || '-' }}</div>
</div>
</template>
</el-table-column>
<el-table-column label="开始时间" width="120" align="center">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.planStartTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="结束时间" width="120" align="center">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.planFinishTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="状态" width="100" align="center">
<template slot-scope="scope">
<el-tag size="mini" :class="statusTagClass(scope.row)">{{ statusText(scope.row) }}</el-tag>
</template>
</el-table-column>
<el-table-column label="工序进度" min-width="360">
<template slot-scope="scope">
<div class="proc">
<template v-if="!(scope.row.processSteps || []).length">
<span class="cell-sub">-</span>
</template>
<template v-else-if="(scope.row.processSteps || []).length <= 2">
<div class="proc-mini">
<div v-for="(p, idx) in scope.row.processSteps" :key="idx" class="proc-mini-item" @click="openProcessDetail(scope.row, p)">
<el-progress
type="circle"
:percentage="p.percent"
:width="30"
:stroke-width="4"
:color="p.done ? '#16c784' : '#dcdfe6'"
/>
<div class="proc-mini-name">{{ p.processName || '-' }}</div>
</div>
</div>
</template>
<template v-else>
<div class="proc-steps">
<div v-for="(p, idx) in scope.row.processSteps" :key="idx" class="proc-step">
<div class="proc-step-top">
<span class="proc-node" :class="{ done: p.done, clickable: !!p.raw }" @click="openProcessDetail(scope.row, p)">
<i v-if="p.done" class="el-icon-check"></i>
</span>
<span v-if="idx < scope.row.processSteps.length - 1" class="proc-line" :class="{ done: p.done }"></span>
</div>
<div class="proc-step-name">{{ p.processName || '-' }}</div>
</div>
</div>
</template>
</div>
</template>
</el-table-column>
<el-table-column label="数量" width="110" align="center">
<template slot-scope="scope">
<span>{{ scope.row.overallPlanQty }}</span>
</template>
</el-table-column>
<el-table-column label="已完成数量" width="110" align="center">
<template slot-scope="scope">
<span>{{ scope.row.overallOkQty }}</span>
</template>
</el-table-column>
<el-table-column label="进度" width="140" align="center">
<template slot-scope="scope">
<div class="progress-cell">
<el-progress :percentage="scope.row.overallProgress" :stroke-width="8" :show-text="false" :color="'#16c784'" />
<span class="progress-text">{{ scope.row.overallProgress }}%</span>
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="170" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleDispatch(scope.row)">下发</el-button>
<el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['system:operationPlanningMain:edit']">编辑</el-button>
<el-dropdown @command="cmd => handleMoreCommand(cmd, scope.row)">
<span class="more-trigger">更多<i class="el-icon-arrow-down el-icon--right"></i></span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item command="viewProcess">查看工序</el-dropdown-item>
<el-dropdown-item command="delete" divided>删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<el-dialog :title="processDialogTitle" :visible.sync="processDialogOpen" width="1200px" top="6vh" append-to-body>
<div v-if="processDialogMeta" class="cell-sub" style="margin-bottom: 10px;">
{{ processDialogMeta }}
</div>
<el-table
ref="processTable"
:data="processDialogList"
size="mini"
border
highlight-current-row
:row-key="p => p.entityEntryId || p.operNo"
>
<el-table-column label="工序号" prop="operNo" width="80" align="center" />
<el-table-column label="工序名称" prop="processName" min-width="140" />
<el-table-column label="工作中心" prop="workCenter" min-width="120" />
<el-table-column label="计划数量" prop="planQty" width="90" align="center" />
<el-table-column label="转入数量" prop="inQty" width="90" align="center" />
<el-table-column label="合格数量" prop="okQty" width="90" align="center" />
<el-table-column label="废品数量" prop="ngQty" width="90" align="center" />
<el-table-column label="状态" prop="status" width="100" align="center" />
<el-table-column label="转出数量" prop="transOutQty" width="90" align="center" />
<el-table-column label="损耗数量" prop="wastageQty" width="90" align="center" />
<el-table-column label="加工车间" prop="department" min-width="120" />
<el-table-column label="作业人员" prop="operator" min-width="100" />
<el-table-column label="计划开始" prop="seqPlanStartTime" width="160" />
<el-table-column label="计划完成" prop="seqPlanFinishTime" width="160" />
<el-table-column label="控制码" prop="optCtrlCode" min-width="120" />
<el-table-column label="关键工序" prop="keyOper" width="90" align="center" />
<el-table-column label="活动一" prop="activity1Name" min-width="120" />
<el-table-column label="工序说明" prop="operDescription" min-width="140" />
<el-table-column label="单据体内码" prop="entityEntryId" width="120" align="center" />
</el-table>
</el-dialog>
<!-- 添加或修改工序计划主对话框 -->
<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="FID(K3单据内码)" prop="fid">
<el-input v-model="form.fid" placeholder="请输入FID(K3单据内码)" />
</el-form-item>
<el-form-item label="单据编号" prop="billNo">
<el-input v-model="form.billNo" placeholder="请输入单据编号" />
</el-form-item>
<el-form-item label="生产订单编号" prop="moNumber">
<el-input v-model="form.moNumber" placeholder="请输入生产订单编号" />
</el-form-item>
<el-form-item label="生产令号" prop="hbytSclh">
<el-input v-model="form.hbytSclh" placeholder="请输入生产令号" />
</el-form-item>
<el-form-item label="产品编码" prop="productCode">
<el-input v-model="form.productCode" placeholder="请输入产品编码" />
</el-form-item>
<el-form-item label="产品名称" prop="productName">
<el-input v-model="form.productName" placeholder="请输入产品名称" />
</el-form-item>
<el-form-item label="规格型号" prop="proSpecification">
<el-input v-model="form.proSpecification" placeholder="请输入规格型号" />
</el-form-item>
<el-form-item label="计划开始时间" prop="planStartTime">
<el-date-picker clearable
v-model="form.planStartTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择计划开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="计划结束时间" prop="planFinishTime">
<el-date-picker clearable
v-model="form.planFinishTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择计划结束时间">
</el-date-picker>
</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 { listOperationPlanningMain, cascadeListOperationPlanningMain, getOperationPlanningMain, delOperationPlanningMain, addOperationPlanningMain, updateOperationPlanningMain } from "@/api/system/operationPlanningMain";
export default {
name: "OperationPlanningMain",
data() {
return {
// loading
buttonLoading: false,
//
loading: true,
//
ids: [],
selectedRows: [],
processDialogOpen: false,
processDialogTitle: "工序详情",
processDialogMeta: "",
processDialogList: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
operationPlanningMainList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
fid: undefined,
billNo: undefined,
moNumber: undefined,
hbytSclh: undefined,
productCode: undefined,
productName: undefined,
proSpecification: undefined,
planStartTime: undefined,
planFinishTime: undefined,
},
//
form: {},
//
rules: {
id: [
{ required: true, message: "主键ID不能为空", trigger: "blur" }
],
fid: [
{ required: true, message: "FID(K3单据内码)不能为空", trigger: "blur" }
],
billNo: [
{ required: true, message: "单据编号不能为空", trigger: "blur" }
],
moNumber: [
{ required: true, message: "生产订单编号不能为空", trigger: "blur" }
],
hbytSclh: [
{ required: true, message: "生产令号不能为空", trigger: "blur" }
],
productCode: [
{ required: true, message: "产品编码不能为空", trigger: "blur" }
],
productName: [
{ required: true, message: "产品名称不能为空", trigger: "blur" }
],
proSpecification: [
{ required: true, message: "规格型号不能为空", trigger: "blur" }
],
planStartTime: [
{ required: true, message: "计划开始时间不能为空", trigger: "blur" }
],
planFinishTime: [
{ required: true, message: "计划结束时间不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询工序计划主列表 */
getList() {
this.loading = true;
cascadeListOperationPlanningMain(this.queryParams)
.catch(() => listOperationPlanningMain(this.queryParams))
.then(response => {
const { rows, total, hasTotal } = this.normalizeListResponse(response);
this.operationPlanningMainList = (rows || []).map(row => this.decorateRow(row));
this.total = hasTotal ? total : this.inferTotalFromPage(rows);
})
.finally(() => {
this.loading = false;
});
},
normalizeListResponse(response) {
if (!response) return { rows: [], total: 0, hasTotal: false };
if (Array.isArray(response.rows)) {
return { rows: response.rows, total: Number(response.total) || response.rows.length, hasTotal: response.total != null };
}
if (response.data && Array.isArray(response.data.records)) {
return { rows: response.data.records, total: Number(response.data.total) || response.data.records.length, hasTotal: response.data.total != null };
}
if (response.data && Array.isArray(response.data.list)) {
return { rows: response.data.list, total: Number(response.data.total) || response.data.list.length, hasTotal: response.data.total != null };
}
if (Array.isArray(response.data)) {
return { rows: response.data, total: Number(response.total) || response.data.length, hasTotal: response.total != null };
}
if (response.data && Array.isArray(response.data.rows)) {
return { rows: response.data.rows, total: Number(response.data.total) || response.data.rows.length, hasTotal: response.data.total != null };
}
if (response.data && response.data.data && Array.isArray(response.data.data.records)) {
return { rows: response.data.data.records, total: Number(response.data.data.total) || response.data.data.records.length, hasTotal: response.data.data.total != null };
}
if (response.data && response.data.data && Array.isArray(response.data.data.rows)) {
return { rows: response.data.data.rows, total: Number(response.data.data.total) || response.data.data.rows.length, hasTotal: response.data.data.total != null };
}
return { rows: [], total: 0, hasTotal: false };
},
inferTotalFromPage(rows) {
const pageNum = Number(this.queryParams.pageNum) || 1;
const pageSize = Number(this.queryParams.pageSize) || 10;
const len = Array.isArray(rows) ? rows.length : 0;
if (len >= pageSize) return pageNum * pageSize + 1;
return (pageNum - 1) * pageSize + len;
},
decorateRow(row) {
const processList = Array.isArray(row.processList)
? [...row.processList].sort((a, b) => (Number(a.operNo) || 0) - (Number(b.operNo) || 0))
: [];
const finalProcess = processList.length ? processList[processList.length - 1] : undefined;
const overallPlanQty = this.normalizeNumber(
(finalProcess && finalProcess.planQty) ?? (processList.find(p => p.planQty != null) || {}).planQty
);
const overallOkQty = this.normalizeNumber((finalProcess && finalProcess.okQty) ?? 0);
const overallProgress = overallPlanQty > 0 ? Math.min(100, Math.round((overallOkQty / overallPlanQty) * 100)) : 0;
const processSteps = processList.map(p => {
const planQty = this.normalizeNumber(p.planQty || overallPlanQty);
const okQty = this.normalizeNumber(p.okQty);
const percent = planQty > 0 ? Math.min(100, Math.round((okQty / planQty) * 100)) : 0;
const done = this.isProcessDone(p, planQty, okQty);
return {
operNo: p.operNo,
entityEntryId: p.entityEntryId,
processName: p.processName,
percent,
done,
raw: p
};
});
const displaySteps = processSteps.length > 6
? [...processSteps.slice(0, 6), { operNo: null, processName: '…', percent: 0, done: false, raw: null }]
: processSteps;
const lineText = this.buildLineText(processList);
return {
...row,
processList,
processSteps: displaySteps,
overallPlanQty,
overallOkQty,
overallProgress,
lineText
};
},
isProcessDone(process, planQty, okQty) {
const status = (process && process.status) || '';
if (String(status).includes('完工')) return true;
if (planQty > 0 && okQty >= planQty) return true;
return false;
},
buildLineText(processList) {
const p0 = Array.isArray(processList) && processList.length ? processList[0] : undefined;
if (p0 && p0.workCenter) return p0.workCenter;
return '';
},
normalizeNumber(val) {
const n = Number(val);
return Number.isFinite(n) ? n : 0;
},
rowKey(row) {
return row && (row.id || row.fid || row.billNo || row.moNumber);
},
rowClassName({ row }) {
const key = this.rowKey(row);
const selectedKeys = new Set(this.selectedRows.map(r => this.rowKey(r)));
return selectedKeys.has(key) ? 'is-row-checked' : '';
},
headerCellStyle() {
return {
background: '#e8faf8',
color: '#303133',
fontWeight: 600
};
},
clearSelection() {
if (this.$refs.mainTable) this.$refs.mainTable.clearSelection();
this.selectedRows = [];
this.ids = [];
this.single = true;
this.multiple = true;
},
statusText(row) {
if (!row) return '-';
if (row.overallProgress >= 100) return '完工';
if (row.overallProgress > 0) return '已开工';
return '备料中';
},
statusTagClass(row) {
const text = this.statusText(row);
if (text === '完工' || text === '已开工') return 'tag-purple';
return 'tag-green';
},
typeText(row) {
return (row && row.typeText) || '正常';
},
typeTagType(row) {
const t = this.typeText(row);
if (t.includes('自建')) return 'warning';
return 'success';
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: undefined,
fid: undefined,
billNo: undefined,
moNumber: undefined,
hbytSclh: undefined,
productCode: undefined,
productName: undefined,
proSpecification: undefined,
planStartTime: undefined,
planFinishTime: 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.selectedRows = selection;
this.ids = selection.map(item => item.id).filter(v => v != null);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
handleDispatch(row) {
const code = (row && (row.billNo || row.moNumber)) || '';
this.$modal.msgSuccess(code ? `已下发:${code}` : '已下发');
},
handleMoreCommand(command, row) {
if (command === 'delete') {
this.handleDelete(row);
return;
}
if (command === 'viewProcess') {
this.openProcessDetail(row);
}
},
openProcessDetail(orderRow, step) {
const list = orderRow && Array.isArray(orderRow.processList) ? orderRow.processList : [];
const code = (orderRow && (orderRow.billNo || orderRow.moNumber)) || '';
const batchNo = (orderRow && (orderRow.batchNo || orderRow.hbytSclh)) || '';
this.processDialogTitle = code ? `工序详情 - ${code}` : '工序详情';
this.processDialogMeta = batchNo ? `生产令号:${batchNo}` : '';
this.processDialogList = list;
this.processDialogOpen = true;
this.$nextTick(() => {
if (!this.$refs.processTable || !step || !step.raw) return;
const target = this.processDialogList.find(p => p.entityEntryId === step.raw.entityEntryId)
|| this.processDialogList.find(p => p.operNo === step.operNo);
if (target) this.$refs.processTable.setCurrentRow(target);
});
},
formatProcessText(row) {
const list = (row && Array.isArray(row.processList) ? row.processList : []).map(p => {
const operNo = p.operNo != null ? String(p.operNo) : '-';
const name = p.processName || '-';
const status = p.status || '-';
const okQty = p.okQty != null ? String(p.okQty) : '-';
const planQty = p.planQty != null ? String(p.planQty) : '-';
return `${operNo} ${name} | ${status} | ${okQty}/${planQty}`;
});
return list.length ? list.join('\n') : '暂无工序数据';
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加工序计划主";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids
getOperationPlanningMain(id).then(response => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改工序计划主";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateOperationPlanningMain(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} else {
addOperationPlanningMain(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('是否确认删除工序计划主编号为"' + ids + '"的数据项?').then(() => {
this.loading = true;
return delOperationPlanningMain(ids);
}).then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/operationPlanningMain/export', {
...this.queryParams
}, `operationPlanningMain_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style scoped>
.selection-bar {
display: flex;
align-items: center;
height: 36px;
margin-bottom: 10px;
padding: 0 12px;
background: #e8faf8;
border: 1px solid #d6f5f0;
}
.selection-bar__text {
color: #303133;
font-size: 14px;
}
.selection-bar__clear {
margin-left: 12px;
color: #00b4ad;
cursor: pointer;
font-size: 14px;
}
.tag-green {
background: #16c784;
border-color: #16c784;
color: #ffffff;
}
.tag-purple {
background: #7c3aed;
border-color: #7c3aed;
color: #ffffff;
}
.cell-main {
line-height: 18px;
}
.cell-title {
color: #303133;
font-size: 13px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.cell-sub {
color: #909399;
font-size: 12px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.proc {
display: flex;
align-items: center;
min-height: 46px;
}
.proc-mini {
display: flex;
align-items: center;
gap: 10px;
}
.proc-mini-item {
display: flex;
flex-direction: column;
align-items: center;
width: 56px;
cursor: pointer;
}
::v-deep .proc-mini .el-progress-circle__text {
font-size: 16px;
font-weight: 600;
}
.proc-mini-name {
margin-top: 4px;
font-size: 12px;
color: #303133;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 56px;
text-align: center;
}
.proc-steps {
display: flex;
align-items: flex-start;
}
.proc-step {
display: flex;
flex-direction: column;
align-items: center;
}
.proc-step-top {
display: flex;
align-items: center;
}
.proc-node {
width: 18px;
height: 18px;
border-radius: 50%;
border: 2px solid #dcdfe6;
display: inline-flex;
align-items: center;
justify-content: center;
color: #ffffff;
background: #ffffff;
}
.proc-node.done {
width: 28px;
height: 28px;
border-color: #16c784;
color: #16c784;
}
.proc-node.clickable {
cursor: pointer;
}
.proc-node.done i {
font-size: 16px;
}
.proc-line {
width: 26px;
height: 2px;
background: #dcdfe6;
margin: 0 6px;
}
.proc-line.done {
background: #16c784;
}
.proc-step-name {
margin-top: 6px;
max-width: 84px;
font-size: 12px;
color: #303133;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: center;
}
.progress-cell {
display: flex;
align-items: center;
}
.progress-text {
margin-left: 8px;
color: #606266;
font-size: 12px;
}
.more-trigger {
cursor: pointer;
color: #00b4ad;
font-size: 12px;
}
.is-row-checked td {
background: #e8faf8 !important;
}
</style>

View File

@ -0,0 +1,627 @@
<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>
<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:spec125r: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:spec125r: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:spec125r: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:spec125r:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" border="true" :data="spec125rList" @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="g3" align="center" prop="g3" />
<el-table-column label="g4" align="center" prop="g4" />
<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="v16" align="center" prop="v16" />
<el-table-column label="v17" align="center" prop="v17" />
<el-table-column label="v18" align="center" prop="v18" />
<el-table-column label="v19" align="center" prop="v19" />
<el-table-column label="v20" align="center" prop="v20" />
<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:spec125r:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:spec125r: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"
/>
<!-- 添加或修改125R设备规格参数对话框 -->
<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="请输入v1" />
</el-form-item>
<el-form-item label="v2" prop="v2">
<el-input v-model="form.v2" placeholder="请输入v2" />
</el-form-item>
<el-form-item label="v3" prop="v3">
<el-input v-model="form.v3" placeholder="请输入v3" />
</el-form-item>
<el-form-item label="v4" prop="v4">
<el-input v-model="form.v4" placeholder="请输入v4" />
</el-form-item>
<el-form-item label="v5" prop="v5">
<el-input v-model="form.v5" placeholder="请输入v5" />
</el-form-item>
<el-form-item label="v6" prop="v6">
<el-input v-model="form.v6" placeholder="请输入v6" />
</el-form-item>
<el-form-item label="v7" prop="v7">
<el-input v-model="form.v7" placeholder="请输入v7" />
</el-form-item>
<el-form-item label="v8" prop="v8">
<el-input v-model="form.v8" placeholder="请输入v8" />
</el-form-item>
<el-form-item label="g1" prop="g1">
<el-input v-model="form.g1" placeholder="请输入g1" />
</el-form-item>
<el-form-item label="v9" prop="v9">
<el-input v-model="form.v9" placeholder="请输入v9" />
</el-form-item>
<el-form-item label="g2" prop="g2">
<el-input v-model="form.g2" placeholder="请输入g2" />
</el-form-item>
<el-form-item label="g3" prop="g3">
<el-input v-model="form.g3" placeholder="请输入g3" />
</el-form-item>
<el-form-item label="g4" prop="g4">
<el-input v-model="form.g4" placeholder="请输入g4" />
</el-form-item>
<el-form-item label="v10" prop="v10">
<el-input v-model="form.v10" placeholder="请输入v10" />
</el-form-item>
<el-form-item label="g5" prop="g5">
<el-input v-model="form.g5" placeholder="请输入g5" />
</el-form-item>
<el-form-item label="v11" prop="v11">
<el-input v-model="form.v11" placeholder="请输入v11" />
</el-form-item>
<el-form-item label="v12" prop="v12">
<el-input v-model="form.v12" placeholder="请输入v12" />
</el-form-item>
<el-form-item label="g6" prop="g6">
<el-input v-model="form.g6" placeholder="请输入g6" />
</el-form-item>
<el-form-item label="v13" prop="v13">
<el-input v-model="form.v13" placeholder="请输入v13" />
</el-form-item>
<el-form-item label="v14" prop="v14">
<el-input v-model="form.v14" placeholder="请输入v14" />
</el-form-item>
<el-form-item label="g7" prop="g7">
<el-input v-model="form.g7" placeholder="请输入g7" />
</el-form-item>
<el-form-item label="v15" prop="v15">
<el-input v-model="form.v15" placeholder="请输入v15" />
</el-form-item>
<el-form-item label="v16" prop="v16">
<el-input v-model="form.v16" placeholder="请输入v16" />
</el-form-item>
<el-form-item label="v17" prop="v17">
<el-input v-model="form.v17" placeholder="请输入v17" />
</el-form-item>
<el-form-item label="v18" prop="v18">
<el-input v-model="form.v18" placeholder="请输入v18" />
</el-form-item>
<el-form-item label="v19" prop="v19">
<el-input v-model="form.v19" placeholder="请输入v19" />
</el-form-item>
<el-form-item label="v20" prop="v20">
<el-input v-model="form.v20" placeholder="请输入v20" />
</el-form-item>
<el-form-item label="v41" prop="v41">
<el-input v-model="form.v41" placeholder="请输入v41" />
</el-form-item>
<el-form-item label="v42" prop="v42">
<el-input v-model="form.v42" placeholder="请输入v42" />
</el-form-item>
<el-form-item label="v43" prop="v43">
<el-input v-model="form.v43" placeholder="请输入v43" />
</el-form-item>
<el-form-item label="v44" prop="v44">
<el-input v-model="form.v44" placeholder="请输入v44" />
</el-form-item>
<el-form-item label="v45" prop="v45">
<el-input v-model="form.v45" placeholder="请输入v45" />
</el-form-item>
<el-form-item label="v46" prop="v46">
<el-input v-model="form.v46" placeholder="请输入v46" />
</el-form-item>
<el-form-item label="v47" prop="v47">
<el-input v-model="form.v47" placeholder="请输入v47" />
</el-form-item>
<el-form-item label="v48" prop="v48">
<el-input v-model="form.v48" placeholder="请输入v48" />
</el-form-item>
<el-form-item label="v49" prop="v49">
<el-input v-model="form.v49" placeholder="请输入v49" />
</el-form-item>
<el-form-item label="v50" prop="v50">
<el-input v-model="form.v50" placeholder="请输入v50" />
</el-form-item>
<el-form-item label="v51" prop="v51">
<el-input v-model="form.v51" placeholder="请输入v51" />
</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 { listSpec125r, getSpec125r, delSpec125r, addSpec125r, updateSpec125r } from "@/api/system/spec125r";
export default {
name: "Spec125r",
data() {
return {
// loading
buttonLoading: false,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// 125R
spec125rList: [],
//
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,
g3: undefined,
g4: undefined,
v10: undefined,
g5: undefined,
v11: undefined,
v12: undefined,
g6: undefined,
v13: undefined,
v14: undefined,
g7: undefined,
v15: undefined,
v16: undefined,
v17: undefined,
v18: undefined,
v19: undefined,
v20: 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: "v1不能为空", trigger: "blur" }
],
v2: [
{ required: true, message: "v2不能为空", trigger: "blur" }
],
v3: [
{ required: true, message: "v3不能为空", trigger: "blur" }
],
v4: [
{ required: true, message: "v4不能为空", trigger: "blur" }
],
v5: [
{ required: true, message: "v5不能为空", trigger: "blur" }
],
v6: [
{ required: true, message: "v6不能为空", trigger: "blur" }
],
v7: [
{ required: true, message: "v7不能为空", trigger: "blur" }
],
v8: [
{ required: true, message: "v8不能为空", trigger: "blur" }
],
g1: [
{ required: true, message: "g1不能为空", trigger: "blur" }
],
v9: [
{ required: true, message: "v9不能为空", trigger: "blur" }
],
g2: [
{ required: true, message: "g2不能为空", trigger: "blur" }
],
g3: [
{ required: true, message: "g3不能为空", trigger: "blur" }
],
g4: [
{ required: true, message: "g4不能为空", trigger: "blur" }
],
v10: [
{ required: true, message: "v10不能为空", trigger: "blur" }
],
g5: [
{ required: true, message: "g5不能为空", trigger: "blur" }
],
v11: [
{ required: true, message: "v11不能为空", trigger: "blur" }
],
v12: [
{ required: true, message: "v12不能为空", trigger: "blur" }
],
g6: [
{ required: true, message: "g6不能为空", trigger: "blur" }
],
v13: [
{ required: true, message: "v13不能为空", trigger: "blur" }
],
v14: [
{ required: true, message: "v14不能为空", trigger: "blur" }
],
g7: [
{ required: true, message: "g7不能为空", trigger: "blur" }
],
v15: [
{ required: true, message: "v15不能为空", trigger: "blur" }
],
v16: [
{ required: true, message: "v16不能为空", trigger: "blur" }
],
v17: [
{ required: true, message: "v17不能为空", trigger: "blur" }
],
v18: [
{ required: true, message: "v18不能为空", trigger: "blur" }
],
v19: [
{ required: true, message: "v19不能为空", trigger: "blur" }
],
v20: [
{ required: true, message: "v20不能为空", trigger: "blur" }
],
v41: [
{ required: true, message: "v41不能为空", trigger: "blur" }
],
v42: [
{ required: true, message: "v42不能为空", trigger: "blur" }
],
v43: [
{ required: true, message: "v43不能为空", trigger: "blur" }
],
v44: [
{ required: true, message: "v44不能为空", trigger: "blur" }
],
v45: [
{ required: true, message: "v45不能为空", trigger: "blur" }
],
v46: [
{ required: true, message: "v46不能为空", trigger: "blur" }
],
v47: [
{ required: true, message: "v47不能为空", trigger: "blur" }
],
v48: [
{ required: true, message: "v48不能为空", trigger: "blur" }
],
v49: [
{ required: true, message: "v49不能为空", trigger: "blur" }
],
v50: [
{ required: true, message: "v50不能为空", trigger: "blur" }
],
v51: [
{ required: true, message: "v51不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询125R设备规格参数列表 */
getList() {
this.loading = true;
listSpec125r(this.queryParams).then(response => {
this.spec125rList = 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,
g3: undefined,
g4: undefined,
v10: undefined,
g5: undefined,
v11: undefined,
v12: undefined,
g6: undefined,
v13: undefined,
v14: undefined,
g7: undefined,
v15: undefined,
v16: undefined,
v17: undefined,
v18: undefined,
v19: undefined,
v20: 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 = "添加125R设备规格参数";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids
getSpec125r(id).then(response => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改125R设备规格参数";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateSpec125r(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} else {
addSpec125r(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('是否确认删除125R设备规格参数编号为"' + ids + '"的数据项?').then(() => {
this.loading = true;
return delSpec125r(ids);
}).then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/spec125r/export', {
...this.queryParams
}, `spec125r_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,663 @@
<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>
<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:spec150r: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:spec150r: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:spec150r: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:spec150r:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" border="true" :data="spec150rList" @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="v21" align="center" prop="v21" />
<el-table-column label="v22" align="center" prop="v22" />
<el-table-column label="v23" align="center" prop="v23" />
<el-table-column label="v24" align="center" prop="v24" />
<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="g3" align="center" prop="g3" />
<el-table-column label="g4" align="center" prop="g4" />
<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="v16" align="center" prop="v16" />
<el-table-column label="v17" align="center" prop="v17" />
<el-table-column label="v18" align="center" prop="v18" />
<el-table-column label="v19" align="center" prop="v19" />
<el-table-column label="v20" align="center" prop="v20" />
<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:spec150r:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:spec150r: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"
/>
<!-- 添加或修改150R设备规格参数对话框 -->
<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="请输入v1" />
</el-form-item>
<el-form-item label="v2" prop="v2">
<el-input v-model="form.v2" placeholder="请输入v2" />
</el-form-item>
<el-form-item label="v3" prop="v3">
<el-input v-model="form.v3" placeholder="请输入v3" />
</el-form-item>
<el-form-item label="v4" prop="v4">
<el-input v-model="form.v4" placeholder="请输入v4" />
</el-form-item>
<el-form-item label="v21" prop="v21">
<el-input v-model="form.v21" placeholder="请输入v21" />
</el-form-item>
<el-form-item label="v22" prop="v22">
<el-input v-model="form.v22" placeholder="请输入v22" />
</el-form-item>
<el-form-item label="v23" prop="v23">
<el-input v-model="form.v23" placeholder="请输入v23" />
</el-form-item>
<el-form-item label="v24" prop="v24">
<el-input v-model="form.v24" placeholder="请输入v24" />
</el-form-item>
<el-form-item label="v5" prop="v5">
<el-input v-model="form.v5" placeholder="请输入v5" />
</el-form-item>
<el-form-item label="v6" prop="v6">
<el-input v-model="form.v6" placeholder="请输入v6" />
</el-form-item>
<el-form-item label="v7" prop="v7">
<el-input v-model="form.v7" placeholder="请输入v7" />
</el-form-item>
<el-form-item label="v8" prop="v8">
<el-input v-model="form.v8" placeholder="请输入v8" />
</el-form-item>
<el-form-item label="g1" prop="g1">
<el-input v-model="form.g1" placeholder="请输入g1" />
</el-form-item>
<el-form-item label="v9" prop="v9">
<el-input v-model="form.v9" placeholder="请输入v9" />
</el-form-item>
<el-form-item label="g2" prop="g2">
<el-input v-model="form.g2" placeholder="请输入g2" />
</el-form-item>
<el-form-item label="g3" prop="g3">
<el-input v-model="form.g3" placeholder="请输入g3" />
</el-form-item>
<el-form-item label="g4" prop="g4">
<el-input v-model="form.g4" placeholder="请输入g4" />
</el-form-item>
<el-form-item label="v10" prop="v10">
<el-input v-model="form.v10" placeholder="请输入v10" />
</el-form-item>
<el-form-item label="g5" prop="g5">
<el-input v-model="form.g5" placeholder="请输入g5" />
</el-form-item>
<el-form-item label="v11" prop="v11">
<el-input v-model="form.v11" placeholder="请输入v11" />
</el-form-item>
<el-form-item label="v12" prop="v12">
<el-input v-model="form.v12" placeholder="请输入v12" />
</el-form-item>
<el-form-item label="g6" prop="g6">
<el-input v-model="form.g6" placeholder="请输入g6" />
</el-form-item>
<el-form-item label="v13" prop="v13">
<el-input v-model="form.v13" placeholder="请输入v13" />
</el-form-item>
<el-form-item label="v14" prop="v14">
<el-input v-model="form.v14" placeholder="请输入v14" />
</el-form-item>
<el-form-item label="g7" prop="g7">
<el-input v-model="form.g7" placeholder="请输入g7" />
</el-form-item>
<el-form-item label="v15" prop="v15">
<el-input v-model="form.v15" placeholder="请输入v15" />
</el-form-item>
<el-form-item label="v16" prop="v16">
<el-input v-model="form.v16" placeholder="请输入v16" />
</el-form-item>
<el-form-item label="v17" prop="v17">
<el-input v-model="form.v17" placeholder="请输入v17" />
</el-form-item>
<el-form-item label="v18" prop="v18">
<el-input v-model="form.v18" placeholder="请输入v18" />
</el-form-item>
<el-form-item label="v19" prop="v19">
<el-input v-model="form.v19" placeholder="请输入v19" />
</el-form-item>
<el-form-item label="v20" prop="v20">
<el-input v-model="form.v20" placeholder="请输入v20" />
</el-form-item>
<el-form-item label="v41" prop="v41">
<el-input v-model="form.v41" placeholder="请输入v41" />
</el-form-item>
<el-form-item label="v42" prop="v42">
<el-input v-model="form.v42" placeholder="请输入v42" />
</el-form-item>
<el-form-item label="v43" prop="v43">
<el-input v-model="form.v43" placeholder="请输入v43" />
</el-form-item>
<el-form-item label="v44" prop="v44">
<el-input v-model="form.v44" placeholder="请输入v44" />
</el-form-item>
<el-form-item label="v45" prop="v45">
<el-input v-model="form.v45" placeholder="请输入v45" />
</el-form-item>
<el-form-item label="v46" prop="v46">
<el-input v-model="form.v46" placeholder="请输入v46" />
</el-form-item>
<el-form-item label="v47" prop="v47">
<el-input v-model="form.v47" placeholder="请输入v47" />
</el-form-item>
<el-form-item label="v48" prop="v48">
<el-input v-model="form.v48" placeholder="请输入v48" />
</el-form-item>
<el-form-item label="v49" prop="v49">
<el-input v-model="form.v49" placeholder="请输入v49" />
</el-form-item>
<el-form-item label="v50" prop="v50">
<el-input v-model="form.v50" placeholder="请输入v50" />
</el-form-item>
<el-form-item label="v51" prop="v51">
<el-input v-model="form.v51" placeholder="请输入v51" />
</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 { listSpec150r, getSpec150r, delSpec150r, addSpec150r, updateSpec150r } from "@/api/system/spec150r";
export default {
name: "Spec150r",
data() {
return {
// loading
buttonLoading: false,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// 150R
spec150rList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
travelLength: undefined,
itemType: undefined,
axialType: undefined,
boxType: undefined,
v1: undefined,
v2: undefined,
v3: undefined,
v4: undefined,
v21: undefined,
v22: undefined,
v23: undefined,
v24: undefined,
v5: undefined,
v6: undefined,
v7: undefined,
v8: undefined,
g1: undefined,
v9: undefined,
g2: undefined,
g3: undefined,
g4: undefined,
v10: undefined,
g5: undefined,
v11: undefined,
v12: undefined,
g6: undefined,
v13: undefined,
v14: undefined,
g7: undefined,
v15: undefined,
v16: undefined,
v17: undefined,
v18: undefined,
v19: undefined,
v20: 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: "v1不能为空", trigger: "blur" }
],
v2: [
{ required: true, message: "v2不能为空", trigger: "blur" }
],
v3: [
{ required: true, message: "v3不能为空", trigger: "blur" }
],
v4: [
{ required: true, message: "v4不能为空", trigger: "blur" }
],
v21: [
{ required: true, message: "v21不能为空", trigger: "blur" }
],
v22: [
{ required: true, message: "v22不能为空", trigger: "blur" }
],
v23: [
{ required: true, message: "v23不能为空", trigger: "blur" }
],
v24: [
{ required: true, message: "v24不能为空", trigger: "blur" }
],
v5: [
{ required: true, message: "v5不能为空", trigger: "blur" }
],
v6: [
{ required: true, message: "v6不能为空", trigger: "blur" }
],
v7: [
{ required: true, message: "v7不能为空", trigger: "blur" }
],
v8: [
{ required: true, message: "v8不能为空", trigger: "blur" }
],
g1: [
{ required: true, message: "g1不能为空", trigger: "blur" }
],
v9: [
{ required: true, message: "v9不能为空", trigger: "blur" }
],
g2: [
{ required: true, message: "g2不能为空", trigger: "blur" }
],
g3: [
{ required: true, message: "g3不能为空", trigger: "blur" }
],
g4: [
{ required: true, message: "g4不能为空", trigger: "blur" }
],
v10: [
{ required: true, message: "v10不能为空", trigger: "blur" }
],
g5: [
{ required: true, message: "g5不能为空", trigger: "blur" }
],
v11: [
{ required: true, message: "v11不能为空", trigger: "blur" }
],
v12: [
{ required: true, message: "v12不能为空", trigger: "blur" }
],
g6: [
{ required: true, message: "g6不能为空", trigger: "blur" }
],
v13: [
{ required: true, message: "v13不能为空", trigger: "blur" }
],
v14: [
{ required: true, message: "v14不能为空", trigger: "blur" }
],
g7: [
{ required: true, message: "g7不能为空", trigger: "blur" }
],
v15: [
{ required: true, message: "v15不能为空", trigger: "blur" }
],
v16: [
{ required: true, message: "v16不能为空", trigger: "blur" }
],
v17: [
{ required: true, message: "v17不能为空", trigger: "blur" }
],
v18: [
{ required: true, message: "v18不能为空", trigger: "blur" }
],
v19: [
{ required: true, message: "v19不能为空", trigger: "blur" }
],
v20: [
{ required: true, message: "v20不能为空", trigger: "blur" }
],
v41: [
{ required: true, message: "v41不能为空", trigger: "blur" }
],
v42: [
{ required: true, message: "v42不能为空", trigger: "blur" }
],
v43: [
{ required: true, message: "v43不能为空", trigger: "blur" }
],
v44: [
{ required: true, message: "v44不能为空", trigger: "blur" }
],
v45: [
{ required: true, message: "v45不能为空", trigger: "blur" }
],
v46: [
{ required: true, message: "v46不能为空", trigger: "blur" }
],
v47: [
{ required: true, message: "v47不能为空", trigger: "blur" }
],
v48: [
{ required: true, message: "v48不能为空", trigger: "blur" }
],
v49: [
{ required: true, message: "v49不能为空", trigger: "blur" }
],
v50: [
{ required: true, message: "v50不能为空", trigger: "blur" }
],
v51: [
{ required: true, message: "v51不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询150R设备规格参数列表 */
getList() {
this.loading = true;
listSpec150r(this.queryParams).then(response => {
this.spec150rList = 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,
v21: undefined,
v22: undefined,
v23: undefined,
v24: undefined,
v5: undefined,
v6: undefined,
v7: undefined,
v8: undefined,
g1: undefined,
v9: undefined,
g2: undefined,
g3: undefined,
g4: undefined,
v10: undefined,
g5: undefined,
v11: undefined,
v12: undefined,
g6: undefined,
v13: undefined,
v14: undefined,
g7: undefined,
v15: undefined,
v16: undefined,
v17: undefined,
v18: undefined,
v19: undefined,
v20: 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 = "添加150R设备规格参数";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids
getSpec150r(id).then(response => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改150R设备规格参数";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateSpec150r(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} else {
addSpec150r(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('是否确认删除150R设备规格参数编号为"' + ids + '"的数据项?').then(() => {
this.loading = true;
return delSpec150r(ids);
}).then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/spec150r/export', {
...this.queryParams
}, `spec150r_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,486 @@
<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:spec30d: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:spec30d: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:spec30d: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:spec30d:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="spec30dList" @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="v10" align="center" prop="v10" />
<el-table-column label="g5" align="center" prop="g5" />
<el-table-column label="g8" align="center" prop="g8" />
<el-table-column label="v12" align="center" prop="v12" />
<el-table-column label="g6" align="center" prop="g6" />
<el-table-column label="g9" align="center" prop="g9" />
<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="操作" 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:spec30d:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:spec30d: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"
/>
<!-- 添加或修改device_spec_30D 对话框 -->
<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="请输入v1" />
</el-form-item>
<el-form-item label="v2" prop="v2">
<el-input v-model="form.v2" placeholder="请输入v2" />
</el-form-item>
<el-form-item label="v3" prop="v3">
<el-input v-model="form.v3" placeholder="请输入v3" />
</el-form-item>
<el-form-item label="v5" prop="v5">
<el-input v-model="form.v5" placeholder="请输入v5" />
</el-form-item>
<el-form-item label="v6" prop="v6">
<el-input v-model="form.v6" placeholder="请输入v6" />
</el-form-item>
<el-form-item label="v8" prop="v8">
<el-input v-model="form.v8" placeholder="请输入v8" />
</el-form-item>
<el-form-item label="g1" prop="g1">
<el-input v-model="form.g1" placeholder="请输入g1" />
</el-form-item>
<el-form-item label="v10" prop="v10">
<el-input v-model="form.v10" placeholder="请输入v10" />
</el-form-item>
<el-form-item label="g5" prop="g5">
<el-input v-model="form.g5" placeholder="请输入g5" />
</el-form-item>
<el-form-item label="g8" prop="g8">
<el-input v-model="form.g8" placeholder="请输入g8" />
</el-form-item>
<el-form-item label="v12" prop="v12">
<el-input v-model="form.v12" placeholder="请输入v12" />
</el-form-item>
<el-form-item label="g6" prop="g6">
<el-input v-model="form.g6" placeholder="请输入g6" />
</el-form-item>
<el-form-item label="g9" prop="g9">
<el-input v-model="form.g9" placeholder="请输入g9" />
</el-form-item>
<el-form-item label="v41" prop="v41">
<el-input v-model="form.v41" placeholder="请输入v41" />
</el-form-item>
<el-form-item label="v42" prop="v42">
<el-input v-model="form.v42" placeholder="请输入v42" />
</el-form-item>
<el-form-item label="v43" prop="v43">
<el-input v-model="form.v43" placeholder="请输入v43" />
</el-form-item>
<el-form-item label="v44" prop="v44">
<el-input v-model="form.v44" placeholder="请输入v44" />
</el-form-item>
<el-form-item label="v45" prop="v45">
<el-input v-model="form.v45" placeholder="请输入v45" />
</el-form-item>
<el-form-item label="v46" prop="v46">
<el-input v-model="form.v46" placeholder="请输入v46" />
</el-form-item>
<el-form-item label="v47" prop="v47">
<el-input v-model="form.v47" placeholder="请输入v47" />
</el-form-item>
<el-form-item label="v48" prop="v48">
<el-input v-model="form.v48" placeholder="请输入v48" />
</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 { listSpec30d, getSpec30d, delSpec30d, addSpec30d, updateSpec30d } from "@/api/system/spec30d";
export default {
name: "Spec30d",
data() {
return {
// loading
buttonLoading: false,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// device_spec_30D
spec30dList: [],
//
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,
v10: undefined,
g5: undefined,
g8: undefined,
v12: undefined,
g6: undefined,
g9: undefined,
v41: undefined,
v42: undefined,
v43: undefined,
v44: undefined,
v45: undefined,
v46: undefined,
v47: undefined,
v48: 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: "v1不能为空", trigger: "blur" }
],
v2: [
{ required: true, message: "v2不能为空", trigger: "blur" }
],
v3: [
{ required: true, message: "v3不能为空", trigger: "blur" }
],
v5: [
{ required: true, message: "v5不能为空", trigger: "blur" }
],
v6: [
{ required: true, message: "v6不能为空", trigger: "blur" }
],
v8: [
{ required: true, message: "v8不能为空", trigger: "blur" }
],
g1: [
{ required: true, message: "g1不能为空", trigger: "blur" }
],
v10: [
{ required: true, message: "v10不能为空", trigger: "blur" }
],
g5: [
{ required: true, message: "g5不能为空", trigger: "blur" }
],
g8: [
{ required: true, message: "g8不能为空", trigger: "blur" }
],
v12: [
{ required: true, message: "v12不能为空", trigger: "blur" }
],
g6: [
{ required: true, message: "g6不能为空", trigger: "blur" }
],
g9: [
{ required: true, message: "g9不能为空", trigger: "blur" }
],
v41: [
{ required: true, message: "v41不能为空", trigger: "blur" }
],
v42: [
{ required: true, message: "v42不能为空", trigger: "blur" }
],
v43: [
{ required: true, message: "v43不能为空", trigger: "blur" }
],
v44: [
{ required: true, message: "v44不能为空", trigger: "blur" }
],
v45: [
{ required: true, message: "v45不能为空", trigger: "blur" }
],
v46: [
{ required: true, message: "v46不能为空", trigger: "blur" }
],
v47: [
{ required: true, message: "v47不能为空", trigger: "blur" }
],
v48: [
{ required: true, message: "v48不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询device_spec_30D 列表 */
getList() {
this.loading = true;
listSpec30d(this.queryParams).then(response => {
this.spec30dList = 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,
v10: undefined,
g5: undefined,
g8: undefined,
v12: undefined,
g6: undefined,
g9: undefined,
v41: undefined,
v42: undefined,
v43: undefined,
v44: undefined,
v45: undefined,
v46: undefined,
v47: undefined,
v48: 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 = "添加device_spec_30D ";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids
getSpec30d(id).then(response => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改device_spec_30D ";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateSpec30d(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} else {
addSpec30d(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('是否确认删除device_spec_30D 编号为"' + ids + '"的数据项?').then(() => {
this.loading = true;
return delSpec30d(ids);
}).then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/spec30d/export', {
...this.queryParams
}, `spec30d_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,441 @@
<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:spec30s: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:spec30s: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:spec30s: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:spec30s:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="spec30sList" @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="v8" align="center" prop="v8" />
<el-table-column label="g1" align="center" prop="g1" />
<el-table-column label="v10" align="center" prop="v10" />
<el-table-column label="g5" align="center" prop="g5" />
<el-table-column label="v12" align="center" prop="v12" />
<el-table-column label="g6" align="center" prop="g6" />
<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="操作" 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:spec30s:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:spec30s: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"
/>
<!-- 添加或修改30S设备规格参数对话框 -->
<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="请输入v1" />
</el-form-item>
<el-form-item label="v2" prop="v2">
<el-input v-model="form.v2" placeholder="请输入v2" />
</el-form-item>
<el-form-item label="v3" prop="v3">
<el-input v-model="form.v3" placeholder="请输入v3" />
</el-form-item>
<el-form-item label="v5" prop="v5">
<el-input v-model="form.v5" placeholder="请输入v5" />
</el-form-item>
<el-form-item label="v8" prop="v8">
<el-input v-model="form.v8" placeholder="请输入v8" />
</el-form-item>
<el-form-item label="g1" prop="g1">
<el-input v-model="form.g1" placeholder="请输入g1" />
</el-form-item>
<el-form-item label="v10" prop="v10">
<el-input v-model="form.v10" placeholder="请输入v10" />
</el-form-item>
<el-form-item label="g5" prop="g5">
<el-input v-model="form.g5" placeholder="请输入g5" />
</el-form-item>
<el-form-item label="v12" prop="v12">
<el-input v-model="form.v12" placeholder="请输入v12" />
</el-form-item>
<el-form-item label="g6" prop="g6">
<el-input v-model="form.g6" placeholder="请输入g6" />
</el-form-item>
<el-form-item label="v41" prop="v41">
<el-input v-model="form.v41" placeholder="请输入v41" />
</el-form-item>
<el-form-item label="v42" prop="v42">
<el-input v-model="form.v42" placeholder="请输入v42" />
</el-form-item>
<el-form-item label="v43" prop="v43">
<el-input v-model="form.v43" placeholder="请输入v43" />
</el-form-item>
<el-form-item label="v44" prop="v44">
<el-input v-model="form.v44" placeholder="请输入v44" />
</el-form-item>
<el-form-item label="v45" prop="v45">
<el-input v-model="form.v45" placeholder="请输入v45" />
</el-form-item>
<el-form-item label="v46" prop="v46">
<el-input v-model="form.v46" placeholder="请输入v46" />
</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 { listSpec30s, getSpec30s, delSpec30s, addSpec30s, updateSpec30s } from "@/api/system/spec30s";
export default {
name: "Spec30s",
data() {
return {
// loading
buttonLoading: false,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// 30S
spec30sList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
travelLength: undefined,
itemType: undefined,
axialType: undefined,
boxType: undefined,
v1: undefined,
v2: undefined,
v3: undefined,
v5: undefined,
v8: undefined,
g1: undefined,
v10: undefined,
g5: undefined,
v12: undefined,
g6: undefined,
v41: undefined,
v42: undefined,
v43: undefined,
v44: undefined,
v45: undefined,
v46: 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: "v1不能为空", trigger: "blur" }
],
v2: [
{ required: true, message: "v2不能为空", trigger: "blur" }
],
v3: [
{ required: true, message: "v3不能为空", trigger: "blur" }
],
v5: [
{ required: true, message: "v5不能为空", trigger: "blur" }
],
v8: [
{ required: true, message: "v8不能为空", trigger: "blur" }
],
g1: [
{ required: true, message: "g1不能为空", trigger: "blur" }
],
v10: [
{ required: true, message: "v10不能为空", trigger: "blur" }
],
g5: [
{ required: true, message: "g5不能为空", trigger: "blur" }
],
v12: [
{ required: true, message: "v12不能为空", trigger: "blur" }
],
g6: [
{ required: true, message: "g6不能为空", trigger: "blur" }
],
v41: [
{ required: true, message: "v41不能为空", trigger: "blur" }
],
v42: [
{ required: true, message: "v42不能为空", trigger: "blur" }
],
v43: [
{ required: true, message: "v43不能为空", trigger: "blur" }
],
v44: [
{ required: true, message: "v44不能为空", trigger: "blur" }
],
v45: [
{ required: true, message: "v45不能为空", trigger: "blur" }
],
v46: [
{ required: true, message: "v46不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询30S设备规格参数列表 */
getList() {
this.loading = true;
listSpec30s(this.queryParams).then(response => {
this.spec30sList = 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,
v8: undefined,
g1: undefined,
v10: undefined,
g5: undefined,
v12: undefined,
g6: undefined,
v41: undefined,
v42: undefined,
v43: undefined,
v44: undefined,
v45: undefined,
v46: 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 = "添加30S设备规格参数";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids
getSpec30s(id).then(response => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改30S设备规格参数";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateSpec30s(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} else {
addSpec30s(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('是否确认删除30S设备规格参数编号为"' + ids + '"的数据项?').then(() => {
this.loading = true;
return delSpec30s(ids);
}).then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/spec30s/export', {
...this.queryParams
}, `spec30s_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View 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:spec60r: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:spec60r: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:spec60r: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:spec60r:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" border :data="spec60rList" @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:spec60r:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:spec60r: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"
/>
<!-- 添加或修改60R设备规格参数对话框 -->
<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="请输入v1" />
</el-form-item>
<el-form-item label="v2" prop="v2">
<el-input v-model="form.v2" placeholder="请输入v2" />
</el-form-item>
<el-form-item label="v3" prop="v3">
<el-input v-model="form.v3" placeholder="请输入v3" />
</el-form-item>
<el-form-item label="v5" prop="v5">
<el-input v-model="form.v5" placeholder="请输入v5" />
</el-form-item>
<el-form-item label="v6" prop="v6">
<el-input v-model="form.v6" placeholder="请输入v6" />
</el-form-item>
<el-form-item label="v8" prop="v8">
<el-input v-model="form.v8" placeholder="请输入v8" />
</el-form-item>
<el-form-item label="g1" prop="g1">
<el-input v-model="form.g1" placeholder="请输入g1" />
</el-form-item>
<el-form-item label="v9" prop="v9">
<el-input v-model="form.v9" placeholder="请输入v9" />
</el-form-item>
<el-form-item label="g2" prop="g2">
<el-input v-model="form.g2" placeholder="请输入g2" />
</el-form-item>
<el-form-item label="v10" prop="v10">
<el-input v-model="form.v10" placeholder="请输入v10" />
</el-form-item>
<el-form-item label="g5" prop="g5">
<el-input v-model="form.g5" placeholder="请输入g5" />
</el-form-item>
<el-form-item label="v11" prop="v11">
<el-input v-model="form.v11" placeholder="请输入v11" />
</el-form-item>
<el-form-item label="v12" prop="v12">
<el-input v-model="form.v12" placeholder="请输入v12" />
</el-form-item>
<el-form-item label="g6" prop="g6">
<el-input v-model="form.g6" placeholder="请输入g6" />
</el-form-item>
<el-form-item label="v13" prop="v13">
<el-input v-model="form.v13" placeholder="请输入v13" />
</el-form-item>
<el-form-item label="v14" prop="v14">
<el-input v-model="form.v14" placeholder="请输入v14" />
</el-form-item>
<el-form-item label="g7" prop="g7">
<el-input v-model="form.g7" placeholder="请输入g7" />
</el-form-item>
<el-form-item label="v15" prop="v15">
<el-input v-model="form.v15" placeholder="请输入v15" />
</el-form-item>
<el-form-item label="v41" prop="v41">
<el-input v-model="form.v41" placeholder="请输入v41" />
</el-form-item>
<el-form-item label="v42" prop="v42">
<el-input v-model="form.v42" placeholder="请输入v42" />
</el-form-item>
<el-form-item label="v43" prop="v43">
<el-input v-model="form.v43" placeholder="请输入v43" />
</el-form-item>
<el-form-item label="v44" prop="v44">
<el-input v-model="form.v44" placeholder="请输入v44" />
</el-form-item>
<el-form-item label="v45" prop="v45">
<el-input v-model="form.v45" placeholder="请输入v45" />
</el-form-item>
<el-form-item label="v46" prop="v46">
<el-input v-model="form.v46" placeholder="请输入v46" />
</el-form-item>
<el-form-item label="v47" prop="v47">
<el-input v-model="form.v47" placeholder="请输入v47" />
</el-form-item>
<el-form-item label="v48" prop="v48">
<el-input v-model="form.v48" placeholder="请输入v48" />
</el-form-item>
<el-form-item label="v49" prop="v49">
<el-input v-model="form.v49" placeholder="请输入v49" />
</el-form-item>
<el-form-item label="v50" prop="v50">
<el-input v-model="form.v50" placeholder="请输入v50" />
</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 { listSpec60r, getSpec60r, delSpec60r, addSpec60r, updateSpec60r } from "@/api/system/spec60r";
export default {
name: "Spec60r",
data() {
return {
// loading
buttonLoading: false,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// 60R
spec60rList: [],
//
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: "v1不能为空", trigger: "blur" }
],
v2: [
{ required: true, message: "v2不能为空", trigger: "blur" }
],
v3: [
{ required: true, message: "v3不能为空", trigger: "blur" }
],
v5: [
{ required: true, message: "v5不能为空", trigger: "blur" }
],
v6: [
{ required: true, message: "v6不能为空", trigger: "blur" }
],
v8: [
{ required: true, message: "v8不能为空", trigger: "blur" }
],
g1: [
{ required: true, message: "g1不能为空", trigger: "blur" }
],
v9: [
{ required: true, message: "v9不能为空", trigger: "blur" }
],
g2: [
{ required: true, message: "g2不能为空", trigger: "blur" }
],
v10: [
{ required: true, message: "v10不能为空", trigger: "blur" }
],
g5: [
{ required: true, message: "g5不能为空", trigger: "blur" }
],
v11: [
{ required: true, message: "v11不能为空", trigger: "blur" }
],
v12: [
{ required: true, message: "v12不能为空", trigger: "blur" }
],
g6: [
{ required: true, message: "g6不能为空", trigger: "blur" }
],
v13: [
{ required: true, message: "v13不能为空", trigger: "blur" }
],
v14: [
{ required: true, message: "v14不能为空", trigger: "blur" }
],
g7: [
{ required: true, message: "g7不能为空", trigger: "blur" }
],
v15: [
{ required: true, message: "v15不能为空", trigger: "blur" }
],
v41: [
{ required: true, message: "v41不能为空", trigger: "blur" }
],
v42: [
{ required: true, message: "v42不能为空", trigger: "blur" }
],
v43: [
{ required: true, message: "v43不能为空", trigger: "blur" }
],
v44: [
{ required: true, message: "v44不能为空", trigger: "blur" }
],
v45: [
{ required: true, message: "v45不能为空", trigger: "blur" }
],
v46: [
{ required: true, message: "v46不能为空", trigger: "blur" }
],
v47: [
{ required: true, message: "v47不能为空", trigger: "blur" }
],
v48: [
{ required: true, message: "v48不能为空", trigger: "blur" }
],
v49: [
{ required: true, message: "v49不能为空", trigger: "blur" }
],
v50: [
{ required: true, message: "v50不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询60R设备规格参数列表 */
getList() {
this.loading = true;
listSpec60r(this.queryParams).then(response => {
this.spec60rList = 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 = "添加60R设备规格参数";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids
getSpec60r(id).then(response => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改60R设备规格参数";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateSpec60r(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} else {
addSpec60r(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('是否确认删除60R设备规格参数编号为"' + ids + '"的数据项?').then(() => {
this.loading = true;
return delSpec60r(ids);
}).then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/spec60r/export', {
...this.queryParams
}, `spec60r_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,558 @@
<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:spec80r: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:spec80r: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:spec80r: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:spec80r:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" border :data="spec80rList" @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="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:spec80r:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:spec80r: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"
/>
<!-- 添加或修改80R设备规格参数对话框 -->
<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="请输入v1" />
</el-form-item>
<el-form-item label="v2" prop="v2">
<el-input v-model="form.v2" placeholder="请输入v2" />
</el-form-item>
<el-form-item label="v3" prop="v3">
<el-input v-model="form.v3" placeholder="请输入v3" />
</el-form-item>
<el-form-item label="v5" prop="v5">
<el-input v-model="form.v5" placeholder="请输入v5" />
</el-form-item>
<el-form-item label="v6" prop="v6">
<el-input v-model="form.v6" placeholder="请输入v6" />
</el-form-item>
<el-form-item label="v8" prop="v8">
<el-input v-model="form.v8" placeholder="请输入v8" />
</el-form-item>
<el-form-item label="g1" prop="g1">
<el-input v-model="form.g1" placeholder="请输入g1" />
</el-form-item>
<el-form-item label="v9" prop="v9">
<el-input v-model="form.v9" placeholder="请输入v9" />
</el-form-item>
<el-form-item label="g2" prop="g2">
<el-input v-model="form.g2" placeholder="请输入g2" />
</el-form-item>
<el-form-item label="v10" prop="v10">
<el-input v-model="form.v10" placeholder="请输入v10" />
</el-form-item>
<el-form-item label="g5" prop="g5">
<el-input v-model="form.g5" placeholder="请输入g5" />
</el-form-item>
<el-form-item label="v11" prop="v11">
<el-input v-model="form.v11" placeholder="请输入v11" />
</el-form-item>
<el-form-item label="v12" prop="v12">
<el-input v-model="form.v12" placeholder="请输入v12" />
</el-form-item>
<el-form-item label="g6" prop="g6">
<el-input v-model="form.g6" placeholder="请输入g6" />
</el-form-item>
<el-form-item label="v13" prop="v13">
<el-input v-model="form.v13" placeholder="请输入v13" />
</el-form-item>
<el-form-item label="v14" prop="v14">
<el-input v-model="form.v14" placeholder="请输入v14" />
</el-form-item>
<el-form-item label="g7" prop="g7">
<el-input v-model="form.g7" placeholder="请输入g7" />
</el-form-item>
<el-form-item label="v15" prop="v15">
<el-input v-model="form.v15" placeholder="请输入v15" />
</el-form-item>
<el-form-item label="v41" prop="v41">
<el-input v-model="form.v41" placeholder="请输入v41" />
</el-form-item>
<el-form-item label="v42" prop="v42">
<el-input v-model="form.v42" placeholder="请输入v42" />
</el-form-item>
<el-form-item label="v43" prop="v43">
<el-input v-model="form.v43" placeholder="请输入v43" />
</el-form-item>
<el-form-item label="v44" prop="v44">
<el-input v-model="form.v44" placeholder="请输入v44" />
</el-form-item>
<el-form-item label="v45" prop="v45">
<el-input v-model="form.v45" placeholder="请输入v45" />
</el-form-item>
<el-form-item label="v46" prop="v46">
<el-input v-model="form.v46" placeholder="请输入v46" />
</el-form-item>
<el-form-item label="v47" prop="v47">
<el-input v-model="form.v47" placeholder="请输入v47" />
</el-form-item>
<el-form-item label="v48" prop="v48">
<el-input v-model="form.v48" placeholder="请输入v48" />
</el-form-item>
<el-form-item label="v49" prop="v49">
<el-input v-model="form.v49" placeholder="请输入v49" />
</el-form-item>
<el-form-item label="v50" prop="v50">
<el-input v-model="form.v50" placeholder="请输入v50" />
</el-form-item>
<el-form-item label="v51" prop="v51">
<el-input v-model="form.v51" placeholder="请输入v51" />
</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 { listSpec80r, getSpec80r, delSpec80r, addSpec80r, updateSpec80r } from "@/api/system/spec80r";
export default {
name: "Spec80r",
data() {
return {
// loading
buttonLoading: false,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// 80R
spec80rList: [],
//
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,
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: "v1不能为空", trigger: "blur" }
],
v2: [
{ required: true, message: "v2不能为空", trigger: "blur" }
],
v3: [
{ required: true, message: "v3不能为空", trigger: "blur" }
],
v5: [
{ required: true, message: "v5不能为空", trigger: "blur" }
],
v6: [
{ required: true, message: "v6不能为空", trigger: "blur" }
],
v8: [
{ required: true, message: "v8不能为空", trigger: "blur" }
],
g1: [
{ required: true, message: "g1不能为空", trigger: "blur" }
],
v9: [
{ required: true, message: "v9不能为空", trigger: "blur" }
],
g2: [
{ required: true, message: "g2不能为空", trigger: "blur" }
],
v10: [
{ required: true, message: "v10不能为空", trigger: "blur" }
],
g5: [
{ required: true, message: "g5不能为空", trigger: "blur" }
],
v11: [
{ required: true, message: "v11不能为空", trigger: "blur" }
],
v12: [
{ required: true, message: "v12不能为空", trigger: "blur" }
],
g6: [
{ required: true, message: "g6不能为空", trigger: "blur" }
],
v13: [
{ required: true, message: "v13不能为空", trigger: "blur" }
],
v14: [
{ required: true, message: "v14不能为空", trigger: "blur" }
],
g7: [
{ required: true, message: "g7不能为空", trigger: "blur" }
],
v15: [
{ required: true, message: "v15不能为空", trigger: "blur" }
],
v41: [
{ required: true, message: "v41不能为空", trigger: "blur" }
],
v42: [
{ required: true, message: "v42不能为空", trigger: "blur" }
],
v43: [
{ required: true, message: "v43不能为空", trigger: "blur" }
],
v44: [
{ required: true, message: "v44不能为空", trigger: "blur" }
],
v45: [
{ required: true, message: "v45不能为空", trigger: "blur" }
],
v46: [
{ required: true, message: "v46不能为空", trigger: "blur" }
],
v47: [
{ required: true, message: "v47不能为空", trigger: "blur" }
],
v48: [
{ required: true, message: "v48不能为空", trigger: "blur" }
],
v49: [
{ required: true, message: "v49不能为空", trigger: "blur" }
],
v50: [
{ required: true, message: "v50不能为空", trigger: "blur" }
],
v51: [
{ required: true, message: "v51不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询80R设备规格参数列表 */
getList() {
this.loading = true;
listSpec80r(this.queryParams).then(response => {
this.spec80rList = 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,
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 = "添加80R设备规格参数";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids
getSpec80r(id).then(response => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改80R设备规格参数";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateSpec80r(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} else {
addSpec80r(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('是否确认删除80R设备规格参数编号为"' + ids + '"的数据项?').then(() => {
this.loading = true;
return delSpec80r(ids);
}).then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/spec80r/export', {
...this.queryParams
}, `spec80r_${new Date().getTime()}.xlsx`)
}
}
};
</script>