|
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> |
17 |
| - </el-form-item> |
18 |
| - <el-form-item label="是否处理" prop="is_need"> |
19 |
| - <el-switch v-model="form.is_need"/> |
| 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"/> |
20 | 16 | </el-form-item>
|
21 |
| - <el-form-item label="网址" prop="website"> |
22 |
| - <el-input v-model="form.website"/> |
| 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"/> |
23 | 23 | </el-form-item>
|
24 |
| - <el-form-item label="请求方式" prop="method"> |
25 |
| - <!--<el-input v-model="form.method"/>--> |
26 |
| - <el-select v-model="form.method" placeholder="请选择接口" value-key="name"> |
27 |
| - <el-option key="1" label="get" value="get"> |
28 |
| - <span style="float: left; color: #8492a6; font-size: 13px">get</span> |
29 |
| - </el-option> |
30 |
| - <el-option key="2" label="post" value="post"> |
31 |
| - <span style="float: left; color: #8492a6; font-size: 13px">post</span> |
32 |
| - </el-option> |
33 |
| - </el-select> |
| 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"/> |
34 | 30 | </el-form-item>
|
35 |
| - <el-form-item label="是否启用"> |
36 |
| - <el-switch v-model="form.state"/> |
| 31 | + |
| 32 | + <el-form-item label="赋值角色" prop="roles"> |
| 33 | + <template> |
| 34 | + <el-checkbox-group v-model="form.checkedRoles" @change="handleCheckedRolesChange"> |
| 35 | + <el-checkbox v-for="role in form.roles" :label="role.id" :key="role.id">{{ role.name }}</el-checkbox> |
| 36 | + </el-checkbox-group> |
| 37 | + </template> |
37 | 38 | </el-form-item>
|
| 39 | + |
38 | 40 | <el-form-item>
|
39 | 41 | <el-button type="primary" @click="onSubmit('form')">提交</el-button>
|
40 | 42 | <el-button @click="resetForm('form')">重置</el-button>
|
|
44 | 46 | </template>
|
45 | 47 |
|
46 | 48 | <script>
|
47 |
| -import { edit, postEdit } from '@/api/api_param' |
| 49 | +import { getRole, edit, postEdit } from '@/api/user' |
48 | 50 |
|
49 | 51 | export default {
|
50 | 52 | data() {
|
| 53 | + const validatePass = (rule, value, callback) => { |
| 54 | + if (this.form.password !== '') { |
| 55 | + this.$refs.form.validateField('checkPass') |
| 56 | + } |
| 57 | + callback() |
| 58 | + } |
| 59 | + const validatePass2 = (rule, value, callback) => { |
| 60 | + if (value === undefined) { |
| 61 | + value = '' |
| 62 | + } |
| 63 | + console.log(this.form.password) |
| 64 | + if (value !== this.form.password) { |
| 65 | + callback(new Error('两次输入密码不一致!')) |
| 66 | + } else { |
| 67 | + callback() |
| 68 | + } |
| 69 | + } |
51 | 70 | return {
|
| 71 | + checkAll: false, |
52 | 72 | form: {
|
53 | 73 | name: '',
|
54 |
| - url: '', |
55 |
| - param: '', |
56 |
| - result: '', |
57 |
| - is_need: false, |
58 |
| - state: true, |
59 |
| - website: '', |
60 |
| - method: 'get', |
| 74 | + email: '', |
| 75 | + password: '', |
| 76 | + checkedRoles: [], |
| 77 | + roles: [], |
| 78 | + isIndeterminate: true, |
61 | 79 | loading: false
|
62 | 80 | },
|
63 | 81 | rules: {
|
64 | 82 | name: [
|
65 | 83 | { required: true, message: '请输入名称', trigger: 'blur' }
|
66 | 84 | ],
|
67 |
| - url: [ |
68 |
| - { required: true, message: '请输入接口地址', trigger: 'blur' } |
69 |
| - ], |
70 |
| - param: [ |
71 |
| - { required: true, message: '请输入接口参数', trigger: 'blur' } |
| 85 | + password: [ |
| 86 | + { validator: validatePass, trigger: 'blur' } |
72 | 87 | ],
|
73 |
| - result: [ |
74 |
| - { required: true, message: '请输入结果集 result', trigger: 'blur' } |
75 |
| - ], |
76 |
| - is_need: [ |
77 |
| - { required: true, message: '请选择是否处理', trigger: 'blur' } |
| 88 | + checkPass: [ |
| 89 | + { validator: validatePass2, trigger: 'blur' } |
78 | 90 | ]
|
79 | 91 | },
|
80 |
| - redirect: '/api_param/index' |
| 92 | + redirect: '/user' |
81 | 93 | }
|
82 | 94 | },
|
83 | 95 | created() {
|
| 96 | + // this.fetchData() |
84 | 97 | this.id = this.$route.params.id
|
85 | 98 | this.getData(this.id)
|
86 | 99 | },
|
87 | 100 | methods: {
|
88 | 101 | getData(id) {
|
89 |
| - // this.id = this.$route.params.id |
90 | 102 | edit(id).then(response => {
|
91 |
| - // console.log(response) |
92 | 103 | this.loading = false
|
93 | 104 | if (response.code === 200) {
|
94 |
| - this.form = response.data |
95 |
| - this.form.is_need = (response.data.is_need === 1) |
96 |
| - this.form.state = (response.data.state === 1) |
| 105 | + this.form.name = response.data.user.name |
| 106 | + this.form.email = response.data.user.email |
| 107 | + this.form.roles = response.data.roles |
| 108 | + this.form.checkedRoles = response.data.checkedRoles |
| 109 | +
|
| 110 | + // 是否全选中 |
| 111 | + if (this.form.roles.length === this.form.checkedRoles.length) { |
| 112 | + this.checkAll = true |
| 113 | + } |
97 | 114 | } else {
|
98 | 115 | this.$message.error(response.reason)
|
99 | 116 | }
|
100 | 117 | })
|
101 | 118 | },
|
| 119 | + fetchData() { |
| 120 | + this.listLoading = true |
| 121 | + getRole().then(response => { |
| 122 | + this.form.roles = response.data.roles |
| 123 | + this.listLoading = false |
| 124 | + }) |
| 125 | + }, |
| 126 | + handleCheckedRolesChange(value) { |
| 127 | + const checkedCount = value.length |
| 128 | + this.isIndeterminate = checkedCount > 0 && checkedCount < this.form.roles.length |
| 129 | + }, |
102 | 130 | onSubmit(form) {
|
103 |
| - console.log(this.form) |
| 131 | + // console.log(this.form) |
104 | 132 | this.$refs[form].validate((valid) => {
|
105 | 133 | if (valid) {
|
106 | 134 | this.loading = true
|
@@ -142,4 +170,3 @@ export default {
|
142 | 170 | text-align: center;
|
143 | 171 | }
|
144 | 172 | </style>
|
145 |
| - |
|
0 commit comments