验证码

wechat
ihzero 2023-12-06 20:15:20 +08:00
parent 38e1671790
commit fe079bed8b
10 changed files with 288 additions and 6 deletions

View File

@ -1,4 +1,4 @@
!function(){try{var a=Function("return this")();a&&!a.Math&&(Object.assign(a,{isFinite:isFinite,Array:Array,Date:Date,Error:Error,Function:Function,Math:Math,Object:Object,RegExp:RegExp,String:String,TypeError:TypeError,setTimeout:setTimeout,clearTimeout:clearTimeout,setInterval:setInterval,clearInterval:clearInterval}),"undefined"!=typeof Reflect&&(a.Reflect=Reflect))}catch(a){}}();
(function(e){function n(n){for(var t,u,s=n[0],l=n[1],a=n[2],c=0,d=[];c<s.length;c++)u=s[c],Object.prototype.hasOwnProperty.call(r,u)&&r[u]&&d.push(r[u][0]),r[u]=0;for(t in l)Object.prototype.hasOwnProperty.call(l,t)&&(e[t]=l[t]);p&&p(n);while(d.length)d.shift()();return i.push.apply(i,a||[]),o()}function o(){for(var e,n=0;n<i.length;n++){for(var o=i[n],t=!0,u=1;u<o.length;u++){var s=o[u];0!==r[s]&&(t=!1)}t&&(i.splice(n--,1),e=l(l.s=o[0]))}return e}var t={},u={"common/runtime":0},r={"common/runtime":0},i=[];function s(e){return l.p+""+e+".js"}function l(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,l),o.l=!0,o.exports}l.e=function(e){var n=[],o={"components/yn-select-input-list/yn-select-input-list":1,"node-modules/uview-ui/components/u-button/u-button":1,"node-modules/uview-ui/components/u-icon/u-icon":1,"node-modules/uview-ui/components/u-modal/u-modal":1,"node-modules/uview-ui/components/u-navbar/u-navbar":1,"node-modules/uview-ui/components/u-loading/u-loading":1,"node-modules/uview-ui/components/u-popup/u-popup":1,"node-modules/uview-ui/components/u-mask/u-mask":1};u[e]?n.push(u[e]):0!==u[e]&&o[e]&&n.push(u[e]=new Promise((function(n,o){for(var t=({"components/yn-select-input-list/yn-select-input-list":"components/yn-select-input-list/yn-select-input-list","node-modules/uview-ui/components/u-button/u-button":"node-modules/uview-ui/components/u-button/u-button","node-modules/uview-ui/components/u-icon/u-icon":"node-modules/uview-ui/components/u-icon/u-icon","node-modules/uview-ui/components/u-modal/u-modal":"node-modules/uview-ui/components/u-modal/u-modal","node-modules/uview-ui/components/u-navbar/u-navbar":"node-modules/uview-ui/components/u-navbar/u-navbar","node-modules/uview-ui/components/u-loading/u-loading":"node-modules/uview-ui/components/u-loading/u-loading","node-modules/uview-ui/components/u-popup/u-popup":"node-modules/uview-ui/components/u-popup/u-popup","node-modules/uview-ui/components/u-mask/u-mask":"node-modules/uview-ui/components/u-mask/u-mask"}[e]||e)+".wxss",r=l.p+t,i=document.getElementsByTagName("link"),s=0;s<i.length;s++){var a=i[s],c=a.getAttribute("data-href")||a.getAttribute("href");if("stylesheet"===a.rel&&(c===t||c===r))return n()}var d=document.getElementsByTagName("style");for(s=0;s<d.length;s++){a=d[s],c=a.getAttribute("data-href");if(c===t||c===r)return n()}var p=document.createElement("link");p.rel="stylesheet",p.type="text/css",p.onload=n,p.onerror=function(n){var t=n&&n.target&&n.target.src||r,i=new Error("Loading CSS chunk "+e+" failed.\n("+t+")");i.code="CSS_CHUNK_LOAD_FAILED",i.request=t,delete u[e],p.parentNode.removeChild(p),o(i)},p.href=r;var m=document.getElementsByTagName("head")[0];m.appendChild(p)})).then((function(){u[e]=0})));var t=r[e];if(0!==t)if(t)n.push(t[2]);else{var i=new Promise((function(n,o){t=r[e]=[n,o]}));n.push(t[2]=i);var a,c=document.createElement("script");c.charset="utf-8",c.timeout=120,l.nc&&c.setAttribute("nonce",l.nc),c.src=s(e);var d=new Error;a=function(n){c.onerror=c.onload=null,clearTimeout(p);var o=r[e];if(0!==o){if(o){var t=n&&("load"===n.type?"missing":n.type),u=n&&n.target&&n.target.src;d.message="Loading chunk "+e+" failed.\n("+t+": "+u+")",d.name="ChunkLoadError",d.type=t,d.request=u,o[1](d)}r[e]=void 0}};var p=setTimeout((function(){a({type:"timeout",target:c})}),12e4);c.onerror=c.onload=a,document.head.appendChild(c)}return Promise.all(n)},l.m=e,l.c=t,l.d=function(e,n,o){l.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,n){if(1&n&&(e=l(e)),8&n)return e;if(4&n&&"object"===typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(l.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var t in e)l.d(o,t,function(n){return e[n]}.bind(null,t));return o},l.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(n,"a",n),n},l.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},l.p="",l.oe=function(e){throw console.error(e),e};var a=global["webpackJsonp"]=global["webpackJsonp"]||[],c=a.push.bind(a);a.push=n,a=a.slice();for(var d=0;d<a.length;d++)n(a[d]);var p=c;o()})([]);
(function(e){function n(n){for(var t,u,s=n[0],l=n[1],a=n[2],c=0,p=[];c<s.length;c++)u=s[c],Object.prototype.hasOwnProperty.call(r,u)&&r[u]&&p.push(r[u][0]),r[u]=0;for(t in l)Object.prototype.hasOwnProperty.call(l,t)&&(e[t]=l[t]);d&&d(n);while(p.length)p.shift()();return i.push.apply(i,a||[]),o()}function o(){for(var e,n=0;n<i.length;n++){for(var o=i[n],t=!0,u=1;u<o.length;u++){var s=o[u];0!==r[s]&&(t=!1)}t&&(i.splice(n--,1),e=l(l.s=o[0]))}return e}var t={},u={"common/runtime":0},r={"common/runtime":0},i=[];function s(e){return l.p+""+e+".js"}function l(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,l),o.l=!0,o.exports}l.e=function(e){var n=[],o={"components/yn-select-input-list/yn-select-input-list":1,"node-modules/uview-ui/components/u-button/u-button":1,"node-modules/uview-ui/components/u-icon/u-icon":1,"node-modules/uview-ui/components/u-modal/u-modal":1,"node-modules/uview-ui/components/u-navbar/u-navbar":1,"node-modules/uview-ui/components/u-loading/u-loading":1,"node-modules/uview-ui/components/u-popup/u-popup":1,"node-modules/uview-ui/components/u-mask/u-mask":1};u[e]?n.push(u[e]):0!==u[e]&&o[e]&&n.push(u[e]=new Promise((function(n,o){for(var t=({"components/yn-select-input-list/yn-select-input-list":"components/yn-select-input-list/yn-select-input-list","components/jp-verification-literalness/jp-verification-literalness":"components/jp-verification-literalness/jp-verification-literalness","node-modules/uview-ui/components/u-button/u-button":"node-modules/uview-ui/components/u-button/u-button","node-modules/uview-ui/components/u-icon/u-icon":"node-modules/uview-ui/components/u-icon/u-icon","node-modules/uview-ui/components/u-modal/u-modal":"node-modules/uview-ui/components/u-modal/u-modal","node-modules/uview-ui/components/u-navbar/u-navbar":"node-modules/uview-ui/components/u-navbar/u-navbar","node-modules/uview-ui/components/u-loading/u-loading":"node-modules/uview-ui/components/u-loading/u-loading","node-modules/uview-ui/components/u-popup/u-popup":"node-modules/uview-ui/components/u-popup/u-popup","node-modules/uview-ui/components/u-mask/u-mask":"node-modules/uview-ui/components/u-mask/u-mask"}[e]||e)+".wxss",r=l.p+t,i=document.getElementsByTagName("link"),s=0;s<i.length;s++){var a=i[s],c=a.getAttribute("data-href")||a.getAttribute("href");if("stylesheet"===a.rel&&(c===t||c===r))return n()}var p=document.getElementsByTagName("style");for(s=0;s<p.length;s++){a=p[s],c=a.getAttribute("data-href");if(c===t||c===r)return n()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=n,d.onerror=function(n){var t=n&&n.target&&n.target.src||r,i=new Error("Loading CSS chunk "+e+" failed.\n("+t+")");i.code="CSS_CHUNK_LOAD_FAILED",i.request=t,delete u[e],d.parentNode.removeChild(d),o(i)},d.href=r;var m=document.getElementsByTagName("head")[0];m.appendChild(d)})).then((function(){u[e]=0})));var t=r[e];if(0!==t)if(t)n.push(t[2]);else{var i=new Promise((function(n,o){t=r[e]=[n,o]}));n.push(t[2]=i);var a,c=document.createElement("script");c.charset="utf-8",c.timeout=120,l.nc&&c.setAttribute("nonce",l.nc),c.src=s(e);var p=new Error;a=function(n){c.onerror=c.onload=null,clearTimeout(d);var o=r[e];if(0!==o){if(o){var t=n&&("load"===n.type?"missing":n.type),u=n&&n.target&&n.target.src;p.message="Loading chunk "+e+" failed.\n("+t+": "+u+")",p.name="ChunkLoadError",p.type=t,p.request=u,o[1](p)}r[e]=void 0}};var d=setTimeout((function(){a({type:"timeout",target:c})}),12e4);c.onerror=c.onload=a,document.head.appendChild(c)}return Promise.all(n)},l.m=e,l.c=t,l.d=function(e,n,o){l.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:o})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,n){if(1&n&&(e=l(e)),8&n)return e;if(4&n&&"object"===typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(l.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var t in e)l.d(o,t,function(n){return e[n]}.bind(null,t));return o},l.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(n,"a",n),n},l.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},l.p="",l.oe=function(e){throw console.error(e),e};var a=global["webpackJsonp"]=global["webpackJsonp"]||[],c=a.push.bind(a);a.push=n,a=a.slice();for(var p=0;p<a.length;p++)n(a[p]);var d=c;o()})([]);

