Commit deabe863 authored by mengwenhao's avatar mengwenhao

update:merge branch

parents 631489f0 23863bbd
const env = process.env.NODE_ENV || 'development';
const env = process.env.NODE_ENV || "development";
const port = process.env.PORT || 8055;
const LOGIN_URI = {
development: "http://bp-test.ini.yidian-inc.com ",
test: "http://web-rest.int.yidian-inc.com",
production: "http://web-rest.int.yidian-inc.com"
};
const PANDORA_URI = {
'development': "http://pandora.yidian-inc.com",
'test': "http://pandora.yidian-inc.com",
'production': "http://pandora.yidian-inc.com"
}
development: "http://pandora.yidian-inc.com",
test: "http://pandora.yidian-inc.com",
production: "http://pandora.yidian-inc.com"
};
const API_INTERNAL_URI = {
'development': "http://bp-test.ini.yidian-inc.com",
'test': "http://bp-test.ini.yidian-inc.com",
'production': "http://bp.int.yidian-inc.com"
}
development: "http://bp-test.ini.yidian-inc.com",
test: "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 = {
development: "https://bp-test.go2yd.com",
test: "http://idgen-test.ini.yidian-inc.com",
production: "http://idgen-test.ini.yidian-inc.com"
};
module.exports = {
env: env,
port: port,
API_INTERNAL_URI: API_INTERNAL_URI[env],
PANDORA_URI: PANDORA_URI[env]
PANDORA_URI: PANDORA_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");
const user = require("./controllers/user");
const enterprise = require("./controllers/enterprise");
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 API_VERSION = "/api/v1";
......@@ -36,6 +37,9 @@ router.post(`${API_VERSION}/business`, enterprise.postBusiness)
router.post(`${API_VERSION}/op_commit`, enterprise.opCommit);
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.get(`${API_VERSION}/merchant/lifeinner/life_list`, life.get_life_list)
......
const request = require('request')
const request = require("request");
exports.httpReq = (ctx, opts) => {
opts.timeout = opts.timeout || 1000
opts.timeout = opts.timeout || 1000;
return new Promise((resolve, reject) => {
var time_start = +new Date()
var time_start = +new Date();
const defaultQs = {
appid: 'merchant-op',
cv: '1.0.0',
version: '999999',
distribution: 'op',
net: 'wifi',
platform: '2',
}
appid: "merchant-op",
cv: "1.0.0",
version: "999999",
distribution: "op",
net: "wifi",
platform: "2"
};
opts.qs = { ...defaultQs, ...ctx.request.query, ...opts.qs};
opts.qs = { ...defaultQs, ...ctx.request.query, ...opts.qs };
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) {
resolve(body)
resolve(body);
} else {
reject(err)
console.error(opts.url, err)
reject(err);
console.error(opts.url, err);
}
})
})
}
});
});
};
......@@ -418,7 +418,6 @@ export default {
// 审核-拒绝审核
async auditResult (status) {
console.log(this.$store.state.userInfo.userid);
const params = {
audit_status: status,
audit_user_name: this.$store.state.userInfo.name,
......
.detail {
margin-top: 30px;
}
.detail .state {
display: flex;
align-items: center;
}
.detail .state .update_time {
margin: 0 20px;
}
.detail .message {
display: flex;
}
.detail .message .message_form {
width: 50%;
}
.detail .message .message_image {
width: 50%;
}
.message_border {
border: 1px solid #000000;
border-radius: 10px;
padding: 30px;
margin: 10px 0;
}
.detail {
margin-top: 30px;
.state {
display: flex;
align-items: center;
.update_time {
margin: 0 20px;
}
}
.message {
display: flex;
.message_form {
width: 50%;
}
.message_image {
width: 50%;
}
}
}
.message_border {
border: 1px solid #000000;
border-radius: 10px;
padding: 30px;
margin: 10px 0;
}
<template>
<el-card class="detail">
<!-- 状态区域 -->
<section class="state">
<h2>待审核</h2>
<span class="update_time">上次更新时间:2021-06-18</span>
<span>创建时间:2021-06-18</span>
</section>
<!-- 基本信息 -->
<section class="message_border">
<h3>基本信息</h3>
<section class="message">
<!-- 商品列表修改区 -->
<el-form
class="message_form"
inline
>
<el-form-item label="生活号名称:">
<el-input></el-input>
</el-form-item>
<el-form-item label="生活号认证:">
<el-input></el-input>
</el-form-item>
<el-form-item label="商品id:">
<el-input></el-input>
</el-form-item>
<el-form-item label="商品名称:">
<el-input></el-input>
</el-form-item>
<el-form-item label="一级分类:">
<el-input></el-input>
</el-form-item>
<el-form-item label="二级分类:">
<el-input></el-input>
</el-form-item>
<el-form-item label="描述:">
<textarea
name=""
id=""
cols="100"
rows="4"
></textarea>
</el-form-item>
</el-form>
<!-- 商品详情图 -->
<article class="message_image">
<h3>商品</h3>
</article>
</section>
</section>
<!-- 商品详情 -->
<section class="message_border"></section>
<!-- 可用门店 -->
<section class="message_border"></section>
<!-- 使用规则 -->
<section class="message_border"></section>
<!-- 操作记录 -->
<section class="message_border"></section>
</el-card>
</template>
<style lang="less" src="./index.less" scope></style>
\ No newline at end of file
.list {
margin-top: 30px;
.commodity {
margin-top: 30px;
padding: 0 30px;
.search_condition {
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
align-items: center;
.search_button {
display: flex;
align-items: center;
.el-form-item__content {
display: flex;
justify-content: space-around;
}
}
}
.commodity_list {
margin-top: 30px;
}
.pagination {
margin-top: 30px;
}
}
}
<template>
<div class="list">
<el-card class="goods">
<!-- 筛选区 -->
<el-form
inline
class="search_condition"
>
<!-- 商品id -->
<el-form-item label="商品id">
<el-input></el-input>
</el-form-item>
<!-- 商品名称 -->
<el-form-item label="商品名称">
<el-input></el-input>
</el-form-item>
<!-- 所属分类 -->
<el-form-item label="所属分类">
<el-cascader
:options="labelOptions"
:props="cascaderProps"
collapse-tags
clearable
></el-cascader>
</el-form-item>
<!-- 生活号ID -->
<el-form-item label="生活号id">
<el-input></el-input>
</el-form-item>
<!-- 生活号名称 -->
<el-form-item label="生活号名称">
<el-input></el-input>
</el-form-item>
<!-- 商品状态 -->
<el-form-item label="商品状态">
<el-select
v-model="stateValue"
multiple
collapse-tags
>
<el-option
v-for="item in option"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<!-- 按钮操作 -->
<el-form-item class="search_button">
<el-button type="primary">搜索</el-button>
<el-button>重置</el-button>
</el-form-item>
</el-form>
<!-- 列表区 -->
<el-table
class="goods_list"
:data="goodsList"
border
stripe
>
<el-table-column
label="商品id"
prop="goods_id"
align="center"
></el-table-column>
<el-table-column
label="商品名称"
prop="goods_name"
align="center"
></el-table-column>
<el-table-column
label="一级分类"
prop="first_classify"
align="center"
></el-table-column>
<el-table-column
label="二级分类"
prop="second_classify"
align="center"
></el-table-column>
<el-table-column
label="关联门店"
prop="shop"
align="center"
></el-table-column>
<el-table-column
label="活动营销价"
prop="sale_prise"
align="center"
></el-table-column>
<el-table-column
label="售价"
prop="prise"
align="center"
></el-table-column>
<el-table-column
label="原价"
prop="perprise"
align="center"
></el-table-column>
<el-table-column
label="库存"
prop="inventory"
align="center"
></el-table-column>
<el-table-column
label="状态"
prop="state"
align="center"
></el-table-column>
<el-table-column
label="生活号id"
prop="life_no_id"
align="center"
></el-table-column>
<el-table-column
label="生活号名称"
prop="life_no_name"
align="center"
></el-table-column>
<el-table-column
label="发布者"
prop="publisher"
align="center"
></el-table-column>
<el-table-column
label="状态更新时间"
prop="state_update_time"
align="center"
></el-table-column>
<el-table-column
label="商品创建时间"
prop="goods_create_time"
align="center"
></el-table-column>
<!-- 操作快捷键 -->
<el-table-column
label="操作"
align="center"
fixed="right"
width="200"
>
<template #default="scope">
<el-button
type="text"
v-if="scope.row.state === 1"
@click="goDetail(`EDIT`)"
>编辑</el-button>
<el-button
type="text"
v-if="scope.row.state === 1"
@click="goDetail(`AUDIT`)"
>审核</el-button>
<el-button
type="text"
v-if="scope.row.state === 1"
@click="changeGoodsState('GROUNDING')"
>上架</el-button>
<el-button
type="text"
v-if="scope.row.state === 1"
@click="changeGoodsState('UNDERCARRIAGE')"
>下架</el-button>
</template>
</el-table-column>
</el-table>
<!-- 页码区 -->
<el-pagination
class="pagination"
@current-change="handleCurrentChange"
v-model:currentPage="currentPage"
:page-size="100"
layout="prev, pager, next, jumper"
:total="1000"
>
</el-pagination>
</el-card>
</div>
</template>
<style lang="less" src="./index.less" scope></style>
<script>
import { getGoodsList } from "@/service/Goods/goods";
export default {
name: "GoodsList",
created () {
// 获取级联选择
this.getOptionList();
},
data () {
return {
cascaderProps: {
multiple: true,
value: "category_id",
label: "name",
children: "sub_list"
},
// 级联选择器
labelOptions: [
{
value: 1,
label: "东南",
children: [
{
value: 2,
label: "上海",
children: [
{ value: 3, label: "普陀" },
{ value: 4, label: "黄埔" },
{ value: 5, label: "徐汇" }
]
},
{
value: 7,
label: "江苏",
children: [
{ value: 8, label: "南京" },
{ value: 9, label: "苏州" },
{ value: 10, label: "无锡" }
]
},
{
value: 12,
label: "浙江",
children: [
{ value: 13, label: "杭州" },
{ value: 14, label: "宁波" },
{ value: 15, label: "嘉兴" }
]
}
]
},
{
value: 17,
label: "西北",
children: [
{
value: 18,
label: "陕西",
children: [
{ value: 19, label: "西安" },
{ value: 20, label: "延安" }
]
},
{
value: 21,
label: "新疆维吾尔族自治区",
children: [
{ value: 22, label: "乌鲁木齐" },
{ value: 23, label: "克拉玛依" }
]
}
]
}
],
option: [
{ value: 1, label: "待审核" },
{ value: 2, label: "审核通过" },
{ value: 3, label: "审核驳回" },
{ value: 4, label: "已上架" },
{ value: 5, label: "已下架" }
],
// 商品状态
stateValue: [],
// 商品列表
goodsList: [
{
goods_id: 1,
goods_name: "威化",
first_classify: 1,
second_classify: 1,
life_no_id: 1,
shop: "楼下小卖部",
life_no_name: "1的生活号",
publisher: "蒙文昊",
sale_prise: 300,
prise: 200,
perprise: 500,
inventory: 999,
state: 1,
state_update_time: "2021-06-17",
goods_create_time: "2021-06-17"
}
],
currentPage: 1 // 当前页码
};
},
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);
}
},
// 获取列表信息
getList () {
console.log("我是准备获取信息的!!!");
},
// 上架/下架操作
changeGoodsState (state) {
console.log(state);
},
// 页码变化
handleCurrentChange (e) {
this.currentPage = e;
// 获取信息
this.getList();
},
// 去往详情页
goDetail (where) {
this.$router.push({ name: "GoodsDetail", params: { operation: where } });
}
}
};
</script>
/**
* 商品列表管理
*/
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";
import AddRole from "../pages/Role/add-role.vue";
import ManageRole from "../pages/Role/manage-role.vue";
import RoleDetail from "../pages/Role/role-detail.vue";
import goodsRouter from "./Goods/index";
const routes = [
{
......@@ -53,7 +54,7 @@ const routes = [
name: "Establish",
component: () =>
import(
/* webpackChunkName: "enterprise" */ "@/pages/Enterprise/Establish"
/* webpackChunkName: "enterprise" */ "@/pages/Enterprise/Establish"
),
meta: {
requireAuth: true
......@@ -110,12 +111,15 @@ const routes = [
meta: {
keepAlive: true
}
}
},
// 商品管理路由
...goodsRouter
];
console.log(routes);
const router = createRouter({
history: createWebHashHistory(),
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