打印配置新增三个字段

main
liutao 1 week ago
parent 93c272565b
commit a2884443ef

@ -1,46 +1,49 @@
import request from '@/config/axios'
// 打印机配置 VO
export interface ConfigVO {
id: number // 主键ID
hostName: string // 主机名如PACKING-PC-01不可修改
systemPrinterName: string // 系统打印机名称,关联下拉选项
isDefault: boolean // 是否默认0-否1-是
isEnabled: boolean // 是否启用0-禁用1-启用
remark: string // 备注,记录打印机用途说明,用户不可修改
createdAt: Date // 创建时间
updatedAt: Date // 更新时间
}
// 打印机配置 API
export const ConfigApi = {
// 查询打印机配置分页
getConfigPage: async (params: any) => {
return await request.get({ url: `/printer/config/page`, params })
},
// 查询打印机配置详情
getConfig: async (id: number) => {
return await request.get({ url: `/printer/config/get?id=` + id })
},
// 新增打印机配置
createConfig: async (data: ConfigVO) => {
return await request.post({ url: `/printer/config/create`, data })
},
// 修改打印机配置
updateConfig: async (data: ConfigVO) => {
return await request.put({ url: `/printer/config/update`, data })
},
// 删除打印机配置
deleteConfig: async (id: number) => {
return await request.delete({ url: `/printer/config/delete?id=` + id })
},
// 导出打印机配置 Excel
exportConfig: async (params) => {
return await request.download({ url: `/printer/config/export-excel`, params })
},
}
import request from '@/config/axios'
// 打印机配置 VO
export interface ConfigVO {
id: number // 主键ID
hostName: string // 主机名如PACKING-PC-01不可修改
systemPrinterName: string // 系统打印机名称,关联下拉选项
isDefault: boolean // 是否默认0-否1-是
isEnabled: boolean // 是否启用0-禁用1-启用
businessScenarioCode: string // 业务场景编码
businessScenario: string // 业务场景(字典标签)
scenarioCount: number // 场景数
remark: string // 备注,记录打印机用途说明,用户不可修改
createdAt: Date // 创建时间
updatedAt: Date // 更新时间
}
// 打印机配置 API
export const ConfigApi = {
// 查询打印机配置分页
getConfigPage: async (params: any) => {
return await request.get({ url: `/printer/config/page`, params })
},
// 查询打印机配置详情
getConfig: async (id: number) => {
return await request.get({ url: `/printer/config/get?id=` + id })
},
// 新增打印机配置
createConfig: async (data: ConfigVO) => {
return await request.post({ url: `/printer/config/create`, data })
},
// 修改打印机配置
updateConfig: async (data: ConfigVO) => {
return await request.put({ url: `/printer/config/update`, data })
},
// 删除打印机配置
deleteConfig: async (id: number) => {
return await request.delete({ url: `/printer/config/delete?id=` + id })
},
// 导出打印机配置 Excel
exportConfig: async (params) => {
return await request.download({ url: `/printer/config/export-excel`, params })
},
}

