初始上传

This commit is contained in:
2026-04-04 17:27:12 +08:00
parent 4d80d28eb4
commit b7e11774ee
11191 changed files with 1588469 additions and 0 deletions

83
addon/pc/source/os/store/app.js Executable file
View File

@@ -0,0 +1,83 @@
import {
getCity
} from '@/api/address';
const state = {
// 城市id
city: "",
// 语言包
lang: "zh-cn",
//首页浮层广告弹出次数
indexFloatLayerNum: 0,
//广告显示次数
indexTopAdNum: 0,
// 定位区域
locationRegion: null,
//判断首页广告显示
is_show: false
}
const mutations = {
SET_CITY: (state, value) => {
state.city = value;
},
SET_LANG: (state, value) => {
state.lang = value;
},
SET_FLOAT_LAYER: (state, value) => {
state.indexFloatLayerNum = value;
localStorage.setItem('indexFloatLayerNum', value);
},
SET_INDEXTOPADNUM: (state, value) => {
state.indexTopAdNum = value;
},
SET_LOCATION_REGION: (state, value) => {
state.locationRegion = value;
},
IS_SHOW_JUDGE: (state, value) => {
state.is_show = value;
}
}
const actions = {
setCity({
commit
}, value) {
commit('SET_CITY', value)
},
lang({
commit
}, value) {
commit('SET_LANG', value)
},
get_city({
commit
}, item) {
return new Promise((resolve, reject) => {
return getCity({}).then(res => {
resolve(res)
}).catch(err => {
reject(err)
})
})
},
is_show({
commit
}, item) {
commit('IS_SHOW_JUDGE', item.is_show)
},
}
export default {
namespaced: true,
state,
mutations,
actions
}

View File

@@ -0,0 +1,92 @@
import {
addToCart,
deleteCart,
getCartCount,
editCartNum
} from '@/api/goods/cart'
const state = {
cartCount: 0
}
const mutations = {
SET_CART_COUNT: (state, count) => {
state.cartCount = count
}
}
const actions = {
add_to_cart({
commit
}, item) {
return new Promise((resolve, reject) => {
return addToCart({
site_id: item.site_id,
num: item.num || 1,
sku_id: item.sku_id
}).then(res => {
getCartCount({}).then(res => {
commit('SET_CART_COUNT', res.data)
});
resolve(res)
})
.catch(err => {
reject(err)
})
})
},
delete_cart({
commit
}, item) {
return new Promise((resolve, reject) => {
return deleteCart({
cart_id: item.cart_id
}).then(res => {
getCartCount({}).then(res => {
commit('SET_CART_COUNT', res.data)
});
resolve(res)
}).catch(err => {
reject(err)
})
})
},
cart_count({
commit
}, item) {
if(!this.state.member.token) return;
return new Promise((resolve, reject) => {
return getCartCount({}).then(res => {
commit('SET_CART_COUNT', res.data)
resolve(res)
}).catch(err => {
reject(err)
})
})
},
edit_cart_num({
commit
}, item) {
return new Promise((resolve, reject) => {
return editCartNum({
num: item.num,
cart_id: item.cart_id
}).then(res => {
getCartCount({}).then(res => {
commit('SET_CART_COUNT', res.data)
});
resolve(res)
}).catch(err => {
reject(err)
})
})
},
}
export default {
namespaced: true,
state,
mutations,
actions
}

View File

