From 387e8b0743240de72425e5b5c5709d629ace9aa4 Mon Sep 17 00:00:00 2001
From: “dzb” <2632970487@qq.com>
Date: 星期二, 11 十月 2022 20:17:43 +0800
Subject: [PATCH] 新增消息界面、处理遗留问题
---
src/views/systemSetting/baseSetting/user/components/createUser/index.vue | 335 +++++++++++++++++++++++++++++++------------------------
1 files changed, 187 insertions(+), 148 deletions(-)
diff --git a/src/views/systemSetting/baseSetting/user/components/createUser/index.vue b/src/views/systemSetting/baseSetting/user/components/createUser/index.vue
index 833990f..b3bfb7b 100644
--- a/src/views/systemSetting/baseSetting/user/components/createUser/index.vue
+++ b/src/views/systemSetting/baseSetting/user/components/createUser/index.vue
@@ -1,36 +1,28 @@
<template>
<div class="createUser">
- <!-- <header>
- <div class="headerTitle">鏂板璐︽埛</div>
- <div class="headerTip">
- <span>*</span>
- <label>涓哄繀濉」</label>
- </div>
- </header> -->
<main>
- <!-- <div class="mainTitle">鍩虹淇℃伅</div> -->
<div class="mainContent">
<el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules"
label-position="right">
<!-- 鐢ㄦ埛鍚嶇О -->
- <el-form-item class="optionItem" label="鐢ㄦ埛鍚嶇О:" prop="nickName">
- <el-input v-model="user.nickName" placeholder="濉啓鐢ㄦ埛鍚嶇О"></el-input>
+ <el-form-item class="optionItem" label="鐢ㄦ埛鍚嶇О:" prop="username">
+ <el-input v-model="user.username" placeholder="濉啓鐢ㄦ埛鍚嶇О"></el-input>
</el-form-item>
<!-- 鐢ㄦ埛瀵嗙爜 -->
<el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password">
<el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�"></el-input>
</el-form-item>
<!-- 鎵�灞炵敤鎴峰鍚� -->
- <el-form-item class="optionItem" label="鎵�灞炵敤鎴峰鍚�:" prop="username">
- <el-input v-model="user.username" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input>
+ <el-form-item class="optionItem" label="鎵�灞炵敤鎴峰鍚�:" prop="nickName">
+ <el-input v-model="user.nickName" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input>
</el-form-item>
<!-- 鎬у埆 -->
- <!-- <el-form-item class="optionItem" label="鎬у埆:" prop="gender">
- <el-radio-group v-model="user.gender">
+ <el-form-item class="optionItem" label="鎬у埆:" prop="sex">
+ <el-radio-group v-model="user.sex">
<el-radio :label="1">鐢�</el-radio>
- <el-radio :label="2">濂�</el-radio>
+ <el-radio :label="0">濂�</el-radio>
</el-radio-group>
- </el-form-item> -->
+ </el-form-item>
<!-- 鏄惁鍏氬憳 -->
<el-form-item class="optionItem" label="鏄惁鍏氬憳:" prop="isDy">
<el-radio-group v-model="user.isDy">
@@ -40,63 +32,71 @@
</el-form-item>
<!-- 鎵�灞炴墜鏈哄彿鐮� -->
<el-form-item class="optionItem" label="鎵�灞炴墜鏈哄彿鐮�:" prop="mobile">
- <el-input v-model="user.mobile" placeholder="璇峰~鍐欐墜鏈哄彿鐮�"></el-input>
+ <el-input v-model="user.mobile" maxlength="11" placeholder="璇峰~鍐欐墜鏈哄彿鐮�"></el-input>
</el-form-item>
<!-- 閭鍦板潃 -->
<el-form-item class="optionItem" label="閭鍦板潃:" prop="email">
<el-input v-model="user.email" placeholder="璇峰~鍐欓偖绠卞湴鍧�"></el-input>
</el-form-item>
<!-- 閫夋嫨瑙掕壊 -->
- <!-- <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role">
- <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�">
- <el-option v-for="item in roleList" :key="item.name" :label="item.name" :value="item.value"
- :disabled="item.disabled">
+ <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role">
+ <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" multiple collapse-tags>
+ <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
- </el-form-item> -->
+ <!-- <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�">
+ <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id"
+ :disabled="item.disabled">
+ </el-option>
+ </el-select> -->
+ </el-form-item>
<!-- 鐢ㄦ埛绫诲瀷 -->
<el-form-item class="optionItem" label="鐢ㄦ埛绫诲瀷:" prop="userType">
<el-select v-model="user.userType" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷">
- <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"
- :disabled="item.disabled">
+ <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<!-- 搴ф満/鍒嗘満 -->
- <el-form-item class="optionItem" label="搴ф満/鍒嗘満:" prop="zj">
- <div class="optionHandleSp">
- <el-input class="areaNumber" v-model="user.zj.areaNumber" placeholder="鐢佃瘽鍖哄彿">
+ <div class="user-item">
+ <el-form-item label="搴ф満/鍒嗘満:" prop="zjarea">
+ <el-input v-model="user.zjarea" placeholder="鐢佃瘽鍖哄彿">
</el-input>
- <el-input class="telNumber" v-model="user.zj.phoneNumber" placeholder="鐢佃瘽鍙风爜">
+ </el-form-item>
+ <el-form-item prop="zjnumber" class="left-px">
+ <el-input v-model="user.zjnumber" placeholder="鐢佃瘽鍙风爜">
</el-input>
- <el-input class="moreNumber" v-model="user.zj.moreNumber" placeholder="鍒嗘満鍙风爜">
+ </el-form-item>
+ <el-form-item prop="zjother" class="left-px">
+ <el-input v-model="user.zjother" placeholder="鍒嗘満鍙风爜">
</el-input>
- </div>
- </el-form-item>
+ </el-form-item>
+ </div>
<!-- 鎵�灞為儴闂� -->
<el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId">
- <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�">
- <el-option v-for="item in typeList" :key="item.name" :label="item.departName"
+ <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" @change="getDepartName">
+ <el-option v-for="item in departList" :key="item.name" :label="item.departName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<!-- 褰撳墠鑱屽姟 -->
<el-form-item class="optionItem" label="褰撳墠鑱屽姟:" prop="jobTitle">
- <el-input v-model="user.work" placeholder="璇疯緭鍏ュ綋鍓嶈亴鍔�" ></el-input>
+ <el-input v-model="user.jobTitle" placeholder="璇疯緭鍏ュ綋鍓嶈亴鍔�"></el-input>
</el-form-item>
<!-- 濉啓鎵�灞瀖ac鍦板潃 -->
- <!-- <el-form-item class="optionItem" label="濉啓鎵�灞瀖ac鍦板潃:" prop="mac">
+ <el-form-item class="optionItem" label="濉啓鎵�灞瀖ac鍦板潃:" prop="mac">
<el-input v-model="user.mac" placeholder="璇峰~鍐欐墍灞瀖ac鍦板潃"></el-input>
- </el-form-item> -->
+ </el-form-item>
<!-- 濉啓鎵�灞瀒p鍦板潃 -->
- <!-- <el-form-item class="optionItem" label="濉啓鎵�灞瀒p鍦板潃:" prop="ip">
+ <el-form-item class="optionItem" label="濉啓鎵�灞瀒p鍦板潃:" prop="ip">
<el-input v-model="user.ip" placeholder="璇峰~鍐欐墍灞瀒p鍦板潃"></el-input>
- </el-form-item> -->
+ </el-form-item>
<el-form-item>
<div class="optionBtn">
- <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦</el-button>
- <el-button class="btn reset">閲嶇疆</el-button>
+ <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦
+ </el-button>
+ <el-button class="btn reset" @click.native.prevent="resetForm">閲嶇疆</el-button>
</div>
</el-form-item>
</el-form>
@@ -110,36 +110,44 @@
data() {
const validateNickname = (rule, value, callback) => {
if (!value) {
- callback(new Error("璇峰~鍐欑敤鎴峰悕绉�"));
+ callback(new Error("鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖"));
+ } else {
+ callback();
}
};
const validatePass = (rule, value, callback) => {
if (!value) {
- callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
+ callback(new Error("鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖"));
} else {
const rep = /^\w+$/;
if (!rep.test(value)) {
callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆"));
+ } else {
+ callback();
}
}
};
const validateTruename = (rule, value, callback) => {
if (!value) {
- callback(new Error("璇峰~鍐欑敤鎴峰鍚�"));
+ callback(new Error("鐢ㄦ埛濮撳悕涓嶈兘涓虹┖"));
} else {
const rep = /^[\u4E00-\u9FA5]{2,4}$/;
if (!rep.test(value)) {
callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕");
+ } else {
+ callback();
}
}
};
const validatePhone = (rule, value, callback) => {
if (!value) {
- callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�"));
+ callback(new Error("鎵嬫満鍙风爜涓嶈兘涓虹┖"));
} else {
const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/
if (!rep.test(value)) {
callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
+ } else {
+ callback();
}
}
};
@@ -148,49 +156,53 @@
const rep = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
if (!rep.test(value)) {
callback(new Error("璇疯緭鍏ユ纭殑閭"))
+ }else{
+ callback();
}
+ }else{
+ callback();
}
};
const validateRole = (rule, value, callback) => {
if (!value) {
- callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
+ callback(new Error("鎵�灞炶鑹蹭笉鑳戒负绌�"));
} else {
- callback();
+ callback()
}
};
const validateType = (rule, value, callback) => {
if (!value) {
- callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
+ callback(new Error("鐢ㄦ埛绫诲瀷涓嶈兘涓虹┖"));
} else {
- callback();
+ callback()
}
};
const validateDepartment = (rule, value, callback) => {
if (!value) {
- callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
+ callback(new Error("璇烽�夋嫨鐢ㄦ埛閮ㄩ棬"));
} else {
- callback();
+ callback()
}
};
const validateWork = (rule, value, callback) => {
if (!value) {
- callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
+ callback(new Error("鐢ㄦ埛褰撳墠鑱屽姟涓嶈兘涓虹┖"));
} else {
callback();
}
};
const validateMac = (rule, value, callback) => {
- if (!value) {
- callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
- } else {
+ if (value) {
callback();
+ }else{
+ callback()
}
};
const validateIp = (rule, value, callback) => {
- if (!value) {
- callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
- } else {
+ if (value) {
callback();
+ }else{
+ callback()
}
};
return {
@@ -198,21 +210,19 @@
nickName: '',
password: '',
username: '',
- // gender: 1,
+ sex: 1,
isDy: 0,
mobile: '',
email: '',
- // role: null,
+ role: null,
userType: null,
- zj: {
- areaNumber: '',
- phoneNumber: "",
- moreNumber: "",
- },
+ zjarea: '',
+ zjnumber: '',
+ zjother: '',
departmentId: null,
jobTitle: null,
- // mac: '',
- // ip: '',
+ mac: '',
+ ip: '',
},
createUserRules: {
nickName: [
@@ -224,9 +234,9 @@
username: [
{ required: true, trigger: "blur", validator: validateTruename },
],
- // gender: [
- // { required: true, trigger: "blur" },
- // ],
+ sex: [
+ { required: true, trigger: "blur" },
+ ],
isDy: [
{ required: true, trigger: "blur" },
],
@@ -236,67 +246,130 @@
email: [
{ required: false, trigger: "blur", validator: validateMail },
],
- // role: [
- // { required: true, trigger: "blur", validator: validateRole },
- // ],
+ role: [
+ { required: true, trigger: "change", validator: validateRole },
+ ],
userType: [
- { required: true, trigger: "blur", validator: validateType },
+ { required: true, trigger: "change", validator: validateType },
],
zj: [
{ required: false, trigger: "blur" },
],
departmentId: [
- { required: true, trigger: "blur", validator: validateDepartment },
+ { required: true, trigger: "change", validator: validateDepartment },
],
jobTitle: [
{ required: true, trigger: "blur", validator: validateWork },
],
- // mac: [
- // { required: false, trigger: "blur", validator: validateMac },
- // ],
- // ip: [
- // { required: false, trigger: "blur", validator: validateIp },
- // ],
+ mac: [
+ { required: false, trigger: "blur", validator: validateMac },
+ ],
+ ip: [
+ { required: false, trigger: "blur", validator: validateIp },
+ ],
},
roleList: [
- { name: '瑙掕壊1', value: 1 }, { name: '瑙掕壊2', value: 2 }
+
],
- typeList: []
+ typeList: [
+
+ ],
+ departList: []
}
},
created() {
const that = this;
// 鑾峰彇瑙掕壊鍒楄〃
- // this.$axios.get('')
- // 鑾峰彇鐢ㄦ埛绫诲瀷鍒楄〃
- // this.$axios.get('sccg/admin/list',{userType:0}).then(res=>{
- // console.log(res);
- // })
+ this.getRoleList();
// 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃
this.$axios.get('sccg/depart/page').then(res => {
- that.typeList = res.data.records;
+ that.departList = res.data.records;
})
+ // 鑾峰彇鐢ㄦ埛绫诲瀷
+ this.getUserTypeList();
},
methods: {
+ // 鎻愪氦娉ㄥ唽
handleUser() {
- const { user } = this;
- this.$axios.post('sccg/admin/register', {
- departmentId: user.departmentId,
- email: user.email,
- jsDy: user.isDy,
- jobTitle: user.jobTitle,
- mobile: user.mobile,
- nickName: user.nickName,
- password: user.password,
- userType: user.userType,
- username: user.username,
- }).then(res => {
- if (res.code === 200) {
- console.log(1);
- this.$emit('sendDialog',{flag:false});
+ this.$refs['user'].validate((valid) => {
+ console.log(valid);
+ if (valid) {
+ const { user } = this;
+ console.log(user);
+ this.$axios.post('sccg/admin/register', {
+ departmentId: user.departmentId,
+ email: user.email,
+ icon:'',
+ isDy: `${user.isDy}`,
+ jobTitle: user.jobTitle,
+ mobile: user.mobile,
+ note:'',
+ roleIds:user.role,
+ // nickName: user.nickName,
+ sex:`${user.sex}`,
+ password: user.password,
+ userType: `${user.userType}`,
+ username: user.username,
+ zj:user.zjarea+`${user.zjnumber}`+user.zjother,
+ // departName:user.departName,
+ }).then(res => {
+ if (res.code === 200) {
+ console.log(1);
+ this.$message({
+ type:'success',
+ message:res.message,
+ })
+ this.$emit('sendDialog', { flag: false });
+ }else if(res.code === 500 && res.message === "鎿嶄綔澶辫触"){
+ this.$message({
+ type:'warning',
+ message:'璇ョ敤鎴峰凡娉ㄥ唽'
+ })
+ }else{
+ this.$message({
+ type:'warning',
+ message:res.message
+ })
+ }
+ })
+ } else {
+ return false
}
})
},
+ // 鑾峰彇瑙掕壊鍒楄〃
+ getRoleList() {
+ this.$axios({
+ method: 'get',
+ url: 'sccg/role/listAll',
+ })
+ .then(res => {
+ this.roleList = res.data;
+ })
+ },
+ // 閲嶇疆琛ㄥ崟
+ resetForm() {
+ this.$refs['user'].resetFields();
+ },
+ // 鑾峰緱閮ㄩ棬鍚嶇О
+ getDepartName(data) {
+ this.departList.forEach(item => {
+ if (item.id === data) {
+ this.user.departName = item.departName
+ }
+ })
+ },
+ // 鑾峰彇鐢ㄦ埛绫诲瀷
+ getUserTypeList(){
+ this.$axios({
+ method:'get',
+ url:'sccg/dict/query_user_type'
+ })
+ .then(res=>{
+ console.log(res);
+ this.typeList = res.data;
+ })
+ }
},
props: ['sendDialog']
}
@@ -306,46 +379,18 @@
border-radius: 1px;
background-color: #09152f;
- // header {
- // display: flex;
- // justify-content: space-between;
- // height: 60px;
- // line-height: 60px;
- // padding: 0 20px;
- // border: 1px solid #fff;
-
- // .headerTitle {
- // color: #4b9bb7;
- // font-weight: 600;
- // }
-
- // .headerTip span {
- // color: #ff3b6c;
- // }
-
- // .headerTip label {
- // color: #4b9bb7;
- // }
- // }
-
main {
- // border: 1px solid #fff;
text-align: left;
padding: 0 55px;
background-color: #09152f;
padding-bottom: 50px;
padding-top: 20px;
- // .mainTitle {
- // color: #4b9bb7;
- // font-weight: 600;
- // line-height: 100px;
- // font-size: 14px;
- // }
.mainContent {
display: flex;
justify-content: center;
margin-top: 50px;
+
&::v-deep .el-form-item__label {
color: #4b9bb7;
}
@@ -363,29 +408,23 @@
}
}
- .optionHandleSp {
+ .user-item {
display: flex;
- .areaNumber,
- .moreNumber {
- flex: 1;
- }
-
- .telNumber {
- flex: 2;
+ .left-px :deep(.el-form-item__content) {
+ margin-left: 0px !important;
}
}
+ .optionBtn {
+ display: flex;
+ margin-top: 20px;
- .optionBtn {
- display: flex;
- margin-top: 20px;
-
- .btn {
- padding: 12px 50px;
+ .btn {
+ padding: 12px 50px;
+ }
}
- }
+ }
}
}
-}
</style>
\ No newline at end of file
--
Gitblit v1.8.0