From 7991973cf4c25527e227b80192e0bd087cfcee58 Mon Sep 17 00:00:00 2001 From: “dzb” <2632970487@qq.com> Date: 星期二, 27 九月 2022 18:26:25 +0800 Subject: [PATCH] 完善系统设置的基本设置 --- src/views/systemSetting/baseSetting/department/updateUser/index.vue | 59 + src/views/systemSetting/baseSetting/user/components/main/index.vue | 184 ++++- src/views/login/index.vue | 1 src/views/systemSetting/baseSetting/role/createUser/index.vue | 113 +-- src/views/systemSetting/baseSetting/role/updateUser/index.vue | 137 ++-- src/views/layout/components/Menu/index.vue | 2 src/views/systemSetting/baseSetting/department/createUser/index.vue | 158 ++--- src/views/systemSetting/baseSetting/department/index.vue | 68 + src/views/systemSetting/baseSetting/user/components/updateUser/index.vue | 187 +++--- src/views/systemSetting/baseSetting/user/components/createUser/index.vue | 227 ++++---- src/views/systemSetting/baseSetting/user/index.vue | 18 src/App.vue | 5 src/views/operate/lawEnforcement/index.vue | 10 src/views/operate/lawEnforcement/components/dataView/index.vue | 21 src/views/systemSetting/baseSetting/role/index.vue | 140 +++- src/views/systemSetting/platform/mySetting/index.vue | 288 +++++++--- 16 files changed, 921 insertions(+), 697 deletions(-) diff --git a/src/App.vue b/src/App.vue index 0c85672..b646426 100644 --- a/src/App.vue +++ b/src/App.vue @@ -29,7 +29,7 @@ // 鑾峰彇icon async getIcon() { let result; - const pic = JSON.parse(localStorage.getItem('pic')); + const pic = JSON.parse(sessionStorage.getItem('pic')); if (pic) { result = pic; console.log('缂撳瓨') @@ -39,9 +39,8 @@ method: 'get', url: 'sccg/system/portal/logo/search', }).then(res => { - console.log(res); result = res.data; - localStorage.setItem('pic',JSON.stringify(result)); + sessionStorage.setItem('pic',JSON.stringify(result)); }) } return result; diff --git a/src/views/layout/components/Menu/index.vue b/src/views/layout/components/Menu/index.vue index c97376b..06a2df9 100644 --- a/src/views/layout/components/Menu/index.vue +++ b/src/views/layout/components/Menu/index.vue @@ -37,7 +37,7 @@ <el-menu-item index="/home/system/role">瑙掕壊绠$悊鍒楄〃</el-menu-item> </el-submenu> --> <!-- 鏉冮檺绠$悊 --> - <el-menu-item index="/home/system/authority">鏉冮檺绠$悊</el-menu-item> + <!-- <el-menu-item index="/home/system/authority">鏉冮檺绠$悊</el-menu-item> --> <!-- <el-submenu index="/home/system/base/authority" class="thirdMenu"> <template slot="title"> <span class="thirdSpan">鏉冮檺绠$悊</span> diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 81992e8..420d278 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -109,7 +109,6 @@ }, ...mapActions(["login"]), handleLogin() { - console.log("in login"); const { username, password } = this.loginForm; const that = this; this.$axios diff --git a/src/views/operate/lawEnforcement/components/dataView/index.vue b/src/views/operate/lawEnforcement/components/dataView/index.vue new file mode 100644 index 0000000..75fc658 --- /dev/null +++ b/src/views/operate/lawEnforcement/components/dataView/index.vue @@ -0,0 +1,21 @@ +<template> + <div class="dataView"> + 111 + </div> +</template> +<script> +export default { + data() { + return { + + } + }, + props:{ + viewData:Object, + default:{}, + }, + created(){ + console.log(this.viewData); + } +} +</script> diff --git a/src/views/operate/lawEnforcement/index.vue b/src/views/operate/lawEnforcement/index.vue index 7ae0911..68ec27e 100644 --- a/src/views/operate/lawEnforcement/index.vue +++ b/src/views/operate/lawEnforcement/index.vue @@ -5,16 +5,17 @@ <!-- 缁勪欢鍖� --> <div class="dialog"> <el-dialog v-if="visible" :visible.async="visible" title="闂鐧昏" width="60%" :before-close="handleClose"> - <checkIn></checkIn> + <MyView :viewData=showData /> </el-dialog> </div> </div> </template> <script> import MyTable from '@/components/Table' +import MyView from './components/dataView' export default { components: { - MyTable, + MyTable,MyView }, data() { return { @@ -72,7 +73,8 @@ }, ] }, - visible:false + visible:false, + showData:{}, } }, methods:{ @@ -88,6 +90,8 @@ // 鑾峰彇鎿嶄綔缁撴灉 changeDialog({index,mykey}){ console.log(index,mykey); + this.showData = this.list[index]; + this.visible = true; } } } diff --git a/src/views/systemSetting/baseSetting/department/createUser/index.vue b/src/views/systemSetting/baseSetting/department/createUser/index.vue index 4e4daee..e0273f4 100644 --- a/src/views/systemSetting/baseSetting/department/createUser/index.vue +++ b/src/views/systemSetting/baseSetting/department/createUser/index.vue @@ -1,11 +1,5 @@ <template> <div class="createUser"> - <!-- <header> - <div class="headerTitle">鏂板閮ㄩ棬淇℃伅</div> - <div class="headerTip"> - <label>x</label> - </div> - </header> --> <main> <div class="mainContent"> <el-form ref="user" label-width="140px" autoComplete="on" :model="depart" :rules="createDepartRules" @@ -17,18 +11,14 @@ <!-- 涓婄骇閮ㄩ棬 --> <el-form-item class="optionItems" label="涓婄骇閮ㄩ棬:" prop="parentId"> <el-select v-model="depart.parentId" placeholder="璇疯緭鍏ヤ笂绾ч儴闂�"> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" + <el-option v-for="item in departList" :key="item.departName" :label="item.departName" :value="item.id" :disabled="item.disabled"> </el-option> </el-select> </el-form-item> <!-- 閮ㄩ棬绫诲瀷 --> <el-form-item class="optionItem" label="閮ㄩ棬绫诲瀷:" prop="departType"> - <el-select v-model="depart.departType" placeholder="璇烽�夋嫨閮ㄩ棬绫诲瀷"> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" - :disabled="item.disabled"> - </el-option> - </el-select> + <el-input v-model="depart.departType" placeholder="璇烽�夋嫨閮ㄩ棬绫诲瀷"></el-input> </el-form-item> <!--娣诲姞浜哄憳 --> <el-form-item class="optionItem" label="娣诲姞浜哄憳:"> @@ -41,16 +31,16 @@ </el-form-item> <!-- 閮ㄩ棬鎻忚堪 --> <el-form-item class="optionItem" label="閮ㄩ棬鎻忚堪:" prop="departDes"> - <el-input v-model="depart.departDes" placeholder="璇疯緭鍏ラ儴闂ㄦ弿杩�"></el-input> + <el-input type="textarea" v-model="depart.departDes" placeholder="璇疯緭鍏ラ儴闂ㄦ弿杩�"></el-input> </el-form-item> </el-form> </div> </main> <footer> <div class="optionBtn"> - <el-button>鍙栨秷</el-button> - <el-button type="primary" class="btn submit" @click="handleUser">纭畾</el-button> - </div> + <el-button>鍙栨秷</el-button> + <el-button type="primary" class="btn submit" @click="handleUser">纭畾</el-button> + </div> </footer> </div> </template> @@ -59,37 +49,27 @@ 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(); } else { - const rep = /^\w+$/; - if (!rep.test(value)) { - callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); - } - } - }; - const validateTruename = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰鍚�")); - } else { - const rep = /^[\u4E00-\u9FA5]{2,4}$/; - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); - } + callback(); } }; const validatePhone = (rule, value, callback) => { if (!value) { - callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�")); + callback(); } else { - const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜"); - } + // const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ + // if (!rep.test(value)) { + // callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜"); + // } + callback(); } }; return { @@ -113,36 +93,58 @@ { required: false, trigger: "blur" }, ], }, - 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.getDepartTree(); + // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 // this.$axios.get('sccg/depart/page').then(res => { - // that.typeList = res.data.records; + // that.departList = res.data.records; // }) }, methods: { handleUser() { - const { depart } = this; - console.log(depart); - this.$axios.post('/sccg/depart/create', { - departName: depart.departName, - parentId: depart.parentId, departType: depart.departType, departDes: depart.departDes - }).then(res => { - if (res.code === 200) { - this.refresh(); + this.$refs.user.validate((valid) => { + if (valid) { + const { depart } = this; + console.log(depart); + this.$axios.post('/sccg/depart/create', { + departName: depart.departName, + parentId: depart.parentId, departType: depart.departType, departDes: depart.departDes + }).then(res => { + if (res.code === 200) { + this.$message({ + message:res.message, + type:'success' + }) + this.refresh(); + }else if(res.code ===2001){ + this.$message({ + message:res.message, + type:'error' + }) + this.refresh(); + } + }) + }else{ + return false; } + }) + }, + // 鑾峰彇閮ㄩ棬鏍戝舰缁撴瀯鍥� + getDepartTree(){ + this.$axios({ + method:'get', + url:'sccg/depart/tree', + }) + .then(res=>{ + res.data.unshift({id:0,departName:'涓�绾ц彍鍗曟爮'}) + this.departList = res.data; + console.log(res); }) } }, @@ -154,38 +156,17 @@ 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; + .mainContent { display: flex; justify-content: center; padding-top: 50px; + &::v-deep .el-form-item__label { color: #4b9bb7; } @@ -194,11 +175,18 @@ background-color: #09152f; border: 1px solid #17324c; } - .addPerson{ + + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + + .addPerson { display: flex; list-style: none; - padding:0; - li{ + padding: 0; + + li { background-color: #cccccc; width: 36px; height: 36px; @@ -209,6 +197,7 @@ margin-left: 10px; } } + .el-form-item__content { width: 400px; @@ -232,7 +221,8 @@ } } - footer{ + + footer { border-top: 1px solid #fff; height: 80px; display: flex; diff --git a/src/views/systemSetting/baseSetting/department/index.vue b/src/views/systemSetting/baseSetting/department/index.vue index c9556d0..9516994 100644 --- a/src/views/systemSetting/baseSetting/department/index.vue +++ b/src/views/systemSetting/baseSetting/department/index.vue @@ -6,13 +6,13 @@ <span>绛涢�夋潯浠�:</span> <el-input v-model="context" placeholder="璇疯緭鍏ュ唴瀹�"></el-input> <div class="findBtn"> - <el-button type="primary" @click="search()" >鏌ヨ</el-button> + <el-button type="primary" @click="search()">鏌ヨ</el-button> </div> </div> <div class="addUser"> <el-button class="addBtn" type="primary" @click="dialogCreate = true">鏂板閮ㄩ棬</el-button> <el-dialog :visible.sync="dialogCreate" title="鏂板閮ㄩ棬淇℃伅" width="45%" v-if="dialogCreate"> - <createUser :refresh="getUserList" /> + <createUser :refresh="context==='' ? getUserList : search " /> </el-dialog> </div> </div> @@ -25,7 +25,7 @@ :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"> <el-table-column type="selection" min-width="5"> </el-table-column> - <el-table-column prop="id" label="閮ㄩ棬ID" min-width="5"> + <el-table-column prop="id" label="閮ㄩ棬ID" min-width="5"> <!-- <template slot-scope="scope">{{ scope.row.id }}</template> --> </el-table-column> <el-table-column prop="departName" label="閮ㄩ棬鍚嶇О" min-width="10"> @@ -51,14 +51,18 @@ <span class="line">|</span> <!-- <span>淇敼瀵嗙爜</span> --> <!-- <span>鍒犻櫎</span> --> - <span @click="handleUpdate(scope.row)">淇敼閮ㄩ棬</span> + <span @click="handleUpdate(scope.row)">淇敼</span> + <span class="line">|</span> + <span @click="handleDelete(scope.row)">鍒犻櫎</span> </div> </template> </el-table-column> </el-table> <!-- 鏌ョ湅淇敼椤甸潰 --> - <el-dialog :visible.sync="dialogUpdate" width="45%" :title="updateFlag ? '淇敼閮ㄩ棬淇℃伅' :'鏌ョ湅閮ㄩ棬淇℃伅'" v-if="dialogUpdate"> - <updateUser :updateFlag="updateFlag" :userInfo="userInfo" :getUserList="getUserList" @changeDialog="changMyDialog" /> + <el-dialog :visible.sync="dialogUpdate" width="45%" :title="updateFlag ? '淇敼閮ㄩ棬淇℃伅' :'鏌ョ湅閮ㄩ棬淇℃伅'" + v-if="dialogUpdate"> + <updateUser :updateFlag="updateFlag" :userInfo="userInfo" :getUserList="context==='' ? getUserList : search" + @changeDialog="changMyDialog" /> </el-dialog> <!-- 鍒嗛〉 --> <div class="pagination"> @@ -89,13 +93,35 @@ totalNum: 200, pageSize: 10, currentPage: 1, - context:'' + context: '' } }, created() { this.getUserList(); }, methods: { + handleDelete({ id }) { + this.$confirm('纭鍒犻櫎锛�') + .then(_ => { + this.$axios({ + method: 'post', + url: 'sccg/depart/delete', + data: { + id + } + }) + .then(res => { + console.log(res); + this.$message({ + type: res.code===404 ? 'warning':'success', + message: res.message + }) + + this.getUserList(); + }) + }) + .catch(_ => {}); + }, // 淇敼瑙掕壊 handleChangeRole(obj) { this.dialogUpdate = true @@ -107,7 +133,7 @@ let { id, status } = obj; status == true ? status = 1 : status = 0; console.log(id, status); - this.$axios.post(`sccg/depart/status` ,{id:id,status:status}).then(res => { + this.$axios.post(`sccg/depart/status`, { id: id, status: status }).then(res => { console.log(res); }) }, @@ -131,14 +157,14 @@ const that = this; this.dialogCreate = false; // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� - this.$axios.get('sccg/depart/page',{params:{currentPage:this.currentPage,pageSize:this.pageSize,departName:this.context}}).then(res => { + this.$axios.get('sccg/depart/page', { params: { currentPage: this.currentPage, pageSize: this.pageSize, departName: this.context } }).then(res => { if (res.code === 200) { res.data.records.forEach(item => { item.createTime = helper(item.createTime); item.status == 1 ? item.status = true : item.status = false; }) that.totalNum = res.data.records.length; - that.tableData = res.data.records.slice((that.currentPage-1)*10,that.currentPage*10) + that.tableData = res.data.records.slice((that.currentPage - 1) * this.pageSize, that.currentPage * this.pageSize) } }) }, @@ -164,22 +190,22 @@ this.userInfo = rowData }, // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� - changeCurrentPage(page){ + changeCurrentPage(page) { this.currentPage = page; this.search(); }, // 涓婁竴椤电偣鍑讳簨浠� - handlePrev(page){ + handlePrev(page) { this.currentPage = page; this.search(); }, // 涓嬩竴椤电偣鍑讳簨浠� - handleNext(page){ + handleNext(page) { this.currentPage = page; this.search(); }, - // 鍏抽棴dialog - changMyDialog(val){ + // 鍏抽棴dialog + changMyDialog(val) { this.dialogUpdate = val.dialogFlag; } }, @@ -335,22 +361,26 @@ &::v-deep .el-dialog__body { background-color: #06122c; } - &::v-deep .el-dialog__header{ + + &::v-deep .el-dialog__header { display: flex; align-items: center; background-color: #fff; padding: 20px; line-height: 60px; } - &::v-deep .el-dialog__title{ + + &::v-deep .el-dialog__title { color: #4b9bb7; } - &::v-deep .el-dialog__close{ + + &::v-deep .el-dialog__close { width: 20px; height: 20px; // color: #fff; } - &::v-deep .el-dialog__body{ + + &::v-deep .el-dialog__body { padding: 0; } } diff --git a/src/views/systemSetting/baseSetting/department/updateUser/index.vue b/src/views/systemSetting/baseSetting/department/updateUser/index.vue index 44f43fc..e2cfc39 100644 --- a/src/views/systemSetting/baseSetting/department/updateUser/index.vue +++ b/src/views/systemSetting/baseSetting/department/updateUser/index.vue @@ -18,7 +18,8 @@ <!-- 涓婄骇閮ㄩ棬 --> <el-form-item class="optionItems" label="涓婄骇閮ㄩ棬:" prop="parentId"> <el-select v-model="user.parentId" placeholder="璇烽�夋嫨涓婄骇閮ㄩ棬" :disabled="!updateFlag"> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"> + <el-option v-for="item in typeList" :key="item.departName" :label="item.departName" + :value="item.id"> </el-option> </el-select> </el-form-item> @@ -51,31 +52,37 @@ const validateNickname = (rule, value, callback) => { if (!value) { callback(new Error("璇峰~鍐欓儴闂ㄥ悕绉�")); + } else { + callback(); } }; const validateId = (rule, value, callback) => { if (!value) { callback(new Error("璇峰~鍐欓儴闂╥d")); + } else { + callback(); } } const validatePass = (rule, value, callback) => { if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); + callback(); } else { - const rep = /^\w+$/; - if (!rep.test(value)) { - callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); - } + callback(); + // const rep = /^\w+$/; + // if (!rep.test(value)) { + // callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); + // } } }; const validatePhone = (rule, value, callback) => { if (!value) { - callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�")); + callback(); } else { - const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜"); - } + callback(); + // const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ + // if (!rep.test(value)) { + // callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜"); + // } } }; return { @@ -125,16 +132,26 @@ }, methods: { handleUser() { - const { user } = this; - const that = this; - this.$axios.post('sccg/depart/update', { - id: user.id, - departName: user.departName, - parentId: user.parentId, - departDes: user.departDes - }).then(res => { - this.$emit('changeDialog',{dialogUpdate:false}); - this.getUserList(); + this.$refs['user'].validate((valid) => { + if (valid) { + const { user } = this; + this.$axios.post('sccg/depart/update', { + id: user.id, + departName: user.departName, + parentId: user.parentId, + departDes: user.departDes + }).then(res => { + console.log(res); + this.$message({ + message:res.message, + type:res.code === 200 ? 'success' : 'warning', + }) + this.$emit('changeDialog', { dialogUpdate: false }); + this.getUserList(); + }) + } else { + return false; + } }) } }, diff --git a/src/views/systemSetting/baseSetting/role/createUser/index.vue b/src/views/systemSetting/baseSetting/role/createUser/index.vue index 9d8fbc2..5208019 100644 --- a/src/views/systemSetting/baseSetting/role/createUser/index.vue +++ b/src/views/systemSetting/baseSetting/role/createUser/index.vue @@ -1,11 +1,5 @@ <template> <div class="createUser"> - <!-- <header> - <div class="headerTitle">鏂板瑙掕壊</div> - <div class="headerTip"> - <label>x</label> - </div> - </header> --> <main> <div class="mainContent"> <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" @@ -16,20 +10,22 @@ </el-form-item> <!-- 瑙掕壊绫诲瀷 --> <el-form-item class="optionItems" label="瑙掕壊绫诲瀷:" prop="status"> - <el-select v-model="role.type" placeholder="璇烽�夋嫨瑙掕壊绫诲瀷"> + <el-input v-model="role.type" placeholder="璇烽�夋嫨瑙掕壊绫诲瀷"></el-input> + <!-- <el-select v-model="role.type" placeholder="璇烽�夋嫨瑙掕壊绫诲瀷"> <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" :disabled="item.disabled"> </el-option> - </el-select> + </el-select> --> </el-form-item> <!-- 瑙掕壊鎻忚堪 --> <el-form-item class="optionItem" label="瑙掕壊鎻忚堪:" prop="description"> - <el-input v-model="role.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input> + <el-input type="textarea" v-model="role.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input> </el-form-item> <el-form-item> <div class="optionBtn"> - <el-button class="btn cancel" >鍙栨秷</el-button> - <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦</el-button> + <el-button class="btn cancel" @click="handleStop">鍙栨秷</el-button> + <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦 + </el-button> </div> </el-form-item> </el-form> @@ -43,50 +39,50 @@ 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(); } else { - const rep = /^\w+$/; - if (!rep.test(value)) { - callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); - } + // const rep = /^\w+$/; + // if (!rep.test(value)) { + // callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); + // } + callback(); } }; const validateTruename = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰鍚�")); + if (value) { + callback(); } else { - const rep = /^[\u4E00-\u9FA5]{2,4}$/; - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); - } + // const rep = /^[\u4E00-\u9FA5]{2,4}$/; + // if (!rep.test(value)) { + // callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); + // } + callback(); } }; return { role: { + name: '', type: '', - status: '', description: '', }, createRoleRules: { name: [ { required: true, trigger: "blur", validator: validateNickname }, ], - status: [ + type: [ { required: false, trigger: "blur", validator: validatePass }, ], description: [ { required: false, trigger: "blur", validator: validateTruename }, ], }, - roleList: [ - { name: '瑙掕壊1', value: 1 }, { name: '瑙掕壊2', value: 2 } - ], - typeList: [] } }, created() { @@ -98,21 +94,31 @@ // console.log(res); // }) // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 - this.$axios.get('sccg/depart/page').then(res => { - that.typeList = res.data.records; - }) + // this.$axios.get('sccg/depart/page').then(res => { + // that.typeList = res.data.records; + // }) }, methods: { handleUser() { - const { role } = this; - console.log(role); - this.$axios.post('sccg/role/create', { - description:role.description,name:role.name,type:role.type - }).then(res => { - if (res.code === 200) { - this.refresh(); + this.$refs['user'].validate((valid) => { + console.log(valid); + if (valid) { + const { role } = this; + console.log(role); + this.$axios.post('sccg/role/create', { + description: role.description, name: role.name, type: role.type + }).then(res => { + if (res.code === 200) { + this.refresh(); + } + }) + } else { + return false; } }) + }, + handleStop(){ + this.refresh(); } }, props: ['refresh'] @@ -123,30 +129,7 @@ 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; @@ -156,6 +139,7 @@ display: flex; justify-content: center; padding-top: 50px; + &::v-deep .el-form-item__label { color: #4b9bb7; } @@ -165,6 +149,11 @@ border: 1px solid #17324c; } + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } + .el-form-item__content { width: 400px; diff --git a/src/views/systemSetting/baseSetting/role/index.vue b/src/views/systemSetting/baseSetting/role/index.vue index be67cba..421728c 100644 --- a/src/views/systemSetting/baseSetting/role/index.vue +++ b/src/views/systemSetting/baseSetting/role/index.vue @@ -30,9 +30,9 @@ </el-table-column> --> <el-table-column prop="name" label="瑙掕壊鍚嶇О" min-width="10"> </el-table-column> - <el-table-column prop="username" label="瑙掕壊绫诲瀷" min-width="10"> + <el-table-column prop="sort" label="瑙掕壊绫诲瀷" min-width="10"> </el-table-column> - <el-table-column prop="mobile" label="榛樿瑙掕壊" min-width="10"> + <el-table-column prop="adminCount" label="榛樿瑙掕壊" min-width="10"> </el-table-column> <el-table-column prop="description" label="澶囨敞" min-width="10"> </el-table-column> @@ -51,14 +51,20 @@ <span class="line">|</span> <!-- <span>淇敼瀵嗙爜</span> --> <!-- <span>鍒犻櫎</span> --> - <span @click="handleUpdate(scope.row)">淇敼瑙掕壊</span> + <span @click="handleUpdate(scope.row)">鏉冮檺璁剧疆</span> + <span class="line">|</span> + <span @click="handleStop(scope.row)">鍋滅敤</span> + <span class="line">|</span> + <span @click="handleDelete(scope.row)">鍒犻櫎</span> </div> </template> </el-table-column> </el-table> <!-- 鏌ョ湅淇敼椤甸潰 --> - <el-dialog :visible.sync="dialogUpdate" width="45%" :title="updateFlag ? '淇敼瑙掕壊淇℃伅' :'鏌ョ湅瑙掕壊淇℃伅'" v-if="dialogUpdate"> - <updateUser :updateFlag="updateFlag" :userInfo=userInfo :getUserList=getUserList @changeDialog="changeDialog" /> + <el-dialog :visible.sync="dialogUpdate" width="45%" :title="updateFlag ? '鏉冮檺璁剧疆' :'鏌ョ湅瑙掕壊淇℃伅'" + v-if="dialogUpdate"> + <updateUser :updateFlag="updateFlag" :userInfo=userInfo :getUserList=getUserList + @changeDialog="changeDialog" /> </el-dialog> <!-- 鍒嗛〉 --> <div class="pagination"> @@ -96,6 +102,28 @@ this.getUserList(); }, methods: { + handleDelete({ id }) { + const that = this; + let arr = []; + arr.push(id); + this.$confirm('纭鍒犻櫎锛�') + .then(_ => { + that.$axios({ + method: 'post', + url: 'sccg/role/delete?ids=' + arr, + }) + .then(res => { + console.log(res); + this.$message({ + type: 'success', + message: res.message + }) + + this.getUserList(); + }) + }) + .catch(_ => { }); + }, // 淇敼瑙掕壊 handleChangeRole(obj) { this.dialogUpdate = true @@ -111,37 +139,66 @@ console.log(res); }) }, + handleStop(obj) { + // let { id, status } = obj; + // status == true ? status = 1 : status = 0; + // console.log(id, status); + // this.$axios.post(`/sccg/role/updateStatus/` + id + '?status=' + status).then(res => { + // this.getUserList(); + // }) + }, // 鑾峰彇鐢ㄦ埛鍒楄〃 getUserList() { const that = this; this.dialogCreate = false; // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� this.$axios.get('sccg/role/listAll').then(res => { - console.log(res) - if (res.code === 200) { - res.data.forEach(item => { - item.createTime = helper(item.createTime); - item.status == 1 ? item.status = true : item.status = false; - }) - that.tableData = res.data - this.totalNum=res.data.length - } + this.totalNum = res.data.length; + this.search(); }) }, search() { const that = this; + const { currentPage, pageSize, context } = this; this.dialogCreate = false; // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� - this.$axios.get('sccg/role/list',{params:{pageNum:this.currentPage,pageSize:this.pageSize,keyword:this.context}}).then(res => { - if (res.code === 200) { - res.data.list.forEach(item => { - item.createTime = helper(item.createTime); - item.status == 1 ? item.status = true : item.status = false; - }) - this.totalNum=this. - this.totalNum=res.data.list.length - } - }) + if (context == '') { + this.$axios.get('sccg/role/list?keyword=' + '&pageNum=' + currentPage + '&pageSize=' + pageSize).then(res => { + if (res.code === 200) { + console.log(res); + res.data.list.forEach(item => { + item.createTime = helper(item.createTime); + item.status == 1 ? item.status = true : item.status = false; + }) + that.tableData = res.data.list + } + }) + } else { + this.$axios({ + method: 'get', + url: 'sccg/role/list?keyword='+context + '&pageNum=' + currentPage + '&pageSize=' + pageSize, + }).then(res => { + if (res.code === 200) { + console.log(2, res); + res.data.list.forEach(item => { + item.createTime = helper(item.createTime); + item.status == 1 ? item.status = true : item.status = false; + }) + that.tableData = res.data.list + this.totalNum = res.data.length; + } + }) + // this.$axios.get('sccg/role/list?'+context).then(res => { + // if (res.code === 200) { + // console.log(2,res); + // res.data.list.forEach(item => { + // item.createTime = helper(item.createTime); + // item.status == 1 ? item.status = true : item.status = false; + // }) + // that.tableData = res.data.list + // } + // }) + } }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { @@ -179,28 +236,7 @@ this.currentPage = page; this.search(); }, - // 鐢ㄦ埛鏌ヨ(鏆傛椂鏀寔鐢佃瘽鍙风爜) - handlePhone() { - const { search, getUserList } = this; - const that = this; - if (search == '') { - getUserList(); - return; - } - this.dialogCreate = false; - // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� - this.$axios.get(`sccg/admin/list?mobile=${search}`).then(res => { - if (res.code === 200) { - res.data.records.forEach(item => { - item.createTime = helper(item.createTime); - item.status == 1 ? item.status = true : item.status = false; - }) - that.totalNum = res.data.records.length; - that.tableData = res.data.records.slice((that.currentPage - 1) * 10, that.currentPage * 10) - } - }) - }, - changeDialog(val){ + changeDialog(val) { this.dialogUpdate = val.dialogUpdate; console.log(val); } @@ -357,22 +393,26 @@ &::v-deep .el-dialog__body { background-color: #06122c; } - &::v-deep .el-dialog__header{ + + &::v-deep .el-dialog__header { display: flex; align-items: center; background-color: #fff; padding: 20px; line-height: 60px; } - &::v-deep .el-dialog__title{ + + &::v-deep .el-dialog__title { color: #4b9bb7; } - &::v-deep .el-dialog__close{ + + &::v-deep .el-dialog__close { width: 20px; height: 20px; // color: #fff; } - &::v-deep .el-dialog__body{ + + &::v-deep .el-dialog__body { padding: 0; } } diff --git a/src/views/systemSetting/baseSetting/role/updateUser/index.vue b/src/views/systemSetting/baseSetting/role/updateUser/index.vue index 5d2e253..eb2c505 100644 --- a/src/views/systemSetting/baseSetting/role/updateUser/index.vue +++ b/src/views/systemSetting/baseSetting/role/updateUser/index.vue @@ -1,8 +1,5 @@ <template> <div class="updateUser"> - <!-- <header> - <div class="headerTitle">{{updateFlag ? '淇敼瑙掕壊淇℃伅' :'鏌ョ湅瑙掕壊淇℃伅'}}</div> - </header> --> <main> <div class="mainContent"> <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" @@ -12,20 +9,18 @@ <el-input v-model="role.name" placeholder="璇峰~鍐欒鑹插悕绉�" :disabled="!updateFlag"></el-input> </el-form-item> <!-- 瑙掕壊绫诲瀷 --> - <el-form-item class="optionItems" label="瑙掕壊绫诲瀷:" prop="status"> - <el-select v-model="role.status" placeholder="璇烽�夋嫨瑙掕壊绫诲瀷" :disabled="!updateFlag"> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" - :disabled="item.disabled"> - </el-option> - </el-select> + <el-form-item class="optionItems" label="瑙掕壊绫诲瀷:" prop="sort"> + <el-input v-model="role.sort" placeholder="璇烽�夋嫨瑙掕壊绫诲瀷" :disabled="!updateFlag"></el-input> </el-form-item> <!-- 瑙掕壊鎻忚堪 --> <el-form-item class="optionItem" label="瑙掕壊鎻忚堪:" prop="description"> - <el-input v-model="role.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�" :disabled="!updateFlag"></el-input> + <el-input type="textarea" v-model="role.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�" + :disabled="!updateFlag"></el-input> </el-form-item> <el-form-item v-if="updateFlag"> <div class="optionBtn"> - <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">纭</el-button> + <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">纭 + </el-button> </div> </el-form-item> </el-form> @@ -39,83 +34,81 @@ 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(); } else { - const rep = /^\w+$/; - if (!rep.test(value)) { - callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); - } + // const rep = /^\w+$/; + // if (!rep.test(value)) { + // callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); + // } + callback(); } }; const validateTruename = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑敤鎴峰鍚�")); + if (value) { + callback(); } else { - const rep = /^[\u4E00-\u9FA5]{2,4}$/; - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); - } + // const rep = /^[\u4E00-\u9FA5]{2,4}$/; + // if (!rep.test(value)) { + // callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); + // } + callback(); } }; return { role: { - id:'', name: '', - status: '', + sort: '', description: '', }, createRoleRules: { name: [ { required: true, trigger: "blur", validator: validateNickname }, ], - status: [ + sort: [ { required: false, trigger: "blur", validator: validatePass }, ], description: [ { required: false, trigger: "blur", validator: validateTruename }, ], }, - roleList: [ - { name: '瑙掕壊1', value: 1 }, { name: '瑙掕壊2', value: 2 } - ], - typeList: [] } }, created() { const that = this; - this.userInfo.status ? this.userInfo.status = 1: this.userInfo.status = 0; + this.userInfo.status ? this.userInfo.status = 1 : this.userInfo.status = 0; this.role = JSON.parse(JSON.stringify(that.userInfo)); - // 鑾峰彇瑙掕壊鍒楄〃 - // this.$axios.get('') - // 鑾峰彇鐢ㄦ埛绫诲瀷鍒楄〃 - // this.$axios.get('sccg/admin/list',{userType:0}).then(res=>{ - // console.log(res); - // }) - // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃 - this.$axios.get('sccg/depart/page').then(res => { - that.typeList = res.data.records; - }) + console.log(this.role); }, methods: { handleUser() { - const { role } = this; - this.$axios.post('/sccg/role/update/'+role.id, { - id:role.id, - status: role.status, - description:role.description, - name:role.name - }).then(res => { - this.$emit('changeDialog',{dialogUpdate:false}); - this.getUserList(); + this.$refs.user.validate((valid) => { + console.log(valid); + if (valid) { + const { role } = this; + this.$axios.post('/sccg/role/update/' + role.id, { + id: role.id, + status: role.status, + description: role.description, + name: role.name, + sort:role.sort + }).then(res => { + this.$emit('changeDialog', { dialogUpdate: false }); + this.getUserList(); + }) + } else { + return false; + } }) } }, - props: ['userInfo', 'updateFlag','getUserList','changeDialog'] + props: ['userInfo', 'updateFlag', 'getUserList', 'changeDialog'] } </script> <style lang="scss" scoped> @@ -123,37 +116,18 @@ border-radius: 1px; background-color: #09152f; - // header { - // display: flex; - // justify-content: center; - // 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; + .mainContent { display: flex; justify-content: center; padding-top: 50px; + .el-form-item__content { width: 400px; @@ -186,14 +160,19 @@ } } -} -.updateUser::v-deep .el-form-item__label { - color: #4b9bb7; -} + &::v-deep .el-textarea__inner { + background-color: #09152f; + border: 1px solid #17324c; + } -.updateUser::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; + ::v-deep .el-form-item__label { + color: #4b9bb7; + } + + ::v-deep .el-input__inner { + background-color: #09152f; + border: 1px solid #17324c; + } } </style> \ No newline at end of file diff --git a/src/views/systemSetting/baseSetting/user/components/createUser/index.vue b/src/views/systemSetting/baseSetting/user/components/createUser/index.vue index 833990f..76db6d1 100644 --- a/src/views/systemSetting/baseSetting/user/components/createUser/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/createUser/index.vue @@ -1,14 +1,6 @@ <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"> @@ -47,17 +39,17 @@ <el-input v-model="user.email" placeholder="璇峰~鍐欓偖绠卞湴鍧�"></el-input> </el-form-item> <!-- 閫夋嫨瑙掕壊 --> - <!-- <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role"> + <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" + <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> <!-- 鐢ㄦ埛绫诲瀷 --> <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" + <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id" :disabled="item.disabled"> </el-option> </el-select> @@ -76,27 +68,28 @@ <!-- 鎵�灞為儴闂� --> <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-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">閲嶇疆</el-button> </div> </el-form-item> </el-form> @@ -110,99 +103,106 @@ 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(); } } }; - const validateMail = (rule, value, callback) => { - if (value) { - 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("璇疯緭鍏ユ纭殑閭")) - } - } - }; + // const validateMail = (rule, value, callback) => { + // if (value) { + // 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("璇疯緭鍏ユ纭殑閭")) + // } + // } + // }; 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 { - callback(); - } - }; - const validateIp = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); - } else { - callback(); - } - }; + // const validateMac = (rule, value, callback) => { + // if (value) { + // callback(new Error("")); + // }else{ + // callback() + // } + // }; + // const validateIp = (rule, value, callback) => { + // if (value) { + // }else{ + // callback() + // } + // }; return { user: { nickName: '', password: '', username: '', - // gender: 1, + gender: 1, isDy: 0, mobile: '', email: '', - // role: null, + role: null, userType: null, zj: { areaNumber: '', @@ -211,8 +211,8 @@ }, departmentId: null, jobTitle: null, - // mac: '', - // ip: '', + mac: '', + ip: '', }, createUserRules: { nickName: [ @@ -224,29 +224,29 @@ username: [ { required: true, trigger: "blur", validator: validateTruename }, ], - // gender: [ - // { required: true, trigger: "blur" }, - // ], + gender: [ + { required: true, trigger: "blur" }, + ], isDy: [ { required: true, trigger: "blur" }, ], mobile: [ { required: true, trigger: "blur", validator: validatePhone }, ], - email: [ - { required: false, trigger: "blur", validator: validateMail }, - ], - // role: [ - // { required: true, trigger: "blur", validator: validateRole }, + // email: [ + // { required: false, trigger: "blur", validator: validateMail }, // ], + 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 }, @@ -259,44 +259,61 @@ // ], }, roleList: [ - { name: '瑙掕壊1', value: 1 }, { name: '瑙掕壊2', value: 2 } + { name: '瑙掕壊1', id: 1 }, { name: '瑙掕壊2', id: 2 } ], - typeList: [] + typeList: [ + { name: '绫诲瀷1', id: 1 }, { name: '绫诲瀷2', id: 2 } + ], + 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; }) }, 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, + 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 }); + } + }) + }else{ + return false } }) }, + // 鑾峰彇瑙掕壊鍒楄〃 + getRoleList() { + this.$axios({ + method: 'get', + url: 'sccg/role/listAll', + }) + .then(res => { + this.roleList = res.data; + }) + } }, props: ['sendDialog'] } @@ -306,46 +323,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; } diff --git a/src/views/systemSetting/baseSetting/user/components/main/index.vue b/src/views/systemSetting/baseSetting/user/components/main/index.vue index 4ff7c0f..394c7d4 100644 --- a/src/views/systemSetting/baseSetting/user/components/main/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/main/index.vue @@ -7,20 +7,20 @@ :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"> <el-table-column type="selection" min-width="5"> </el-table-column> - <el-table-column label="鐢ㄦ埛ID" min-width="5"> + <el-table-column label="鐢ㄦ埛ID" min-width="4"> <template slot-scope="scope">{{ scope.row.id }}</template> </el-table-column> <el-table-column prop="nickName" label="鐢ㄦ埛鍚嶇О" min-width="10"> </el-table-column> - <el-table-column prop="username" label="鎵�灞炲鍚�" min-width="10"> + <el-table-column prop="username" label="鎵�灞炲鍚�" min-width="8"> </el-table-column> - <el-table-column prop="mobile" label="鑱旂郴鏂瑰紡" min-width="10"> + <el-table-column prop="mobile" label="鑱旂郴鏂瑰紡" min-width="7"> </el-table-column> - <el-table-column prop="note" label="鎵�灞炶鑹�" min-width="10"> + <el-table-column prop="note" label="鎵�灞炶鑹�" min-width="8"> </el-table-column> - <el-table-column prop="departName" label="鎵�灞為儴闂�" min-width="10"> + <el-table-column prop="departName" label="鎵�灞為儴闂�" min-width="8"> </el-table-column> - <el-table-column prop="jobTitle" label="鎵�灞炶亴鍔�" min-width="10"> + <el-table-column prop="jobTitle" label="鎵�灞炶亴鍔�" min-width="8"> </el-table-column> <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10"> </el-table-column> @@ -31,31 +31,52 @@ </el-switch> </template> </el-table-column> - <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <el-table-column prop="operation" label="鎿嶄綔" min-width="22"> <template slot-scope="scope"> <div class="operation"> - <!-- <span @click="handleChangeRole(scope.row)">淇敼瑙掕壊</span> --> + <span @click="handleChangeRole(scope.row,'role')">淇敼瑙掕壊</span> + <span class="line">|</span> <span @click="handleFind(scope.row)">鏌ョ湅</span> <span class="line">|</span> - <!-- <span>淇敼瀵嗙爜</span> --> - <!-- <span>鍒犻櫎</span> --> - <span @click="handleUpdate(scope.row)">淇敼閮ㄩ棬</span> + <span @click="handleChangeRole(scope.row,'password')">淇敼瀵嗙爜</span> + <span class="line">|</span> + <span @click="handleDelete(scope.row)">鍒犻櫎</span> + <span class="line">|</span> + <span @click="handleChangeRole(scope.row,'depart')">淇敼閮ㄩ棬</span> </div> </template> </el-table-column> </el-table> <!-- 鏌ョ湅淇敼椤甸潰 --> <el-dialog :visible.sync="dialogUpdate" width="45%" v-if="dialogUpdate" - :title="updateFlag ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅' :'鏌ョ湅鐢ㄦ埛淇℃伅'"> - <updateUser :updateFlag="updateFlag" :userInfo=userInfo /> + :title="updateFlag ? flag.role ? '淇敼鐢ㄦ埛瑙掕壊淇℃伅' : flag.depart ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅': '淇敼鐢ㄦ埛瀵嗙爜' :'鏌ョ湅鐢ㄦ埛淇℃伅'" + :before-close="handleClose"> + <updateUser :updateFlag="updateFlag" :userInfo=userInfo :flag=flag @closeDialog="closeDialog" + :getUserList="getUserList" /> </el-dialog> - <!-- 鍒嗛〉 --> + <!-- tools --> <div class="pagination"> - <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum" - :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev" - @next-click="handleNext"> - </el-pagination> - </div> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum" + :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev" + @next-click="handleNext"> + </el-pagination> + </div> + <!-- <div class="tools"> + <div class="funs"> + <div class="funsItem" > + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem" > + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + </div> --> + <!-- <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum" + :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev" + @next-click="handleNext"> + </el-pagination> + </div> --> + <!-- </div> --> </div> </main> </template> @@ -77,12 +98,58 @@ pageSize: 10, currentPage: 1, renderFlag: false, + flag: { + role: false, + password: false, + depart: false, + }, + all:false, + unsame:false, } }, created() { this.getUserList(); }, methods: { + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + + }, + disSame(list){ + console.log(this.$refs.multipleTable); + // const row = this.$refs.table.data + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + // 鍒犻櫎鐢ㄦ埛 + handleDelete({ id }) { + this.$confirm('纭鍒犻櫎锛�').then(_ => { + this.$axios({ + method: 'post', + url: 'sccg/admin/delete/' + id, + }).then(res => { + console.log(res); + this.$message({ + message: res.message, + type: 'success' + }) + this.getUserList(); + }) + }).catch(_ => { }) + }, + closeDialog({ flag }) { + this.dialogUpdate = flag; + this.getUserList(); + }, + handleClose(done) { + this.$confirm('纭鍏抽棴锛�') + .then(_ => { + this.dialogUpdate = false + done(); + }) + .catch(_ => { }); + }, // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { this.currentPage = page; @@ -99,10 +166,17 @@ this.getUserList(); }, // 淇敼瑙掕壊 - handleChangeRole(obj) { - this.dialogUpdate = true - this.user = obj; - // console.log(obj) + handleChangeRole(obj, mykey) { + this.dialogUpdate = true; + this.updateFlag = true; + for (let key in this.flag) { + if (key == mykey) { + this.flag[key] = true; + } else { + this.flag[key] = false; + } + } + this.userInfo = obj; }, // 淇敼鐢ㄦ埛鐘舵�� handleChangeStatus(obj) { @@ -119,10 +193,10 @@ // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�佺敤鎴锋煡璇�(鏆傛椂鏀寔鐢佃瘽鍙风爜) this.$axios.get(`sccg/admin/list?mobile=${search}¤t=${currentPage}&pageSize=${pageSize}`).then(res => { if (res.code === 200) { - res.data.records.forEach(item => { - item.createTime = helper(item.createTime); - item.status == 1 ? item.status = true : item.status = false; - }) + // res.data.records.forEach(item => { + // item.createTime = helper(item.createTime); + // item.status == 1 ? item.status = true : item.status = false; + // }) that.totalNum = res.data.pages * pageSize; that.tableData = res.data.records; this.renderFlag = true; @@ -134,22 +208,20 @@ this.dialogUpdate = true; this.updateFlag = false; this.userInfo = rowData; - }, - // 淇敼鐢ㄦ埛閮ㄩ棬淇℃伅 - handleUpdate(rowData) { - this.dialogUpdate = true; - this.updateFlag = true; - this.userInfo = rowData + const { flag } = this; + for (let key in flag) { + flag[key] = false; + } }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { - if ((rowIndex + 1) % 2 == 0) { - return 'warning-row'; - } else { - return 'success-row'; - } - return ''; - }, + if ((rowIndex + 1) % 2 == 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + return ''; + }, }, props: ['refresh', 'keyword', 'resetFresh'], watch: { @@ -180,22 +252,30 @@ line-height: 60px; } - .pagination { - margin-top: 50px; + .tools { display: flex; - line-height: 50px; - justify-content: center; + justify-content: space-between; - .el-pagination { + // .funs {} - &::v-deep li, - &::v-deep .btn-prev, - &::v-deep .btn-next { - background-color: #071f39; - color: #4b9bb7; + + } + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + .el-pagination { + + &::v-deep li, + &::v-deep .btn-prev, + &::v-deep .btn-next { + background-color: #071f39; + color: #4b9bb7; + } } } - } .el-table { color: #4b9bb7; @@ -253,7 +333,7 @@ &::v-deep .switchStyle.el-switch .el-switch__core, &::v-deep .el-switch .el-switch__label { - width: 50px !important; + width: 56px !important; } } </style> \ No newline at end of file diff --git a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue index eabcd01..54363b8 100644 --- a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue +++ b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue @@ -1,10 +1,6 @@ <template> <div class="updateUser"> - <!-- <header> - <div class="headerTitle">{{updateFlag ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅' :'鏌ョ湅鐢ㄦ埛淇℃伅'}}</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"> @@ -14,7 +10,8 @@ </el-form-item> <!-- 鐢ㄦ埛瀵嗙爜 --> <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password"> - <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" :disabled="true"> + <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" + :disabled="!flag.password"> </el-input> </el-form-item> <!-- 鎵�灞炵敤鎴峰鍚� --> @@ -44,17 +41,17 @@ <el-input v-model="user.email" placeholder="璇峰~鍐欓偖绠卞湴鍧�" :disabled="true"></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" + <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role"> + <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" :disabled="!flag.role"> + <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> <!-- 鐢ㄦ埛绫诲瀷 --> <el-form-item class="optionItem" label="鐢ㄦ埛绫诲瀷:" prop="userType"> <el-select v-model="user.userType" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷" disabled> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"> + <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select> </el-form-item> @@ -71,27 +68,24 @@ </el-form-item> --> <!-- 鎵�灞為儴闂� --> <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId"> - <el-select v-model="user.department" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!updateFlag"> - <el-option v-for="item in typeList" :key="item.name" :label="item.departName" + <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!flag.depart"> + <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-select v-model="user.work" placeholder="璇烽�夋嫨褰撳墠鑱屽姟" disabled> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"> - </el-option> - </el-select> + <el-input v-model="user.jobTitle" placeholder="璇疯緭鍏ュ綋鍓嶈亴鍔�" :disabled="true"></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 v-if="updateFlag"> <div class="optionBtn"> <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦 @@ -110,26 +104,34 @@ const validateNickname = (rule, value, callback) => { if (!value) { callback(new Error("璇峰~鍐欑敤鎴峰悕绉�")); + } else { + callback(); } }; const validatePass = (rule, value, callback) => { if (!value) { callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); } else { - const rep = /^\w+$/; - if (!rep.test(value)) { - callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); - } + callback(); + // const rep = /^\w+$/; + // if (!rep.test(value)) { + // callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆")); + // } else { + // callback(); + // } } }; const validateTruename = (rule, value, callback) => { if (!value) { callback(new Error("璇峰~鍐欑敤鎴峰鍚�")); } else { - const rep = /^[\u4E00-\u9FA5]{2,4}$/; - if (!rep.test(value)) { - callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); - } + callback(); + // const rep = /^[\u4E00-\u9FA5]{2,4}$/; + // if (!rep.test(value)) { + // callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕"); + // } else { + // callback(); + // } } }; const validatePhone = (rule, value, callback) => { @@ -139,6 +141,8 @@ const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/ if (!rep.test(value)) { callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜"); + } else { + callback(); } } }; @@ -147,47 +151,52 @@ 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(); } - } - }; - const validateRole = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); } else { callback(); } }; + // const validateRole = (rule, value, callback) => { + // console.log(value); + // if (!value) { + // callback(new Error("璇烽�夋嫨鐢ㄦ埛瑙掕壊")); + // } else { + // callback(); + // } + // }; const validateType = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); + if (!value && value!==0) { + callback(new Error("璇烽�夋嫨鐢ㄦ埛绫诲瀷")); } else { callback(); } }; const validateDepartment = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); + if (!value && value !== 0) { + callback(new Error("璇烽�夋嫨鎵�灞為儴闂�")); } else { 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("璇峰~鍐欑櫥褰曞瘑鐮�")); + callback(); } else { callback(); } }; const validateIp = (rule, value, callback) => { if (!value) { - callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�")); + callback(); } else { callback(); } @@ -208,10 +217,10 @@ phoneNumber: "", moreNumber: "", }, - departmentId: null, - jobTitle: null, - // mac: '', - // ip: '', + // departmentId: null, + // jobTitle: null, + mac: '', + ip: '', }, createUserRules: { nickName: [ @@ -236,16 +245,16 @@ { required: false, trigger: "blur", validator: validateMail }, ], // role: [ - // { required: true, trigger: "blur", validator: validateRole }, + // { 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 }, @@ -260,35 +269,62 @@ roleList: [ { name: '瑙掕壊1', value: 1 }, { name: '瑙掕壊2', value: 2 } ], - typeList: [] + typeList: [], + departList: [] } }, created() { const that = this; this.user = JSON.parse(JSON.stringify(that.userInfo)); // 鑾峰彇瑙掕壊鍒楄〃 - // 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; }) }, methods: { handleUser() { - const { user } = this; - this.$axios.post('sccg/depart/status', { - id: user.departmentId, - status: user.status ? 1 : 0, - }).then(res => { - console.log(res); + this.$refs.user.validate((valid) => { + if (valid) { + const { user } = this; + console.log(user); + // for(let key in user){ + // if(user[key]===null){ + // user[key] = ''; + // } + // } + // user.status = String(user.status); + // user.isDy = String(user.isDy); + // user.userType = String(user.userType); + // this.$axios({ + // method: 'post', + // url: 'sccg/admin/update/' + user.id, + // data: user + // }) + // .then(res => { + // console.log(res); + // this.getUserList(); + // this.$emit('closeDialog', { flag: false }); + // }) + } else { + return false; + } }) + }, + // 鑾峰彇瑙掕壊鍒楄〃 + getRoleList() { + this.$axios({ + method: 'get', + url: 'sccg/role/listAll', + }) + .then(res => { + this.roleList = res.data; + }) } }, - props: ['userInfo', 'updateFlag'] + props: ['userInfo', 'updateFlag', 'flag','closeDialog','getUserList'] } </script> <style lang="scss" scoped> @@ -296,44 +332,17 @@ border-radius: 1px; background-color: #09152f; - // header { - // display: flex; - // justify-content: center; - // 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; - // .mainTitle { - // color: #4b9bb7; - // font-weight: 600; - // line-height: 100px; - // font-size: 14px; - // } .mainContent { display: flex; justify-content: center; padding-top: 50px; + .el-form-item__content { width: 400px; diff --git a/src/views/systemSetting/baseSetting/user/index.vue b/src/views/systemSetting/baseSetting/user/index.vue index d4cac15..96b7aad 100644 --- a/src/views/systemSetting/baseSetting/user/index.vue +++ b/src/views/systemSetting/baseSetting/user/index.vue @@ -1,23 +1,5 @@ <template> <div class="userList"> - <!-- <header> - <div class="headerContent"> - <div class="search"> - <span>绛涢�夋潯浠�:</span> - <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="search"></el-input> - <div class="findBtn"> - <el-button type="primary" @click="getUserList">鏌ヨ</el-button> - </div> - </div> - <div class="addUser"> - <el-button class="addBtn" type="primary" @click="dialogCreate = true">娣诲姞鐢ㄦ埛</el-button> - <el-dialog :visible.sync="dialogCreate" title="鏂板璐︽埛" width="45%" v-if="dialogCreate" - :before-close="handleClose1"> - <createUser :refresh="getUserList" /> - </el-dialog> - </div> - </div> - </header> --> <myHeader @setDialog="changeDialog" @getSearch="getSearch"></myHeader> <myMain :refresh="isFresh" :keyword="keyword" @resetFresh="resetFresh" /> </div> diff --git a/src/views/systemSetting/platform/mySetting/index.vue b/src/views/systemSetting/platform/mySetting/index.vue index b221b7f..423859c 100644 --- a/src/views/systemSetting/platform/mySetting/index.vue +++ b/src/views/systemSetting/platform/mySetting/index.vue @@ -4,87 +4,136 @@ <header> <div class="headerTitle">绯荤粺璁剧疆 >> 闂ㄦ埛绠$悊 > 鑷畾涔夎彍鍗曡缃�</div> </header> - <!-- main 鍐呭灞曠ず鍖� --> <main> <div class="mainContent"> - <!-- 渚ц竟瀵艰埅鏍� --> - <div class="aside"> - <div class="asideItem" v-for="(item,index) in menuList" :key="item.id" @click="getContent(index)"> - <h4>{{item.title}}</h4> - <!-- 瀛愯彍鍗� --> - <ul class="menu"> - <li class="menuItem" v-for="(son,sonIndex) in item.children" - @click.stop="getContent(index,sonIndex)"> - <span>{{son.title}}</span> - </li> - </ul> - </div> - </div> - <!-- 鑿滃崟璁剧疆 --> - <div class="content"> - <h4>鑿滃崟绠$悊-{{article.title}}</h4> - <!-- 瀛愯彍鍗曢」鐩� --> - <ul class="edit"> - <li class="editItem"> - <label>鍚嶇О:</label> - <span>{{article.name}}</span> - </li> - <li class="editItem"> - <label>鎻忚堪:</label> - <span>{{article.description}}</span> - </li> - <li class="editItem"> - <label>鏄惁鏄剧ず鑿滃崟:</label> - <span>{{article.hidden===0 ? '鍚�':'鏄�' }}</span> - </li> - </ul> - </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}" + :data="menuList" style="width: 100%" row-key="id" :row-class-name="tableRowClassName"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column prop="title" label="鑿滃崟鏍�" min-width="75"> + <el-tree :data="menuList" node-key="id" :default-expanded-keys="[0]" + :default-checked-keys="[0]" :props="defaultProps"> + </el-tree> + </el-table-column> + <el-table-column label="鎿嶄綔" min-width="20"> + <template slot-scope="scope"> + <div class="operation"> + <!-- <span @click="handleChangeRole(scope.row)">淇敼瑙掕壊</span> --> + <span @click="handleFind(scope.row)">鏌ョ湅</span> + <span class="line">|</span> + <!-- <span>淇敼瀵嗙爜</span> --> + <!-- <span>鍒犻櫎</span> --> + <span @click="handleUpdate(scope.row)">淇敼瑙掕壊</span> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏌ョ湅淇敼椤甸潰 --> + <el-dialog :visible.sync="dialogUpdate" width="45%" :title="updateFlag ? '淇敼瑙掕壊淇℃伅' :'鏌ョ湅瑙掕壊淇℃伅'" + v-if="dialogUpdate"> + + </el-dialog> </div> </main> </div> </template> <script> +import helper from "@/utils/mydate.js" export default { data() { return { menuList: [], article: [], + defaultProps: { + children: 'menuVoArrayList', + label: 'title' + }, + count: 1, + menuList: [], + context: "", + dialogCreate: false, + dialogUpdate: false, + updateFlag: false, + userInfo: '', } }, created() { - const { getMenuList } = this; - getMenuList(); + this.getMenuList(); }, methods: { // 鑾峰彇鑿滃崟鍒楄〃 getMenuList() { - // this.$axios({ - // method: 'get', - // url: 'sccg/system/portal/menu/search', - // data: { - // current: 1, - // size: 10, - // } - // }).then(res => { - // console.log(res); - // const { data } = res; - // this.menuList = data; - // this.getContent(0); - // }) + this.$axios({ + method: 'get', + url: 'sccg/system/portal/menu/search', + }).then(res => { + this.menuList = res.data.records; + this.getContent(0); + }) }, // 鍒囨崲鑿滃崟鍐呭灞曠ず getContent(index, sonIndex = null) { if (sonIndex === null) { this.article = this.menuList[index]; + return; } - this.article = this.menuList[index][sonIndex]; + this.article = this.menuList[index].menuVoArrayList[sonIndex]; + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 == 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + return ''; + }, + handleCheckChange(data, checked, indeterminate) { + console.log(data, checked, indeterminate); + }, + handleNodeClick(data) { + console.log(data); + }, + loadNode(node, resolve) { + if (node.level === 0) { + return resolve([{ name: 'region1' }, { name: 'region2' }]); + } + if (node.level > 3) return resolve([]); + + var hasChild; + if (node.data.name === 'region1') { + hasChild = true; + } else if (node.data.name === 'region2') { + hasChild = false; + } else { + hasChild = Math.random() > 0.5; + } + + setTimeout(() => { + var data; + if (hasChild) { + data = [{ + name: 'zone' + this.count++ + }, { + name: 'zone' + this.count++ + }]; + } else { + data = []; + } + + resolve(data); + }, 500); } } + } </script> <style lang="scss" scoped> .mySetting { + margin: 10px 20px; text-align: left; color: #4b9bb7; @@ -94,64 +143,111 @@ } main { - .mainContent { - display: flex; + background-color: #09152f; + margin-top: 20px; + padding-bottom: 50px; + border: 1pox solid #fff; - li { - list-style: none; + .mainTitle { + line-height: 60px; + } + + .el-table { + color: #4b9bb7; + font-size: 10px; + + &::v-deep .el-table__cell { + text-align: center; } - .aside { - width: 200px; - border: 1px solid #fff; - padding: 20px; - height: calc(100vh - 120px); - - .asideItem { - h4 { - line-height: 40px; - margin: 0; - } - - ul { - padding: 0; - margin: 0; - } - - .menu { - .menuItem { - line-height: 30px; - } - } - } + &::v-deep .el-table__empty-block { + background-color: #09152f; + color: #4b9bb7; + } + &::v-deep .el-table__row:hover{ + background-color: #4b9bb7; + } + .el-tree { + background-color: #071f39; } - .content { - flex: 1; - margin-left: 100px; + .operation { + display: flex; + justify-content: center; - h4 { - margin: 0; - line-height: 80px; + .line { + padding: 0 5px; } - ul { - padding: 0; - margin: 0; - } - - .edit { - .editItem { - line-height: 40px; - display: flex; - - span { - margin-left: 10px; - } - } + span:hover { + cursor: pointer; } } } + + .el-table::v-deep .warning-row { + background: #06122c; + } + + .el-table::v-deep .success-row { + background: #071f39; + } + + &::v-deep .switchStyle .el-switch__label { + position: absolute; + display: none; + color: #fff; + } + + &::v-deep .el-switch__core { + background-color: rgba(166, 166, 166, 1); + } + + &::v-deep .switchStyle .el-switch__label--left { + z-index: 9; + left: 20px; + } + + &::v-deep .switchStyle .el-switch__label--right { + z-index: 9; + left: 4px; + } + + &::v-deep .switchStyle .el-switch__label.is-active { + display: block; + } + + &::v-deep .switchStyle.el-switch .el-switch__core, + &::v-deep .el-switch .el-switch__label { + width: 50px !important; + } + } + + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + background-color: #06122c; + } + + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } + + &::v-deep .el-dialog__title { + color: #4b9bb7; + } + + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + // color: #fff; + } + + &::v-deep .el-dialog__body { + padding: 0; } } </style> \ No newline at end of file -- Gitblit v1.8.0