diff --git a/src/api/system/codingrules/details.ts b/src/api/system/codingrules/details.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9c23189f37f45960924beb1818d4af3560fa44dc
--- /dev/null
+++ b/src/api/system/codingrules/details.ts
@@ -0,0 +1,45 @@
+import request from '@/config/axios'
+
+export interface CodingRulesDetailsVO {
+ id: string
+ ruleId: string
+ orderNum: number
+ type: string
+ value: string
+ len: number
+ initial: number
+ stepSize: number
+ fillKey: string
+ remark: string
+ deletedTime: Date
+}
+
+// 查询编码规则明细列表
+export const getCodingRulesDetailsPage = async (params) => {
+ return await request.get({ url: '/system/coding-rules/getDetails', params })
+}
+
+// 查询编码规则明细详情
+export const getCodingRulesDetails = async (id: number) => {
+ return await request.get({ url: '/system/coding-rules/getDetailInfo?id=' + id })
+}
+
+// 新增编码规则明细
+export const createCodingRulesDetails = async (data: CodingRulesDetailsVO) => {
+ return await request.post({ url: '/system/coding-rules/insertDetails', data })
+}
+
+// 修改编码规则明细
+export const updateCodingRulesDetails = async (data: CodingRulesDetailsVO) => {
+ return await request.put({ url: '/system/coding-rules/updateDetails', data })
+}
+
+// 删除编码规则明细
+export const deleteCodingRulesDetails = async (id: number) => {
+ return await request.delete({ url: '/system/coding-rules/deleteDetails?id=' + id })
+}
+
+// 导出编码规则明细 Excel
+export const exportCodingRulesDetailsApi = async (params) => {
+ return await request.download({ url: '/system/coding-rules-details/export-excel', params })
+}
diff --git a/src/api/system/codingrules/index.ts b/src/api/system/codingrules/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..fc2cef17be68b2cf02b8543854afda8efa888f9f
--- /dev/null
+++ b/src/api/system/codingrules/index.ts
@@ -0,0 +1,44 @@
+import request from '@/config/axios'
+
+export interface CodingRulesVO {
+ id: string
+ code: string
+ name: string
+ remark: string
+ deletedTime: Date
+}
+
+// 查询编号规则表头列表
+export const getCodingRulesPage = async (params) => {
+ return await request.get({ url: '/system/coding-rules/page', params })
+}
+
+// 查询编号规则表头详情
+export const getCodingRules = async (id: number) => {
+ return await request.get({ url: '/system/coding-rules/get?id=' + id })
+}
+
+// 新增编号规则表头
+export const createCodingRules = async (data: CodingRulesVO) => {
+ return await request.post({ url: '/system/coding-rules/create', data })
+}
+
+// 修改编号规则表头
+export const updateCodingRules = async (data: CodingRulesVO) => {
+ return await request.put({ url: '/system/coding-rules/update', data })
+}
+
+// 删除编号规则表头
+export const deleteCodingRules = async (id: number) => {
+ return await request.delete({ url: '/system/coding-rules/delete?id=' + id })
+}
+
+// 导出编号规则表头 Excel
+export const exportCodingRulesApi = async (params) => {
+ return await request.download({ url: '/system/coding-rules/export-excel', params })
+}
+
+// 预览编号规则
+export const previewCodingRulesApi = async (params) => {
+ return await request.get({ url: '/system/coding-rules/genCodingRules', params })
+}
diff --git a/src/views/system/codingrules/CodingRulesForm.vue b/src/views/system/codingrules/CodingRulesForm.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7cdf4aefa562a78614d6565812e7145be7ff7ba0
--- /dev/null
+++ b/src/views/system/codingrules/CodingRulesForm.vue
@@ -0,0 +1,65 @@
+
+
+
+
diff --git a/src/views/system/codingrules/codingRules.data.ts b/src/views/system/codingrules/codingRules.data.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bf4fc7cc45e075db8812f82605c15ea81dfee8a7
--- /dev/null
+++ b/src/views/system/codingrules/codingRules.data.ts
@@ -0,0 +1,55 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const rules = reactive({
+ code: [required],
+ name: [required],
+})
+
+// CrudSchema https://doc.iocoder.cn/vue3/crud-schema/
+const crudSchemas = reactive([
+ {
+ label: 'id',
+ field: 'id',
+ isForm: false,
+ isTable: false
+ },
+ {
+ label: '规则编码',
+ field: 'code',
+ isSearch: true,
+ },
+ {
+ label: '名称',
+ field: 'name',
+ isSearch: true,
+ },
+ {
+ label: '描述',
+ field: 'remark',
+ isSearch: true,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ width: 220
+ }
+])
+export const { allSchemas } = useCrudSchemas(crudSchemas)
diff --git a/src/views/system/codingrules/details/CodingRulesDetailsForm.vue b/src/views/system/codingrules/details/CodingRulesDetailsForm.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7dd16ab9dcb0de16ba0f566c1e871b8ff11abd48
--- /dev/null
+++ b/src/views/system/codingrules/details/CodingRulesDetailsForm.vue
@@ -0,0 +1,130 @@
+
+
+
+
diff --git a/src/views/system/codingrules/details/codingRulesDetails.data.ts b/src/views/system/codingrules/details/codingRulesDetails.data.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6878d83e242748c3f95ef3c21562456149af3371
--- /dev/null
+++ b/src/views/system/codingrules/details/codingRulesDetails.data.ts
@@ -0,0 +1,136 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const rules = reactive({
+ ruleId: [required],
+ orderNum: [required],
+ type: [required],
+})
+
+// CrudSchema https://doc.iocoder.cn/vue3/crud-schema/
+const crudSchemas = reactive([
+ {
+ label: 'id',
+ field: 'id',
+ isForm: false,
+ isTable: false,
+ },
+ {
+ label: '编码规则头id',
+ field: 'ruleId',
+ isSearch: false,
+ isTable: false,
+ isForm: false
+ },
+ {
+ label: '序号',
+ field: 'orderNum',
+ isSearch: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '类型',
+ field: 'type',
+ isSearch: false,
+ dictType: DICT_TYPE.CODING_RULES_TYPE
+ },
+ {
+ label: '设置值',
+ field: 'value',
+ isSearch: false,
+ },
+ {
+ label: '长度',
+ field: 'len',
+ isSearch: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '起始值',
+ field: 'initial',
+ isSearch: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '步长',
+ field: 'stepSize',
+ isSearch: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '补位符',
+ field: 'fillKey',
+ isSearch: false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ isSearch: false,
+ form: {
+ component: 'Input',
+ componentProps: {
+ type: 'textarea',
+ rows: 3
+ },
+ colProps: {
+ span: 24
+ }
+ }
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletedTime',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false
+ }
+])
+export const { allSchemas } = useCrudSchemas(crudSchemas)
diff --git a/src/views/system/codingrules/details/index.vue b/src/views/system/codingrules/details/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..8ca6287d9782d6ff851ca8a7c52a948cc02db52a
--- /dev/null
+++ b/src/views/system/codingrules/details/index.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+ 新增
+
+
+ 预览编码规则
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/codingrules/index.vue b/src/views/system/codingrules/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..a8b40b31aafb9d8f43ceab72f8d6d5de9e1807b5
--- /dev/null
+++ b/src/views/system/codingrules/index.vue
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+ 预览
+
+
+ 规则设置
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+