'use strict'; /** * @description Vuex - {{items.title}} * @module @/store/{{model}} * @author coder */ import { {{each items.value}} {{$value['fnName']}}, {{/each}} } from '@/api/{{items.name}}'; const {isOpenNoResultKey} = require('./../../../settings'); /** * @description types常量 * const */ import { {{each items.value}} {{$value['key']}}, {{/each}} } from '@/store/types'; //设置请求拦截 {{set isCache = false}} {{each items.value}} {{if $value['state']}} let {{$value['state']}}Flag = false; {{set isCache = true}} {{/if}} {{/each}} import {setVuexCache} from "@/utils/xd.base"; /** * @description 状态保存对象 */ const state = { {{each items.value}} {{if $value['state']}} {{$value['state']}}: null, {{/if}} {{/each}} }; /** * @description 状态更新对象 */ const mutations = { {{each items.value}} {{if $value['state']}} [{{$value.key}}](state, payload) { state.{{$value['state']}} = payload }, {{/if}} {{/each}} }; /** * @description 状态获取对象 */ const getters = { {{each items.value}} {{if $value['state']}} [{{$value.key}}](state) { return state.{{$value['state']}} }, {{/if}} {{/each}} }; /** * @description 状态接受对象 */ const actions = { {{each items.value}} {{set params = ', params'}} {{set inParams = 'params'}} {{set store = '{commit, state, getters, dispatch}'}} {{set paramsData = $value.data }} {{if $value.method === 'get'}} {{set paramsData = $value.params }} {{/if}} {{if !$value.isParams}} {{set params = '' }} {{set inParams = ''}} {{set paramsData = {} }} {{/if}} {{if !$value['state'] && !$value.isParams}} {{set store = '' }} {{/if}} /** * @description {{items.title}} - {{$value.title}} {{if $value.isParams}} * @param commit * @param state * @param getters * @param dispatch * @param params { Object } {{each paramsData }} * @param params.{{$index}} { {{@ $value[1]}} } {{$value[0]}} ({{$value[2]}}) {{if $value[3]}}默认值:{{$value[3]}}{{/if}} {{/each}} {{if $value.isCallback}} * @param params.{{ $value.isCallback}} {Function} 回调函数 (必填) {{/if}} {{/if}} * @returns { Promise|* } **/ {{$value.fnName}}({{store}}{{params || fnParams }}) { {{if params && $value.isCallback}} /**判断是否有回调函数并保存**/ let callback; if (typeof params.{{$value.isCallback}} === 'function') { callback = new Function('return ' + params.{{$value.isCallback}}.toString())();; delete params.{{$value.isCallback}} } {{/if}} {{if $value['state']}} //强制刷新 if(params && params['@update']) { {{$value['state']}}Flag = false; delete params['@update']; } //启动vuex缓存 if({{$value['state']}}Flag) { return setVuexCache(state, '{{$value['state']}}') } //接口获取 {{$value['state']}}Flag = true; {{/if}} {{if $value.methodKey === 'delete' || $value.methodKey === 'get'}} let toString = Object.prototype.toString; if(toString.call(params) === '[object String]' || toString.call(params) === '[object Number]' ){ params = {id:params}; } {{/if}} return new Promise((resolve, reject) => { {{$value.fnName}}({{inParams}}) .then(res => { {{if $value.resultKey}} res = (res.{{$value.resultKey}} && (res.code || res.msg)) ? res.{{$value.resultKey}} : res; {{/if}} {{if $value['isConsole']}} console.log('{{$value.fnName}}',res); {{/if}} {{if params && $value.isCallback}} /**执行回调函数**/ if (typeof callback === 'function') { callback({commit, state, getters, dispatch,resolve,reject,result: res },()=>{ resolve(res) }); } {{else}} {{if $value['state']}} {{if $value['stateAppend']}} let stateData = JSON.stringify(state["{{$value['state']}}"]).concat(res) commit('{{$value.key}}', stateData) {{else}} commit('{{$value.key}}', res) {{/if}} {{/if}} if(isOpenNoResultKey) res = {data: res}; resolve(res) {{/if}} }) .catch(error => { console.error(error) reject(error); }); }) }, {{/each}} }; export default { namespaced: true, state, mutations, actions, getters };