From 2b1f7a47394363e95deb4dfa0f1c67d41e747f7f Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期三, 01 二月 2023 10:56:40 +0800 Subject: [PATCH] Merge branch 'wvp-28181-2.0' into fix-269 --- web_src/src/components/dialog/addUser.vue | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 154 insertions(+), 0 deletions(-) diff --git a/web_src/src/components/dialog/addUser.vue b/web_src/src/components/dialog/addUser.vue new file mode 100644 index 0000000..8dc5682 --- /dev/null +++ b/web_src/src/components/dialog/addUser.vue @@ -0,0 +1,154 @@ +<template> + <div id="addUser" v-loading="isLoging"> + <el-dialog + title="娣诲姞鐢ㄦ埛" + width="40%" + top="2rem" + :close-on-click-modal="false" + :visible.sync="showDialog" + :destroy-on-close="true" + @close="close()" + > + <div id="shared" style="margin-right: 20px;"> + <el-form ref="passwordForm" :rules="rules" status-icon label-width="80px"> + <el-form-item label="鐢ㄦ埛鍚�" prop="username"> + <el-input v-model="username" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="鐢ㄦ埛绫诲瀷" prop="roleId" > + <el-select v-model="roleId" placeholder="璇烽�夋嫨" style="width: 100%"> + <el-option + v-for="item in options" + :key="item.id" + :label="item.name" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="瀵嗙爜" prop="password"> + <el-input v-model="password" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="纭瀵嗙爜" prop="confirmPassword"> + <el-input v-model="confirmPassword" autocomplete="off"></el-input> + </el-form-item> + + <el-form-item> + <div style="float: right;"> + <el-button type="primary" @click="onSubmit">淇濆瓨</el-button> + <el-button @click="close">鍙栨秷</el-button> + </div> + </el-form-item> + </el-form> + </div> + </el-dialog> + </div> +</template> + +<script> + +export default { + name: "addUser", + props: {}, + computed: {}, + created() { + this.getAllRole(); + }, + data() { + let validatePass1 = (rule, value, callback) => { + if (value === '') { + callback(new Error('璇疯緭鍏ユ柊瀵嗙爜')); + } else { + if (this.confirmPassword !== '') { + this.$refs.passwordForm.validateField('confirmPassword'); + } + callback(); + } + }; + let validatePass2 = (rule, value, callback) => { + if (this.confirmPassword === '') { + callback(new Error('璇峰啀娆¤緭鍏ュ瘑鐮�')); + } else if (this.confirmPassword !== this.password) { + callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!')); + } else { + callback(); + } + }; + return { + value:"", + options: [], + loading: false, + username: null, + password: null, + roleId: null, + confirmPassword: null, + listChangeCallback: null, + showDialog: false, + isLoging: false, + rules: { + newPassword: [{required: true, validator: validatePass1, trigger: "blur"}, { + pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,20}$/, + message: "瀵嗙爜闀垮害鍦�8-20浣嶄箣闂�,鐢卞瓧姣�+鏁板瓧+鐗规畩瀛楃缁勬垚", + },], + confirmPassword: [{required: true, validator: validatePass2, trigger: "blur"}], + }, + }; + }, + methods: { + openDialog: function (callback) { + this.listChangeCallback = callback; + this.showDialog = true; + }, + onSubmit: function () { + this.$axios({ + method: 'post', + url: "/api/user/add", + params: { + username: this.username, + password: this.password, + roleId: this.roleId + } + }).then((res) => { + if (res.data.code === 0) { + this.$message({ + showClose: true, + message: '娣诲姞鎴愬姛', + type: 'success', + + }); + this.showDialog = false; + this.listChangeCallback() + + } else { + this.$message({ + showClose: true, + message: res.data.msg, + type: 'error' + }); + } + }).catch((error) => { + console.error(error) + }); + }, + close: function () { + this.showDialog = false; + this.password = null; + this.confirmPassword = null; + this.username = null; + this.roleId = null; + }, + getAllRole:function () { + + this.$axios({ + method: 'get', + url: "/api/role/all" + }).then((res) => { + this.loading = true; + if (res.data.code === 0) { + this.options=res.data.data + } + }).catch((error) => { + console.error(error) + }); + } + }, +}; +</script> -- Gitblit v1.8.0