55 <el-col :lg =" 16" :md =" 20" :sm =" 24" :xs =" 24" >
66 <div class =" content" >
77 <el-form
8+ ref =" form"
89 status-icon
910 :rules =" rules"
1011 :model =" group"
11- ref =" form"
1212 label-position =" right"
1313 label-width =" 100px"
1414 v-loading =" loading"
2121 <el-input size =" medium" clearable v-model =" group.info" ></el-input >
2222 </el-form-item >
2323 <el-form-item >
24- <group-permissions
25- @updatePermissions =" updatePermissions"
26- @updateAllPermissions =" updateAllPermissions"
27- ref =" groupPermissions"
28- title =" 分配权限"
29- >
24+ <group-permissions title =" 分配权限" ref =" groupPermissions" @updatePermissions =" updatePermissions" >
3025 </group-permissions >
3126 </el-form-item >
3227 <el-form-item class =" submit" >
4136</template >
4237
4338<script >
39+ import { useRouter } from ' vue-router'
4440import { ref , reactive } from ' vue'
4541import { ElMessage } from ' element-plus'
4642import AdminModel from ' @/lin/model/admin'
@@ -50,45 +46,38 @@ export default {
5046 components: {
5147 GroupPermissions,
5248 },
53- inject: [' eventBus' ],
54- setup (props , ctx ) {
49+ setup () {
5550 /**
5651 * 表单验证规则
5752 */
58- const checkName = (rule , value , callback ) => {
59- if (! value) {
60- return callback (new Error (' 分组名称不能为空' ))
61- }
62- callback ()
63- }
64- const rules = {
65- name: [{ validator: checkName, trigger: [' blur' , ' change' ], required: true }],
66- info: [],
67- }
53+ const { rules } = getRules ()
6854
6955 // originally data properties
56+ const form = ref (null )
57+ const groupPermissions = ref (null )
58+
7059 const loading = ref (false )
60+ const router = useRouter ()
7161 const permissions = ref ([])
7262 const allPermissions = ref ([])
73- const { router } = ctx .root .$options
7463 const group = reactive ({ name: ' ' , info: ' ' })
7564
7665 /**
7766 * 重置表单
7867 */
79- const resetForm = formName => {
80- ctx . refs [formName] .resetFields ()
81- ctx . refs . groupPermissions .getGroupPermissions ()
68+ const resetForm = () => {
69+ form . value .resetFields ()
70+ groupPermissions . value .getGroupPermissions ()
8271 }
8372
8473 /**
8574 * 提交表单
8675 * 添加新的分组
8776 */
88- const submitForm = async formName => {
89- ctx . refs [formName] .validate (async valid => {
77+ const submitForm = async () => {
78+ form . value .validate (async valid => {
9079 if (valid) {
91- let res
80+ let res = {}
9281 const finalPermissions = permissions .value .filter (x => Object .keys (allPermissions .value ).indexOf (x) < 0 )
9382 try {
9483 loading .value = true
@@ -101,7 +90,7 @@ export default {
10190 loading .value = false
10291 ElMessage .success (` ${ res .message } ` )
10392 router .push (' /admin/group/list' )
104- resetForm (' form ' )
93+ resetForm ()
10594 } else {
10695 loading .value = false
10796 ElMessage .error (` ${ res .message } ` )
@@ -119,23 +108,28 @@ export default {
119108 permissions .value = picked
120109 }
121110
122- /**
123- * 全部权限
124- */
125- const updateAllPermissions = all => {
126- allPermissions .value = all
127- }
128-
129111 return {
112+ form,
130113 rules,
131114 group,
132115 resetForm,
133116 submitForm,
117+ groupPermissions,
134118 updatePermissions,
135- updateAllPermissions,
136119 }
137120 },
138121}
122+
123+ function getRules () {
124+ const checkName = (rule , value , callback ) => {
125+ if (! value) {
126+ return callback (new Error (' 分组名称不能为空' ))
127+ }
128+ callback ()
129+ }
130+ const rules = { info: [], name: [{ validator: checkName, trigger: [' blur' , ' change' ], required: true }] }
131+ return { rules }
132+ }
139133 </script >
140134
141135<style lang="scss" scoped>
0 commit comments