View File

@ -0,0 +1,10 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["components/jp-verification-literalness/jp-verification-literalness"],{"08d3":function(t,e,n){"use strict";n.r(e);var i=n("5250"),r=n("ba5f");for(var o in r)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return r[t]}))}(o);var a,s=n("f0c5"),d=Object(s["a"])(r["default"],i["b"],i["c"],!1,null,"b2609610",null,!1,i["a"],a);e["default"]=d.exports},5250:function(t,e,n){"use strict";var i;n.d(e,"b",(function(){return r})),n.d(e,"c",(function(){return o})),n.d(e,"a",(function(){return i}));var r=function(){var t=this,e=t.$createElement;t._self._c},o=[]},ba5f:function(t,e,n){"use strict";n.r(e);var i=n("f9bb"),r=n.n(i);for(var o in i)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(o);e["default"]=r.a},f9bb:function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;e.default={name:"jp-verification-literalness",props:{securityCode:{type:String,default:""},codeLength:{type:Number,default:4},contentWidth:{type:Number,default:120},contentHeight:{type:Number,default:48},lineLength:{type:Number,default:8},backgroundColor:{type:String,default:"rgb(238,226,224)"},lineColorList:{type:Array,default:function(){return["rgba(238,0,0,.5)","rgba(0, 170, 255,.5)","rgba(0, 170, 0,.5)","rgba(0, 0, 0,.5)","rgba(153, 146, 255,.5)"]}},colorList:{type:Array,default:function(){return["rgb(238,0,0)","rgb(0, 170, 255)","rgb(0, 170, 0)","rgb(0, 0, 0)","rgb(153, 146, 255)"]}}},computed:{canvasId:function(){return"lime-signature".concat(this._uid,"_1")}},data:function(){return{identifyCode:""}},watch:{securityCode:function(){this.drawPic()}},methods:{verification:function(t){return this.identifyCode==t},randomNum:function(t,e){return Math.floor(Math.random()*(e-t)+t)},getcheckCode:function(){for(var t="",e=this.codeLength,n=[1,2,3,4,5,6,7,8,9,"A","B","C","D","E","F","G","H","I","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z"],i=0;i<e;i++){var r=Math.floor(34*Math.random());t+=n[r]}this.identifyCode=t},drawTap:function(){this.securityCode?this.$emit("getCode"):this.drawPic()},drawPic:function(){this.securityCode?this.identifyCode=this.securityCode:this.getcheckCode();var e=t.createCanvasContext(this.canvasId,this);e.setTextBaseline("bottom"),e.setFillStyle(this.backgroundColor),e.fillRect(0,0,this.contentWidth,this.contentHeight);for(var n=0;n<this.identifyCode.length;n++)this.drawText(e,this.identifyCode[n],n);this.drawLine(e),e.draw()},drawText:function(t,e,n){var i=Math.floor(Math.random()*this.colorList.length);t.setFillStyle(this.colorList[i]);var r=Math.trunc(this.contentWidth/this.identifyCode.length);console.log(r),t.setFontSize(this.randomNum(r,r)+"px SimHei");var o=n*(this.contentWidth/(this.identifyCode.length+1))+Math.trunc(r/2),a=this.randomNum(r,this.contentHeight-5),s=this.randomNum(-10,10);t.translate(o,a),t.rotate(s*Math.PI/180),t.fillText(e,0,0),t.rotate(-s*Math.PI/180),t.translate(-o,-a)},drawLine:function(t){for(var e=0;e<this.lineLength;e++){var n=Math.floor(Math.random()*this.lineColorList.length);t.setStrokeStyle(this.lineColorList[n]),t.beginPath();var i=this.randomNum(0,this.contentWidth),r=this.randomNum(0,this.contentHeight),o=this.randomNum(0,this.contentWidth),a=this.randomNum(0,this.contentHeight);t.moveTo(i,r),t.lineTo(o,a),t.stroke()}}},mounted:function(){}}}).call(this,n("543d")["default"])}}]);
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
'components/jp-verification-literalness/jp-verification-literalness-create-component',
{
'components/jp-verification-literalness/jp-verification-literalness-create-component':(function(module, exports, __webpack_require__){
__webpack_require__('543d')['createComponent'](__webpack_require__("08d3"))
})
},
[['components/jp-verification-literalness/jp-verification-literalness-create-component']]
]);

