+
+
+
+
+
diff --git a/manager/src/views/order/order/orderList.vue b/manager/src/views/order/order/orderList.vue
index a36f93c8..31e6cdbc 100644
--- a/manager/src/views/order/order/orderList.vue
+++ b/manager/src/views/order/order/orderList.vue
@@ -22,10 +22,17 @@
+
+
+
+
+
+
+
@@ -43,12 +50,60 @@
diff --git a/manager/src/views/statistics/traffic.vue b/manager/src/views/statistics/traffic.vue
index 6f571a97..f5fbe08d 100644
--- a/manager/src/views/statistics/traffic.vue
+++ b/manager/src/views/statistics/traffic.vue
@@ -66,7 +66,8 @@ export default {
uvs: 0, // 访客数
pvs: 0, // 浏览量
- dateList: [ // 选择项
+ dateList: [
+ // 选择项
{
title: "今天",
selected: false,
@@ -90,7 +91,8 @@ export default {
],
orderChart: "", // 初始化图表
- params: { // 请求参数
+ params: {
+ // 请求参数
searchType: "LAST_SEVEN",
year: "",
month: "",
@@ -117,6 +119,8 @@ export default {
watch: {
params: {
handler(val) {
+ this.uvs = 0;
+ this.pvs = 0;
this.init();
},
deep: true,
diff --git a/node_modules/_downloadjs@1.4.7@downloadjs/LICENSE.md b/node_modules/_downloadjs@1.4.7@downloadjs/LICENSE.md
new file mode 100644
index 00000000..19b80ba4
--- /dev/null
+++ b/node_modules/_downloadjs@1.4.7@downloadjs/LICENSE.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2016 dandavis
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/_downloadjs@1.4.7@downloadjs/README.md b/node_modules/_downloadjs@1.4.7@downloadjs/README.md
new file mode 100644
index 00000000..67eb6c6a
--- /dev/null
+++ b/node_modules/_downloadjs@1.4.7@downloadjs/README.md
@@ -0,0 +1,123 @@
+# download
+========
+
+## Summary
+---------
+The download() function is used to trigger a file download from JavaScript.
+
+It specifies the contents and name of a new file placed in the browser's download directory. The input can be a URL, String, Blob, or Typed Array of data, or via a dataURL representing the file's data as base64 or url-encoded string. No matter the input format, download() saves a file using the specified file name and mime information in the same manner as a server using a Content-Disposition HTTP header.
+
+## Getting and Using
+---------
+
+### Via NPM/Bower
+`npm install downloadjs`
+`bower install downloadjs`
+
+`require("downloadjs")(data, strFileName, strMimeType);`
+
+### Simple global `download` function via `
diff --git a/node_modules/_vue-json-excel@0.3.0@vue-json-excel/LICENSE b/node_modules/_vue-json-excel@0.3.0@vue-json-excel/LICENSE
new file mode 100755
index 00000000..25f291d4
--- /dev/null
+++ b/node_modules/_vue-json-excel@0.3.0@vue-json-excel/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 Pooya Parsa
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/_vue-json-excel@0.3.0@vue-json-excel/README.md b/node_modules/_vue-json-excel@0.3.0@vue-json-excel/README.md
new file mode 100755
index 00000000..78c8350f
--- /dev/null
+++ b/node_modules/_vue-json-excel@0.3.0@vue-json-excel/README.md
@@ -0,0 +1,321 @@
+# JSON to Excel for VUE 2
+
+Download your JSON data as an Excel file directly from the browser. This component is based on the solution proposed on [this thread](https://stackoverflow.com/questions/17142427/javascript-to-export-html-table-to-excel)
+
+### Important! Extra prompt in Microsoft Excel
+
+**The method implemented in this component uses HTML tables to draw the .xls files, Microsoft Excel no longer recognize HTML as native content so a warning message will be displayed before opening the file. The content will be rendered perfectly but the message can't be avoided.**
+
+## Getting started
+
+Get the package:
+
+```bash
+npm install vue-json-excel
+```
+
+Register JsonExcel in your vue app entry point:
+
+```js
+import Vue from "vue";
+import JsonExcel from "vue-json-excel";
+
+Vue.component("downloadExcel", JsonExcel);
+```
+
+In your template
+
+```html
+
+ Download Data
+
+
+```
+
+## Props List
+
+| Name | Type | Description | Default |
+| :--------------------------- | :----------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------: |
+| data | Array | Data to be exported. |
+| fields | Object | Fields inside the JSON Object that you want to export. If none provided, all properties in the JSON will be exported. |
+| export-fields (exportFields) | Object | Used to fix the problem with other components that use the variable fields, like vee-validate. exportFields works exactly like fields |
+| type | string | Mime type [xls, csv] | xls |
+| name | string | File name to export. | data.xls |
+| header | string/Array | Title(s) for the data. Can be a string (one title) or an array of strings (multiple titles). |
+| title(deprecated) | string/Array | same as header, title is maintained for retro-compatibility purposes but its use is not recommended due to the conflict with the HTML5 title attribute. |
+| footer | string/Array | Footer(s) for the data. Can be a string (one footer) or an array of strings (multiple footers). |
+| default-value (defaultValue) | string | Use as fallback when the row has no field values. | '' |
+| worksheet | string | Name of the worksheet tab. | 'Sheet1' |
+| fetch | Function | Callback to fetch data before download, if it's set it runs immediately after mouse pressed and before download process. IMPORTANT: only works if no data prop is defined. |
+| before-generate | Function | Callback to call a method right before the generate / fetch data, eg:show loading progress |
+| before-finish | Function | Callback to call a method right before the download box pops out, eg:hide loading progress |
+| stringifyLongNum | Boolean | stringify long number and decimal(solve the problem of loss of digital accuracy), default: false |
+| escapeCsv | Boolean | This escapes CSV values in order to fix some excel problems with number fields. But this will wrap every csv data with **="** and **"**, to avoid that you have to set this prop to false. default: True |
+
+## Example
+
+```js
+import Vue from "vue";
+import JsonExcel from "vue-json-excel";
+
+Vue.component("downloadExcel", JsonExcel);
+
+const app = new Vue({
+ el: "#app",
+ data: {
+ json_fields: {
+ "Complete name": "name",
+ City: "city",
+ Telephone: "phone.mobile",
+ "Telephone 2": {
+ field: "phone.landline",
+ callback: (value) => {
+ return `Landline Phone - ${value}`;
+ },
+ },
+ },
+ json_data: [
+ {
+ name: "Tony Peña",
+ city: "New York",
+ country: "United States",
+ birthdate: "1978-03-15",
+ phone: {
+ mobile: "1-541-754-3010",
+ landline: "(541) 754-3010",
+ },
+ },
+ {
+ name: "Thessaloniki",
+ city: "Athens",
+ country: "Greece",
+ birthdate: "1987-11-23",
+ phone: {
+ mobile: "+1 855 275 5071",
+ landline: "(2741) 2621-244",
+ },
+ },
+ ],
+ json_meta: [
+ [
+ {
+ key: "charset",
+ value: "utf-8",
+ },
+ ],
+ ],
+ },
+});
+```
+
+In your HTML call it like
+
+```html
+
+ Download Excel (you can customize this with html code!)
+
+```
+
+REQUIRED
+
+- json_data: Contains the data you want to export.
+- json_fields: You can select what fields to export. Specify nested data and assign labels to the fields. The key is the label, the value is the JSON field. This will export the field data 'as is'. If you need to customize the the exported data you can define a callback function. Thanks to @gucastiliao.
+
+```js
+let json_fields = {
+ // regular field (exported data 'as is')
+ fieldLabel: attributeName, // nested attribute supported
+ // callback function for data formatting
+ anotherFieldLabel: {
+ field: anotherAttributeName, // nested attribute supported
+ callback: (value) => {
+ return `formatted value ${value}`;
+ },
+ },
+};
+```
+
+json_fields is a object that represents which columns will be exported. If no object is provided, the component will be use the first object in your data array to extract the keys as columns names. Json field example:
+
+```
+:export-fields="{
+ 'Human friendly name': '_name_field_from_json',
+ 'user's last name': '_last_name_text'
+}"
+```
+
+## Export CSV
+
+To export JSON as a CSV file, just add the prop `type` with a value of "csv":
+
+```html
+
+ Download CSV (you can customize this with html code!)
+
+```
+
+## Multi-line values will appear in a single cell
+
+A single text value in the data that contains newline characters will appear as a single cell in Excel. This avoids the undesired behavior of multi-line values getting split into multiple cells that must be merged before using data filters and pivot tables.
+
+For example:
+
+```html
+
+
+
+
+
+
+```
+
+
+
+## Fetch Data on Demand
+
+In case you need to fetch data from the server, you could use the fetch prop that allows you to define a callback function that is executed when your user click the download button. This function has to return a JSON value containing the data to export. A basic use case is:
+
+```js
+
+
+
+
+
Fetch Example
+
+ Download Excel
+
+
+
+
+
+
+```
+
+## Using callbacks
+
+when using callback functions in the fields description, you have three option to retrieve data:
+
+- **field: 'path.to.nested.property'** you can retrieve a specific value using the nested property notation.
+
+```js
+ json_fields: {
+ 'Complete name': 'name',
+ 'City': 'city',
+ 'Telephone': 'phone.mobile',
+ 'Telephone 2' : {
+ field: 'phone.landline',
+ callback: (value) => {
+ return `Landline Phone - ${value}`;
+ }
+ },
+ },
+```
+
+- **field: 'define.nested.object'** you can retrieve a nested object too.
+
+```js
+ json_fields: {s
+ 'Complete name': 'name',
+ 'City': 'city',
+ 'Telephone': 'phone.mobile',
+ 'Telephone 2' : {
+ field: 'phone',
+ callback: (value) => {
+ return `Landline Phone - ${value.landline}`;
+ }
+ },
+ },
+```
+
+- Or **get the whole row** if field is undefined.
+
+```js
+ json_fields: {
+ 'Complete name': 'name',
+ 'City': 'city',
+ 'Telephone': 'phone.mobile',
+ 'Telephone 2' : {
+ callback: (value) => {
+ return `Landline Phone - ${value.phone.landline}`;
+ }
+ },
+ },
+```
+
+## License
+
+MIT
+
+#### Status
+
+This project is in an early stage of development. Any contribution is welcome :D
diff --git a/node_modules/_vue-json-excel@0.3.0@vue-json-excel/dist/vue-json-excel.cjs.js b/node_modules/_vue-json-excel@0.3.0@vue-json-excel/dist/vue-json-excel.cjs.js
new file mode 100755
index 00000000..48b0d55c
--- /dev/null
+++ b/node_modules/_vue-json-excel@0.3.0@vue-json-excel/dist/vue-json-excel.cjs.js
@@ -0,0 +1,654 @@
+'use strict';
+
+var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
+
+function createCommonjsModule(fn, module) {
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
+}
+
+var download = createCommonjsModule(function (module, exports) {
+//download.js v4.2, by dandavis; 2008-2016. [MIT] see http://danml.com/download.html for tests/usage
+// v1 landed a FF+Chrome compat way of downloading strings to local un-named files, upgraded to use a hidden frame and optional mime
+// v2 added named files via a[download], msSaveBlob, IE (10+) support, and window.URL support for larger+faster saves than dataURLs
+// v3 added dataURL and Blob Input, bind-toggle arity, and legacy dataURL fallback was improved with force-download mime and base64 support. 3.1 improved safari handling.
+// v4 adds AMD/UMD, commonJS, and plain browser support
+// v4.1 adds url download capability via solo URL argument (same domain/CORS only)
+// v4.2 adds semantic variable names, long (over 2MB) dataURL support, and hidden by default temp anchors
+// https://github.com/rndme/download
+
+(function (root, factory) {
+ {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory();
+ }
+}(commonjsGlobal, function () {
+
+ return function download(data, strFileName, strMimeType) {
+
+ var self = window, // this script is only for browsers anyway...
+ defaultMime = "application/octet-stream", // this default mime also triggers iframe downloads
+ mimeType = strMimeType || defaultMime,
+ payload = data,
+ url = !strFileName && !strMimeType && payload,
+ anchor = document.createElement("a"),
+ toString = function(a){return String(a);},
+ myBlob = (self.Blob || self.MozBlob || self.WebKitBlob || toString),
+ fileName = strFileName || "download",
+ blob,
+ reader;
+ myBlob= myBlob.call ? myBlob.bind(self) : Blob ;
+
+ if(String(this)==="true"){ //reverse arguments, allowing download.bind(true, "text/xml", "export.xml") to act as a callback
+ payload=[payload, mimeType];
+ mimeType=payload[0];
+ payload=payload[1];
+ }
+
+
+ if(url && url.length< 2048){ // if no filename and no mime, assume a url was passed as the only argument
+ fileName = url.split("/").pop().split("?")[0];
+ anchor.href = url; // assign href prop to temp anchor
+ if(anchor.href.indexOf(url) !== -1){ // if the browser determines that it's a potentially valid url path:
+ var ajax=new XMLHttpRequest();
+ ajax.open( "GET", url, true);
+ ajax.responseType = 'blob';
+ ajax.onload= function(e){
+ download(e.target.response, fileName, defaultMime);
+ };
+ setTimeout(function(){ ajax.send();}, 0); // allows setting custom ajax headers using the return:
+ return ajax;
+ } // end if valid url?
+ } // end if url?
+
+
+ //go ahead and download dataURLs right away
+ if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(payload)){
+
+ if(payload.length > (1024*1024*1.999) && myBlob !== toString ){
+ payload=dataUrlToBlob(payload);
+ mimeType=payload.type || defaultMime;
+ }else {
+ return navigator.msSaveBlob ? // IE10 can't do a[download], only Blobs:
+ navigator.msSaveBlob(dataUrlToBlob(payload), fileName) :
+ saver(payload) ; // everyone else can save dataURLs un-processed
+ }
+
+ }else {//not data url, is it a string with special needs?
+ if(/([\x80-\xff])/.test(payload)){
+ var i=0, tempUiArr= new Uint8Array(payload.length), mx=tempUiArr.length;
+ for(i;i null,
+ },
+ // this prop is used to fix the problem with other components that use the
+ // variable fields, like vee-validate. exportFields works exactly like fields
+ exportFields: {
+ type: Object,
+ default: () => null,
+ },
+ // Use as fallback when the row has no field values
+ defaultValue: {
+ type: String,
+ required: false,
+ default: "",
+ },
+ // Title(s) for the data, could be a string or an array of strings (multiple titles)
+ header: {
+ default: null,
+ },
+ // Footer(s) for the data, could be a string or an array of strings (multiple footers)
+ footer: {
+ default: null,
+ },
+ // filename to export
+ name: {
+ type: String,
+ default: "data.xls",
+ },
+ fetch: {
+ type: Function,
+ },
+ meta: {
+ type: Array,
+ default: () => [],
+ },
+ worksheet: {
+ type: String,
+ default: "Sheet1",
+ },
+ //event before generate was called
+ beforeGenerate: {
+ type: Function,
+ },
+ //event before download pops up
+ beforeFinish: {
+ type: Function,
+ },
+ // Determine if CSV Data should be escaped
+ escapeCsv: {
+ type: Boolean,
+ default: true,
+ },
+ // long number stringify
+ stringifyLongNum: {
+ type: Boolean,
+ default: false,
+ },
+ },
+ computed: {
+ // unique identifier
+ idName() {
+ var now = new Date().getTime();
+ return "export_" + now;
+ },
+
+ downloadFields() {
+ if (this.fields) return this.fields;
+
+ if (this.exportFields) return this.exportFields;
+ },
+ },
+ methods: {
+ async generate() {
+ if (typeof this.beforeGenerate === "function") {
+ await this.beforeGenerate();
+ }
+ let data = this.data;
+ if (typeof this.fetch === "function" || !data) data = await this.fetch();
+
+ if (!data || !data.length) {
+ return;
+ }
+
+ let json = this.getProcessedJson(data, this.downloadFields);
+ if (this.type === "html") {
+ // this is mainly for testing
+ return this.export(
+ this.jsonToXLS(json),
+ this.name.replace(".xls", ".html"),
+ "text/html"
+ );
+ } else if (this.type === "csv") {
+ return this.export(
+ this.jsonToCSV(json),
+ this.name.replace(".xls", ".csv"),
+ "application/csv"
+ );
+ }
+ return this.export(
+ this.jsonToXLS(json),
+ this.name,
+ "application/vnd.ms-excel"
+ );
+ },
+ /*
+ Use downloadjs to generate the download link
+ */
+ export: async function (data, filename, mime) {
+ let blob = this.base64ToBlob(data, mime);
+ if (typeof this.beforeFinish === "function") await this.beforeFinish();
+ download(blob, filename, mime);
+ },
+ /*
+ jsonToXLS
+ ---------------
+ Transform json data into an xml document with MS Excel format, sadly
+ it shows a prompt when it opens, that is a default behavior for
+ Microsoft office and cannot be avoided. It's recommended to use CSV format instead.
+ */
+ jsonToXLS(data) {
+ let xlsTemp =
+ '