¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules"> |
| | | <el-form-item label="æéç¼ç " prop="code" required> |
| | | <el-input v-model="form.code" placeholder="请è¾å
¥æéç¼ç " v-trim maxlength="50"/> |
| | | </el-form-item> |
| | | <el-form-item label="æéåç§°" prop="name" required> |
| | | <el-input v-model="form.name" placeholder="请è¾å
¥æéåç§°" v-trim maxlength="50"/> |
| | | </el-form-item> |
| | | <el-form-item label="æé模å" prop="module"> |
| | | <el-input v-model="form.module" placeholder="请è¾å
¥æé模å" v-trim maxlength="500"/> |
| | | <FormItemTip>å¤ä¸ªæ¨¡åå¯ä»¥éè¿"/"åå²ï¼ä¾å¦"æ¥å¿ç®¡ç/æä½æ¥å¿"</FormItemTip> |
| | | </el-form-item> |
| | | <el-form-item label="æé夿³¨" prop="remark"> |
| | | <el-input v-model="form.remark" placeholder="请è¾å
¥æé夿³¨" type="textarea" :rows="3" v-trim maxlength="500"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import FormItemTip from '@/components/common/FormItemTip' |
| | | export default { |
| | | name: 'OperaPermissionWindow', |
| | | extends: BaseOpera, |
| | | components: { FormItemTip, GlobalWindow }, |
| | | data () { |
| | | return { |
| | | // åæéç |
| | | originPermissionCode: '', |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: null, |
| | | code: '', |
| | | name: '', |
| | | module: '', |
| | | remark: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | code: [ |
| | | { required: true, message: '请è¾å
¥æéç¼ç ' } |
| | | ], |
| | | name: [ |
| | | { required: true, message: '请è¾å
¥æéåç§°' } |
| | | ], |
| | | module: [ |
| | | { validator: this.__checkModule, trigger: 'blur' } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | /** |
| | | * æå¼çªå£ |
| | | * |
| | | * @param title çªå£æ é¢ |
| | | * @param target è¡å¯¹è±¡ï¼ä»
ç¼è¾éè¯¥åæ°ï¼ |
| | | */ |
| | | open (title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | // æ°å»º |
| | | if (target == null || target.type === 'module') { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | if (target.type === 'module') { |
| | | this.form.module = target.modulePath |
| | | } |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | this.originPermissionCode = target.code |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | }) |
| | | }, |
| | | /** |
| | | * 确认 |
| | | */ |
| | | confirm () { |
| | | if (this.form.id == null || this.form.id === '') { |
| | | this.__confirmCreate() |
| | | return |
| | | } |
| | | if (this.originPermissionCode === this.form.code) { |
| | | this.__confirmEdit() |
| | | return |
| | | } |
| | | // ä¿®æ¹äºæéç¼ç |
| | | this.$dialog.confirm('æ£æµå°æ¨ä¿®æ¹äºæéç¼ç ï¼æéç¼ç ä¿®æ¹ååå端åå¯è½éè¦è°æ´ä»£ç ï¼ç¡®è®¤ä¿®æ¹åï¼', 'æç¤º', { |
| | | confirmButtonText: '确认修æ¹', |
| | | type: 'warning' |
| | | }) |
| | | .then(() => { |
| | | this.__confirmEdit() |
| | | }) |
| | | }, |
| | | /** |
| | | * éªè¯æ¨¡å |
| | | * |
| | | * @param rule è§å |
| | | * @param value å¼ |
| | | * @param callback åè° |
| | | * @returns {*} |
| | | * @private |
| | | */ |
| | | __checkModule (rule, value, callback) { |
| | | if (value == null || value === '') { |
| | | return callback() |
| | | } |
| | | // ä¸å
许å
å«ç©ºæ ¼ |
| | | if (value.indexOf(' ') !== -1) { |
| | | return callback(new Error('ä¸å
许å
å«ç©ºæ ¼')) |
| | | } |
| | | // ä¸å
许使ç¨"/"å¼å¤´æç»å°¾ |
| | | if (value.startsWith('/') || value.endsWith('/')) { |
| | | return callback(new Error('请å¿ä½¿ç¨"/"å¼å¤´æç»å°¾')) |
| | | } |
| | | return callback() |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/system/permission' |
| | | }) |
| | | } |
| | | } |
| | | </script> |