diff --git a/pc4mobx/organization/apis/columnSetting.js b/pc4mobx/organization/apis/columnSetting.js
index be9b5dd..b2520fe 100644
--- a/pc4mobx/organization/apis/columnSetting.js
+++ b/pc4mobx/organization/apis/columnSetting.js
@@ -15,10 +15,10 @@ export const getTable = (params) => {
export const cardAccessSave = (params) => {
return WeaTools.callApi('/api/bs/hrmorganization/cardAccess/save', 'POST', params);
}
-export const getFieldDefinedInfo = (params) => {
- return WeaTools.callApi('/api/hrm/subcompanyfielddefined/getFieldDefinedInfo', 'GET', {is_multilang_set: true,groupId:6});
+export const getCardButtonTable = (params) => {
+ return WeaTools.callApi('/api/bs/hrmorganization/cardAccess/getCardButtonTable', 'GET', params);
}
export const saveFieldDefinedInfo = (params) => {
- return WeaTools.callApi('', 'POST', params);
+ return WeaTools.callApi('/api/bs/hrmorganization/cardAccess/saveCardButton', 'POST', params);
}
diff --git a/pc4mobx/organization/components/columnSetting/customItem.js b/pc4mobx/organization/components/columnSetting/customItem.js
index 53826d0..becd1ab 100644
--- a/pc4mobx/organization/components/columnSetting/customItem.js
+++ b/pc4mobx/organization/components/columnSetting/customItem.js
@@ -1,6 +1,7 @@
import React, { Component } from "react";
import { WeaTableEdit } from "ecCom";
import { inject, observer } from "mobx-react";
+import { toJS } from "mobx";
@inject("columnSetting")
@observer
@@ -14,14 +15,31 @@ class CustomItem extends Component {
columnSetting.loadTabThreeRelatedData();
};
+ onRowSelect = (sRowKeys, rows, dataIndex, selectedDatas) => {
+ console.log(sRowKeys, rows, dataIndex, selectedDatas);
+ const { columnSetting } = this.props;
+ if (dataIndex === undefined || selectedDatas === undefined) {
+ return;
+ }
+ columnSetting.setEnableRows(selectedDatas.isused);
+ };
+
render() {
- const { columnSetting } = this.props, { tableEditConfig, refreshMainTabComponent } = columnSetting;
+ const { columnSetting } = this.props, { tabThreeRelatedData } = columnSetting;
+ const { datas, columns, selectedData, loading } = tabThreeRelatedData;
return (
columnSetting.setCustomTableEditDatas(e)}
+ onRowSelect={(sRowKeys, rows, dataIndex, selectedDatas) => this.onRowSelect(sRowKeys, rows, dataIndex, selectedDatas)}
/>
);
diff --git a/pc4mobx/organization/components/columnSetting/index.js b/pc4mobx/organization/components/columnSetting/index.js
index 457db61..ae70eaa 100644
--- a/pc4mobx/organization/components/columnSetting/index.js
+++ b/pc4mobx/organization/components/columnSetting/index.js
@@ -52,7 +52,7 @@ class ColumnSetting extends Component {
selectedKey === "0" ?
columnSetting.userDefineCardItemSave() :
selectedKey === "1" ?
- columnSetting.columnPermissionSave() : columnSetting.saveCustomFiled();
+ columnSetting.columnPermissionSave() : columnSetting.customItemSave();
};
render() {
@@ -100,7 +100,7 @@ class ColumnSetting extends Component {
);
- }
+ }
}
export default ColumnSetting;
diff --git a/pc4mobx/organization/stores/columnSetting.js b/pc4mobx/organization/stores/columnSetting.js
index b9c1622..24a2ab0 100644
--- a/pc4mobx/organization/stores/columnSetting.js
+++ b/pc4mobx/organization/stores/columnSetting.js
@@ -8,175 +8,14 @@ import { cloneDeep, has, indexOf, isEmpty, remove, uniq } from "lodash";
import { i18n } from "../public/i18n";
import * as Api from "../apis/columnSetting";
import { validDBKeys } from "../util";
+import { saveFieldDefinedInfo } from "../apis/columnSetting";
const getCurrentLabel = WeaInputLocale.getCurrentLabel;
const { TableStore } = WeaTableNew;
const toJS = mobx.toJS;
-export class ColumnSetting extends HrmBaseStore {
- isDBKeyValid = true;
- getColumns = () => {
- return cloneDeep(this.fieldDefColumns());
- };
- fieldDefColumns = () => {
- const columns = [{
- title: i18n.label.fieldLabel(), //列名
- dataIndex: "fieldlabel", //列的id 对应数据
- key: "fieldlabel", //前端渲染key值
- useRecord: true,
- colSpan: 1,
- width: "15%",
- com: [{
- label: "",
- type: "INPUT",
- key: "fieldlabel",
- viewAttr: "3",
- otherParams: {
- ...window.inputType
- }
- }]
- }, {
- title: i18n.label.fieldName(),
- dataIndex: "fieldname",
- key: "fieldname",
- useRecord: true,
- colSpan: 1,
- width: "15%",
- com: [{
- label: "",
- type: "INPUT",
- key: "fieldname",
- viewAttr: "1",
- otherParams: {
- length: 25,
- regExp: /^[a-zA-Z][a-zA-Z0-9]*$/,
- filter: (val) => {
- const {
- isValid,
- value
- } = validDBKeys(val);
- this.isDBKeyValid = isValid;
- return value;
- }
- }
- }]
- }, {
- title: i18n.label.fieldType(),
- dataIndex: "fieldType",
- key: "fieldType",
- useRecord: true,
- colSpan: 1,
- width: "45%",
- com: [{
- label: "",
- type: "CUSTOMFIELD",
- key: "fieldType",
- viewAttr: "3",
- options: ["peculiar"],
- otherParams: {
- customProps: {
- "input.text": {
- viewAttr: 3
- },
- "textarea": {
- parent: {
- type: "div",
- style: {
- display: "none"
- }
- },
- style: {
- display: "none"
- }
- },
- "textarea.*": {
- parent: {
- type: "div",
- style: {
- display: "none"
- }
- },
- style: {
- display: "none"
- }
- },
- "textarea.*.*": {
- style: {
- display: "none"
- }
- },
- "select": {
- options: [{
- key: "select",
- selected: true,
- showname: i18n.label.selectComponent()
- }]
- },
- "upload": {
- options: [{
- key: "file",
- selected: true,
- showname: i18n.label.uploadFile()
- }]
- }
- }
- }
- }]
- }, {
- title: i18n.label.enable(),
- dataIndex: "enable",
- key: "enable",
- checkType: "checkbox",
- colSpan: 1,
- width: "7%"
- }, {
- title: i18n.label.required(),
- dataIndex: "required",
- key: "required",
- checkType: "checkbox",
- colSpan: 1,
- width: "8%"
- }];
-
- //人员卡片字段定义-添加【允许个人修改】列
- if (this.moduleName === "resourcefielddefined") {
- columns.push({
- title: getLabel(510359, "允许个人修改"),
- dataIndex: "isModify",
- key: "isModify",
- checkType: "checkbox",
- colSpan: 1,
- width: "11%"
- });
- }
- // this.encryptEnable && columns.push({
- // title: getLabel('526997', '加密设置'),
- // dataIndex: 'canEncrypt',
- // key: 'canEncrypt',
- // com: [
- // {
- // type: 'custom',
- // key: 'custom',
- // render: (text, record, index, onEdit) => {
- // const { canEncrypt } = record;
- // if (canEncrypt == '1')
- // return (
- // this.onEncryptHandle(record)}>{getLabel('526997', '加密设置')}
- // )
- // return null;
- // }
- // }
- // ],
- // colSpan: 1,
- // width: '8%'
- // });
- return columns;
- };
- @observable refreshMainTabComponent = new Date().getTime();
- @observable refreshFeildDef = new Date().getTime(); //当需要刷新主页面tab时,变更此值
- @observable refreshForm = new Date().getTime();
- @observable refreshEditGroupTabComponent = new Date().getTime(); //当需要刷新权限组编辑tab时,变更此值
+export class ColumnSetting {
@observable tableStore = new TableStore();
@observable columnsPermissionData = [];
@observable selectedKey = "0";
@@ -194,6 +33,12 @@ export class ColumnSetting extends HrmBaseStore {
selectedData: {}, //selectedData受控
authorized: false
};
+ @observable tabThreeRelatedData = {
+ datas: [], //datas受控
+ columns: [],
+ loading: true,
+ selectedData: {} //selectedData受控
+ };
@computed get checkedItems() {
const data = isEmpty(this.columnsPermissionData) ? toJS(this.tableStore.datas) : this.columnsPermissionData;
@@ -207,6 +52,13 @@ export class ColumnSetting extends HrmBaseStore {
params.rownum = datas.length;
return params;
}
+ @computed get tabThreeSaveParams() {
+ let datas = this.tabThreeRelatedData.datas;
+ let selectedData = this.tabThreeRelatedData.selectedData.status;
+ let params = this.arrToJson(toJS(datas), toJS(selectedData), 'status');
+ params.rownum = datas.length;
+ return params;
+ }
@action
getRight() {
@@ -223,175 +75,6 @@ export class ColumnSetting extends HrmBaseStore {
});
}
- @action
- onFieldDefChange = (datas) => {
- let selectedData = {
- enable: [],
- required: []
- };
- if (this.moduleName === "resourcefielddefined") {
- Object.assign(selectedData, {
- isModify: []
- });
- }
- datas.map((data, index) => {
- if (data["enable"] === "1")
- selectedData.enable.push(index);
- if (data["required"] === "1")
- selectedData.required.push(index);
- if (data["isModify"] && data["isModify"] === "1" && this.moduleName === "resourcefielddefined") {
- selectedData.isModify.push(index);
- }
- });
- this.tableEditConfig.fieldDef.datas = datas;
- this.tableEditConfig.fieldDef.selectedData = selectedData;
- this._feildDefSaveable = datas.length === 0;
- if (datas.length === 0) {
- // this.initData();
- } else
- this.refreshFeildDef = new Date().getTime();
- };
- @action
- onFieldDefRowSelect = (sRowKeys, rows, dataIndex, selectedDatas) => {
- if (dataIndex == null) {
- this.feildDefTableSelectedRows = sRowKeys;
- this.tableEditConfig.fieldDef.selectedRowKeys = sRowKeys;
- } else {
- if (selectedDatas != null && selectedDatas.hasOwnProperty(dataIndex)) {
- const arr = selectedDatas[dataIndex];
- this.tableEditConfig.fieldDef.datas.map((data, index) => {
- if (dataIndex === "enable") {
- data[dataIndex] = indexOf(arr, index) >= 0 ? "1" : "0";
- if (data[dataIndex] === "0") {
- data["required"] = "0";
- remove(selectedDatas["required"], v => v === index);
- data["isModify"] = "0";
- remove(selectedDatas["isModify"], v => v === index);
- }
- } else if (dataIndex === "required") {
- data[dataIndex] = indexOf(arr, index) >= 0 ? "1" : "0";
- if (data[dataIndex] === "1") {
- data["enable"] = "1";
- if (selectedDatas["enable"].indexOf(index) < 0)
- selectedDatas["enable"].push(index);
- }
- } else if (dataIndex === "isModify") {
- data[dataIndex] = indexOf(arr, index) >= 0 ? "1" : "0";
- if (data[dataIndex] === "1") {
- data["enable"] = "1";
- if (selectedDatas["enable"].indexOf(index) < 0)
- selectedDatas["enable"].push(index);
- }
-
- } else
- data[dataIndex] = indexOf(arr, index) >= 0 ? "1" : "0";
- });
-
- this.tableEditConfig.fieldDef.selectedData = selectedDatas;
- }
- }
- this.processLinkage(selectedDatas);
- this.refreshFeildDef = new Date().getTime();
- };
- processLinkage = (selectedDatas) => {
- const { datas } = this.tableEditConfig.fieldDef;
-
- const target = datas.find(data => data.fieldname === "accounttype");
-
- if (!target) return;
-
- const accounttype = target.isModify;
-
- const belongto = datas.find(data => data.fieldname === "belongto").isModify;
-
- if (belongto !== accounttype) {
- datas.find(data => data.fieldname === "belongto").isModify = accounttype;
-
- const belongtoIndex = datas.findIndex(data => data.fieldname === "belongto");
-
- if (accounttype === "1") {
- selectedDatas["isModify"].push(belongtoIndex);
- } else {
- remove(selectedDatas["isModify"], v => v === belongtoIndex);
- }
- }
-
- };
- @action
- onFieldDefRowSelection = (rowSelection) => {
- let sel = {
- ...rowSelection
- };
- sel.getCheckboxProps = (record) => {
- let disabled = false;
- switch (this.dropdownSelectedKey) {
- case "2":
- disabled = false;//复制时,checkbox全部启用
- break;
- case "3":
- disabled = record.id == null || record.checkProps.enable.viewAttr === 1;//移动到组时,checkbox根据id是否为空或是否引用启用按钮状态赋值
- break;
- default:
- disabled = record.viewAttr === 1;//删除时,checkbox根据record.viewAttr赋值
- break;
- }
- return {
- disabled
- };
- };
- return sel;
- };
- @action
- onFieldDefDeleteOpr = (ks, ds) => {
- let ids = [];
- ds.map(d => {
- if (has(d, "id"))
- ids.push(d.id);
- });
- let params = {
- id: ids.join(",")
- };
- if (this.selectedTreeNodeInfo != null)
- params.groupType = this.selectedTreeNodeInfo.key;
- params.groupId = this.activeTabInfo.tabInfo.groupid;
- if (ids.length > 0) {
- api.removeFieldDefinedInfo(this.moduleName, params).then(data => {
- if (data.status === "1") {
- // this.initData();
- this.tableEditConfig.fieldDef.selectedRowKeys.length = 0;
- message.success(i18n.message.deleteSuccess());
- } else
- message.error(data.message);
- }, error => {
-
- });
- } else {
- this.tableEditConfig.fieldDef.selectedRowKeys.length = 0;
- }
-
- this.feildDefTableSelectedRows.length = 0;
- };
- tableEditConfig = {
- fieldDef: {
- showTitle: true,
- draggable: true,
- deleteConfirm: true,
- showAdd: true,
- showDelete: true,
- showCopy: true,
- columns: this.getColumns(),
- copyFilterProps: ["id", "fieldlabel", "fieldname", "com.fieldname", "com.fieldlabel"],
- datas: [],
- selectedData: {},
- onChange: this.onFieldDefChange,
- onRowSelect: this.onFieldDefRowSelect,
- getRowSelection: this.onFieldDefRowSelection
- // onDelete: this.onFieldDefDeleteOpr
- // onEdit: this.onEdit,
- // onAdd: this.onAdd
- }
- };
-
loadTabOneRelatedData() {
this.tabOneRelatedData.loading = true;
Promise.all(
@@ -479,19 +162,36 @@ export class ColumnSetting extends HrmBaseStore {
}
loadTabThreeRelatedData() {
+ this.tabThreeRelatedData.loading = true;
Promise.all(
[
- Api.getFieldDefinedInfo()
+ Api.getCardButtonTable()
]
- ).then(([{ data, status, message }]) => {
- if (status === "1") {
- const { datas, selectedData } = this.convertData(data, "fieldDef");
- this.tableEditConfig.fieldDef.datas = datas;
- this.tableEditConfig.fieldDef.columns = this.getColumns();
- this.tableEditConfig.fieldDef.selectedData = selectedData;
- this.refreshMainTabComponent = new Date().getTime();
- } else
- message.error(message);
+ ).then(result => {
+ result.map((item, index) => {
+ if (index === 0) {
+ let { code, data, msg } = item;
+ if (code === 200) {
+ const { columns, datas, selectedData } = data;
+ if (!columns || !datas) {
+ return;
+ }
+ extendObservable(this.tabThreeRelatedData, {
+ datas: datas,
+ columns: columns
+ });
+
+ selectedData && extendObservable(this.tabThreeRelatedData, {
+ selectedData: selectedData
+ });
+ extendObservable(this.tabThreeRelatedData, {
+ loading: false
+ });
+ } else {
+ message.error(msg);
+ }
+ }
+ });
});
}
@@ -534,72 +234,30 @@ export class ColumnSetting extends HrmBaseStore {
message.error(error);
});
}
+ customItemSave() {
+ // if (!this.verify(toJS(this.tabThreeRelatedData.datas))) return;
+ let params = this.tabThreeSaveParams;
- saveCustomFiled = () => {
- let data = cloneDeep(this.tableEditConfig.fieldDef.datas),
- labelArr = [],
- nameArr = [];
- if (!this.isDBKeyValid) return;
- const invalidEmpty = data.some((d, index) => {
- d.key = index;
- delete d.com;
- delete d.checkProps;
- delete d.viewAttr;
- if (has(d, "fieldTypeObj")) {
- if (Array.isArray(d.fieldTypeObj) && d.fieldTypeObj.length > 0 && d.fieldTypeObj[0] != "select")
- d.fieldType = d.fieldTypeObj;
- delete d.fieldTypeObj;
- }
- if (!Array.isArray(d.fieldType))
- delete d.fieldType;
-
- if (!has(d, "enable"))
- d.enable = "0";
- if (!has(d, "required"))
- d.required = "0";
-
- let fieldlabel = d.fieldlabel || "",
- fieldname = d.fieldname || "";
- if (fieldlabel === "" || (this.moduleName != "resourcefielddefined" && fieldname === "")) {
- return true;
- }
- labelArr.push(getCurrentLabel(d.fieldlabel));
- nameArr.push(d.fieldname);
- return false;
+ Api.saveFieldDefinedInfo(params).then(res => {
+ console.log(res);
+ // let {
+ // api_status,
+ // sign
+ // } = res;
+ //
+ // if (api_status) {
+ // if (sign == "1") {
+ // res.message && message.success(res.message);
+ // } else {
+ // res.message && message.warning(res.message);
+ // }
+ // } else {
+ // message.error(res.message);
+ // }
+ }).catch(error => {
+ message.error(error);
});
- let checkSame = false;
- if (this.moduleName.indexOf("resource") >= 0)
- checkSame = uniq(labelArr).length === data.length;
- else
- checkSame = uniq(labelArr).length === data.length && uniq(nameArr).length === data.length;
- if (invalidEmpty) {
-
- } else if (checkSame) {
- let dataObj = {
- groupId: this.activeTabInfo.tabInfo.groupid,
- records: data
- };
- if (this.selectedTreeNodeInfo != null)
- dataObj.groupType = this.selectedTreeNodeInfo.key;
- let params = {
- data: JSON.stringify(dataObj)
- };
- if (this.selectedTreeNodeInfo != null)
- params.groupType = this.selectedTreeNodeInfo.key;
-
- Api.saveFieldDefinedInfo(params).then(data => {
- if (data.status === "1") {
-
- } else {
- message.error(data.message);
- }
- }, error => {
- });
- } else {
- message.error(i18n.confirm.displayOrDBFieldExist());
- this.spinning = false;
- }
- };
+ }
arrColumnsToJson(arr, rows) {
let jsonColumn = {
@@ -628,6 +286,21 @@ export class ColumnSetting extends HrmBaseStore {
datas: e
});
}
+ setCustomTableEditDatas(e) {
+ e.map(item => {
+ for (let key in item) {
+ if (key == "undefined") {
+ delete item[key];
+ }
+ if (!item["status"]) {
+ item["status"] = "";
+ }
+ }
+ });
+ extendObservable(this.tabThreeRelatedData, {
+ datas: e
+ });
+ }
setEnableRows(e) {
extendObservable(this.tabTwoRelatedData, {
@@ -637,16 +310,14 @@ export class ColumnSetting extends HrmBaseStore {
});
}
- arrToJson(arr, rows) {
+ arrToJson(arr, rows, rowKey="isused") {
let json = {};
-
const _rows = isEmpty(arr) ? [] : rows;
-
_rows && _rows.map(index => {
- arr[index].isused = "1";
+ arr[index][rowKey] = "1";
});
arr.map((item, index) => {
- if (!item.isused) item.isused = "0";
+ if (!item[rowKey]) item[rowKey] = "0";
for (let key in item) {
json[key + "_" + index] = item[key];
}