You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

502 lines
18 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import App from './App'
import uView from './uni_modules/vk-uview-ui';
import G from './utils/common.js';
import jobJS from './utils/job.js';
import Ajax from './utils/ajax.js';
import wyyx from './utils/wyyx.js';
import apiInfo from './api/index.js';
import Vue from 'vue';
import gListJob from './components/list/jobApply.vue';
import gListYiJob from './components/list/job.vue';
import gPanelCardNum from './components/panel/numCard.vue';
import gPanelPosterCard from './components/panel/posterCard.vue';
import gPanelFormItem from './components/panel/formItem.vue';
import gPanelCardInfo from './components/panel/infoCard.vue';
import gListBill from './components/list/bill.vue';
import gPanelImage from './components/panel/defaultImage.vue';
import gFixed from './components/fixed.vue';
import gFilter from './pages/home/child/filter.vue';
import gPanelDetailItem from './components/panel/detailItem.vue';
import gPanelFormSlot from './components/panel/formSlot.vue';
import gPanelTime from './components/panel/time.vue';
import {
createSSRApp
} from 'vue'
export function createApp () {
const app = createSSRApp(App)
app.component('g-list-job', gListJob);
app.component('g-panel-card-info', gPanelCardInfo);
app.component('g-panel-form-item', gPanelFormItem);
app.component('g-panel-card-num', gPanelCardNum);
app.component('g-panel-poster-card', gPanelPosterCard);
app.component('g-panel-time', gPanelTime);
app.component('g-list-bill', gListBill);
app.component('g-yi-list-job', gListYiJob);
app.component('g-panel-image', gPanelImage);
app.component('g-panel-fixed', gFixed);
app.component('g-filter', gFilter);
app.component('g-panel-detail-item', gPanelDetailItem);
app.component('g-panel-form-slot', gPanelFormSlot);
app.config.globalProperties.api = apiInfo;
app.config.globalProperties.G = Object.assign(G, Ajax, jobJS, {
/*
* 检查token,获取最新登录者信息
*/
checkToken () {
return new Promise((resolve, reject) => {
G.Get('/checkToken', '', (res) => {
// console.log('checkToken', res);
uni.setStorageSync("apply-userinfo", res)
uni.setStorageSync("apply-uid", res.id)
uni.setStorageSync('apply-userinfo-copy', JSON.stringify(res));
uni.setStorageSync("apply-agencyId", res.user.agencyId); // 单独存储 -- 代理id方便获取
uni.setStorageSync("apply-supplierAccount", res.supplierAccount); // 单独存储 -- 是否是发单号,方便获取 0.不是发单号 1.是发单号
if (res.agencyId == uni.getStorageSync("miniApp-info").id) {
let _env = uni.getAccountInfoSync().miniProgram.envVersion;
G.Get(apiInfo.user_getUserQRCode, { env: _env }, (userqrcode) => {
uni.setStorageSync("user_qrcode", "https://daotian.matripe.com.cn" + userqrcode.qrcode); // 用户分享时候的二维码
});
G.Get(apiInfo.user_checkServicePermission, {}, (res) => {
// console.log('userqrcodeuserqrcode', res);
uni.setStorageSync("user_ServicePermission", res); // 用户是否是客服的判断
});
}
G.Get(
apiInfo.user_checkPermission,
{},
(rea) => {
// console.log('rearearearearearea', rea);
if (rea.hasPermission == true) {
uni.setStorageSync("HAS_PERMISSION", 1); // 1.有权限 2.无权限
} else {
uni.setStorageSync("HAS_PERMISSION", 2); // 1.有权限 2.无权限
}
if (rea.member == true) {
uni.setStorageSync("IS_MINIAPP_MEMBER", true); // 1.有权限 2.无权限
if (rea.isCreatorOrAdmin == true) {
uni.setStorageSync("IS_MINIAPP_ADMIN", true); // 1.有权限 2.无权限
} else {
uni.setStorageSync("IS_MINIAPP_ADMIN", false); // 1.有权限 2.无权限
}
} else {
uni.setStorageSync("IS_MINIAPP_MEMBER", false); // 1.有权限 2.无权限
}
resolve(res)
},
(err) => {
if (err) {
uni.setStorageSync("HAS_PERMISSION", 2);
resolve(res)
}
}
);
}, function fail (err) {
// console.log(err);
resolve(err)
})
})
},
getAgencyInfo () {
let that = this
G.Get("/yishoudan/agency/getInfo", {}, (res) => {
let obj = { ...res.agency, ...res.weixinConfig }
for (let key in obj) {
if (typeof obj[key] == "string" && obj[key].indexOf("http:") > -1) {
obj[key] = obj[key].replace("http:", "https:");
}
}
// console.log('objobjobjobj', obj);
uni.setStorageSync("miniApp-info", obj);
uni.setStorageSync("pgy-agency-id", res.agency.id);
uni.setStorageSync("ai-name", res.agency.aiRobotName);
uni.setStorageSync("ai-logo", res.agency.aiLogo);
// app.$forceUpdate();
});
},
getServiceQRCode () {
let that = this
G.Get("/yishoudan/agency/teamsman/customService", {}, (res) => {
uni.setStorageSync("CUSTOMSERVICE_INFO", res);
});
},
/*
* 新的检查token,获取最新登录者信息
*/
checkTokenNew () {
return new Promise((resolve, reject) => {
G.Get('/appLoginByToken', '', (res) => {
// console.log('res', res);
uni.setStorageSync("apply-userinfo", res)
uni.setStorageSync('apply-userinfo-copy', JSON.stringify(res));
uni.setStorageSync("apply-agencyId", res.user.agencyId); // 单独存储 -- 代理id方便获取
uni.setStorageSync("apply-supplierAccount", res.supplierAccount); // 单独存储 -- 是否是发单号,方便获取 0.不是发单号 1.是发单号
G.Get(
apiInfo.user_checkPermission,
{},
(rea) => {
// console.log('rearearearearearea', rea);
if (rea.hasPermission == true) {
uni.setStorageSync("HAS_PERMISSION", 1); // 1.有权限 2.无权限
} else {
uni.setStorageSync("HAS_PERMISSION", 2); // 1.有权限 2.无权限
}
if (rea.member == true) {
uni.setStorageSync("IS_MINIAPP_MEMBER", true); // 1.有权限 2.无权限
if (rea.isCreatorOrAdmin == true) {
uni.setStorageSync("IS_MINIAPP_ADMIN", true); // 1.有权限 2.无权限
} else {
uni.setStorageSync("IS_MINIAPP_ADMIN", false); // 1.有权限 2.无权限
}
} else {
uni.setStorageSync("IS_MINIAPP_MEMBER", false); // 1.有权限 2.无权限
}
resolve(res)
},
(err) => {
if (err) {
uni.setStorageSync("HAS_PERMISSION", 2);
resolve(res)
}
}
);
})
})
},
getUUID () {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
return (c === 'x' ? (Math.random() * 16) | 0 : 'r&0x3' | '0x8').toString(16)
})
},
/**
* 上传到oss
*/
uploadImgToOss (callback = () => { }, customDir = '', type = 'default', $num = 1, $sourceType = ['album', 'camera']) {
var that = this;
G.uploadImage($num, (imgRes) => {
uni.showLoading({
title: '上传中...',
})
// console.log('imgRes', imgRes);
let imgPath = JSON.parse(imgRes)[0]
// console.log('imgPath', imgPath);
G.Get(apiInfo.getOssInfo, { prefix: customDir }, ({ data }) => {
// console.log('uploadImgToOssresresresres', data);
const { policy, signature, accessid, dir, host } = data;
let key = dir + that.getUUID()
const formData = {
"key": key + "_${filename}",
"policy": policy,
"OSSAccessKeyId": accessid,
signature,
"success_action_status": "200",
};
uni.uploadFile({
url: host,
filePath: imgPath,
name: "file",
formData: formData,
success: function (res) {
if (res.errMsg = "uploadFile:ok") {
const imgUrl = `${host}/${key}_${imgPath.split('/').pop()}`;
callback({
status: '上传成功',
image: imgUrl
});
}
// console.log('resresresresresresres', res);
},
fail: function (res) { },
});
})
})
},
/* 上传图片
*/
uploadImg (callback = () => { }, type = 'default', $num = 1, $sourceType = ['album', 'camera']) {
G.uploadImage($num, (imgRes) => {
uni.showLoading({
title: '上传中...',
})
uni.uploadFile({
url: G.ajaxUrl + apiInfo.uploadImage,
method: "post",
filePath: JSON.parse(imgRes)[0],
name: "uploadFile",
header: Object.assign({
Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: function (res) {
// console.log('resresresresresresres', res);
let imageStr = ''
imageStr = JSON.parse(res.data).data;
if (type == 'idcard') {
// 调用身份证识别
uni.uploadFile({
url: G.ajaxUrl + apiInfo.getIDcard,
filePath: JSON.parse(imgRes)[0],
name: 'uploadFile',
header: Object.assign({
Authorization: 'Bearer ' + uni
.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: (uploadFileRes) => {
let cardData = {
status: '上传成功',
image: imageStr,
info: JSON.parse(uploadFileRes.data)
.data
}
uni.hideLoading()
callback(cardData);
}
});
} else {
uni.hideLoading()
callback({
status: '上传成功',
image: imageStr
});
}
},
fail: function (res) {
// console.log('fail', res);
},
});
}, $sourceType);
},
/* 通过相机上传图片
*/
uploadImgByCamera (callback = () => { }, type = 'default', $num = 1, $sourceType = ['camera']) {
G.uploadImage($num, (imgRes) => {
uni.showLoading({
title: '上传中...',
})
uni.uploadFile({
url: G.ajaxUrl + apiInfo.uploadImage,
method: "post",
filePath: JSON.parse(imgRes)[0],
name: "uploadFile",
header: Object.assign({
Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: function (res) {
// console.log('resresresresresresres', res);
let imageStr = ''
imageStr = JSON.parse(res.data).data;
if (type == 'idcard') {
// 调用身份证识别
uni.uploadFile({
url: G.ajaxUrl + apiInfo.getIDcard,
filePath: JSON.parse(imgRes)[0],
name: 'uploadFile',
header: Object.assign({
Authorization: 'Bearer ' + uni
.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: (uploadFileRes) => {
let cardData = {
status: '上传成功',
image: imageStr,
info: JSON.parse(uploadFileRes.data)
.data
}
uni.hideLoading()
callback(cardData);
}
});
} else {
uni.hideLoading()
callback({
status: '上传成功',
image: imageStr
});
}
},
fail: function (res) {
// console.log('fail', res);
},
});
}, $sourceType);
},
/* 通过图库上传图片
*/
uploadImgByAlbum (callback = () => { }, type = 'default', $num = 1, $sourceType = ['album']) {
G.uploadImage($num, (imgRes) => {
uni.showLoading({
title: '上传中...',
})
uni.uploadFile({
url: G.ajaxUrl + apiInfo.uploadImage,
method: "post",
filePath: JSON.parse(imgRes)[0],
name: "uploadFile",
header: Object.assign({
Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: function (res) {
// console.log('resresresresresresres', res);
let imageStr = ''
imageStr = JSON.parse(res.data).data;
if (type == 'idcard') {
// 调用身份证识别
uni.uploadFile({
url: G.ajaxUrl + apiInfo.getIDcard,
filePath: JSON.parse(imgRes)[0],
name: 'uploadFile',
header: Object.assign({
Authorization: 'Bearer ' + uni
.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: (uploadFileRes) => {
let cardData = {
status: '上传成功',
image: imageStr,
info: JSON.parse(uploadFileRes.data)
.data
}
uni.hideLoading()
callback(cardData);
}
});
} else {
uni.hideLoading()
callback({
status: '上传成功',
image: imageStr
});
}
},
fail: function (res) {
// console.log('fail', res);
},
});
}, $sourceType);
},
// 头像上传
uploadFile ($file, callback = () => { }) {
let that = this;
uni.uploadFile({
url: G.ajaxUrl + '/user/changeUserImgsrc',
filePath: $file,
name: 'uploadFile',
header: Object.assign({
Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: (uploadFileRes) => {
callback(JSON.parse(uploadFileRes.data).data.url);
}
});
},
/**
* 上传临时文件(不需要选择图库)
*/
uploadTmpImg ($fileName, callback = () => { }) {
uni.uploadFile({
url: G.ajaxUrl + apiInfo.uploadImage,
method: "post",
filePath: $fileName,
name: "uploadFile",
header: Object.assign({
Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: function (res) {
let imageStr = ''
imageStr = JSON.parse(res.data).data;
callback({
status: '上传成功',
image: imageStr
});
},
fail: function (res) { },
});
},
/**
* 上传图片前需要裁剪的
*/
cropBeforeUpload (options) {
G.uploadImage(1, (res) => {
uni.cropImage({
src: JSON.parse(res)[0],
cropScale: options.cropScale,
success: (res) => {
G.uploadTmpImg(res.tempFilePath, (res) => {
options.success(res);
});
},
fail: (err) => {
options.fail(err);
},
});
});
},
/* 上传媒体文件
*/
uploadMedia (callback = () => { }, type = 'default', $num = 9) {
G.uploadM($num, (imgRes) => {
uni.showLoading({
title: '上传中...',
})
// console.log('imgRes', imgRes)
let args = Array.from(JSON.parse(imgRes));
// console.log('args', args)
// return
let imgList = []
args.forEach((item, index) => {
// console.log('item,', item)
uni.uploadFile({
url: G.ajaxUrl + apiInfo.uploadImage,
method: "post",
filePath: item.tempFilePath,
name: "uploadFile",
header: Object.assign({
Authorization: 'Bearer ' + uni.getStorageSync(
"apply-token")
}, Ajax.setPublicParams()),
formData: Ajax.setPublicParams(),
success: function (res) {
// console.log('uploadFileRes', res)
imgList.push(JSON.parse(res.data).data)
if (imgList.length == args.length) {
callback({
status: '上传成功',
imgList: imgList
});
}
},
fail: function (res) {
// console.log('res', res)
},
});
})
});
}
});
app.config.globalProperties.G.getAgencyInfo()
app.config.globalProperties.F = wyyx;
app.use(uView)
return {
app
}
}