| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template>
|
| | | <el-form ref="genInfoForm" :model="info" :rules="rules" label-width="150px">
|
| | | <el-row>
|
| | | <el-col :span="12">
|
| | | <el-form-item prop="tplCategory">
|
| | | <template #label>çææ¨¡æ¿</template>
|
| | | <el-select v-model="info.tplCategory" @change="tplSelectChange">
|
| | | <el-option label="å表ï¼å¢å æ¹æ¥ï¼" value="crud" />
|
| | | <el-option label="æ 表ï¼å¢å æ¹æ¥ï¼" value="tree" />
|
| | | <el-option label="主å表ï¼å¢å æ¹æ¥ï¼" value="sub" />
|
| | | </el-select>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | |
|
| | | <el-col :span="12">
|
| | | <el-form-item prop="tplWebType">
|
| | | <template #label>å端类å</template>
|
| | | <el-select v-model="info.tplWebType">
|
| | | <el-option label="Vue2 Element UI 模ç" value="element-ui" />
|
| | | <el-option label="Vue3 Element Plus 模ç" value="element-plus" />
|
| | | </el-select>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | |
|
| | | <el-col :span="12">
|
| | | <el-form-item prop="packageName">
|
| | | <template #label>
|
| | | çæå
è·¯å¾
|
| | | <el-tooltip content="çæå¨åªä¸ªjavaå
ä¸ï¼ä¾å¦ com.ruoyi.system" placement="top">
|
| | | <el-icon><question-filled /></el-icon>
|
| | | </el-tooltip>
|
| | | </template>
|
| | | <el-input v-model="info.packageName" />
|
| | | </el-form-item>
|
| | | </el-col>
|
| | |
|
| | | <el-col :span="12">
|
| | | <el-form-item prop="moduleName">
|
| | | <template #label>
|
| | | çææ¨¡åå
|
| | | <el-tooltip content="å¯ç解为åç³»ç»åï¼ä¾å¦ system" placement="top">
|
| | | <el-icon><question-filled /></el-icon>
|
| | | </el-tooltip>
|
| | | </template>
|
| | | <el-input v-model="info.moduleName" />
|
| | | </el-form-item>
|
| | | </el-col>
|
| | |
|
| | | <el-col :span="12">
|
| | | <el-form-item prop="businessName">
|
| | | <template #label>
|
| | | çæä¸å¡å
|
| | | <el-tooltip content="å¯ç解为åè½è±æåï¼ä¾å¦ user" placement="top">
|
| | | <el-icon><question-filled /></el-icon>
|
| | | </el-tooltip>
|
| | | </template>
|
| | | <el-input v-model="info.businessName" />
|
| | | </el-form-item>
|
| | | </el-col>
|
| | |
|
| | | <el-col :span="12">
|
| | | <el-form-item prop="functionName">
|
| | | <template #label>
|
| | | çæåè½å
|
| | | <el-tooltip content="ç¨ä½ç±»æè¿°ï¼ä¾å¦ ç¨æ·" placement="top">
|
| | | <el-icon><question-filled /></el-icon>
|
| | | </el-tooltip>
|
| | | </template>
|
| | | <el-input v-model="info.functionName" />
|
| | | </el-form-item>
|
| | | </el-col>
|
| | |
|
| | | <el-col :span="12">
|
| | | <el-form-item prop="genType">
|
| | | <template #label>
|
| | | çæä»£ç æ¹å¼
|
| | | <el-tooltip content="é»è®¤ä¸ºzipå缩å
ä¸è½½ï¼ä¹å¯ä»¥èªå®ä¹çæè·¯å¾" placement="top">
|
| | | <el-icon><question-filled /></el-icon>
|
| | | </el-tooltip>
|
| | | </template>
|
| | | <el-radio v-model="info.genType" value="0">zipå缩å
</el-radio>
|
| | | <el-radio v-model="info.genType" value="1">èªå®ä¹è·¯å¾</el-radio>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | |
|
| | | <el-col :span="12">
|
| | | <el-form-item>
|
| | | <template #label>
|
| | | ä¸çº§èå
|
| | | <el-tooltip content="åé
å°æå®èåä¸ï¼ä¾å¦ ç³»ç»ç®¡ç" placement="top">
|
| | | <el-icon><question-filled /></el-icon>
|
| | | </el-tooltip>
|
| | | </template>
|
| | | <el-tree-select
|
| | | v-model="info.parentMenuId"
|
| | | :data="menuOptions"
|
| | | :props="{ value: 'menuId', label: 'menuName', children: 'children' }"
|
| | | value-key="menuId"
|
| | | placeholder="è¯·éæ©ç³»ç»èå"
|
| | | check-strictly
|
| | | />
|
| | | </el-form-item>
|
| | | </el-col>
|
| | |
|
| | | <el-col :span="24" v-if="info.genType == '1'">
|
| | | <el-form-item prop="genPath">
|
| | | <template #label>
|
| | | èªå®ä¹è·¯å¾
|
| | | <el-tooltip content="å¡«åç£çç»å¯¹è·¯å¾ï¼è¥ä¸å¡«åï¼åçæå°å½åWeb项ç®ä¸" placement="top">
|
| | | <el-icon><question-filled /></el-icon>
|
| | | </el-tooltip>
|
| | | </template>
|
| | | <el-input v-model="info.genPath">
|
| | | <template #append>
|
| | | <el-dropdown>
|
| | | <el-button type="primary">
|
| | | æè¿è·¯å¾å¿«ééæ©
|
| | | <i class="el-icon-arrow-down el-icon--right"></i>
|
| | | </el-button>
|
| | | <template #dropdown>
|
| | | <el-dropdown-menu>
|
| | | <el-dropdown-item @click="info.genPath = '/'">æ¢å¤é»è®¤ççæåºç¡è·¯å¾</el-dropdown-item>
|
| | | </el-dropdown-menu>
|
| | | </template>
|
| | | </el-dropdown>
|
| | | </template>
|
| | | </el-input>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | </el-row>
|
| | | |
| | | <template v-if="info.tplCategory == 'tree'">
|
| | | <h4 class="form-header">å
¶ä»ä¿¡æ¯</h4>
|
| | | <el-row v-show="info.tplCategory == 'tree'">
|
| | | <el-col :span="12">
|
| | | <el-form-item>
|
| | | <template #label>
|
| | | æ ç¼ç åæ®µ
|
| | | <el-tooltip content="æ æ¾ç¤ºçç¼ç åæ®µåï¼ å¦ï¼dept_id" placement="top">
|
| | | <el-icon><question-filled /></el-icon>
|
| | | </el-tooltip>
|
| | | </template>
|
| | | <el-select v-model="info.treeCode" placeholder="è¯·éæ©">
|
| | | <el-option
|
| | | v-for="(column, index) in info.columns"
|
| | | :key="index"
|
| | | :label="column.columnName + 'ï¼' + column.columnComment"
|
| | | :value="column.columnName"
|
| | | ></el-option>
|
| | | </el-select>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <el-form-item>
|
| | | <template #label>
|
| | | æ ç¶ç¼ç åæ®µ
|
| | | <el-tooltip content="æ æ¾ç¤ºçç¶ç¼ç åæ®µåï¼ å¦ï¼parent_Id" placement="top">
|
| | | <el-icon><question-filled /></el-icon>
|
| | | </el-tooltip>
|
| | | </template>
|
| | | <el-select v-model="info.treeParentCode" placeholder="è¯·éæ©">
|
| | | <el-option
|
| | | v-for="(column, index) in info.columns"
|
| | | :key="index"
|
| | | :label="column.columnName + 'ï¼' + column.columnComment"
|
| | | :value="column.columnName"
|
| | | ></el-option>
|
| | | </el-select>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <el-form-item>
|
| | | <template #label>
|
| | | æ åç§°åæ®µ
|
| | | <el-tooltip content="æ èç¹çæ¾ç¤ºåç§°åæ®µåï¼ å¦ï¼dept_name" placement="top">
|
| | | <el-icon><question-filled /></el-icon>
|
| | | </el-tooltip>
|
| | | </template>
|
| | | <el-select v-model="info.treeName" placeholder="è¯·éæ©">
|
| | | <el-option
|
| | | v-for="(column, index) in info.columns"
|
| | | :key="index"
|
| | | :label="column.columnName + 'ï¼' + column.columnComment"
|
| | | :value="column.columnName"
|
| | | ></el-option>
|
| | | </el-select>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | </el-row>
|
| | | </template>
|
| | |
|
| | | <template v-if="info.tplCategory == 'sub'">
|
| | | <h4 class="form-header">å
³èä¿¡æ¯</h4>
|
| | | <el-row>
|
| | | <el-col :span="12">
|
| | | <el-form-item>
|
| | | <template #label>
|
| | | å
³èå表ç表å
|
| | | <el-tooltip content="å
³èå表ç表åï¼ å¦ï¼sys_user" placement="top">
|
| | | <el-icon><question-filled /></el-icon>
|
| | | </el-tooltip>
|
| | | </template>
|
| | | <el-select v-model="info.subTableName" placeholder="è¯·éæ©" @change="subSelectChange">
|
| | | <el-option
|
| | | v-for="(table, index) in tables"
|
| | | :key="index"
|
| | | :label="table.tableName + 'ï¼' + table.tableComment"
|
| | | :value="table.tableName"
|
| | | ></el-option>
|
| | | </el-select>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | <el-col :span="12">
|
| | | <el-form-item>
|
| | | <template #label>
|
| | | å表å
³èçå¤é®å
|
| | | <el-tooltip content="å表å
³èçå¤é®åï¼ å¦ï¼user_id" placement="top">
|
| | | <el-icon><question-filled /></el-icon>
|
| | | </el-tooltip>
|
| | | </template>
|
| | | <el-select v-model="info.subTableFkName" placeholder="è¯·éæ©">
|
| | | <el-option
|
| | | v-for="(column, index) in subColumns"
|
| | | :key="index"
|
| | | :label="column.columnName + 'ï¼' + column.columnComment"
|
| | | :value="column.columnName"
|
| | | ></el-option>
|
| | | </el-select>
|
| | | </el-form-item>
|
| | | </el-col>
|
| | | </el-row>
|
| | | </template>
|
| | |
|
| | | </el-form>
|
| | | </template>
|
| | |
|
| | | <script setup>
|
| | | import { listMenu } from "@/api/system/menu"
|
| | |
|
| | | const subColumns = ref([])
|
| | | const menuOptions = ref([])
|
| | | const { proxy } = getCurrentInstance()
|
| | |
|
| | | const props = defineProps({
|
| | | info: {
|
| | | type: Object,
|
| | | default: null
|
| | | },
|
| | | tables: {
|
| | | type: Array,
|
| | | default: null
|
| | | }
|
| | | })
|
| | |
|
| | | // è¡¨åæ ¡éª
|
| | | const rules = ref({
|
| | | tplCategory: [{ required: true, message: "è¯·éæ©çææ¨¡æ¿", trigger: "blur" }],
|
| | | packageName: [{ required: true, message: "请è¾å
¥çæå
è·¯å¾", trigger: "blur" }],
|
| | | moduleName: [{ required: true, message: "请è¾å
¥çææ¨¡åå", trigger: "blur" }],
|
| | | businessName: [{ required: true, message: "请è¾å
¥çæä¸å¡å", trigger: "blur" }],
|
| | | functionName: [{ required: true, message: "请è¾å
¥çæåè½å", trigger: "blur" }]
|
| | | })
|
| | |
|
| | | function subSelectChange(value) {
|
| | | props.info.subTableFkName = ""
|
| | | }
|
| | |
|
| | | function tplSelectChange(value) {
|
| | | if (value !== "sub") {
|
| | | props.info.subTableName = ""
|
| | | props.info.subTableFkName = ""
|
| | | }
|
| | | }
|
| | |
|
| | | function setSubTableColumns(value) {
|
| | | for (var item in props.tables) {
|
| | | const name = props.tables[item].tableName
|
| | | if (value === name) {
|
| | | subColumns.value = props.tables[item].columns
|
| | | break
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | /** æ¥è¯¢èå䏿æ ç»æ */
|
| | | function getMenuTreeselect() {
|
| | | listMenu().then(response => {
|
| | | menuOptions.value = proxy.handleTree(response.data, "menuId")
|
| | | })
|
| | | }
|
| | |
|
| | | onMounted(() => {
|
| | | getMenuTreeselect()
|
| | | })
|
| | |
|
| | | watch(() => props.info.subTableName, val => {
|
| | | setSubTableColumns(val)
|
| | | })
|
| | |
|
| | | watch(() => props.info.tplWebType, val => {
|
| | | if (val === '') {
|
| | | props.info.tplWebType = "element-plus"
|
| | | }
|
| | | })
|
| | | </script>
|