@@ -0,0 +1,63 @@
const getters = {
// 用户TOKRN
token: state => state.member.token,
lang: state => state.app.lang,
city: state => state.app.city,
locationRegion: state => state.app.locationRegion,
// 自动登录时长
autoLoginRange: state => state.member.autoLoginRange,
wapQrcode: state => state.site.siteQrCode,
// 会员详情
member: state => state.member.member,
copyRight: state => state.site.copyRight,
siteInfo: state => state.site.siteInfo,
addonIsExit: state => state.site.addons,
// 购物车商品总数
cartCount: state => state.cart.cartCount,
//
is_show: state => state.app.is_show,
defaultGoodsImage: state => state.site.defaultFiles.goods,
defaultHeadImage: state => state.site.defaultFiles.head,
defaultShopImage: state => state.site.defaultFiles.store,
defaultCityImage: state => state.site.defaultFiles.default_city_img,
defaultSupplyImage: state => state.site.defaultFiles.default_supply_img,
defaultStoreImage: state => state.site.defaultFiles.store,
defaultCategoryImage: state => state.site.defaultFiles.goods,
defaultBrandImage: state => state.site.defaultFiles.goods,
defaultArticleImage: state => state.site.defaultFiles.article,
// 普通待付款订单
// orderCreateGoodsData: state => {
// let storage = localStorage.getItem('orderCreateGoodsData');
// if(storage) storage = JSON.parse(storage);
// return storage;
// },
orderCreateGoodsData: state => state.order.orderCreateGoodsData,
//团购待付款订单
groupbuyOrderCreateData: state => {
let storage = localStorage.getItem('groupbuyOrderCreateData');
if(storage) storage = JSON.parse(storage);
return storage;
},
//秒杀待付款订单
seckillOrderCreateData: state => {
let storage = localStorage.getItem('seckillOrderCreateData');
if(storage) storage = JSON.parse(storage);
return storage;
},
//组合套餐待付款订单
comboOrderCreateData: state => {
let storage = localStorage.getItem('comboOrderCreateData');
if(storage) storage = JSON.parse(storage);
return storage;
}
}
export default getters;

View File

@@ -0,0 +1,266 @@
import {
login,
mobile_login
} from "@/api/auth/login"
import {
register,
registerMobile
} from "@/api/auth/register"
import {
getToken,
setToken,
removeToken
} from "@/utils/auth"
import {
memberDetail
} from "@/api/member/member"
const state = {
token: getToken(),
autoLoginRange: 0,
member: ''
}
const mutations = {
SET_TOKEN: (state, token) => {
state.token = token
},
SET_AUTOLOGIN_FLAG: (state, autologinRange) => {
state.autoLogin = autologinRange
},
SET_MEMBER: (state, member) => {
if (typeof member == 'object') {
state.member = {};
Object.assign(state.member, member)
} else {
state.member = member;
}
}
}
const actions = {
login({
commit
}, userInfo) {
const {
username,
password,
captcha_id,
captcha_code,
autoLoginRange
} = userInfo
return new Promise((resolve, reject) => {
return login({
username,
password,
captcha_id,
captcha_code,
autoLoginRange
})
.then(res => {
const {
code,
message,
data
} = res
if (code == 0) {
commit("SET_TOKEN", data.token)
if (userInfo.autoLoginRange !== undefined) {
commit("SET_AUTOLOGIN_FLAG", userInfo.autoLoginRange)
}
setToken(data.token, userInfo.autoLoginRange)
resolve(res)
}
reject()
})
.catch(_err => {
reject(_err)
})
})
},
mobile_login({
commit
}, userInfo) {
const {
mobile,
key,
code
} = userInfo
return new Promise((resolve, reject) => {
return mobile_login({
mobile,
key,
code
})
.then(res => {
const {
code,
message,
data
} = res
if (code == 0) {
commit("SET_TOKEN", data.token)
setToken(data.token, userInfo.autoLoginRange)
resolve(res)
}
reject()
})
.catch(_err => {
reject(_err)
})
})
},
remove_token({
commit
}) {
commit("SET_TOKEN", "")
removeToken()
},
// 账号密码
register_token({
commit
}, userInfo) {
const {
username,
password,
captcha_id,
captcha_code
} = userInfo
return new Promise((resolve, reject) => {
return register({
username,
password,
captcha_id,
captcha_code
})
.then(res => {
const {
code,
message,
data
} = res
if (code == 0) {
commit("SET_TOKEN", data.token)
setToken(data.token)
resolve(res)
}
reject()
})
.catch(_err => {
reject(_err)
})
})
commit("SET_TOKEN", "")
},
// 手机号
registerMobile_token({
commit
}, userInfo) {
const {
mobile,
key,
code,
captcha_id,
captcha_code
} = userInfo
return new Promise((resolve, reject) => {
return registerMobile({
mobile,
key,
code,
captcha_id,
captcha_code
})
.then(res => {
const {
code,
message,
data
} = res
if (code == 0) {
commit("SET_TOKEN", data.token)
setToken(data.token)
resolve(res)
}
reject()
})
.catch(_err => {
reject(_err)
})
})
commit("SET_TOKEN", "")
},
auto_login_range({
commit
}, autologinRange) {
commit("SET_AUTOLOGIN_FLAG", autologinRange)
},
logout({
commit
}) {
commit("SET_TOKEN", "")
commit("SET_MEMBER", "")
removeToken()
// resolve()
},
/**
* params refresh:1 表示强制请求会员信息
*/
member_detail({
commit,
state
}, params) {
if (!state.member || (params && params.refresh)) {
return new Promise((resolve, reject) => {
return memberDetail({
token: getToken()
})
.then(res => {
if (res) {
const {
data
} = res
commit("SET_MEMBER", data)
return resolve(res)
}
})
.catch(err => {
return reject(err)
})
})
}
}
}
export default {
namespaced: true,
state,
mutations,
actions
}