View File

@ -0,0 +1,4 @@
{
"usingComponents": {},
"component": true
}

View File

@ -0,0 +1 @@
<view style="{{'height:'+(contentHeight+'px')+';'+('width:'+(contentWidth+'px')+';')}}" class="_div data-v-b2609610"><block wx:if="{{canvasId}}"><canvas style="{{'height:'+(contentHeight+'px')+';'+('width:'+(contentWidth+'px')+';')}}" id="{{canvasId}}" canvasId="{{canvasId}}" width="{{contentWidth}}" height="{{contentHeight}}" data-event-opts="{{[['tap',[['drawTap',['$event']]]]]}}" bindtap="__e" class="data-v-b2609610"></canvas></block></view>

View File

@ -1 +1 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/login/login"],{"0036":function(t,n,e){"use strict";(function(t,n){var o=e("4ea4");e("6cdc");o(e("66fd"));var a=o(e("a86a"));t.__webpack_require_UNI_MP_PLUGIN__=e,n(a.default)}).call(this,e("bc2e")["default"],e("543d")["createPage"])},"1dc2":function(t,n,e){"use strict";var o=e("80e0"),a=e.n(o);a.a},3285:function(t,n,e){"use strict";e.r(n);var o=e("8edd"),a=e.n(o);for(var u in o)["default"].indexOf(u)<0&&function(t){e.d(n,t,(function(){return o[t]}))}(u);n["default"]=a.a},"45c2":function(t,n,e){"use strict";e.d(n,"b",(function(){return a})),e.d(n,"c",(function(){return u})),e.d(n,"a",(function(){return o}));var o={uButton:function(){return e.e("node-modules/uview-ui/components/u-button/u-button").then(e.bind(null,"d9ad"))}},a=function(){var t=this,n=t.$createElement;t._self._c},u=[]},"80e0":function(t,n,e){},"8edd":function(t,n,e){"use strict";(function(t){var o=e("4ea4");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;e("815d");var a=o(e("0cc2")),u=o(e("8237"));n.default={data:function(){return{username:"",password:""}},onLoad:function(){},methods:{login:function(){var n=this;if(this.username)if(this.password){var e={username:this.username,password:(0,u.default)(this.password)};this.$http.post("/api/auth/login",e,{custom:{auth:!1}}).then((function(e){var o=e.data;if(console.log(o),200==o.code){var u=o.data;u.info;console.log(u),a.default.setAccessToken(u.token),n.$store.dispatch("getUserInfo"),t.switchTab({url:"/pages/index/index"}),t.showToast({title:"登录成功!",icon:"none"})}})).catch((function(){t.showToast({title:"登录失败!",icon:"none"})}))}else t.showToast({title:"请输入您的密码",icon:"none"});else t.showToast({title:"请输入您的账号",icon:"none"})}}}}).call(this,e("543d")["default"])},a86a:function(t,n,e){"use strict";e.r(n);var o=e("45c2"),a=e("3285");for(var u in a)["default"].indexOf(u)<0&&function(t){e.d(n,t,(function(){return a[t]}))}(u);e("1dc2");var i,c=e("f0c5"),s=Object(c["a"])(a["default"],o["b"],o["c"],!1,null,"504c0d18",null,!1,o["a"],i);n["default"]=s.exports}},[["0036","common/runtime","common/vendor"]]]);
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/login/login"],{"0036":function(t,e,n){"use strict";(function(t,e){var o=n("4ea4");n("6cdc");o(n("66fd"));var i=o(n("a86a"));t.__webpack_require_UNI_MP_PLUGIN__=n,e(i.default)}).call(this,n("bc2e")["default"],n("543d")["createPage"])},"0c1b":function(t,e,n){},3285:function(t,e,n){"use strict";n.r(e);var o=n("8edd"),i=n.n(o);for(var a in o)["default"].indexOf(a)<0&&function(t){n.d(e,t,(function(){return o[t]}))}(a);e["default"]=i.a},"511e":function(t,e,n){"use strict";var o=n("0c1b"),i=n.n(o);i.a},7473:function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return o}));var o={uButton:function(){return n.e("node-modules/uview-ui/components/u-button/u-button").then(n.bind(null,"d9ad"))}},i=function(){var t=this,e=t.$createElement;t._self._c},a=[]},"8edd":function(t,e,n){"use strict";(function(t){var o=n("4ea4");Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;n("815d");var i=o(n("0cc2")),a=o(n("8237")),s=function(){n.e("components/jp-verification-literalness/jp-verification-literalness").then(function(){return resolve(n("08d3"))}.bind(null,n)).catch(n.oe)};e.default={components:{Security:s},data:function(){return{identify:"",username:"",password:"",identifyCode:""}},onLoad:function(){this.makeCode()},methods:{randomNum:function(t,e){return Math.floor(Math.random()*(e-t)+t)},refreshCode:function(){this.identifyCode="",this.makeCode()},makeCode:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:4,e="1234567890abcdef",n="",o=0;o<t;o++)n+=e[this.randomNum(0,e.length)];this.identify=n},login:function(){var e=this;if(this.username)if(this.password)if(this.identifyCode)if(this.identifyCode==this.identify){var n={username:this.username,password:(0,a.default)(this.password),identifyCode:this.identifyCode};this.$http.post("/api/auth/login",n,{custom:{auth:!1}}).then((function(n){var o=n.data;if(console.log(o),200==o.code){var a=o.data;a.info;console.log(a),i.default.setAccessToken(a.token),e.$store.dispatch("getUserInfo"),t.switchTab({url:"/pages/index/index"}),t.showToast({title:"登录成功!",icon:"none"})}})).catch((function(){t.showToast({title:"登录失败!",icon:"none"})}))}else t.showToast({title:"验证码不正确",icon:"none"});else t.showToast({title:"请输入验证码",icon:"none"});else t.showToast({title:"请输入您的密码",icon:"none"});else t.showToast({title:"请输入您的账号",icon:"none"})}}}}).call(this,n("543d")["default"])},a86a:function(t,e,n){"use strict";n.r(e);var o=n("7473"),i=n("3285");for(var a in i)["default"].indexOf(a)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(a);n("511e");var s,u=n("f0c5"),c=Object(u["a"])(i["default"],o["b"],o["c"],!1,null,"9def8d78",null,!1,o["a"],s);e["default"]=c.exports}},[["0036","common/runtime","common/vendor"]]]);

