Files
one-pipe-system/src/components/business/CodeGeneratorButton.vue
sexygoat 2b3119c549
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 4m51s
fix(operator): fix operator edit issue
2026-04-10 14:00:21 +08:00

68 lines
1.5 KiB
Vue

<template>
<ElButton @click="handleGenerate">
{{ buttonText }}
</ElButton>
</template>
<script setup lang="ts">
import { ElMessage } from 'element-plus'
import {
generateSeriesCode,
generatePackageCode,
generateShopCode,
generateCarrierCode,
generateEnterpriseCode
} from '@/utils/codeGenerator'
interface Props {
// 编码类型: series(套餐系列) | package(套餐) | shop(店铺) | carrier(运营商) | enterprise(企业)
codeType: 'series' | 'package' | 'shop' | 'carrier' | 'enterprise'
// 按钮文字
buttonText?: string
// 表单字段名,用于清除验证
fieldName?: string
}
const props = withDefaults(defineProps<Props>(), {
buttonText: '生成编码'
})
const emit = defineEmits<{
(e: 'generated', code: string): void
}>()
// 生成编码
const handleGenerate = () => {
let code = ''
switch (props.codeType) {
case 'series':
code = generateSeriesCode()
break
case 'package':
code = generatePackageCode()
break
case 'shop':
code = generateShopCode()
break
case 'carrier':
code = generateCarrierCode()
break
case 'enterprise':
code = generateEnterpriseCode()
break
default:
console.log('未知的编码类型')
return
}
// 触发生成事件,将编码传递给父组件
emit('generated', code)
ElMessage.success('编码生成成功')
}
</script>
<style lang="scss" scoped>
// 可以添加特定样式
</style>