123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- import Vue from 'vue';
- import Vuex from 'vuex';
- import { getConfig } from '../api/setting.js';
- import { getUsbPrint } from '../api/shop.js';
- import { getLodop } from "../common/LodopFuncs.js";
- Vue.use(Vuex);
- const state = {
- userInfo: null || JSON.parse(localStorage.getItem('userInfo')),
- usbPrinter: [] || JSON.parse(localStorage.getItem('usbPrinter'))
- }
- const actions = {
- getUserInfo(context) {
- getConfig().then(res => {
- if (res.code === 200) {
- context.commit('SET_USERINFO', data)
- } else {
- this.$message({
- type: 'error',
- message: res.msg
- })
- }
- })
- },
- getUsbPrint(context) {
- getUsbPrint().then(res => {
- if (res.code === 200) {
- let dataList = res.data
- if (!dataList.length) { return }
- setTimeout(() => {
- LODOP = getLodop();
- let printerCount = LODOP.GET_PRINTER_COUNT();
- if (!printerCount) { return }
- let printerList = [];
- for (let index = 0; index < printerCount; index++) {
- printerList.push({ deviceName: LODOP.GET_PRINTER_NAME(index) });
- }
- let data = printerList.map((v) => {
- let obj = dataList.find((ele) => {
- return ele.deviceName === v.deviceName;
- });
- if (obj) {
- v = obj;
- } else {
- v.openOrderPrint = 0;
- v.openOrderCancelPrint = 0;
- v.printCustomerCount = 1;
- v.printMerchantCount = 1;
- v.printKitchenCount = 1;
- v.width = 58;
- }
- return v;
- });
- context.commit('SET_USBPRINTER', data)
- }, 500);
- } else {
- this.$message({
- type: 'error',
- message: res.msg
- })
- }
- })
- }
- }
- const mutations = {
- SET_USERINFO: (state, userInfo) => {
- state.userInfo = userInfo;
- // 防止页面刷新,导致Vuex重启
- localStorage.setItem('userInfo', JSON.stringify(userInfo));
- },
- SET_USBPRINTER: (state, usbPrinter) => {
- state.usbPrinter = usbPrinter.filter(v => {
- return v.status
- });
- // 防止页面刷新,导致Vuex重启
- localStorage.setItem('usbPrinter', JSON.stringify(state.usbPrinter));
- }
- }
- const getters = {
- userInfo: (state) => {
- return state.userInfo
- },
- usbPrinter: (state) => {
- return state.usbPrinter
- },
- }
- const store = new Vuex.Store({
- actions,
- mutations,
- state,
- getters
- })
- export default store;
|