/*
|
* @Company: hugeInfo
|
* @Author: lwh
|
* @Date: 2022-03-01 09:24:41
|
* @LastEditTime: 2022-05-16 17:22:03
|
* @LastEditors: lwh
|
* @Version: 1.0.0
|
* @Description:版本管理
|
*/
|
import React, { Component } from 'react';
|
import './index.less';
|
import PageHead from '../../components/PageHead';
|
import { message, Tabs, Spin, Breadcrumb, Modal } from 'antd';
|
import EditionView from '../../components/edition/EditionView';
|
import EditionFormView from '../../components/edition/EditionFormView';
|
import * as $$ from '../../utils/utility';
|
import threeFunction from './treeListSelect'; //树形结构全选或全不选结果
|
|
const { TabPane } = Tabs;
|
// 树形结构
|
function getTree(appClient) {
|
return $$.ax.request({ url: 'v1/rsApp/getTree', type: 'get', data: { type: '1', appClient }, service: 'oper' });
|
}
|
|
// 保存及修改版本
|
function saveRsVersion(data) {
|
return $$.ax.request({ url: 'v1/rsVersion/saveRsVersion', type: 'post', data, service: 'oper' });
|
}
|
// 查询列表 版本
|
function listQueryRsVersion(name) {
|
return $$.ax.request({ url: 'v1/rsVersion/listQuery', type: 'get', data: { name }, service: 'oper' });
|
}
|
|
// 停用/启动版本
|
function stopRsVersion(data) {
|
return $$.ax.request({ url: 'v1/rsVersion/stopRsVersion', type: 'post', data, service: 'oper' });
|
}
|
|
//详情 版本
|
function getByIdRsVersion(id = '') {
|
return $$.ax.request({ url: 'v1/rsVersion/getById', type: 'get', data: { id }, service: 'oper' });
|
}
|
|
//删除 版本
|
function removeRsVersion(ids) {
|
return $$.ax.request({ url: 'v1/rsVersion/removeByIds', type: 'get', data: { ids }, service: 'oper' });
|
}
|
|
// 保存及修改增强包
|
function saveRsMeal(data) {
|
return $$.ax.request({ url: 'v1/rsMeal/saveRsMeal', type: 'post', data, service: 'oper' });
|
}
|
// 查询列表 增强包
|
function listQueryRsMeal(name) {
|
return $$.ax.request({ url: 'v1/rsMeal/listQuery', type: 'get', data: { name }, service: 'oper' });
|
}
|
|
// 停用/启动增强包
|
function stopRsMeal(data) {
|
return $$.ax.request({ url: 'v1/rsMeal/stopRsMeal', type: 'post', data, service: 'oper' });
|
}
|
|
//详情 增强包
|
function getByIdRsMeal(id = '') {
|
return $$.ax.request({ url: 'v1/rsMeal/getById', type: 'get', data: { id }, service: 'oper' });
|
}
|
|
//删除 增强包
|
function removeRsMeal(ids) {
|
return $$.ax.request({ url: 'v1/rsMeal/removeByIds', type: 'get', data: { ids }, service: 'oper' });
|
}
|
|
//版本,增强包 使用数
|
function getCountHasUsed(id, type) {
|
return $$.ax.request({ url: 'v1/seCustom/getCountHasUsed', type: 'get', data: { id, type }, service: 'oper' });
|
}
|
class Edition extends Component {
|
constructor(props) {
|
super(props);
|
this.config = {};
|
this.state = {
|
//tab分页 1.版本 2.增强包
|
tabKey: '1',
|
//1.查看 2.新增 3.修改
|
editing: '1',
|
//版本对象(提交)
|
versionData: {},
|
//版本列表聚焦
|
versionhover: 0,
|
//版本详情(回显)
|
versionInfo: {},
|
//版本列表(左侧列表)
|
versionList: [],
|
loading: false,
|
//pc端功能树形结构
|
PCTreeList: [],
|
//当事人小程序功能树形结构
|
partyTreeList: [],
|
//调解人小程序功能树形结构
|
mediatorTreeList: [],
|
hoverSelectedKeys: '',
|
searchTile: '',
|
};
|
}
|
|
componentDidMount = () => {
|
//初始化
|
const { tabKey } = this.state;
|
this.initializedChange('', tabKey);
|
};
|
initializedChange = async (id, tabKey) => {
|
this.setState({ loading: true });
|
const requestObj = tabKey == '1' ? await listQueryRsVersion() : await listQueryRsMeal();
|
let { data, type } = requestObj;
|
if (type) {
|
if (data.length > 0) {
|
const index = id ? data.findIndex((item) => id === item.id) : 0;
|
const requestObj1 = tabKey == '1' ? await getByIdRsVersion(data[index].id) : await getByIdRsMeal(data[index].id);
|
this.setState({
|
versionList: data.map((item, idx) => ({ ...item, hover: idx == index ? true : false })),
|
loading: false,
|
versionInfo: {
|
...requestObj1.data,
|
versionTrees: requestObj1.data.versionTrees.map((apps) => ({
|
...apps,
|
checked: true,
|
children: (apps.children||[]).map((moudles) => ({
|
...moudles,
|
checked: true,
|
children: moudles.children.map((menus) => ({
|
...menus,
|
checked: true,
|
children: menus.children.map((funs) => ({ ...funs, checked: true })),
|
})),
|
})),
|
})),
|
},
|
versionKey: new Date().getTime(),
|
editing: '1',
|
hoverSelectedKeys: data[index].id,
|
});
|
} else {
|
this.setState({
|
versionList: [],
|
loading: false,
|
versionInfo: {},
|
versionKey: new Date().getTime(),
|
editing: '1',
|
hoverSelectedKeys: id,
|
});
|
}
|
} else {
|
this.setState({
|
loading: false,
|
});
|
}
|
};
|
|
// 新增版本
|
addedition = async () => {
|
this.setState({ loading: true });
|
this.setState({ editing: '2' });
|
const PCTreeList = await getTree('1');
|
const partyTreeList = await getTree('2');
|
const mediatorTreeList = await getTree('3');
|
this.setState({
|
loading: false,
|
PCTreeList: PCTreeList.data,
|
partyTreeList: partyTreeList.data,
|
mediatorTreeList: mediatorTreeList.data,
|
treeListKey: new Date().getTime(),
|
versionData: {},
|
});
|
};
|
|
//切换左侧菜单
|
onMenuSelect = async (e) => {
|
const { versionList, tabKey } = this.state;
|
this.setState({ loading: true });
|
const requestObj = tabKey == '1' ? await getByIdRsVersion(e.key) : await getByIdRsMeal(e.key);
|
this.setState({
|
versionInfo: {
|
...requestObj.data,
|
versionTrees: requestObj.data.versionTrees.map((apps) => ({
|
...apps,
|
checked: true,
|
children: (apps.children||[]).map((moudles) => ({
|
...moudles,
|
checked: true,
|
children: moudles.children.map((menus) => ({
|
...menus,
|
checked: true,
|
children: menus.children.map((funs) => ({ ...funs, checked: true })),
|
})),
|
})),
|
})),
|
},
|
versionKey: new Date().getTime(),
|
hoverSelectedKeys: e.key,
|
loading: false,
|
versionList: versionList.map((item, index) => ({ ...item, hover: item.id == e.key ? true : null })),
|
});
|
};
|
|
//删除左侧菜单
|
hoverDel = async (data) => {
|
const { tabKey } = this.state;
|
const res = await getCountHasUsed(data.id, tabKey == '1' ? 'verId' : 'mealIds');
|
if (res.data !== 0) {
|
Modal.confirm({
|
title: `是否确认删除${data.name}?`,
|
content: `${data.name}有${res.data}个客户使用,删除将直接影响使用中的客户,是否仍需删除?`,
|
onCancel() {},
|
onOk: async () => {
|
const requestObj = tabKey == '1' ? await removeRsVersion(data.id) : await removeRsMeal(data.id);
|
if (requestObj.type) {
|
message.success('删除成功!');
|
this.initializedChange('', tabKey);
|
}
|
},
|
});
|
} else {
|
const requestObj = tabKey == '1' ? await removeRsVersion(data.id) : await removeRsMeal(data.id);
|
if (requestObj.type) {
|
message.success('删除成功!');
|
this.initializedChange('', tabKey);
|
}
|
}
|
};
|
|
//停用 左侧菜单
|
hoverStop = async (data) => {
|
const { tabKey } = this.state;
|
const res = await getCountHasUsed(data.id, tabKey == '1' ? 'verId' : 'mealIds');
|
if (data.status == '1' && res.data !== 0) {
|
Modal.confirm({
|
title: `是否确认停用${data.name}?`,
|
content: `${data.name}有${res.data}个客户使用,停用将直接影响使用中的客户,是否仍需停用?`,
|
onCancel() {},
|
onOk: async () => {
|
const requestObj =
|
tabKey == '1'
|
? await stopRsVersion({ ...data, id: data.id, status: data.status == '1' ? '2' : '1' })
|
: await stopRsMeal({ ...data, id: data.id, status: data.status == '1' ? '2' : '1' });
|
if (requestObj.type) {
|
message.success(data.status == '1' ? '已成功停用!' : '已成功启动!');
|
//todo 返回提交的结果
|
this.initializedChange(data.id, tabKey);
|
}
|
},
|
});
|
} else {
|
const requestObj =
|
tabKey == '1'
|
? await stopRsVersion({ ...data, id: data.id, status: data.status == '1' ? '2' : '1' })
|
: await stopRsMeal({ ...data, id: data.id, status: data.status == '1' ? '2' : '1' });
|
if (requestObj.type) {
|
message.success(data.status == '1' ? '已成功停用!' : '已成功启动!');
|
//todo 返回提交的结果
|
this.initializedChange(data.id, tabKey);
|
}
|
}
|
};
|
|
//修改
|
hoverEdit = async (data) => {
|
const { tabKey } = this.state;
|
const getCountHasUse = await getCountHasUsed(data.id, tabKey == '1' ? 'verId' : 'mealIds');
|
if (getCountHasUse.data !== 0) {
|
Modal.confirm({
|
title: `是否确认修改${data.name}?`,
|
content: `${data.name}有${getCountHasUse.data}个客户使用,修改将直接影响使用中的客户,是否仍需修改?`,
|
onCancel() {},
|
onOk: async () => {
|
this.setState({ loading: true });
|
const { versionInfo } = this.state;
|
const PClist = await getTree('1');
|
const partylist = await getTree('2');
|
const mediatorlist = await getTree('3');
|
const testList = flatten(versionInfo.versionTrees);
|
//树形结构增加是否勾选中字段checked
|
// PC端
|
let listpc = PClist.data.map((apps) => ({
|
...apps,
|
checked: testList.findIndex((item) => item.value == apps.value) > -1 ? true : false,
|
children: (apps.children || []).map((moudles) => ({
|
...moudles,
|
checked: testList.findIndex((item) => item.value == moudles.value) > -1 ? true : false,
|
children: (moudles.children || []).map((menus) => ({
|
...menus,
|
checked: testList.findIndex((item) => item.value == menus.value) > -1 ? true : false,
|
children: menus.children
|
? menus.children.map((funs) => ({
|
...funs,
|
checked: testList.findIndex((item) => item.value == funs.value) > -1 ? true : false,
|
children: funs.children ? funs.children : [],
|
}))
|
: [],
|
})),
|
})),
|
}));
|
listpc = listpc.map((apps) => ({
|
...apps,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
test: flatten(apps.children),
|
children: (apps.children||[]).map((moudles) => ({
|
...moudles,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
children: moudles.children.map((menus) => ({
|
...menus,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
})),
|
})),
|
}));
|
// 当事人小程序
|
let listparty = partylist.data.map((apps) => ({
|
...apps,
|
checked: testList.findIndex((item) => item.value == apps.value) > -1 ? true : false,
|
// indeterminate:,
|
children: (apps.children||[]).map((moudles) => ({
|
...moudles,
|
checked: testList.findIndex((item) => item.value == moudles.value) > -1 ? true : false,
|
children: (moudles.children || []).map((menus) => ({
|
...menus,
|
checked: testList.findIndex((item) => item.value == menus.value) > -1 ? true : false,
|
children: menus.children
|
? menus.children.map((funs) => ({
|
...funs,
|
checked: testList.findIndex((item) => item.value == funs.value) > -1 ? true : false,
|
children: funs.children ? funs.children : [],
|
}))
|
: [],
|
})),
|
})),
|
}));
|
listparty = listparty.map((apps) => ({
|
...apps,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
children: (apps.children || []).map((moudles) => ({
|
...moudles,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
children: moudles.children.map((menus) => ({
|
...menus,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
})),
|
})),
|
}));
|
// 调解人小程序
|
let listmediator = mediatorlist.data.map((apps) => ({
|
...apps,
|
checked: testList.findIndex((item) => item.value == apps.value) > -1 ? true : false,
|
children: (apps.children || []).map((moudles) => ({
|
...moudles,
|
checked: testList.findIndex((item) => item.value == moudles.value) > -1 ? true : false,
|
children: (moudles.children || []).map((menus) => ({
|
...menus,
|
checked: testList.findIndex((item) => item.value == menus.value) > -1 ? true : false,
|
children: menus.children
|
? menus.children.map((funs) => ({
|
...funs,
|
checked: testList.findIndex((item) => item.value == funs.value) > -1 ? true : false,
|
children: funs.children ? funs.children : [],
|
}))
|
: [],
|
})),
|
})),
|
}));
|
listmediator = listmediator.map((apps) => ({
|
...apps,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
children: (apps.children || []).map((moudles) => ({
|
...moudles,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
children: moudles.children.map((menus) => ({
|
...menus,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
})),
|
})),
|
}));
|
this.setState({
|
loading: false,
|
PCTreeList: listpc,
|
partyTreeList: listparty,
|
mediatorTreeList: listmediator,
|
editing: '3',
|
treeListKey: new Date().getTime(),
|
versionData: {
|
...versionInfo,
|
verfuns: versionInfo.versionTrees.length > 0 ? versionInfo.versionTrees.map((item) => ({})) : [],
|
mealfuns: versionInfo.versionTrees.length > 0 ? versionInfo.versionTrees.map((item) => ({})) : [],
|
},
|
});
|
},
|
});
|
} else {
|
this.setState({ loading: true });
|
const { versionInfo } = this.state;
|
const PClist = await getTree('1');
|
const partylist = await getTree('2');
|
const mediatorlist = await getTree('3');
|
const testList = flatten(versionInfo.versionTrees);
|
//树形结构增加是否勾选中字段checked
|
// PC端
|
let listpc = PClist.data.map((apps) => ({
|
...apps,
|
checked: testList.findIndex((item) => item.value == apps.value) > -1 ? true : false,
|
children: (apps.children || []).map((moudles) => ({
|
...moudles,
|
checked: testList.findIndex((item) => item.value == moudles.value) > -1 ? true : false,
|
children: (moudles.children || []).map((menus) => ({
|
...menus,
|
checked: testList.findIndex((item) => item.value == menus.value) > -1 ? true : false,
|
children: menus.children
|
? menus.children.map((funs) => ({
|
...funs,
|
checked: testList.findIndex((item) => item.value == funs.value) > -1 ? true : false,
|
children: funs.children ? funs.children : [],
|
}))
|
: [],
|
})),
|
})),
|
}));
|
listpc = listpc.map((apps) => ({
|
...apps,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
test: flatten(apps.children),
|
children: (apps.children || []).map((moudles) => ({
|
...moudles,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
children: moudles.children.map((menus) => ({
|
...menus,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
})),
|
})),
|
}));
|
// 当事人小程序
|
let listparty = partylist.data.map((apps) => ({
|
...apps,
|
checked: testList.findIndex((item) => item.value == apps.value) > -1 ? true : false,
|
// indeterminate:,
|
children: (apps.children || []).map((moudles) => ({
|
...moudles,
|
checked: testList.findIndex((item) => item.value == moudles.value) > -1 ? true : false,
|
children: (moudles.children || []).map((menus) => ({
|
...menus,
|
checked: testList.findIndex((item) => item.value == menus.value) > -1 ? true : false,
|
children: menus.children
|
? menus.children.map((funs) => ({
|
...funs,
|
checked: testList.findIndex((item) => item.value == funs.value) > -1 ? true : false,
|
children: funs.children ? funs.children : [],
|
}))
|
: [],
|
})),
|
})),
|
}));
|
listparty = listparty.map((apps) => ({
|
...apps,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
children: (apps.children || []).map((moudles) => ({
|
...moudles,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
children: moudles.children.map((menus) => ({
|
...menus,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
})),
|
})),
|
}));
|
// 调解人小程序
|
let listmediator = mediatorlist.data.map((apps) => ({
|
...apps,
|
checked: testList.findIndex((item) => item.value == apps.value) > -1 ? true : false,
|
children: (apps.children || []).map((moudles) => ({
|
...moudles,
|
checked: testList.findIndex((item) => item.value == moudles.value) > -1 ? true : false,
|
children: (moudles.children || []).map((menus) => ({
|
...menus,
|
checked: testList.findIndex((item) => item.value == menus.value) > -1 ? true : false,
|
children: menus.children
|
? menus.children.map((funs) => ({
|
...funs,
|
checked: testList.findIndex((item) => item.value == funs.value) > -1 ? true : false,
|
children: funs.children ? funs.children : [],
|
}))
|
: [],
|
})),
|
})),
|
}));
|
listmediator = listmediator.map((apps) => ({
|
...apps,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
children: (apps.children || []).map((moudles) => ({
|
...moudles,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
children: moudles.children.map((menus) => ({
|
...menus,
|
indeterminate:
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked == true).length == 0 ||
|
flatten(apps.children)
|
.filter((funs) => funs.appClient == '3')
|
.filter((item) => item.checked !== true).length == 0
|
? false
|
: true,
|
})),
|
})),
|
}));
|
this.setState({
|
loading: false,
|
PCTreeList: listpc,
|
partyTreeList: listparty,
|
mediatorTreeList: listmediator,
|
editing: '3',
|
treeListKey: new Date().getTime(),
|
versionData: {
|
...versionInfo,
|
verfuns: versionInfo.versionTrees.length > 0 ? versionInfo.versionTrees.map((item) => ({})) : [],
|
mealfuns: versionInfo.versionTrees.length > 0 ? versionInfo.versionTrees.map((item) => ({})) : [],
|
},
|
});
|
}
|
};
|
|
//版本搜索
|
searchChange = async (e) => {
|
const { tabKey } = this.state;
|
this.setState({ loading: true });
|
const requestObj = tabKey == '1' ? await listQueryRsVersion(e) : await listQueryRsMeal(e);
|
if (requestObj.type) {
|
if (requestObj.data.length > 0) {
|
const requestObj1 = tabKey == '1' ? await getByIdRsVersion(requestObj.data[0].id) : await getByIdRsMeal(requestObj.data[0].id);
|
this.setState({
|
versionList: requestObj.data.map((item, idx) => ({ ...item, hover: idx == 0 ? true : false })),
|
loading: false,
|
versionInfo: {
|
...requestObj1.data,
|
versionTrees: requestObj1.data.versionTrees.map((apps) => ({
|
...apps,
|
checked: true,
|
children: apps.children.map((moudles) => ({
|
...moudles,
|
checked: true,
|
children: moudles.children.map((menus) => ({
|
...menus,
|
checked: true,
|
children: menus.children.map((funs) => ({ ...funs, checked: true })),
|
})),
|
})),
|
})),
|
},
|
versionKey: new Date().getTime(),
|
editing: '1',
|
hoverSelectedKeys: requestObj.data[0].id,
|
});
|
} else {
|
this.setState({
|
versionList: [],
|
loading: false,
|
versionInfo: {},
|
versionKey: new Date().getTime(),
|
editing: '1',
|
hoverSelectedKeys: 0,
|
});
|
}
|
} else {
|
this.setState({ loading: false });
|
}
|
};
|
|
searchonChange = (e) => {
|
this.setState({ searchTile: e });
|
};
|
|
//输入框回填
|
inputChange = (data) => {
|
this.setState({ versionData: data });
|
};
|
|
// 切换tab页
|
TabsChange = (e) => {
|
this.setState({ tabKey: e });
|
this.initializedChange('', e);
|
};
|
|
//选择树形结构的功能菜单
|
selectOnChange = (e, data) => {
|
const { versionData, PCTreeList, partyTreeList, mediatorTreeList } = this.state;
|
const checked = e.target.checked;
|
// PCTreeList.map((apps) => ({ ...apps, checked: apps.value == data.value ? checked : apps.checked, indeterminate: false }));
|
//树形结构增加是否勾选中字段checked
|
let listpc = threeFunction(data, PCTreeList, checked);
|
let listparty = threeFunction(data, partyTreeList, checked);
|
let listmediator = threeFunction(data, mediatorTreeList, checked);
|
// this.setState({ PCTreeList: listpc, partyTreeList: listparty, mediatorTreeList: listmediator, treeListKey: new Date().getTime() });
|
this.setState({ PCTreeList: listpc, partyTreeList: listparty, mediatorTreeList: listmediator, treeListKey: new Date().getTime() });
|
};
|
|
//表单提交
|
formSave = async (data) => {
|
const { versionData, PCTreeList, partyTreeList, mediatorTreeList, tabKey } = this.state;
|
let list2 = [
|
...flatten(PCTreeList).filter((item) => item.checked),
|
...flatten(partyTreeList).filter((item) => item.checked),
|
...flatten(mediatorTreeList).filter((item) => item.checked),
|
];
|
|
if (tabKey == '1' && list2.length == 0) {
|
return message.error('请至少选择一个相关功能');
|
}
|
let newData = {
|
...versionData,
|
...data,
|
verfuns: list2.map((item) => ({
|
appClient: item.appClient,
|
labelType: item.labelType,
|
powerId: item.value,
|
parentId: item.parentId || 'root',
|
powerName: item.label,
|
powerUrl: item.url,
|
powerTag: item.tag,
|
powerIcon: item.icon,
|
})),
|
mealfuns: list2.map((item) => ({
|
appClient: item.appClient,
|
labelType: item.labelType,
|
powerId: item.value,
|
parentId: item.parentId || 'root',
|
powerName: item.label,
|
powerUrl: item.url,
|
powerTag: item.tag,
|
powerIcon: item.icon,
|
})),
|
status: '1',
|
};
|
const res = tabKey == '1' ? await saveRsVersion(newData) : await saveRsMeal(newData);
|
if (res.type) {
|
message.success('提交成功!');
|
//todo 返回提交的结果
|
this.initializedChange(res.data.id, tabKey);
|
}
|
this.setState({ editing: '1' });
|
};
|
|
back = () => {
|
this.setState({ editing: '1' });
|
};
|
|
render() {
|
const {
|
tabKey,
|
editing,
|
loading,
|
versionInfo,
|
versionList,
|
versionKey,
|
PCTreeList,
|
partyTreeList,
|
mediatorTreeList,
|
treeListKey,
|
versionData,
|
hoverSelectedKeys,
|
searchTile,
|
} = this.state;
|
return (
|
<div className="edition-main">
|
{editing == '1' && <PageHead title="版本管理" />}
|
{/* {editing == '2' && (
|
<PageHead
|
breadcrumbData={[{ title: '版本管理', url: '/operation/edition' }, { title: tabKey == '1' ? '版本' : '增强包' }]}
|
title={tabKey == '1' ? '新增版本' : '新增增强包'}
|
/>
|
)}
|
{editing == '3' && (
|
<PageHead
|
breadcrumbData={[{ title: '版本管理', url: '/operation/edition' }, { title: tabKey == '1' ? '版本' : '增强包' }]}
|
title={versionData.name || ''}
|
/> */}
|
{editing == '2' && (
|
<React.Fragment>
|
<Breadcrumb style={{ width: '100%', backgroundColor: '#fff', padding: '16px 12px 0 24px' }}>
|
<Breadcrumb.Item>
|
<a onClick={this.back}>版本管理</a>
|
</Breadcrumb.Item>
|
<Breadcrumb.Item>{tabKey == '1' ? '版本' : '增强包'}</Breadcrumb.Item>
|
</Breadcrumb>
|
<PageHead title={tabKey == '1' ? '新增版本' : '新增增强包'} />
|
</React.Fragment>
|
)}
|
{editing == '3' && (
|
<React.Fragment>
|
<Breadcrumb style={{ width: '100%', backgroundColor: '#fff', padding: '16px 12px 0 24px' }}>
|
<Breadcrumb.Item>
|
<a onClick={this.back}>版本管理</a>
|
</Breadcrumb.Item>
|
<Breadcrumb.Item>{tabKey == '1' ? '版本' : '增强包'}</Breadcrumb.Item>
|
</Breadcrumb>
|
<PageHead title={versionData.name || ''} />
|
</React.Fragment>
|
)}
|
<div className="edition-tab">
|
<Spin spinning={loading}>
|
{editing == '1' && (
|
<Tabs onChange={this.TabsChange} className="edition-tab-style" defaultActiveKey={tabKey}>
|
<TabPane tab="版本" key="1"></TabPane>
|
<TabPane tab="增强包" key="2"></TabPane>
|
</Tabs>
|
)}
|
{/* 表格显示 */}
|
{editing == '1' && (
|
<EditionView
|
key={versionKey}
|
tabKey={tabKey}
|
versionInfo={versionInfo}
|
treeData={versionList}
|
hoverSelectedKeys={hoverSelectedKeys}
|
searchTile={searchTile}
|
onMenuSelect={this.onMenuSelect}
|
addedition={this.addedition}
|
hoverDel={this.hoverDel}
|
hoverStop={this.hoverStop}
|
hoverEdit={this.hoverEdit}
|
searchChange={this.searchChange}
|
searchonChange={this.searchonChange}
|
/>
|
)}
|
{/* 表单提交 */}
|
{editing !== '1' && (
|
<EditionFormView
|
key={treeListKey}
|
tabKey={tabKey}
|
PCTreeList={PCTreeList}
|
partyTreeList={partyTreeList}
|
mediatorTreeList={mediatorTreeList}
|
versionData={versionData}
|
inputChange={this.inputChange}
|
selectOnChange={this.selectOnChange}
|
back={this.back}
|
formSave={this.formSave}
|
/>
|
)}
|
</Spin>
|
</div>
|
</div>
|
);
|
}
|
}
|
|
// 递归处理多维数组转为一维数组
|
function flatten(arr) {
|
var res = [];
|
for (var i = 0; i < arr.length; i++) {
|
var item = arr[i];
|
if (Array.isArray(item)) {
|
var newArr = flatten(item);
|
res = res.concat(newArr);
|
} else {
|
res.push({
|
label: item.label,
|
appClient: item.appClient,
|
parentId: item.parentId,
|
value: item.value,
|
labelType: item.labelType,
|
checked: item.checked,
|
url: item.url,
|
tag: item.tag,
|
icon: item.icon,
|
});
|
}
|
|
if (Array.isArray(item.children)) {
|
var newArr = flatten(item.children, item.id);
|
res = res.concat(newArr);
|
}
|
}
|
return res;
|
}
|
|
export default Edition;
|