提交 1eb24e70 authored 作者: 王鹏飞's avatar 王鹏飞

update

上级 d287bf9d
...@@ -12,13 +12,18 @@ export function getGoodsList(data) { ...@@ -12,13 +12,18 @@ export function getGoodsList(data) {
export function addGoods(data) { export function addGoods(data) {
return httpRequest.post('/api/shop/commodity/spu/add', data) return httpRequest.post('/api/shop/commodity/spu/add', data)
} }
/** /**
* 更新商品 * 更新商品
*/ */
export function updateGoods(data) { export function updateGoods(data) {
return httpRequest.post('/api/shop/commodity/spu/modify', data) return httpRequest.post('/api/shop/commodity/spu/modify', data)
} }
/**
* 删除商品
*/
export function deleteGoods(data) {
return httpRequest.post('/api/shop/commodity/spu/delete', data)
}
/** /**
* 获取商品分组 * 获取商品分组
...@@ -51,6 +56,19 @@ export function deleteGroup(data) { ...@@ -51,6 +56,19 @@ export function deleteGroup(data) {
export function getSkuNameList(data) { export function getSkuNameList(data) {
return httpRequest.post('/api/shop/spec/search', data) return httpRequest.post('/api/shop/spec/search', data)
} }
/**
* 创建商品规格
*/
export function addSku(data) {
return httpRequest.post('/api/shop/spec/add', data)
}
/**
* 删除商品规格
*/
export function deleteSku(data) {
return httpRequest.post('/api/shop/spec/delete', data)
}
/** /**
* 获取商品规格值 * 获取商品规格值
*/ */
...@@ -58,14 +76,14 @@ export function getSkuValueList(data) { ...@@ -58,14 +76,14 @@ export function getSkuValueList(data) {
return httpRequest.post('/api/shop/spec/value/search', data) return httpRequest.post('/api/shop/spec/value/search', data)
} }
/** /**
* 创建商品规格 * 创建商品规格
*/ */
export function addSku(data) { export function addSkuValue(data) {
return httpRequest.post('/api/shop/spec/add', data) return httpRequest.post('/api/shop/spec/value/add', data)
} }
/** /**
* 创建商品规格 * 删除商品规格值
*/ */
export function addSkuValue(data) { export function deleteSkuValue(data) {
return httpRequest.post('/api/shop/spec/value/add', data) return httpRequest.post('/api/shop/spec/value/delete', data)
} }
import httpRequest from '@/utils/axios' import httpRequest from '@/utils/axios'
/** /**
* 获取商品列表 * 获取订单列表
*/ */
export function getGoodsList(data) { export function getOrderList(data) {
return httpRequest.post('/api/shop/commodity/spu/search', data) return httpRequest.post('/api/shop/order/search', data)
} }
/** /**
* 创建商品 * 创建订单
*/ */
export function addGoods(data) { export function addOrder(data) {
return httpRequest.post('/api/shop/commodity/spu/add', data) return httpRequest.post('/api/shop/order/add', data)
}
/**
* 更新商品
*/
export function updateGoods(data) {
return httpRequest.post('/api/shop/commodity/spu/modify', data)
} }
...@@ -13,7 +13,12 @@ export function getShopList(data) { ...@@ -13,7 +13,12 @@ export function getShopList(data) {
export function addShop(data) { export function addShop(data) {
return httpRequest.post('/api/shop/shop/add', data) return httpRequest.post('/api/shop/shop/add', data)
} }
/**
* 更新店铺
*/
export function updateShop(data) {
return httpRequest.post('/api/shop/shop/modify', data)
}
/** /**
* 删除店铺 * 删除店铺
*/ */
......
...@@ -140,6 +140,10 @@ export default { ...@@ -140,6 +140,10 @@ export default {
this.page.total = parseInt(pageInfo.total_number || '') this.page.total = parseInt(pageInfo.total_number || '')
this.dataList = callback ? callback(data) : data this.dataList = callback ? callback(data) : data
}) })
.catch(() => {
this.page.total = 0
this.dataList = []
})
.finally(() => { .finally(() => {
this.loading = false this.loading = false
}) })
......
<template> <template>
<div class="upload-wrapper"> <div class="app-upload">
<el-upload <el-upload
class="avatar-uploader"
action="https://webapp-pub.oss-cn-beijing.aliyuncs.com" action="https://webapp-pub.oss-cn-beijing.aliyuncs.com"
type="drag" type="drag"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:on-success="handleSuccess" :on-success="handleSuccess"
:on-preview="handlePreview"
:data="data" :data="data"
:file-list="fileList"
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
> >
<div v-if="value" class="avatar"><img :src="value" /></div> <slot>
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i class="el-icon-plus"></i>
</slot>
</el-upload> </el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="previewFile.url" />
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
...@@ -21,12 +26,34 @@ import md5 from 'blueimp-md5' ...@@ -21,12 +26,34 @@ import md5 from 'blueimp-md5'
export default { export default {
name: 'AppUpload', name: 'AppUpload',
props: { props: {
value: { type: String }, value: { type: [String, Array] },
prefix: { type: String, default: 'upload/shop-admin/' } prefix: { type: String, default: 'upload/shop-admin/' }
}, },
data() { data() {
return { return {
data: {} data: {}, // 请求参数
fileList: [], // 文件列表
dialogVisible: false,
previewFile: {}
}
},
watch: {
value: {
immediate: true,
handler(value) {
if (!value) {
return
}
let fileList = []
if (Array.isArray(value)) {
fileList = value.map(item => {
return { name: item.name || item, url: item.url || item }
})
} else {
fileList.push({ name: '附件', url: value })
}
this.fileList = [...fileList]
}
} }
}, },
methods: { methods: {
...@@ -38,7 +65,7 @@ export default { ...@@ -38,7 +65,7 @@ export default {
.then(response => { .then(response => {
const { accessid, policy, signature, host } = response const { accessid, policy, signature, host } = response
this.data = { key, OSSAccessKeyId: accessid, policy, signature, success_action_status: '200' } this.data = { key, OSSAccessKeyId: accessid, policy, signature, success_action_status: '200' }
file.src = `${host}/${key}` file.url = `${host}/${key}`
resolve(true) resolve(true)
}) })
.catch(err => { .catch(err => {
...@@ -48,45 +75,47 @@ export default { ...@@ -48,45 +75,47 @@ export default {
}) })
}, },
handleSuccess(response, file) { handleSuccess(response, file) {
this.$emit('input', file.raw.src) if (Array.isArray(this.value)) {
this.fileList.push({ name: file.name, url: file.raw.url })
this.$emit('input', this.fileList)
} else {
this.fileList = [file.raw.url]
this.$emit('input', file.raw.url)
}
},
// 删除
handleRemove(index) {
this.fileList.splice(index, 1)
this.$emit('input', Array.isArray(this.value) ? this.fileList : '')
},
// 预览
handlePreview(file) {
this.previewFile = file
this.dialogVisible = true
} }
} }
} }
</script> </script>
<style> <style>
.avatar-uploader .el-upload { .el-upload-list--picture-card .el-upload-list__item-thumbnail {
border: 1px dashed #d9d9d9; object-fit: cover;
}
.el-upload-list__item {
transition: none !important;
}
/* .el-upload--text {
background-color: #fbfdff;
border: 1px dashed #c0ccda;
border-radius: 6px; border-radius: 6px;
box-sizing: border-box;
width: 148px;
height: 148px;
cursor: pointer; cursor: pointer;
position: relative; line-height: 146px;
overflow: hidden; vertical-align: top;
}
.avatar-uploader .el-upload:hover {
border-color: #20a0ff;
} }
.el-upload--text i {
.avatar-uploader-icon {
font-size: 28px; font-size: 28px;
color: #8c939d; color: #8c939d;
width: 178px; } */
height: 178px;
line-height: 178px;
text-align: center;
}
.avatar {
width: 178px;
height: 178px;
display: block;
}
.avatar img {
max-width: 100%;
max-height: 100%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
</style> </style>
<template>
<div class="goods-message">
<message-item v-for="(item, index) in list" :data="item" :key="index" @remove="handleRemove(index)"></message-item>
<el-button type="text" @click="handleAdd">
<i class="el-icon-circle-plus-outline"></i>&nbsp;&nbsp;添加字段
</el-button>
</div>
</template>
<script>
import MessageItem from './messageItem'
export default {
props: { data: { type: Array, default: () => [] } },
components: { MessageItem },
data() {
return {
list: [{ filed: '手机号', type: 'text', required: true }]
}
},
methods: {
handleAdd() {
this.list.push({ filed: '留言' + (this.list.length + 1), type: 'text', required: false })
},
handleRemove(index) {
this.list.splice(index, 1)
}
}
}
</script>
<style>
</style>
<template>
<div class="goods-message-item">
<el-input v-model="data.filed" style="width: 200px" />
<el-select v-model="data.type" style="width: 120px; margin: 0 20px">
<el-option v-for="item in list" :label="item.name" :value="item.type" :key="item.type"></el-option>
</el-select>
<el-checkbox v-model="data.multiple" v-if="data.type === 'text'">多行</el-checkbox>
<el-checkbox v-model="data.datetime" v-if="data.type === 'time'">含日期</el-checkbox>
<el-checkbox v-model="data.required">必填</el-checkbox>
<el-button type="text" style="margin-left: 20px" @click="$emit('remove')">删除</el-button>
</div>
</template>
<script>
export default {
props: { data: { type: Object, default: () => [] } },
data() {
return {
list: [
{ type: 'text', name: '文本格式' },
{ type: 'number', name: '数字格式' },
{ type: 'email', name: '邮件' },
{ type: 'date', name: '日期' },
{ type: 'time', name: '时间' },
{ type: 'id', name: '身份证号' },
{ type: 'image', name: '图片' },
{ type: 'phone', name: '手机号' }
]
}
},
methods: {
handleAdd() {}
}
}
</script>
<style lang="scss">
.goods-message-item {
display: flex;
align-items: center;
}
.goods-message-item + .goods-message-item {
margin-top: 10px;
}
</style>
...@@ -27,25 +27,7 @@ export default { ...@@ -27,25 +27,7 @@ export default {
}, },
data() { data() {
return { return {
skuNameList: [ skuNameList: [] // 规格名称列表
{
spec_id: '1',
spec_name: '颜色',
spec_values: [
{ spec_value_id: '1', spec_value: '红' },
{ spec_value_id: '2', spec_value: '黄' },
{ spec_value_id: '3', spec_value: '蓝' }
]
},
{
spec_id: '2',
spec_name: '大小',
spec_values: [
{ spec_value_id: '1', spec_value: 'L' },
{ spec_value_id: '2', spec_value: 'M' }
]
}
] // 规格名称列表
} }
}, },
computed: { computed: {
......
...@@ -40,8 +40,8 @@ ...@@ -40,8 +40,8 @@
<span>批量设置:</span> <span>批量设置:</span>
<div class="batch-buttons" v-if="!showBatchInput"> <div class="batch-buttons" v-if="!showBatchInput">
<el-button type="text" @click="batchUpdate('price')">价格</el-button> <el-button type="text" @click="batchUpdate('price')">价格</el-button>
<el-button type="text" @click="batchUpdate('stock')">库存</el-button>
<el-button type="text" @click="batchUpdate('mark_price')">划线价</el-button> <el-button type="text" @click="batchUpdate('mark_price')">划线价</el-button>
<el-button type="text" @click="batchUpdate('stock')">库存</el-button>
<el-button type="text" @click="batchUpdate('prime_price')">成本价</el-button> <el-button type="text" @click="batchUpdate('prime_price')">成本价</el-button>
</div> </div>
<div class="batch-input" v-else> <div class="batch-input" v-else>
...@@ -93,7 +93,6 @@ export default { ...@@ -93,7 +93,6 @@ export default {
skuValueList: { skuValueList: {
handler: function (newValue) { handler: function (newValue) {
newValue.forEach((item, index) => { newValue.forEach((item, index) => {
console.log(item)
// 规格 // 规格
const values = item.reduce( const values = item.reduce(
(result, item) => { (result, item) => {
......
...@@ -50,7 +50,7 @@ export default { ...@@ -50,7 +50,7 @@ export default {
children: [ children: [
{ name: '店铺信息', path: '/setting/info' }, { name: '店铺信息', path: '/setting/info' },
{ name: '联系我们', path: '/setting/contact' }, { name: '联系我们', path: '/setting/contact' },
{ name: '通用设置', path: '/setting/base' }, { name: '通用设置', path: '/setting/general' },
{ name: '商品设置', path: '/setting/goods' } { name: '商品设置', path: '/setting/goods' }
] ]
} }
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
</template> </template>
<script> <script>
import { addSkuValue } from '@/api/goods' import { addSkuValue, deleteSku, deleteSkuValue } from '@/api/goods'
export default { export default {
props: { props: {
...@@ -82,9 +82,21 @@ export default { ...@@ -82,9 +82,21 @@ export default {
}) })
}, },
// 删除规格 // 删除规格
removeSku(item) {}, removeSku(data) {
deleteSku({ shop_id: this.shopId, spec_id: data.spec_id }).then(response => {
this.$message({ type: 'success', message: '删除成功' })
this.$emit('update')
})
},
// 删除规格值 // 删除规格值
removeSkuValue(item) {} removeSkuValue(data) {
deleteSkuValue({ shop_id: this.shopId, spec_id: this.data.spec_id, spec_value_id: data.spec_value_id }).then(
response => {
this.$message({ type: 'success', message: '删除成功' })
this.$emit('update')
}
)
}
} }
} }
</script> </script>
......
<template> <template>
<app-card> <app-card>
<!--列表-->
<table-list v-bind="tableOptions" ref="list"> <table-list v-bind="tableOptions" ref="list">
<el-tabs v-model="activeName" type="card" @tab-click="handleClick"> <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane :label="item.label" :name="item.name" v-for="item in tabList" :key="item.name"></el-tab-pane> <el-tab-pane :label="item.label" :name="item.name" v-for="item in tabList" :key="item.name"></el-tab-pane>
...@@ -12,6 +11,9 @@ ...@@ -12,6 +11,9 @@
</template> </template>
<template v-slot:table-x="{ row }"> <template v-slot:table-x="{ row }">
<el-button type="text" @click="handleUpdate(row)">编辑</el-button> <el-button type="text" @click="handleUpdate(row)">编辑</el-button>
<!-- <el-popconfirm confirm-button-text="确认" title="确定要删除该商品吗?" @confirm="handleRemove(row)">
<el-button type="text" slot="reference">删除</el-button>
</el-popconfirm> -->
<el-button type="text" @click="handlePromote(row)">推广</el-button> <el-button type="text" @click="handlePromote(row)">推广</el-button>
<el-button type="text" @click="handleCopy(row)">复制</el-button> <el-button type="text" @click="handleCopy(row)">复制</el-button>
</template> </template>
...@@ -24,18 +26,18 @@ ...@@ -24,18 +26,18 @@
import TableList from '@/components/base/tableList' import TableList from '@/components/base/tableList'
import AppCard from '@/components/base/card' import AppCard from '@/components/base/card'
// 接口 // 接口
import { getGoodsList } from '@/api/goods' import { getGoodsList, deleteGoods } from '@/api/goods'
export default { export default {
components: { AppCard, TableList }, components: { AppCard, TableList },
data() { data() {
return { return {
activeName: '1', activeName: '0',
tabList: [ tabList: [
{ label: '全部', name: '1' }, { label: '全部', name: '0' },
{ label: '销售中', name: '2' }, { label: '销售中', name: '2' },
{ label: '已售罄', name: '3' }, { label: '已售罄', name: '3' },
{ label: '仓库中', name: '4' } { label: '仓库中', name: '1' }
] ]
} }
}, },
...@@ -51,7 +53,8 @@ export default { ...@@ -51,7 +53,8 @@ export default {
return { return {
remote: { remote: {
httpRequest: getGoodsList, httpRequest: getGoodsList,
params: { shop_id: this.shopId, spu_id: '', spu_name: '', group_id: '' } params: { shop_id: this.shopId, spu_id: '', spu_name: '', group_id: '' },
beforeRequest: this.beforeRequest
}, },
filters: [ filters: [
{ {
...@@ -88,15 +91,29 @@ export default { ...@@ -88,15 +91,29 @@ export default {
} }
}, },
methods: { methods: {
beforeRequest(params) {
params.status = this.activeName === '0' ? '' : this.activeName
return params
},
handleClick() { handleClick() {
this.$refs.list.refetch(true) this.$refs.list.refetch(true)
}, },
// 编辑 // 编辑
handleUpdate() {}, handleUpdate(data) {
this.$router.push({ name: 'goodsEdit', params: { id: data.spu_id } })
},
// 删除
handleRemove(row) {
deleteGoods({ shop_id: this.shopId, spu_id: row.spu_id }).then(res => {
this.$refs.list.refetch()
})
},
// 推广 // 推广
handlePromote() {}, handlePromote(data) {},
// 复制 // 复制
handleCopy() {} handleCopy(data) {
this.$router.push({ name: 'goodsAdd', query: { id: data.spu_id } })
}
}, },
beforeMount() { beforeMount() {
// 获取商品分组 // 获取商品分组
......
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
<el-button type="primary">新增订单</el-button> <el-button type="primary">新增订单</el-button>
</router-link> </router-link>
</template> </template>
<template v-slot:table-price="{ row }">
<p>{{ row.product_price }}</p>
<p>{{ row.buy_count }}</p>
</template>
<template v-slot:table-x="{ row }"> <template v-slot:table-x="{ row }">
<el-button type="text" @click="handleUpdate(row)">编辑</el-button> <el-button type="text" @click="handleUpdate(row)">编辑</el-button>
<el-button type="text" @click="handlePromote(row)">推广</el-button> <el-button type="text" @click="handlePromote(row)">推广</el-button>
...@@ -24,15 +28,15 @@ ...@@ -24,15 +28,15 @@
import TableList from '@/components/base/tableList' import TableList from '@/components/base/tableList'
import AppCard from '@/components/base/card' import AppCard from '@/components/base/card'
// 接口 // 接口
import { getGoodsList } from '@/api/goods' import { getOrderList } from '@/api/order'
export default { export default {
components: { AppCard, TableList }, components: { AppCard, TableList },
data() { data() {
return { return {
activeName: '1', activeName: '0',
tabList: [ tabList: [
{ label: '全部', name: '1' }, { label: '全部', name: '0' },
{ label: '代付款', name: '2' }, { label: '代付款', name: '2' },
{ label: '待发货', name: '3' }, { label: '待发货', name: '3' },
{ label: '已发货', name: '4' }, { label: '已发货', name: '4' },
...@@ -47,8 +51,9 @@ export default { ...@@ -47,8 +51,9 @@ export default {
tableOptions() { tableOptions() {
return { return {
remote: { remote: {
httpRequest: getGoodsList, httpRequest: getOrderList,
params: { shop_id: this.$store.state.shopId } params: { shop_id: this.$store.state.shopId },
beforeRequest: this.beforeRequest
}, },
filters: [ filters: [
{ {
...@@ -68,19 +73,23 @@ export default { ...@@ -68,19 +73,23 @@ export default {
} }
], ],
columns: [ columns: [
{ label: '商品', prop: 'name' }, { label: '商品', prop: 'shop_name' },
{ label: '单价(元)/数量', prop: 'sellPrice' }, { label: '单价(元)/数量', prop: 'product_price', slots: 'table-price' },
{ label: '售后', prop: 'sellPrice' }, { label: '售后', prop: 'sellPrice' },
{ label: '买家 / 收货人', prop: 'balanceCount' }, { label: '买家 / 收货人', prop: 'shipping_user' },
{ label: '配送方式', prop: 'sellCount' }, { label: '配送方式', prop: 'sellCount' },
{ label: '实收金额(元)', prop: 'createTime' }, { label: '实收金额(元)', prop: 'payment_money' },
{ label: '订单状态', prop: 'createTime' }, { label: '订单状态', prop: 'order_status' },
{ label: '操作', slots: 'table-x' } { label: '操作', slots: 'table-x' }
] ]
} }
} }
}, },
methods: { methods: {
beforeRequest(params) {
params.status = this.activeName === '0' ? '' : this.activeName
return params
},
handleClick() { handleClick() {
this.$refs.list.refetch(true) this.$refs.list.refetch(true)
}, },
......
<template> <template>
<app-card> <app-card>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" style="width: 400px"> <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" style="width: 400px">
<el-form-item label="客户电话" prop="tel"> <el-form-item label="客户电话" prop="shop_tel">
<el-input v-model="ruleForm.tel"></el-input> <el-input v-model="ruleForm.shop_tel"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="详细地址" prop="address"> <el-form-item label="详细地址" prop="shop_address">
<el-input v-model="ruleForm.address"> <el-input v-model="ruleForm.shop_address">
<template #append> <template #append>
<el-button>搜索地图</el-button> <el-button>搜索地图</el-button>
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-form> </el-form>
</app-card> </app-card>
</template> </template>
<script> <script>
import AppCard from '@/components/base/card' import AppCard from '@/components/base/card'
import { updateShop } from '@/api/shop'
export default { export default {
components: { AppCard }, components: { AppCard },
data() { data() {
return { return {
ruleForm: { tel: '', address: '' }, ruleForm: { shop_tel: '', shop_address: '' },
rules: { rules: {
tel: [{ required: true, message: '必填', trigger: 'blur' }], shop_tel: [{ required: true, message: '必填', trigger: 'blur' }],
address: [{ required: true, message: '必填', trigger: 'blur' }] shop_address: [{ required: true, message: '必填', trigger: 'blur' }]
}
}
},
computed: {
shop() {
return this.$store.state.shop
}
},
watch: {
shop: {
immediate: true,
handler(data) {
this.ruleForm = Object.assign({}, data)
} }
} }
}, },
methods: {} methods: {
onSubmit() {
this.$refs.ruleForm.validate().then(this.updateShop)
},
updateShop() {
updateShop(this.ruleForm).then(resp => {
this.$message({ type: 'success', message: '修改成功' })
this.dialogVisible = false
this.$store.dispatch('getShop')
})
}
}
} }
</script> </script>
......
<template>
<app-card>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
<el-form-item label="店铺有效期" prop="shop_name">
<el-date-picker
v-model="ruleForm.end_time"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择店铺有效期"
>
</el-date-picker>
</el-form-item>
</el-form>
</app-card>
</template>
<script>
import AppCard from '@/components/base/card'
import { updateShop } from '@/api/shop'
export default {
components: { AppCard },
data() {
return {
ruleForm: {
end_time: ''
},
rules: {
end_time: [{ required: true, message: '必填', trigger: 'blur' }]
}
}
},
computed: {
shop() {
return this.$store.state.shop
}
},
watch: {
shop: {
immediate: true,
handler(data) {
this.ruleForm = Object.assign({}, data)
}
}
},
methods: {
onSubmit() {
this.$refs.ruleForm.validate().then(this.updateShop)
},
updateShop() {
updateShop(this.ruleForm).then(resp => {
this.$message({ type: 'success', message: '修改成功' })
this.$store.dispatch('getShop')
})
}
}
}
</script>
<style>
</style>
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<label class="label">创建时间:</label><span class="content">{{ shop.create_time }}</span> <label class="label">创建时间:</label><span class="content">{{ shop.create_time }}</span>
</div> </div>
<div class="item"> <div class="item">
<label class="label">联系电话:</label><span class="content">{{ shop.tel }}</span> <label class="label">联系电话:</label><span class="content">{{ shop.shop_tel }}</span>
</div> </div>
</div> </div>
</div> </div>
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<el-input v-model="ruleForm.shop_name" placeholder="请输入店铺、品牌、机构的全称"></el-input> <el-input v-model="ruleForm.shop_name" placeholder="请输入店铺、品牌、机构的全称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="店铺头像" prop="shop_logo"> <el-form-item label="店铺头像" prop="shop_logo">
<app-upload v-model="ruleForm.shop_logo"></app-upload> <app-upload v-model="ruleForm.shop_logo" accept="image/*" :show-file-list="false"></app-upload>
</el-form-item> </el-form-item>
<el-form-item label="店铺有效期" prop="end_time"> <el-form-item label="店铺有效期" prop="end_time">
<el-date-picker <el-date-picker
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
<script> <script>
import AppCard from '@/components/base/card' import AppCard from '@/components/base/card'
import AppUpload from '@/components/base/upload' import AppUpload from '@/components/base/upload'
import { updateShop } from '@/api/shop'
export default { export default {
components: { AppCard, AppUpload }, components: { AppCard, AppUpload },
data() { data() {
...@@ -80,7 +80,13 @@ export default { ...@@ -80,7 +80,13 @@ export default {
onSubmit() { onSubmit() {
this.$refs.ruleForm.validate().then(this.updateShop) this.$refs.ruleForm.validate().then(this.updateShop)
}, },
updateShop() {} updateShop() {
updateShop(this.ruleForm).then(resp => {
this.$message({ type: 'success', message: '修改成功' })
this.dialogVisible = false
this.$store.dispatch('getShop')
})
}
} }
} }
</script> </script>
......
...@@ -38,13 +38,16 @@ export default [ ...@@ -38,13 +38,16 @@ export default [
meta: { title: '商品列表' } meta: { title: '商品列表' }
}, },
{ {
name: 'goodsAdd',
path: 'add', path: 'add',
component: () => import(/* webpackChunkName: "goods" */ '@/pages/goods/goods/edit'), component: () => import(/* webpackChunkName: "goods" */ '@/pages/goods/goods/edit'),
meta: { title: '发布商品' } meta: { title: '发布商品' }
}, },
{ {
name: 'goodsEdit',
path: 'edit/:id', path: 'edit/:id',
component: () => import(/* webpackChunkName: "goods" */ '@/pages/goods/goods/edit'), component: () => import(/* webpackChunkName: "goods" */ '@/pages/goods/goods/edit'),
props: { isEdit: true },
meta: { title: '编辑商品' } meta: { title: '编辑商品' }
}, },
{ {
...@@ -84,6 +87,11 @@ export default [ ...@@ -84,6 +87,11 @@ export default [
component: () => import(/* webpackChunkName: "setting" */ '@/pages/setting/info'), component: () => import(/* webpackChunkName: "setting" */ '@/pages/setting/info'),
meta: { title: '店铺信息' } meta: { title: '店铺信息' }
}, },
{
path: 'general',
component: () => import(/* webpackChunkName: "setting" */ '@/pages/setting/general'),
meta: { title: '通用设置' }
},
{ {
path: 'contact', path: 'contact',
component: () => import(/* webpackChunkName: "setting" */ '@/pages/setting/contact'), component: () => import(/* webpackChunkName: "setting" */ '@/pages/setting/contact'),
......
...@@ -35,7 +35,9 @@ httpRequest.interceptors.response.use( ...@@ -35,7 +35,9 @@ httpRequest.interceptors.response.use(
function(response) { function(response) {
const { data } = response const { data } = response
if (data.code) { if (data.code) {
if (![1010].includes(data.code)) {
Message.error(data.msg || data.message) Message.error(data.msg || data.message)
}
return Promise.reject(data) return Promise.reject(data)
} }
return data return data
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论