初始代码
This commit is contained in:
33
utils/define.js
Normal file
33
utils/define.js
Normal file
@@ -0,0 +1,33 @@
|
||||
/* process.env.NODE_ENV设置生产环境模式 */
|
||||
// #ifndef MP
|
||||
const baseURL = process.env.NODE_ENV === "production" ? "https://h5-quickdev.yunzhupaas.cn" : "http://localhost:30000"
|
||||
const webSocketUrl = process.env.NODE_ENV === "production" ? "wss://h5-quickdev.yunzhupaas.cn/websocket" :
|
||||
"ws://localhost:30000/api/message/websocket"
|
||||
const report = process.env.NODE_ENV === 'production' ? 'https://h5-quickdev.yunzhupaas.cn/api/Report' : 'http://localhost:8200'
|
||||
const flow = process.env.NODE_ENV === 'production' ? 'https://h5-quickdev.yunzhupaas.cn/api/Flow' : 'http://localhost:3100'
|
||||
// #endif
|
||||
|
||||
// #ifdef MP
|
||||
// const baseURL = "https://demo.yunzhupaas.com"
|
||||
// const webSocketUrl = "wss://demo.yunzhupaas.com/websocket"
|
||||
// const report = 'https://demo.yunzhupaas.com/api/Report/'
|
||||
// const flow = 'https://demo.yunzhupaas.com/api/Flow/'
|
||||
const baseURL = "https://h5-quickdev.yunzhupaas.cn"
|
||||
const webSocketUrl = "wss://h5-quickdev.yunzhupaas.cn/websocket"
|
||||
const report = 'https://h5-quickdev.yunzhupaas.cn/api/Report/'
|
||||
const flow = 'https://h5-quickdev.yunzhupaas.cn/api/Flow/'
|
||||
// #endif
|
||||
|
||||
const define = {
|
||||
copyright: "Copyright @ 2025 零和万物科技有限公司版权所有",
|
||||
sysVersion: "V5.2",
|
||||
baseURL, // 接口前缀
|
||||
report,
|
||||
flow,
|
||||
webSocketUrl,
|
||||
comUploadUrl: baseURL + '/api/file/Uploader/',
|
||||
timeout: 1000000,
|
||||
aMapWebKey: '09485f01587712b3c04e5a9abf324237',
|
||||
cipherKey: 'EY8WePvjM5GGwQzn', // 加密key
|
||||
}
|
||||
export default define
|
||||
21
utils/refreshCurrent.js
Normal file
21
utils/refreshCurrent.js
Normal file
@@ -0,0 +1,21 @@
|
||||
// 将对象序列化为查询字符串
|
||||
function stringifyQuery(obj) {
|
||||
let ret = [];
|
||||
for (let key in obj) {
|
||||
if (obj.hasOwnProperty(key)) {
|
||||
ret.push(encodeURIComponent(key) + '=' + encodeURIComponent(obj[key]));
|
||||
}
|
||||
}
|
||||
return ret.join('&');
|
||||
}
|
||||
export function refreshCurrentPage() {
|
||||
// 获取当前页面的路径
|
||||
let currentPage = getCurrentPages().pop();
|
||||
if (currentPage) {
|
||||
// 重启当前页面
|
||||
uni.reLaunch({
|
||||
url: `/${currentPage.route}` + (currentPage.options ? `?${stringifyQuery(currentPage.options)}` :
|
||||
'')
|
||||
});
|
||||
}
|
||||
}
|
||||
103
utils/request.js
Normal file
103
utils/request.js
Normal file
@@ -0,0 +1,103 @@
|
||||
import define from './define'
|
||||
import {
|
||||
useLocale
|
||||
} from '@/locale/useLocale';
|
||||
|
||||
const {
|
||||
getBackLocale
|
||||
} = useLocale();
|
||||
const host = define.baseURL
|
||||
const defaultOpt = {
|
||||
load: true
|
||||
}
|
||||
|
||||
// 示例
|
||||
// async xxxx(code) {
|
||||
// var res = await this.request({
|
||||
// url: '/api/System/DictionaryData/All',
|
||||
// method: 'GET',
|
||||
// data,
|
||||
// options: {
|
||||
// load: false
|
||||
// }
|
||||
// })
|
||||
// if (!res) return
|
||||
// console.log(res)
|
||||
// }
|
||||
|
||||
function request(config) {
|
||||
config.options = Object.assign(defaultOpt, config.options)
|
||||
const token = uni.getStorageSync('token') || ''
|
||||
const locale = getBackLocale()
|
||||
let header = {
|
||||
"Content-Type": "application/json;charset=UTF-8",
|
||||
"yunzhupaas-origin": "app",
|
||||
"vue-version": "3",
|
||||
"Accept-Language": locale,
|
||||
...config.header
|
||||
}
|
||||
if (token) header['Authorization'] = token
|
||||
let url = config.url.indexOf('http') > -1 ? config.url : host + config.url
|
||||
|
||||
if (config.options.load) {
|
||||
uni.showLoading({
|
||||
title: config.options.loadText || '正在加载'
|
||||
})
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: url,
|
||||
data: config.data || {},
|
||||
method: config.method || 'GET',
|
||||
header: header,
|
||||
timeout: define.timeout,
|
||||
success: res => {
|
||||
uni.hideLoading()
|
||||
if (res.statusCode === 200) {
|
||||
if (res.data.code == 200) {
|
||||
resolve(res.data)
|
||||
} else {
|
||||
ajaxError(res.data)
|
||||
reject(res.data.msg)
|
||||
}
|
||||
} else {
|
||||
ajaxError(res.data)
|
||||
reject(res.errMsg)
|
||||
}
|
||||
},
|
||||
fail: err => {
|
||||
uni.showToast({
|
||||
title: '连接服务器失败',
|
||||
icon: 'none',
|
||||
})
|
||||
uni.hideLoading()
|
||||
reject(err)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function ajaxError(data) {
|
||||
uni.showToast({
|
||||
title: data.msg || '请求出错,请重试',
|
||||
icon: 'none',
|
||||
complete() {
|
||||
if (data.code === 600 || data.code === 601 || data.code === 602) {
|
||||
setTimeout(() => {
|
||||
uni.removeStorageSync('token')
|
||||
uni.removeStorageSync('cid')
|
||||
uni.removeStorageSync('userInfo')
|
||||
uni.removeStorageSync('permissionList')
|
||||
uni.removeStorageSync('sysVersion')
|
||||
uni.removeStorageSync('dynamicModelExtra')
|
||||
uni.reLaunch({
|
||||
url: '/pages/login/index'
|
||||
})
|
||||
}, 1500)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export default request
|
||||
36
utils/share.js
Normal file
36
utils/share.js
Normal file
@@ -0,0 +1,36 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
//设置默认的分享参数
|
||||
share: {
|
||||
title: 'yunzhupaas快速开放平台',
|
||||
path: '/pages/index/index',
|
||||
imageUrl: '',
|
||||
desc: '',
|
||||
content: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
//#ifdef MP-WEIXIN
|
||||
onShareAppMessage(res) {
|
||||
return {
|
||||
title: this.share.title,
|
||||
path: this.share.path,
|
||||
imageUrl: this.share.imageUrl,
|
||||
desc: this.share.desc,
|
||||
content: this.share.content,
|
||||
success(res) {
|
||||
uni.showToast({
|
||||
title: '分享成功'
|
||||
})
|
||||
},
|
||||
fail(res) {
|
||||
uni.showToast({
|
||||
title: '分享失败',
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
//#endif
|
||||
}
|
||||
149
utils/useDefineSetting.ts
Normal file
149
utils/useDefineSetting.ts
Normal file
@@ -0,0 +1,149 @@
|
||||
export const useDefineSetting = () => {
|
||||
const flowStatusList = [
|
||||
{ id: 0, fullName: '待提交' },
|
||||
{ id: 1, fullName: '进行中' },
|
||||
{ id: 2, fullName: '已通过' },
|
||||
{ id: 3, fullName: '已拒绝' },
|
||||
{ id: 4, fullName: '已终止' },
|
||||
{ id: 5, fullName: '已暂停' },
|
||||
{ id: 6, fullName: '撤销中' },
|
||||
{ id: 7, fullName: '已撤销' },
|
||||
{ id: 8, fullName: '已退回' },
|
||||
{ id: 9, fullName: '已撤回' },
|
||||
];
|
||||
const flowUrgentList = [
|
||||
{ id: 1, fullName: '普通' },
|
||||
{ id: 2, fullName: '重要' },
|
||||
{ id: 3, fullName: '紧急' },
|
||||
];
|
||||
|
||||
function getUrgentText(value) {
|
||||
if (value == 2) return '重要';
|
||||
if (value == 3) return '紧急';
|
||||
return '普通';
|
||||
}
|
||||
function getUrgentTextColor(value) {
|
||||
if (value == 2) return '#E6A23D';
|
||||
if (value == 3) return '#FF1818';
|
||||
return '#1890FF';
|
||||
}
|
||||
function getFlowStatusContent(value) {
|
||||
return flowStatusList[value || 0]?.fullName || '';
|
||||
}
|
||||
function getFlowStatusColor(value) {
|
||||
if (value == 1) return '#0177FF';
|
||||
if (value == 2) return 'rgba(35,162,5,0.39)';
|
||||
if (value == 3) return 'rgba(242,68,68,0.39)';
|
||||
if (value == 4) return 'rgba(241,61,61,0.85)';
|
||||
if (value == 5) return 'rgba(185,123,6,0.39)';
|
||||
if (value == 6) return 'rgba(215,149,77,0.39)';
|
||||
if (value == 7) return 'rgba(245,127,0,0.39)';
|
||||
if (value == 8) return 'rgba(21,21,157,0.39)';
|
||||
if (value == 9) return 'rgba(186,33,33,0.39)';
|
||||
return '#F09437';
|
||||
}
|
||||
function getHandlingStatusContent(value) {
|
||||
if (value == 1) return '流转';
|
||||
if (value == 2) return '加签';
|
||||
if (value == 3) return '转审';
|
||||
if (value == 4) return '指派';
|
||||
if (value == 5) return '退回';
|
||||
if (value == 6) return '撤回';
|
||||
if (value == 7) return '协办';
|
||||
if (value == 8) return '撤销';
|
||||
if (value == 9) return '转办';
|
||||
return '待签收';
|
||||
}
|
||||
function getHandlingStatusColor(value) {
|
||||
if (value == 1) return '#3DC60A';
|
||||
if (value == 2) return 'rgba(25,185,185,0.39)';
|
||||
if (value == 3) return 'rgba(49,151,214,0.39)';
|
||||
if (value == 4) return 'rgba(255,0,0,0.39)';
|
||||
if (value == 5) return 'rgba(21,21,157,0.39)';
|
||||
if (value == 6) return 'rgba(186,33,33,0.39)';
|
||||
if (value == 7) return 'rgba(172,214,58,0.39)';
|
||||
if (value == 8) return 'rgba(245,127,0,0.39)';
|
||||
if (value == 9) return 'rgba(186,33,33,0.39)';
|
||||
return '#2B6EF2';
|
||||
}
|
||||
function getFlowStateContent(value) {
|
||||
const stateList = [
|
||||
'拒绝',
|
||||
'同意',
|
||||
'发起',
|
||||
'退回',
|
||||
'撤回',
|
||||
'加签',
|
||||
'减签',
|
||||
'转审',
|
||||
'暂停',
|
||||
'恢复',
|
||||
'复活',
|
||||
'指派',
|
||||
'催办',
|
||||
'协办',
|
||||
'撤销申请',
|
||||
'终止',
|
||||
'同意撤销',
|
||||
'拒绝撤销',
|
||||
'转办',
|
||||
];
|
||||
if (value == -1) return '待审批';
|
||||
if (value == -2) return '未审批';
|
||||
if (value == -3) return '待办理';
|
||||
if (value == -4) return '未办理';
|
||||
return stateList[value] || '';
|
||||
}
|
||||
function getFlowStateColor(value) {
|
||||
const colorList = [
|
||||
'rgba(242,68,68,0.39)',
|
||||
'rgba(35,162,5,0.39)',
|
||||
'rgba(0,0,255,0.39)',
|
||||
'rgba(21,21,157,0.39)',
|
||||
'rgba(186,33,33,0.39)',
|
||||
'rgba(25,185,185,0.39)',
|
||||
'rgba(50,191,61,0.39)',
|
||||
'rgba(49,151,214,0.39)',
|
||||
'rgba(185,123,6,0.39)',
|
||||
'rgba(45,94,186,0.39)',
|
||||
'rgba(50,191,61,0.39)',
|
||||
'rgba(255,0,0,0.39)',
|
||||
'rgba(0,128,0,0.39)',
|
||||
'rgba(172,214,58,0.39)',
|
||||
'rgba(245,127,0,0.39)',
|
||||
'rgba(241,61,61,0.85)',
|
||||
'rgba(35,162,5,0.39)',
|
||||
'rgba(242,68,68,0.39)',
|
||||
'rgba(49,151,214,0.39)',
|
||||
];
|
||||
let set = new Set([-1, -2, -3, -4]);
|
||||
if (set.has(value)) return 'rgba(165,168,172,1)';
|
||||
return colorList[value] || '';
|
||||
}
|
||||
function getHexColor(color) {
|
||||
let values = color
|
||||
.replace(/rgba?\(/, '')
|
||||
.replace(/\)/, '')
|
||||
.replace(/[\s+]/g, '')
|
||||
.split(',');
|
||||
let a = parseFloat(values[3] || 1),
|
||||
r = Math.floor(a * parseInt(values[0]) + (1 - a) * 255),
|
||||
g = Math.floor(a * parseInt(values[1]) + (1 - a) * 255),
|
||||
b = Math.floor(a * parseInt(values[2]) + (1 - a) * 255);
|
||||
return '#' + ('0' + r.toString(16)).slice(-2) + ('0' + g.toString(16)).slice(-2) + ('0' + b.toString(16)).slice(-2);
|
||||
}
|
||||
|
||||
return {
|
||||
flowStatusList,
|
||||
flowUrgentList,
|
||||
getUrgentText,
|
||||
getUrgentTextColor,
|
||||
getFlowStatusContent,
|
||||
getFlowStatusColor,
|
||||
getHandlingStatusContent,
|
||||
getHandlingStatusColor,
|
||||
getFlowStateContent,
|
||||
getFlowStateColor,
|
||||
getHexColor,
|
||||
};
|
||||
};
|
||||
29
utils/utils/define.js
Normal file
29
utils/utils/define.js
Normal file
@@ -0,0 +1,29 @@
|
||||
/* process.env.NODE_ENV设置生产环境模式 */
|
||||
// #ifndef MP
|
||||
const baseURL = process.env.NODE_ENV === "production" ? "https://app.java.yunzhupaas.com" : "http://localhost:30000"
|
||||
const webSocketUrl = process.env.NODE_ENV === "production" ? "wss://app.java.yunzhupaas.com/websocket" :
|
||||
"ws://localhost:30000/api/message/websocket"
|
||||
const report = process.env.NODE_ENV === 'production' ? 'https://java.yunzhupaas.com/Report' : 'http://localhost:8200'
|
||||
const flow = process.env.NODE_ENV === 'production' ? 'https://java.yunzhupaas.com' : 'http://localhost:3100'
|
||||
// #endif
|
||||
|
||||
// #ifdef MP
|
||||
const baseURL = "http://localhost:30000"
|
||||
const webSocketUrl = "ws://localhost:30000/api/message/websocket"
|
||||
const report = 'http://localhost:8200'
|
||||
const flow = 'http://localhost:3100'
|
||||
// #endif
|
||||
|
||||
const define = {
|
||||
copyright: "Copyright @ 2025 零和万物科技有限公司版权所有",
|
||||
sysVersion: "V5.2",
|
||||
baseURL, // 接口前缀
|
||||
report,
|
||||
flow,
|
||||
webSocketUrl,
|
||||
comUploadUrl: baseURL + '/api/file/Uploader/',
|
||||
timeout: 1000000,
|
||||
aMapWebKey: '09485f01587712b3c04e5a9abf324237',
|
||||
cipherKey: 'EY8WePvjM5GGwQzn', // 加密key
|
||||
}
|
||||
export default define
|
||||
21
utils/utils/refreshCurrent.js
Normal file
21
utils/utils/refreshCurrent.js
Normal file
@@ -0,0 +1,21 @@
|
||||
// 将对象序列化为查询字符串
|
||||
function stringifyQuery(obj) {
|
||||
let ret = [];
|
||||
for (let key in obj) {
|
||||
if (obj.hasOwnProperty(key)) {
|
||||
ret.push(encodeURIComponent(key) + '=' + encodeURIComponent(obj[key]));
|
||||
}
|
||||
}
|
||||
return ret.join('&');
|
||||
}
|
||||
export function refreshCurrentPage() {
|
||||
// 获取当前页面的路径
|
||||
let currentPage = getCurrentPages().pop();
|
||||
if (currentPage) {
|
||||
// 重启当前页面
|
||||
uni.reLaunch({
|
||||
url: `/${currentPage.route}` + (currentPage.options ? `?${stringifyQuery(currentPage.options)}` :
|
||||
'')
|
||||
});
|
||||
}
|
||||
}
|
||||
103
utils/utils/request.js
Normal file
103
utils/utils/request.js
Normal file
@@ -0,0 +1,103 @@
|
||||
import define from './define'
|
||||
import {
|
||||
useLocale
|
||||
} from '@/locale/useLocale';
|
||||
|
||||
const {
|
||||
getBackLocale
|
||||
} = useLocale();
|
||||
const host = define.baseURL
|
||||
const defaultOpt = {
|
||||
load: true
|
||||
}
|
||||
|
||||
// 示例
|
||||
// async xxxx(code) {
|
||||
// var res = await this.request({
|
||||
// url: '/api/System/DictionaryData/All',
|
||||
// method: 'GET',
|
||||
// data,
|
||||
// options: {
|
||||
// load: false
|
||||
// }
|
||||
// })
|
||||
// if (!res) return
|
||||
// console.log(res)
|
||||
// }
|
||||
|
||||
function request(config) {
|
||||
config.options = Object.assign(defaultOpt, config.options)
|
||||
const token = uni.getStorageSync('token') || ''
|
||||
const locale = getBackLocale()
|
||||
let header = {
|
||||
"Content-Type": "application/json;charset=UTF-8",
|
||||
"yunzhupaas-origin": "app",
|
||||
"vue-version": "3",
|
||||
"Accept-Language": locale,
|
||||
...config.header
|
||||
}
|
||||
if (token) header['Authorization'] = token
|
||||
let url = config.url.indexOf('http') > -1 ? config.url : host + config.url
|
||||
|
||||
if (config.options.load) {
|
||||
uni.showLoading({
|
||||
title: config.options.loadText || '正在加载'
|
||||
})
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url: url,
|
||||
data: config.data || {},
|
||||
method: config.method || 'GET',
|
||||
header: header,
|
||||
timeout: define.timeout,
|
||||
success: res => {
|
||||
uni.hideLoading()
|
||||
if (res.statusCode === 200) {
|
||||
if (res.data.code == 200) {
|
||||
resolve(res.data)
|
||||
} else {
|
||||
ajaxError(res.data)
|
||||
reject(res.data.msg)
|
||||
}
|
||||
} else {
|
||||
ajaxError(res.data)
|
||||
reject(res.errMsg)
|
||||
}
|
||||
},
|
||||
fail: err => {
|
||||
uni.showToast({
|
||||
title: '连接服务器失败',
|
||||
icon: 'none',
|
||||
})
|
||||
uni.hideLoading()
|
||||
reject(err)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function ajaxError(data) {
|
||||
uni.showToast({
|
||||
title: data.msg || '请求出错,请重试',
|
||||
icon: 'none',
|
||||
complete() {
|
||||
if (data.code === 600 || data.code === 601 || data.code === 602) {
|
||||
setTimeout(() => {
|
||||
uni.removeStorageSync('token')
|
||||
uni.removeStorageSync('cid')
|
||||
uni.removeStorageSync('userInfo')
|
||||
uni.removeStorageSync('permissionList')
|
||||
uni.removeStorageSync('sysVersion')
|
||||
uni.removeStorageSync('dynamicModelExtra')
|
||||
uni.reLaunch({
|
||||
url: '/pages/login/index'
|
||||
})
|
||||
}, 1500)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export default request
|
||||
36
utils/utils/share.js
Normal file
36
utils/utils/share.js
Normal file
@@ -0,0 +1,36 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
//设置默认的分享参数
|
||||
share: {
|
||||
title: 'yunzhupaas快速开放平台',
|
||||
path: '/pages/index/index',
|
||||
imageUrl: '',
|
||||
desc: '',
|
||||
content: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
//#ifdef MP-WEIXIN
|
||||
onShareAppMessage(res) {
|
||||
return {
|
||||
title: this.share.title,
|
||||
path: this.share.path,
|
||||
imageUrl: this.share.imageUrl,
|
||||
desc: this.share.desc,
|
||||
content: this.share.content,
|
||||
success(res) {
|
||||
uni.showToast({
|
||||
title: '分享成功'
|
||||
})
|
||||
},
|
||||
fail(res) {
|
||||
uni.showToast({
|
||||
title: '分享失败',
|
||||
icon: 'none'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
//#endif
|
||||
}
|
||||
149
utils/utils/useDefineSetting.ts
Normal file
149
utils/utils/useDefineSetting.ts
Normal file
@@ -0,0 +1,149 @@
|
||||
export const useDefineSetting = () => {
|
||||
const flowStatusList = [
|
||||
{ id: 0, fullName: '待提交' },
|
||||
{ id: 1, fullName: '进行中' },
|
||||
{ id: 2, fullName: '已通过' },
|
||||
{ id: 3, fullName: '已拒绝' },
|
||||
{ id: 4, fullName: '已终止' },
|
||||
{ id: 5, fullName: '已暂停' },
|
||||
{ id: 6, fullName: '撤销中' },
|
||||
{ id: 7, fullName: '已撤销' },
|
||||
{ id: 8, fullName: '已退回' },
|
||||
{ id: 9, fullName: '已撤回' },
|
||||
];
|
||||
const flowUrgentList = [
|
||||
{ id: 1, fullName: '普通' },
|
||||
{ id: 2, fullName: '重要' },
|
||||
{ id: 3, fullName: '紧急' },
|
||||
];
|
||||
|
||||
function getUrgentText(value) {
|
||||
if (value == 2) return '重要';
|
||||
if (value == 3) return '紧急';
|
||||
return '普通';
|
||||
}
|
||||
function getUrgentTextColor(value) {
|
||||
if (value == 2) return '#E6A23D';
|
||||
if (value == 3) return '#FF1818';
|
||||
return '#1890FF';
|
||||
}
|
||||
function getFlowStatusContent(value) {
|
||||
return flowStatusList[value || 0]?.fullName || '';
|
||||
}
|
||||
function getFlowStatusColor(value) {
|
||||
if (value == 1) return '#0177FF';
|
||||
if (value == 2) return 'rgba(35,162,5,0.39)';
|
||||
if (value == 3) return 'rgba(242,68,68,0.39)';
|
||||
if (value == 4) return 'rgba(241,61,61,0.85)';
|
||||
if (value == 5) return 'rgba(185,123,6,0.39)';
|
||||
if (value == 6) return 'rgba(215,149,77,0.39)';
|
||||
if (value == 7) return 'rgba(245,127,0,0.39)';
|
||||
if (value == 8) return 'rgba(21,21,157,0.39)';
|
||||
if (value == 9) return 'rgba(186,33,33,0.39)';
|
||||
return '#F09437';
|
||||
}
|
||||
function getHandlingStatusContent(value) {
|
||||
if (value == 1) return '流转';
|
||||
if (value == 2) return '加签';
|
||||
if (value == 3) return '转审';
|
||||
if (value == 4) return '指派';
|
||||
if (value == 5) return '退回';
|
||||
if (value == 6) return '撤回';
|
||||
if (value == 7) return '协办';
|
||||
if (value == 8) return '撤销';
|
||||
if (value == 9) return '转办';
|
||||
return '待签收';
|
||||
}
|
||||
function getHandlingStatusColor(value) {
|
||||
if (value == 1) return '#3DC60A';
|
||||
if (value == 2) return 'rgba(25,185,185,0.39)';
|
||||
if (value == 3) return 'rgba(49,151,214,0.39)';
|
||||
if (value == 4) return 'rgba(255,0,0,0.39)';
|
||||
if (value == 5) return 'rgba(21,21,157,0.39)';
|
||||
if (value == 6) return 'rgba(186,33,33,0.39)';
|
||||
if (value == 7) return 'rgba(172,214,58,0.39)';
|
||||
if (value == 8) return 'rgba(245,127,0,0.39)';
|
||||
if (value == 9) return 'rgba(186,33,33,0.39)';
|
||||
return '#2B6EF2';
|
||||
}
|
||||
function getFlowStateContent(value) {
|
||||
const stateList = [
|
||||
'拒绝',
|
||||
'同意',
|
||||
'发起',
|
||||
'退回',
|
||||
'撤回',
|
||||
'加签',
|
||||
'减签',
|
||||
'转审',
|
||||
'暂停',
|
||||
'恢复',
|
||||
'复活',
|
||||
'指派',
|
||||
'催办',
|
||||
'协办',
|
||||
'撤销申请',
|
||||
'终止',
|
||||
'同意撤销',
|
||||
'拒绝撤销',
|
||||
'转办',
|
||||
];
|
||||
if (value == -1) return '待审批';
|
||||
if (value == -2) return '未审批';
|
||||
if (value == -3) return '待办理';
|
||||
if (value == -4) return '未办理';
|
||||
return stateList[value] || '';
|
||||
}
|
||||
function getFlowStateColor(value) {
|
||||
const colorList = [
|
||||
'rgba(242,68,68,0.39)',
|
||||
'rgba(35,162,5,0.39)',
|
||||
'rgba(0,0,255,0.39)',
|
||||
'rgba(21,21,157,0.39)',
|
||||
'rgba(186,33,33,0.39)',
|
||||
'rgba(25,185,185,0.39)',
|
||||
'rgba(50,191,61,0.39)',
|
||||
'rgba(49,151,214,0.39)',
|
||||
'rgba(185,123,6,0.39)',
|
||||
'rgba(45,94,186,0.39)',
|
||||
'rgba(50,191,61,0.39)',
|
||||
'rgba(255,0,0,0.39)',
|
||||
'rgba(0,128,0,0.39)',
|
||||
'rgba(172,214,58,0.39)',
|
||||
'rgba(245,127,0,0.39)',
|
||||
'rgba(241,61,61,0.85)',
|
||||
'rgba(35,162,5,0.39)',
|
||||
'rgba(242,68,68,0.39)',
|
||||
'rgba(49,151,214,0.39)',
|
||||
];
|
||||
let set = new Set([-1, -2, -3, -4]);
|
||||
if (set.has(value)) return 'rgba(165,168,172,1)';
|
||||
return colorList[value] || '';
|
||||
}
|
||||
function getHexColor(color) {
|
||||
let values = color
|
||||
.replace(/rgba?\(/, '')
|
||||
.replace(/\)/, '')
|
||||
.replace(/[\s+]/g, '')
|
||||
.split(',');
|
||||
let a = parseFloat(values[3] || 1),
|
||||
r = Math.floor(a * parseInt(values[0]) + (1 - a) * 255),
|
||||
g = Math.floor(a * parseInt(values[1]) + (1 - a) * 255),
|
||||
b = Math.floor(a * parseInt(values[2]) + (1 - a) * 255);
|
||||
return '#' + ('0' + r.toString(16)).slice(-2) + ('0' + g.toString(16)).slice(-2) + ('0' + b.toString(16)).slice(-2);
|
||||
}
|
||||
|
||||
return {
|
||||
flowStatusList,
|
||||
flowUrgentList,
|
||||
getUrgentText,
|
||||
getUrgentTextColor,
|
||||
getFlowStatusContent,
|
||||
getFlowStatusColor,
|
||||
getHandlingStatusContent,
|
||||
getHandlingStatusColor,
|
||||
getFlowStateContent,
|
||||
getFlowStateColor,
|
||||
getHexColor,
|
||||
};
|
||||
};
|
||||
520
utils/utils/yunzhupaas.js
Normal file
520
utils/utils/yunzhupaas.js
Normal file
@@ -0,0 +1,520 @@
|
||||
import CryptoJS from 'crypto-js'
|
||||
import request from '@/utils/request'
|
||||
import define from '@/utils/define'
|
||||
|
||||
const yunzhupaas = {
|
||||
goBack() {
|
||||
uni.navigateBack()
|
||||
},
|
||||
// 跳链接
|
||||
jumpLink(urlAddress, pageTitle = "") {
|
||||
if (!urlAddress) return
|
||||
let url = '/pages/apply/externalLink/index?url=' + encodeURIComponent(urlAddress) + '&fullName= ' +
|
||||
pageTitle
|
||||
uni.navigateTo({
|
||||
url: url,
|
||||
})
|
||||
},
|
||||
/* 传参字符串转义 */
|
||||
encodeContent(key) {
|
||||
const encodeArr = [{
|
||||
code: '%',
|
||||
encode: '%25'
|
||||
}, {
|
||||
code: '?',
|
||||
encode: '%3F'
|
||||
}, {
|
||||
code: '#',
|
||||
encode: '%23'
|
||||
}, {
|
||||
code: '&',
|
||||
encode: '%26'
|
||||
}, {
|
||||
code: '=',
|
||||
encode: '%3D'
|
||||
}];
|
||||
return key.replace(/[%?#&=]/g, ($, index, str) => {
|
||||
for (const k of encodeArr) {
|
||||
if (k.code === $) {
|
||||
return k.encode;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
solveAddressParam(item, config) {
|
||||
let yunzhupaasKey = config.yunzhupaasKey
|
||||
item.urlAddress = item.urlAddress ? item.urlAddress : config.option.appUrlAddress
|
||||
if (!item.urlAddress) return
|
||||
let urlAddress = item.urlAddress
|
||||
const regex = /\${[^{}]+}/g;
|
||||
urlAddress = urlAddress.replace(regex, match => {
|
||||
const key = match.slice(2, -1);
|
||||
let value = '';
|
||||
if (yunzhupaasKey === 'text') {
|
||||
return key == 'Field' || key == 'field' ? item.value : match
|
||||
}
|
||||
if (yunzhupaasKey === 'timeAxis') {
|
||||
if (key == 'name') value = item['content'];
|
||||
if (key == 'timestamp') value = item['timestamp'];
|
||||
}
|
||||
if (yunzhupaasKey === 'tableList') {
|
||||
return item[key] || match
|
||||
}
|
||||
if (yunzhupaasKey === 'dataBoard') {
|
||||
return key == 'Field' || key == 'field' ? item.num : match
|
||||
}
|
||||
if (yunzhupaasKey === 'rankList') {
|
||||
if (key === 'name') value = item.label;
|
||||
if (key === 'value') value = item.value.replace("¥ ", "");
|
||||
}
|
||||
// 图标替换
|
||||
if (yunzhupaasKey === 'barChart' || yunzhupaasKey === 'lineChart' || yunzhupaasKey === 'pieChart' ||
|
||||
yunzhupaasKey == 'radarChart' || yunzhupaasKey === 'mapChart') {
|
||||
if (key === 'name') value = item.name;
|
||||
if (key === 'long') value = item.long;
|
||||
if (key === 'lat') value = item.lat;
|
||||
if (key === 'value') value = item.value;
|
||||
if (key === 'type') value = item.type;
|
||||
}
|
||||
return value || match;
|
||||
});
|
||||
item.urlAddress = urlAddress
|
||||
},
|
||||
handelFormat(format) {
|
||||
let formatObj = {
|
||||
'yyyy': 'yyyy',
|
||||
'yyyy-MM': 'yyyy-MM',
|
||||
'yyyy-MM-dd': 'yyyy-MM-dd',
|
||||
'yyyy-MM-dd HH:mm': 'yyyy-MM-dd HH:mm',
|
||||
'yyyy-MM-dd HH:mm:ss': 'yyyy-MM-dd HH:mm:ss',
|
||||
'HH:mm:ss': 'HH:mm:ss',
|
||||
"HH:mm": "HH:mm",
|
||||
'YYYY': 'yyyy',
|
||||
'YYYY-MM': 'yyyy-MM',
|
||||
'YYYY-MM-DD': 'yyyy-MM-dd',
|
||||
'YYYY-MM-DD HH:mm': 'yyyy-MM-dd HH:mm',
|
||||
'YYYY-MM-DD HH:mm:ss': 'yyyy-MM-dd HH:mm:ss',
|
||||
}
|
||||
return formatObj[format]
|
||||
},
|
||||
toDate(v, format) {
|
||||
format = format ? format : "yyyy-MM-dd HH:mm:ss"
|
||||
if (!v) return "";
|
||||
var d = v;
|
||||
if (typeof v === 'string') {
|
||||
if (v.indexOf("/Date(") > -1)
|
||||
d = new Date(parseInt(v.replace("/Date(", "").replace(")/", ""), 10));
|
||||
else
|
||||
d = new Date(Date.parse(v.replace(/-/g, "/").replace("T", " ").split(".")[0]));
|
||||
} else {
|
||||
d = new Date(v)
|
||||
}
|
||||
var o = {
|
||||
"M+": d.getMonth() + 1,
|
||||
"d+": d.getDate(),
|
||||
"h+": d.getHours(),
|
||||
"H+": d.getHours(),
|
||||
"m+": d.getMinutes(),
|
||||
"s+": d.getSeconds(),
|
||||
"q+": Math.floor((d.getMonth() + 3) / 3),
|
||||
"S": d.getMilliseconds()
|
||||
};
|
||||
if (/(y+)/.test(format)) {
|
||||
format = format.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length));
|
||||
}
|
||||
for (var k in o) {
|
||||
if (new RegExp("(" + k + ")").test(format)) {
|
||||
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" +
|
||||
o[k])
|
||||
.length));
|
||||
}
|
||||
}
|
||||
return format;
|
||||
},
|
||||
toFileSize(size) {
|
||||
if (size == null || size == "") {
|
||||
return "";
|
||||
}
|
||||
if (size < 1024.00)
|
||||
return yunzhupaas.toDecimal(size) + " 字节";
|
||||
else if (size >= 1024.00 && size < 1048576)
|
||||
return yunzhupaas.toDecimal(size / 1024.00) + " KB";
|
||||
else if (size >= 1048576 && size < 1073741824)
|
||||
return yunzhupaas.toDecimal(size / 1024.00 / 1024.00) + " MB";
|
||||
else if (size >= 1073741824)
|
||||
return yunzhupaas.toDecimal(size / 1024.00 / 1024.00 / 1024.00) + " GB";
|
||||
},
|
||||
toDecimal(num) {
|
||||
if (num == null) {
|
||||
num = "0";
|
||||
}
|
||||
num = num.toString().replace(/\$|\,/g, '');
|
||||
if (isNaN(num))
|
||||
num = "0";
|
||||
var sign = (num == (num = Math.abs(num)));
|
||||
num = Math.floor(num * 100 + 0.50000000001);
|
||||
var cents = num % 100;
|
||||
num = Math.floor(num / 100).toString();
|
||||
if (cents < 10)
|
||||
cents = "0" + cents;
|
||||
for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
|
||||
num = num.substring(0, num.length - (4 * i + 3)) + '' +
|
||||
num.substring(num.length - (4 * i + 3));
|
||||
return (((sign) ? '' : '-') + num + '.' + cents);
|
||||
},
|
||||
getScriptFunc(str) {
|
||||
// #ifndef MP
|
||||
let func = null
|
||||
try {
|
||||
func = eval(str)
|
||||
if (Object.prototype.toString.call(func) !== '[object Function]') return false;
|
||||
return func
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return false
|
||||
}
|
||||
// #endif
|
||||
// #ifdef MP
|
||||
return false
|
||||
// #endif
|
||||
},
|
||||
interfaceDataHandler(data) {
|
||||
if (!data.dataProcessing) return data.data
|
||||
const dataHandler = this.getScriptFunc(data.dataProcessing)
|
||||
if (!dataHandler) return data.data
|
||||
return dataHandler(data.data)
|
||||
},
|
||||
toDateText(dateTimeStamp) {
|
||||
if (!dateTimeStamp) return ''
|
||||
let result = ''
|
||||
let minute = 1000 * 60; //把分,时,天,周,半个月,一个月用毫秒表示
|
||||
let hour = minute * 60;
|
||||
let day = hour * 24;
|
||||
let week = day * 7;
|
||||
let halfamonth = day * 15;
|
||||
let month = day * 30;
|
||||
let now = new Date().getTime(); //获取当前时间毫秒
|
||||
let diffValue = now - dateTimeStamp; //时间差
|
||||
if (diffValue < 0) return "刚刚"
|
||||
let minC = diffValue / minute; //计算时间差的分,时,天,周,月
|
||||
let hourC = diffValue / hour;
|
||||
let dayC = diffValue / day;
|
||||
let weekC = diffValue / week;
|
||||
let monthC = diffValue / month;
|
||||
if (monthC >= 1 && monthC <= 3) {
|
||||
result = " " + parseInt(monthC) + "月前"
|
||||
} else if (weekC >= 1 && weekC <= 3) {
|
||||
result = " " + parseInt(weekC) + "周前"
|
||||
} else if (dayC >= 1 && dayC <= 6) {
|
||||
result = " " + parseInt(dayC) + "天前"
|
||||
} else if (hourC >= 1 && hourC <= 23) {
|
||||
result = " " + parseInt(hourC) + "小时前"
|
||||
} else if (minC >= 1 && minC <= 59) {
|
||||
result = " " + parseInt(minC) + "分钟前"
|
||||
} else if (diffValue >= 0 && diffValue <= minute) {
|
||||
result = "刚刚"
|
||||
} else {
|
||||
let datetime = new Date();
|
||||
datetime.setTime(dateTimeStamp);
|
||||
let Nyear = datetime.getFullYear();
|
||||
let Nmonth = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime
|
||||
.getMonth() + 1;
|
||||
let Ndate = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
|
||||
let Nhour = datetime.getHours() < 10 ? "0" + datetime.getHours() : datetime.getHours();
|
||||
let Nminute = datetime.getMinutes() < 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
|
||||
let Nsecond = datetime.getSeconds() < 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
|
||||
result = Nyear + "-" + Nmonth + "-" + Ndate
|
||||
}
|
||||
return result;
|
||||
},
|
||||
//取整
|
||||
toRound(number) {
|
||||
var bite = 0;
|
||||
if (number < 10) {
|
||||
return 10;
|
||||
}
|
||||
if (number > 10 && number < 50) {
|
||||
return 50;
|
||||
}
|
||||
while (number >= 10) {
|
||||
number /= 10;
|
||||
bite += 1;
|
||||
}
|
||||
return Math.ceil(number) * Math.pow(10, bite);
|
||||
},
|
||||
getAmountChinese(val) {
|
||||
if (!val && val !== 0) return '';
|
||||
if (val == 0) return '零元整';
|
||||
const regExp = /[a-zA-Z]/;
|
||||
if (regExp.test(val)) return '数字较大溢出';
|
||||
let amount = +val;
|
||||
if (isNaN(amount)) return '';
|
||||
if (amount < 0) amount = Number(amount.toString().split('-')[1]);
|
||||
const NUMBER = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
|
||||
const N_UNIT1 = ['', '拾', '佰', '仟'];
|
||||
const N_UNIT2 = ['', '万', '亿', '兆'];
|
||||
const D_UNIT = ['角', '分', '厘', '毫'];
|
||||
let [integer, decimal] = amount.toString().split('.');
|
||||
if (integer && (integer.length > 15 || integer.indexOf('e') > -1)) return '数字较大溢出';
|
||||
let res = '';
|
||||
// 整数部分
|
||||
if (integer) {
|
||||
let yunzhupaasCount = 0;
|
||||
for (let i = 0, len = integer.length; i < len; i++) {
|
||||
const num = integer.charAt(i);
|
||||
const pos = len - i - 1; // 排除个位后 所处的索引位置
|
||||
const q = pos / 4;
|
||||
const m = pos % 4;
|
||||
if (num === '0') {
|
||||
yunzhupaasCount++;
|
||||
} else {
|
||||
if (yunzhupaasCount > 0 && m !== 3) res += NUMBER[0];
|
||||
yunzhupaasCount = 0;
|
||||
res += NUMBER[parseInt(num)] + N_UNIT1[m];
|
||||
}
|
||||
if (m == 0 && yunzhupaasCount < 4) res += N_UNIT2[Math.floor(q)];
|
||||
}
|
||||
}
|
||||
if (Number(integer) != 0) res += '元';
|
||||
// 小数部分
|
||||
if (parseInt(decimal)) {
|
||||
for (let i = 0; i < 4; i++) {
|
||||
const num = decimal.charAt(i);
|
||||
if (parseInt(num)) res += NUMBER[num] + D_UNIT[i];
|
||||
}
|
||||
} else {
|
||||
res += '整';
|
||||
}
|
||||
if (val < 0) res = '负数' + res;
|
||||
return res;
|
||||
},
|
||||
thousandsFormat(num) {
|
||||
if (num === 0) return '0';
|
||||
if (!num) return '';
|
||||
const numArr = num.toString().split('.');
|
||||
numArr[0] = numArr[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
||||
return numArr.join('.');
|
||||
},
|
||||
base64: {
|
||||
encode(str, isEncodeURIComponent = true) {
|
||||
if (!str) return ''
|
||||
const newStr = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(str))
|
||||
return isEncodeURIComponent ? encodeURIComponent(newStr) : newStr
|
||||
},
|
||||
decode(str, isDecodeURIComponent = true) {
|
||||
if (!str) return ''
|
||||
const newStr = isDecodeURIComponent ? decodeURIComponent(str) : str
|
||||
const result = CryptoJS.enc.Utf8.stringify(CryptoJS.enc.Base64.parse(newStr))
|
||||
return result
|
||||
}
|
||||
},
|
||||
idGenerator() {
|
||||
let quotient = (new Date() - new Date('2020-08-01'))
|
||||
quotient += Math.ceil(Math.random() * 1000)
|
||||
const chars = '0123456789ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz';
|
||||
const charArr = chars.split("")
|
||||
const radix = chars.length;
|
||||
const res = []
|
||||
do {
|
||||
let mod = quotient % radix;
|
||||
quotient = (quotient - mod) / radix;
|
||||
res.push(charArr[mod])
|
||||
} while (quotient);
|
||||
return res.join('')
|
||||
},
|
||||
dynamicText(value, options) {
|
||||
if (!value) return ''
|
||||
if (Array.isArray(value)) {
|
||||
if (!options || !Array.isArray(options)) return value.join()
|
||||
let textList = []
|
||||
for (let i = 0; i < value.length; i++) {
|
||||
let item = options.filter(o => o.id == value[i])[0]
|
||||
if (!item || !item.fullName) {
|
||||
textList.push(value[i])
|
||||
} else {
|
||||
textList.push(item.fullName)
|
||||
}
|
||||
}
|
||||
return textList.join()
|
||||
}
|
||||
if (!options || !Array.isArray(options)) return value
|
||||
let item = options.filter(o => o.id == value)[0]
|
||||
if (!item || !item.fullName) return value
|
||||
return item.fullName
|
||||
},
|
||||
treeToArray(treeData, type = '') {
|
||||
let list = []
|
||||
const loop = (treeData) => {
|
||||
for (let i = 0; i < treeData.length; i++) {
|
||||
const item = treeData[i]
|
||||
if (!type || item.type === type) list.push(item)
|
||||
if (item.children && Array.isArray(item.children)) loop(item.children)
|
||||
}
|
||||
}
|
||||
loop(treeData)
|
||||
return list
|
||||
},
|
||||
dynamicTreeText(value, options) {
|
||||
if (!value) return ''
|
||||
const transfer = (data, partition) => {
|
||||
let textList = []
|
||||
const loop = (data, id) => {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
if (data[i].id === id) {
|
||||
textList.push(data[i].fullName)
|
||||
break
|
||||
}
|
||||
if (data[i].children) loop(data[i].children, id)
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
if (Array.isArray(data[i])) {
|
||||
textList.push(transfer(data[i], "/"))
|
||||
} else {
|
||||
loop(options, data[i])
|
||||
}
|
||||
}
|
||||
return textList.join(partition)
|
||||
}
|
||||
if (!options || !Array.isArray(options)) return Array.isArray(value) ? value.join() : value
|
||||
if (Array.isArray(value)) return transfer(value)
|
||||
return transfer(value.split())
|
||||
},
|
||||
onlineUtils: {
|
||||
// 获取用户信息
|
||||
getUserInfo() {
|
||||
const userInfo = uni.getStorageSync('userInfo') || {};
|
||||
userInfo.token = uni.getStorageSync('token') || '';
|
||||
return userInfo;
|
||||
},
|
||||
// 获取设备信息
|
||||
getDeviceInfo() {
|
||||
const deviceInfo = {
|
||||
vueVersion: '3',
|
||||
origin: 'app'
|
||||
};
|
||||
return deviceInfo;
|
||||
},
|
||||
// 请求
|
||||
request(url, method, data, header) {
|
||||
return request({
|
||||
url: url,
|
||||
method: method || 'GET',
|
||||
data: data || {},
|
||||
header: header || {},
|
||||
options: {
|
||||
load: false
|
||||
}
|
||||
})
|
||||
},
|
||||
// 路由跳转
|
||||
route(url, type = 'navigateTo') {
|
||||
if (!url) return;
|
||||
uni.$u.route({
|
||||
url,
|
||||
type
|
||||
})
|
||||
},
|
||||
// 消息提示
|
||||
toast(message, _type = 'info', duration = 3000) {
|
||||
uni.$u.toast(message, duration)
|
||||
},
|
||||
},
|
||||
aesEncryption: {
|
||||
decrypt(str, cipherKey = '') {
|
||||
if (!cipherKey) cipherKey = define.cipherKey
|
||||
const hexStr = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Hex.parse(str))
|
||||
const decryptedData = CryptoJS.AES.decrypt(hexStr, CryptoJS.enc.Utf8.parse(cipherKey), {
|
||||
mode: CryptoJS.mode.ECB,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString(CryptoJS.enc.Utf8);
|
||||
return decryptedData
|
||||
},
|
||||
encrypt(str, cipherKey = '') {
|
||||
if (!cipherKey) cipherKey = define.cipherKey
|
||||
const encryptedData = CryptoJS.AES.encrypt(str, CryptoJS.enc.Utf8.parse(cipherKey), {
|
||||
mode: CryptoJS.mode.ECB,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString();
|
||||
const result = CryptoJS.enc.Hex.stringify(CryptoJS.enc.Base64.parse(encryptedData))
|
||||
return result
|
||||
}
|
||||
},
|
||||
getDistance(lat1, lon1, lat2, lon2) {
|
||||
const toRadians = (degrees) => {
|
||||
return degrees * (Math.PI / 180);
|
||||
}
|
||||
const R = 6371;
|
||||
const dLat = toRadians(lat2 - lat1);
|
||||
const dLon = toRadians(lon2 - lon1);
|
||||
const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
|
||||
Math.cos(toRadians(lat1)) * Math.cos(toRadians(lat2)) *
|
||||
Math.sin(dLon / 2) * Math.sin(dLon / 2);
|
||||
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
||||
const distance = R * c;
|
||||
return distance * 1000;
|
||||
},
|
||||
getParamList(templateJson, data, rowKey = 'id') {
|
||||
if (!templateJson || !templateJson.length) return [];
|
||||
for (let i = 0; i < templateJson.length; i++) {
|
||||
const e = templateJson[i];
|
||||
if (e.sourceType == 1 && data) {
|
||||
e.defaultValue = data[e.relationField] || data[e.relationField] == 0 || data[e
|
||||
.relationField] ==
|
||||
false ? data[e.relationField] : '';
|
||||
}
|
||||
if (e.sourceType == 4 && e.relationField == '@formId') e.defaultValue = data[rowKey] || '';
|
||||
}
|
||||
return templateJson;
|
||||
},
|
||||
getBatchParamList(templateJson, data) {
|
||||
if (!templateJson?.length) return [];
|
||||
for (let i = 0; i < templateJson.length; i++) {
|
||||
const e = templateJson[i];
|
||||
if (e.sourceType == 1 && data.items?.length) {
|
||||
e.defaultValue = data.items.map(o => (data.webType == '4' ? o[e.relationField] : o[e
|
||||
.relationField + '_yunzhupaasId']));
|
||||
}
|
||||
if (e.sourceType == 4 && e.relationField == '@formId') e.defaultValue = data.items.map(o => o.id);
|
||||
}
|
||||
return templateJson;
|
||||
// if (!templateJson || !templateJson.length) return [];
|
||||
// for (let i = 0; i < templateJson.length; i++) {
|
||||
// const e = templateJson[i];
|
||||
// let defaultValue = [];
|
||||
// if (e.sourceType === 1 && data.length) {
|
||||
// data.forEach(o => {
|
||||
// if (type != 1 && o.hasOwnProperty(e.relationField + '_yunzhupaasId')) {
|
||||
// defaultValue.push(o[e.relationField + '_yunzhupaasId']);
|
||||
// } else {
|
||||
// defaultValue.push(o[e.relationField]);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// e.defaultValue = defaultValue;
|
||||
// if (e.sourceType === 4 && e.relationField === '@formId' && data.id !== undefined) {
|
||||
// e.defaultValue = [data.id];
|
||||
// } else if (e.sourceType !== 1) {
|
||||
// e.defaultValue = [];
|
||||
// }
|
||||
// }
|
||||
// return templateJson;
|
||||
},
|
||||
getLaunchFlowParamList(transferList, data, rowKey = 'id') {
|
||||
transferList = JSON.parse(JSON.stringify(transferList))
|
||||
if (!transferList?.length) return [];
|
||||
for (let i = 0; i < transferList.length; i++) {
|
||||
const e = transferList[i];
|
||||
if (e.sourceType == 1) {
|
||||
if (e.sourceValue == '@formId') {
|
||||
e.sourceValue = data[rowKey] || '';
|
||||
} else {
|
||||
e.sourceValue = data[e.sourceValue] || data[e.sourceValue] == 0 || data[e.sourceValue] ==
|
||||
false ? data[e.sourceValue] : '';
|
||||
}
|
||||
}
|
||||
}
|
||||
return transferList;
|
||||
}
|
||||
}
|
||||
export default yunzhupaas
|
||||
520
utils/yunzhupaas.js
Normal file
520
utils/yunzhupaas.js
Normal file
@@ -0,0 +1,520 @@
|
||||
import CryptoJS from 'crypto-js'
|
||||
import request from '@/utils/request'
|
||||
import define from '@/utils/define'
|
||||
|
||||
const yunzhupaas = {
|
||||
goBack() {
|
||||
uni.navigateBack()
|
||||
},
|
||||
// 跳链接
|
||||
jumpLink(urlAddress, pageTitle = "") {
|
||||
if (!urlAddress) return
|
||||
let url = '/pages/apply/externalLink/index?url=' + encodeURIComponent(urlAddress) + '&fullName= ' +
|
||||
pageTitle
|
||||
uni.navigateTo({
|
||||
url: url,
|
||||
})
|
||||
},
|
||||
/* 传参字符串转义 */
|
||||
encodeContent(key) {
|
||||
const encodeArr = [{
|
||||
code: '%',
|
||||
encode: '%25'
|
||||
}, {
|
||||
code: '?',
|
||||
encode: '%3F'
|
||||
}, {
|
||||
code: '#',
|
||||
encode: '%23'
|
||||
}, {
|
||||
code: '&',
|
||||
encode: '%26'
|
||||
}, {
|
||||
code: '=',
|
||||
encode: '%3D'
|
||||
}];
|
||||
return key.replace(/[%?#&=]/g, ($, index, str) => {
|
||||
for (const k of encodeArr) {
|
||||
if (k.code === $) {
|
||||
return k.encode;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
solveAddressParam(item, config) {
|
||||
let yunzhupaasKey = config.yunzhupaasKey
|
||||
item.urlAddress = item.urlAddress ? item.urlAddress : config.option.appUrlAddress
|
||||
if (!item.urlAddress) return
|
||||
let urlAddress = item.urlAddress
|
||||
const regex = /\${[^{}]+}/g;
|
||||
urlAddress = urlAddress.replace(regex, match => {
|
||||
const key = match.slice(2, -1);
|
||||
let value = '';
|
||||
if (yunzhupaasKey === 'text') {
|
||||
return key == 'Field' || key == 'field' ? item.value : match
|
||||
}
|
||||
if (yunzhupaasKey === 'timeAxis') {
|
||||
if (key == 'name') value = item['content'];
|
||||
if (key == 'timestamp') value = item['timestamp'];
|
||||
}
|
||||
if (yunzhupaasKey === 'tableList') {
|
||||
return item[key] || match
|
||||
}
|
||||
if (yunzhupaasKey === 'dataBoard') {
|
||||
return key == 'Field' || key == 'field' ? item.num : match
|
||||
}
|
||||
if (yunzhupaasKey === 'rankList') {
|
||||
if (key === 'name') value = item.label;
|
||||
if (key === 'value') value = item.value.replace("¥ ", "");
|
||||
}
|
||||
// 图标替换
|
||||
if (yunzhupaasKey === 'barChart' || yunzhupaasKey === 'lineChart' || yunzhupaasKey === 'pieChart' ||
|
||||
yunzhupaasKey == 'radarChart' || yunzhupaasKey === 'mapChart') {
|
||||
if (key === 'name') value = item.name;
|
||||
if (key === 'long') value = item.long;
|
||||
if (key === 'lat') value = item.lat;
|
||||
if (key === 'value') value = item.value;
|
||||
if (key === 'type') value = item.type;
|
||||
}
|
||||
return value || match;
|
||||
});
|
||||
item.urlAddress = urlAddress
|
||||
},
|
||||
handelFormat(format) {
|
||||
let formatObj = {
|
||||
'yyyy': 'yyyy',
|
||||
'yyyy-MM': 'yyyy-MM',
|
||||
'yyyy-MM-dd': 'yyyy-MM-dd',
|
||||
'yyyy-MM-dd HH:mm': 'yyyy-MM-dd HH:mm',
|
||||
'yyyy-MM-dd HH:mm:ss': 'yyyy-MM-dd HH:mm:ss',
|
||||
'HH:mm:ss': 'HH:mm:ss',
|
||||
"HH:mm": "HH:mm",
|
||||
'YYYY': 'yyyy',
|
||||
'YYYY-MM': 'yyyy-MM',
|
||||
'YYYY-MM-DD': 'yyyy-MM-dd',
|
||||
'YYYY-MM-DD HH:mm': 'yyyy-MM-dd HH:mm',
|
||||
'YYYY-MM-DD HH:mm:ss': 'yyyy-MM-dd HH:mm:ss',
|
||||
}
|
||||
return formatObj[format]
|
||||
},
|
||||
toDate(v, format) {
|
||||
format = format ? format : "yyyy-MM-dd HH:mm:ss"
|
||||
if (!v) return "";
|
||||
var d = v;
|
||||
if (typeof v === 'string') {
|
||||
if (v.indexOf("/Date(") > -1)
|
||||
d = new Date(parseInt(v.replace("/Date(", "").replace(")/", ""), 10));
|
||||
else
|
||||
d = new Date(Date.parse(v.replace(/-/g, "/").replace("T", " ").split(".")[0]));
|
||||
} else {
|
||||
d = new Date(v)
|
||||
}
|
||||
var o = {
|
||||
"M+": d.getMonth() + 1,
|
||||
"d+": d.getDate(),
|
||||
"h+": d.getHours(),
|
||||
"H+": d.getHours(),
|
||||
"m+": d.getMinutes(),
|
||||
"s+": d.getSeconds(),
|
||||
"q+": Math.floor((d.getMonth() + 3) / 3),
|
||||
"S": d.getMilliseconds()
|
||||
};
|
||||
if (/(y+)/.test(format)) {
|
||||
format = format.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length));
|
||||
}
|
||||
for (var k in o) {
|
||||
if (new RegExp("(" + k + ")").test(format)) {
|
||||
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" +
|
||||
o[k])
|
||||
.length));
|
||||
}
|
||||
}
|
||||
return format;
|
||||
},
|
||||
toFileSize(size) {
|
||||
if (size == null || size == "") {
|
||||
return "";
|
||||
}
|
||||
if (size < 1024.00)
|
||||
return yunzhupaas.toDecimal(size) + " 字节";
|
||||
else if (size >= 1024.00 && size < 1048576)
|
||||
return yunzhupaas.toDecimal(size / 1024.00) + " KB";
|
||||
else if (size >= 1048576 && size < 1073741824)
|
||||
return yunzhupaas.toDecimal(size / 1024.00 / 1024.00) + " MB";
|
||||
else if (size >= 1073741824)
|
||||
return yunzhupaas.toDecimal(size / 1024.00 / 1024.00 / 1024.00) + " GB";
|
||||
},
|
||||
toDecimal(num) {
|
||||
if (num == null) {
|
||||
num = "0";
|
||||
}
|
||||
num = num.toString().replace(/\$|\,/g, '');
|
||||
if (isNaN(num))
|
||||
num = "0";
|
||||
var sign = (num == (num = Math.abs(num)));
|
||||
num = Math.floor(num * 100 + 0.50000000001);
|
||||
var cents = num % 100;
|
||||
num = Math.floor(num / 100).toString();
|
||||
if (cents < 10)
|
||||
cents = "0" + cents;
|
||||
for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
|
||||
num = num.substring(0, num.length - (4 * i + 3)) + '' +
|
||||
num.substring(num.length - (4 * i + 3));
|
||||
return (((sign) ? '' : '-') + num + '.' + cents);
|
||||
},
|
||||
getScriptFunc(str) {
|
||||
// #ifndef MP
|
||||
let func = null
|
||||
try {
|
||||
func = eval(str)
|
||||
if (Object.prototype.toString.call(func) !== '[object Function]') return false;
|
||||
return func
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return false
|
||||
}
|
||||
// #endif
|
||||
// #ifdef MP
|
||||
return false
|
||||
// #endif
|
||||
},
|
||||
interfaceDataHandler(data) {
|
||||
if (!data.dataProcessing) return data.data
|
||||
const dataHandler = this.getScriptFunc(data.dataProcessing)
|
||||
if (!dataHandler) return data.data
|
||||
return dataHandler(data.data)
|
||||
},
|
||||
toDateText(dateTimeStamp) {
|
||||
if (!dateTimeStamp) return ''
|
||||
let result = ''
|
||||
let minute = 1000 * 60; //把分,时,天,周,半个月,一个月用毫秒表示
|
||||
let hour = minute * 60;
|
||||
let day = hour * 24;
|
||||
let week = day * 7;
|
||||
let halfamonth = day * 15;
|
||||
let month = day * 30;
|
||||
let now = new Date().getTime(); //获取当前时间毫秒
|
||||
let diffValue = now - dateTimeStamp; //时间差
|
||||
if (diffValue < 0) return "刚刚"
|
||||
let minC = diffValue / minute; //计算时间差的分,时,天,周,月
|
||||
let hourC = diffValue / hour;
|
||||
let dayC = diffValue / day;
|
||||
let weekC = diffValue / week;
|
||||
let monthC = diffValue / month;
|
||||
if (monthC >= 1 && monthC <= 3) {
|
||||
result = " " + parseInt(monthC) + "月前"
|
||||
} else if (weekC >= 1 && weekC <= 3) {
|
||||
result = " " + parseInt(weekC) + "周前"
|
||||
} else if (dayC >= 1 && dayC <= 6) {
|
||||
result = " " + parseInt(dayC) + "天前"
|
||||
} else if (hourC >= 1 && hourC <= 23) {
|
||||
result = " " + parseInt(hourC) + "小时前"
|
||||
} else if (minC >= 1 && minC <= 59) {
|
||||
result = " " + parseInt(minC) + "分钟前"
|
||||
} else if (diffValue >= 0 && diffValue <= minute) {
|
||||
result = "刚刚"
|
||||
} else {
|
||||
let datetime = new Date();
|
||||
datetime.setTime(dateTimeStamp);
|
||||
let Nyear = datetime.getFullYear();
|
||||
let Nmonth = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime
|
||||
.getMonth() + 1;
|
||||
let Ndate = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
|
||||
let Nhour = datetime.getHours() < 10 ? "0" + datetime.getHours() : datetime.getHours();
|
||||
let Nminute = datetime.getMinutes() < 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
|
||||
let Nsecond = datetime.getSeconds() < 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
|
||||
result = Nyear + "-" + Nmonth + "-" + Ndate
|
||||
}
|
||||
return result;
|
||||
},
|
||||
//取整
|
||||
toRound(number) {
|
||||
var bite = 0;
|
||||
if (number < 10) {
|
||||
return 10;
|
||||
}
|
||||
if (number > 10 && number < 50) {
|
||||
return 50;
|
||||
}
|
||||
while (number >= 10) {
|
||||
number /= 10;
|
||||
bite += 1;
|
||||
}
|
||||
return Math.ceil(number) * Math.pow(10, bite);
|
||||
},
|
||||
getAmountChinese(val) {
|
||||
if (!val && val !== 0) return '';
|
||||
if (val == 0) return '零元整';
|
||||
const regExp = /[a-zA-Z]/;
|
||||
if (regExp.test(val)) return '数字较大溢出';
|
||||
let amount = +val;
|
||||
if (isNaN(amount)) return '';
|
||||
if (amount < 0) amount = Number(amount.toString().split('-')[1]);
|
||||
const NUMBER = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
|
||||
const N_UNIT1 = ['', '拾', '佰', '仟'];
|
||||
const N_UNIT2 = ['', '万', '亿', '兆'];
|
||||
const D_UNIT = ['角', '分', '厘', '毫'];
|
||||
let [integer, decimal] = amount.toString().split('.');
|
||||
if (integer && (integer.length > 15 || integer.indexOf('e') > -1)) return '数字较大溢出';
|
||||
let res = '';
|
||||
// 整数部分
|
||||
if (integer) {
|
||||
let yunzhupaasCount = 0;
|
||||
for (let i = 0, len = integer.length; i < len; i++) {
|
||||
const num = integer.charAt(i);
|
||||
const pos = len - i - 1; // 排除个位后 所处的索引位置
|
||||
const q = pos / 4;
|
||||
const m = pos % 4;
|
||||
if (num === '0') {
|
||||
yunzhupaasCount++;
|
||||
} else {
|
||||
if (yunzhupaasCount > 0 && m !== 3) res += NUMBER[0];
|
||||
yunzhupaasCount = 0;
|
||||
res += NUMBER[parseInt(num)] + N_UNIT1[m];
|
||||
}
|
||||
if (m == 0 && yunzhupaasCount < 4) res += N_UNIT2[Math.floor(q)];
|
||||
}
|
||||
}
|
||||
if (Number(integer) != 0) res += '元';
|
||||
// 小数部分
|
||||
if (parseInt(decimal)) {
|
||||
for (let i = 0; i < 4; i++) {
|
||||
const num = decimal.charAt(i);
|
||||
if (parseInt(num)) res += NUMBER[num] + D_UNIT[i];
|
||||
}
|
||||
} else {
|
||||
res += '整';
|
||||
}
|
||||
if (val < 0) res = '负数' + res;
|
||||
return res;
|
||||
},
|
||||
thousandsFormat(num) {
|
||||
if (num === 0) return '0';
|
||||
if (!num) return '';
|
||||
const numArr = num.toString().split('.');
|
||||
numArr[0] = numArr[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
||||
return numArr.join('.');
|
||||
},
|
||||
base64: {
|
||||
encode(str, isEncodeURIComponent = true) {
|
||||
if (!str) return ''
|
||||
const newStr = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(str))
|
||||
return isEncodeURIComponent ? encodeURIComponent(newStr) : newStr
|
||||
},
|
||||
decode(str, isDecodeURIComponent = true) {
|
||||
if (!str) return ''
|
||||
const newStr = isDecodeURIComponent ? decodeURIComponent(str) : str
|
||||
const result = CryptoJS.enc.Utf8.stringify(CryptoJS.enc.Base64.parse(newStr))
|
||||
return result
|
||||
}
|
||||
},
|
||||
idGenerator() {
|
||||
let quotient = (new Date() - new Date('2020-08-01'))
|
||||
quotient += Math.ceil(Math.random() * 1000)
|
||||
const chars = '0123456789ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz';
|
||||
const charArr = chars.split("")
|
||||
const radix = chars.length;
|
||||
const res = []
|
||||
do {
|
||||
let mod = quotient % radix;
|
||||
quotient = (quotient - mod) / radix;
|
||||
res.push(charArr[mod])
|
||||
} while (quotient);
|
||||
return res.join('')
|
||||
},
|
||||
dynamicText(value, options) {
|
||||
if (!value) return ''
|
||||
if (Array.isArray(value)) {
|
||||
if (!options || !Array.isArray(options)) return value.join()
|
||||
let textList = []
|
||||
for (let i = 0; i < value.length; i++) {
|
||||
let item = options.filter(o => o.id == value[i])[0]
|
||||
if (!item || !item.fullName) {
|
||||
textList.push(value[i])
|
||||
} else {
|
||||
textList.push(item.fullName)
|
||||
}
|
||||
}
|
||||
return textList.join()
|
||||
}
|
||||
if (!options || !Array.isArray(options)) return value
|
||||
let item = options.filter(o => o.id == value)[0]
|
||||
if (!item || !item.fullName) return value
|
||||
return item.fullName
|
||||
},
|
||||
treeToArray(treeData, type = '') {
|
||||
let list = []
|
||||
const loop = (treeData) => {
|
||||
for (let i = 0; i < treeData.length; i++) {
|
||||
const item = treeData[i]
|
||||
if (!type || item.type === type) list.push(item)
|
||||
if (item.children && Array.isArray(item.children)) loop(item.children)
|
||||
}
|
||||
}
|
||||
loop(treeData)
|
||||
return list
|
||||
},
|
||||
dynamicTreeText(value, options) {
|
||||
if (!value) return ''
|
||||
const transfer = (data, partition) => {
|
||||
let textList = []
|
||||
const loop = (data, id) => {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
if (data[i].id === id) {
|
||||
textList.push(data[i].fullName)
|
||||
break
|
||||
}
|
||||
if (data[i].children) loop(data[i].children, id)
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
if (Array.isArray(data[i])) {
|
||||
textList.push(transfer(data[i], "/"))
|
||||
} else {
|
||||
loop(options, data[i])
|
||||
}
|
||||
}
|
||||
return textList.join(partition)
|
||||
}
|
||||
if (!options || !Array.isArray(options)) return Array.isArray(value) ? value.join() : value
|
||||
if (Array.isArray(value)) return transfer(value)
|
||||
return transfer(value.split())
|
||||
},
|
||||
onlineUtils: {
|
||||
// 获取用户信息
|
||||
getUserInfo() {
|
||||
const userInfo = uni.getStorageSync('userInfo') || {};
|
||||
userInfo.token = uni.getStorageSync('token') || '';
|
||||
return userInfo;
|
||||
},
|
||||
// 获取设备信息
|
||||
getDeviceInfo() {
|
||||
const deviceInfo = {
|
||||
vueVersion: '3',
|
||||
origin: 'app'
|
||||
};
|
||||
return deviceInfo;
|
||||
},
|
||||
// 请求
|
||||
request(url, method, data, header) {
|
||||
return request({
|
||||
url: url,
|
||||
method: method || 'GET',
|
||||
data: data || {},
|
||||
header: header || {},
|
||||
options: {
|
||||
load: false
|
||||
}
|
||||
})
|
||||
},
|
||||
// 路由跳转
|
||||
route(url, type = 'navigateTo') {
|
||||
if (!url) return;
|
||||
uni.$u.route({
|
||||
url,
|
||||
type
|
||||
})
|
||||
},
|
||||
// 消息提示
|
||||
toast(message, _type = 'info', duration = 3000) {
|
||||
uni.$u.toast(message, duration)
|
||||
},
|
||||
},
|
||||
aesEncryption: {
|
||||
decrypt(str, cipherKey = '') {
|
||||
if (!cipherKey) cipherKey = define.cipherKey
|
||||
const hexStr = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Hex.parse(str))
|
||||
const decryptedData = CryptoJS.AES.decrypt(hexStr, CryptoJS.enc.Utf8.parse(cipherKey), {
|
||||
mode: CryptoJS.mode.ECB,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString(CryptoJS.enc.Utf8);
|
||||
return decryptedData
|
||||
},
|
||||
encrypt(str, cipherKey = '') {
|
||||
if (!cipherKey) cipherKey = define.cipherKey
|
||||
const encryptedData = CryptoJS.AES.encrypt(str, CryptoJS.enc.Utf8.parse(cipherKey), {
|
||||
mode: CryptoJS.mode.ECB,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString();
|
||||
const result = CryptoJS.enc.Hex.stringify(CryptoJS.enc.Base64.parse(encryptedData))
|
||||
return result
|
||||
}
|
||||
},
|
||||
getDistance(lat1, lon1, lat2, lon2) {
|
||||
const toRadians = (degrees) => {
|
||||
return degrees * (Math.PI / 180);
|
||||
}
|
||||
const R = 6371;
|
||||
const dLat = toRadians(lat2 - lat1);
|
||||
const dLon = toRadians(lon2 - lon1);
|
||||
const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
|
||||
Math.cos(toRadians(lat1)) * Math.cos(toRadians(lat2)) *
|
||||
Math.sin(dLon / 2) * Math.sin(dLon / 2);
|
||||
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
||||
const distance = R * c;
|
||||
return distance * 1000;
|
||||
},
|
||||
getParamList(templateJson, data, rowKey = 'id') {
|
||||
if (!templateJson || !templateJson.length) return [];
|
||||
for (let i = 0; i < templateJson.length; i++) {
|
||||
const e = templateJson[i];
|
||||
if (e.sourceType == 1 && data) {
|
||||
e.defaultValue = data[e.relationField] || data[e.relationField] == 0 || data[e
|
||||
.relationField] ==
|
||||
false ? data[e.relationField] : '';
|
||||
}
|
||||
if (e.sourceType == 4 && e.relationField == '@formId') e.defaultValue = data[rowKey] || '';
|
||||
}
|
||||
return templateJson;
|
||||
},
|
||||
getBatchParamList(templateJson, data) {
|
||||
if (!templateJson?.length) return [];
|
||||
for (let i = 0; i < templateJson.length; i++) {
|
||||
const e = templateJson[i];
|
||||
if (e.sourceType == 1 && data.items?.length) {
|
||||
e.defaultValue = data.items.map(o => (data.webType == '4' ? o[e.relationField] : o[e
|
||||
.relationField + '_yunzhupaasId']));
|
||||
}
|
||||
if (e.sourceType == 4 && e.relationField == '@formId') e.defaultValue = data.items.map(o => o.id);
|
||||
}
|
||||
return templateJson;
|
||||
// if (!templateJson || !templateJson.length) return [];
|
||||
// for (let i = 0; i < templateJson.length; i++) {
|
||||
// const e = templateJson[i];
|
||||
// let defaultValue = [];
|
||||
// if (e.sourceType === 1 && data.length) {
|
||||
// data.forEach(o => {
|
||||
// if (type != 1 && o.hasOwnProperty(e.relationField + '_yunzhupaasId')) {
|
||||
// defaultValue.push(o[e.relationField + '_yunzhupaasId']);
|
||||
// } else {
|
||||
// defaultValue.push(o[e.relationField]);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// e.defaultValue = defaultValue;
|
||||
// if (e.sourceType === 4 && e.relationField === '@formId' && data.id !== undefined) {
|
||||
// e.defaultValue = [data.id];
|
||||
// } else if (e.sourceType !== 1) {
|
||||
// e.defaultValue = [];
|
||||
// }
|
||||
// }
|
||||
// return templateJson;
|
||||
},
|
||||
getLaunchFlowParamList(transferList, data, rowKey = 'id') {
|
||||
transferList = JSON.parse(JSON.stringify(transferList))
|
||||
if (!transferList?.length) return [];
|
||||
for (let i = 0; i < transferList.length; i++) {
|
||||
const e = transferList[i];
|
||||
if (e.sourceType == 1) {
|
||||
if (e.sourceValue == '@formId') {
|
||||
e.sourceValue = data[rowKey] || '';
|
||||
} else {
|
||||
e.sourceValue = data[e.sourceValue] || data[e.sourceValue] == 0 || data[e.sourceValue] ==
|
||||
false ? data[e.sourceValue] : '';
|
||||
}
|
||||
}
|
||||
}
|
||||
return transferList;
|
||||
}
|
||||
}
|
||||
export default yunzhupaas
|
||||
Reference in New Issue
Block a user