| ¶Ô±ÈÐÂÎļþ | 
|  |  |  | 
|---|
|  |  |  | <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> | 
|---|