mirror of
https://gitee.com/beijing_hongye_huicheng/lilishop-ui.git
synced 2025-12-21 02:15:54 +08:00
优化管理端商家端冗余以及配置内容。抽出公共主题颜色、站点标题等内容。分离config中api配置,修改商家发布中拖拽以及控制台出错的bug。
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user