104
addon/pc/source/os/store/order.js Executable file
View File

@@ -0,0 +1,104 @@
const state = {
// 普通待付款订单数据
orderCreateGoodsData: "",
//团购待付款订单数据
groupbuyOrderCreateData: "",
//秒杀待付款订单数据
seckillOrderCreateData: "",
//组合套餐待付款订单数据
comboOrderCreateData: ""
}
const mutations = {
SET_ORDER_CREATE_DATA: (state, value) => {
state.orderCreateGoodsData = value
if (value) {
localStorage.setItem('orderCreateGoodsData', JSON.stringify(value));
} else {
localStorage.removeItem('orderCreateGoodsData');
}
},
SET_GROUPBUY_ORDER_CREATE_DATA: (state, value) => {
state.groupbuyOrderCreateData = value
if (value) {
localStorage.setItem('groupbuyOrderCreateData', JSON.stringify(value));
} else {
localStorage.removeItem('groupbuyOrderCreateData');
}
},
SET_SECKILL_ORDER_CREATE_DATA: (state, value) => {
state.seckillOrderCreateData = value
if (value) {
localStorage.setItem('seckillOrderCreateData', JSON.stringify(value));
} else {
localStorage.removeItem('seckillOrderCreateData');
}
},
SET_COMBO_ORDER_CREATE_DATA: (state, value) => {
state.comboOrderCreateData = value
if (value) {
localStorage.setItem('comboOrderCreateData', JSON.stringify(value));
} else {
localStorage.removeItem('comboOrderCreateData');
}
}
}
const actions = {
setOrderCreateData({
commit,
state
}, data) {
commit("SET_ORDER_CREATE_DATA", data)
},
removeOrderCreateData({
commit
}) {
commit("SET_ORDER_CREATE_DATA", "")
},
setGroupbuyOrderCreateData({
commit,
state
}, data) {
commit("SET_GROUPBUY_ORDER_CREATE_DATA", data)
},
removeGroupbuyOrderCreateData({
commit
}) {
commit("SET_GROUPBUY_ORDER_CREATE_DATA", "")
},
setSeckillOrderCreateData({
commit,
state
}, data) {
commit("SET_SECKILL_ORDER_CREATE_DATA", data)
},
removeSeckillOrderCreateData({
commit
}) {
commit("SET_SECKILL_ORDER_CREATE_DATA", "")
},
setComboOrderCreateData({
commit,
state
}, data) {
commit("SET_COMBO_ORDER_CREATE_DATA", data)
},
removeComboOrderCreateData({
commit
}) {
commit("SET_COMBO_ORDER_CREATE_DATA", "")
}
}
export default {
namespaced: true,
state,
mutations,
actions
}

186
addon/pc/source/os/store/site.js Executable file
View File

