123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- import $store from '@/sheep/store';
- import { staticUrl } from '@/sheep/config';
- const cdn = (url = '', cdnurl = '') => {
- if (!url) return '';
- if (url.indexOf('http') === 0) {
- return url;
- }
- if (cdnurl === '') {
- cdnurl = $store('app').info.cdnurl;
- }
- return cdnurl + url;
- };
- export default {
-
- cdn,
-
- thumb: (url = '', params) => {
- url = cdn(url);
- return append_thumbnail_params(url, params);
- },
-
- static: (url = '', staticurl = '') => {
- if (staticurl === '') {
- staticurl = staticUrl;
- }
- if (staticurl !== 'local') {
- url = cdn(url, staticurl);
- }
-
- return url;
- },
-
- css: (url = '', staticurl = '') => {
- if (staticurl === '') {
- staticurl = staticUrl;
- }
- if (staticurl !== 'local') {
- url = cdn(url, staticurl);
- }
-
- if (staticurl === 'local') {
- url = plus.io.convertLocalFileSystemURL(url);
- }
-
- return `url(${url})`;
- },
- };
- function append_thumbnail_params(url, params) {
- const filesystem = $store('app').info.filesystem;
- if (filesystem === 'public') {
- return url;
- }
- let width = params.width || '200';
- let height = params.height || '200';
- let mode = params.mode || 'lfit';
- let quality = params.quality || 90;
- let gravity = params.gravity || 'center';
- let suffix = '';
- let crop_str = '';
- let quality_str = '';
- let size = width + 'x' + height;
- switch (filesystem) {
- case 'aliyun':
-
- if (!gravity && gravity != 'center') {
-
- mode = 'mfit';
- crop_str = '/crop,g_' + gravityFormat('aliyun', gravity) + ',w_' + width + ',h_' + height;
- }
-
- if (quality > 0 && quality < 100) {
- quality_str = '/quality,q_' + quality;
- }
-
- suffix = 'x-oss-process=image/resize,m_' + mode + ',w_' + width + ',h_' + height;
-
- suffix += crop_str + quality_str;
- break;
- case 'qcloud':
- let mode_str = 'thumbnail';
- if (mode == 'fill' || (!gravity && gravity != 'center')) {
-
- mode_str = 'crop';
- mode = 'fill';
- crop_str = '/gravity/' + gravityFormat('qcloud', gravity);
- }
-
- if (quality > 0 && quality < 100) {
- quality_str = '/rquality/' + quality;
- }
- switch (mode) {
- case 'lfit':
- size = '' + size + '>';
- break;
- case 'mfit':
- size = '!' + size + 'r';
- case 'fill':
- break;
- case 'pad':
- size = size + '/pad/1';
- break;
- case 'fixed':
- size = size + '!';
- break;
- }
- suffix = 'imageMogr2/' + mode_str + '/' + size + crop_str + quality_str;
- break;
- case 'qiniu':
- if (mode == 'fill' || (!gravity && gravity != 'center')) {
-
- mode = 'mfit';
- crop_str = '/gravity/' + gravityFormat('qiniu', gravity) + '/crop/' + size;
- }
-
- if (quality > 0 && quality < 100) {
- quality_str = '/quality/' + quality;
- }
- switch (mode) {
- case 'lfit':
- case 'pad':
- size = size + '>';
- break;
- case 'mfit':
- size = '!' + size + 'r';
- break;
- case 'fill':
-
- break;
- case 'fixed':
- size = size + '!';
- break;
- }
- suffix = 'imageMogr2/thumbnail/' + size + crop_str + quality_str;
- break;
- }
- return url + '?' + suffix;
- }
- function gravityFormatMap(type, gravity) {
- let gravityFormat = {
- aliyun: {
- north_west: 'nw',
- north: 'north',
- north_east: 'ne',
- west: 'west',
- center: 'center',
- east: 'east',
- south_west: 'sw',
- south: 'south',
- south_east: 'se',
- },
- qcloud: {
- northwest: 'nw',
- north: 'north',
- northeast: 'ne',
- west: 'west',
- center: 'center',
- east: 'east',
- southwest: 'sw',
- south: 'south',
- southeast: 'se',
- },
- qiniu: {
- NorthWest: 'nw',
- North: 'north',
- NorthEast: 'ne',
- West: 'west',
- Center: 'center',
- East: 'east',
- SouthWest: 'sw',
- South: 'south',
- SouthEast: 'se',
- },
- };
- return gravityFormat[type][gravity];
- }
|