View File

@ -3,6 +3,7 @@
"enablePullDownRefresh": false,
"navigationStyle": "custom",
"usingComponents": {
"u-button": "/node-modules/uview-ui/components/u-button/u-button"
"u-button": "/node-modules/uview-ui/components/u-button/u-button",
"security": "/components/jp-verification-literalness/jp-verification-literalness"
}
}

View File

@ -1 +1 @@
<view class="login-page bg-page data-v-504c0d18"><view class="img-a relative h-full data-v-504c0d18"><view class="t-b data-v-504c0d18">隆昌农业大数据监控平台</view><view class="absolute top-0 left-0 w-full h-full data-v-504c0d18"><image class="w-full h-full data-v-504c0d18" src="/static/head.png"></image></view></view><view class="login-view data-v-504c0d18"><view class="t-login data-v-504c0d18"><form class="cl data-v-504c0d18"><view class="t-a data-v-504c0d18"><text class="txt data-v-504c0d18">账号</text><input type="text" name="username" placeholder="请输入您的账号" data-event-opts="{{[['input',[['__set_model',['','username','$event',[]]]]]]}}" value="{{username}}" bindinput="__e" class="data-v-504c0d18"/></view><view class="t-a data-v-504c0d18"><text class="txt data-v-504c0d18">密码</text><input type="password" name="password" maxlength="18" placeholder="请输入您的密码" data-event-opts="{{[['input',[['__set_model',['','password','$event',[]]]]]]}}" value="{{password}}" bindinput="__e" class="data-v-504c0d18"/></view><u-button vue-id="35a7246c-1" type="primary" shape="circle" data-event-opts="{{[['^click',[['login']]]]}}" bind:click="__e" class="data-v-504c0d18" bind:__l="__l" vue-slots="{{['default']}}">登 录</u-button></form></view></view></view>
<view class="login-page bg-page data-v-9def8d78"><view class="img-a relative h-full data-v-9def8d78"><view class="t-b data-v-9def8d78">隆昌农业大数据监控平台</view><view class="absolute top-0 left-0 w-full h-full data-v-9def8d78"><image class="w-full h-full data-v-9def8d78" src="/static/head.png"></image></view></view><view class="login-view data-v-9def8d78"><view class="t-login data-v-9def8d78"><form class="cl data-v-9def8d78"><view class="t-a data-v-9def8d78"><text class="txt data-v-9def8d78">账号</text><input type="text" name="username" placeholder="请输入您的账号" data-event-opts="{{[['input',[['__set_model',['','username','$event',[]]]]]]}}" value="{{username}}" bindinput="__e" class="data-v-9def8d78"/></view><view class="t-a data-v-9def8d78"><text class="txt data-v-9def8d78">密码</text><input type="password" name="password" maxlength="18" placeholder="请输入您的密码" data-event-opts="{{[['input',[['__set_model',['','password','$event',[]]]]]]}}" value="{{password}}" bindinput="__e" class="data-v-9def8d78"/></view><view class="t-a data-v-9def8d78"><text class="txt data-v-9def8d78">验证码</text><view class="flex flex-1 data-v-9def8d78"><input class="flex-1 data-v-9def8d78" name="identifyCode" maxlength="18" placeholder="请输入验证码" data-event-opts="{{[['input',[['__set_model',['','identifyCode','$event',[]]]]]]}}" value="{{identifyCode}}" bindinput="__e"/><security vue-id="35a7246c-1" securityCode="{{identify}}" data-event-opts="{{[['^getCode',[['refreshCode']]]]}}" bind:getCode="__e" class="data-v-9def8d78" bind:__l="__l"></security></view></view><u-button vue-id="35a7246c-2" type="primary" shape="circle" data-event-opts="{{[['^click',[['login']]]]}}" bind:click="__e" class="data-v-9def8d78" bind:__l="__l" vue-slots="{{['default']}}">登 录</u-button></form></view></view></view>

