mirror of
https://gitee.com/likeadmin/likeadmin_java.git
synced 2026-05-22 22:49:19 +08:00
模板调整
This commit is contained in:
@@ -5,6 +5,11 @@ export function ${moduleName}Lists(params?: Record<string, any>) {
|
||||
return request.get({ url: '/${moduleName}/list', params })
|
||||
}
|
||||
|
||||
// ${functionName}详情
|
||||
export function ${moduleName}Detail(params: Record<string, any>) {
|
||||
return request.post({ url: '/${moduleName}/detail', params })
|
||||
}
|
||||
|
||||
// ${functionName}新增
|
||||
export function ${moduleName}Add(params: Record<string, any>) {
|
||||
return request.post({ url: '/${moduleName}/add', params })
|
||||
|
||||
@@ -60,6 +60,26 @@
|
||||
#end
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
#elseif($column.htmlType=="select")
|
||||
<el-form-item label="${column.columnComment}" prop="${column.javaField}">
|
||||
<el-select v-model="formData.${column.javaField}" placeholder="请选择${column.columnComment}">
|
||||
#if($column.dictType!="")
|
||||
<el-option
|
||||
v-for="(item, index) in dictData.${column.dictType}"
|
||||
:key="index"
|
||||
:label="item.name"
|
||||
#if($column.javaType == "Integer")
|
||||
:value="parseInt(item.value)"
|
||||
#else
|
||||
:value="item.value"
|
||||
#end
|
||||
:disabled="!item.status"
|
||||
/>
|
||||
#else
|
||||
<el-option label="请选择字典生成" value="" />
|
||||
#end
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
#elseif($column.htmlType=="radio")
|
||||
<el-form-item label="${column.columnComment}" prop="${column.javaField}">
|
||||
<el-radio-group v-model="formData.${column.javaField}" placeholder="请选择${column.columnComment}">
|
||||
@@ -67,7 +87,11 @@
|
||||
<el-radio
|
||||
v-for="(item, index) in dictData.${column.dictType}"
|
||||
:key="index"
|
||||
#if($column.javaType == "Integer")
|
||||
:label="parseInt(item.value)"
|
||||
#else
|
||||
:label="item.value"
|
||||
#end
|
||||
:disabled="!item.status"
|
||||
>
|
||||
{{ item.name }}
|
||||
@@ -103,117 +127,122 @@
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import {
|
||||
${moduleName}Edit,
|
||||
${moduleName}Add,
|
||||
#if($table.treePrimary && $table.treeParent)
|
||||
${moduleName}Lists
|
||||
#end
|
||||
} from '@/api/${moduleName}'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import feedback from '@/utils/feedback'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import {
|
||||
#if($table.treePrimary && $table.treeParent)
|
||||
const treeList = ref<any[]>([])
|
||||
${moduleName}Lists,
|
||||
#end
|
||||
const mode = ref('add')
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑${functionName}' : '新增${functionName}'
|
||||
${moduleName}Edit,
|
||||
${moduleName}Add,
|
||||
${moduleName}Detail
|
||||
} from '@/api/${moduleName}'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import feedback from '@/utils/feedback'
|
||||
import type { PropType } from 'vue'
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
#if($table.treePrimary && $table.treeParent)
|
||||
const treeList = ref<any[]>([])
|
||||
#end
|
||||
const mode = ref('add')
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑${functionName}' : '新增${functionName}'
|
||||
})
|
||||
|
||||
const formData = reactive({
|
||||
#foreach ($column in $columns)
|
||||
#if($column.javaField==$primaryKey)
|
||||
${primaryKey}: '',
|
||||
#elseif($column.isEdit)
|
||||
#if($column.htmlType=="checkbox")
|
||||
${column.javaField}: [],
|
||||
#else
|
||||
${column.javaField}: '',
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
})
|
||||
|
||||
const formRules = {
|
||||
#foreach ($column in $columns)
|
||||
#if($column.isEdit && $column.isRequired)
|
||||
${column.javaField}: [
|
||||
{
|
||||
required: true,
|
||||
#if($column.htmlType=="checkbox" || $column.htmlType=="datetime" || $column.htmlType=="radio" || $column.htmlType=="select")
|
||||
message: '请选择${column.columnComment}',
|
||||
#else
|
||||
message: '请输入${column.columnComment}',
|
||||
#end
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
#end
|
||||
#end
|
||||
}
|
||||
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = {...formData}
|
||||
#foreach ($column in $columns)
|
||||
#if($column.htmlType == "checkbox")
|
||||
data.${column.javaField} = data.${column.javaField}.join(",");
|
||||
#end
|
||||
#end
|
||||
mode.value == 'edit' ? await ${moduleName}Edit(data) : await ${moduleName}Add(data)
|
||||
popupRef.value?.close()
|
||||
feedback.msgSuccess('操作成功')
|
||||
emit('success')
|
||||
}
|
||||
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
const setFormData = (row: Record<string, any>) => {
|
||||
const data = await ${moduleName}Detail({
|
||||
${primaryKey}: row.${primaryKey}
|
||||
})
|
||||
|
||||
const formData = reactive({
|
||||
#foreach ($column in $columns)
|
||||
#if($column.javaField==$primaryKey)
|
||||
${primaryKey}: '',
|
||||
#elseif($column.isEdit)
|
||||
#if($column.htmlType=="checkbox")
|
||||
${column.javaField}: [],
|
||||
#else
|
||||
${column.javaField}: '',
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
})
|
||||
|
||||
const formRules = {
|
||||
#foreach ($column in $columns)
|
||||
#if($column.isEdit && $column.isRequired)
|
||||
${column.javaField}: [
|
||||
{
|
||||
required: true,
|
||||
#if($column.htmlType=="checkbox" || $column.htmlType=="datetime" || $column.htmlType=="radio" || $column.htmlType=="select")
|
||||
message: '请选择${column.columnComment}',
|
||||
#else
|
||||
message: '请输入${column.columnComment}',
|
||||
#end
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
#end
|
||||
#end
|
||||
}
|
||||
|
||||
const handleSubmit = async () => {
|
||||
await formRef.value?.validate()
|
||||
const data = {...formData}
|
||||
#foreach ($column in $columns)
|
||||
#if($column.htmlType == "checkbox")
|
||||
data.${column.javaField} = data.${column.javaField}.join(",");
|
||||
#end
|
||||
#end
|
||||
mode.value == 'edit' ? await ${moduleName}Edit(data) : await ${moduleName}Add(data)
|
||||
popupRef.value?.close()
|
||||
feedback.msgSuccess('操作成功')
|
||||
emit('success')
|
||||
}
|
||||
|
||||
const open = (type = 'add') => {
|
||||
mode.value = type
|
||||
popupRef.value?.open()
|
||||
}
|
||||
|
||||
const setFormData = (data: Record<string, any>) => {
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
#foreach ($column in $columns)
|
||||
#if($column.htmlType == "checkbox")
|
||||
formData.${column.javaField} = form.${column.javaField}.split(',')
|
||||
#end
|
||||
#end
|
||||
}
|
||||
for (const key in formData) {
|
||||
if (data[key] != null && data[key] != undefined) {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
#foreach ($column in $columns)
|
||||
#if($column.htmlType == "checkbox")
|
||||
//@ts-ignore
|
||||
formData.${column.javaField} = String(data.${column.javaField}).split(',')
|
||||
#end
|
||||
#end
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
}
|
||||
#if($table.treePrimary && $table.treeParent)
|
||||
const handleClose = () => {
|
||||
emit('close')
|
||||
}
|
||||
#if($table.treePrimary && $table.treeParent)
|
||||
|
||||
// 树表
|
||||
const getLists = async () => {
|
||||
const data: any = await ${moduleName}List()
|
||||
const item = { ${table.treePrimary}: 0, ${table.treeName}: '顶级', children: [] }
|
||||
item.children = data
|
||||
treeList.value.push(item)
|
||||
}
|
||||
// 树表
|
||||
const getLists = async () => {
|
||||
const data: any = await ${moduleName}List()
|
||||
const item = { ${table.treePrimary}: 0, ${table.treeName}: '顶级', children: [] }
|
||||
item.children = data
|
||||
treeList.value.push(item)
|
||||
}
|
||||
|
||||
getLists()
|
||||
#end
|
||||
getLists()
|
||||
#end
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData
|
||||
})
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
#if($column.isQuery==1)
|
||||
#if($column.htmlType=="datetime")
|
||||
<el-form-item label="${column.columnComment}" prop="${column.javaField}">
|
||||
<data-picker
|
||||
v-model:startTime="queryParams.${column.javaField}Start"
|
||||
v-model:endTime="queryParams.${column.javaField}End"
|
||||
<daterange-picker
|
||||
v-model:startTime="queryParams.createTimeStart"
|
||||
v-model:endTime="queryParams.createTimeEnd"
|
||||
/>
|
||||
</el-form-item>
|
||||
#elseif($column.htmlType=="select" || $column.htmlType == "radio")
|
||||
@@ -124,88 +124,88 @@
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ${moduleName}Edit, ${moduleName}Delete, ${moduleName}Lists } from '@/api/${moduleName}'
|
||||
import EditPopup from './edit.vue'
|
||||
import feedback from '@/utils/feedback'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { ${moduleName}Edit, ${moduleName}Delete, ${moduleName}Lists } from '@/api/${moduleName}'
|
||||
import EditPopup from './edit.vue'
|
||||
import feedback from '@/utils/feedback'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
|
||||
const tableRef = shallowRef<InstanceType<typeof ElTable>>()
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
let isExpand = false
|
||||
const showEdit = ref(false)
|
||||
const loading = ref(false)
|
||||
const lists = ref<any[]>([])
|
||||
|
||||
const queryParams = reactive({
|
||||
#foreach ($column in $columns)
|
||||
#if($column.isQuery)
|
||||
#if($column.htmlType=="datetime")
|
||||
${column.javaField}Start: '',
|
||||
${column.javaField}End: '',
|
||||
#else
|
||||
${column.javaField}: '',
|
||||
#end
|
||||
const tableRef = shallowRef<InstanceType<typeof ElTable>>()
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
let isExpand = false
|
||||
const showEdit = ref(false)
|
||||
const loading = ref(false)
|
||||
const lists = ref<any[]>([])
|
||||
|
||||
const queryParams = reactive({
|
||||
#foreach ($column in $columns)
|
||||
#if($column.isQuery)
|
||||
#if($column.htmlType=="datetime")
|
||||
${column.javaField}Start: '',
|
||||
${column.javaField}End: '',
|
||||
#else
|
||||
${column.javaField}: '',
|
||||
#end
|
||||
#end
|
||||
})
|
||||
#end
|
||||
#end
|
||||
})
|
||||
|
||||
const getLists = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
const data = await ${moduleName}Lists(queryParams)
|
||||
lists.value = data
|
||||
loading.value = false
|
||||
} catch (error) {
|
||||
loading.value = false
|
||||
}
|
||||
const getLists = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
const data = await ${moduleName}Lists(queryParams)
|
||||
lists.value = data
|
||||
loading.value = false
|
||||
} catch (error) {
|
||||
loading.value = false
|
||||
}
|
||||
#if($dictFields.size()>=1)
|
||||
#set($dictSize = $dictFields.size() - 1)
|
||||
}
|
||||
|
||||
const { dictData } = useDictData<{
|
||||
#foreach ($dict in $dictFields)
|
||||
${dict}: any[]
|
||||
#end
|
||||
}>([#foreach ($dict in $dictFields)'${dict}'#if($dictFields[$dictSize] != ${dict}),#end#end])
|
||||
#end
|
||||
#if($dictFields.size()>=1)
|
||||
#set($dictSize = $dictFields.size() - 1)
|
||||
const { dictData } = useDictData<{
|
||||
#foreach ($dict in $dictFields)
|
||||
${dict}: any[]
|
||||
#end
|
||||
}>([#foreach ($dict in $dictFields)'${dict}'#if($dictFields[$dictSize] != ${dict}),#end#end])
|
||||
|
||||
const handleAdd = async (${table.treePrimary}?: number) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
if (${table.treePrimary}) {
|
||||
editRef.value?.setFormData({
|
||||
${table.treeParent}: ${table.treePrimary}
|
||||
})
|
||||
}
|
||||
editRef.value?.open('add')
|
||||
|
||||
const handleAdd = async (${table.treePrimary}?: number) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
if (${table.treePrimary}) {
|
||||
editRef.value?.setFormData({
|
||||
${table.treeParent}: ${table.treePrimary}
|
||||
})
|
||||
}
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
const handleDelete = async (${primaryKey}: number) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await menuDelete({ ${primaryKey} })
|
||||
getLists()
|
||||
}
|
||||
|
||||
const handleExpand = () => {
|
||||
isExpand = !isExpand
|
||||
toggleExpand(lists.value, isExpand)
|
||||
}
|
||||
|
||||
const toggleExpand = (children: any[], unfold = true) => {
|
||||
for (const key in children) {
|
||||
tableRef.value?.toggleRowExpansion(children[key], unfold)
|
||||
if (children[key].children) {
|
||||
toggleExpand(children[key].children!, unfold)
|
||||
}
|
||||
}
|
||||
}
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
const handleDelete = async (${primaryKey}: number) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await menuDelete({ ${primaryKey} })
|
||||
getLists()
|
||||
}
|
||||
|
||||
const handleExpand = () => {
|
||||
isExpand = !isExpand
|
||||
toggleExpand(lists.value, isExpand)
|
||||
}
|
||||
|
||||
const toggleExpand = (children: any[], unfold = true) => {
|
||||
for (const key in children) {
|
||||
tableRef.value?.toggleRowExpansion(children[key], unfold)
|
||||
if (children[key].children) {
|
||||
toggleExpand(children[key].children!, unfold)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
#if($column.isQuery==1)
|
||||
#if($column.htmlType=="datetime")
|
||||
<el-form-item label="${column.columnComment}" prop="${column.javaField}">
|
||||
<data-picker
|
||||
v-model:startTime="queryParams.${column.javaField}Start"
|
||||
v-model:endTime="queryParams.${column.javaField}End"
|
||||
<daterange-picker
|
||||
v-model:startTime="queryParams.createTimeStart"
|
||||
v-model:endTime="queryParams.createTimeEnd"
|
||||
/>
|
||||
</el-form-item>
|
||||
#elseif($column.htmlType=="select" || $column.htmlType == "radio")
|
||||
@@ -104,7 +104,7 @@
|
||||
v-perms="['${moduleName}:del']"
|
||||
type="danger"
|
||||
link
|
||||
@click="handleDelete(row.${primaryKey})"
|
||||
@click="handleDelete([row.${primaryKey}])"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
@@ -127,63 +127,62 @@
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ${moduleName}Delete, ${moduleName}Lists } from '@/api/${moduleName}'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
const showEdit = ref(false)
|
||||
const queryParams = reactive({
|
||||
#foreach ($column in $columns)
|
||||
#if($column.isQuery)
|
||||
#if($column.htmlType=="datetime")
|
||||
${column.javaField}Start: '',
|
||||
${column.javaField}End: '',
|
||||
#else
|
||||
${column.javaField}: '',
|
||||
#end
|
||||
import { ${moduleName}Delete, ${moduleName}Lists } from '@/api/${moduleName}'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import feedback from '@/utils/feedback'
|
||||
import EditPopup from './edit.vue'
|
||||
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
|
||||
const showEdit = ref(false)
|
||||
const queryParams = reactive({
|
||||
#foreach ($column in $columns)
|
||||
#if($column.isQuery)
|
||||
#if($column.htmlType=="datetime")
|
||||
${column.javaField}Start: '',
|
||||
${column.javaField}End: '',
|
||||
#else
|
||||
${column.javaField}: '',
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
})
|
||||
|
||||
const { pager, getLists, resetPage, resetParams } = usePaging({
|
||||
fetchFun: ${moduleName}Lists,
|
||||
params: queryParams
|
||||
})
|
||||
|
||||
#if($dictFields.size()>=1)
|
||||
#set($dictSize = $dictFields.size() - 1)
|
||||
const { dictData } = useDictData<{
|
||||
#foreach ($dict in $dictFields)
|
||||
${dict}: any[]
|
||||
#end
|
||||
})
|
||||
}>([#foreach ($dict in $dictFields)'${dict}'#if($dictFields[$dictSize] != ${dict}),#end#end])
|
||||
|
||||
const { pager, getLists, resetPage, resetParams } = usePaging({
|
||||
fetchFun: ${moduleName}Lists,
|
||||
params: queryParams
|
||||
})
|
||||
#if($dictFields.size()>=1)
|
||||
#set($dictSize = $dictFields.size() - 1)
|
||||
const selectData = ref<any[]>([])
|
||||
const handleSelectionChange = (selection: any[]) => {
|
||||
selectData.value = selection.map(item => item.${primaryKey})
|
||||
}
|
||||
|
||||
const { dictData } = useDictData<{
|
||||
#foreach ($dict in $dictFields)
|
||||
${dict}: any[]
|
||||
#end
|
||||
}>([#foreach ($dict in $dictFields)'${dict}'#if($dictFields[$dictSize] != ${dict}),#end#end])
|
||||
#end
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
const selectData = ref<any[]>([])
|
||||
const handleSelectionChange = (selection: any[]) => {
|
||||
selectData.value = selection.map(item => item.${primaryKey})
|
||||
}
|
||||
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('add')
|
||||
}
|
||||
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
const handleDelete = async (${primaryKey}: number || number[]) => {
|
||||
await ${moduleName}Delete({ ${primaryKey} })
|
||||
feedback.msgSuccess('删除成功')
|
||||
getLists()
|
||||
}
|
||||
const handleEdit = async (data: any) => {
|
||||
showEdit.value = true
|
||||
await nextTick()
|
||||
editRef.value?.open('edit')
|
||||
editRef.value?.setFormData(data)
|
||||
}
|
||||
|
||||
const handleDelete = async (${primaryKey}: number[]) => {
|
||||
await ${moduleName}Delete({ ${primaryKey} })
|
||||
feedback.msgSuccess('删除成功')
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user