From 39899a959b7bc5b8673bc914332c2c68f6a05bfe Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期一, 11 九月 2023 21:55:02 +0800 Subject: [PATCH] Merge branch 'dev1.0' of http://42.193.1.25:9521/r/sccg_ui into dev1.0 --- src/views/login/SIdentify.vue | 98 ++++++++++++++++++++++++ src/views/operate/disposal/casepool/pool/index.vue | 14 ++ src/api/operate/basecase.js | 7 + src/views/login/index.vue | 79 ++++++++++++------- 4 files changed, 162 insertions(+), 36 deletions(-) diff --git a/src/api/operate/basecase.js b/src/api/operate/basecase.js index 4ee2e00..7a48cb6 100644 --- a/src/api/operate/basecase.js +++ b/src/api/operate/basecase.js @@ -13,7 +13,10 @@ getBaseCaseDetail: (id) => { return http.get('/sccg/base_case/baseCaseDetail/' + id); }, - + // 涓婃姤 + uploadEvent: (id) => { + return http.post('/sccg/base_case/upload-event/' + id); + }, // 涓婁紶澶勭疆缁撴灉 updateDisposeResult: (params) => { return http.post('/sccg/dispatch_handle/addition_dispose_result', params); @@ -57,4 +60,4 @@ return http.get('/sccg/trendAnalysis/queryPointInfoByTime', params); } -} +} \ No newline at end of file diff --git a/src/views/login/SIdentify.vue b/src/views/login/SIdentify.vue new file mode 100644 index 0000000..66e0ec8 --- /dev/null +++ b/src/views/login/SIdentify.vue @@ -0,0 +1,98 @@ +<template> + <div + class="ValidCode disabled-select" + :style="`width:${width}; height:${height}`" + @click="refreshCode" + > + <span + v-for="(item, index) in codeList" + :key="index" + :style="getStyle(item)" + >{{ item.code }}</span> + </div> + </template> + + <script> + // 楠岃瘉鐮佺粍浠� + export default { + name: 'ValidCode', + model: { + prop: 'value', + event: 'input' + }, + props: { + width: { + type: String, + default: '100px' + }, + height: { + type: String, + default: '40px' + }, + length: { + type: Number, + default: 4 + }, + refresh: { + type: Number + } + }, + data () { + return { + codeList: [] + } + }, + watch: { + refresh () { + this.createdCode() + } + }, + mounted () { + this.createdCode() + }, + methods: { + refreshCode () { + this.createdCode() + }, + createdCode () { + const len = this.length + const codeList = [] + const chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz0123456789' + const charsLen = chars.length + // 鐢熸垚 + for (let i = 0; i < len; i++) { + const rgb = [Math.round(Math.random() * 220), Math.round(Math.random() * 240), Math.round(Math.random() * 200)] + codeList.push({ + code: chars.charAt(Math.floor(Math.random() * charsLen)), + color: `rgb(${rgb})`, + fontSize: `${10 + (+[Math.floor(Math.random() * 10)] + 6)}px`, + padding: `${[Math.floor(Math.random() * 10)]}px`, + transform: `rotate(${Math.floor(Math.random() * 90) - Math.floor(Math.random() * 90)}deg)` + }) + } + // 鎸囧悜 + this.codeList = codeList + // 灏嗗綋鍓嶆暟鎹淳鍙戝嚭鍘� + // console.log(codeList.map(item => item.code).join('')) + this.$emit('input', codeList.map(item => item.code).join('')) + }, + getStyle (data) { + return `color: ${data.color}; font-size: ${data.fontSize}; padding: ${data.padding}; transform: ${data.transform}` + } + } + } + </script> + + <style scoped> + .ValidCode{ + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + } + .ValidCode span{ + display: inline-block; + } + </style> + + \ No newline at end of file diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 85f76a9..ddb8047 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -60,6 +60,13 @@ </span> </el-input> </el-form-item> + <el-form-item> + <el-input + v-model="loginForm.validCode" + placeholder="楠岃瘉鐮�" + ></el-input> + <SIdentify @input="createValidCode"></SIdentify> + </el-form-item> <!-- 琛ㄥ崟鎻愪氦鎸夐挳 --> <el-form-item style="margin-bottom: 60px; text-align: center"> <el-button @@ -80,12 +87,14 @@ import { isvalidUsername } from "@/utils/validate"; import { createNamespacedHelpers } from "vuex"; import users from "@/api/users"; -import {Decrypt,Encrypt} from '@/utils/cryptojs' -import leafletMapVue from '../systemSetting/device/grid/components/components/leafletMap.vue'; - +import { Decrypt, Encrypt } from "@/utils/cryptojs"; +import leafletMapVue from "../systemSetting/device/grid/components/components/leafletMap.vue"; +// 寮曞叆鐧诲綍楠岃瘉缁勪欢 +import SIdentify from "./SIdentify"; const { mapActions } = createNamespacedHelpers("users"); export default { name: "login", + components: { SIdentify }, data() { const validateUsername = (rule, value, callback) => { if (!isvalidUsername(value)) { @@ -103,10 +112,10 @@ }; return { loginForm: { - username:"", - password:"", + username: "", + password: "", }, - imgUrl:'', + imgUrl: "", loginRules: { username: [ { required: true, trigger: "blur", validator: validateUsername }, @@ -120,28 +129,34 @@ }; }, created() { - const pic = JSON.parse(sessionStorage.getItem('pic')); - if(pic){ - this.imgUrl = pic.loginPageIconUrl - }else{ + const pic = JSON.parse(sessionStorage.getItem("pic")); + if (pic) { + this.imgUrl = pic.loginPageIconUrl; + } else { this.$axios({ - method: 'get', - url: 'sccg/system/portal/logo/search', - }).then(res => { - this.imgUrl = res.data.loginPageIconUrl - }) + method: "get", + url: "sccg/system/portal/logo/search", + }).then((res) => { + this.imgUrl = res.data.loginPageIconUrl; + }); } - }, + }, methods: { showPwd() { this.pwdType = !this.pwdType; }, ...mapActions(["login"]), handleLogin() { + debugger; + // 鐧诲綍鍑芥暟涓獙璇侀獙璇佺爜鏄惁姝g‘锛氱粺涓�杞崲涓哄皬鍐� + if (this.loginForm.validCode.toLowerCase() !== this.validCode.toLowerCase()) { + this.$message.error("楠岃瘉鐮侀敊璇�"); + return; + } let { username, password } = this.loginForm; const that = this; - - password = Encrypt(password) + + password = Encrypt(password); this.$axios .post("sccg/admin/login", { password, @@ -151,27 +166,29 @@ if (response.code === 200) { // 璁剧疆toke鏃堕棿 // 淇濆瓨token - sessionStorage.setItem('token',response.data.token); + sessionStorage.setItem("token", response.data.token); // 淇濆瓨token - sessionStorage.setItem('tokenHead',response.data.tokenHead); + sessionStorage.setItem("tokenHead", response.data.tokenHead); // 淇濆瓨鐢ㄦ埛鐧诲綍鍚� - sessionStorage.setItem('name',username); + sessionStorage.setItem("name", username); // 璺宠浆鍒伴椤� that.$router.push("/home"); - }else{ - that.$refs.loginForm.validate((valid)=>{ - if(valid){ + } else { + that.$refs.loginForm.validate((valid) => { + if (valid) { that.$message({ - type:'warning', - message:response.message - }) + type: "warning", + message: response.message, + }); } - }) + }); } }) - .catch(function (error) { - }); - } + .catch(function (error) {}); + }, + createValidCode(data) { + this.validCode = data; + }, }, }; </script> diff --git a/src/views/operate/disposal/casepool/pool/index.vue b/src/views/operate/disposal/casepool/pool/index.vue index 6f05f22..36b86f6 100644 --- a/src/views/operate/disposal/casepool/pool/index.vue +++ b/src/views/operate/disposal/casepool/pool/index.vue @@ -120,7 +120,7 @@ <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> <template slot-scope="scope"> <div class="operation" v-if="statusArr[0] === 0"> - <span @click="handleFind(scope.row)">涓婃姤</span> + <span @click="handleUpload(scope.row)">涓婃姤</span> <span class="line">|</span> <span @click="handleDispatch(scope.row)">璋冨害</span> <span class="line">|</span> @@ -498,8 +498,16 @@ return "success-row"; } }, - // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼) - handleFind(rowData) {}, + + handleUpload(rowData) { + debugger; + basecase + .uploadEvent(rowData.id) + .then((res) => { + debugger; + }) + .catch((err) => this.$message.error(err)); + }, // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { this.currentPage = page; -- Gitblit v1.8.0