import * as dd from 'dingtalk-jsapi'
|
import store from '@/store'
|
|
/***
|
* phoneRegular: 手机号验证
|
* mailboxRegular: 邮箱验证
|
* positiveInteger: 正整数
|
* decimal: 小数(只支持四位小数)
|
* positiveIntegerDecimal: 正整数小数(最多四位小数)
|
* number:数字最多保留四位小数
|
*/
|
const REGULAR = {
|
phoneRegular: /^1[3456789]\d{9}$/,
|
mailboxRegular: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
|
positiveInteger: /^[0-9]*[1-9][0-9]*$/,
|
decimal: /^0$|^[1-9]\d{0,15}$|^[1-9]\d{0,15}\.{1}\d{1,4}$|^0\.{1}\d{1,4}$/g,
|
positiveIntegerDecimal: /^([1-9][0-9]*|0)(\.[0-9]?[1-9][1-9][1-9])?$/,
|
number: /^\d+(?:\.\d{1,4})?$/
|
}
|
|
/***
|
* 判断设备机型适配底部安全距离
|
* true 是
|
* false 否
|
*/
|
const equipment = () => {
|
// X XS, XS Max, XR,11, 11pro,11pro max,12mini,12, 12 pro,12 pro max
|
const xSeriesConfig = [
|
{
|
devicePixelRatio: 3,
|
width: 375,
|
height: 812,
|
},
|
{
|
devicePixelRatio: 3,
|
width: 414,
|
height: 896,
|
},
|
{
|
devicePixelRatio: 2,
|
width: 414,
|
height: 896,
|
},
|
{
|
devicePixelRatio: 3,
|
width: 315,
|
height: 812,
|
},
|
{
|
devicePixelRatio: 3,
|
width: 390,
|
height: 844,
|
},
|
{
|
devicePixelRatio: 3,
|
width: 428,
|
height: 926,
|
}
|
];
|
// h5
|
if (typeof window !== 'undefined' && window) {
|
const isIOS = /iphone/gi.test(window.navigator.userAgent);
|
if (!isIOS) return false;
|
const { devicePixelRatio, screen } = window;
|
const { width, height } = screen;
|
return xSeriesConfig.some(item => item.devicePixelRatio === devicePixelRatio && item.width === width && item.height === height);
|
}
|
return false;
|
}
|
|
/***
|
*
|
* @param size 文件大小
|
*/
|
const sizeTostr = (size: any): string => {
|
let data = "";
|
if (size < 0.1 * 1024) { //如果小于0.1KB转化成B
|
data = size.toFixed(2) + "B";
|
} else if (size < 0.1 * 1024 * 1024) {//如果小于0.1MB转化成KB
|
data = (size / 1024).toFixed(2) + "KB";
|
} else if (size < 0.1 * 1024 * 1024 * 1024) { //如果小于0.1GB转化成MB
|
data = (size / (1024 * 1024)).toFixed(2) + "MB";
|
} else { //其他转化成GB
|
data = (size / (1024 * 1024 * 1024)).toFixed(2) + "GB";
|
}
|
let sizestr = data + "";
|
let len = sizestr.indexOf("\.");
|
let dec = sizestr.substr(len + 1, 2);
|
if (dec == "00") {//当小数点后为00时 去掉小数部分
|
return sizestr.substring(0, len) + sizestr.substr(len + 3, 2);
|
}
|
return sizestr;
|
}
|
|
/***
|
*
|
* @param type 文件类型
|
*/
|
function judgmentType (type: string): boolean {
|
let arr = ['jpg', 'jpeg', 'png']
|
// arr.includes(type)
|
let open: boolean = false
|
arr.forEach((item: string) => {
|
if (type === item) {
|
open = true
|
}
|
})
|
return open;
|
}
|
|
/***
|
*
|
* @param time 日期 年月日
|
*/
|
function gsdate (time: any): string {
|
let date = new Date(time)
|
let y: any = date.getFullYear()
|
let m: any = date.getMonth() + 1
|
m = m < 10 ? ('0' + m) : m
|
let d: any = date.getDate()
|
d = d < 10 ? ('0' + d) : d
|
return y + '-' + m + '-' + d;
|
}
|
|
/***
|
*
|
* @param time 日期 年月日时分秒
|
* @param Sign 间隔
|
*/
|
function setTime (time: any, Sign: string): string {
|
let year= time.getFullYear();
|
let month = time.getMonth() + 1 >= 10 ? time.getMonth() + 1 : `0${time.getMonth() + 1}`;
|
let day = time.getDate() >= 10 ? time.getDate() : `0${time.getDate()}`;
|
let hour = time.getHours() >= 10 ? time.getHours() : `0${time.getHours()}`;
|
let minute = time.getMinutes() >= 10 ? time.getMinutes() : `0${time.getMinutes()}`;
|
let second = time.getSeconds() >= 10 ? time.getSeconds() : `0${time.getSeconds()}`;
|
return [year, Sign, month , Sign, day, ' ', hour , ':', minute, ':', second ].join('');
|
}
|
|
/***
|
*
|
* @param time 日期 年月日时分秒
|
* @param Sign 间隔
|
*/
|
function setTimeO (time: any, Sign: string): string {
|
let year = time.getFullYear();
|
let month = time.getMonth() + 1 >= 10 ? time.getMonth() + 1 : `0${time.getMonth() + 1}`;
|
let day = time.getDate() >= 10 ? time.getDate() : `0${time.getDate()}`;
|
let hour = time.getHours() >= 10 ? time.getHours() : `0${time.getHours()}`;
|
let minute = time.getMinutes() >= 10 ? time.getMinutes() : `0${time.getMinutes()}`;
|
let second = time.getSeconds() >= 10 ? time.getSeconds() : `0${time.getSeconds()}`;
|
return [year, Sign, month , Sign, day, ' ', hour , ':', minute, ':', '00' ].join('');
|
}
|
|
|
/***
|
* 返回 true:顶顶端
|
* 返回 false:h5端
|
*/
|
function judgmentPlatform (): boolean {
|
// alert(store.state.env)
|
// alert(store.state.env !== 'DD')
|
return store.state.env === 'DD'
|
// return dd.env.platform !== 'notInDingTalk';
|
}
|
|
/***REGULAR
|
*
|
* @param auth 需要验证的权限
|
*/
|
function auth (auth: string): boolean {
|
const configPermissions = auth
|
if (store.state.userInfo.permissions === {}) { // 没有权限
|
return false
|
}
|
const authList = store.state.userInfo.permissions // 获取所有权限
|
const isShow = authList.indexOf(configPermissions)
|
return isShow !== -1;
|
}
|
|
/***
|
* DOCUMENT_TYPE: 出入库单据 - 单据类型
|
*/
|
const DOCUMENT_TYPE = {
|
1: {
|
name: '车间领料'
|
},
|
2: {
|
name: '机台备料'
|
},
|
3: {
|
name: '车间转库'
|
},
|
4: {
|
name: '完工入库'
|
},
|
5: {
|
name: '计划领料'
|
},
|
6: {
|
name: '外协领料'
|
},
|
7: {
|
name: '外协完工转库'
|
},
|
8: {
|
name: '成品入库'
|
},
|
9: {
|
name: '成品转库'
|
},
|
10: {
|
name: '让步放行入库'
|
},
|
11: {
|
name: '让步放行转库'
|
},
|
12: {
|
name: '客返返修领料'
|
},
|
13: {
|
name: '客返返修入库'
|
},
|
14: {
|
name: '跨组织转库'
|
},
|
15: {
|
name: '工单投料(出库),工单产出(入)'
|
},
|
16: {
|
name: '销售出库'
|
},
|
17: {
|
name: '让步销售'
|
}
|
}
|
|
export {
|
REGULAR,
|
gsdate,
|
setTime,
|
judgmentPlatform,
|
auth,
|
judgmentType,
|
sizeTostr,
|
equipment,
|
setTimeO,
|
DOCUMENT_TYPE
|
}
|