@@ -0,0 +1,186 @@
import {
wapQrcode,
copyRight,
websiteInfo,
siteDefaultFiles
} from "@/api/website"
import {
addonisexit
} from "@/api/addon"
const state = {
// 网站商城二维码
siteQrCode: "",
copyRight: "",
siteInfo: {
logo: ''
},
defaultFiles: "",
addons: ""
}
const mutations = {
SET_SITE_QRCODE: (state, qrcode) => {
state.siteQrCode = qrcode
},
SET_COPY_RIGHT: (state, copyRight) => {
state.copyRight = copyRight
},
SET_SITE_INFO: (state, siteInfo) => {
state.siteInfo = siteInfo
},
SET_SITE_DEFAULT_FILES: (state, defaultFiles) => {
state.defaultFiles = defaultFiles
},
SET_ADDONS: (state, addons) => {
state.addons = addons
}
}
const actions = {
qrCodes({
commit,
state
}) {
// if (!state.siteQrCode)
return new Promise((resolve, reject) => {
return wapQrcode({})
.then(res => {
const {
code,
message,
data
} = res
if (code == 0) {
commit("SET_SITE_QRCODE", data)
resolve(res)
}
reject({})
})
.catch(_err => {
reject(_err)
})
})
},
copyRight({
commit,
state
}) {
// if (!state.copyRight) {
return new Promise((resolve, reject) => {
return copyRight({})
.then(res => {
const {
code,
message,
data
} = res
if (code == 0) {
commit("SET_COPY_RIGHT", data)
resolve(res)
}
reject({})
})
.catch(_err => {
reject(_err)
})
})
// }
},
siteInfo({
commit,
state
}) {
return new Promise((resolve, reject) => {
return websiteInfo({})
.then(res => {
if (res) {
const {
code,
message,
data
} = res
if (code == 0) {
commit("SET_SITE_INFO", data)
resolve(res)
}
}
reject({})
})
.catch(_err => {
reject(_err)
})
})
},
defaultFiles({
commit,
state
}) {
// if (!state.defaultFiles) {
return new Promise((resolve, reject) => {
return siteDefaultFiles({})
.then(res => {
if (res) {
const {
code,
message,
data
} = res
if (code == 0) {
commit("SET_SITE_DEFAULT_FILES", data)
resolve(res)
}
}
reject({})
})
.catch(_err => {
reject(_err)
})
})
// }
},
addons({
commit,
state
}) {
// if (!state.addons) {
return new Promise((resolve, reject) => {
return addonisexit({})
.then(res => {
if (res) {
const {
code,
message,
data
} = res
if (code == 0) {
commit("SET_ADDONS", data)
resolve(res)
}
}
reject({})
})
.catch(_err => {
reject(_err)
})
})
// }
}
}
export default {
namespaced: true,
state,
mutations,
actions
}

View File

@@ -0,0 +1,116 @@
import {
loginCode,
checkLogin,
wechatLogin
} from "@/api/wechat"
import {
setToken,
getToken
} from "@/utils/auth"
const state = {
token: getToken(),
autoLoginRange: 0,
member: ""
}
const mutations = {
SET_TOKEN: (state, token) => {
state.token = token
}
}
const actions = {
loginCode({
commit
}) {
return new Promise((resolve, reject) => {
return loginCode()
.then(res => {
const {
code,
message,
data
} = res
if (code == 0) {
resolve(res)
}
reject()
})
.catch(_err => {
reject(_err)
})
})
},
checkLogin({
commit
}, userInfo) {
const {
key
} = userInfo
return new Promise((resolve, reject) => {
return checkLogin(userInfo)
.then(res => {
const {
code,
message,
data
} = res
if (code == 0) {
commit("SET_TOKEN", data.token)
setToken(data.token, userInfo.autoLoginRange)
resolve(res)
}
reject()
})
.catch(_err => {
reject(_err)
})
})
},
wechatLogin({
commit
}, userInfo) {
const {
mobile,
key,
code,
captcha_id,
captcha_code
} = userInfo
return new Promise((resolve, reject) => {
return wechatLogin(userInfo)
.then(res => {
const {
code,
message,
data
} = res
if (code == 0) {
commit("SET_TOKEN", data.token)
setToken(data.token, userInfo.autoLoginRange)
resolve(res)
}
reject()
})
.catch(_err => {
reject(_err)
})
})
},
}
export default {
namespaced: true,
state,
mutations,
actions
}