mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2025-02-01 01:50:04 +08:00
fix: 代码生成器
This commit is contained in:
parent
ff938a9e30
commit
aa983a6fa9
@ -1,6 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ElDropdown, ElDropdownMenu, ElDropdownItem } from 'element-plus'
|
import { ElDropdown, ElDropdownMenu, ElDropdownItem } from 'element-plus'
|
||||||
import { PropType, ref } from 'vue'
|
import { PropType, ref, defineEmits } from 'vue'
|
||||||
import { useI18n } from '@/hooks/web/useI18n'
|
import { useI18n } from '@/hooks/web/useI18n'
|
||||||
import { useDesign } from '@/hooks/web/useDesign'
|
import { useDesign } from '@/hooks/web/useDesign'
|
||||||
import type { RouteLocationNormalizedLoaded } from 'vue-router'
|
import type { RouteLocationNormalizedLoaded } from 'vue-router'
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { reactive, computed, watch, onMounted, unref, toRef, PropType } from 'vue'
|
import { reactive, computed, watch, onMounted, unref, toRef, PropType, defineEmits } from 'vue'
|
||||||
import { isNumber } from '@/utils/is'
|
import { isNumber } from '@/utils/is'
|
||||||
import { propTypes } from '@/utils/propTypes'
|
import { propTypes } from '@/utils/propTypes'
|
||||||
import { useDesign } from '@/hooks/web/useDesign'
|
import { useDesign } from '@/hooks/web/useDesign'
|
||||||
|
@ -24,7 +24,7 @@ import {
|
|||||||
ElRadioButton,
|
ElRadioButton,
|
||||||
ElMessage
|
ElMessage
|
||||||
} from 'element-plus'
|
} from 'element-plus'
|
||||||
import { ref, computed, onMounted, reactive, watch, PropType } from 'vue'
|
import { ref, computed, onMounted, reactive, watch, PropType, defineEmits } from 'vue'
|
||||||
interface shortcutsType {
|
interface shortcutsType {
|
||||||
text: string
|
text: string
|
||||||
value: string
|
value: string
|
||||||
|
@ -4,6 +4,7 @@ import networkError from '@/assets/svgs/500.svg'
|
|||||||
import noPermission from '@/assets/svgs/403.svg'
|
import noPermission from '@/assets/svgs/403.svg'
|
||||||
import { propTypes } from '@/utils/propTypes'
|
import { propTypes } from '@/utils/propTypes'
|
||||||
import { useI18n } from '@/hooks/web/useI18n'
|
import { useI18n } from '@/hooks/web/useI18n'
|
||||||
|
import { defineEmits } from 'vue'
|
||||||
|
|
||||||
interface ErrorMap {
|
interface ErrorMap {
|
||||||
url: string
|
url: string
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { cloneDeep } from 'lodash-es'
|
import { cloneDeep } from 'lodash-es'
|
||||||
import { ref, computed, CSSProperties, toRef, watch } from 'vue'
|
import { ref, computed, CSSProperties, toRef, watch, defineEmits } from 'vue'
|
||||||
import {
|
import {
|
||||||
ElInput,
|
ElInput,
|
||||||
ElPopover,
|
ElPopover,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { PropType } from 'vue'
|
import { PropType, defineEmits } from 'vue'
|
||||||
import { Highlight } from '@/components/Highlight'
|
import { Highlight } from '@/components/Highlight'
|
||||||
import { useDesign } from '@/hooks/web/useDesign'
|
import { useDesign } from '@/hooks/web/useDesign'
|
||||||
import { propTypes } from '@/utils/propTypes'
|
import { propTypes } from '@/utils/propTypes'
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, unref, computed, watch } from 'vue'
|
import { ref, unref, computed, watch, defineEmits } from 'vue'
|
||||||
import { ElInput } from 'element-plus'
|
import { ElInput } from 'element-plus'
|
||||||
import { propTypes } from '@/utils/propTypes'
|
import { propTypes } from '@/utils/propTypes'
|
||||||
import { useConfigGlobal } from '@/hooks/web/useConfigGlobal'
|
import { useConfigGlobal } from '@/hooks/web/useConfigGlobal'
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { PropType, nextTick, ref, watch, computed, unref } from 'vue'
|
import { PropType, nextTick, ref, watch, computed, unref, defineEmits } from 'vue'
|
||||||
import QRCode from 'qrcode'
|
import QRCode from 'qrcode'
|
||||||
import { QRCodeRenderersOptions } from 'qrcode'
|
import { QRCodeRenderersOptions } from 'qrcode'
|
||||||
import { cloneDeep } from 'lodash-es'
|
import { cloneDeep } from 'lodash-es'
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { Form } from '@/components/Form'
|
import { Form } from '@/components/Form'
|
||||||
import { PropType, computed, unref, ref } from 'vue'
|
import { PropType, computed, unref, ref, defineEmits } from 'vue'
|
||||||
import { propTypes } from '@/utils/propTypes'
|
import { propTypes } from '@/utils/propTypes'
|
||||||
import { ElButton } from 'element-plus'
|
import { ElButton } from 'element-plus'
|
||||||
import { useI18n } from '@/hooks/web/useI18n'
|
import { useI18n } from '@/hooks/web/useI18n'
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { PropType, watch, unref, ref } from 'vue'
|
import { PropType, watch, unref, ref, defineEmits } from 'vue'
|
||||||
import { propTypes } from '@/utils/propTypes'
|
import { propTypes } from '@/utils/propTypes'
|
||||||
import { useDesign } from '@/hooks/web/useDesign'
|
import { useDesign } from '@/hooks/web/useDesign'
|
||||||
|
|
||||||
|
@ -26,6 +26,10 @@ const activeName = ref('cloum')
|
|||||||
const basicInfoRef = ref<ComponentRef<typeof BasicInfoForm>>()
|
const basicInfoRef = ref<ComponentRef<typeof BasicInfoForm>>()
|
||||||
const genInfoRef = ref<ComponentRef<typeof GenInfoForm>>()
|
const genInfoRef = ref<ComponentRef<typeof GenInfoForm>>()
|
||||||
const cloumInfoRef = ref(null)
|
const cloumInfoRef = ref(null)
|
||||||
|
const parentMenuId = ref<number>()
|
||||||
|
const menu = (id: number) => {
|
||||||
|
parentMenuId.value = id
|
||||||
|
}
|
||||||
const submitForm = async () => {
|
const submitForm = async () => {
|
||||||
const basicInfo = unref(basicInfoRef)
|
const basicInfo = unref(basicInfoRef)
|
||||||
const genInfo = unref(genInfoRef)
|
const genInfo = unref(genInfoRef)
|
||||||
@ -38,6 +42,11 @@ const submitForm = async () => {
|
|||||||
table: Object.assign({}, basicInfoData, genInfoData),
|
table: Object.assign({}, basicInfoData, genInfoData),
|
||||||
columns: cloumCurrentRow.value
|
columns: cloumCurrentRow.value
|
||||||
}
|
}
|
||||||
|
if (parentMenuId.value) {
|
||||||
|
genInfoData.parentMenuId = parentMenuId.value
|
||||||
|
} else {
|
||||||
|
genInfoData.parentMenuId = 0
|
||||||
|
}
|
||||||
await updateCodegenTableApi(genTable)
|
await updateCodegenTableApi(genTable)
|
||||||
ElMessage.success(t('common.updateSuccess'))
|
ElMessage.success(t('common.updateSuccess'))
|
||||||
push('/infra/codegen')
|
push('/infra/codegen')
|
||||||
@ -57,7 +66,7 @@ onMounted(() => {
|
|||||||
<CloumInfoForm ref="cloumInfoRef" :info="cloumCurrentRow" />
|
<CloumInfoForm ref="cloumInfoRef" :info="cloumCurrentRow" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="生成信息" name="genInfo">
|
<el-tab-pane label="生成信息" name="genInfo">
|
||||||
<GenInfoForm ref="genInfoRef" :genInfo="tableCurrentRow" />
|
<GenInfoForm ref="genInfoRef" :genInfo="tableCurrentRow" @menu="menu" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
<template #right>
|
<template #right>
|
||||||
|
@ -15,7 +15,8 @@ const props = defineProps({
|
|||||||
default: () => null
|
default: () => null
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
const defaultProps = {
|
const menuProps = {
|
||||||
|
checkStrictly: true,
|
||||||
children: 'children',
|
children: 'children',
|
||||||
label: 'name',
|
label: 'name',
|
||||||
value: 'id'
|
value: 'id'
|
||||||
@ -31,7 +32,6 @@ const rules = reactive({
|
|||||||
})
|
})
|
||||||
const templateTypeOptions = getIntDictOptions(DICT_TYPE.INFRA_CODEGEN_TEMPLATE_TYPE)
|
const templateTypeOptions = getIntDictOptions(DICT_TYPE.INFRA_CODEGEN_TEMPLATE_TYPE)
|
||||||
const sceneOptions = getIntDictOptions(DICT_TYPE.INFRA_CODEGEN_SCENE)
|
const sceneOptions = getIntDictOptions(DICT_TYPE.INFRA_CODEGEN_SCENE)
|
||||||
const parentMenuId = ref()
|
|
||||||
const treeRef = ref<InstanceType<typeof ElTreeSelect>>()
|
const treeRef = ref<InstanceType<typeof ElTreeSelect>>()
|
||||||
const menuOptions = ref<any>([]) // 树形结构
|
const menuOptions = ref<any>([]) // 树形结构
|
||||||
const getTree = async () => {
|
const getTree = async () => {
|
||||||
@ -112,9 +112,13 @@ const schema = reactive<FormSchema[]>([
|
|||||||
const { register, methods, elFormRef } = useForm({
|
const { register, methods, elFormRef } = useForm({
|
||||||
schema
|
schema
|
||||||
})
|
})
|
||||||
|
const parentMenuId = ref<number>()
|
||||||
|
//子组件像父组件传值
|
||||||
|
const emit = defineEmits(['menu'])
|
||||||
const handleNodeClick = () => {
|
const handleNodeClick = () => {
|
||||||
console.log(parentMenuId.value)
|
emit('menu', parentMenuId.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========== 初始化 ==========
|
// ========== 初始化 ==========
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await getTree()
|
await getTree()
|
||||||
@ -143,10 +147,9 @@ defineExpose({
|
|||||||
v-model="parentMenuId"
|
v-model="parentMenuId"
|
||||||
ref="treeRef"
|
ref="treeRef"
|
||||||
node-key="id"
|
node-key="id"
|
||||||
check-on-click-node
|
:props="menuProps"
|
||||||
expand-on-click-node="false"
|
|
||||||
:props="defaultProps"
|
|
||||||
:data="menuOptions"
|
:data="menuOptions"
|
||||||
|
check-strictly
|
||||||
@node-click="handleNodeClick"
|
@node-click="handleNodeClick"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { reactive, ref } from 'vue'
|
import { reactive, ref, defineEmits } from 'vue'
|
||||||
import { getSchemaTableListApi, createCodegenListApi } from '@/api/infra/codegen'
|
import { getSchemaTableListApi, createCodegenListApi } from '@/api/infra/codegen'
|
||||||
import {
|
import {
|
||||||
ElMessage,
|
ElMessage,
|
||||||
|
@ -150,7 +150,6 @@ onMounted(async () => {
|
|||||||
<DictTag :type="DICT_TYPE.COMMON_STATUS" :value="row.status" />
|
<DictTag :type="DICT_TYPE.COMMON_STATUS" :value="row.status" />
|
||||||
</template>
|
</template>
|
||||||
<template #packageId="{ row }">
|
<template #packageId="{ row }">
|
||||||
<!-- <DictTag :type="DICT_TYPE.SYSTEM_TENANT_PACKAGE_ID" :value="row.packageId" />-->
|
|
||||||
<el-tag v-if="row.packageId === 0" type="danger">系统租户</el-tag>
|
<el-tag v-if="row.packageId === 0" type="danger">系统租户</el-tag>
|
||||||
<el-tag v-else type="success"> {{ getPackageName(row.packageId) }} </el-tag>
|
<el-tag v-else type="success"> {{ getPackageName(row.packageId) }} </el-tag>
|
||||||
</template>
|
</template>
|
||||||
@ -161,7 +160,6 @@ onMounted(async () => {
|
|||||||
<span>{{ dayjs(row.createTime).format('YYYY-MM-DD HH:mm:ss') }}</span>
|
<span>{{ dayjs(row.createTime).format('YYYY-MM-DD HH:mm:ss') }}</span>
|
||||||
</template>
|
</template>
|
||||||
<template #action="{ row }">
|
<template #action="{ row }">
|
||||||
<!-- <el-button type="text" v-hasPermi="['system:tenant:update']" @click="handleUpdate(row)">-->
|
|
||||||
<el-button
|
<el-button
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
|
Loading…
Reference in New Issue
Block a user