update 2023.4.6

This commit is contained in:
lb
2023-04-06 15:58:02 +08:00
parent 247cca284e
commit 10b50df6f6
14 changed files with 343 additions and 339 deletions

View File

@@ -4,52 +4,23 @@
<!-- <head-form :form-config="headFormConfig" @headBtnClick="btnClick" /> -->
<BaseSearchForm :head-config="headConfig" @btn-click="handleBtnClick" />
<BaseListTable
v-loading="tableLoading"
:table-config="tableConfig.table"
:column-config="tableConfig.column"
:table-data="dataList"
@operate-event="handleOperate"
:current-page="page"
:current-size="size"
:refresh-layout-key="refreshLayoutKey"
/>
<BaseListTable v-loading="tableLoading" :table-config="tableConfig.table" :column-config="tableConfig.column"
:table-data="dataList" @operate-event="handleOperate" :current-page="page" :current-size="size"
:refresh-layout-key="refreshLayoutKey" />
<el-pagination
class="mt-5 flex justify-end"
@size-change="handleSizeChange"
@current-change="handlePageChange"
:current-page.sync="page"
:page-sizes="[1, 5, 10, 20, 50, 100]"
:page-size="size"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper"
></el-pagination>
<!-- :current-page.sync="currentPage"
:page-size.sync="pageSize" -->
<el-pagination class="mt-5 flex justify-end" @size-change="handleSizeChange" @current-change="handlePageChange"
:current-page.sync="page" :page-sizes="[1, 5, 10, 20, 50, 100]" :page-size="size" :total="totalPage"
layout="total, sizes, prev, pager, next, jumper"></el-pagination>
<!-- :current-page.sync="currentPage"
:page-size.sync="pageSize" -->
<DialogWithMenu
ref="edit-dialog"
v-if="!!dialogConfigs && dialogType === DIALOG_WITH_MENU"
:dialog-visible.sync="dialogVisible"
:configs="dialogConfigs"
@refreshDataList="getList"
/>
<DialogJustForm
ref="edit-dialog"
v-if="!!dialogConfigs && dialogType === DIALOG_JUST_FORM"
:dialog-visible.sync="dialogVisible"
:configs="dialogConfigs"
@refreshDataList="getList"
@emit-data="handleOperate"
/>
<DialogCarPayload
ref="car-payload-dialog"
v-if="!!carPayloadDialogConfigs"
:dialog-visible.sync="carPayloadDialogVisible"
:configs="carPayloadDialogConfigs"
@refreshDataList="getList"
/>
<DialogWithMenu ref="edit-dialog" v-if="!!dialogConfigs && dialogType === DIALOG_WITH_MENU"
:dialog-visible.sync="dialogVisible" :configs="dialogConfigs" @refreshDataList="getList" />
<DialogJustForm ref="edit-dialog" v-if="!!dialogConfigs && dialogType === DIALOG_JUST_FORM"
:dialog-visible.sync="dialogVisible" :configs="dialogConfigs" @refreshDataList="getList"
@emit-data="handleOperate" />
<DialogCarPayload ref="car-payload-dialog" v-if="!!carPayloadDialogConfigs"
:dialog-visible.sync="carPayloadDialogVisible" :configs="carPayloadDialogConfigs" @refreshDataList="getList" />
</div>
</template>
@@ -152,9 +123,9 @@ export default {
const params = queryParams
? { ...queryParams, page: this.page, limit: this.size }
: {
page: this.page,
limit: this.size,
};
page: this.page,
limit: this.size,
};
if (!queryParams && this.listQueryExtra && this.listQueryExtra.length) {
this.listQueryExtra.map((nameOrObj) => {
@@ -174,11 +145,11 @@ export default {
this.urls.page,
this.urls.pageIsPostApi
? {
...params,
}
...params,
}
: {
params,
}
params,
}
)
.then(({ data: res }) => {
console.log("[http response] res is: ", res);
@@ -274,7 +245,7 @@ export default {
}
});
})
.catch((err) => {});
.catch((err) => { });
}
case "edit": {
this.openDialog(data); /** data is ==> id */
@@ -329,12 +300,12 @@ export default {
break;
}
case "to-bom-detail": {
// console.log('to-bom-detail', data.name)
console.log('to-bom-detail', data)
// 查看配方详情
return this.$router.push({
name: "pms-bomDetails",
query: {
name: data.name,
code: data.code,
},
});
}
@@ -410,26 +381,40 @@ export default {
});
}
case "detach": {
return this.$http
.post(this.urls.detach, data /* { id: data } */, { headers: { "Content-Type": "application/json" } })
.then(({ data: res }) => {
if (res.code === 0) {
this.$message({
message: "下发成功",
type: "success",
duration: 1500,
onClose: () => {
this.getList();
},
});
} else {
this.$message({
message: `${res.code}: ${res.msg}`,
type: "error",
duration: 1500,
});
}
return this.$confirm('是否下发?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http
.post(this.urls.detach, data /* { id: data } */, { headers: { "Content-Type": "application/json" } })
.then(({ data: res }) => {
if (res.code === 0) {
this.$message({
message: "下发成功",
type: "success",
duration: 1500,
onClose: () => {
this.getList();
},
});
} else {
this.$message({
message: `${res.code}: ${res.msg}`,
type: "error",
duration: 1500,
});
}
});
}).catch(() => {
this.$message({
type: 'warning',
message: '已取消下发'
});
});
}
case "to-car-history": {
return this.$router.push({
@@ -442,6 +427,23 @@ export default {
case "to-car-payload": {
// open dialog instead of redirect to a new page
this.openCarPayloadDialog(data);
break;
}
case "sync": {
// 同步单个料仓数据
this.$http.post(this.urls.syncSingleUrl, data, {
headers: {
"Content-Type": "application/json"
}
}).then(({ data: res }) => {
if (res.code === 0) {
this.$message({
message: '同步成功',
type: 'success'
});
this.getList();
}
})
}
}
},
@@ -464,7 +466,6 @@ export default {
this.openDialog();
return;
}
case "查询": {
const params = {};
if (typeof payload === "object") {
@@ -498,10 +499,12 @@ export default {
this.getList(params);
break;
}
case "同步":
case "全部同步":
this.$http.post(this.urls.syncUrl).then(({ data: res }) => {
console.log('全部同步', res)
if (res.code === 0) {
this.$message({ message: '同步成功', type: 'success' })
this.getList();
}
});

View File

@@ -5,7 +5,7 @@ import { timeFilter } from "@/utils/filters";
export default function () {
const tableProps = [
{ type: "index", label: "序号createTime" },
{ type: "index", label: "序号" },
// { prop: "kilnCode", label: "窑炉" },
{ width: 160, prop: "orderCode", label: "主订单号" },
{ width: 60, prop: "orderCate", label: "子号" },
@@ -20,6 +20,7 @@ export default function () {
// { prop: "shapeCode", label: "砖型" },
{ prop: "bomCode", label: "配方" },
{ width: 120, prop: "qty", label: "混料总量 [kg]" },
{ width: 120, prop: "comqty", label: "已完成量 [kg]" },
{ width: 60, prop: "ai", label: "版本" },
{ prop: "blenderCode", label: "混料机" },
{ width: 160, prop: "", label: "添加时间", filter: timeFilter },

View File

@@ -6,9 +6,9 @@ import { timeFilter, dictFilter } from "@/utils/filters";
export default function () {
const tableProps = [
{ type: "index", label: "序号" },
{ prop: "code", label: "配方号" },
{ prop: "name", label: "牌号" },
{ prop: "createTime", label: "添加时间", filter: timeFilter },
// { prop: "code", label: "配方编码" },
// { prop: "externalCode", label: "版本号" },
// { prop: "specifications", label: "程序号" },
// { prop: "unitDictValue", label: "砖型", filter: dictFilter("unit") },

View File

@@ -1,19 +1,44 @@
import TableOperaionComponent from "@/components/noTemplateComponents/operationComponent";
// import switchBtn from "@/components/noTemplateComponents/switchBtn";
import request from "@/utils/request";
import { dictFilter } from '@/utils/filters'
import { timeFilter } from '@/utils/filters'
import { dictFilter, timeFilter } from '@/utils/filters'
const syncTimeComponent = {
name: 'syncTimeComponent',
props: {
injectData: {
type: Object,
default: () => ({})
}
},
data() {
return {}
},
mounted() {
console.log('syncTimeComponent mounted', this.injectData)
},
render: function (h) {
return h('div', {
style: {
background: this.injectData.syncTime ? 'none' : '#fc1010' ,
color: this.injectData.syncTime ? 'none' : 'white' ,
}
},
timeFilter(this.injectData.syncTime))
}
}
export default function () {
const tableProps = [
{ type: 'index', label: '序号' },
{ prop: "syncTime", label: "同步时间", filter: timeFilter },
{ prop: "name", label: "名称" },
{ prop: "code", label: "编码" },
{ prop: "externalCode", label: "版本" },
{ prop: "sumqty", label: "配方总重量" },
{ prop: "shortDesc", label: "物料销售文本短描述" },
{ prop: "description", label: "物料销售文本描述" },
// no-padding-class 是硬编码在 BaseListTable 里的
{ width: 150, prop: "syncTime", label: "同步时间", className: 'no-padding-class', showOverflowTooltip: false, subcomponent: syncTimeComponent },
{ prop: "code", label: "配方号" },
{ prop: "name", label: "牌号" },
{ prop: "version", label: "版本" },
{ prop: "sumqty", label: "总重量" },
{ prop: "description", label: "物料销售文本" },
{ width: 150, prop: "shortDesc", label: "物料销售文本短描述" },
{ prop: "remark", label: "备注" },
{ prop: "createTime", label: "添加时间", filter: timeFilter },
{
@@ -81,7 +106,7 @@ export default function () {
{
input: true,
label: "版本号",
prop: "externalCode",
prop: "version",
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
elparams: { placeholder: "请输入版本号" },
},
@@ -113,11 +138,12 @@ export default function () {
extraParams: "bomId",
props: [
{ type: "index", label: "序号" },
{ prop: "material", label: "料", isEditField: true },
{ width: 130, prop: "qty", label: "配方料重量", filter: (val) => (!!val ? val + " kg" : "-"), isEditField: true },
{ prop: "material", label: "料", isEditField: true },
{ width: 130, prop: "qty", label: "配方料重量", filter: (val) => (!!val ? val + " kg" : "-"), isEditField: true },
{ width: 130, prop: "sumqty", label: "配方总重量", filter: (val) => (!!val ? val + " kg" : "-"), isEditField: true },
{ prop: "percent", label: "配比 [%]", filter: (val) => (!!val ? val + " %" : "-"), isEditField: true },
{ prop: "remark", label: "备注", isEditField: true },
{ prop: "materialDesc", label: "原料描述", isEditField: true },
{ prop: "createTime", label: "添加时间", filter: timeFilter },
{
prop: "operations",
@@ -150,6 +176,8 @@ export default function () {
options: [],
fetchData: () => this.$http.get("/pms/material/page", { params: { limit: 999, page: 1 } }),
},
],
[
{
input: true,
label: "物料重量[kg]",
@@ -158,6 +186,15 @@ export default function () {
elparams: { placeholder: "请输入物料重量" },
},
],
[
{
input: true,
label: "原料描述",
prop: "materialDesc",
// rules: { required: true, message: "必填项不能为空", trigger: "blur" },
elparams: { placeholder: "请输入原料描述" },
},
],
[{ textarea: true, label: "备注", prop: "remark", elparams: { placeholder: "添加备注" } }],
],
operations: [

View File

@@ -2,7 +2,7 @@
<ListView
:table-config="tableConfig"
:dialog-configs="dialogConfigs"
:listQueryExtra="[{ key: name }]"
:listQueryExtra="[{ key: code }]"
attach-list-query-extra="key"
:trigger-update="triggerUpdateKey"
/>
@@ -21,9 +21,9 @@ export default {
};
},
computed: {
// 配方名称
name() {
return this.$route.query.name || "";
// 配方编码
code() {
return this.$route.query.code || "";
},
},
data() {
@@ -38,9 +38,9 @@ export default {
watch: {
$route: {
handler: function (route) {
if (route.query.name) {
if (route.query.code) {
this.triggerUpdateKey = Math.random().toString();
console.log("[$oute changed] val.query.name", route.query.name, this.triggerUpdateKey);
console.log("[$oute changed] val.query.name", route.query.code, this.triggerUpdateKey);
}
},
immediate: true,

View File

@@ -6,7 +6,7 @@ import { timeFilter } from "@/utils/filters";
export default function () {
const tableProps = [
{ type: "index", label: "序号" },
{ prop: "name", label: "工艺名称" },
// { prop: "name", label: "工艺名称" },
{ prop: "code", label: "工艺编码" },
// { prop: 'version', label: '配方号' },
{ prop: "bomCode", label: "配方号" },
@@ -58,16 +58,17 @@ export default function () {
name: "查询",
},
},
{
button: {
type: "plain",
name: "新增",
permission: "pms:blenderStep:save",
},
},
// {
// button: {
// type: "plain",
// name: "新增",
// permission: "pms:blenderStep:save",
// },
// },
];
const dialogConfigs = {
allowAdd: false,
extraIds: { wsId: 3 }, // 工艺管理里面的相关模块的 dialogWithMenu 需要额外的工序 id
menu: [
{ name: "烧制工艺", key: "info" },
@@ -76,13 +77,13 @@ export default function () {
form: {
rows: [
[
{
input: true,
label: "工艺名称",
prop: "name",
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
elparams: { placeholder: "请输入烧制工艺名称" },
},
// {
// input: true,
// label: "工艺名称",
// prop: "name",
// rules: { required: true, message: "必填项不能为空", trigger: "blur" },
// elparams: { placeholder: "请输入烧制工艺名称" },
// },
{
input: true,
label: "工艺编码",
@@ -137,7 +138,7 @@ export default function () {
subcomponent: TableOperaionComponent,
options: [
{ name: "edit", label: "编辑", icon: "edit-outline", permission: "pms:blenderStepParam:update" },
{ name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:blenderStepParam:delete" },
// { name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:blenderStepParam:delete" },
],
},
],

View File

@@ -135,6 +135,7 @@ export default function () {
label: "基础原料",
prop: "baseMaterialId",
options: [],
optionLabel: 'code',
fetchData: () => this.$http.get('/pms/baseMaterial/page', { params: { limit: 999, page: 1, key: '' } }),
elparams: { placeholder: "请选择基础原料" },
},

View File

@@ -24,9 +24,13 @@ export default function () {
prop: "operations",
name: "操作",
fixed: "right",
width: 90,
width: 120,
subcomponent: TableOperaionComponent,
options: [{ name: "edit", label: "编辑", icon: "edit-outline" }, { name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:materialStorage:delete" }],
options: [
{ name: "edit", label: "编辑", icon: "edit-outline" },
{ name: "sync", label: "同步", icon: "refresh" },
{ name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:materialStorage:delete" }
],
},
];
@@ -47,16 +51,16 @@ export default function () {
name: "查询",
},
},
// {
// button: {
// type: "primary",
// name: "新增",
// permission: "pms:materialStorage:save"
// },
// bind: {
// plain: true,
// }
// },
{
button: {
type: "primary",
name: "全部同步",
permission: ""
},
bind: {
plain: true,
}
},
];
/**
@@ -153,6 +157,8 @@ export default function () {
urls: {
base: "/pms/materialStorageDynamic",
page: "/pms/materialStorageDynamic/page",
syncUrl: "/pms/trans/matStoreSync",
syncSingleUrl: "/pms/trans/matStoreSingleSync"
// subase: '/pms/blenderStepParam',
// subpage: '/pms/blenderStepParam/page',
// more...

View File

@@ -6,10 +6,10 @@ import { timeFilter } from "@/utils/filters";
export default function () {
const tableProps = [
{ type: "index", label: "序号" },
{ prop: "name", label: "工艺名称" },
// { prop: "name", label: "工艺名称" },
{ prop: "code", label: "工艺编码" },
// { prop: 'version', label: '配方号' },
{ prop: "shapeCode", label: "砖型" },
// { prop: "shapeCode", label: "砖型" },
// { prop: 'status', label: '状态', subcomponent: StatusComponent }, // subcomponent
{ prop: "description", label: "详情", subcomponent: TableTextComponent },
{ prop: "remark", label: "备注" },
@@ -34,15 +34,15 @@ export default function () {
placeholder: "请输入工艺名称或编码",
},
},
{
prop: "shape",
label: "砖型",
input: true,
default: { value: "" },
bind: {
placeholder: "请输入砖型",
},
},
// {
// prop: "shape",
// label: "砖型",
// input: true,
// default: { value: "" },
// bind: {
// placeholder: "请输入砖型",
// },
// },
// {
// prop: 'bom',
// label: '配方号',
@@ -58,28 +58,29 @@ export default function () {
name: "查询",
},
},
{
button: {
type: "plain",
name: "新增",
permission: "pms:packingStep:save",
},
},
// {
// button: {
// type: "plain",
// name: "新增",
// permission: "pms:packingStep:save",
// },
// },
];
const dialogConfigs = {
allowAdd: false,
extraIds: { wsId: 5 }, // 工艺管理里面的相关模块的 dialogWithMenu 需要额外的工序 id
menu: [{ name: "包装工艺", key: 'info' }, { name: "工艺参数", key: 'attr', onlyEditMode: true }],
form: {
rows: [
[
{
input: true,
label: "工艺名称",
prop: "name",
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
elparams: { placeholder: "请输入工艺名称" },
},
// {
// input: true,
// label: "工艺名称",
// prop: "name",
// rules: { required: true, message: "必填项不能为空", trigger: "blur" },
// elparams: { placeholder: "请输入工艺名称" },
// },
{
input: true,
label: "工艺编码",
@@ -87,17 +88,17 @@ export default function () {
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
elparams: { placeholder: "请输入工艺编码" },
},
{
select: true,
label: "砖型",
prop: "shapeId",
options: [],
refreshOptionsAfterConfirm: true,
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
elparams: { clearable: true, filterable: true, placeholder: "请选择砖型" },
// 下面参数的 techId 是为 /pms/xxx/listUnR 接口定制的,默认为 -1新增时使用编辑时传对应的 工艺id
fetchData: (techId = -1) => this.$http.get("/pms/shape/listUnR", { params: { wsId: 5, externalCode: '', key: '', techId } }),
},
// {
// select: true,
// label: "砖型",
// prop: "shapeId",
// options: [],
// refreshOptionsAfterConfirm: true,
// rules: { required: true, message: "必填项不能为空", trigger: "blur" },
// elparams: { clearable: true, filterable: true, placeholder: "请选择砖型" },
// // 下面参数的 techId 是为 /pms/xxx/listUnR 接口定制的,默认为 -1新增时使用编辑时传对应的 工艺id
// fetchData: (techId = -1) => this.$http.get("/pms/shape/listUnR", { params: { wsId: 5, externalCode: '', key: '', techId } }),
// },
],
// [
// {
@@ -142,8 +143,8 @@ export default function () {
width: 120,
subcomponent: TableOperaionComponent,
options: [
{ name: { name: "edit", label: "编辑", icon: "edit-outline" }, permission: "pms:blenderStepParam:update" },
{ name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:blenderStepParam:delete" },
{ name: 'edit', label: "编辑", icon: "edit-outline", permission: "pms:blenderStepParam:update" },
// { name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:blenderStepParam:delete" },
],
},
],

View File

@@ -9,6 +9,7 @@ import { getDictDataList } from '@/utils';
export default function () {
const tableProps = [
{ type: "index", label: "序号" },
{ prop: "code", label: "流水号" },
{ prop: "carCode", label: "窑车号" },
{ prop: "orderCode", label: "订单号" },
{ prop: "realQty", label: "数量" },

View File

@@ -6,7 +6,7 @@ import { timeFilter } from "@/utils/filters";
export default function () {
const tableProps = [
{ type: "index", label: "序号" },
{ prop: "name", label: "工艺名称" },
// { prop: "name", label: "工艺名称" },
{ prop: "code", label: "工艺编码" },
// { prop: 'version', label: '配方号' },
{ prop: "shapeCode", label: "砖型" },
@@ -58,28 +58,29 @@ export default function () {
name: "查询",
},
},
{
button: {
type: "plain",
name: "新增",
permission: "pms:shapeStep:save",
},
},
// {
// button: {
// type: "plain",
// name: "新增",
// permission: "pms:shapeStep:save",
// },
// },
];
const dialogConfigs = {
allowAdd: false,
extraIds: { wsId: 2 }, // 工艺管理里面的相关模块的 dialogWithMenu 需要额外的工序 id
menu: [{ name: "压制工艺", key: 'info' }, { name: "工艺参数", key: 'attr', onlyEditMode: true }],
form: {
rows: [
[
{
input: true,
label: "工艺名称",
prop: "name",
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
elparams: { placeholder: "请输入混料程序名称" },
},
// {
// input: true,
// label: "工艺名称",
// prop: "name",
// rules: { required: true, message: "必填项不能为空", trigger: "blur" },
// elparams: { placeholder: "请输入混料程序名称" },
// },
{
input: true,
label: "工艺编码",
@@ -142,7 +143,7 @@ export default function () {
subcomponent: TableOperaionComponent,
options: [
{ name: "edit", label: "编辑", icon: "edit-outline", permission: "pms:blenderStepParam:update" },
{ name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:blenderStepParam:delete" },
// { name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:blenderStepParam:delete" },
],
},
],

View File

@@ -6,7 +6,7 @@ import { timeFilter } from "@/utils/filters";
export default function () {
const tableProps = [
{ type: "index", label: "序号" },
{ prop: "name", label: "工艺名称" },
// { prop: "name", label: "工艺名称" },
{ prop: "code", label: "工艺编码" },
// { prop: 'version', label: '配方号' },
{ prop: "shapeCode", label: "砖型" },
@@ -20,7 +20,11 @@ export default function () {
fixed: "right",
width: 120,
subcomponent: TableOperaionComponent,
options: [ { name: "copy", label: "复制", icon: "copy-document" }, { name: "edit", label: "编辑", icon: "edit-outline" }, { name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:testingStep:delete" }],
options: [
{ name: "copy", label: "复制", icon: "copy-document" },
{ name: "edit", label: "编辑", icon: "edit-outline" },
{ name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:testingStep:delete" }
],
},
];
@@ -58,28 +62,29 @@ export default function () {
name: "查询",
},
},
{
button: {
type: "plain",
name: "新增",
permission: "pms:testingStep:save",
},
},
// {
// button: {
// type: "plain",
// name: "新增",
// permission: "pms:testingStep:save",
// },
// },
];
const dialogConfigs = {
allowAdd: false,
extraIds: { wsId: 4 }, // 工艺管理里面的相关模块的 dialogWithMenu 需要额外的工序 id
menu: [{ name: "检测工艺", key: 'info' }, { name: "工艺参数", key: 'attr', onlyEditMode: true }],
form: {
rows: [
[
{
input: true,
label: "工艺名称",
prop: "name",
rules: { required: true, message: "必填项不能为空", trigger: "blur" },
elparams: { placeholder: "请输入混料程序名称" },
},
// {
// input: true,
// label: "工艺名称",
// prop: "name",
// rules: { required: true, message: "必填项不能为空", trigger: "blur" },
// elparams: { placeholder: "请输入混料程序名称" },
// },
{
input: true,
label: "工艺编码",
@@ -143,7 +148,7 @@ export default function () {
subcomponent: TableOperaionComponent,
options: [
{ name: "edit", label: "编辑", icon: "edit-outline", permission: "pms:blenderStepParam:update" },
{ name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:blenderStepParam:delete" },
// { name: "delete", icon: "delete", label: "删除", emitFull: true, permission: "pms:blenderStepParam:delete" },
],
},
],