From b4aa13669f6e6da6f5c4cf34abf6b21720c1c6c5 Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期一, 28 八月 2023 14:32:00 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.110.209:9001/r/lims-before --- src/views/chart/work/index.vue | 25 ++ src/views/laboratory/measure/index.vue | 22 +- src/components/experiment/checkTheReport/index.vue | 34 +++ src/views/login/index.vue | 381 +++++++++++++++++++++++------------------------ src/assets/404_images/login-bg.png | 0 src/assets/404_images/login-form-bg.png | 0 src/views/experiment/checkTheReport/index.vue | 2 7 files changed, 245 insertions(+), 219 deletions(-) diff --git a/src/assets/404_images/login-bg.png b/src/assets/404_images/login-bg.png new file mode 100644 index 0000000..5436ea0 --- /dev/null +++ b/src/assets/404_images/login-bg.png Binary files differ diff --git a/src/assets/404_images/login-form-bg.png b/src/assets/404_images/login-form-bg.png new file mode 100644 index 0000000..aacbd1b --- /dev/null +++ b/src/assets/404_images/login-form-bg.png Binary files differ diff --git a/src/components/experiment/checkTheReport/index.vue b/src/components/experiment/checkTheReport/index.vue index 3c005d9..7d22893 100644 --- a/src/components/experiment/checkTheReport/index.vue +++ b/src/components/experiment/checkTheReport/index.vue @@ -40,13 +40,15 @@ <td>妫�娴嬬粨鏋�</td> <td>鍗曢」鍒ゆ柇</td> </tr> - <tr v-for="(item,index) in reportData.products" :key="item"> + <tr v-for="(item,index) in arr" :key="index"> <td>{{index+1}}</td> <td>{{item.ipName}}</td> <td>{{item.unit}}</td> <td>{{item.required}}</td> <td>{{item.testValue}}</td> - <td>{{item.testState === 1 ? "鈭�" : "X"}}</td> + <td > + {{isIfState(item.testState) }} + </td> </tr> <tr> <td colspan="6">妫�楠岀粨璁猴細{{reportData.type == 1 ? "鍚堟牸" : "涓嶅悎鏍�"}}</td> @@ -74,7 +76,24 @@ data() { return { logoSrc : require("@/assets/404_images/logo.png"), - now: new Date().toLocaleDateString() + now: new Date().toLocaleDateString(), + arr: [] + } + }, + mounted(){ + this.arr = this.reportData.products; + if(this.reportData.products.length < 10){ + let size = this.reportData.products.length; + let num=10-size + for(let i=0;i< num;i++){ + this.arr.push({ + code: null, + ipName: "", + required: "", + testState: null, + testValue: "", + unit: ""}) + } } }, methods:{ @@ -84,6 +103,11 @@ let month = (dt.getMonth() + 1).toString().padStart(2,'0'); let date = dt.getDate().toString().padStart(2,'0'); return `${year}-${month}-${date}`; + }, + isIfState(val){ + if(val===1)return "鈭�" + else if(val===null || val=== undefined) return null + else return "X" } }, props:["reportData"] @@ -117,7 +141,7 @@ border: 2px solid black; } tr,td,th{ - padding: 10px 10px; + padding: 15px 10px; } .date-group{ width: 90%; @@ -135,7 +159,7 @@ margin-left: 5%; color: lightgray; text-align: center; - margin-top: 250px; + margin-top: 300px; } } } diff --git a/src/views/chart/work/index.vue b/src/views/chart/work/index.vue index 46e1da2..399ab21 100644 --- a/src/views/chart/work/index.vue +++ b/src/views/chart/work/index.vue @@ -90,23 +90,34 @@ }, } }, - mounted(){}, + mounted(){ + this.queryData(); + }, methods: { async queryData(){ - let date = this.formInline.date; + let date = []; + let type; + if(this.formInline.date == null || this.formInline.date == ""){ + let currentDate = new Date(); + let year = currentDate.getFullYear(); + let month = currentDate.getMonth() + 1; + let day = currentDate.getDate(); + date.push(year +"-" + month + "-01"); + date.push(year +"-" + month + "-" + day); + type = 0; + }else{ + date = this.formInline.date; + type = this.formInline.type; + } let obj = { startTime : date[0], endTime : date[1], - type : this.formInline.type + type : type } const dutyMater = await getDutyMater(obj); const dutyTimely = await getDutyTimely(obj); const executeMater = await getExecuteMater(obj); const executeTimely = await getExecuteTimely(obj); - console.log("dm",dutyMater.data); - console.log("dt",dutyTimely.data); - console.log("em",executeMater.data.length); - console.log("et",executeTimely.data); this.initLeaderStatiChart("leaderStati",dutyMater.data); this.initLeaderTimelyChart("leaderTimely",dutyTimely.data); this.initTesterStatiChart("testerStati",executeMater.data); diff --git a/src/views/experiment/checkTheReport/index.vue b/src/views/experiment/checkTheReport/index.vue index 47cd9c1..dce2174 100644 --- a/src/views/experiment/checkTheReport/index.vue +++ b/src/views/experiment/checkTheReport/index.vue @@ -214,11 +214,11 @@ async queryReportByRCode(code){ const resp = await getReportData({code:code}); this.reportData = resp.data; + this.dialogVisible = true; console.log(this.reportData); }, //鏌ョ湅鎶ュ憡鎸夐挳 previewFun(row){ - this.dialogVisible = true; this.reportType = row.type; this.queryReportByRCode(row.reportCode); }, diff --git a/src/views/laboratory/measure/index.vue b/src/views/laboratory/measure/index.vue index a4b0dbb..d70dd9c 100644 --- a/src/views/laboratory/measure/index.vue +++ b/src/views/laboratory/measure/index.vue @@ -129,7 +129,7 @@ <Add ref="add" /> </div> <div id="myMOdel" - :style="`position: absolute;transition: 1s;top:${mymodelTop}vh; left: 9px; width: 99%; height: 85vh; background-color: #fff;z-index: 20;`"> + :style="`position: absolute;transition: 1s;top:${mymodelTop}px; left: 9px; width: 99%; height: 100vh; background-color: #fff;z-index: 20;`"> <el-col :span="10"> <p style="font-size: 13px;padding-left: 40px;">璁″垝淇℃伅</p> </el-col> @@ -338,7 +338,7 @@ createPerson: '鏌愭煇璐熻矗浜�', createTime: '2021-09-08' }, - mymodelTop: -85,//14 + mymodelTop: -1000,//14 addTop: -85, planId: 0 } @@ -391,9 +391,9 @@ this.currentPage await this.limitGetPlanMeasureInstrument() }, - async handleCurrentChangePllan(num) { - this.currentPagePlan = num - await this.limitGetPlanMeasureInstrument() + handleCurrentChangePllan(num) { + this.currentPagePlan = num; + this.limitGetPlanMeasureInstrument(); }, addPlan() { this.addTop = 2 @@ -407,9 +407,11 @@ currentPage: this.currentPagePlan, pageSize: this.pageSizePlan } - let res = await limitGetPlanMeasureRequest(param) - this.totalPlan = res.data.taotal - this.measureData = res.data.list + const res = await limitGetPlanMeasureRequest(param); + console.log(res.data.total); + // this.totalPlan = res.data.taotal; + this.measureData = res.data.list; + console.log(this.totalPlan); }, lookPalan(id) { this.planId = id @@ -437,7 +439,7 @@ }, combackLookPlan() { this.lookVisible = false - this.mymodelTop = -85 + this.mymodelTop = -1000 this.selectInfoBtn=false }, blurSearch() { @@ -520,7 +522,7 @@ } </script> -<style scoped> +<style scoped lang="scss"> .top-bar { margin: -25px -15px; background: #fff; diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 6fcb22a..9dee500 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -1,73 +1,188 @@ +<style scoped> + .enter { + width: 100vw; + height: 100vh; + display: flex; + background-image: url("../../assets/404_images/login-form-bg.png"); + background-size: 100% 100%; + } + + .left { + width: calc(100% - 500px); + height: 100%; + overflow: hidden; + } + + .left img { + width: 100%; + min-height: 100%; + } + + .right { + width: 600px; + overflow-y: auto; + display: flex; + align-items: center; + justify-content: center; + } + + .title_big { + color: #004EA2; + font-size: 40px; + margin-bottom: 8px; + } + + .title_small { + color: #004EA2; + font-size: 24px; + } + + .elform { + margin-top: 50px; + } + + .sao { + font-size: 14px; + color: #004EA2; + width: 100%; + text-align: right; + } +</style> + +<style> + .enter .el-form-item__label { + font-size: 20px; + color: #333; + line-height: 48px; + } + + .enter .el-form-item { + margin-bottom: 30px; + } + + .enter .el-input__inner { + height: 48px; + } + + .enter .el-button { + background-color: #1763EB; + color: #fff; + border: 0; + border-radius: 16px; + width: 100%; + height: 48px; + } + + .enter input::-webkit-input-placeholder, + .enter textarea::-webkit-input-placeholder { + font-size: 14px; + } + + .enter input::-moz-placeholder, + .enter textarea::-moz-placeholder { + font-size: 10px; + } + + .enter input:-ms-input-placeholder, + .enter textarea:-ms-input-placeholder { + font-size: 10px; + } + + .enter input:-moz-placeholder, + .enter textarea:-moz-placeholder { + font-size: 10px; + } + .copyright{ + width: 100%; + position: relative; + top: 140px; + } + .copyright p{ + padding: 2px 0px; + font-size: 5px; + text-align: center; + color: lightgray; + } + .copyright >p:nth-child(3){ + text-decoration: underline; + } +</style> + <template> - <div class="login-container"> - <el-form ref="loginForm" :model="loginForm" class="login-form" auto-complete="on" label-position="left"> - <!-- <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on" label-position="left"> --> - <!-- form 琛ㄥ崟鏍¢獙 --> - <div class="title-container"> - <h3 class="title">鐧� 褰�</h3> + <div class="enter"> + <div class="left"> + <img src="@/assets/404_images/login-bg.png"> + </div> + <div class="right"> + <div style="width: calc(100% - 100px);"> + <div class="title_big">娆㈣繋鎮ㄧ櫥褰曪紒</div> + <div class="title_small">瑁呭鐢电紗LIMS瀹為獙瀹ょ鐞嗙郴缁�</div> + <el-form :model="ruleForm" :rules="rules" ref="ruleForm" class="elform" :hide-required-asterisk="true"> + <el-form-item label="鐢ㄦ埛鍚�" prop="username"> + <el-input v-model="ruleForm.username" placeholder="璇疯緭鍏ヨ处鍙�" clearable></el-input> + </el-form-item> + <el-form-item label="瀵嗙爜" prop="password"> + <el-input v-model="ruleForm.password" placeholder="璇疯緭鍏ュ瘑鐮�" clearable show-password></el-input> + </el-form-item> + <el-form-item style="margin-bottom: 8px;"> + <el-col :span="12"><el-checkbox v-model="ruleForm.remumberme">璁颁綇瀵嗙爜</el-checkbox></el-col> + <el-col :span="12" style="text-align: right;"><el-checkbox + v-model="ruleForm.autoenter">鑷姩鐧诲綍</el-checkbox></el-col> + </el-form-item> + <el-form-item style="margin-bottom: 15px;"> + <el-button type="primary" @click="submitForm('ruleForm')" :loading="btnload">绔嬪嵆鐧诲綍</el-button> + </el-form-item> + </el-form> + <div class="sao">寰俊鎵爜鐧诲綍</div> + <div class="copyright"> + <p>姹熶笢閲戝叿璁惧鏈夐檺鍏徃</p> + <p>鐗堟潈鎵�鏈塁opyright 漏锔� 2012-2021 ZTT.All Rights Reserved.</p> + <p>[鑻廔CP澶�10047815鍙�-1]</p> + </div> </div> - - <el-form-item prop="username"> - <span class="svg-container"> - <svg-icon icon-class="user" /> - </span> - <el-input ref="username" v-model="loginForm.username" placeholder="Username" name="username" type="text" - tabindex="1" auto-complete="on" /> - </el-form-item> - - <el-form-item prop="password"> - <span class="svg-container"> - <svg-icon icon-class="password" /> - </span> - <el-input :key="passwordType" ref="password" v-model="loginForm.password" :type="passwordType" - placeholder="Password" name="password" tabindex="2" auto-complete="on" @keyup.enter.native="handleLogin" /> - <span class="show-pwd" @click="showPwd"> - <svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" /> - </span> - </el-form-item> - - <el-button :loading="loading" type="primary" style="width:100%;margin-bottom:30px;" - @click.native.prevent="handleLogin">Login</el-button> - <!-- <div class="tips"> - <span style="margin-right:20px;">username: admin</span> - <span> password: any</span> - </div> --> - </el-form> + </div> </div> </template> - + <script> -import { validUsername } from '@/utils/validate' import { get } from "@/api/util/requestUtil.js" export default { - name: 'Login', data() { - const validateUsername = (rule, value, callback) => { - if (!validUsername(value)) { - callback(new Error('Please enter the correct user name')) - } else { - callback() - } - } - const validatePassword = (rule, value, callback) => { - if (value.length < 6) { - callback(new Error('The password can not be less than 6 digits')) - } else { - callback() - } - } return { - loginForm: { - username: '123456', - password: '123456' + ruleForm: { + username: "admin", + password: "admin", + remumberme: false, + autoenter: false }, - loginRules: { - username: [{ required: true, trigger: 'blur', validator: validateUsername }], - password: [{ required: true, trigger: 'blur', validator: validatePassword }] + rules: { + username: [{ + required: true, + message: '璇疯緭鍏ヨ处鍙�', + trigger: ['blur', 'change'] + }], + password: [{ + required: true, + message: '璇疯緭鍏ュ瘑鐮�', + trigger: ['blur', 'change'] + }] }, - loading: false, - passwordType: 'password', + btnload: false, redirect: undefined + } + }, + mounted() { + this.ruleForm.remumberme = JSON.parse(localStorage.getItem('rememberme'))==null?false:JSON.parse(localStorage.getItem('rememberme')) + this.ruleForm.autoenter = JSON.parse(localStorage.getItem('autoenter'))==null?false:JSON.parse(localStorage.getItem('autoenter')) + var user = JSON.parse(localStorage.getItem('user')) + if (user != null && user != undefined) { + if (this.ruleForm.remumberme==true) { + this.ruleForm.username = user.username + this.ruleForm.password = user.password + } + if (this.ruleForm.autoenter==true) { + this.submitForm('ruleForm') + } } }, watch: { @@ -79,25 +194,15 @@ } }, methods: { - showPwd() { - if (this.passwordType === 'password') { - this.passwordType = '' - } else { - this.passwordType = 'password' - } - this.$nextTick(() => { - this.$refs.password.focus() - }) - }, - handleLogin() { - this.$refs.loginForm.validate(valid => { + submitForm(formName) { + this.btnload = true + this.$refs[formName].validate((valid) => { if (valid) { - this.loading = true - this.$store.dispatch('user/login', this.loginForm).then(async () => { + this.$store.dispatch('user/login', this.ruleForm).then(async () => { await get(this.$url.info).then(res => { - this.user = res.data - sessionStorage.setItem("user", JSON.stringify(res.data)) - sessionStorage.setItem("flushPage",0) + this.user = res.data; + sessionStorage.setItem("user", JSON.stringify(res.data)); + sessionStorage.setItem("flushPage",0); }) this.$router.push({ path: this.redirect || '/' }) this.loading = false @@ -105,128 +210,12 @@ this.loading = false }) } else { - console.log('鐧诲綍澶辫触!') - return false + this.btnload = false + this.$message.error('鐧诲綍澶辫触锛�') + return false; } }) - } + }, } } -</script> - -<style lang="scss"> -/* 淇input 鑳屾櫙涓嶅崗璋� 鍜屽厜鏍囧彉鑹� */ -/* Detail see https://github.com/PanJiaChen/vue-element-admin/pull/927 */ - -$bg: #283443; -$light_gray: #fff; -$cursor: #fff; - -@supports (-webkit-mask: none) and (not (cater-color: $cursor)) { - .login-container .el-input input { - color: $cursor; - } -} - -/* reset element-ui css */ -.login-container { - .el-input { - display: inline-block; - height: 47px; - width: 85%; - - input { - background: transparent; - border: 0px; - -webkit-appearance: none; - border-radius: 0px; - padding: 12px 5px 12px 15px; - color: $light_gray; - height: 47px; - caret-color: $cursor; - - &:-webkit-autofill { - box-shadow: 0 0 0px 1000px $bg inset !important; - -webkit-text-fill-color: $cursor !important; - } - } - } - - .el-form-item { - border: 1px solid rgba(255, 255, 255, 0.1); - background: rgba(0, 0, 0, 0.1); - border-radius: 5px; - color: #454545; - } -} -</style> - -<style lang="scss" scoped> -$bg: #2d3a4b; -$dark_gray: #889aa4; -$light_gray: #eee; - -.login-container { - min-height: 100%; - width: 100%; - background: url('../../assets/404_images/backgroud.png') no-repeat; - background-size: 100vw 100vh; - overflow: hidden; - - .login-form { - position: relative; - width: 520px; - max-width: 100%; - padding: 0 35px; - margin: 0 auto; - overflow: hidden; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - - } - - .tips { - font-size: 14px; - color: #fff; - margin-bottom: 10px; - - span { - &:first-of-type { - margin-right: 16px; - } - } - } - - .svg-container { - padding: 6px 5px 6px 15px; - color: $dark_gray; - vertical-align: middle; - width: 30px; - display: inline-block; - } - - .title-container { - position: relative; - - .title { - font-size: 26px; - color: $light_gray; - margin: 0px auto 40px auto; - text-align: center; - font-weight: bold; - } - } - - .show-pwd { - position: absolute; - right: 10px; - top: 7px; - font-size: 16px; - color: $dark_gray; - cursor: pointer; - user-select: none; - } -} -</style> +</script> \ No newline at end of file -- Gitblit v1.9.3