From 8fb7cc0325027caa4ed7574443e24f5bd7a8efb7 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期一, 02 九月 2024 23:09:45 +0800 Subject: [PATCH] 考核结果图表bug,登录路由权限控制 --- src/views/system/user/index.vue | 22 +++++----- src/views/login.vue | 58 ++++++++++++++++------------- src/layout/components/Navbar.vue | 5 +- src/views/system/check/result/index.vue | 27 ++++++------- 4 files changed, 59 insertions(+), 53 deletions(-) diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index c3202d4..90c59ec 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -39,7 +39,7 @@ </div> <div class="button-container"> - <el-button type="primary" @click="toScreen" size="small">鍙鍖栧ぇ灞�</el-button> + <el-button v-if="roles.includes('admin') || roles.includes('county_leader') || roles.includes('city_leader')" type="primary" @click="toScreen" size="small">鍙鍖栧ぇ灞�</el-button> </div> <div class="button-container"> <el-button type="primary" @click="toSystemB" size="small">璺宠浆B绯荤粺</el-button> @@ -76,7 +76,8 @@ ...mapGetters([ 'sidebar', 'avatar', - 'device' + 'device', + 'roles' ]), setting: { get() { diff --git a/src/views/login.vue b/src/views/login.vue index 3231e9f..ba59cc7 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -18,28 +18,28 @@ <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> <el-form-item prop="username"> <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="璐﹀彿"> - <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> + <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon"/> </el-input> </el-form-item> <el-form-item prop="password"> <el-input v-model="loginForm.password" type="password" auto-complete="off" placeholder="瀵嗙爜" - @keyup.enter.native="handleLogin"> - <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> + @keyup.enter.native="handleLogin"> + <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon"/> </el-input> </el-form-item> <el-form-item prop="code" v-if="captchaEnabled"> <el-input v-model="loginForm.code" auto-complete="off" placeholder="楠岃瘉鐮�" style="width: 63%" - @keyup.enter.native="handleLogin"> - <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> + @keyup.enter.native="handleLogin"> + <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon"/> </el-input> <div class="login-code"> - <img :src="codeUrl" @click="getCode" class="login-code-img" /> + <img :src="codeUrl" @click="getCode" class="login-code-img"/> </div> </el-form-item> <el-checkbox v-model="loginForm.rememberMe" style=" margin:0px 0px 25px 0px;">璁颁綇瀵嗙爜</el-checkbox> <el-form-item style="width:100%;"> <el-button :loading="loading" size="medium" type="primary" style="width:100%;" - @click.native.prevent="handleLogin"> + @click.native.prevent="handleLogin"> <span v-if="!loading">鐧� 褰�</span> <span v-else>鐧� 褰� 涓�...</span> </el-button> @@ -67,10 +67,10 @@ </template> <script> -import { getCodeImg, getInfo } from "@/api/login"; +import {getCodeImg, getInfo} from "@/api/login"; import Cookies from "js-cookie"; -import { encrypt, decrypt } from '@/utils/jsencrypt' -import { updateUserPwd } from "@/api/system/user"; +import {encrypt, decrypt} from '@/utils/jsencrypt' +import {updateUserPwd} from "@/api/system/user"; export default { //鏂板瀵硅薄銆佸彉閲� @@ -87,8 +87,7 @@ var regex = /(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[\W_])/; if (value.length < 8 || value.length > 10) { callback(new Error('璇疯緭鍏�8-10浣嶅ぇ鍐欏瓧姣�+灏忓啓瀛楁瘝+鏁板瓧+鐗规畩瀛楃')); - } - else if (!regex.test(value)) { + } else if (!regex.test(value)) { callback(new Error("璇疯緭鍏�8-10浣嶅ぇ鍐欏瓧姣�+灏忓啓瀛楁瘝+鏁板瓧+鐗规畩瀛楃")); } else { callback(); @@ -110,21 +109,21 @@ confirmPassword: undefined, loginRules: { username: [ - { required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勮处鍙�" } + {required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勮处鍙�"} ], password: [ - { required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勫瘑鐮�" } + {required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勫瘑鐮�"} ], - code: [{ required: true, trigger: "change", message: "璇疯緭鍏ラ獙璇佺爜" }] + code: [{required: true, trigger: "change", message: "璇疯緭鍏ラ獙璇佺爜"}] }, rules: { newPassword: [ - { required: true, message: "鏂板瘑鐮佷笉鑳戒负绌�", trigger: "blur" }, - { required: true, validator: validatePassword, trigger: "blur" } + {required: true, message: "鏂板瘑鐮佷笉鑳戒负绌�", trigger: "blur"}, + {required: true, validator: validatePassword, trigger: "blur"} ], confirmPassword: [ - { required: true, message: "纭瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" }, - { required: true, validator: equalToPassword, trigger: "blur" } + {required: true, message: "纭瀵嗙爜涓嶈兘涓虹┖", trigger: "blur"}, + {required: true, validator: equalToPassword, trigger: "blur"} ] }, loading: false, @@ -174,9 +173,9 @@ this.loading = true; if (this.loginForm.rememberMe) { - Cookies.set("username", this.loginForm.username, { expires: 30 }); - Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 }); - Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 }); + Cookies.set("username", this.loginForm.username, {expires: 30}); + Cookies.set("password", encrypt(this.loginForm.password), {expires: 30}); + Cookies.set('rememberMe', this.loginForm.rememberMe, {expires: 30}); } else { Cookies.remove("username"); Cookies.remove("password"); @@ -190,11 +189,18 @@ if (this.loginInfo.firstLogin == 1) { // this.$router.push({ path: "/" }).catch(() => { }); // return; - this.$router.push({ path: this.redirect || "/screen" }).catch(() => { }); + if (this.loginInfo.roles.includes("admin") || this.loginInfo.roles.includes("city_leader") || this.loginInfo.roles.includes("county_leader")) { + this.$router.push({path: this.redirect || "/screen"}).catch(() => { + }); + } else { + this.$router.push({path: this.redirect || "/index"}).catch(() => { + }); + } } else { localStorage.setItem('firstLogin', 0) } - }).catch(() => { }) + }).catch(() => { + }) }).catch(() => { this.loading = false; if (this.captchaEnabled) { @@ -210,7 +216,8 @@ // 淇敼瀹屾垚灏唂irstLogin鏀逛负1 localStorage.setItem('firstLogin', 1) this.$modal.msgSuccess("淇敼鎴愬姛"); - this.$router.push({ path: this.redirect || "/" }).catch(() => { }); + this.$router.push({path: this.redirect || "/"}).catch(() => { + }); }).catch((e) => { console.info(e) }); @@ -319,7 +326,6 @@ animation-delay: 0.1s; } } - .login-form { diff --git a/src/views/system/check/result/index.vue b/src/views/system/check/result/index.vue index 451a168..e261e84 100644 --- a/src/views/system/check/result/index.vue +++ b/src/views/system/check/result/index.vue @@ -78,12 +78,6 @@ activeIndex: '0', date: '', company: '', - dataList: { - name: ['瀵岄『鍘�', '鑽e幙', '楂樻柊鍖�', '鑷祦浜曞尯', '璐′簳鍖�', '澶у畨鍖�', '娌挎哗鍖�'], - data1: [95, 96, 97, 95, 94.5, 93.6, 94.5], - data2: [93.7, 93.5, 94.3, 96.5, 95.3, 94.2, 93.3], - data3: [98.3, 94.3, 93.3, 95.5, 96.8, 96.1, 95.8], - }, // 鏌ヨ鍙傛暟 queryParams: { examineTag: null, @@ -92,13 +86,13 @@ } }, created() { + }, + mounted() { this.queryParams.examineTag = this.activeIndex this.getList(); this.areaSelect(); - }, - mounted() { chart = echarts.init(this.$refs.barChart); - this.initEchart(); + this.setChartOption(this.checkScoreList); }, methods: { jumpDetail(index) { @@ -238,17 +232,22 @@ } chart.setOption(option, true); }, - filterData(data, tag) { - if (!data) return; - if(!Array.isArray(data)) return; + filterData(mapData, tag) { + if (!mapData) return; + if(!Array.isArray(mapData)) return; const tempArray = []; - data.forEach((item) => { + mapData.forEach((item) => { if(item.data.length) { + let flag = false; item.data.forEach((examine) => { if(examine.examineCategory === tag) { + flag = true tempArray.push(examine.score); } }) + if(!flag){ + tempArray.push(0); + } } }) return tempArray; @@ -314,8 +313,8 @@ listScore(this.queryParams).then(response => { this.checkScoreList = response.data; console.log(this.checkScoreList); - this.loading = false; this.setChartOption(this.checkScoreList); + this.loading = false; }); }, publish(city) { diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 5e66247..20c91cd 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -268,17 +268,17 @@ </el-row> <el-row> <el-col :span="12"> - <el-form-item label="宀椾綅"> - <el-select v-model="form.postIds" multiple placeholder="璇烽�夋嫨宀椾綅"> - <el-option - v-for="item in postOptions" - :key="item.postId" - :label="item.postName" - :value="item.postId" - :disabled="item.status == 1" - ></el-option> - </el-select> - </el-form-item> +<!-- <el-form-item label="宀椾綅">--> +<!-- <el-select v-model="form.postIds" multiple placeholder="璇烽�夋嫨宀椾綅">--> +<!-- <el-option--> +<!-- v-for="item in postOptions"--> +<!-- :key="item.postId"--> +<!-- :label="item.postName"--> +<!-- :value="item.postId"--> +<!-- :disabled="item.status == 1"--> +<!-- ></el-option>--> +<!-- </el-select>--> +<!-- </el-form-item>--> </el-col> <el-col :span="12"> <el-form-item label="瑙掕壊"> -- Gitblit v1.8.0