merge master

This commit is contained in:
Chopper
2021-09-03 09:42:19 +08:00
106 changed files with 1249 additions and 1636 deletions

View File

@@ -2,7 +2,8 @@ export default {
/**
* @description 配置显示在浏览器标签的title
*/
title: "Lili电商",
title: "lilishop",
/**
* @description token在Cookie中存储的天数默认1天
*/
@@ -14,6 +15,8 @@ export default {
*/
useI18n: true,
/**
* @description api请求基础路径
*/

View File

@@ -1,102 +0,0 @@
import XLSX from 'xlsx';
function auto_width(ws, data){
/*set worksheet max width per col*/
const colWidth = data.map(row => row.map(val => {
/*if null/undefined*/
if (val == null) {
return {'wch': 10};
}
/*if chinese*/
else if (val.toString().charCodeAt(0) > 255) {
return {'wch': val.toString().length * 2};
} else {
return {'wch': val.toString().length};
}
}))
/*start in the first row*/
let result = colWidth[0];
for (let i = 1; i < colWidth.length; i++) {
for (let j = 0; j < colWidth[i].length; j++) {
if (result[j]['wch'] < colWidth[i][j]['wch']) {
result[j]['wch'] = colWidth[i][j]['wch'];
}
}
}
ws['!cols'] = result;
}
function json_to_array(key, jsonData){
return jsonData.map(v => key.map(j => { return v[j] }));
}
// fix data,return string
function fixdata(data) {
let o = ''
let l = 0
const w = 10240
for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)))
o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)))
return o
}
// get head from excel file,return array
function get_header_row(sheet) {
const headers = []
const range = XLSX.utils.decode_range(sheet['!ref'])
let C
const R = range.s.r /* start in the first row */
for (C = range.s.c; C <= range.e.c; ++C) { /* walk every column in the range */
var cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })] /* find the cell in the first row */
var hdr = 'UNKNOWN ' + C // <-- replace with your desired default
if (cell && cell.t) hdr = XLSX.utils.format_cell(cell)
headers.push(hdr)
}
return headers
}
export const export_table_to_excel= (id, filename) => {
const table = document.getElementById(id);
const wb = XLSX.utils.table_to_book(table);
XLSX.writeFile(wb, filename);
}
export const export_json_to_excel = ({data, key, title, filename, autoWidth}) => {
const wb = XLSX.utils.book_new();
data.unshift(title);
const ws = XLSX.utils.json_to_sheet(data, {header: key, skipHeader: true});
if(autoWidth){
const arr = json_to_array(key, data);
auto_width(ws, arr);
}
XLSX.utils.book_append_sheet(wb, ws, filename);
XLSX.writeFile(wb, filename + '.xlsx');
}
export const export_array_to_excel = ({key, data, title, filename, autoWidth}) => {
const wb = XLSX.utils.book_new();
const arr = json_to_array(key, data);
arr.unshift(title);
const ws = XLSX.utils.aoa_to_sheet(arr);
if(autoWidth){
auto_width(ws, arr);
}
XLSX.utils.book_append_sheet(wb, ws, filename);
XLSX.writeFile(wb, filename + '.xlsx');
}
export const read = (data, type) => {
const workbook = XLSX.read(data, { type: type });
const firstSheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[firstSheetName];
const header = get_header_row(worksheet);
const results = XLSX.utils.sheet_to_json(worksheet);
return {header, results};
}
export default {
export_table_to_excel,
export_array_to_excel,
export_json_to_excel,
read
}

View File

@@ -2,12 +2,13 @@ import lazyLoading from './lazyLoading.js';
import Cookies from "js-cookie";
import { result } from './routerJson.js';
import config from '@/config/index'
let util = {
};
util.title = function (title) {
title = title || 'lili 商家后台';
title = title || `${config.title} 商家后台`;
window.document.title = title;
};

View File

@@ -1,11 +1,8 @@
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from "vue";
import ViewUI from "view-design";
import "./styles/theme.less";
import "core-js/stable";
// import "regenerator-runtime/runtime";
import vueQr from "vue-qr";
import App from "./App";

View File

@@ -1,11 +1,11 @@
import Main from "@/views/Main.vue";
import config from '@/config/index'
// 不作为Main组件的子页面展示的页面单独写如下
export const loginRouter = {
path: "/login",
name: "login",
meta: {
title: "登录 - lili商家后台"
title: `登录 - ${config.title}商家后台`
},
component: () => import("@/views/login.vue")
};

View File

@@ -24,7 +24,7 @@
<Avatar :src="userInfo.storeLogo" style="background: #fff;margin-left: 10px;"></Avatar>
</div>
<DropdownMenu slot="list">
<DropdownItem name="changePass">切换</DropdownItem>
<DropdownItem name="changePass">修改密码</DropdownItem>
<DropdownItem name="loginOut" divided>退出</DropdownItem>
</DropdownMenu>
</Dropdown>

View File

@@ -509,6 +509,7 @@ export default {
isIndex: "",
required: "",
paramId: "",
sort: ""
};
}
this.baseInfoForm.goodsParamsDTOList[groupIndex].goodsParamsItemDTOList[
@@ -519,6 +520,7 @@ export default {
isIndex: params.isIndex,
required: params.required,
paramId: params.id,
sort: params.sort
};
},
// 编辑sku图片

View File

@@ -112,8 +112,16 @@ export default {
item.storeId = this.storeId;
this.month = "";
if (item.searchType == "") {
item.searchType = "LAST_SEVEN";
if (item.searchType == "") {
if (
dateList.some((date) => {
return date.title == item.title;
})
) {
item.searchType = date.searchType;
} else {
item.searchType = "LAST_SEVEN";
}
}
this.selectedWay = item;

View File

@@ -97,7 +97,7 @@
<div class="block">
<div class="box">
<span>付款笔数</span>
<span>{{overViewList.paymentsNum || 0 }}</span>
<span>{{overViewList.paymentOrderNum || 0 }}</span>
</div>
</div>