已有kb文档:PCM操作手册
一、工程初始化
二、使用说明
三、资源配置
一、工程初始化
a.设置CVTE仓库地址
npm config set @cvte:registry https://npm.gz.cvte.cn
b.启动node端
切换到backend目录,运行`npm install`安装依赖模块;
运行`node preloadconfig.js`去Apollo拉取配置信息,生成本地env文件;
运行`npm run dev`;
c.启动前端
切换到frontend目录,运行`npm install`安装依赖模块;
运行`./build.sh`编译项目;
运行`yarn start`(若未全局安装`yarn`,则先运行`npm install -g yarn`);
d.访问
`http://localhost:8011/pcm`进行登陆,登陆成功后切换到`http://localhost:3000/pcm`即可
二、使用说明
a.路由配置
import GatherManager from './products/GatherManager'';
export default [
{
path: 'gathers',
component: GatherManager,
breadcrumbName: '标准选项集',
}
]
b.子路由配置
import GatherManager from './products/GatherManager'';
import ProdConfigMananger from './products/ProdConfigMananger';
export default [
{
path: 'gathers',
component: GatherManager,
breadcrumbName: '标准选项集',
children: [
{
path: 'edit-gather/:bzId/:prodItem', // 跳转时需要携带对应的参数
component: ProdConfigMananger,
breadcrumbName: '编辑',
}
]
}
]
c.请求接口
node端
const baseConfig = require('../../../config/systemConfig');
const rootUrl = baseConfig.rootUrl;
module.exports = [
{
path: "/config/templates",
method: "get",
description: "获取选项池列表",
tags: ["api"],
},
{
path: "/config/templates/{tempId}",
method: "put",
description: "修改选项池",
tags: ["api"],
handler: {
uri: req => `${rootUrl}/config/templates/${req.params.tempId}`, // 自定义请求
},
},
]
前端
type.js
export const FETCH_END_PRODUCTS_LIST = "fetch_end_products_list"; //获取选项池列表
export const FETCH_END_PRODUCTSLIST_UPTATE = "fetch_end_productsList_uptate"; //修改选项池
index.js
import { getData, putData } from "@src/libs/http";
import { FETCH_END_PRODUCTS_LIST, FETCH_END_PRODUCTSLIST_UPTATE} from './types';
export default {
// 获取选项池列表
endProductsList: {
type: FETCH_END_PRODUCTS_LIST,
getter: [],
setter: async (payload, state) => {
const { data: { content }} = await getData("/config/templates", {...payload, type: 'pool'});
return content;
}
},
// 修改选项池
updateEndProducts: {
type: FETCH_END_PRODUCTSLIST_UPTATE,
getter: {},
setter: (payload, _state) => {
return putData(`/config/templates/${payload.id}`, payload);
},
},
}
页面调接口
import { dispatch } from '@store';
import { FETCH_END_PRODUCTS_LIST, FETCH_END_PRODUCTSLIST_UPTATE } from '@store/types';
class EndProducts extends Component {
async handleProductsList() {
const params = {}; // 接口需要的参数
const content = await dispatch(FETCH_END_PRODUCTS_LIST, params);
}
handleUpdateProductList = async () => {
const params = {}; // 接口需要的参数
const res = await dispatch(FETCH_END_PRODUCTSLIST_UPTATE, params);
}
render(){
return 接口调用
}
}
const mapStateToProps = state => {
return {
endProductsList: state.newAdmin.endProductsList,
updateEndProducts: state.newAdmin.updateEndProducts,
}
}
// 可以通过this.props拿到endProductsList & updateEndProducts
export default connect(mapStateToProps)(EndProducts);
三、资源配置
a.菜单配置
b.页面按钮配置
c.前端按钮权限控制
// 页面编码
pageCodes.js
export const PCM_BACKEND_MODULE_GATHERS_OPTION_DETAILS = 'pcm_backend_module_gathers_option_details'; // 标准选项集-详情
// 使用按钮权限公共方法
import JurisdictionButton from '@common/components/JurisdictionButton';
import { PCM_BACKEND_MODULE_RECOMMEND_RECOMMEND_DETAILS } from '@common/constants/pageCodes';
class GatherConfig extends Component {
get buttonList(){
const { tool, hasAuthButton } = this.props; // 公共方法可以拿到tool是所有工具条按钮列表,line是所有行按钮列表和hasAuthButton方法
return [
hasAuthButton(tool, 'SetOptionJoint') && ,
hasAuthButton(tool, 'ClientAreaLimit') && ,
hasAuthButton(tool, 'SetStandard') &&
]
// hasAuthButton方法传入两个参数,参数1:按钮列表,参数2:按钮标识,判断按钮标识是否存在按钮列表中
}
render(){
return { this.buttonList }
}
}
export default connect()(JurisdictionButton(PCM_BACKEND_MODULE_RECOMMEND_RECOMMEND_DETAILS)(GatherConfig))
作者:朱黔杨 创建时间:2023-04-19 11:17
最后编辑:朱黔杨 更新时间:2023-11-21 15:32
最后编辑:朱黔杨 更新时间:2023-11-21 15:32