View File

@ -1 +1 @@
.login-page.data-v-504c0d18{background-color:#fff}.login-page .txt.data-v-504c0d18{font-size:32rpx;font-weight:700;color:#333}.login-page .img-a.data-v-504c0d18{width:100%;height:450rpx;background-size:100%}.login-page .reg.data-v-504c0d18{font-size:28rpx;color:#fff;height:90rpx;line-height:90rpx;border-radius:50rpx;font-weight:700;background:#f5f6fa;color:#000;text-align:center;margin-top:30rpx}.login-page .login-view.data-v-504c0d18{width:100%;position:relative;margin-top:-120rpx;background-color:#fff;border-radius:8% 8% 0 0}.login-page .t-login.data-v-504c0d18{width:600rpx;margin:0 auto;font-size:28rpx;padding-top:80rpx}.login-page .t-login input.data-v-504c0d18{height:90rpx;line-height:90rpx;margin-bottom:50rpx;border-bottom:1px solid #e9e9e9;font-size:28rpx}.login-page .t-login .t-a.data-v-504c0d18{position:relative}.login-page .t-b.data-v-504c0d18{text-align:left;font-size:42rpx;color:#fff;padding:130rpx 0 0 70rpx;font-weight:700;line-height:70rpx}.login-page .t-login .t-c.data-v-504c0d18{position:absolute;right:22rpx;top:22rpx;background:#5677fc;color:#fff;font-size:24rpx;border-radius:50rpx;height:50rpx;line-height:50rpx;padding:0 25rpx}.login-page .t-login .t-d.data-v-504c0d18{text-align:center;color:#999;margin:80rpx 0}.login-page .t-login .t-e.data-v-504c0d18{text-align:center;width:250rpx;margin:80rpx auto 0}.login-page .t-login .t-g.data-v-504c0d18{float:left;width:50%}.login-page .t-login .t-e image.data-v-504c0d18{width:50rpx;height:50rpx}.login-page .t-login .t-f.data-v-504c0d18{text-align:center;margin:150rpx 0 0 0;color:#666}.login-page .t-login .t-f text.data-v-504c0d18{margin-left:20rpx;color:#aaa;font-size:27rpx}.login-page .t-login .uni-input-placeholder.data-v-504c0d18{color:#aeaeae}.login-page .cl.data-v-504c0d18{zoom:1}.login-page .cl.data-v-504c0d18:after{clear:both;display:block;visibility:hidden;height:0;content:" "}
.login-page.data-v-9def8d78{background-color:#fff}.login-page .txt.data-v-9def8d78{font-size:32rpx;font-weight:700;color:#333}.login-page .img-a.data-v-9def8d78{width:100%;height:450rpx;background-size:100%}.login-page .reg.data-v-9def8d78{font-size:28rpx;color:#fff;height:90rpx;line-height:90rpx;border-radius:50rpx;font-weight:700;background:#f5f6fa;color:#000;text-align:center;margin-top:30rpx}.login-page .login-view.data-v-9def8d78{width:100%;position:relative;margin-top:-120rpx;background-color:#fff;border-radius:8% 8% 0 0}.login-page .t-login.data-v-9def8d78{width:600rpx;margin:0 auto;font-size:28rpx;padding-top:80rpx}.login-page .t-login input.data-v-9def8d78{height:90rpx;line-height:90rpx;margin-bottom:50rpx;border-bottom:1px solid #e9e9e9;font-size:28rpx}.login-page .t-login .t-a.data-v-9def8d78{position:relative}.login-page .t-b.data-v-9def8d78{text-align:left;font-size:42rpx;color:#fff;padding:130rpx 0 0 70rpx;font-weight:700;line-height:70rpx}.login-page .t-login .t-c.data-v-9def8d78{position:absolute;right:22rpx;top:22rpx;background:#5677fc;color:#fff;font-size:24rpx;border-radius:50rpx;height:50rpx;line-height:50rpx;padding:0 25rpx}.login-page .t-login .t-d.data-v-9def8d78{text-align:center;color:#999;margin:80rpx 0}.login-page .t-login .t-e.data-v-9def8d78{text-align:center;width:250rpx;margin:80rpx auto 0}.login-page .t-login .t-g.data-v-9def8d78{float:left;width:50%}.login-page .t-login .t-e image.data-v-9def8d78{width:50rpx;height:50rpx}.login-page .t-login .t-f.data-v-9def8d78{text-align:center;margin:150rpx 0 0 0;color:#666}.login-page .t-login .t-f text.data-v-9def8d78{margin-left:20rpx;color:#aaa;font-size:27rpx}.login-page .t-login .uni-input-placeholder.data-v-9def8d78{color:#aeaeae}.login-page .cl.data-v-9def8d78{zoom:1}.login-page .cl.data-v-9def8d78:after{clear:both;display:block;visibility:hidden;height:0;content:" "}

View File

@ -0,0 +1,215 @@
<template>
<div :style="{ height: contentHeight + 'px', width: contentWidth + 'px' }">
<canvas
:key="canvasId"
v-if="canvasId"
@tap="drawTap"
:id="canvasId"
:canvasId="canvasId"
:width="contentWidth"
:height="contentHeight"
:style="{ height: contentHeight + 'px', width: contentWidth + 'px' }"
></canvas>
</div>
</template>
<!-- jp-verification-literalness -->
<script>
export default {
name: 'jp-verification-literalness',
props: {
securityCode: {
type: String,
default: '',
},
codeLength: {
//
type: Number,
default: 4,
},
contentWidth: {
type: Number,
default: 120,
},
contentHeight: {
type: Number,
default: 48,
},
lineLength: {
//线
type: Number,
default: 8,
},
backgroundColor: {
//
type: String,
default: 'rgb(238,226,224)',
},
lineColorList: {
type: Array,
default() {
return [
'rgba(238,0,0,.5)',
'rgba(0, 170, 255,.5)',
'rgba(0, 170, 0,.5)',
'rgba(0, 0, 0,.5)',
'rgba(153, 146, 255,.5)',
]
},
},
colorList: {
type: Array,
default() {
return [
'rgb(238,0,0)',
'rgb(0, 170, 255)',
'rgb(0, 170, 0)',
'rgb(0, 0, 0)',
'rgb(153, 146, 255)',
]
},
},
},
computed: {
canvasId() {
// #ifdef VUE2
return `lime-signature${this._uid}_1`
// #endif
// #ifdef VUE3
return `lime-signature${this._.uid}_2`
// #endif
},
},
data() {
return {
identifyCode: '',
}
},
watch: {
securityCode() {
this.drawPic()
},
},
methods: {
verification(code) {
return this.identifyCode == code
},
randomNum(min, max) {
return Math.floor(Math.random() * (max - min) + min)
},
getcheckCode() {
let code = ''
const codeLength = this.codeLength
const random = [
1,
2,
3,
4,
5,
6,
7,
8,
9,
'A',
'B',
'C',
'D',
'E',
'F',
'G',
'H',
'I',
'J',
'K',
'L',
'M',
'N',
'P',
'Q',
'R',
'S',
'T',
'U',
'V',
'W',
'X',
'Y',
'Z',
]
for (let i = 0; i < codeLength; i++) {
let index = Math.floor(Math.random() * 34)
code += random[index]
}
this.identifyCode = code
},
drawTap() {
if (this.securityCode) {
this.$emit('getCode')
} else {
this.drawPic()
}
},
drawPic() {
if (this.securityCode) {
this.identifyCode = this.securityCode
} else {
this.getcheckCode()
}
let context = uni.createCanvasContext(this.canvasId, this)
context.setTextBaseline('bottom')
context.setFillStyle(this.backgroundColor)
context.fillRect(0, 0, this.contentWidth, this.contentHeight)
for (let i = 0; i < this.identifyCode.length; i++) {
this.drawText(context, this.identifyCode[i], i)
}
this.drawLine(context)
context.draw()
},
drawText(context, txt, i) {
let a = Math.floor(Math.random() * this.colorList.length)
context.setFillStyle(this.colorList[a])
let fontSize = Math.trunc(this.contentWidth / this.identifyCode.length)
console.log(fontSize)
context.setFontSize(this.randomNum(fontSize, fontSize) + 'px SimHei')
let x =
i * (this.contentWidth / (this.identifyCode.length + 1)) +
Math.trunc(fontSize / 2)
let y = this.randomNum(fontSize, this.contentHeight - 5)
var deg = this.randomNum(-10, 10)
context.translate(x, y)
context.rotate((deg * Math.PI) / 180)
context.fillText(txt, 0, 0)
context.rotate((-deg * Math.PI) / 180)
context.translate(-x, -y)
},
drawLine(context) {
for (let i = 0; i < this.lineLength; i++) {
let a = Math.floor(Math.random() * this.lineColorList.length)
context.setStrokeStyle(this.lineColorList[a])
context.beginPath()
let startX = this.randomNum(0, this.contentWidth)
let startY = this.randomNum(0, this.contentHeight)
let endX = this.randomNum(0, this.contentWidth)
let endY = this.randomNum(0, this.contentHeight)
context.moveTo(startX, startY)
context.lineTo(endX, endY)
context.stroke()
}
},
},
mounted() {
// this.drawPic();
},
}
</script>
<style scoped></style>

View File

@ -28,6 +28,22 @@
v-model="password"
/>
</view>
<view class="t-a">
<text class="txt">验证码</text>
<view class="flex flex-1">
<input
name="identifyCode"
class="flex-1"
maxlength="18"
placeholder="请输入验证码"
v-model="identifyCode"
/>
<Security
@getCode="refreshCode"
:securityCode="identify"
></Security>
</view>
</view>
<u-button type="primary" shape="circle" @click="login"> </u-button>
<!-- <view class="reg" @tap="reg()"> </view> -->
</form>
@ -44,15 +60,41 @@ import {
} from '@/com/utils.js'
import jwt from '@/api/jwt.js'
import md5 from 'js-md5'
import Security from '@/components/jp-verification-literalness/jp-verification-literalness.vue'
export default {
components: {
Security,
},
data() {
return {
identify: '',
username: '', //
password: '', //
identifyCode: '',
}
},
onLoad() {},
onLoad() {
this.makeCode()
},
methods: {
randomNum(min, max) {
return Math.floor(Math.random() * (max - min) + min)
},
refreshCode() {
this.identifyCode = ''
this.makeCode()
},
makeCode(l = 4) {
const identifyCodes = '1234567890abcdef'
let code = ''
for (let i = 0; i < l; i++) {
code += identifyCodes[this.randomNum(0, identifyCodes.length)]
}
this.identify = code
},
//
login() {
if (!this.username) {
@ -64,9 +106,18 @@ export default {
uni.showToast({ title: '请输入您的密码', icon: 'none' })
return
}
if (!this.identifyCode) {
uni.showToast({ title: '请输入验证码', icon: 'none' })
return
}
if(this.identifyCode != this.identify){
uni.showToast({ title: '验证码不正确', icon: 'none' })
return
}
let params = {
username: this.username,
password: md5(this.password),
identifyCode: this.identifyCode,
}
this.$http