import { makeAutoObservable, runInAction } from "mobx"; import * as config from "../config"; class DashboardStore { constructor(rootStore) { this.rootStore = rootStore; makeAutoObservable(this); } loading = false; site_select_mode = "multiple"; //是否多选站点 webcode = ["CHT", "AH", "GH"]; //订单统计 begin orders_data = { loading: false, data: [], getOrderCount_all: this.getOrderCount_all.bind(this), }; getOrderCount_all() { //统计所有站点订单数量 this.orders_data.loading = true; const date_picker_store = this.rootStore.date_picker_store; let url = "/service-web/QueryData/GetOrderCount"; url += "?WebCode=all&COLI_ApplyDate1=" + date_picker_store.start_date.format(config.DATE_FORMAT) + "&COLI_ApplyDate2=" + date_picker_store.end_date.format(config.DATE_FORMAT) + "%2023:59:59"; fetch(config.HT_HOST + url) .then(response => response.json()) .then(json => { runInAction(() => { this.orders_data.data = json.ordercount1; this.orders_data.loading = false; }); }) .catch(error => { this.orders_data.loading = false; console.log("fetch data failed", error); }); } //订单统计 end // 临时订单 begin ordersTemp_data = { data: [], data_detail: [], loading: false, loading_detail: false, show_table: false, site_select_mode: "multiple", webcode: ["CHT", "AH", "GH"], handleChange_webcode: this.handleChange_site_select.bind(this), asyncFetch: this.get_CountOrdersData.bind(this), asyncFetch_detail: this.get_CountOrdersData_detail.bind(this), }; handleChange_site_select(value) { this.ordersTemp_data.webcode = value; } get_CountOrdersData() { this.ordersTemp_data.loading = true; this.ordersTemp_data.show_table = false; const date_picker_store = this.rootStore.date_picker_store; let url = "/service-baseinfo/QueryWebData?type=orders_temp&db=1"; const website_code = "'" + this.ordersTemp_data.webcode.join("','") + "'"; url += "&WebSite=" + website_code + "&ApplyDateStart=" + date_picker_store.start_date.format(config.DATE_FORMAT) + "&ApplyDateEnd=" + date_picker_store.end_date.format(config.DATE_FORMAT) + "%2023:59:59"; fetch(config.HT_HOST + url) .then(response => response.json()) .then(json => { runInAction(() => { this.ordersTemp_data.data = json.data; this.ordersTemp_data.loading = false; }); }) .catch(error => { this.ordersTemp_data.loading = false; console.log("fetch data failed", error); }); } get_CountOrdersData_detail() { this.ordersTemp_data.loading_detail = true; this.ordersTemp_data.show_table = true; const date_picker_store = this.rootStore.date_picker_store; let url = "/service-baseinfo/QueryWebData?type=orders_temp_detail&db=1"; const website_code = "'" + this.ordersTemp_data.webcode.join("','") + "'"; url += "&WebSite=" + website_code + "&ApplyDateStart=" + date_picker_store.start_date.format(config.DATE_FORMAT) + "&ApplyDateEnd=" + date_picker_store.end_date.format(config.DATE_FORMAT) + "%2023:59:59"; fetch(config.HT_HOST + url) .then(response => response.json()) .then(json => { runInAction(() => { this.ordersTemp_data.data_detail = json.data; this.ordersTemp_data.loading_detail = false; }); }) .catch(error => { this.ordersTemp_data.loading_detail = false; console.log("fetch data failed", error); }); } // 临时订单 end // 移动成交 beign handleChange_webcode = value => { this.webcode = value; }; handleChange_group_select(value) { this.mobile_data.groups = value; } onChange_datetype(e) { this.mobile_data.date_type = e.target.value; } get_CountYDOrder() { const date_picker_store = this.rootStore.date_picker_store; this.mobile_data.loading = true; let url = "/service-tourdesign/CountYDOrder?DEI_SNList=" + this.mobile_data.groups.toString(); if (this.mobile_data.date_type == "applyDate") { url += "&ApplydateCheck=1&OrderStartdateCheck=0"; } else { url += "&ApplydateCheck=0&OrderStartdateCheck=1"; } url += "&ApplydateStart=" + date_picker_store.start_date.format(config.DATE_FORMAT) + "&ApplydateEnd=" + date_picker_store.end_date.format(config.DATE_FORMAT) + "%2023:59:59"; url += "&OrderStartdateStart=" + date_picker_store.start_date.format(config.DATE_FORMAT) + "&OrderStartdateEnd=" + date_picker_store.end_date.format(config.DATE_FORMAT) + "%2023:59:59"; fetch(config.HT_HOST + url) .then(response => response.json()) .then(json => { let table_data = []; json && json.map((item, index) => { table_data.push({ key: index, department_name: item.DEI_DepartmentName, mobile_order: item.YDOrderNum + "/" + item.OrderNum + " (" + (item.OrderNumRate * 100).toFixed(1) + "%)", mobile_deal: item.YDOrderNumSUC + " / " + item.OrderNumSUC + " (" + (item.OrderNumSUCRate * 100).toFixed(1) + "%)", mobile_gross: item.YDML + " / " + item.ML + " (" + (item.MLRate * 100).toFixed(1) + "%)", }); }); runInAction(() => { this.mobile_data.data = table_data; this.mobile_data.loading = false; }); }) .catch(error => { this.mobile_data.loading = false; console.log("fetch data failed", error); }); } mobile_data = { loading: false, data: [], group_select_mode: "multiple", //是否多选分组 groups: ["1", "2", "28", "7", "8", "9", "11", "12", "20", "21", "18"], columns: [ { title: "市场", dataIndex: "department_name", key: "department_name", }, { title: "移动订单/总订单", dataIndex: "mobile_order", key: "mobile_order", }, { title: "移动成交/总成交", dataIndex: "mobile_deal", key: "mobile_deal", }, { title: "移动毛利/总毛利", dataIndex: "mobile_gross", key: "mobile_gross", }, ], date_type: "applyDate", group_handleChange: this.handleChange_group_select.bind(this), onChange_datetype: this.onChange_datetype.bind(this), asyncFetch: this.get_CountYDOrder.bind(this), }; // 移动成交 end // 汇率变化 begin exchangeRate_data = { loading: false, data: [], asyncFetch: this.get_currency_exchange_rate.bind(this), }; get_currency_exchange_rate(Currdate1_start, Currdate1_end) { const date_picker_store = this.rootStore.date_picker_store; this.exchangeRate_data.loading = true; let url = "/service-web/QueryData/GetCurrency?Currency=ALL"; url += "&Currdate1=" + Currdate1_start + "&Currdate2=" + Currdate1_end + "%2023:59:59"; fetch(config.HT_HOST + url) .then(response => response.json()) .then(json => { runInAction(() => { this.exchangeRate_data.data = json; this.exchangeRate_data.loading = false; }); }) .catch(error => { this.exchangeRate_data.loading = false; console.log("fetch data failed", error); }); } // 汇率变化 end } export default DashboardStore;