beelink/src/api/index.ts
2020-10-15 20:12:21 +08:00

419 lines
8.7 KiB
TypeScript

import router from '@/router';
import store from '@/store';
import { LiveList, LoginData, UserInfo, VideoInfo } from '@/types';
import { saveValue } from '@/utils/common';
import { message } from 'ant-design-vue';
import { del, get, post, put, setToken } from './base'
/**
* 用户名密码登录
* @param phone 手机号
* @param password 密码
*/
export async function loginpass(phone: string, password: string){
const res = await post<LoginData>("login",{type: 2,username: phone, password: password});
console.log(res.code)
if(res.code == 1){
message.error(res.msg)
}else{
console.log(res.data)
if(!saveValue("token", res.data.api_token) && !saveValue("memberid", res.data.memberid) ){
message.error("存储错误, 请允许网页使用本地存储!")
}else{
setToken();
store.commit("login", true);
store.dispatch("setUserInfo");
router.push("/mine/archives")
}
}
}
/**
* 用户头像和用户名字
*/
export async function userinfo(){
const user = await get<UserInfo>('personalInfo');
// console.log(user.data.img)
if(user.code == 1001){
router.push("/")
return '未登录';
}
return {
head: user.data.img,
username: user.data.name,
language: user.data.language,
currency: user.data.currency,
zoneStr: user.data.zoneStr,
memberid: user.data.memberid,
country: user.data.country,
live: user.data.live,
mtongue: user.data.mtongue,
tlanguage: user.data.tlanguage,
willsay: user.data.willsay,
interest: user.data.interest,
mobile: user.data.mobile,
email: user.data.email,
birthday: user.data.birthday,
video: user.data.video,
desc: user.data.desc,
money: user.data.money
}
}
/**
* 获取用户绑定银行卡列表
*/
interface Wallect {
wallectid: number;
memberid: number;
type: number;
account: string;
mname: string;
bankcode: string;
bankname: string;
deleted_at: null;
created_at: string;
updated_at: string;
typeName: string;
}
export async function getwallect(){
const res = await get<Array<Wallect>>('wallect')
console.log(res)
return res.data
}
/**
* 订阅者列表
*/
interface Teacherliked {
memberid: number;
name: string;
img: string;
live: string;
birthday: string;
mtongue: string;
interest: string;
}
export async function getteacherliked(){
const res = await get<Array<Teacherliked>>('teacherliked');
console.log(res)
}
/**
* 视频列表
*/
interface VideoList{
videoid: number;
memberid: number;
title: string;
img: string;
fileid: string;
fileurl: string;
fileduration: string;
status: number;
desc: string;
deleted_at: null;
created_at: string;
updated_at: string;
statusname: string;
}
export async function getvideolist(): Promise<VideoList[]> {
const res = await get<Array<VideoList>>('video')
console.log(res)
return res.data
}
/**
* 直播列表
*/
export async function getlivelist(data?:any):Promise<LiveList[]> {
const res = await get<Array<LiveList>>('live',data);
// console.log(res);
return res.data
}
/**
* 列表统计
*/
interface StatisticList{
liveInfo: any;
videoInfo: any;
studentInfo: any;
}
export async function getstatisticlist() {
const res = await get<StatisticList>('statistics');
// console.log(res)
return {
liveInfo: res.data.liveInfo,
videoInfo:res.data.videoInfo,
studentInfo:res.data.studentInfo
}
}
/**
* 发布直播
*/
interface Liveaddrule{
code: number,
msg: string
}
export async function liveadd(data:any) {
const res = await post<Liveaddrule>('live',data);
console.log(res)
}
/**
* 发布视频
*/
export async function videoadd(data:any) {
const res=await post<Liveaddrule>('video',data)
if(res.code==0){
message.success("发布成功")
}
}
/**
* 视频详情
*/
interface VideoDetail{
videoid: number;
memberid: number;
title: string;
img: string;
fileid: string;
fileurl: string;
fileduration: string;
status: number;
desc: string;
deleted_at: null;
created_at: string;
updated_at: string;
share:number,
watch:number
}
export async function videodetail(data?:any,ifupdate?:number) {
const res=await get<VideoDetail>('video/'+data)
if(ifupdate){
console.log(111)
return{
title: res.data.title,
img: res.data.img,
fileid: res.data.fileid,
fileurl: res.data.fileurl,
fileduration: res.data.fileduration,
desc:res.data.desc,
video:[res.data.fileurl],
}
}else{
return {
videoid: res.data.videoid,
memberid: res.data.memberid,
title: res.data.title,
img: res.data.img,
fileid: res.data.fileid,
fileurl: res.data.fileurl,
fileduration: res.data.fileduration,
status: res.data.status,
desc: res.data.desc,
deleted_at: res.data.deleted_at,
created_at: res.data.created_at,
updated_at: res.data.updated_at,
watch:res.data.watch,
share:res.data.share
}
}
}
/**
* 删除视频
*/
export async function videodel(data:any) {
const res = await del<Liveaddrule>('video/'+data);
if(res.code==0){
message.success("删除成功")
}
console.log(res)
}
/**
* 新增账户
*/
export async function accountadd(data?:any) {
const res = await post<Liveaddrule>('wallect',data);
if(res.code==0){
message.success("新增成功")
}
console.log(res)
}
interface SaleInfo{
total:number,
accountid:number,
memberid:number,
sn:string,
type:number,
typename:string,
money:string,
source:number,
remark:string,
deleted_at:string,
created_at:string,
updated_at:string,
basemoney:string
}
/**
* 交易明细
* @param data
*/
export async function saleinfo(data?:any){
const res= await get<Array<SaleInfo>>('account',data)
console.log(res)
return res.data
}
/**
* 申请提现
*/
export async function cashout(data?:any){
const res = await post<Liveaddrule>('withdrawal',data);
if(res.code==0){
message.success("新增成功")
}
}
/**
* 账户详情
*/
interface AccountInfo{
wallectid:number,
typeid:number,
type:number,
account:number,
mname:string,
bankcode:string,
bankname:string
}
export async function getaccountinfo(data?: any){
const res=await get<AccountInfo>('wallect/'+data)
console.log(res,2333)
return {
accountid:res.data.wallectid,
type:res.data.type,
account:res.data.account,
mname:res.data.mname,
bankcode:res.data.bankcode,
bankname:res.data.bankname
}
}
/**
* 账户编辑
*/
export async function editaccount(data?:any){
const res=await put<Liveaddrule>('wallect/'+data);
if(res.code==0){
message.success("修改成功")
}
}
/**
* 删除账户
*/
export async function deleteaccount(data:any) {
const res = await del<Liveaddrule>('wallect/'+data);
if(res.code==0){
message.success("删除成功")
}
console.log(res)
}
/**
* 发送验证码
* @param phone 手机号
* @param type 国外1 国内0
*/
interface SendSms{
code: number;
msg: string;
}
export async function sendsms(phone: string, type: number): Promise<boolean>{
const res = await post<SendSms>("SendSms", {phone, type});
console.log(res);
if(res.code == 0){
message.success(res.msg);
return true;
}else{
message.error(res.msg);
return false;
}
}
/**
* 获取国家与语言数据
*/
interface Countries{
id: number;
name: string;
country_code: string;
}
interface Willsay{
languageid: number;
name: string
}
export async function getarchives(): Promise<[Countries[],Willsay[]]>{
return [(await get<Countries[]>("countries")).data, (await get<Willsay[]>("willsay")).data];
}
/**
* 客户端语言
*/
interface Language {
dictionaryid: number;
name: string;
alias: string;
code :string;
position: number;
publish: number;
value: string;
deleted_at: null;
created_at: string;
updated_at: string;
}
export async function getlanguages(): Promise<Language[]>{
return (await get<Language[]>("languages")).data;
}
/**
* 修改我的档案
*/
export async function putmember(data: unknown): Promise<Liveaddrule>{
return (await put<Liveaddrule>(`member/${store.state.userinfo.memberid}`, data) )
}