diff --git a/src/api/user.js b/src/api/user.js index 90138a0..a318491 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -18,6 +18,15 @@ export const loginByUsername = (tenantId, account, password, type, key, code) => } }); +export const loginByScada = (token) => request({ + url: '/api/daf-auth/scada-token', + method: 'post', + params: { + token + } +}); + + export const loginBySocial = (tenantId, source, code, state) => request({ url: '/api/daf-auth/token', method: 'post', diff --git a/src/components/scada-login/main.vue b/src/components/scada-login/main.vue new file mode 100644 index 0000000..8a36238 --- /dev/null +++ b/src/components/scada-login/main.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/permission.js b/src/permission.js index 8fc72d8..ffdb0ef 100644 --- a/src/permission.js +++ b/src/permission.js @@ -7,7 +7,8 @@ import store from './store' import {validatenull} from '@/util/validate' import {getToken} from '@/util/auth' import NProgress from 'nprogress' // progress bar -import 'nprogress/nprogress.css' // progress bar style +import 'nprogress/nprogress.css' +import Cookies from "js-cookie"; // progress bar style NProgress.configure({showSpinner: false}); const lockPage = store.getters.website.lockPage; //锁屏页 router.beforeEach((to, from, next) => { @@ -21,7 +22,7 @@ router.beforeEach((to, from, next) => { next({path: '/'}) } else { //如果用户信息为空则获取用户信息,获取用户信息失败,跳转到登录页 - if (store.getters.token.length === 0) { + if (store.getters.token.length === 0 && !Cookies.get('scada-access-token')) { store.dispatch('FedLogOut').then(() => { next({path: '/login'}) }) diff --git a/src/router/page/index.js b/src/router/page/index.js index 01dcc4d..a1ae221 100644 --- a/src/router/page/index.js +++ b/src/router/page/index.js @@ -21,6 +21,18 @@ export default [{ isAuth: false } }, +{ + path: '/scada-login', + requiresAuth: false, + name: 'scada登录', + component: () => + import( /* webpackChunkName: "page" */ '@/components/scada-login/main'), + meta: { + keepAlive: true, + isTab: false, + isAuth: false, + } +}, { path: '/404', component: () => @@ -77,4 +89,4 @@ export default [{ path: '*', redirect: '/404' } -] \ No newline at end of file +] diff --git a/src/store/modules/user.js b/src/store/modules/user.js index f4c6a7a..d913f5b 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -4,9 +4,10 @@ import {isURL, validatenull} from '@/util/validate' import {deepClone} from '@/util/util' import webiste from '@/config/website' import {Message, Notification} from 'element-ui' -import {loginByUsername, loginBySocial, getUserInfo, getMenu, getTopMenu, logout, refreshToken, getButtons, getLicense} from '@/api/user' +import {loginByUsername, loginByScada, loginBySocial, getUserInfo, getMenu, getTopMenu, logout, refreshToken, getButtons, getLicense} from '@/api/user' import vue from '../../main.js' import website from "../../config/website"; +import Cookies from "js-cookie"; function addPath(ele, first) { @@ -58,6 +59,22 @@ const user = { }) }) }, + loginByScada({commit}, userInfo) { + return new Promise((resolve, reject) => { + loginByScada(userInfo.token).then(res => { + const data = res.data.data; + var inFifteenMinutes = new Date(new Date().getTime() + 120 * 60 * 1000); + Cookies.set('scada-access-token', data.accessToken, { expires: inFifteenMinutes }); + commit('SET_TOKEN', data.accessToken); + commit('SET_USER_INFO', data); + commit('DEL_ALL_TAG'); + commit('CLEAR_LOCK'); + resolve(); + }).catch(error => { + reject(error); + }) + }) + }, //根据第三方信息登录 LoginBySocial({ commit }, userInfo) { return new Promise((resolve) => { @@ -118,6 +135,7 @@ const user = { LogOut({commit}) { return new Promise((resolve, reject) => { logout().then(() => { + Cookies.remove('scada-access-token'); commit('SET_TOKEN', ''); commit('SET_MENU', []) commit('SET_MENU_ALL', []); @@ -134,6 +152,7 @@ const user = { //注销session FedLogOut({commit}) { return new Promise(resolve => { + Cookies.remove('scada-access-token'); commit('SET_TOKEN', ''); commit('SET_MENU', []); commit('SET_MENU_ALL', []); diff --git a/src/views/inspection/inspectiontasks.vue b/src/views/inspection/inspectiontasks.vue index cff2358..ddebc78 100644 --- a/src/views/inspection/inspectiontasks.vue +++ b/src/views/inspection/inspectiontasks.vue @@ -563,26 +563,33 @@ return; } this.stopBox = true; + this.$refs.stopForm.resetForm(); }, submitStop(){ - this.$confirm("是否将选择巡检任务停止?", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning" + this.$refs.stopForm.validate((valid, done, msg) => { + if (valid) { + done() + this.$confirm("是否将选择巡检任务停止?", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }) + .then(() => { + return stop(this.ids, this.stopForm.cancelReason); + }) + .then(() => { + this.$refs.stopForm.resetForm(); + this.stopBox = false; + this.onLoad(this.page); + this.$message({ + type: "success", + message: "操作成功!" + }); + this.$refs.crud.toggleSelection(); + }); + } }) - .then(() => { - return stop(this.ids, this.stopForm.cancelReason); - }) - .then(() => { - this.stopForm.cancelReason = ''; - this.stopBox = false; - this.onLoad(this.page); - this.$message({ - type: "success", - message: "操作成功!" - }); - this.$refs.crud.toggleSelection(); - }); + }, handleExport() { this.$confirm("是否导出数据?", "提示", { diff --git a/src/views/leger/equipmentledgerDetail.vue b/src/views/leger/equipmentledgerDetail.vue index 76a968b..58d9942 100644 --- a/src/views/leger/equipmentledgerDetail.vue +++ b/src/views/leger/equipmentledgerDetail.vue @@ -128,6 +128,18 @@ export default { name: "equipmentledgerDetail", data () { + var validatePage = (rule, value, callback) => { + if (value === '') { + callback(new Error('请输入页数')); + } else { + var r = /^\+?[0-9][0-9]*$/; + if(!r.test(value)) { + callback(new Error('输入的页数不合法')); + } else { + callback(); + } + } + }; return { checkStatusValue: this.$route.query.checkstatus, optionCheckStatus: [{ @@ -613,14 +625,8 @@ { label: "页数", prop: "page", - type: 'number', - step: 1, span: 20, - rules: [{ - required: true, - message: "请输入页数", - trigger: "blur" - }], + rules: [{required: true, validator: validatePage, trigger: 'blur' }] }, { label: "关键字", diff --git a/src/views/leger/toolinventoryrecordDetail.vue b/src/views/leger/toolinventoryrecordDetail.vue index 662882b..566bac3 100644 --- a/src/views/leger/toolinventoryrecordDetail.vue +++ b/src/views/leger/toolinventoryrecordDetail.vue @@ -175,6 +175,18 @@ import {getListByTaskNo} from "@/api/inspection/inspectionresult"; export default { name: "toolinventoryrecordDetail", data () { + var validatePage = (rule, value, callback) => { + if (value === '') { + callback(new Error('请输入页数')); + } else { + var r = /^\+?[0-9][0-9]*$/; + if(!r.test(value)) { + callback(new Error('输入的页数不合法')); + } else { + callback(); + } + } + }; return { checkStatusValue:{}, optionCheckStatus: [{ @@ -552,13 +564,7 @@ export default { label: "页数", prop: "page", span: 20, - type: 'number', - step: 1, - rules: [{ - required: true, - message: "请输入页数", - trigger: "blur" - }], + rules: [{required: true, validator: validatePage, trigger: 'blur' }] }, { label: "关键字", diff --git a/src/views/smart/operationticket.vue b/src/views/smart/operationticket.vue index 6a55c54..6e4bc31 100644 --- a/src/views/smart/operationticket.vue +++ b/src/views/smart/operationticket.vue @@ -70,9 +70,9 @@
取消 + size="small" + plain + @click="handleDetailCancel">取消
- @@ -96,7 +96,7 @@
- 取消 diff --git a/src/views/spares/material.vue b/src/views/spares/material.vue index c434b2b..d888254 100644 --- a/src/views/spares/material.vue +++ b/src/views/spares/material.vue @@ -103,13 +103,30 @@ export default { data() { + var validateInCount = (rule, value, callback) => { + if (value === '') { + callback(new Error('请输入入库数量')); + } else { + var r = /^\+?[0-9][0-9]*$/; + if(!r.test(value)) { + callback(new Error('入库数量不合法')); + } else { + callback(); + } + } + }; var validateCount = (rule, value, callback) => { if (value === '') { callback(new Error('请输入出库数量')); - } else if(this.count < value) { - callback(new Error('输入的出库数量大于库存数量')); } else { - callback(); + var r = /^\+?[0-9][0-9]*$/; + if(!r.test(value)) { + callback(new Error('出库数量不合法')); + } else if(this.count < value) { + callback(new Error('输入的出库数量大于库存数量')); + } else { + callback(); + } } }; return { @@ -329,11 +346,7 @@ label: "入库数量", prop: "inboundCount", span: 22, - rules: [{ - required: true, - message: "请输入入库数量", - trigger: "blur" - }] + rules: [{required: true, validator: validateInCount, trigger: 'blur' }] }, { label: "入库申领人", diff --git a/src/views/spares/materialDetail.vue b/src/views/spares/materialDetail.vue index 5db6cb9..78e8882 100644 --- a/src/views/spares/materialDetail.vue +++ b/src/views/spares/materialDetail.vue @@ -442,6 +442,7 @@ }, methods: { test(val) { + this.$refs.diaForm.resetForm(); this.dialogVisible = true; }, handleFormSubmit() { diff --git a/src/views/wel/index.vue b/src/views/wel/index.vue index 199d3b9..27ede76 100644 --- a/src/views/wel/index.vue +++ b/src/views/wel/index.vue @@ -37,6 +37,7 @@ && !homePageData.manufacturerInfoAudit && !homePageData.warehouseAudit && !homePageData.workPermitAudit + && !homePageData.materialAudit && !homePageData.workOperationTicketAudit && !homePageData.toolInventoryRecordsAudit && !homePageData.equipmentLedgerAudit">