Merge branch 'dev' of http://47.94.165.164:13000/geg-gas/geg-gas-web into dev
This commit is contained in:
2
.env
2
.env
@ -5,7 +5,7 @@ VITE_PORT = 3100
|
||||
VITE_GLOB_APP_TITLE = 供应链平台
|
||||
|
||||
# spa shortname(英文缩写)
|
||||
VITE_GLOB_APP_SHORT_NAME = 供应链平台
|
||||
VITE_GLOB_APP_SHORT_NAME = GES_SCM
|
||||
|
||||
# 应用名称(仅展示在登录页和左上角logo旁,其他情况用VITE_GLOB_APP_TITLE)
|
||||
VITE_SYSTEM_NAME = 供应链平台
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
<!-- <div id="GLOB_API_URL" style="display: none">%VITE_GLOB_API_URL%</div>-->
|
||||
<script src="/iconfont.js"></script>
|
||||
<script src="/desktopIconfont.js"></script>
|
||||
<script src="/native.extends.js"></script>
|
||||
<script src="/native.extends.js"></script>
|
||||
|
||||
<script type="module">
|
||||
import {getAppEnvConfig} from "./src/utils/env";
|
||||
|
||||
@ -3,25 +3,10 @@
|
||||
*/
|
||||
;(function(){
|
||||
|
||||
Object.is = function(obj){
|
||||
return Object.prototype.toString.call(obj) == "[object Object]";
|
||||
}
|
||||
|
||||
String.is = function(obj){
|
||||
return Object.prototype.toString.call(obj) == "[object String]";
|
||||
}
|
||||
|
||||
String.prototype.getBytes = function(charset){
|
||||
charset = charset||"UTF-8";
|
||||
return new TextEncoder(charset).encode(this);
|
||||
}
|
||||
|
||||
String.ofBytes = function(arr,charset){
|
||||
charset = charset||"UTF-8";
|
||||
var uint = arr instanceof Uint8Array?arr:new Uint8Array(arr);
|
||||
return new TextDecoder(charset).decode(uint);
|
||||
}
|
||||
|
||||
String.prototype.startWith = function(str){
|
||||
if(str==undefined) return false;
|
||||
if(str.length > this.length) return false;
|
||||
@ -45,9 +30,6 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
String.prototype.eq = function(str){
|
||||
return (this+'')===str;
|
||||
}
|
||||
})();
|
||||
|
||||
/**
|
||||
@ -59,12 +41,14 @@
|
||||
}
|
||||
|
||||
Number.format = function(num,fmt){
|
||||
const sign = num < 0 ? '-' : '';
|
||||
const absNum = Math.abs(num);
|
||||
var fmts = fmt.split(".");
|
||||
var format = {
|
||||
int:fmts[0].split("").reverse(),
|
||||
scale:fmts[1]!=undefined?fmts[1].split(""):undefined
|
||||
}
|
||||
var numsp = (num+"").split(".");
|
||||
var numsp = (absNum+"").split(".");
|
||||
var numinfo = {
|
||||
int:numsp[0].split("").reverse(),
|
||||
scale:numsp[1]!=undefined?numsp[1].split(""):undefined
|
||||
@ -88,6 +72,9 @@
|
||||
}
|
||||
}else if(item==","){
|
||||
if(ni < numinfo.int.length){
|
||||
if(ni==numinfo.int.length-1 && numinfo.int[ni]=="-"){
|
||||
continue;
|
||||
}
|
||||
res.int.push(",");
|
||||
}else{
|
||||
continue;
|
||||
@ -127,13 +114,14 @@
|
||||
reStr+= ".";
|
||||
reStr+= res.scale.join("");
|
||||
}
|
||||
return reStr.replace("-,", "-");
|
||||
//return reStr.replace("-,", "-");
|
||||
return sign+reStr;
|
||||
}
|
||||
|
||||
Number.prototype.format = function(fmt){
|
||||
if(fmt==undefined) throw new Error("参数格式化表达式不能为空!");
|
||||
return Number.format(this,fmt);
|
||||
}
|
||||
// Number.prototype.format = function(fmt){
|
||||
// if(fmt==undefined) throw new Error("参数格式化表达式不能为空!");
|
||||
// return Number.format(this,fmt);
|
||||
// }
|
||||
|
||||
Number.parse = function(str){
|
||||
if(str==undefined) return str;
|
||||
@ -283,9 +271,6 @@
|
||||
if(/(y+)/.test(fmt)){
|
||||
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
|
||||
}
|
||||
if(/(E+)/.test(fmt)){
|
||||
fmt=fmt.replace(RegExp.$1,((RegExp.$1.length>1)?(RegExp.$1.length==3?"星期":"周"):"")+this.i18n("Date.Week."+this.getDay()));
|
||||
}
|
||||
for(var k in o){
|
||||
if(new RegExp("("+ k +")").test(fmt)){
|
||||
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
|
||||
@ -399,83 +384,5 @@
|
||||
}
|
||||
}
|
||||
|
||||
Date.prototype.i18n = function(fmt,args){
|
||||
var str = undefined;
|
||||
if($i18n){
|
||||
var val = $i18n.t(fmt);
|
||||
str =val==fmt?undefined:val;
|
||||
}
|
||||
if(str==undefined){
|
||||
var obj = Date.Dictionary;
|
||||
var fmts = fmt.split('.');
|
||||
for (let i = 1; i < fmts.length; i++) {
|
||||
const item = fmts[i];
|
||||
obj = obj[item];
|
||||
if(obj==undefined){
|
||||
break;
|
||||
}
|
||||
}
|
||||
str = obj;
|
||||
}
|
||||
if(str==undefined) return str;
|
||||
if(args!=undefined){
|
||||
for (var i = 0; i < args.length; i++) {
|
||||
args[i] = args[i] || "";
|
||||
var reg = new RegExp("({)" + i + "(})", "g");
|
||||
str = str.replace(reg, args[i]);
|
||||
}
|
||||
}
|
||||
str = str.replace(/^\{\d+\}$/g, "");
|
||||
return str;
|
||||
}
|
||||
|
||||
Date.prototype.getHolidayName = function(){
|
||||
return this.i18n("Date.Holiday."+this.format("MMdd"));
|
||||
}
|
||||
|
||||
Date.prototype.getLunarHolidayName = function(fmt){
|
||||
return this.i18n("Date.LunarHoliday."+fmt);
|
||||
}
|
||||
|
||||
Date.prototype.getTimeDistance = function(){
|
||||
var date_now = new Date();
|
||||
var time = this.getTime();
|
||||
var distance = date_now.getTime() - time;
|
||||
|
||||
var days = parseInt(distance / (1000 * 60 * 60 * 24));
|
||||
if (days == 1) {
|
||||
return this.i18n('Date.timeDistance.yesterday');
|
||||
} else if (days > 1 && days < 4) {
|
||||
return this.i18n('Date.timeDistance.daysAgo',[days]);//days ago
|
||||
} else if (days > 3) {
|
||||
// 超过3天的,返回日期,如 2018-12-05
|
||||
// 如果是今年的,就省去年份,返回 12-05
|
||||
var year = this.getFullYear();
|
||||
var month = this.getMonth() + 1;
|
||||
if (month < 10) {
|
||||
month = "0" + month;
|
||||
}
|
||||
var day = this.getDate();
|
||||
if (day < 10) {
|
||||
day = "0" + day;
|
||||
}
|
||||
if (date_now.getFullYear() == year) {
|
||||
return month + "-" + day;
|
||||
} else {
|
||||
return year + "-" + month + "-" + day;
|
||||
}
|
||||
}
|
||||
|
||||
var hours = parseInt((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
||||
if (hours > 0) {
|
||||
return this.i18n('Date.timeDistance.hoursAgo',[hours]);
|
||||
}
|
||||
|
||||
var minutes = parseInt((distance % (1000 * 60 * 60)) / (1000 * 60));
|
||||
if (minutes > 0) {
|
||||
return this.i18n('Date.timeDistance.minutesAgo',[minutes]);
|
||||
};
|
||||
return this.i18n('Date.timeDistance.justNow');
|
||||
}
|
||||
|
||||
})();
|
||||
@ -20,7 +20,7 @@
|
||||
import { computed } from 'vue';
|
||||
import { getLogoInfo } from './api/system/login';
|
||||
import { onBeforeUnmount } from 'vue';
|
||||
import { getAppEnvConfig } from '/@/utils/env';
|
||||
//import { getAppEnvConfig } from '/@/utils/env';
|
||||
// support Multi-language
|
||||
|
||||
const { getLocale } = useLocale();
|
||||
|
||||
@ -24,23 +24,43 @@ const DataFormat = {
|
||||
* @param formatString 格式化字符串
|
||||
* @returns 格式化后的日期
|
||||
*/
|
||||
formatDate: (date: Date | string | number, fmt: string = 'yyyy-MM-dd HH:mm:ss') => {
|
||||
return Date.valueOf(date).format(fmt);
|
||||
format: (data: any, options:FormatOption[]) => {
|
||||
for (let i = 0; i < options.length; i++) {
|
||||
const option = options[i];
|
||||
data = option.format(data);
|
||||
}
|
||||
return data;
|
||||
},
|
||||
formatQty: (val: string | number, digits:number) => {
|
||||
return format(new Date(date), digits);
|
||||
},
|
||||
formatAmt: (val: string | number, formatString: number) => {
|
||||
return format(new Date(date), digits);
|
||||
},
|
||||
parseDate: (date: string | Date, formatString: string = 'yyyy-MM-dd HH:mm:ss') => {
|
||||
return new Date(date);
|
||||
},
|
||||
format:(data:any,option:any) => {
|
||||
test: () => {
|
||||
let data: any[] = [
|
||||
{
|
||||
id: 1,
|
||||
name: 'John',
|
||||
age: 30,
|
||||
total: 100548931,
|
||||
amt: 12121.256,
|
||||
createDate: new Date()
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: 'John-1',
|
||||
age: 30,
|
||||
total: 8564355.78832,
|
||||
amt: 12121.256,
|
||||
createDate: "2025-06-26 10:25:06.125"
|
||||
}
|
||||
];
|
||||
|
||||
DataFormat.format(data, [
|
||||
new FormatOption('total', FormatType.QTY,"###,###,###,###,###,###,###.00"),
|
||||
new FormatOption('amt', FormatType.AMT, 2),
|
||||
new FormatOption('createDate', FormatType.DATE, DATE_FORMAT.DATE)
|
||||
]);
|
||||
console.log(data);
|
||||
},
|
||||
};
|
||||
|
||||
export class FormatOption {
|
||||
class FormatOption {
|
||||
key:string;
|
||||
type: string;
|
||||
formatString: string|number;
|
||||
@ -56,7 +76,7 @@ export class FormatOption {
|
||||
}
|
||||
|
||||
static createQty(key:string,decimal?:number){
|
||||
return new FormatOption(key,FormatType.QTY,decimal!=undefined?decimal:3);
|
||||
return new FormatOption(key,FormatType.QTY,decimal!=undefined?decimal:3);
|
||||
}
|
||||
|
||||
static createAmt(key:string){
|
||||
@ -66,7 +86,7 @@ export class FormatOption {
|
||||
format(data:any):any{
|
||||
var keys = this.key.split(".");
|
||||
let valueKey = keys[keys.length-1];
|
||||
let valueData;
|
||||
let valueData:any = undefined;
|
||||
if(keys.length<=1){
|
||||
valueData = data;
|
||||
}else{
|
||||
@ -76,13 +96,11 @@ export class FormatOption {
|
||||
for (let i = 0; i < valueData.length; i++) {
|
||||
let item = valueData[i];
|
||||
let val = item[valueKey];
|
||||
item[valueKey] = this.format(val);
|
||||
item[valueKey] = this.formatValue(val);
|
||||
}
|
||||
}
|
||||
if(this.type==FormatType.DATE){
|
||||
|
||||
}else{
|
||||
|
||||
let val = valueData[valueKey];
|
||||
valueData[valueKey] = this.formatValue(val);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
@ -91,18 +109,36 @@ export class FormatOption {
|
||||
if(value==undefined || value==null) return value;
|
||||
try {
|
||||
if(this.type==FormatType.DATE || this.type==FormatType.TIME || this.type==FormatType.DATETIME){
|
||||
return DataFormat.formatDate(value,this.formatString as string);
|
||||
}else if(this.type==FormatType.QTY){
|
||||
return DataFormat.formatQty(value,this.formatString as number);
|
||||
}else if(this.type==FormatType.AMT){
|
||||
return DataFormat.formatAmt(value,this.formatString as number);
|
||||
let fmt = this.formatString as string;
|
||||
return Date.valueOf(value).format(fmt);
|
||||
}else if(this.type==FormatType.QTY || this.type==FormatType.AMT){
|
||||
let numFmt = undefined;
|
||||
if(Number.is(this.formatString)){
|
||||
numFmt = this.createNumberFmt(this.formatString as number);
|
||||
}else{
|
||||
numFmt = this.formatString as string;
|
||||
}
|
||||
return Number.format(Number.parse(value),numFmt) ;
|
||||
}
|
||||
} catch (error) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
createNumberFmt(num:number){
|
||||
let numFmt = "###,###,###,###,###,###";
|
||||
if(num>0){
|
||||
numFmt += ".";
|
||||
for (let i = 0; i < num; i++) {
|
||||
numFmt += "0";
|
||||
}
|
||||
}
|
||||
return numFmt;
|
||||
}
|
||||
}
|
||||
|
||||
export {DataFormat,FormatOption,DATE_FORMAT,FormatType};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user