easypay-admin/src/main.js
18650502300 94d3c4fd55 添加商品分期配置
去掉所有crmeb版权
去掉所有注释
2023-12-22 14:02:20 +08:00

225 lines
6.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Vue from 'vue';
import '@babel/polyfill';
// import 'babel-polyfill'
import Cookies from 'js-cookie';
import 'normalize.css/normalize.css'; // a modern alternative to CSS resets
import Element from 'element-ui';
import './styles/element-variables.scss';
import '@/styles/index.scss'; // global css
import '@/assets/iconfont/iconfont';
import '@/assets/iconfont/iconfont.css';
import VueAwesomeSwiper from 'vue-awesome-swiper';
import 'swiper/dist/css/swiper.css';
import 'vue-ydui/dist/ydui.base.css';
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from '@/utils/parsing';
// 懒加载
import VueLazyload from 'vue-lazyload';
Vue.config.devtools = true;
import App from './App';
import store from './store';
import router from './router';
import attrFrom from './components/attrFrom';
import uploadPicture from './components/uploadPicture/uploadFrom';
import goodListFrom from './components/goodList/goodListFrom';
import couponFrom from './components/couponList/couponFrom';
import articleFrom from './components/articleList/articleFrom';
import UploadIndex from '@/components/uploadPicture/index.vue';
import UploadFile from '@/components/Upload/uploadFile.vue';
// import VueUeditorWrap from 'vue-ueditor-wrap'
import iconFrom from './components/iconFrom';
import TimeSelect from '@/components/TimeSelect';
import dialog from '@/libs/dialog';
import scroll from '@/libs/loading';
import schema from 'async-validator';
import Debounce from './libs/debounce.js'; //防抖自定义指令
// 切勿更改 此组件为表单生成中使用的图片上传组件
import SelfUpload from '@/components/uploadPicture/forGenrator/index.vue';
import util from '@/utils/utils';
import modalAttr from '@/libs/modal-attr';
import modalIcon from '@/libs/modal-icon';
import { modalSure } from '@/libs/public';
import timeOptions from '@/libs/timeOptions';
import { loadScriptQueue } from '@/components/FormGenerator/utils/loadScript';
import './icons'; // icon
import './permission'; // permission control
import './utils/error-log'; // error integralLog
import * as filters from './filters'; // global filters
import { parseQuery } from '@/utils';
import * as Auth from '@/libs/wechat';
import * as constants from '@/utils/constants.js';
import * as selfUtil from '@/utils/ZBKJIutil.js';
import SettingMer from '@/utils/settingMer';
import plugins from './plugins';
import directive from './directive'; //directive
Vue.use(VueLazyload, {
preLoad: 1.3,
error: require('./assets/imgs/no.png'),
loading: require('./assets/imgs/moren.jpg'),
attempt: 1,
listenEvents: ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'],
});
Vue.use(uploadPicture);
Vue.use(goodListFrom);
Vue.use(couponFrom);
Vue.use(articleFrom);
Vue.use(VueAwesomeSwiper);
Vue.use(plugins);
Vue.use(directive);
Vue.component('attrFrom', attrFrom);
Vue.component('UploadIndex', UploadIndex);
Vue.component('SelfUpload', SelfUpload);
Vue.component('iconFrom', iconFrom);
Vue.component('uploadFile', UploadFile);
Vue.component('timeSelect', TimeSelect);
Vue.prototype.$modalSure = modalSure;
Vue.prototype.$modalAttr = modalAttr;
Vue.prototype.$modalIcon = modalIcon;
Vue.prototype.$dialog = dialog;
Vue.prototype.$scroll = scroll;
Vue.prototype.$wechat = Auth;
Vue.prototype.$util = util;
Vue.prototype.$constants = constants;
Vue.prototype.$selfUtil = selfUtil;
Vue.prototype.$timeOptions = timeOptions;
Vue.prototype.$validator = function (rule) {
return new schema(rule);
};
Vue.prototype.handleTree = handleTree;
Vue.prototype.parseTime = parseTime;
Vue.prototype.resetForm = resetForm;
let cookieName = 'VCONSOLE';
let query = parseQuery();
let urlSpread = query['spread'];
let vconsole = query[cookieName.toLowerCase()];
let md5Crmeb = 'b14d1e9baeced9bb7525ab19ee35f2d2'; //CRMEB MD5 加密开启vconsole模式
let md5UnCrmeb = '3dca2162c4e101b7656793a1af20295c'; //UN_CREMB MD5 加密关闭vconsole模式
if (vconsole !== undefined) {
if (vconsole === md5UnCrmeb && Cookies.has(cookieName)) Cookies.remove(cookieName);
} else vconsole = Cookies.get(cookieName);
if (vconsole !== undefined && vconsole === md5Crmeb) {
Cookies.set(cookieName, md5Crmeb, 3600);
const module = () => import('vconsole');
module().then((Module) => {
new Module.default();
});
}
// 自定义实现String 类型的replaceAll方法
String.prototype.replaceAll = function (s1, s2) {
return this.replace(new RegExp(s1, 'gm'), s2);
};
// Vue.prototype.$modalCoupon = modalCoupon
/**
* If you don't want to use mock-server
* you want to use MockJs for mock api
* you can execute: mockXHR()
*
* Currently MockJs will be used in the production environment,
* please remove it before going online ! ! !
*/
// if (process.env.NODE_ENV === 'production') {
// const { mockXHR } = require('../mock')
// mockXHR()
// }
Vue.use(Element, {
size: Cookies.get('size') || 'mini', // set element-ui default size
});
// register global utility filters
Object.keys(filters).forEach((key) => {
Vue.filter(key, filters[key]);
});
Vue.config.productionTip = false;
const $previewApp = document.getElementById('previewApp');
const childAttrs = {
file: '',
dialog: ' width="600px" class="dialog-width" v-if="visible" :visible.sync="visible" :modal-append-to-body="false" ',
};
window.addEventListener('message', init, false);
function buildLinks(links) {
let strs = '';
links.forEach((url) => {
strs += `<link href="${url}" rel="stylesheet">`;
});
return strs;
}
function init(event) {
if (event.data.type === 'refreshFrame') {
const code = event.data.data;
const attrs = childAttrs[code.generateConf.type];
let links = '';
if (Array.isArray(code.links) && code.links.length > 0) {
links = buildLinks(code.links);
}
$previewApp.innerHTML = `${links}<style>${code.css}</style><div id="app"></div>`;
if (Array.isArray(code.scripts) && code.scripts.length > 0) {
loadScriptQueue(code.scripts, () => {
newVue(attrs, code.js, code.html);
});
} else {
newVue(attrs, code.js, code.html);
}
}
}
function newVue(attrs, main, html) {
// eslint-disable-next-line no-eval
main = eval(`(${main})`);
main.template = `<div>${html}</div>`;
new Vue({
components: {
child: main,
},
data() {
return {
visible: true,
};
},
template: `<div><child ${attrs}/></div>`,
}).$mount('#app');
}
String.prototype.replaceAll = function (s1, s2) {
return this.replace(new RegExp(s1, 'gm'), s2);
};
/**
* 防抖 防止重复点击
* 传参v-debounceClick="() =>{handleFun(arg)}"
* 不传参:v-debounceClick="handleFun"
* delayTime:延迟的时间,只执行最后一次
*/
Vue.directive('debounceClick', {
bind(el, binding, vnode, oldvnode) {},
inserted: function (el, binding) {
let delayTime = el.getAttribute('delay-time') || 500;
el.onclick = Debounce(function () {
binding.value();
}, delayTime);
},
});
new Vue({
el: '#app',
router,
store,
render: (h) => h(App),
});