优化管理端商家端冗余以及配置内容。抽出公共主题颜色、站点标题等内容。分离config中api配置,修改商家发布中拖拽以及控制台出错的bug。

This commit is contained in:
lemon橪
2021-09-22 15:08:34 +08:00
parent 53cc6f46d1
commit 2037b57a5d
50 changed files with 393 additions and 861 deletions

View File

@@ -1,77 +1,32 @@
<template>
<div class="search">
<Card>
<Form
ref="searchForm"
:model="searchForm"
inline
:label-width="70"
class="search-form mb_10"
@keydown.enter.native="handleSearch"
>
<Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form mb_10"
@keydown.enter.native="handleSearch">
<Form-item label="商品名称" prop="goodsName">
<Input
type="text"
v-model="searchForm.goodsName"
placeholder="请输入商品名称"
clearable
style="width: 200px"
/>
<Input type="text" v-model="searchForm.goodsName" placeholder="请输入商品名称" clearable style="width: 200px" />
</Form-item>
<span v-if="drop">
<Form-item label="状态" prop="status">
<Select
v-model="searchForm.marketEnable"
placeholder="请选择"
clearable
style="width: 200px"
>
<Option value="DOWN">下架</Option>
<Option value="UPPER">上架</Option>
</Select>
</Form-item>
<Form-item label="商品编号" prop="sn">
<Input
type="text"
v-model="searchForm.sn"
placeholder="商品编号"
clearable
style="width: 200px"
/>
</Form-item>
</span>
<Form-item label="状态" prop="status">
<Select v-model="searchForm.marketEnable" placeholder="请选择" clearable style="width: 200px">
<Option value="DOWN">下架</Option>
<Option value="UPPER">上架</Option>
</Select>
</Form-item>
<Form-item label="商品编号" prop="sn">
<Input type="text" v-model="searchForm.sn" placeholder="商品编号" clearable style="width: 200px" />
</Form-item>
<Form-item style="margin-left: -35px" class="br">
<Button @click="handleSearch" type="primary" icon="ios-search"
>搜索</Button
>
<Button @click="handleReset">重置</Button>
<a class="drop-down" @click="dropDown">
{{ dropDownContent }}
<Icon :type="dropDownIcon"></Icon>
</a>
<Button @click="handleSearch" type="primary" icon="ios-search">搜索</Button>
</Form-item>
</Form>
<Table
:loading="loading"
border
:columns="columns"
:data="data"
ref="table"
class="mt_10"
></Table>
<Table :loading="loading" border :columns="columns" :data="data" ref="table" class="mt_10"></Table>
<Row type="flex" justify="end" class="mt_10">
<Page
:current="searchForm.pageNumber"
:total="total"
:page-size="searchForm.pageSize"
@on-change="changePage"
@on-page-size-change="changePageSize"
:page-size-opts="[10, 20, 50]"
size="small"
show-total
show-elevator
show-sizer
></Page>
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage"
@on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]" size="small" show-total show-elevator
show-sizer></Page>
</Row>
</Card>
</div>
@@ -85,22 +40,20 @@ export default {
data() {
return {
loading: true, // 表单加载状态
drop: false,
dropDownContent: "展开",
dropDownIcon: "ios-arrow-down",
searchForm: {
// 搜索框初始化对象
pageNumber: 1, // 当前页数
pageSize: 10, // 页面大小
sort: "create_time", // 默认排序字段
order: "desc", // 默认排序方式
saveType: "TEMPLATE"
saveType: "TEMPLATE",
},
columns: [ // 表头
columns: [
// 表头
{
title: "ID",
key: "id",
minWidth: 120
minWidth: 120,
},
{
title: "商品原图",
@@ -126,14 +79,17 @@ export default {
{
title: "商品名称",
key: "goodsName",
minWidth: 120
minWidth: 120,
},
{
title: "商品价格",
key: "price",
render: (h, params) => {
return h('div', this.$options.filters.unitPrice(params.row.price, '¥'))
}
return h(
"div",
this.$options.filters.unitPrice(params.row.price, "¥")
);
},
},
{
@@ -143,7 +99,7 @@ export default {
{
title: "创建时间",
key: "createTime",
minWidth: 120
minWidth: 120,
},
{
title: "操作",
@@ -187,7 +143,7 @@ export default {
},
},
"删除"
)
),
]);
},
},
@@ -197,15 +153,19 @@ export default {
};
},
methods: {
init() { // 初始化数据
init() {
// 初始化数据
this.getDataList();
},
// 编辑模板
editGoods(v) {
this.$router.push({ name: "goods-template-operation-edit", query: { draftId: v.id } })
this.$router.push({
name: "goods-template-operation-edit",
query: { draftId: v.id },
});
},
// 删除模板
removeDraft (id) {
removeDraft(id) {
let showType = "模版";
this.$Modal.confirm({
title: "确认审核",
@@ -246,17 +206,7 @@ export default {
// 重新加载数据
this.getDataList();
},
// 展开、收起搜索项
dropDown() {
if (this.drop) {
this.dropDownContent = "展开";
this.dropDownIcon = "ios-arrow-down";
} else {
this.dropDownContent = "收起";
this.dropDownIcon = "ios-arrow-up";
}
this.drop = !this.drop;
},
// 获取列表数据
getDataList() {
this.loading = true;
@@ -281,22 +231,4 @@ export default {
};
</script>
<style lang="scss" scoped>
.search {
.operation {
margin-bottom: 2vh;
}
.select-count {
font-weight: 600;
color: #40a9ff;
}
.select-clear {
margin-left: 10px;
}
.page {
margin-top: 2vh;
}
.drop-down {
margin-left: 5px;
}
}
</style>

View File

@@ -6,18 +6,20 @@
<Row style="flex-direction: column;">
<Form ref="usernameLoginForm" :model="form" :rules="rules" class="form">
<FormItem prop="username">
<Input v-model="form.username" prefix="ios-contact" size="large" clearable placeholder="请输入用户名" autocomplete="off" />
<Input v-model="form.username" prefix="ios-contact" size="large" clearable placeholder="请输入用户名"
autocomplete="off" />
</FormItem>
<FormItem prop="password">
<Input type="password" v-model="form.password" prefix="ios-lock" size="large" password placeholder="请输入密码" autocomplete="off" />
<Input type="password" v-model="form.password" prefix="ios-lock" size="large" password placeholder="请输入密码"
autocomplete="off" />
</FormItem>
</Form>
<Row>
<Button class="login-btn" type="primary" size="large" :loading="loading" @click="submitLogin" long>
<div class="login-btn" type="primary" size="large" :loading="loading" @click="submitLogin" long>
<span v-if="!loading">登录</span>
<span v-else>登录中</span>
</Button>
</div>
</Row>
</Row>
@@ -26,6 +28,8 @@
<verify ref="verify" class="verify-con" verifyType="LOGIN" @change="verifyChange"></verify>
</Col>
</Row>
</div>
</template>
@@ -152,33 +156,18 @@ export default {
};
</script>
<style lang="scss" scoped>
.row {
padding: 70px 50px;
border-radius: 0.8em;
}
.login {
height: 100%;
background: url("../assets/background.png") no-repeat;
background-size: 100%;
background-position-y: bottom;
background-color: #edf0f3;
background-color: #fff;
display: flex;
align-items: center;
justify-content: center;
.ivu-tabs-nav-container {
line-height: 2;
font-size: 17px;
box-sizing: border-box;
white-space: nowrap;
overflow: hidden;
position: relative;
zoom: 1;
}
/deep/ .ivu-row {
display: flex;
}
.verify-con {
position: absolute;
top: 126px;
@@ -187,40 +176,26 @@ export default {
}
.form {
padding-top: 1vh;
.input-verify {
width: 67%;
}
}
.forget-pass,
.other-way {
font-size: 14px;
}
.login-btn,
.other-login {
margin-top: 3vh;
}
.icons {
display: flex;
align-items: center;
}
.other-icon {
.login-btn {
background: linear-gradient(135deg, $theme_color 0%, $warning_color 100%);
height: 40px;
cursor: pointer;
margin-left: 10px;
border-radius: 4px;
display: flex;
align-items: center;
color: rgba(0, 0, 0, 0.2);
:hover {
color: #2d8cf0;
}
justify-content: center;
font-size: 16px;
color: #fff;
width: 100%;
text-align: center;
transition: 0.35s;
}
.login-btn:hover {
opacity: .9;
border-radius: 10px;
}
}
.flex {
justify-content: center;
}
</style>

View File

@@ -7,7 +7,7 @@
</Row>
<Row type="flex" justify="center" class="copyright">
Copyright © {{year}} - Present
<a :href="config.website" target="_blank" style="margin:0 5px;">{{config.title}}</a>
<a :href="config.website" class="href" target="_blank" style="margin:0 5px;">{{config.title}}</a>
</Row>
</div>
</template>
@@ -44,4 +44,5 @@ export default {
}
}
}
</style>

View File

@@ -255,20 +255,20 @@ export default {
z-index: 11000;
list-style-type: none;
border-radius: 4px;
box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, .1);
box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04);
li {
margin: 0;
padding: 5px 15px;
cursor: pointer;
&:hover {
background: #eee;
background: rgba($color: $theme_color, $alpha: .1);
}
}
}
.ivu-tag-primary{
/deep/ .ivu-tag-dot-inner{
background: red !important;
background: $theme_color !important;
}
}

View File

@@ -31,10 +31,12 @@
<script>
import AMapLoader from "@amap/amap-jsapi-loader";
import { getRegion } from "@/api/common.js";
import config from '@/config'
export default {
name: "map",
data() {
return {
config,
showMap: false, // 地图显隐
mapSearch: "", // 地图搜索
map: null, // 初始化地图
@@ -71,7 +73,7 @@ export default {
},
init() {
AMapLoader.load({
key: "b440952723253aa9fe483e698057bf7d", // 申请好的Web端开发者Key首次调用 load 时必填
key: this.config.aMapKey, // 申请好的Web端开发者Key首次调用 load 时必填
version: "", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
plugins: [
"AMap.ToolBar",

View File

@@ -898,37 +898,9 @@ dl dt {
}
}
.flex-card {
display: flex;
height: 600px;
}
.card-item {
margin: 5px 0;
}
.flex-card-left {
flex: 4;
//background: #f8f8f8;
}
.flex-card-right {
flex: 6;
}
.search {
.operation {
margin-bottom: 2vh;
}
.select-count {
font-weight: 600;
color: #40a9ff;
}
.select-clear {
margin-left: 10px;
}
.div-item {
line-height: 35px;
@@ -944,15 +916,6 @@ dl dt {
}
}
.div-status-right {
margin-top: 20px;
margin-left: 30px;
font-size: 20px;
}
.page {
margin-top: 2vh;
}
button {
margin-left: 5px;
@@ -985,7 +948,7 @@ dl dt {
}
.flowPrice {
color: #cc0000;
color: $theme_color;
font-size: 22px;
}
}

View File

@@ -51,7 +51,7 @@
<template slot-scope="{ row }" slot="action">
<div class="row">
<Button
type="primary"
type="default"
size="small"
v-if="row.promotionStatus == 'NEW'"
@click="edit(row)"
@@ -75,7 +75,6 @@
type="error"
size="small"
v-if="row.promotionStatus != 'START'"
ghost
@click="remove(row)"
>删除</Button
>&nbsp;

View File

@@ -215,16 +215,5 @@ export default {
};
</script>
<style lang="scss" scoped>
.seckill {
.operation {
margin: 10px 0;
}
.select-count {
font-weight: 600;
color: #40a9ff;
}
.select-clear {
margin-left: 10px;
}
}
</style>

View File

@@ -127,7 +127,7 @@ export default {
form: {
// 添加或编辑表单对象初始化数据
storeAddressPath: "", // 店铺地址中文
center: "", // 经度 + 纬度
storeCenter: "", // 经度 + 纬度
longitude: "", //经度
latitude: "", //纬度
storeAddressDetail: "", //详细地址
@@ -194,7 +194,7 @@ export default {
this.form = res.result;
this.$set(this.form, "address", res.result.storeAddressPath);
this.storeName = res.result.storeName;
this.form.center = res.result.storeCenter;
this.form.storeCenter = res.result.storeCenter;
Cookies.set("userInfoSeller", JSON.stringify(res.result));
//库存预警数赋值
@@ -296,7 +296,7 @@ export default {
this.$set(this.form, "address", item.addr);
this.form.storeAddressPath = item.addr;
this.form.storeAddressIdPath = item.addrId;
this.form.center = item.position.lat + "," + item.position.lng;
this.form.storeCenter = item.position.lng + "," + item.position.lat
},
},
mounted() {