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