@ -1,4 +1,4 @@
export default {
export default {
common: {
loading: 'Loading...',
inputText: 'Please input',
@ -3340,7 +3340,11 @@ export default {
placeholderHostName: 'Please input host name',
placeholderSystemPrinterName: 'Please input printer name',
placeholderRemark: 'Please input printer remark',
testPrint:'Test Print'
businessScenarioCode:'Biz Scenario Code',
businessScenario:'Biz Scenario',
scenarioCount:'Scenario Count',
placeholderBusinessScenario:'Please select biz scenario',
testPrint:'Test Print'
}
},
QualityManagement: {

@ -1,4 +1,4 @@
export default {
export default {
common: {
loading: '加载中...',
inputText: '请输入',
@ -2833,6 +2833,10 @@ export default {
validatorTypeRequired: '模板类型不能为空',
design: '配置',
designTitle: '模板配置',
businessScenarioCode:'业务场景编码',
businessScenario:'业务场景',
scenarioCount:'场景数',
placeholderBusinessScenario:'请选择业务场景',
testPrint:'测试打印'
}
},

@ -1,4 +1,4 @@
/**
/**
*
*/
import { useDictStoreWithOut } from '@/store/modules/dict'
@ -297,6 +297,8 @@ export enum DICT_TYPE {
IOT_DEVICE_ATTRIBUTE_UNIT = "iot_device_attribute_unit",
IOT_ALARM_REGISTRATION = "alarm_registration",
MES_BUSINESS_SCENARIO = "mes_business_scenario",
PRIMARY_FLAG = "primary_flag",
IS_DEFAULT = 'is_default', // 是否默认

@ -1,4 +1,4 @@
<template>
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
@ -33,6 +33,29 @@
<el-form-item :label="t('TemplateManagement.PrintConfig.isEnabled')" prop="isEnabled">
<el-switch v-model="formData.isEnabled" />
</el-form-item>
<el-form-item :label="t('TemplateManagement.PrintConfig.businessScenario')" prop="businessScenario">
<el-select
v-model="formData.businessScenario"
multiple
clearable
filterable
:placeholder="t('TemplateManagement.PrintConfig.placeholderBusinessScenario')"
style="width:100%"
>
<el-option
v-for="dict in businessScenarioOptions"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="t('TemplateManagement.PrintConfig.businessScenarioCode')" prop="businessScenarioCode">
<el-input v-model="formData.businessScenarioCode" :disabled="true" placeholder="选择业务场景后自动回填" />
</el-form-item>
<el-form-item :label="t('TemplateManagement.PrintConfig.scenarioCount')" prop="scenarioCount">
<el-input-number v-model="formData.scenarioCount" :disabled="true" :min="0" style="width: 200px" />
</el-form-item>
<el-form-item :label="t('TemplateManagement.PrintConfig.remark')" prop="remark">
<el-input v-model="formData.remark" :placeholder="t('TemplateManagement.PrintConfig.placeholderRemark')" />
</el-form-item>
@ -46,6 +69,7 @@
</template>
<script setup lang="ts">
import { ConfigApi, ConfigVO } from '@/api/mes/printconfig/index'
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
import {
autoConnect,
defaultElementTypeProvider,
@ -68,10 +92,26 @@ const formData = ref({
systemPrinterName: undefined,
isDefault: false,
isEnabled: true,
businessScenario: [],
businessScenarioCode: undefined,
scenarioCount: 0,
remark: undefined,
createdAt: undefined,
updatedAt: undefined,
})
const businessScenarioOptions = computed(() => getStrDictOptions(DICT_TYPE.MES_BUSINESS_SCENARIO))
// watch businessScenario multi-select, auto-fill code and count
watch(() => formData.value.businessScenario, (val) => {
if (val && val.length > 0) {
formData.value.businessScenarioCode = val.join(',')
formData.value.scenarioCount = val.length
} else {
formData.value.businessScenarioCode = undefined
formData.value.scenarioCount = 0
}
}, { deep: true })
const formRules = reactive({
hostName: [{ required: false, message: '主机名如PACKING-PC-01不可修改不能为空', trigger: 'blur' }],
systemPrinterName: [{ required: true, message: '系统打印机名称,关联下拉选项不能为空', trigger: 'blur' }],
@ -118,7 +158,12 @@ const open = async (type: string, host: string, id?: number) => {
if (id) {
formLoading.value = true
try {
formData.value = await ConfigApi.getConfig(id)
const data = await ConfigApi.getConfig(id)
formData.value = data
if (data.businessScenarioCode) {
formData.value.businessScenario = data.businessScenarioCode.split(',')
formData.value.scenarioCount = formData.value.businessScenario.length
}
} finally {
formLoading.value = false
}
@ -134,6 +179,13 @@ const submitForm = async () => {
//
formLoading.value = true
try {
//
if (formData.value.businessScenario && formData.value.businessScenario.length > 0) {
const dictMap = new Map(businessScenarioOptions.value.map(d => [d.value, d.label]))
formData.value.businessScenario = formData.value.businessScenario.map((v: string) => dictMap.get(v) || v).join(',')
} else {
formData.value.businessScenario = undefined
}
const data = formData.value as unknown as ConfigVO
if (formType.value === 'create') {
await ConfigApi.createConfig(data)
@ -301,6 +353,9 @@ const resetForm = () => {
systemPrinterName: undefined,
isDefault: false,
isEnabled: true,
businessScenario: [],
businessScenarioCode: undefined,
scenarioCount: 0,
remark: undefined,
createdAt: undefined,
updatedAt: undefined,

@ -74,17 +74,20 @@
<!-- <el-table-column label="主键ID" align="center" prop="id" />-->
<!-- <el-table-column type="selection" width="55" fixed="left" reserve-selection />-->
<el-table-column :label="t('TemplateManagement.PrintConfig.hostName')" align="center" prop="hostName" />
<el-table-column :label="t('TemplateManagement.PrintConfig.systemPrinterName')" align="center" prop="systemPrinterName" />
<el-table-column :label="t('TemplateManagement.PrintConfig.defaultStatus')" align="center" prop="isDefault" >
<el-table-column :label="t('TemplateManagement.PrintConfig.systemPrinterName')" align="center" prop="systemPrinterName" min-width="180px"/>
<el-table-column :label="t('TemplateManagement.PrintConfig.defaultStatus')" align="center" prop="isDefault" width="90px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.IS_DEFAULT" :value="scope.row.isDefault" />
</template>
</el-table-column>
<el-table-column :label="t('TemplateManagement.PrintConfig.isEnabled')" align="center" prop="isEnabled" >
<el-table-column :label="t('TemplateManagement.PrintConfig.isEnabled')" align="center" prop="isEnabled" width="90px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.IS_ENABLED" :value="scope.row.isEnabled" />
</template>
</el-table-column>
<el-table-column :label="t('TemplateManagement.PrintConfig.businessScenarioCode')" align="center" prop="businessScenarioCode" min-width="180px"/>
<el-table-column :label="t('TemplateManagement.PrintConfig.businessScenario')" align="center" prop="businessScenario" min-width="180px"/>
<el-table-column :label="t('TemplateManagement.PrintConfig.scenarioCount')" align="center" prop="scenarioCount" width="70px" />
<el-table-column :label="t('TemplateManagement.PrintConfig.remark')" align="center" prop="remark" />
<el-table-column
:label="t('TemplateManagement.PrintConfig.createTime')"

Loading…
Cancel
Save