2022-11-08 15:56:34 +08:00
|
|
|
|
import * as mobx from "mobx";
|
|
|
|
|
|
import { action, computed, extendObservable, observable } from "mobx";
|
|
|
|
|
|
import { message } from "antd";
|
|
|
|
|
|
import { WeaHelpfulTip } from "ecCom";
|
|
|
|
|
|
import { isEmpty } from "lodash";
|
|
|
|
|
|
import { i18n } from "../public/i18n";
|
|
|
|
|
|
import * as Api from "../apis/columnPermission";
|
|
|
|
|
|
|
2022-11-07 16:35:58 +08:00
|
|
|
|
const toJS = mobx.toJS;
|
|
|
|
|
|
|
|
|
|
|
|
export class ColumnPermission {
|
|
|
|
|
|
@observable weaTopTitle = i18n.module.staffCardDisplay();
|
|
|
|
|
|
@observable btnMenu = [];
|
2022-11-08 15:56:34 +08:00
|
|
|
|
@observable selectedKey = "0";
|
2022-11-07 16:35:58 +08:00
|
|
|
|
@observable authorized = false;
|
|
|
|
|
|
@observable loading = true;
|
|
|
|
|
|
@observable tabOneRelatedData = {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
datas: [], //datas受控
|
|
|
|
|
|
columns: [],
|
2022-11-07 16:35:58 +08:00
|
|
|
|
loading: true
|
|
|
|
|
|
};
|
|
|
|
|
|
@observable tabTwoRelatedData = {
|
|
|
|
|
|
datas: [], //datas受控
|
|
|
|
|
|
columns: [],
|
|
|
|
|
|
loading: true,
|
|
|
|
|
|
selectedData: {}, //selectedData受控
|
2022-11-08 15:56:34 +08:00
|
|
|
|
authorized: false
|
2022-11-07 16:35:58 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
@computed get cardItemsLength() {
|
|
|
|
|
|
let arr = [];
|
|
|
|
|
|
for (let i = 0; i < this.tabOneRelatedData.data.length; i++) {
|
|
|
|
|
|
let cardItemsLength = 0;
|
|
|
|
|
|
this.tabOneRelatedData.data[i].children.map(s => {
|
|
|
|
|
|
if (s.children.length > 0) {
|
|
|
|
|
|
cardItemsLength += s.children.length;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
cardItemsLength += 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
arr.push(cardItemsLength);
|
|
|
|
|
|
}
|
|
|
|
|
|
return arr;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@computed get menu() {
|
|
|
|
|
|
let topMenu = [];
|
|
|
|
|
|
let rightMenu = [];
|
|
|
|
|
|
this.btnMenu.map(item => {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
(item.isTop == "1" || item.isBatch == "1") && topMenu.push(item);
|
2022-11-07 16:35:58 +08:00
|
|
|
|
!item.isBatch && rightMenu.push(item);
|
|
|
|
|
|
});
|
|
|
|
|
|
return {
|
|
|
|
|
|
topMenu,
|
|
|
|
|
|
rightMenu
|
2022-11-08 15:56:34 +08:00
|
|
|
|
};
|
2022-11-07 16:35:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@computed get checkedItems() {
|
|
|
|
|
|
let arr = [];
|
|
|
|
|
|
toJS(this.tabOneRelatedData.data).map(f => {
|
|
|
|
|
|
let fArr = [];
|
|
|
|
|
|
if (f.value) {
|
|
|
|
|
|
fArr.push(f.id);
|
|
|
|
|
|
f.children.map(s => {
|
|
|
|
|
|
if (s.value) {
|
|
|
|
|
|
fArr.push(
|
2022-11-08 15:56:34 +08:00
|
|
|
|
s.id
|
|
|
|
|
|
);
|
2022-11-07 16:35:58 +08:00
|
|
|
|
s.children.map(t => {
|
|
|
|
|
|
t.value && fArr.push(
|
|
|
|
|
|
t.id
|
2022-11-08 15:56:34 +08:00
|
|
|
|
);
|
|
|
|
|
|
});
|
2022-11-07 16:35:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
arr.push(fArr.toString());
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
return arr.toString();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@computed get tabTwoSaveParams() {
|
|
|
|
|
|
let datas = this.tabTwoRelatedData.datas;
|
|
|
|
|
|
let selectedData = this.tabTwoRelatedData.selectedData.isused;
|
|
|
|
|
|
|
|
|
|
|
|
let params = this.arrToJson(toJS(datas), toJS(selectedData));
|
|
|
|
|
|
params.rownum = datas.length;
|
|
|
|
|
|
|
|
|
|
|
|
return params;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@action
|
|
|
|
|
|
getRight() {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
Api.hasRight().then(res => {
|
|
|
|
|
|
let { code, data, msg } = res;
|
|
|
|
|
|
const { hasRight } = data;
|
|
|
|
|
|
if (code === 200) {
|
|
|
|
|
|
this.setRight(hasRight);
|
2022-11-07 16:35:58 +08:00
|
|
|
|
} else {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
message.error(msg);
|
2022-11-07 16:35:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
}).catch(error => {
|
|
|
|
|
|
message.error(error);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
loadTabOneRelatedData() {
|
|
|
|
|
|
this.tabOneRelatedData.loading = true;
|
|
|
|
|
|
Promise.all(
|
|
|
|
|
|
[
|
2022-11-08 15:56:34 +08:00
|
|
|
|
Api.getTable()
|
2022-11-07 16:35:58 +08:00
|
|
|
|
]
|
|
|
|
|
|
).then(res => {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
console.log('res', res);
|
|
|
|
|
|
extendObservable(this.tabOneRelatedData, {
|
|
|
|
|
|
datas: [],
|
|
|
|
|
|
columns: [],
|
|
|
|
|
|
loading: false
|
2022-11-07 16:35:58 +08:00
|
|
|
|
});
|
2022-11-08 15:56:34 +08:00
|
|
|
|
// res.map((rs, index) => {
|
|
|
|
|
|
// if (index == 0) {
|
|
|
|
|
|
// let {
|
|
|
|
|
|
// api_status,
|
|
|
|
|
|
// data
|
|
|
|
|
|
// } = rs;
|
|
|
|
|
|
//
|
|
|
|
|
|
// if (api_status) {
|
|
|
|
|
|
// data !== undefined && extendObservable(this.tabOneRelatedData, {
|
|
|
|
|
|
// data: data
|
|
|
|
|
|
// });
|
|
|
|
|
|
// extendObservable(this.tabOneRelatedData, {
|
|
|
|
|
|
// loading: false
|
|
|
|
|
|
// });
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
// message.error(rs.message);
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// });
|
2022-11-07 16:35:58 +08:00
|
|
|
|
}).catch(error => {
|
|
|
|
|
|
message.error(error);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
loadTabTwoRelatedData() {
|
|
|
|
|
|
this.tabTwoRelatedData.loading = true;
|
|
|
|
|
|
Promise.all(
|
|
|
|
|
|
[
|
2022-11-08 15:56:34 +08:00
|
|
|
|
Api.getTableEdit()
|
2022-11-07 16:35:58 +08:00
|
|
|
|
]
|
|
|
|
|
|
).then(res => {
|
|
|
|
|
|
res.map((rs, index) => {
|
|
|
|
|
|
if (index == 0) {
|
|
|
|
|
|
let {
|
|
|
|
|
|
api_status,
|
|
|
|
|
|
datas,
|
|
|
|
|
|
columns,
|
|
|
|
|
|
selectedData
|
|
|
|
|
|
} = rs;
|
|
|
|
|
|
|
|
|
|
|
|
if (api_status) {
|
|
|
|
|
|
if (!columns || !datas) {
|
|
|
|
|
|
this.tabTwoRelatedData.authorized = false;
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
this.tabTwoRelatedData.authorized = true;
|
|
|
|
|
|
columns.map((c, index) => {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
if (c.key === "itemurl") {
|
2022-11-07 16:35:58 +08:00
|
|
|
|
c.title = <span>
|
|
|
|
|
|
<span>{c.title}</span>
|
2022-11-08 15:56:34 +08:00
|
|
|
|
<span style={{ marginLeft: 10 }}>
|
|
|
|
|
|
<WeaHelpfulTip
|
|
|
|
|
|
ecId={`${this && this.props && this.props.ecId || ""}_WeaHelpfulTip@4vdvfp@${index}`}
|
|
|
|
|
|
title="自定义页面链接地址可以为外网地址,如:http://www.baidu.com
|
2022-11-07 16:35:58 +08:00
|
|
|
|
也可以是内部地址,如:/test.jsp,可以带上参数传参,像这样:/test.jsp?a=1&b=2
|
|
|
|
|
|
也可以写占位符{#id}传人员id,像这样:/test.jsp?a=1&b={#id}&mypara2={#id}
|
2022-11-08 15:56:34 +08:00
|
|
|
|
即使不写占位符,默认也会收到1个固定的参数:hrmResourceID=人员id"/>
|
2022-11-07 16:35:58 +08:00
|
|
|
|
</span>
|
2022-11-08 15:56:34 +08:00
|
|
|
|
</span>;
|
|
|
|
|
|
} else if (c.key === "itemnum") {
|
2022-11-07 16:35:58 +08:00
|
|
|
|
c.title = <span>
|
|
|
|
|
|
<span>{c.title}</span>
|
2022-11-08 15:56:34 +08:00
|
|
|
|
<span style={{ marginLeft: 10 }}>
|
|
|
|
|
|
<WeaHelpfulTip
|
|
|
|
|
|
ecId={`${this && this.props && this.props.ecId || ""}_WeaHelpfulTip@wotuuk@${index}`}
|
|
|
|
|
|
title="填写类的全路径例如:com.engine.hrm.cmd.hrmcarditem.GetTabNumDemoCmd,类中包含execute方法返回int型数据。
|
|
|
|
|
|
填写不正确的路径并启用,对应tab页title将会出现(error)字样。"/>
|
2022-11-07 16:35:58 +08:00
|
|
|
|
</span>
|
2022-11-08 15:56:34 +08:00
|
|
|
|
</span>;
|
2022-11-07 16:35:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
extendObservable(this.tabTwoRelatedData, {
|
|
|
|
|
|
datas: datas,
|
|
|
|
|
|
columns: columns
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
selectedData && extendObservable(this.tabTwoRelatedData, {
|
|
|
|
|
|
selectedData: selectedData
|
|
|
|
|
|
});
|
|
|
|
|
|
extendObservable(this.tabTwoRelatedData, {
|
|
|
|
|
|
loading: false
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
message.error(rs.message);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}).catch(error => {
|
|
|
|
|
|
message.error(error);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
columnPermissionSave() {
|
|
|
|
|
|
let params = {
|
|
|
|
|
|
data: toJS(this.checkedItems)
|
2022-11-08 15:56:34 +08:00
|
|
|
|
};
|
2022-11-07 16:35:58 +08:00
|
|
|
|
Api.cardItemsSettingSave(params).then(res => {
|
|
|
|
|
|
let {
|
|
|
|
|
|
api_status,
|
2022-11-08 15:56:34 +08:00
|
|
|
|
sign
|
2022-11-07 16:35:58 +08:00
|
|
|
|
} = res;
|
|
|
|
|
|
|
|
|
|
|
|
if (api_status) {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
if (sign == "1") {
|
2022-11-07 16:35:58 +08:00
|
|
|
|
res.message && message.success(res.message);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
res.message && message.warning(res.message);
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
message.error(res.message);
|
|
|
|
|
|
}
|
|
|
|
|
|
}).catch(error => {
|
|
|
|
|
|
message.error(error);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
userDefineCardItemSave() {
|
|
|
|
|
|
if (!this.verify(toJS(this.tabTwoRelatedData.datas))) return;
|
|
|
|
|
|
let params = this.tabTwoSaveParams;
|
|
|
|
|
|
|
|
|
|
|
|
Api.userDefineCardItemSave(params).then(res => {
|
|
|
|
|
|
let {
|
|
|
|
|
|
api_status,
|
2022-11-08 15:56:34 +08:00
|
|
|
|
sign
|
2022-11-07 16:35:58 +08:00
|
|
|
|
} = res;
|
|
|
|
|
|
|
|
|
|
|
|
if (api_status) {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
if (sign == "1") {
|
2022-11-07 16:35:58 +08:00
|
|
|
|
res.message && message.success(res.message);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
res.message && message.warning(res.message);
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
message.error(res.message);
|
|
|
|
|
|
}
|
|
|
|
|
|
}).catch(error => {
|
|
|
|
|
|
message.error(error);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
arrToJson(arr, rows) {
|
|
|
|
|
|
let json = {};
|
|
|
|
|
|
|
|
|
|
|
|
const _rows = isEmpty(arr) ? [] : rows;
|
|
|
|
|
|
|
|
|
|
|
|
_rows && _rows.map(index => {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
arr[index].isused = "1";
|
2022-11-07 16:35:58 +08:00
|
|
|
|
});
|
|
|
|
|
|
arr.map((item, index) => {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
if (!item.isused) item.isused = "0";
|
2022-11-07 16:35:58 +08:00
|
|
|
|
for (let key in item) {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
json[key + "_" + index] = item[key];
|
2022-11-07 16:35:58 +08:00
|
|
|
|
}
|
2022-11-08 15:56:34 +08:00
|
|
|
|
});
|
2022-11-07 16:35:58 +08:00
|
|
|
|
|
|
|
|
|
|
return json;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
verify(arr) {
|
|
|
|
|
|
for (let i = 0; i < arr.length; i++) {
|
|
|
|
|
|
if (!arr[i].itemname || !arr[i].itemurl) {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
const temp = i18n.message.requiredInfoIsNotFull().replace("{param}", i + 1);
|
2022-11-07 16:35:58 +08:00
|
|
|
|
message.warning(temp);
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
setRight(right) {
|
|
|
|
|
|
this.authorized = right;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
setBtnMenu(btnMenu) {
|
|
|
|
|
|
this.btnMenu = btnMenu;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
setSelectedKey(key) {
|
|
|
|
|
|
this.selectedKey = key;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
setCardItemsData(data) {
|
|
|
|
|
|
this.data = data;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
setEnableRows(e) {
|
|
|
|
|
|
extendObservable(this.tabTwoRelatedData, {
|
|
|
|
|
|
selectedData: {
|
|
|
|
|
|
isused: e
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
setTableEditDatas(e) {
|
|
|
|
|
|
e.map(item => {
|
|
|
|
|
|
for (let key in item) {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
if (key == "undefined") {
|
2022-11-07 16:35:58 +08:00
|
|
|
|
delete item[key];
|
|
|
|
|
|
}
|
2022-11-08 15:56:34 +08:00
|
|
|
|
if (!item["isused"]) {
|
|
|
|
|
|
item["isused"] = "";
|
2022-11-07 16:35:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
extendObservable(this.tabTwoRelatedData, {
|
|
|
|
|
|
datas: e
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
mobxDataReset() {
|
2022-11-08 15:56:34 +08:00
|
|
|
|
this.selectedKey = "0";
|
2022-11-07 16:35:58 +08:00
|
|
|
|
extendObservable(this.tabOneRelatedData, {
|
|
|
|
|
|
loading: true
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|