/*
 * @Author: jiangzaicheng jiangzaicheng_jzc@163.com
 * @Date: 2022-07-04 15:41:06
 * @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
 * @LastEditTime: 2022-07-22 18:12:35
 * @FilePath: \mcep-h5\src\services\component-vue.service.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import Vue from "vue";
import { Button, Cell, CellGroup, Icon, Col, Row, Popup, Toast, Form, Field, Checkbox, CheckboxGroup, RadioGroup, Radio, Search, Picker, DatetimePicker, Loading, Dialog, NavBar, Tab, Tabs, IndexBar, IndexAnchor, Switch, List, PullRefresh, Card } from "vant";
import TitleBar from "@/components/general/TitleBar.vue";
import DSelect from "@/components/general/form/DSelect.vue";
import ScrollerView from "@/components/general/ScrollerView.vue";
import SubTitle from "@/components/general/SubTitle.vue";
import DDatetimePicker from "@/components/general/form/DDatetimePicker.vue";
import MobileInput from "@/components/general/form/MobileInput.vue";
import InterFaceFactory from "@/public/factory/InterFaceFactory";
import TableDoubleView from "@/public/TableDoubleView.vue";
import TabNav from "@/components/general/TabNav.vue";
import BaseList from "@/components/general/BaseList.vue";
import AnchorNav from "@/components/general/AnchorNav.vue";
import * as echarts from "echarts";
import Tatle from "@/components/common/Tatle.vue";
import picket from "@/components/common/Picket.vue";

import ant from "ant-design-vue/es/locale/zh_CN"
import Tool from "@/components/common/Tool.vue";
import Bottom from "@/components/common/Bottom.vue";
import Person from "@/components/common/Person.vue";
import CardPottom from "@/components/common/CardPottom.vue";
import LittleCard from "@/components/common/LittleCard.vue";
import CardUnLogin from "@/components/common/CardUnLogin.vue";
import ProductDetail from "@/components/common/ProductDetail.vue";
import PicketAcced from "@/components/common/PicketAcced.vue";
import ProductCard from "@/components/common/ProductCard.vue";
import CompanyCard from "@/views/workbench/CompanyCard.vue";



//ProductCard
declare module "vue/types/vue" {
  interface Vue {
    $message: any;
    $success: any;
    $error: any;
    $confirm: any;
    $alert: any;
    $IF: any;
    $echarts: any;
  }
}
/**
 * @description: 注册Vant组件
 * @author Zpfly
 * @date 2021/9/24 10:36
 */
class ComponentVueService {
  init() {
    Vue.use(Button);
    Vue.use(Cell).use(CellGroup);
    Vue.use(Icon);
    Vue.use(Col).use(Row);
    Vue.use(Popup);
    Vue.use(Toast);
    Vue.use(Form);
    Vue.use(Field);
    Vue.use(CheckboxGroup).use(Checkbox);
    Vue.use(Radio).use(RadioGroup);
    Vue.use(Search);
    Vue.use(Picker);
    Vue.use(DatetimePicker);
    Vue.use(Loading);
    Vue.use(Dialog);
    Vue.use(NavBar);
    Vue.use(Tab).use(Tabs);
    Vue.use(IndexBar).use(IndexAnchor);
    Vue.use(Switch);
    Vue.use(List);
    Vue.use(PullRefresh);

    Vue.prototype.$message = Toast;
    Vue.prototype.$success = Toast.success;
    Vue.prototype.$error = Toast.fail;
    Vue.prototype.$loading = Toast.loading;
    Vue.prototype.$alert = Dialog.alert;
    Vue.prototype.$confirm = Dialog.confirm;
    Vue.prototype.$IF = InterFaceFactory;
    Vue.prototype.$echarts = echarts;
    this.initCustomCmp();
  }
  // 全局注册自定义组件
  initCustomCmp() {
    Vue.component("title-bar", TitleBar);
    Vue.component("d-select", DSelect);
    Vue.component("scroller-view", ScrollerView);
    Vue.component("sub-title", SubTitle);
    Vue.component("d-datetime-picker", DDatetimePicker);
    Vue.component("mobile-input", MobileInput);
    Vue.component("table-double-view", TableDoubleView);
    Vue.component("tab-nav", TabNav);
    Vue.component("base-list", BaseList);
    Vue.component("anchor-nav", AnchorNav);
    Vue.component("tatle-bar", Tatle);
    Vue.component("picket-bar", picket);
    Vue.component("tools-bar", Tool);
    Vue.component("bottom-bar", Bottom);
    Vue.component("person-bar", Person);
    Vue.component("card-bar", CardPottom);
    Vue.component("little-bar", LittleCard);
    Vue.component("uncard-bar", CardUnLogin);
    Vue.component("product-detail", ProductDetail);
    Vue.component("product-card", ProductCard);
    Vue.component("picket-acced", PicketAcced);
    Vue.component("company-card",CompanyCard);
  }
}
const componentService = new ComponentVueService();
export default componentService;