¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-form ref="genInfoForm" :model="info" :rules="rules" label-width="150px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item prop="tplCategory"> |
| | | <span slot="label">çææ¨¡æ¿</span> |
| | | <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="packageName"> |
| | | <span slot="label"> |
| | | çæå
è·¯å¾ |
| | | <el-tooltip content="çæå¨åªä¸ªjavaå
ä¸ï¼ä¾å¦ com.ruoyi.system" placement="top"> |
| | | <i class="el-icon-question"></i> |
| | | </el-tooltip> |
| | | </span> |
| | | <el-input v-model="info.packageName" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item prop="moduleName"> |
| | | <span slot="label"> |
| | | çææ¨¡åå |
| | | <el-tooltip content="å¯ç解为åç³»ç»åï¼ä¾å¦ system" placement="top"> |
| | | <i class="el-icon-question"></i> |
| | | </el-tooltip> |
| | | </span> |
| | | <el-input v-model="info.moduleName" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item prop="businessName"> |
| | | <span slot="label"> |
| | | çæä¸å¡å |
| | | <el-tooltip content="å¯ç解为åè½è±æåï¼ä¾å¦ user" placement="top"> |
| | | <i class="el-icon-question"></i> |
| | | </el-tooltip> |
| | | </span> |
| | | <el-input v-model="info.businessName" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item prop="functionName"> |
| | | <span slot="label"> |
| | | çæåè½å |
| | | <el-tooltip content="ç¨ä½ç±»æè¿°ï¼ä¾å¦ ç¨æ·" placement="top"> |
| | | <i class="el-icon-question"></i> |
| | | </el-tooltip> |
| | | </span> |
| | | <el-input v-model="info.functionName" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item> |
| | | <span slot="label"> |
| | | ä¸çº§èå |
| | | <el-tooltip content="åé
å°æå®èåä¸ï¼ä¾å¦ ç³»ç»ç®¡ç" placement="top"> |
| | | <i class="el-icon-question"></i> |
| | | </el-tooltip> |
| | | </span> |
| | | <treeselect |
| | | :append-to-body="true" |
| | | v-model="info.parentMenuId" |
| | | :options="menus" |
| | | :normalizer="normalizer" |
| | | :show-count="true" |
| | | placeholder="è¯·éæ©ç³»ç»èå" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="12"> |
| | | <el-form-item prop="genType"> |
| | | <span slot="label"> |
| | | çæä»£ç æ¹å¼ |
| | | <el-tooltip content="é»è®¤ä¸ºzipå缩å
ä¸è½½ï¼ä¹å¯ä»¥èªå®ä¹çæè·¯å¾" placement="top"> |
| | | <i class="el-icon-question"></i> |
| | | </el-tooltip> |
| | | </span> |
| | | <el-radio v-model="info.genType" label="0">zipå缩å
</el-radio> |
| | | <el-radio v-model="info.genType" label="1">èªå®ä¹è·¯å¾</el-radio> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :span="24" v-if="info.genType == '1'"> |
| | | <el-form-item prop="genPath"> |
| | | <span slot="label"> |
| | | èªå®ä¹è·¯å¾ |
| | | <el-tooltip content="å¡«åç£çç»å¯¹è·¯å¾ï¼è¥ä¸å¡«åï¼åçæå°å½åWeb项ç®ä¸" placement="top"> |
| | | <i class="el-icon-question"></i> |
| | | </el-tooltip> |
| | | </span> |
| | | <el-input v-model="info.genPath"> |
| | | <el-dropdown slot="append"> |
| | | <el-button type="primary"> |
| | | æè¿è·¯å¾å¿«ééæ© |
| | | <i class="el-icon-arrow-down el-icon--right"></i> |
| | | </el-button> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <el-dropdown-item @click.native="info.genPath = '/'">æ¢å¤é»è®¤ççæåºç¡è·¯å¾</el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row v-show="info.tplCategory == 'tree'"> |
| | | <h4 class="form-header">å
¶ä»ä¿¡æ¯</h4> |
| | | <el-col :span="12"> |
| | | <el-form-item> |
| | | <span slot="label"> |
| | | æ ç¼ç åæ®µ |
| | | <el-tooltip content="æ æ¾ç¤ºçç¼ç åæ®µåï¼ å¦ï¼dept_id" placement="top"> |
| | | <i class="el-icon-question"></i> |
| | | </el-tooltip> |
| | | </span> |
| | | <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> |
| | | <span slot="label"> |
| | | æ ç¶ç¼ç åæ®µ |
| | | <el-tooltip content="æ æ¾ç¤ºçç¶ç¼ç åæ®µåï¼ å¦ï¼parent_Id" placement="top"> |
| | | <i class="el-icon-question"></i> |
| | | </el-tooltip> |
| | | </span> |
| | | <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> |
| | | <span slot="label"> |
| | | æ åç§°åæ®µ |
| | | <el-tooltip content="æ èç¹çæ¾ç¤ºåç§°åæ®µåï¼ å¦ï¼dept_name" placement="top"> |
| | | <i class="el-icon-question"></i> |
| | | </el-tooltip> |
| | | </span> |
| | | <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> |
| | | <el-row v-show="info.tplCategory == 'sub'"> |
| | | <h4 class="form-header">å
³èä¿¡æ¯</h4> |
| | | <el-col :span="12"> |
| | | <el-form-item> |
| | | <span slot="label"> |
| | | å
³èå表ç表å |
| | | <el-tooltip content="å
³èå表ç表åï¼ å¦ï¼sys_user" placement="top"> |
| | | <i class="el-icon-question"></i> |
| | | </el-tooltip> |
| | | </span> |
| | | <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> |
| | | <span slot="label"> |
| | | å表å
³èçå¤é®å |
| | | <el-tooltip content="å表å
³èçå¤é®åï¼ å¦ï¼user_id" placement="top"> |
| | | <i class="el-icon-question"></i> |
| | | </el-tooltip> |
| | | </span> |
| | | <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> |
| | | </el-form> |
| | | </template> |
| | | |
| | | <script> |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | |
| | | export default { |
| | | components: { Treeselect }, |
| | | props: { |
| | | info: { |
| | | type: Object, |
| | | default: null |
| | | }, |
| | | tables: { |
| | | type: Array, |
| | | default: null |
| | | }, |
| | | menus: { |
| | | type: Array, |
| | | default: [] |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | subColumns: [], |
| | | rules: { |
| | | 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" } |
| | | ], |
| | | } |
| | | }; |
| | | }, |
| | | created() {}, |
| | | watch: { |
| | | 'info.subTableName': function(val) { |
| | | this.setSubTableColumns(val); |
| | | } |
| | | }, |
| | | methods: { |
| | | /** 转æ¢èåæ°æ®ç»æ */ |
| | | normalizer(node) { |
| | | if (node.children && !node.children.length) { |
| | | delete node.children; |
| | | } |
| | | return { |
| | | id: node.menuId, |
| | | label: node.menuName, |
| | | children: node.children |
| | | }; |
| | | }, |
| | | /** éæ©å表å触å */ |
| | | subSelectChange(value) { |
| | | this.info.subTableFkName = ''; |
| | | }, |
| | | /** éæ©çææ¨¡æ¿è§¦å */ |
| | | tplSelectChange(value) { |
| | | if(value !== 'sub') { |
| | | this.info.subTableName = ''; |
| | | this.info.subTableFkName = ''; |
| | | } |
| | | }, |
| | | /** 设置å
³èå¤é® */ |
| | | setSubTableColumns(value) { |
| | | for (var item in this.tables) { |
| | | const name = this.tables[item].tableName; |
| | | if (value === name) { |
| | | this.subColumns = this.tables[item].columns; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | </script> |