初始上传
This commit is contained in:
16
addon/pc/source/os/utils/auth.js
Executable file
16
addon/pc/source/os/utils/auth.js
Executable file
@@ -0,0 +1,16 @@
|
||||
import Cookies from 'js-cookie'
|
||||
|
||||
const TokenKey = 'SDrxEA%_tWW6ezd3'
|
||||
|
||||
export function getToken() {
|
||||
return Cookies.get(TokenKey)
|
||||
}
|
||||
|
||||
export function setToken(token, expires = 0) {
|
||||
if (expires) return Cookies.set(TokenKey, token, {expires})
|
||||
return Cookies.set(TokenKey, token)
|
||||
}
|
||||
|
||||
export function removeToken() {
|
||||
return Cookies.remove(TokenKey)
|
||||
}
|
||||
78
addon/pc/source/os/utils/emjoy.js
Executable file
78
addon/pc/source/os/utils/emjoy.js
Executable file
@@ -0,0 +1,78 @@
|
||||
export default {
|
||||
emjoyList: {
|
||||
"[emjoy_01]": 'public/static/img/emojy/emjoy_01.gif',
|
||||
"[emjoy_02]": 'public/static/img/emojy/emjoy_02.gif',
|
||||
"[emjoy_03]": 'public/static/img/emojy/emjoy_03.gif',
|
||||
"[emjoy_04]": 'public/static/img/emojy/emjoy_04.gif',
|
||||
"[emjoy_05]": 'public/static/img/emojy/emjoy_05.gif',
|
||||
"[emjoy_06]": 'public/static/img/emojy/emjoy_06.gif',
|
||||
"[emjoy_07]": 'public/static/img/emojy/emjoy_07.gif',
|
||||
"[emjoy_08]": 'public/static/img/emojy/emjoy_08.gif',
|
||||
"[emjoy_09]": 'public/static/img/emojy/emjoy_09.gif',
|
||||
|
||||
"[emjoy_10]": 'public/static/img/emojy/emjoy_10.gif',
|
||||
"[emjoy_11]": 'public/static/img/emojy/emjoy_11.gif',
|
||||
"[emjoy_12]": 'public/static/img/emojy/emjoy_12.gif',
|
||||
"[emjoy_13]": 'public/static/img/emojy/emjoy_13.gif',
|
||||
"[emjoy_14]": 'public/static/img/emojy/emjoy_14.gif',
|
||||
"[emjoy_15]": 'public/static/img/emojy/emjoy_15.gif',
|
||||
"[emjoy_16]": 'public/static/img/emojy/emjoy_16.gif',
|
||||
"[emjoy_17]": 'public/static/img/emojy/emjoy_17.gif',
|
||||
"[emjoy_18]": 'public/static/img/emojy/emjoy_18.gif',
|
||||
"[emjoy_19]": 'public/static/img/emojy/emjoy_19.gif',
|
||||
|
||||
"[emjoy_20]": 'public/static/img/emojy/emjoy_20.gif',
|
||||
"[emjoy_21]": 'public/static/img/emojy/emjoy_21.gif',
|
||||
"[emjoy_22]": 'public/static/img/emojy/emjoy_22.gif',
|
||||
"[emjoy_23]": 'public/static/img/emojy/emjoy_23.gif',
|
||||
"[emjoy_24]": 'public/static/img/emojy/emjoy_24.gif',
|
||||
"[emjoy_25]": 'public/static/img/emojy/emjoy_25.gif',
|
||||
"[emjoy_26]": 'public/static/img/emojy/emjoy_26.gif',
|
||||
"[emjoy_27]": 'public/static/img/emojy/emjoy_27.gif',
|
||||
"[emjoy_28]": 'public/static/img/emojy/emjoy_28.gif',
|
||||
"[emjoy_29]": 'public/static/img/emojy/emjoy_29.gif',
|
||||
|
||||
"[emjoy_30]": 'public/static/img/emojy/emjoy_30.gif',
|
||||
"[emjoy_31]": 'public/static/img/emojy/emjoy_31.gif',
|
||||
"[emjoy_32]": 'public/static/img/emojy/emjoy_32.gif',
|
||||
"[emjoy_33]": 'public/static/img/emojy/emjoy_33.gif',
|
||||
"[emjoy_34]": 'public/static/img/emojy/emjoy_34.gif',
|
||||
"[emjoy_35]": 'public/static/img/emojy/emjoy_35.gif',
|
||||
"[emjoy_36]": 'public/static/img/emojy/emjoy_36.gif',
|
||||
"[emjoy_37]": 'public/static/img/emojy/emjoy_37.gif',
|
||||
"[emjoy_38]": 'public/static/img/emojy/emjoy_38.gif',
|
||||
"[emjoy_39]": 'public/static/img/emojy/emjoy_39.gif',
|
||||
|
||||
"[emjoy_40]": 'public/static/img/emojy/emjoy_40.gif',
|
||||
"[emjoy_41]": 'public/static/img/emojy/emjoy_41.gif',
|
||||
"[emjoy_42]": 'public/static/img/emojy/emjoy_42.gif',
|
||||
"[emjoy_43]": 'public/static/img/emojy/emjoy_43.gif',
|
||||
"[emjoy_44]": 'public/static/img/emojy/emjoy_44.gif',
|
||||
"[emjoy_45]": 'public/static/img/emojy/emjoy_45.gif',
|
||||
"[emjoy_46]": 'public/static/img/emojy/emjoy_46.gif',
|
||||
"[emjoy_47]": 'public/static/img/emojy/emjoy_47.gif',
|
||||
},
|
||||
stringToEmjoy(value) {
|
||||
if (!value) return;
|
||||
let string = value; // 需要把[握手]和[微笑]匹配出来
|
||||
let reg = new RegExp('\\[emjoy_(.+?)\\]', 'g');
|
||||
let emjoyString = string.replace(reg, v => {
|
||||
let emjoy = '';
|
||||
for (let index in this.emjoyList) {
|
||||
if (v == index) {
|
||||
// emjoy = emjoyList[index]
|
||||
let img = util.img(this.emjoyList[index])
|
||||
emjoy = "<img style='margin:0 3px;' src='" + img + "'/>"
|
||||
}
|
||||
}
|
||||
|
||||
if (emjoy) {
|
||||
return emjoy;
|
||||
} else {
|
||||
return v
|
||||
}
|
||||
|
||||
});
|
||||
return emjoyString;
|
||||
}
|
||||
}
|
||||
123
addon/pc/source/os/utils/http.js
Executable file
123
addon/pc/source/os/utils/http.js
Executable file
@@ -0,0 +1,123 @@
|
||||
import Config from "@/plugins/config.js"
|
||||
import axios from "axios"
|
||||
import {
|
||||
getToken
|
||||
} from "./auth"
|
||||
|
||||
axios.defaults.baseURL = Config.baseUrl
|
||||
axios.defaults.headers = {
|
||||
"X-Requested-With": "XMLHttpRequest",
|
||||
"content-type": "application/json"
|
||||
}
|
||||
axios.defaults.responseType = "json"
|
||||
axios.defaults.timeout = 60 * 1000
|
||||
|
||||
/**
|
||||
* http单个请求
|
||||
* @param {object} params 请求参数
|
||||
* @param {integer} successCode 接口正常返回结果标识
|
||||
*
|
||||
* @returns Promise
|
||||
*/
|
||||
export default function request(params, successCode = 0, method = "POST") {
|
||||
|
||||
var url = params.url // 请求路径
|
||||
var data = {
|
||||
app_type: "pc",
|
||||
app_type_name: "PC"
|
||||
}
|
||||
|
||||
var token = getToken()
|
||||
if (token) data.token = token
|
||||
|
||||
// 参数
|
||||
if (params.data != undefined) Object.assign(data, params.data)
|
||||
|
||||
//异步
|
||||
return axios({
|
||||
url,
|
||||
method,
|
||||
data
|
||||
})
|
||||
.then(res => {
|
||||
const {
|
||||
code
|
||||
} = res.data || {}
|
||||
if (process.client && code == -3 && window.$nuxt.$route.name != 'close') {
|
||||
window.$nuxt.$router.push('/close');
|
||||
return;
|
||||
}
|
||||
if (code == successCode) return res.data
|
||||
else return Promise.reject(res.data)
|
||||
})
|
||||
.catch(error => {
|
||||
const {
|
||||
error_code
|
||||
} = error
|
||||
|
||||
if (error_code === "TOKEN_ERROR") {
|
||||
error.message = '登录错误'
|
||||
vue.$store.dispatch("member/remove_token")
|
||||
if (params.forceLogin) {
|
||||
vue.$router.push(`/auth/login?redirect=${encodeURIComponent(vue.$router.history.current.fullPath)}`)
|
||||
}
|
||||
}
|
||||
|
||||
return Promise.reject(error)
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 并发请求
|
||||
* @param {array} params 并发请求参数数组,传入数组中对象的顺序要匹配 data 中 url
|
||||
* @var 该方法为并发请求,数据会在全部请求完之后才返回
|
||||
* 该方法不建议使用。
|
||||
*/
|
||||
export function conRequest(params) {
|
||||
if (Object.prototype.toString.call(params) != "[object Array]") {
|
||||
return Promise.reject({
|
||||
code: -1,
|
||||
msg: "参数必须为数组"
|
||||
})
|
||||
}
|
||||
|
||||
//同步并发
|
||||
var quest = []
|
||||
for (var i = 0; i < url.length; i++) {
|
||||
quest.push(
|
||||
axios({
|
||||
url: params[i].url,
|
||||
method: method,
|
||||
params: params[i].data
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
axios
|
||||
.all(quest)
|
||||
.then(
|
||||
axios.spread(() => {
|
||||
// 请求全部完成后执行
|
||||
var res = []
|
||||
for (let i = 0; i < arguments.length; i++) {
|
||||
res.push(arguments[i].data)
|
||||
}
|
||||
|
||||
return res
|
||||
})
|
||||
)
|
||||
.catch(error => {
|
||||
const {
|
||||
error_code
|
||||
} = error
|
||||
if (error_code === "TOKEN_ERROR") {
|
||||
error.message = '登录错误'
|
||||
vue.$store.dispatch("member/remove_token")
|
||||
if (params.forceLogin) {
|
||||
vue.$router.push(`/auth/login?redirect=${encodeURIComponent(vue.$router.history.current.fullPath)}`)
|
||||
}
|
||||
}
|
||||
|
||||
return Promise.reject(error)
|
||||
})
|
||||
}
|
||||
97
addon/pc/source/os/utils/lang.js
Executable file
97
addon/pc/source/os/utils/lang.js
Executable file
@@ -0,0 +1,97 @@
|
||||
const langList = ["zh-cn", "en-us"]
|
||||
|
||||
var locale = "zh-cn" //设置语言,uni.getStorageSync('lang') ||
|
||||
|
||||
export default {
|
||||
langList: ["zh-cn", "en-us"],
|
||||
/**
|
||||
* 解析多语言
|
||||
* @param {Object} field 字段
|
||||
* @param {Object} route 路由对象
|
||||
*/
|
||||
lang(field, route) {
|
||||
let name = "",
|
||||
module = ""
|
||||
if (route) {
|
||||
name = route.name
|
||||
module = route.meta.module
|
||||
if (route.path == "/" || route.name == "index") {
|
||||
name = "index"
|
||||
module = "index"
|
||||
}
|
||||
} else {
|
||||
name = vue.$route.name
|
||||
module = vue.$route.meta.module
|
||||
}
|
||||
|
||||
if (!name || !module) return
|
||||
|
||||
var value = ""
|
||||
try {
|
||||
// 公共语言包
|
||||
var lang = require("../lang/" + locale + "/common.js").lang
|
||||
|
||||
// 当前页面语言包
|
||||
let currentViewLang = require("../lang/" + locale + "/" + module + "/" + name + ".js").lang
|
||||
|
||||
Object.assign(lang, currentViewLang)
|
||||
|
||||
var arr = field.split(".")
|
||||
if (arr.length > 1) {
|
||||
for (let i in arr) {
|
||||
var next = parseInt(i) + 1
|
||||
if (next < arr.length) {
|
||||
value = lang[arr[i]][arr[next]]
|
||||
}
|
||||
}
|
||||
} else {
|
||||
value = lang[field]
|
||||
}
|
||||
} catch (e) {
|
||||
value = field
|
||||
}
|
||||
|
||||
if (arguments.length > 1) {
|
||||
//有参数,需要替换
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
value = value.replace("{" + (i - 1) + "}", arguments[i])
|
||||
}
|
||||
}
|
||||
|
||||
if (value == undefined || (value == "title" && field == "title")) value = "" // field
|
||||
return value
|
||||
},
|
||||
//切换语言
|
||||
change(value) {
|
||||
if (!vue) return
|
||||
|
||||
vue.$store.commit("lang", value)
|
||||
locale = vue.$store.state.lang //设置语言
|
||||
this.refresh()
|
||||
},
|
||||
//刷新标题
|
||||
refresh(route) {
|
||||
window.document.title = this.lang("title", route)
|
||||
},
|
||||
// 获取语言包列表
|
||||
list() {
|
||||
var list = []
|
||||
try {
|
||||
//公共语言包
|
||||
for (var i = 0; i < langList.length; i++) {
|
||||
let item = require("../lang/" + langList[i] + "/common.js").lang
|
||||
list.push({
|
||||
name: item.common.name,
|
||||
value: langList[i]
|
||||
})
|
||||
}
|
||||
} catch (e) {
|
||||
// "没有找到语言包:", '../../lang/' + locale + '/common.js'
|
||||
}
|
||||
return list
|
||||
},
|
||||
// 获取字段语言展示
|
||||
getLangField(field, route) {
|
||||
return this.lang(field, route) || ""
|
||||
}
|
||||
}
|
||||
151
addon/pc/source/os/utils/orderMethod.js
Executable file
151
addon/pc/source/os/utils/orderMethod.js
Executable file
@@ -0,0 +1,151 @@
|
||||
import {
|
||||
apiOrderPay,
|
||||
apiOrderClose,
|
||||
apiOrderTakedelivery,
|
||||
apiMemberVirtualTakeDelivery,
|
||||
apiOrderDelete
|
||||
} from "@/api/order/order"
|
||||
|
||||
export default {
|
||||
methods: {
|
||||
/**
|
||||
* 订单支付
|
||||
* @param orderData
|
||||
*/
|
||||
orderPay(orderData) {
|
||||
if (orderData.adjust_money == 0) {
|
||||
apiOrderPay({
|
||||
order_ids: orderData.order_id
|
||||
}).then(res => {
|
||||
if (res.code >= 0) {
|
||||
this.$router.push({
|
||||
path: "/pay",
|
||||
query: {
|
||||
code: res.data
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
message: res.message,
|
||||
type: "warning"
|
||||
})
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$confirm("商家已将支付金额调整为" + orderData.pay_money + "元,是否继续支付?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
apiOrderPay({
|
||||
order_ids: orderData.order_id
|
||||
}).then(res => {
|
||||
if (res.code >= 0) {
|
||||
this.$router.push({
|
||||
path: "/pay",
|
||||
query: {
|
||||
code: res.data
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message({
|
||||
message: res.message,
|
||||
type: "warning"
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 关闭订单
|
||||
* @param order_id
|
||||
* @param callback
|
||||
*/
|
||||
orderClose(order_id, callback) {
|
||||
this.$confirm("您确定要关闭该订单吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
apiOrderClose({
|
||||
order_id
|
||||
}).then(res => {
|
||||
this.$message({
|
||||
message: "订单关闭成功",
|
||||
type: "success"
|
||||
})
|
||||
typeof callback == "function" && callback()
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 订单收货
|
||||
* @param {Object} order_id
|
||||
* @param callback
|
||||
*/
|
||||
orderDelivery(order_id, callback) {
|
||||
this.$confirm("您确定已经收到货物了吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
apiOrderTakedelivery({
|
||||
order_id
|
||||
}).then(res => {
|
||||
this.$message({
|
||||
message: "订单收货成功",
|
||||
type: "success"
|
||||
})
|
||||
typeof callback == "function" && callback()
|
||||
})
|
||||
.catch(res => {
|
||||
this.$message({
|
||||
message: res.message,
|
||||
type: "warning"
|
||||
})
|
||||
typeof callback == "function" && callback()
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 订单虚拟商品收货
|
||||
* @param {Object} order_id
|
||||
* @param {Object} callback
|
||||
*/
|
||||
orderVirtualDelivery(order_id, callback) {
|
||||
this.$confirm("您确定要进行收货吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
apiMemberVirtualTakeDelivery({
|
||||
order_id
|
||||
}).then(res => {
|
||||
this.$message({
|
||||
message: "订单收货成功",
|
||||
type: "success"
|
||||
})
|
||||
typeof callback == "function" && callback()
|
||||
})
|
||||
})
|
||||
},
|
||||
orderDelete(order_id, callback) {
|
||||
this.$confirm("您确定要删除该订单吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
apiOrderDelete({
|
||||
order_id
|
||||
}).then(res => {
|
||||
this.$message({
|
||||
message: "订单删除成功",
|
||||
type: "success"
|
||||
})
|
||||
typeof callback == "function" && callback()
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user