|
1 | 1 | <template>
|
2 | 2 | <div class="app-container">
|
3 |
| - <el-form ref="form" :model="form" :rules="rules" label-width="120px"> |
4 |
| - <el-form-item label="接口名称" prop="name"> |
5 |
| - <el-input v-model="form.name"/> |
| 3 | + <el-form ref="form" :model="form" :rules="rules" label-width="220px"> |
| 4 | + <el-form-item label="用户名称" prop="name"> |
| 5 | + <el-col :span="10"> |
| 6 | + <el-input v-model="form.name"/> |
| 7 | + </el-col> |
| 8 | + <el-col :span="14"/> |
6 | 9 | </el-form-item>
|
7 |
| - <el-form-item label="接口地址" prop="url"> |
8 |
| - <el-input v-model="form.url"/> |
9 |
| - </el-form-item> |
10 |
| - <el-form-item label="接口参数" prop="param"> |
11 |
| - <el-input v-model="form.param"/> |
12 |
| - <span>(多个参数请用英文 , 分割;如: realname,mobile,idcard)</span> |
13 |
| - </el-form-item> |
14 |
| - <el-form-item label="结果集 result" prop="result"> |
15 |
| - <el-input v-model="form.result"/> |
16 |
| - <span>(多个参数请用英文 , 分割;如: res,msg)</span> |
| 10 | + |
| 11 | + <el-form-item label="用户邮箱" prop="email"> |
| 12 | + <el-col :span="10"> |
| 13 | + <el-input v-model="form.email"/> |
| 14 | + </el-col> |
| 15 | + <el-col :span="14"/> |
17 | 16 | </el-form-item>
|
18 |
| - <el-form-item label="是否处理" prop="is_need"> |
19 |
| - <el-switch v-model="form.is_need"/> |
20 |
| - <br> |
21 |
| - <span>(开启后,输出的 Excel 最后一栏将根据 result 字段 res 1 展示一致 2 不一致)</span> |
| 17 | + |
| 18 | + <el-form-item label="密码" prop="password"> |
| 19 | + <el-col :span="10"> |
| 20 | + <el-input v-model="form.password" type="password"/> |
| 21 | + </el-col> |
| 22 | + <el-col :span="14"/> |
22 | 23 | </el-form-item>
|
23 |
| - <el-form-item label="网址" prop="website"> |
24 |
| - <el-input v-model="form.website"/> |
| 24 | + |
| 25 | + <el-form-item label="确认密码" prop="checkPass"> |
| 26 | + <el-col :span="10"> |
| 27 | + <el-input v-model="form.checkPass" type="password"/> |
| 28 | + </el-col> |
| 29 | + <el-col :span="14"/> |
25 | 30 | </el-form-item>
|
26 |
| - <el-form-item label="请求方式" prop="method"> |
27 |
| - <!--<el-input v-model="form.method"/>--> |
28 |
| - <el-select v-model="form.method" placeholder="请选择接口" value-key="name"> |
29 |
| - <el-option key="1" label="get" value="get"> |
30 |
| - <span style="float: left; color: #8492a6; font-size: 13px">get</span> |
31 |
| - </el-option> |
32 |
| - <el-option key="2" label="post" value="post"> |
33 |
| - <span style="float: left; color: #8492a6; font-size: 13px">post</span> |
34 |
| - </el-option> |
35 |
| - </el-select> |
| 31 | + |
| 32 | + <el-form-item label="路由" prop="route"> |
| 33 | + <el-col :span="10"> |
| 34 | + <el-input v-model="form.route"/> |
| 35 | + </el-col> |
| 36 | + <el-col :span="14"/> |
36 | 37 | </el-form-item>
|
37 |
| - <el-form-item label="是否启用"> |
38 |
| - <el-switch v-model="form.state"/> |
| 38 | + |
| 39 | + <el-form-item label="赋值角色" prop="roles"> |
| 40 | + <template> |
| 41 | + <el-checkbox-group v-model="form.checkedRoles" @change="handleCheckedRolesChange"> |
| 42 | + <el-checkbox v-for="role in form.roles" :label="role.id" :key="role.id">{{ role.name }}</el-checkbox> |
| 43 | + </el-checkbox-group> |
| 44 | + </template> |
39 | 45 | </el-form-item>
|
| 46 | + |
40 | 47 | <el-form-item>
|
41 | 48 | <el-button type="primary" @click="onSubmit('form')">提交</el-button>
|
42 | 49 | <el-button @click="resetForm('form')">重置</el-button>
|
|
46 | 53 | </template>
|
47 | 54 |
|
48 | 55 | <script>
|
49 |
| -import { postAdd } from '@/api/api_param' |
| 56 | +import { postAdd, getRole } from '@/api/user' |
50 | 57 |
|
51 | 58 | export default {
|
52 | 59 | data() {
|
| 60 | + const validatePass = (rule, value, callback) => { |
| 61 | + if (value === '') { |
| 62 | + callback(new Error('请输入密码')) |
| 63 | + } else { |
| 64 | + if (this.form.password !== '') { |
| 65 | + this.$refs.form.validateField('checkPass') |
| 66 | + } |
| 67 | + callback() |
| 68 | + } |
| 69 | + } |
| 70 | + const validatePass2 = (rule, value, callback) => { |
| 71 | + if (value === '') { |
| 72 | + callback(new Error('请再次输入密码')) |
| 73 | + } else if (value !== this.form.password) { |
| 74 | + callback(new Error('两次输入密码不一致!')) |
| 75 | + } else { |
| 76 | + callback() |
| 77 | + } |
| 78 | + } |
53 | 79 | return {
|
54 | 80 | form: {
|
55 | 81 | name: '',
|
56 |
| - url: '', |
57 |
| - param: '', |
58 |
| - result: '', |
59 |
| - is_need: false, |
60 |
| - state: true, |
61 |
| - website: '', |
62 |
| - method: 'get', |
| 82 | + email: '', |
| 83 | + password: '', |
| 84 | + checkedRoles: [], |
| 85 | + roles: [], |
| 86 | + isIndeterminate: true, |
63 | 87 | loading: false
|
64 | 88 | },
|
65 | 89 | rules: {
|
66 | 90 | name: [
|
67 | 91 | { required: true, message: '请输入名称', trigger: 'blur' }
|
68 | 92 | ],
|
69 |
| - url: [ |
70 |
| - { required: true, message: '请输入接口地址', trigger: 'blur' } |
71 |
| - ], |
72 |
| - param: [ |
73 |
| - { required: true, message: '请输入接口参数', trigger: 'blur' } |
| 93 | + password: [ |
| 94 | + { validator: validatePass, trigger: 'blur' } |
74 | 95 | ],
|
75 |
| - result: [ |
76 |
| - { required: true, message: '请输入结果集 result', trigger: 'blur' } |
77 |
| - ], |
78 |
| - is_need: [ |
79 |
| - { required: true, message: '请选择是否处理', trigger: 'blur' } |
| 96 | + checkPass: [ |
| 97 | + { validator: validatePass2, trigger: 'blur' } |
80 | 98 | ]
|
81 | 99 | },
|
82 |
| - redirect: '/api_param/index' |
| 100 | + redirect: '/user' |
83 | 101 | }
|
84 | 102 | },
|
| 103 | + created() { |
| 104 | + this.fetchData() |
| 105 | + }, |
85 | 106 | methods: {
|
| 107 | + fetchData() { |
| 108 | + this.listLoading = true |
| 109 | + getRole().then(response => { |
| 110 | + console.log(response.data) |
| 111 | + this.form.roles = response.data.roles |
| 112 | + this.listLoading = false |
| 113 | + }) |
| 114 | + }, |
| 115 | + handleCheckedRolesChange(value) { |
| 116 | + const checkedCount = value.length |
| 117 | + this.isIndeterminate = checkedCount > 0 && checkedCount < this.form.roles.length |
| 118 | + }, |
86 | 119 | onSubmit(form) {
|
87 | 120 | console.log(this.form)
|
88 | 121 | this.$refs[form].validate((valid) => {
|
@@ -126,4 +159,3 @@ export default {
|
126 | 159 | text-align: center;
|
127 | 160 | }
|
128 | 161 | </style>
|
129 |
| - |
|
0 commit comments