diff --git a/CoreCms.Net.Uni-App/CoreShop/common/utils/formatter.js b/CoreCms.Net.Uni-App/CoreShop/common/utils/formatter.js
new file mode 100644
index 00000000..03426ff5
--- /dev/null
+++ b/CoreCms.Net.Uni-App/CoreShop/common/utils/formatter.js
@@ -0,0 +1,210 @@
+/**
+ * 格式化器
+ * @Author: wenjm
+ * @Date: 2018-02-24 23:28:28
+ * @Last Modified by: wenjm
+ * @Last Modified time: 2018-05-15 14:35:01
+ */
+export default {
+
+ formatDateTime(value) {
+ return this.formatDate(value, 'yyyy-MM-dd hh:mm:ss');
+ },
+
+ /**
+ * 格式化时间显示方式
+ * 用法:format="yyyy-MM-dd hh:mm:ss";
+ */
+ formatDate(value, format = 'yyyy-MM-dd') {
+ if (!value) return "";
+ if (!format) format = "yyyy-MM-dd";
+ let d = value;
+ if (typeof value === 'string') {
+ if (value.indexOf("/Date(") > -1)
+ d = new Date(parseInt(value.replace("/Date(", "").replace(")/", ""), 10));
+ else
+ d = new Date(Date.parse(value.replace(/-/g, "/").replace("T", " ").split(".")[0])); //.split(".")[0] 用来处理出现毫秒的情况,截取掉.xxx,否则会出错
+ }
+ let o = {
+ "M+": d.getMonth() + 1, //month
+ "d+": d.getDate(), //day
+ "h+": d.getHours(), //hour
+ "m+": d.getMinutes(), //minute
+ "s+": d.getSeconds(), //second
+ "q+": Math.floor((d.getMonth() + 3) / 3), //quarter
+ "S": d.getMilliseconds() //millisecond
+ };
+ if (/(y+)/.test(format)) {
+ format = format.replace(RegExp.$1, (d.getFullYear() + "").substr(4 - RegExp.$1.length));
+ }
+ for (let 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;
+ },
+
+ formatTime(t) {
+ if (isNaN(t) || t == 0) { return 0; }
+
+ let n = 31536000000;
+ if (t >= n) {
+ return this.formatNumber(t / n, '#,##0.##') + ' 年';
+ }
+
+ n = 86400000;
+ if (t >= n) {
+ return this.formatNumber(t / n, '#,##0.##') + ' 日';
+ }
+
+ n = 3600000;
+ if (t >= n) {
+ return this.formatNumber(t / n, '#,##0.##') + ' 小时';
+ }
+
+ n = 60000;
+ if (t >= n) {
+ return this.formatNumber(t / n, '#,##0.##') + ' 分';
+ }
+
+ n = 1000;
+ if (t >= n) {
+ return this.formatNumber(t / n, '#,##0.##') + ' 秒';
+ }
+
+ return this.formatNumber(t, '#,##0.##') + ' 毫秒';
+ },
+
+ /**
+ * 格式化数字显示方式
+ * 用法
+ * formatNumber(12345.999,'#,##0.00');
+ * formatNumber(12345.999,'#,##0.##');
+ * formatNumber(123,'000000');
+ */
+ formatNumber(value, pattern) {
+ if (value == null)
+ return value;
+ let strarr = value ? value.toString().split('.') : ['0'];
+ let fmtarr = pattern ? pattern.split('.') : [''];
+ let retstr = '';
+ // 整数部分
+ let str = strarr[0];
+ let fmt = fmtarr[0];
+ let i = str.length - 1;
+ let comma = false;
+ for (let f = fmt.length - 1; f >= 0; f--) {
+ switch (fmt.substr(f, 1)) {
+ case '#':
+ if (i >= 0) retstr = str.substr(i--, 1) + retstr;
+ break;
+ case '0':
+ if (i >= 0) retstr = str.substr(i--, 1) + retstr;
+ else retstr = '0' + retstr;
+ break;
+ case ',':
+ comma = true;
+ retstr = ',' + retstr;
+ break;
+ }
+ }
+ if (i >= 0) {
+ if (comma) {
+ let l = str.length;
+ for (; i >= 0; i--) {
+ retstr = str.substr(i, 1) + retstr;
+ if (i > 0 && ((l - i) % 3) == 0) retstr = ',' + retstr;
+ }
+ } else retstr = str.substr(0, i + 1) + retstr;
+ }
+ retstr = retstr + '.';
+ // 处理小数部分
+ str = strarr.length > 1 ? strarr[1] : '';
+ fmt = fmtarr.length > 1 ? fmtarr[1] : '';
+ i = 0;
+ for (let f = 0; f < fmt.length; f++) {
+ switch (fmt.substr(f, 1)) {
+ case '#':
+ if (i < str.length) retstr += str.substr(i++, 1);
+ break;
+ case '0':
+ if (i < str.length) retstr += str.substr(i++, 1);
+ else retstr += '0';
+ break;
+ }
+ }
+ return retstr.replace(/^,+/, '').replace(/\.$/, '');
+ },
+
+ //格式化金额
+ formatMoney(value, pattern) {
+ if (!value || value == 0)
+ return 0;
+ let sign = value < 0 ? '-' : '';
+ return sign + this.formatNumber(Math.abs(value), pattern || '#,##0.00');
+ },
+
+ formatMoneyCn(value) {
+ return '¥' + this.formatMoney(value);
+ },
+
+ formatWeek(value) {
+ let week = new Array("日", "一", "二", "三", "四", "五", "六");
+ let datetimeReg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
+ if (datetimeReg.test(value)) {
+ value = value.replace(/-/g, "/");
+ }
+ let day = new Date(value).getDay();
+
+ return "星期" + week[day];
+ },
+
+ formatMoneyAuto(value, pattern = '#,##0.00') {
+ let unit = "元";
+ if (value) {
+ let unitNum = {
+ // '千': 1000.00,
+ '万': 10000.00,
+ '千万': 10000000.00,
+ '亿': 100000000.00,
+ '百亿': 10000000000.00
+ };
+ let unitCount = {
+ // "4": '千',
+ "5": '万',
+ "8": '千万',
+ "9": '亿',
+ "11": '百亿'
+ };
+ let count = 0;
+ let money = value;
+
+ while (money >= 1) {
+ money = money / 10;
+ count++;
+ }
+ let tmp = unitCount[count + ""];
+ while (count >= 4 && tmp === undefined) {
+ tmp = unitCount[(--count) + ""];
+ }
+ unit = tmp === undefined ? unit : tmp;
+ value = (count >= 4) ? value / (unitNum[unit]) : value;
+ }
+ return this.formatMoney(value, pattern) + unit || "";
+ },
+
+ formatFileSize(value) {
+ if (null == value || value == '') {
+ return "0 Bytes";
+ }
+ var unitArr = new Array("Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB");
+ var index = 0;
+ var srcsize = parseFloat(value);
+ index = Math.floor(Math.log(srcsize) / Math.log(1024));
+ var size = srcsize / Math.pow(1024, index);
+ size = size.toFixed(2);
+ return size + unitArr[index];
+ }
+
+}
\ No newline at end of file
diff --git a/CoreCms.Net.Uni-App/CoreShop/common/utils/formatter.md b/CoreCms.Net.Uni-App/CoreShop/common/utils/formatter.md
new file mode 100644
index 00000000..6ee94d3b
--- /dev/null
+++ b/CoreCms.Net.Uni-App/CoreShop/common/utils/formatter.md
@@ -0,0 +1,51 @@
+格式化器:
+支持日期格式化、格式化数字显示、格式化金额、格式化星期、小写金额转大写、文件格式化
+
+使用:
+日期格式使用:
+2018-02-24 23:28:28 :
+var date=formatter.formatDateTime(new Date());
+2018-02-24
+var date=formatter.formatDate(new Date(),"yyyy-MM-dd");
+2018/02/24
+var date=formatter.formatDate(new Date(),"yyyy/MM/dd");
+2018-02-24 23:28
+var date=formatter.formatDate(new Date(),"yyyy-MM-dd HH:mm");
+
+格式化数字显示方式:
+123,45.999
+var money=formatter.formatNumber(12345.999,'#,##0.00');
+星期五
+var week=formatter.formatWeek("五");
+小写转大写
+一千二百三十四
+var chinese=formatter.formatMoneyAuto("1234");
+文件大小转化:
+1Kb
+var fileSize=formatter.formatFileSize("1024");
+
+1Mb
+var fileSize=formatter.formatFileSize("1024*1024");
+
+
+案例:
+
\ No newline at end of file
diff --git a/CoreCms.Net.Uni-App/CoreShop/pages/activity/solitaire/solitaireDetails/solitaireDetails.vue b/CoreCms.Net.Uni-App/CoreShop/pages/activity/solitaire/solitaireDetails/solitaireDetails.vue
index 4f63f5be..59108c31 100644
--- a/CoreCms.Net.Uni-App/CoreShop/pages/activity/solitaire/solitaireDetails/solitaireDetails.vue
+++ b/CoreCms.Net.Uni-App/CoreShop/pages/activity/solitaire/solitaireDetails/solitaireDetails.vue
@@ -144,7 +144,7 @@