Commit 58b89060 authored by mengwenhao's avatar mengwenhao

feature:拒绝审核完成

parent 0027faa5
...@@ -66,3 +66,35 @@ exports.getGoodsInfo = async ctx => { ...@@ -66,3 +66,35 @@ exports.getGoodsInfo = async ctx => {
}; };
ctx.body = await req(ctx, opts); ctx.body = await req(ctx, opts);
}; };
// 商品审核通过
exports.postSuccess = async ctx => {
const url = `${GOODS_URI}/goods/background/audit_pass`;
const opts = {
url,
method: "POST",
json: true,
body: ctx.request.body
};
ctx.body = await req(ctx, opts);
};
exports.checkGoodsName = async ctx => {
const opts = {
url: `${GOODS_URI}/goods/background/check_goods_name`,
method: "POST",
json: true,
body: ctx.request.body
};
ctx.body = req(ctx, opts);
};
exports.auditReject = async ctx => {
const opts = {
url: `${GOODS_URI}/goods/background/audit_reject`,
method: "POST",
json: true,
body: ctx.request.body
};
console.log("审核驳回操作", ctx.request.body);
ctx.body = await req(ctx, opts);
};
...@@ -43,6 +43,10 @@ router.get(`${API_VERSION}/goods/background/get_goods_list`, goods.getList); ...@@ -43,6 +43,10 @@ router.get(`${API_VERSION}/goods/background/get_goods_list`, goods.getList);
router.post(`${API_VERSION}/goods/background/online`, goods.putOnline); router.post(`${API_VERSION}/goods/background/online`, goods.putOnline);
router.post(`${API_VERSION}/goods/background/offline`, goods.putOffline); router.post(`${API_VERSION}/goods/background/offline`, goods.putOffline);
router.get(`${API_VERSION}/goods/background/get_goods_info`, goods.getGoodsInfo); router.get(`${API_VERSION}/goods/background/get_goods_info`, goods.getGoodsInfo);
router.post(`${API_VERSION}/goods/background/audit_pass`, goods.postSuccess);
router.post(`${API_VERSION}/goods/background/check_goods_name`, goods.checkGoodsName);
router.post(`${API_VERSION}/goods/background/audit_reject`, goods.auditReject)
//生活号 //生活号
router.post(`${API_VERSION}/merchant/lifeinner/life_info`, life.get_life_info) router.post(`${API_VERSION}/merchant/lifeinner/life_info`, life.get_life_info)
......
...@@ -16,24 +16,6 @@ ...@@ -16,24 +16,6 @@
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
} }
.detail .message .message_form {
width: 50%;
}
.detail .message .message_form .el-input__inner {
width: 80%;
}
.detail .message .message_form .el-textarea {
width: 80%;
}
.detail .message .message_form .options {
width: 80%;
}
.detail .message .message_form .options .el-input__inner {
width: 100%;
}
.detail .message .message_image {
width: 50%;
}
.message_border { .message_border {
margin: 10px 0; margin: 10px 0;
} }
...@@ -44,3 +26,20 @@ ...@@ -44,3 +26,20 @@
.el-textarea .el-textarea__inner { .el-textarea .el-textarea__inner {
resize: none; resize: none;
} }
.operationButton {
margin-top: 30px;
display: flex;
justify-content: center;
}
.deep_place .el-form-item__content {
display: flex;
align-items: center;
}
.deep_place a {
margin-left: 10px;
text-align: center;
width: 200px;
border-radius: 20px;
color: #fff;
background-color: #199ffb;
}
...@@ -14,24 +14,6 @@ ...@@ -14,24 +14,6 @@
.message { .message {
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
.message_form {
width: 50%;
.el-input__inner {
width: 80%;
}
.el-textarea {
width: 80%;
}
.options {
width: 80%;
.el-input__inner {
width: 100%;
}
}
}
.message_image {
width: 50%;
}
} }
} }
...@@ -46,3 +28,23 @@ ...@@ -46,3 +28,23 @@
.el-textarea .el-textarea__inner { .el-textarea .el-textarea__inner {
resize: none; resize: none;
} }
.operationButton {
margin-top: 30px;
display: flex;
justify-content: center;
}
.deep_place {
.el-form-item__content {
display: flex;
align-items: center;
}
a {
margin-left: 10px;
text-align: center;
width: 200px;
border-radius: 20px;
color: #fff;
background-color: #199ffb;
}
}
...@@ -14,30 +14,62 @@ ...@@ -14,30 +14,62 @@
<el-card class="message_border"> <el-card class="message_border">
<section class="message"> <section class="message">
<!-- 商品列表修改区 --> <!-- 商品列表修改区 -->
<section class="width50p">
<el-form <el-form
class="message_form width50p"
label-position="left" label-position="left"
label-width="100px" label-width="140px"
> >
<h3>基本信息</h3> <h3>基本信息</h3>
<el-form-item label="生活号名称:"> <el-form-item label="生活号名称:">
<el-input <!-- <el-input
v-if="$route.params.operation === 'EDIT'"
disabled disabled
:readonly="true" :readonly="true"
v-model="goodsObj.life_account_name" v-model="goodsObj.life_account_name"
></el-input> ></el-input> -->
<span>{{ goodsObj.life_account_name }}</span>
</el-form-item> </el-form-item>
<el-form-item label="生活号认证:"> <el-form-item label="生活号类型:">
<el-input></el-input> <!-- <el-select
aria-readonly="true"
disabled
v-if="$route.params.operation === 'EDIT'"
v-model="goodsObj.life_account_type"
>
<el-option
v-for="item in lifeList"
:key="item.value"
:label="item.options"
:value="item.value"
></el-option>
</el-select> -->
<span v-if="goodsObj.life_account_type === 1">个人生活号</span>
<span v-if="goodsObj.life_account_type === 2">企业生活号</span>
</el-form-item>
<el-form-item label="生活号认证状态:">
<span v-if="goodsObj.life_account_auth_status === 1">未认证</span>
<span v-if="goodsObj.life_account_auth_status === 2">已认证</span>
</el-form-item> </el-form-item>
<el-form-item label="商品id:"> <el-form-item label="商品id:">
<el-input v-model="goodsObj.goods_spu_id"></el-input> <!-- <el-input
v-if="$route.params.operation === 'EDIT'"
v-model="goodsObj.goods_spu_id"
></el-input> -->
<span>{{ goodsObj.goods_spu_id }}</span>
</el-form-item> </el-form-item>
<el-form-item label="商品名称:"> <el-form-item label="商品名称:">
<el-input v-model="goodsObj.goods_name"></el-input> <el-input
maxlength="50"
show-word-limit
v-if="$route.params.operation === 'EDIT'"
v-model="goodsObj.goods_name"
@blur="checkSameName"
></el-input>
<span v-else>{{ goodsObj.goods_name }}</span>
</el-form-item> </el-form-item>
<el-form-item label="分类:"> <el-form-item label="分类:">
<el-cascader <el-cascader
:disabled="$route.params.operation !== 'EDIT'"
v-model="optionsValue" v-model="optionsValue"
class="options" class="options"
:options="optionList" :options="optionList"
...@@ -48,36 +80,45 @@ ...@@ -48,36 +80,45 @@
</el-form-item> </el-form-item>
<el-form-item label="描述:"> <el-form-item label="描述:">
<el-input <el-input
v-if="$route.params.operation === 'EDIT'"
type="textarea" type="textarea"
maxlength="50" maxlength="50"
show-word-limit show-word-limit
:autosize="{ minRows: 4 }" :autosize="{ minRows: 4 }"
v-model="goodsObj.desc" v-model="goodsObj.desc"
></el-input> ></el-input>
<span v-else>{{ goodsObj.desc }}</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
</section>
<!-- 商品详情图 --> <!-- 商品详情图 -->
<article class="message_image width50p"> <section class="width50p">
<h4 style="margin-bottom:20px">商品详情图</h4> <h4 style="margin-bottom:20px">商品详情图</h4>
<el-upload <el-upload
:disabled="$route.params.operation !== 'EDIT'"
ref="detailUpload"
action="#" action="#"
:on-preview="previewImage"
:auto-upload="false" :auto-upload="false"
:limit="9" :limit="9"
list-type="picture-card" list-type="picture-card"
multiple multiple
:on-remove="handleRemove" :on-change="handleDetailChange"
@change="handleUploadChange" :on-remove="removeDetailFiles"
:file-list="descPicUrlList"
> >
<template #default>
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
</template>
</el-upload> </el-upload>
</article> </section>
</section> </section>
</el-card> </el-card>
<!-- 商品详情 --> <!-- 商品详情 -->
<el-card class="message_border"> <el-card class="message_border">
<h3>商品详情</h3> <h3>商品详情</h3>
<section class="message"> <section class="message">
<section class="width50p"> <!-- <section class="width50p">
<h4>套餐商品</h4> <h4>套餐商品</h4>
<el-table> <el-table>
<el-table-column <el-table-column
...@@ -97,26 +138,34 @@ ...@@ -97,26 +138,34 @@
label="单价" label="单价"
></el-table-column> ></el-table-column>
</el-table> </el-table>
</section> </section> -->
<section class="width50p"> <section class="width50p">
<h4 style="margin-bottom:20px">商品介绍图</h4> <h4 style="margin-bottom:20px">商品介绍图</h4>
<el-upload <el-upload
:disabled="$route.params.operation !== 'EDIT'"
action="#" action="#"
:auto-upload="false" :auto-upload="false"
:limit="9" :limit="9"
:on-preview="previewImage"
list-type="picture-card" list-type="picture-card"
multiple multiple
:on-remove="handleRemove" ref="intrUpload"
@change="handleUploadChange" :on-change="intrChange"
:on-remove="intrRemove"
:file-list="introducePicUrlList"
> >
<template #default>
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
</template>
</el-upload> </el-upload>
<h4 style="margin-top:20px">商品介绍</h4> <h4 style="margin-top:20px">商品介绍</h4>
<el-input <el-input
v-if="$route.params.operation === 'EDIT'"
type="textarea" type="textarea"
:readonly="true" :readonly="true"
v-model="goodsObj.introduce" v-model="goodsObj.introduce"
></el-input> ></el-input>
<span v-else>{{ goodsObj.introduce }}</span>
</section> </section>
</section> </section>
</el-card> </el-card>
...@@ -125,67 +174,122 @@ ...@@ -125,67 +174,122 @@
<section class="message"> <section class="message">
<section class="width50p"> <section class="width50p">
<h3>可用门店</h3> <h3>可用门店</h3>
<el-table> <el-table :data="goodsObj.sub_shop">
<el-table-column <el-table-column
label="门店名称" label="门店名称"
align="center" align="center"
prop="shop_name"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="联系电话" label="联系电话"
align="center" align="center"
prop="phone"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="地址" label="地址"
align="center" align="center"
prop="address"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="地理定位" label="地理定位"
align="center" align="center"
></el-table-column> >
<template #default="scope">
<span>经度:{{ scope.row.longitude }}</span>
&nbsp; &nbsp;
<span>纬度:{{ scope.row.latitude }}</span>
</template>
</el-table-column>
<el-table-column <el-table-column
label="操作" label="操作"
align="center" align="center"
> >
<template> <template #default="scope">
<el-button type="text">删除</el-button> <el-button
type="text"
@click="deleteShops(scope.row.shop_id)"
>删除
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-popover
placement="bottom"
:width="600"
trigger="click"
v-model:visible="addShopDialog"
>
<template #reference>
<el-button <el-button
type="primary" type="primary"
style="border-radius:20px;margin:20px 0 0 50%;transform: translate(-50%,0);" style="border-radius:20px;margin:20px 0 0 50%;transform: translate(-50%,0);"
>添加门店</el-button> >添加门店
</section> </el-button>
<section class="width50p"> </template>
<h4 style="margin-bottom:20px">价格信息</h4> <!-- 添加门店弹窗 -->
<el-form <el-form
inline label-position="right"
label-width="100px" label-width="100px"
:model="shopForm"
> >
<el-form-item label="秒杀价"> <el-form-item label="门店名称:">
<el-input v-model="shopForm.shop_name"></el-input>
</el-form-item>
<el-form-item label="联系电话:">
<el-input v-model="shopForm.connect_phone"></el-input>
</el-form-item>
<el-form-item label="地址:">
<el-input v-model="shopForm.address"></el-input>
</el-form-item>
<el-form-item
label="地理定位:"
class="deep_place"
>
<el-input v-model="shopForm.deep_place"></el-input>
<a
style=""
target="_blank"
href="https://lbs.amap.com/tools/picker"
>高德获取定位</a>
</el-form-item>
</el-form>
<section style="display:flex;justify-content:center;">
<el-button type="primary">保存</el-button>
<el-button @click="addShopDialog = false">取消</el-button>
</section>
</el-popover>
</section>
<section class="width50p">
<h4 style="margin-bottom:20px">价格信息</h4>
<el-form label-width="100px">
<!-- <el-form-item label="秒杀价">
<el-input <el-input
:readonly="true" :readonly="true"
disabled disabled
></el-input> ></el-input>
</el-form-item> </el-form-item> -->
<el-form-item label="售价"> <el-form-item label="售价">
<el-input></el-input> <el-input v-model="goodsObj.price"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="原价"> <el-form-item label="原价">
<el-input></el-input> <el-input v-model="goodsObj.original_price"></el-input>
</el-form-item> </el-form-item>
<h4 style="margin:20px 0">库存信息</h4> <h4 style="margin:20px 0">库存信息</h4>
<el-form-item label="剩余库存量:"> <el-form-item label="剩余库存量:">
<el-input-number <el-input-number
v-model="inventoryNumber" v-model="goodsObj.inventory_rest"
:min="0" :min="0"
></el-input-number> ></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="已购买量:"> <el-form-item label="已下单量:">
<span>{{ 12 }}</span> <span>{{ goodsObj.total_amount_sold }}</span>
</el-form-item>
<el-form-item label="已卖出总数:">
<span>{{ goodsObj.total_amount_sold }}</span>
</el-form-item> </el-form-item>
<el-form-item label="总库存量:"> <el-form-item label="总库存量:">
<span>{{ 13 }}</span> <span>{{ goodsObj.inventory_total }}</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
</section> </section>
...@@ -193,7 +297,7 @@ ...@@ -193,7 +297,7 @@
</el-card> </el-card>
<!-- 使用规则 --> <!-- 使用规则 -->
<el-card class="message_border"> <el-card class="message_border">
<h3>使用规则</h3> <h3 style="margin-bottom:30px;">使用规则</h3>
<el-form <el-form
style="width:480px" style="width:480px"
:model="rulesForm" :model="rulesForm"
...@@ -201,11 +305,14 @@ ...@@ -201,11 +305,14 @@
label-width="120px" label-width="120px"
> >
<el-form-item label="单人可买上限:"> <el-form-item label="单人可买上限:">
<el-input v-model="rulesForm.upperLimit"></el-input> <el-input-number
:min="0"
v-model="goodsObj.rule_limit"
></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="退款规则:"> <el-form-item label="退款规则:">
<el-select <el-select
v-model="rulesForm.rulesValue" v-model="goodsObj.rule_refund"
placeholder="请选择" placeholder="请选择"
> >
<el-option <el-option
...@@ -218,14 +325,14 @@ ...@@ -218,14 +325,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="使用日期:"> <el-form-item label="使用日期:">
<el-radio-group v-model="rulesForm.useDate"> <el-radio-group v-model="goodsObj.rule_date_type">
<el-radio <el-radio
label="周末、节假日通用" label="周末、节假日通用"
:value="1" :value="1"
></el-radio> ></el-radio>
<el-radio <el-radio
label="线下场地免费" label="仅工作日可用"
value="2" :value="2"
></el-radio> ></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
...@@ -233,10 +340,11 @@ ...@@ -233,10 +340,11 @@
<el-time-picker <el-time-picker
is-range is-range
v-model="rulesForm.useTime" v-model="rulesForm.useTime"
range-separator="" range-separator="-"
start-placeholder="开始时间" start-placeholder="开始时间"
end-placeholder="结束时间" end-placeholder="结束时间"
placeholder="选择时间范围" placeholder="选择时间范围"
@change="pickerTime"
> >
</el-time-picker> </el-time-picker>
</el-form-item> </el-form-item>
...@@ -245,61 +353,143 @@ ...@@ -245,61 +353,143 @@
type="textarea" type="textarea"
maxlength="100" maxlength="100"
show-word-limit show-word-limit
v-model="rulesForm.desc" v-model="goodsObj.rule_desc"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-card> </el-card>
<!-- 操作记录 --> <!-- 操作记录 -->
<el-card class="message_border"> <el-card class="message_border">
<h3>操作记录</h3> <h3 style="margin-bottom:30px;">操作记录</h3>
<el-table <el-table
border border
stripe stripe
:data="recordLits" :data="recordLits"
> >
</el-table>
<el-table-column <el-table-column
label="状态" label="状态"
prop="state" prop="state"
></el-table-column> align="center"
>
<template #default="scope">
<span v-if="scope.row.status === 0">待审核</span>
<span v-else-if="scope.row.status === 1">审核通过</span>
<span v-else>审核失败</span>
&nbsp;&nbsp;&nbsp;
<span v-if="scope.row.online_status === 0">未上架</span>
<span v-else-if="scope.row.online_status === 1">已上架</span>
<span v-else>已下架</span>
</template>
</el-table-column>
<el-table-column <el-table-column
label="操作者" label="操作者"
prop="author" prop="operator_name"
align="center"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="审核时间" label="审核时间"
prop="time" prop="create_time"
align="center"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="审核描述" label="审核描述"
prop="desc" prop="note"
align="center"
></el-table-column> ></el-table-column>
</el-table>
</el-card> </el-card>
<!-- 审核保存返回 -->
<section class="operationButton">
<el-button
type="primary"
v-if="$route.params.operation === 'AUDIT'"
@click="onSuccess"
>通过
</el-button>
<el-popover
v-if="$route.params.operation === 'AUDIT'"
placement="top"
:width="600"
trigger="click"
v-model:visible="rejectVisible"
>
<template #reference>
<el-button type="danger">驳回</el-button>
</template>
<el-form :model="rejectReason">
<el-form-item label="驳回原因:">
<el-input
type="textarea"
style="width:100%"
v-model="rejectReason.reason"
></el-input>
</el-form-item>
</el-form>
<section style="display:flex;justify-content:center;">
<el-button
type="danger"
@click="onDefault"
>驳回</el-button>
<el-button
type="primary"
@click="rejectVisible = false"
>取消
</el-button>
</section>
</el-popover>
<el-button
v-if="$route.params.operation === 'EDIT'"
type="primary"
>保存
</el-button>
<el-button
type="primary"
@click="backToDetail"
>返回 </el-button>
</section>
</el-card> </el-card>
<!-- 展示缩略图 -->
<el-dialog
width="40%"
v-model="isShowPopver"
>
<el-image
:src="popoverImage"
fit="fill"
style="width:100%"
></el-image>
</el-dialog>
</template> </template>
<style lang="less" src="./index.less" scope></style> <style lang="less" src="./index.less" scope></style>
<script> <script>
import { getGoodsInfo, getGoodsList } from "@/service/Goods/goods"; import {
getGoodsInfo,
getGoodsList,
postSuccess,
auditReject,
checkGoodsName
} from "@/service/Goods/goods";
export default { export default {
name: "GoodsDetail", name: "GoodsDetail",
// beforeRouteEnter (to, from, next) {
// if (!to.params.operation) { beforeRouteEnter (to, from, next) {
// next({ name: "GoodsList" }); if (!to.params.operation) {
// } next({ name: "GoodsList" });
// else if (!to.params.spuId) { } else if (!to.params.spuId) {
// next({ name: "GoodsList" }); next({ name: "GoodsList" });
// } } else {
// else { next();
// next(); }
// }; },
// },
created () { created () {
this.getOptions(); this.getOptions();
this.getGoodsDetailList({ goods_spu_id: "2106231609050140001" }); this.getGoodsDetailList(this.$route.params.spuId);
}, },
computed: { computed: {
...@@ -313,6 +503,7 @@ export default { ...@@ -313,6 +503,7 @@ export default {
return "审核驳回"; return "审核驳回";
} }
}, },
// 上下架状态 // 上下架状态
onlineStatus () { onlineStatus () {
if (this.goodsObj.online_status === 0) { if (this.goodsObj.online_status === 0) {
...@@ -328,6 +519,8 @@ export default { ...@@ -328,6 +519,8 @@ export default {
watch: { watch: {
goodsObj (val) { goodsObj (val) {
this.optionsValue = [val.category_1_id, val.category_2_id]; this.optionsValue = [val.category_1_id, val.category_2_id];
this.useTime = this.formatDate(val.rule_start_time, val.rule_end_time);
console.log("初始化时间", this.useTime);
} }
}, },
...@@ -339,18 +532,25 @@ export default { ...@@ -339,18 +532,25 @@ export default {
label: "name", label: "name",
children: "sub_list" children: "sub_list"
}, },
lifeList: [
{ value: 1, options: "个人生活号" },
{ value: 2, options: "企业生活号" }
],
optionList: [], // 商品分类选项
optionsValue: [], // 商品分类的值 optionsValue: [], // 商品分类的值
spuId: "", // 商品id // 商品回显信息
goodsObj: {}, // 商品回显信息 goodsObj: {},
descPicUrlList: [], // 商品详情图列表
introducePicUrlList: [], // 商品介绍图列表
recordList: [], // 提交记录 recordList: [], // 提交记录
optionList: [], // 商品分类选项
uploadFileList: [], // 上传图片列表 uploadFileList: [], // 上传图片列表
inventoryNumber: 0, // 库存数量 inventoryNumber: 0, // 库存数量
// 使用规则表单 // 使用规则表单
rulesForm: { rulesForm: {
upperLimit: "", // 单人可买上限 rule_limit: "", // 单人可买上限
rulesValue: "", // 退款规则 rulesValue: "", // 退款规则
// 退款选项 // 退款选项
rulesOptions: [ rulesOptions: [
...@@ -359,18 +559,30 @@ export default { ...@@ -359,18 +559,30 @@ export default {
{ value: 3, label: "到期后不退款" } { value: 3, label: "到期后不退款" }
], ],
useDate: "", // 使用日期 useDate: "", // 使用日期
useTime: "",// 使用时间 useTime: [], // 使用时间
desc: "", // 使用描述 rule_desc: "" // 使用描述
}, },
recordLits: [ // 操作记录列表
{ recordLits: [],
state: "审核通过",
author: "我自己", // 驳回原因表单
time: "2021-06-25", rejectReason: {
desc: "那就通过了呗,还咋?" reason: ""
} },
], // 操作记录
// 门店表单
shopForm: {
shop_name: "",
connect_phone: "",
address: "",
deep_place: ""
},
addShopDialog: false, // 添加门店弹框
rejectVisible: false, // 驳回原因弹框展示状态
popoverImage: "", // 放大显示图
isShowPopver: false // 是否展示图片框
}; };
}, },
...@@ -386,30 +598,140 @@ export default { ...@@ -386,30 +598,140 @@ export default {
console.error(error); console.error(error);
} }
}, },
// 获取详情列表 // 获取详情列表
async getGoodsDetailList (params) { async getGoodsDetailList (params) {
try { try {
const res = await getGoodsInfo(params); const res = await getGoodsInfo({ goods_spu_id: params });
console.log("商品详情列表", res); console.log("商品详情列表", res);
if (res.code !== 0) return this.$message.error(res.reason); if (res.code !== 0) return this.$message.error(res.reason);
const { goods_info, record_list } = res.result; const { goods_info, record_list } = res.result;
this.goodsObj = goods_info; this.goodsObj = goods_info;
this.recordList = record_list; this.recordLits = record_list;
// 格式化商品详情照片
goods_info.desc_pic_url_list.forEach(item => {
const obj = new Object();
obj.url = item;
this.descPicUrlList.push(obj);
});
// 格式化商品介绍照片
goods_info.introduce_pic_url_list.forEach(item => {
const obj = new Object();
obj.url = item;
this.introducePicUrlList.push(obj);
});
// 格式化初始日期
} catch (error) { } catch (error) {
console.error(error); console.error(error);
} }
}, },
// 格式化日期
formatDate (startTime, endTime) {
const nowTime = new Date();
const nowYear = nowTime.getFullYear();
const nowMonth = nowTime.getMonth() + 1;
const nowDate = nowTime.getDate();
const startTimeArray = startTime.split(":");
const endTimeArray = endTime.split(":");
const startHour = parseInt(startTimeArray[0]);
const startMinute = parseInt(startTimeArray[1]);
const endHour = parseInt(endTimeArray[0]);
const endMinute = parseInt(endTimeArray[1]);
return [
new Date(nowYear, nowMonth, nowDate, startHour, startMinute),
new Date(nowYear, nowMonth, nowDate, endHour, endMinute)
];
},
// 商品分类列表变化 // 商品分类列表变化
optionsChange (value) { optionsChange (value) {
console.log(value); console.log(value);
}, },
// 删除照片
handleRemove (file, fileList) { // 检查商品名称是否重复
async checkSameName () {
const res = await checkGoodsName({
life_account_id: this.goodsObj.life_account_id,
name: this.goodsObj.goods_name,
goods_spu_id: this.goodsObj.goods_spu_id
});
console.log(res);
if (res.code !== 0) return this.$message.error(res.reason);
this.$message.success("商品名称未被占用");
},
// 商品详情图更改
handleDetailChange (file, fileList) {
console.log(fileList); console.log(fileList);
}, },
// 上传图片更改
handleUploadChange (file, fileList) { // 商品详情图删除完成后的钩子
removeDetailFiles (file, fileList) {
console.log(fileList);
},
// 商品介绍图更改钩子
intrChange (file, fileList) {
console.log(fileList); console.log(fileList);
},
// 商品介绍图删除后的钩子
intrRemove (file, fileList) {
console.log(fileList);
},
// 展示商品大图
previewImage (file) {
this.popoverImage = file.url;
this.isShowPopver = true;
},
// 删除已选择门店
deleteShops (shopId) {
console.log(shopId);
},
// 更改已选门店
handleSelectionChange (value) {
console.log(value);
},
// 选择时间
pickerTime (time) {
this.goodsObj.rule_start_time;
const dateTime1 = time[0].getHours();
const dateTime2 = time[1].getHours();
console.log("时间节点", dateTime1, dateTime2);
},
// 审核通过
async onSuccess () {
const res = await postSuccess(this.$route.params.spuId);
if (res.code !== 0) return this.$message.error(res.reason);
this.$message.success("审核通过");
this.$router.replace({ name: "GoodsList" });
},
// 审核拒绝
async onDefault () {
if (!this.rejectReason.reason) return this.$message.error("审核驳回时,驳回原因不能为空");
const query = {
goods_spu_id: this.goodsObj.goods_spu_id,
refuse_reason: this.rejectReason.reason
};
const res = await auditReject(query);
if (res.code !== 0) return this.$message.error(res.reason);
this.$message.danger("审核驳回成功!");
this.$router.replace({ name: "GoodsList" });
},
// 返回主页面
backToDetail () {
this.$router.replace({ name: "GoodsList" });
} }
} }
}; };
......
...@@ -7,7 +7,9 @@ export async function getGoodsList () { ...@@ -7,7 +7,9 @@ export async function getGoodsList () {
} }
// 获取商品列表 // 获取商品列表
export async function getList (params) { export async function getList (params) {
const res = await axios.get("/api/v1/goods/background/get_goods_list", { params }); const res = await axios.get("/api/v1/goods/background/get_goods_list", {
params
});
return res; return res;
} }
// 商品上架 // 商品上架
...@@ -26,6 +28,28 @@ export async function putOffline (query) { ...@@ -26,6 +28,28 @@ export async function putOffline (query) {
} }
// 获取商品详情列表 // 获取商品详情列表
export async function getGoodsInfo (params) { export async function getGoodsInfo (params) {
const res = await axios.get("/api/v1/goods/background/get_goods_info", { params }); const res = await axios.get("/api/v1/goods/background/get_goods_info", {
params
});
return res;
}
// 商品详情-审核通过
export async function postSuccess (query) {
const res = await axios.post("/api/v1/goods/background/audit_pass", {
goods_spu_id: query
});
return res;
}
// 审核拒绝
export async function auditReject (query) {
const res = await axios.post("/api/v1/goods/background/audit_reject", query);
return res;
}
// 商品详情-检查商品名称是否重复
export async function checkGoodsName (params) {
const res = await axios.post(
"/api/v1/goods/background/check_goods_name",
params
);
return res; return res;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment