Commit 23863bbd authored by mengwenhao's avatar mengwenhao

feature:商品管理详情

parent 49142d00
const env = process.env.NODE_ENV || 'development'; const env = process.env.NODE_ENV || "development";
const port = process.env.PORT || 8055; const port = process.env.PORT || 8055;
const LOGIN_URI = { const LOGIN_URI = {
'development': "http://bp-test.ini.yidian-inc.com ", 'development': "http://bp-test.ini.yidian-inc.com ",
'test': "http://web-rest.int.yidian-inc.com", 'test': "http://web-rest.int.yidian-inc.com",
'production': "http://web-rest.int.yidian-inc.com" 'production': "http://web-rest.int.yidian-inc.com"
} };
const PANDORA_URI = { const PANDORA_URI = {
'development': "http://pandora.yidian-inc.com", 'development': "http://pandora.yidian-inc.com",
'test': "http://pandora.yidian-inc.com", 'test': "http://pandora.yidian-inc.com",
'production': "http://pandora.yidian-inc.com" 'production': "http://pandora.yidian-inc.com"
} };
const API_INTERNAL_URI = { const API_INTERNAL_URI = {
'development': "http://bp-test.ini.yidian-inc.com", 'development': "http://bp-test.ini.yidian-inc.com",
'test': "http://bp-test.ini.yidian-inc.com", 'test': "http://bp-test.ini.yidian-inc.com",
'production': "http://bp-test.ini.yidian-inc.com" 'production': "http://bp-test.ini.yidian-inc.com"
} };
const GOODS_URI = {
'development': "http://bp-dev.ini.yidian-inc.com",
'test': "http://bp-test.ini.yidian-inc.com",
'production': "http://bp-test.ini.yidian-inc.com"
};
const IDGEN_URI = { const IDGEN_URI = {
'development': "https://bp-test.go2yd.com", 'development': "https://bp-test.go2yd.com",
'test': "http://idgen-test.ini.yidian-inc.com", 'test': "http://idgen-test.ini.yidian-inc.com",
'production': "http://idgen-test.ini.yidian-inc.com" 'production': "http://idgen-test.ini.yidian-inc.com"
} };
module.exports = { module.exports = {
env: env, env: env,
...@@ -31,5 +37,6 @@ module.exports = { ...@@ -31,5 +37,6 @@ module.exports = {
LOGIN_URI: LOGIN_URI[env], LOGIN_URI: LOGIN_URI[env],
API_INTERNAL_URI: API_INTERNAL_URI[env], API_INTERNAL_URI: API_INTERNAL_URI[env],
PANDORA_URI: PANDORA_URI[env], PANDORA_URI: PANDORA_URI[env],
IDGEN_URI: IDGEN_URI[env] IDGEN_URI: IDGEN_URI[env],
GOODS_URI: GOODS_URI[env]
}; };
const GOODS_URI = require("../config.js").GOODS_URI;
const req = require("../utils/request").httpReq;
exports.getCategoryList = async ctx => {
const url = `${GOODS_URI}/goods/background/get_goods_category_list`;
const opts = {
url,
method: "GET",
};
ctx.body = await req(ctx, opts);
};
...@@ -4,7 +4,8 @@ const system = require("./controllers/system"); ...@@ -4,7 +4,8 @@ const system = require("./controllers/system");
const user = require("./controllers/user"); const user = require("./controllers/user");
const enterprise = require("./controllers/enterprise"); const enterprise = require("./controllers/enterprise");
const role = require('./controllers/role') const role = require('./controllers/role')
const life = require('./controllers/life-no') const life = require('./controllers/life-no');
const goods = require('./controllers/goods');
const router = Router(); const router = Router();
const API_VERSION = "/api/v1"; const API_VERSION = "/api/v1";
...@@ -36,6 +37,9 @@ router.post(`${API_VERSION}/business`, enterprise.postBusiness) ...@@ -36,6 +37,9 @@ router.post(`${API_VERSION}/business`, enterprise.postBusiness)
router.post(`${API_VERSION}/op_commit`, enterprise.opCommit); router.post(`${API_VERSION}/op_commit`, enterprise.opCommit);
router.post(`${API_VERSION}/op_business_update`, enterprise.opBusinessUpdate); router.post(`${API_VERSION}/op_business_update`, enterprise.opBusinessUpdate);
/* 商品管理 */
router.get(`${API_VERSION}/get_goods_category_list`, goods.getCategoryList)
//生活号 //生活号
router.post(`${API_VERSION}/merchant/lifeinner/life_info`, life.get_life_info) router.post(`${API_VERSION}/merchant/lifeinner/life_info`, life.get_life_info)
router.get(`${API_VERSION}/merchant/lifeinner/life_list`, life.get_life_list) router.get(`${API_VERSION}/merchant/lifeinner/life_list`, life.get_life_list)
......
const request = require('request') const request = require("request");
exports.httpReq = (ctx, opts) => { exports.httpReq = (ctx, opts) => {
opts.timeout = opts.timeout || 1000 opts.timeout = opts.timeout || 1000;
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
var time_start = +new Date() var time_start = +new Date();
const defaultQs = { const defaultQs = {
appid: 'merchant-op', appid: "merchant-op",
cv: '1.0.0', cv: "1.0.0",
version: '999999', version: "999999",
distribution: 'op', distribution: "op",
net: 'wifi', net: "wifi",
platform: '2', platform: "2"
} };
opts.qs = { ...defaultQs, ...ctx.request.query, ...opts.qs}; opts.qs = { ...defaultQs, ...ctx.request.query, ...opts.qs };
request(opts, (err, res, body) => { request(opts, (err, res, body) => {
console.info(`[Api] httpReq (${opts.url}, user:[${opts.qs.op_cur_user}]) spent: ${+new Date() - time_start}ms`) console.info(
`[Api] httpReq (${opts.url}, user:[${opts.qs.op_cur_user
}]) spent: ${+new Date() - time_start}ms`
);
if (!err) { if (!err) {
resolve(body) resolve(body);
} else { } else {
reject(err) reject(err);
console.error(opts.url, err) console.error(opts.url, err);
} }
}) });
}) });
} };
...@@ -418,7 +418,6 @@ export default { ...@@ -418,7 +418,6 @@ export default {
// 审核-拒绝审核 // 审核-拒绝审核
async auditResult (status) { async auditResult (status) {
console.log(this.$store.state.userInfo.userid);
const params = { const params = {
audit_status: status, audit_status: status,
audit_user_name: this.$store.state.userInfo.name, audit_user_name: this.$store.state.userInfo.name,
......
<template> <template>
<div class="list"> <div class="list">
<el-card class="commodity"> <el-card class="goods">
<!-- 筛选区 --> <!-- 筛选区 -->
<el-form <el-form
inline inline
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<!-- 所属分类 --> <!-- 所属分类 -->
<el-form-item label="所属分类"> <el-form-item label="所属分类">
<el-cascader <el-cascader
:options="options" :options="labelOptions"
:props="cascaderProps" :props="cascaderProps"
collapse-tags collapse-tags
clearable clearable
...@@ -55,19 +55,19 @@ ...@@ -55,19 +55,19 @@
<!-- 列表区 --> <!-- 列表区 -->
<el-table <el-table
class="commodity_list" class="goods_list"
:data="commodityList" :data="goodsList"
border border
stripe stripe
> >
<el-table-column <el-table-column
label="商品id" label="商品id"
prop="commodity_id" prop="goods_id"
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="商品名称" label="商品名称"
prop="commodity_name" prop="goods_name"
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
...@@ -132,7 +132,7 @@ ...@@ -132,7 +132,7 @@
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="商品创建时间" label="商品创建时间"
prop="commodity_create_time" prop="goods_create_time"
align="center" align="center"
></el-table-column> ></el-table-column>
<!-- 操作快捷键 --> <!-- 操作快捷键 -->
...@@ -156,12 +156,12 @@ ...@@ -156,12 +156,12 @@
<el-button <el-button
type="text" type="text"
v-if="scope.row.state === 1" v-if="scope.row.state === 1"
@click="changeCommodityState('GROUNDING')" @click="changeGoodsState('GROUNDING')"
>上架</el-button> >上架</el-button>
<el-button <el-button
type="text" type="text"
v-if="scope.row.state === 1" v-if="scope.row.state === 1"
@click="changeCommodityState('UNDERCARRIAGE')" @click="changeGoodsState('UNDERCARRIAGE')"
>下架</el-button> >下架</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -184,16 +184,25 @@ ...@@ -184,16 +184,25 @@
<style lang="less" src="./index.less" scope></style> <style lang="less" src="./index.less" scope></style>
<script> <script>
import { getGoodsList } from "@/service/Goods/goods";
export default { export default {
name: "CommodityList", name: "GoodsList",
created () { }, created () {
// 获取级联选择
this.getOptionList();
},
data () { data () {
return { return {
cascaderProps: { multiple: true }, cascaderProps: {
multiple: true,
value: "category_id",
label: "name",
children: "sub_list"
},
// 级联选择器 // 级联选择器
options: [ labelOptions: [
{ {
value: 1, value: 1,
label: "东南", label: "东南",
...@@ -260,10 +269,10 @@ export default { ...@@ -260,10 +269,10 @@ export default {
// 商品状态 // 商品状态
stateValue: [], stateValue: [],
// 商品列表 // 商品列表
commodityList: [ goodsList: [
{ {
commodity_id: 1, goods_id: 1,
commodity_name: "威化", goods_name: "威化",
first_classify: 1, first_classify: 1,
second_classify: 1, second_classify: 1,
life_no_id: 1, life_no_id: 1,
...@@ -276,7 +285,7 @@ export default { ...@@ -276,7 +285,7 @@ export default {
inventory: 999, inventory: 999,
state: 1, state: 1,
state_update_time: "2021-06-17", state_update_time: "2021-06-17",
commodity_create_time: "2021-06-17" goods_create_time: "2021-06-17"
} }
], ],
currentPage: 1 // 当前页码 currentPage: 1 // 当前页码
...@@ -284,13 +293,27 @@ export default { ...@@ -284,13 +293,27 @@ export default {
}, },
methods: { methods: {
// 获取级联选择
async getOptionList () {
try {
const res = await getGoodsList();
if (res.code !== 0) {
return this.$message.error(res.reason);
} else {
this.labelOptions = res.result;
}
console.log(res);
} catch (error) {
console.error(error);
}
},
// 获取列表信息 // 获取列表信息
getCommodityList () { getList () {
console.log("我是准备获取信息的!!!"); console.log("我是准备获取信息的!!!");
}, },
// 上架/下架操作 // 上架/下架操作
changeCommodityState (state) { changeGoodsState (state) {
console.log(state); console.log(state);
}, },
...@@ -298,12 +321,12 @@ export default { ...@@ -298,12 +321,12 @@ export default {
handleCurrentChange (e) { handleCurrentChange (e) {
this.currentPage = e; this.currentPage = e;
// 获取信息 // 获取信息
this.getCommodityList(); this.getList();
}, },
// 去往详情页 // 去往详情页
goDetail (where) { goDetail (where) {
this.$router.push({ name: "CommodityDetail", params: { operation: where } }); this.$router.push({ name: "GoodsDetail", params: { operation: where } });
} }
} }
}; };
......
/**
* 商品列表管理
*/
const goodsRouters = [
{
path: "/goods/list",
name: "GoodsList",
component: () => import(/* webpackChunkName: "goods" */ "@/pages/Goods/List")
},
{
path: "/goods/detail",
name: "GoodsDetail",
component: () => import(/* webpackChunkName: "goods" */ "@/pages/Goods/Detail")
},
];
export default goodsRouters;
...@@ -9,6 +9,7 @@ import UserDetail from "../pages/User/user-detail.vue"; ...@@ -9,6 +9,7 @@ import UserDetail from "../pages/User/user-detail.vue";
import AddRole from "../pages/Role/add-role.vue"; import AddRole from "../pages/Role/add-role.vue";
import ManageRole from "../pages/Role/manage-role.vue"; import ManageRole from "../pages/Role/manage-role.vue";
import RoleDetail from "../pages/Role/role-detail.vue"; import RoleDetail from "../pages/Role/role-detail.vue";
import goodsRouter from "./Goods/index";
const routes = [ const routes = [
{ {
...@@ -53,24 +54,12 @@ const routes = [ ...@@ -53,24 +54,12 @@ const routes = [
name: "Establish", name: "Establish",
component: () => component: () =>
import( import(
/* webpackChunkName: "enterprise" */ "@/pages/Enterprise/Establish" /* webpackChunkName: "enterprise" */ "@/pages/Enterprise/Establish"
), ),
meta: { meta: {
requireAuth: true requireAuth: true
} }
}, },
// 商品详情管理
{
path: "/commodity/list",
name: "CommodityList",
component: () => import(/* webpackChunkName: "commodity" */ "@/pages/Commodity/List")
},
// 商品详情管理
{
path: "/commodity/detail",
name: "CommodityDetail",
component: () => import(/* webpackChunkName: "commodity" */ "@/pages/Commodity/Detail")
},
//生活号管理 //生活号管理
{ {
path: "/lifeNo", path: "/lifeNo",
...@@ -122,12 +111,15 @@ const routes = [ ...@@ -122,12 +111,15 @@ const routes = [
meta: { meta: {
keepAlive: true keepAlive: true
} }
} },
// 商品管理路由
...goodsRouter
]; ];
console.log(routes);
const router = createRouter({ const router = createRouter({
history: createWebHashHistory(), history: createWebHashHistory(),
routes routes
}); });
export default router; export default router;
\ No newline at end of file
import axios from "@/utils/request";
// 获取商品分类列表
export async function getGoodsList () {
const res = await axios.get("/api/v1/get_goods_category_list");
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