From 6917835ce2df37cb2dc0231b34411303af1ae8d4 Mon Sep 17 00:00:00 2001 From: caill <815519168@qq.com> Date: Fri, 7 Apr 2023 17:41:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E3=80=81home=E3=80=81?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + src/components/SecHeader.vue | 22 +-- src/config/getData2.js | 39 +++++ src/config/http.js | 72 ++++++--- src/main.js | 15 +- src/pages/Login.vue | 187 ++++++++++++---------- src/pages/assignment/workordermanage.vue | 191 +++++++++++++++++++++++ src/pages/homeset/Home.vue | 138 +++------------- src/router/index.js | 5 + src/style/layout.styl | 15 +- src/style/mixin.styl | 39 +++++ src/style/reset.css | 1 - src/vuex/modules/user.js | 29 +++- src/vuex/types.js | 3 + yarn.lock | 5 + 15 files changed, 521 insertions(+), 241 deletions(-) create mode 100644 src/config/getData2.js create mode 100644 src/pages/assignment/workordermanage.vue create mode 100644 src/style/mixin.styl diff --git a/package.json b/package.json index b0ef640..c63d5c3 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "babel-polyfill": "^6.26.0", "element-ui": "^2.8.2", "fastclick": "^1.0.6", + "jsencrypt": "^3.3.2", "vue": "^2.5.2", "vue-router": "^3.0.1", "vuex": "^3.0.1" diff --git a/src/components/SecHeader.vue b/src/components/SecHeader.vue index 8101bef..32fda0f 100644 --- a/src/components/SecHeader.vue +++ b/src/components/SecHeader.vue @@ -35,22 +35,22 @@ export default { label: '工单操作', index: '1', router: '/operation' - }, - { - label: '残次品上报', - index: '2', - router: '/ungraded' - }, + } + // { + // label: '残次品上报', + // index: '2', + // router: '/ungraded' + // }, // { // label: '状态设置', // index: '3', // router: '/stateset' // }, - { - label: '工单查询', - index: '4', - router: '/opersearch' - } + // { + // label: '工单查询', + // index: '4', + // router: '/opersearch' + // } ] } }, diff --git a/src/config/getData2.js b/src/config/getData2.js new file mode 100644 index 0000000..6a3f2aa --- /dev/null +++ b/src/config/getData2.js @@ -0,0 +1,39 @@ +import {post} from '@config/http.js' + +/** 手持登陆 */ +export const handLogin = (user, password) => post('mobile/auth/login', { + username: user, + password: password +}) + +// 1.首页-查询人员所属的设备信息 +export const getDevice = () => post('api/produceshiftorder/getDevice', { +}) + +// 2.工单管理 +export const getTable = (code, val, d1, d2, is, ids, qc) => post('api/produceshiftorder/getTable', { + device_code: code, + key_value: val, + order_date1: d1, + order_date2: d2, + is_finished: is, + is_producted: ids, + is_qc: qc +}) + +// 3.设备开工 +export const openStart = (id, code) => post('api/produceshiftorder/openStart', { + workorder_id: id, + device_code: code +}) + +// 4.设备报工 +export const saveReport = (id, code) => post('api/produceshiftorder/saveReport', { + workorder_id: id, + report_qty: code +}) + +// 5.设备完工 +export const tofinish = (row) => post('api/produceshiftorder/finish', { + row: row +}) diff --git a/src/config/http.js b/src/config/http.js index 0fb959f..4b0ff5d 100644 --- a/src/config/http.js +++ b/src/config/http.js @@ -1,20 +1,21 @@ import axios from 'axios' -import qs from 'qs' import { Dialog } from './utils.js' -// import { Dialog, toast } from './utils.js' import store from '../vuex/store' -import router from './../router' +import router from '@/router' axios.defaults.timeout = 50000 -// axios.defaults.retry = 5 -// axios.defaults.retryDelay = 10000 -axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' +axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8' axios.interceptors.request.use( config => { + let token = '' + if (store.getters.userInfo !== '') { + token = JSON.parse(store.getters.userInfo).token + } + token && (config.headers.Authorization = token) if (config.method === 'post') { if (!config.data.flag) { - config.data = qs.stringify(config.data) + config.data = config.data } else { config.data = config.data.formData } @@ -32,24 +33,59 @@ axios.interceptors.response.use( return Promise.resolve(response) }, error => { - // toast(error.message) - router.push({ - path: '/500', - query: {redirect: router.currentRoute.fullPath} - }) - return Promise.reject(error) + if (error && error.response) { + switch (error.response.status) { + case 400: + break + case 401: + store.dispatch('setSignOut') + router.push('/login') + break + } + return Promise.reject(error.response.data) + } else { + return Promise.reject(error) + } } ) -export const post = (params) => { +export const post = (sevmethod, params) => { return new Promise((resolve, reject) => { - axios.post(`${store.getters.baseUrl}/wdk?action=wdk.pub&method=call_service&ajaxparam=` + new Date().getTime(), params) + axios.post(`${store.getters.baseUrl}/` + sevmethod, params) .then(response => { - // if (response.data.code === '0') { - // Dialog(response.data.desc) - // } resolve(response.data) }, error => { + Dialog(error.message) + reject(error.message) + }) + .catch((error) => { + reject(error) + }) + }) +} + +export const post2 = (sevmethod, params) => { + return new Promise((resolve, reject) => { + axios.post(`${store.getters.imgip}/` + sevmethod, params) + .then(response => { + resolve(response.data) + }, error => { + Dialog(error.message) + reject(error.message) + }) + .catch((error) => { + reject(error) + }) + }) +} + +export const post3 = (sevmethod, params) => { + return new Promise((resolve, reject) => { + axios.post(sevmethod, params) + .then(response => { + resolve(response.data) + }, error => { + Dialog(error.message) reject(error.message) }) .catch((error) => { diff --git a/src/main.js b/src/main.js index d123c5e..ae983c2 100644 --- a/src/main.js +++ b/src/main.js @@ -7,18 +7,31 @@ import store from './vuex/store' import '@style/reset.css' import '@style/layout.styl' import fastClick from 'fastclick' -import { DatePicker } from 'element-ui' +import { DatePicker, Select, Option } from 'element-ui' import '@config/rem.js' import {post} from '@config/http.js' import { Dialog, toast } from '@config/utils.js' +import JSEncrypt from 'jsencrypt' fastClick.attach(document.body) Vue.use(DatePicker) +Vue.use(Select) +Vue.use(Option) Vue.prototype.$post = post Vue.prototype.Dialog = Dialog Vue.prototype.toast = toast Vue.config.productionTip = false +const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD\n' + + '2iRe41HdTNF8RUhNnHit5NpMNtGL0NPTSSpPjjI1kJfVorRvaQerUgkCAwEAAQ==' + +// 加密 +export function encrypt (txt) { + const encryptor = new JSEncrypt() + encryptor.setPublicKey(publicKey) // 设置公钥 + return encryptor.encrypt(txt) // 对需要加密的数据进行加密 +} + /* eslint-disable no-new */ new Vue({ el: '#app', diff --git a/src/pages/Login.vue b/src/pages/Login.vue index 076c10e..2a50267 100644 --- a/src/pages/Login.vue +++ b/src/pages/Login.vue @@ -1,6 +1,6 @@ + + diff --git a/src/pages/homeset/Home.vue b/src/pages/homeset/Home.vue index b0a5baa..c677630 100644 --- a/src/pages/homeset/Home.vue +++ b/src/pages/homeset/Home.vue @@ -31,6 +31,7 @@