123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- import Vue from "vue";
- import Cookies from "js-cookie";
- import Element from "element-ui";
- import "./assets/styles/element-variables.scss";
- import "@/assets/styles/index.scss"; // global css
- import "@/assets/styles/ruoyi.scss"; // ruoyi css
- import App from "./App";
- import store from "./store";
- import router from "./router";
- import directive from "./directive"; // directive
- import plugins from "./plugins"; // plugins
- import { download } from "@/utils/request";
- // 时间格式化方法挂载
- import "@/views/marketing/utils/date";
- import "./assets/icons"; // icon
- import "./permission"; // permission control
- import { getDicts } from "@/api/system/dict/data";
- import { getConfigKey } from "@/api/system/config";
- import {
- parseTime,
- resetForm,
- addDateRange,
- selectDictLabel,
- selectDictLabels,
- handleTree,
- } from "@/utils/ruoyi";
- import { initParams, initRules, initDicts, initPage } from "@/utils/init.js";
- // 分页组件
- import Pagination from "@/components/Pagination";
- // 自定义表格工具组件
- import RightToolbar from "@/components/RightToolbar";
- // 富文本组件
- import Editor from "@/components/Editor";
- // 文件上传组件
- import FileUpload from "@/components/FileUpload";
- // 图片上传组件
- import ImageUpload from "@/components/ImageUpload";
- // 图片预览组件
- import ImagePreview from "@/components/ImagePreview";
- // 字典标签组件
- import DictTag from "@/components/DictTag";
- // 头部标签组件
- import VueMeta from "vue-meta";
- // 字典数据组件
- import DictData from "@/components/DictData";
- //
- import PopoverSelect from "@/components/popover-select";
- //
- import PopoverTreeSelect from "@/components/popover-tree-select";
- //
- import ComputedInput from "@/components/computed-input";
- // 附件标签组件
- import FilePreview from "@/components/file-preview";
- //打印
- import Print from "vue-print-nb";
- // 全局方法挂载
- Vue.prototype.getDicts = getDicts;
- Vue.prototype.getConfigKey = getConfigKey;
- Vue.prototype.parseTime = parseTime;
- Vue.prototype.resetForm = resetForm;
- Vue.prototype.addDateRange = addDateRange;
- Vue.prototype.selectDictLabel = selectDictLabel;
- Vue.prototype.selectDictLabels = selectDictLabels;
- Vue.prototype.download = download;
- Vue.prototype.handleTree = handleTree;
- Vue.prototype.$init = {
- params: initParams,
- dicts: initDicts,
- rules: initRules,
- page: initPage,
- };
- // 全局组件挂载
- Vue.component("DictTag", DictTag);
- Vue.component("Pagination", Pagination);
- Vue.component("RightToolbar", RightToolbar);
- Vue.component("Editor", Editor);
- Vue.component("FileUpload", FileUpload);
- Vue.component("ImageUpload", ImageUpload);
- Vue.component("ImagePreview", ImagePreview);
- Vue.component("DrPopoverSelect", PopoverSelect);
- Vue.component("DrPopoverTreeSelect", PopoverTreeSelect);
- Vue.component("DrComputedInput", ComputedInput);
- Vue.component("DrFilePreview", FilePreview);
- Vue.use(directive);
- Vue.use(plugins);
- Vue.use(VueMeta);
- Vue.use(Print); //注册
- DictData.install();
- // el-table无限滚动解决页面渲染卡死
- Vue.directive("myscroll", {
- bind(el, bind, vnode) {
- const self = vnode.context;
- let target = el.querySelector('.el-table__body-wrapper');
- target.addEventListener("scroll", () => {
- // 检测触底
- if (target.scrollTop + target.clientHeight >= target.scrollHeight) {
- if (self.over >= self.basicForm.puDemandItemList) {
- return;
- }
- self.over +=15
- }
- })
- }
- })
- Vue.mixin({
- data() {
- return {
- // scrollTop: 0,
- // tableHeight: 300
- start: 0,
- over: 15
- }
- }
- })
- /**
- * 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! ! !
- */
- Vue.use(Element, {
- size: Cookies.get("size") || "medium", // set element-ui default size
- });
- Vue.config.productionTip = false;
- new Vue({
- el: "#app",
- router,
- store,
- render: (h) => h(App),
- });
|