Commit 829ef5ff by sendya

fix: demo role-list optimization

parent 6af5adaf
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
<a-form-item label="状态"> <a-form-item label="状态">
<a-select placeholder="请选择" default-value="0"> <a-select placeholder="请选择" default-value="0">
<a-select-option value="0">全部</a-select-option> <a-select-option value="0">全部</a-select-option>
<a-select-option value="1">关闭</a-select-option> <a-select-option value="1">正常</a-select-option>
<a-select-option value="2">运行中</a-select-option> <a-select-option value="2">禁用</a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-col> </a-col>
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
</div> </div>
<s-table <s-table
ref="table"
size="default" size="default"
:columns="columns" :columns="columns"
:data="loadData" :data="loadData"
...@@ -72,7 +73,7 @@ ...@@ -72,7 +73,7 @@
</span> </span>
</s-table> </s-table>
<role-modal ref="modal"></role-modal> <role-modal ref="modal" @ok="handleOk"></role-modal>
</a-card> </a-card>
</template> </template>
...@@ -152,7 +153,8 @@ ...@@ -152,7 +153,8 @@
this.visible = true this.visible = true
}, },
handleOk () { handleOk () {
// 新增/修改 成功时,重载列表
this.$refs.table.refresh()
}, },
onChange (selectedRowKeys, selectedRows) { onChange (selectedRowKeys, selectedRows) {
this.selectedRowKeys = selectedRowKeys this.selectedRowKeys = selectedRowKeys
......
...@@ -7,76 +7,73 @@ ...@@ -7,76 +7,73 @@
@ok="handleOk" @ok="handleOk"
@cancel="handleCancel" @cancel="handleCancel"
> >
<a-form :form="form"> <a-spin :spinning="confirmLoading">
<a-form :form="form">
<a-form-item
:labelCol="labelCol" <a-form-item
:wrapperCol="wrapperCol" :labelCol="labelCol"
label='唯一识别码' :wrapperCol="wrapperCol"
hasFeedback label='唯一识别码'
validateStatus='success' hasFeedback
> >
<a-input placeholder='唯一识别码' v-model="mdl.id" id='no' disabled="disabled"/> <a-input placeholder='唯一识别码' disabled="disabled" v-decorator="[ 'id', {rules: []} ]" />
</a-form-item> </a-form-item>
<a-form-item <a-form-item
:labelCol="labelCol" :labelCol="labelCol"
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
label='角色名称' label='角色名称'
hasFeedback hasFeedback >
validateStatus='success' <a-input placeholder='起一个名字' v-decorator="[ 'name', {rules: [{ required: true, message: '不起一个名字吗?' }] }]" />
> </a-form-item>
<a-input placeholder='起一个名字' v-model="mdl.name" id='role_name'/>
</a-form-item> <a-form-item
:labelCol="labelCol"
<a-form-item :wrapperCol="wrapperCol"
:labelCol="labelCol" label='状态'
:wrapperCol="wrapperCol" hasFeedback >
label='状态' <a-select v-decorator="[ 'status', {rules: []} ]">
hasFeedback <a-select-option :value="1">正常</a-select-option>
validateStatus='warning' <a-select-option :value="2">禁用</a-select-option>
> </a-select>
<a-select v-model="mdl.status"> </a-form-item>
<a-select-option value='1'>正常</a-select-option>
<a-select-option value='2'>禁用</a-select-option> <a-form-item
</a-select> :labelCol="labelCol"
</a-form-item> :wrapperCol="wrapperCol"
label='描述'
<a-form-item hasFeedback
:labelCol="labelCol" >
:wrapperCol="wrapperCol" <a-textarea :rows="5" placeholder="..." v-decorator="[ 'describe', { rules: [] } ]" />
label='描述' </a-form-item>
hasFeedback
> <a-divider/>
<a-textarea :rows="5" v-model="mdl.describe" placeholder="..." id='describe'/>
</a-form-item> <a-form-item
:labelCol="labelCol"
<a-divider/> :wrapperCol="wrapperCol"
label='拥有权限'
<a-form-item hasFeedback
:labelCol="labelCol" >
:wrapperCol="wrapperCol" <a-row :gutter="16" v-for="(permission, index) in permissions" :key="index">
label='拥有权限' <a-col :span="4">
hasFeedback {{ permission.name }}
> </a-col>
<a-row :gutter="16" v-for="(permission, index) in permissions" :key="index"> <a-col :span="20">
<a-col :span="4"> <a-checkbox
{{ permission.name }} v-if="permission.actionsOptions.length > 0"
</a-col> :indeterminate="permission.indeterminate"
<a-col :span="20"> :checked="permission.checkedAll"
<a-checkbox @change="onChangeCheckAll($event, permission)">
v-if="permission.actionsOptions.length > 0" 全选
:indeterminate="permission.indeterminate" </a-checkbox>
:checked="permission.checkedAll" <a-checkbox-group :options="permission.actionsOptions" v-model="permission.selected" @change="onChangeCheck(permission)" />
@change="onChangeCheckAll($event, permission)"> </a-col>
全选 </a-row>
</a-checkbox>
<a-checkbox-group :options="permission.actionsOptions" v-model="permission.selected" @change="onChangeCheck(permission)" /> </a-form-item>
</a-col> </a-form>
</a-row> </a-spin>
</a-form-item>
</a-form>
</a-modal> </a-modal>
</template> </template>
...@@ -115,20 +112,56 @@ ...@@ -115,20 +112,56 @@
this.mdl = Object.assign({}, record) this.mdl = Object.assign({}, record)
this.visible = true this.visible = true
// 有权限表,处理勾选
if (this.mdl.permissions && this.permissions) {
// 先处理要勾选的权限结构
const permissionsAction = {}
this.mdl.permissions.forEach(permission => {
permissionsAction[permission.permissionId] = permission.actionEntitySet.map(entity => entity.action)
})
// 把权限表遍历一遍,设定要勾选的权限 action
this.permissions.forEach(permission => {
permission.selected = permissionsAction[permission.id]
})
}
this.$nextTick(() => {
this.form.setFieldsValue( _.pick(this.mdl, 'id', 'name', 'status', 'describe'))
})
console.log('this.mdl', this.mdl) console.log('this.mdl', this.mdl)
}, },
close () { close () {
this.$emit('close') this.$emit('close')
this.visible = false
}, },
handleOk () { handleOk () {
const _this = this
// 触发表单验证
this.form.validateFields((err, values) => { this.form.validateFields((err, values) => {
// 验证表单没错误
if (!err) { if (!err) {
console.log('form values', values) console.log('form values', values)
_this.confirmLoading = true
// 模拟后端请求 2000 毫秒延迟
new Promise((resolve) => {
setTimeout(() => resolve(), 2000)
}).then(() => {
// Do something
_this.$message.success('保存成功')
_this.$emit('ok')
}).catch(() => {
// Do something
}).finally(() => {
_this.confirmLoading = false
_this.close()
})
} }
}) })
}, },
handleCancel () { handleCancel () {
this.close()
}, },
onChangeCheck (permission) { onChangeCheck (permission) {
permission.indeterminate = !!permission.selected.length && (permission.selected.length < permission.actionsOptions.length) permission.indeterminate = !!permission.selected.length && (permission.selected.length < permission.actionsOptions.length)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment