From d98f86be176f09f935e9f2c4bee0099ed558765e Mon Sep 17 00:00:00 2001
From: Chengliang <1546584672@qq.com>
Date: Fri, 6 Jan 2023 18:01:46 +0800
Subject: [PATCH] =?UTF-8?q?=E8=8A=B1=E5=90=8D=E5=86=8C=E5=BC=80=E5=8F=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/resource/Customization.js | 43 ++++
.../components/resource/PersonnelResume.js | 4 +-
.../components/resource/SearchCustomDialog.js | 15 +-
.../components/resource/resource.js | 63 +++---
pc4mobx/organization/stores/resource.js | 199 +++++++++++++++++-
pc4mobx/organization/style/common.less | 15 ++
6 files changed, 287 insertions(+), 52 deletions(-)
create mode 100644 pc4mobx/organization/components/resource/Customization.js
diff --git a/pc4mobx/organization/components/resource/Customization.js b/pc4mobx/organization/components/resource/Customization.js
new file mode 100644
index 0000000..51c3b21
--- /dev/null
+++ b/pc4mobx/organization/components/resource/Customization.js
@@ -0,0 +1,43 @@
+import {
+ observer
+} from 'mobx-react';
+import {
+ WeaTransfer,
+} from 'ecCom';
+import {
+ toJS
+} from 'mobx';
+import isEmpty from 'lodash/isEmpty'
+
+@observer
+export default class Customization extends React.Component {
+ constructor(props) {
+ super(props);
+ }
+
+ render() {
+ const {
+ store
+ } = this.props, {
+ TRANSFER,
+ transfer,
+ leftHeader,
+ rightHeader,
+ } = store, {
+ transferDatas,
+ transferKeys
+ } = transfer;
+
+ return (
+
+
+
+ );
+ }
+}
\ No newline at end of file
diff --git a/pc4mobx/organization/components/resource/PersonnelResume.js b/pc4mobx/organization/components/resource/PersonnelResume.js
index 63f8db2..31a1d9c 100644
--- a/pc4mobx/organization/components/resource/PersonnelResume.js
+++ b/pc4mobx/organization/components/resource/PersonnelResume.js
@@ -270,7 +270,7 @@ export default class PersonnelResume extends React.Component {
}
//合并导出
- MergeExport() {
+ mergeExport() {
const {
personnelResume
} = this.props;
@@ -278,7 +278,7 @@ export default class PersonnelResume extends React.Component {
}
//全部导出
- AllExport() {
+ allExport() {
const {
personnelResume
} = this.props;
diff --git a/pc4mobx/organization/components/resource/SearchCustomDialog.js b/pc4mobx/organization/components/resource/SearchCustomDialog.js
index ff83614..cd8b39b 100644
--- a/pc4mobx/organization/components/resource/SearchCustomDialog.js
+++ b/pc4mobx/organization/components/resource/SearchCustomDialog.js
@@ -4,6 +4,7 @@ import {
import {
WeaDialog,
} from 'ecCom';
+import Customization from './Customization';
@observer
export default class SearchCustomDialog extends React.Component {
@@ -13,15 +14,19 @@ export default class SearchCustomDialog extends React.Component {
render() {
const {
- DIALOG,
- dialog
- } = this.props
+ store
+ } = this.props, {
+ SEARCHDIALOG,
+ searchDialog
+ } = store;
return (
+
);
}
diff --git a/pc4mobx/organization/components/resource/resource.js b/pc4mobx/organization/components/resource/resource.js
index f7de10c..aa7427d 100644
--- a/pc4mobx/organization/components/resource/resource.js
+++ b/pc4mobx/organization/components/resource/resource.js
@@ -12,7 +12,8 @@ import {
WeaLeftRightLayout,
WeaOrgTree,
WeaDropdown,
- WeaSelect
+ WeaSelect,
+ WeaSearchGroup
} from 'ecCom'
import {
Row,
@@ -289,7 +290,7 @@ export default class Resource extends React.Component {
const btn = [
(),
- (),
+ (),
(),
(),
(),
@@ -387,9 +388,10 @@ export default class Resource extends React.Component {
resource
} = this.props;
const {
- searchCondition,
+ defaultCondition,
form2,
- searchConditionLoading
+ searchConditionLoading,
+ templates
} = resource;
let arr = [];
@@ -398,47 +400,39 @@ export default class Resource extends React.Component {
isFormInit
} = form2;
- const options002 = [
- {
- key: "1",
- selected: true,
- showname: "简单模板"
- },
- {
- key: "2",
- selected: false,
- showname: "复杂模板"
- }
- ];
+
arr.push(
- 选择过滤模板
+ 选择过滤模板
{
}}
/>
-
-
)
+
+ )
- isFormInit && searchCondition.map(c => {
+ isFormInit && defaultCondition.map((c, i) => {
+ let _arr = [];
c.items.map((field, index) => {
- arr.push(
-
+ _arr.push({
+ com: (
{}
-
- )
+ ),
+ })
})
+ arr.push()
})
+
if (searchConditionLoading) {
return (
@@ -446,12 +440,12 @@ export default class Resource extends React.Component {
)
} else {
- return {
+ return {
if (e.keyCode == 13 && e.target.tagName === "INPUT") {
- resource.getTableInfo();
- resource.setPanelStatus(false)
+ rankScheme.getTableInfo();
+ rankScheme.setPanelStatus(false)
}
- }}>{arr}
+ }}>{arr}
}
}
@@ -467,11 +461,12 @@ export default class Resource extends React.Component {
render() {
const {
- resource
+ resource,
+ resource: store
} = this.props;
const {
isPanelShow, form2, lastName, conditionNum, tableStore, nEdialogTitle, visible, condition,
- form, dialogLoading, isEdit, date, hasRight, defaultShowLeft,SEARCHDIALOG,searchDialog
+ form, dialogLoading, isEdit, date, hasRight, defaultShowLeft
} = resource;
if (hasRight === false) {
@@ -534,9 +529,7 @@ export default class Resource extends React.Component {
/>
+ store={store} />
)
}
diff --git a/pc4mobx/organization/stores/resource.js b/pc4mobx/organization/stores/resource.js
index de8cb09..8041274 100644
--- a/pc4mobx/organization/stores/resource.js
+++ b/pc4mobx/organization/stores/resource.js
@@ -1,24 +1,30 @@
import {
observable,
- action
+ action,
+ computed
} from 'mobx';
import * as mobx from 'mobx';
import * as Api from '../apis/resource'; // 引入API接口文件
import {
- WeaForm
-} from 'comsMobx';
-import {
- WeaTableNew
+ WeaForm,WeaTableNew
} from 'comsMobx';
import {
Modal,
message,
Button
} from 'antd'
+import {
+ WeaSelect,
+ WeaInputSearch,
+ WeaLocaleProvider,
+} from 'ecCom';
import {
i18n
} from '../public/i18n';
+import trim from 'lodash/trim';
import {getSecondPath} from '../util/index'
+import cloneDeep from 'lodash/cloneDeep';
+
const toJS = mobx.toJS;
const {
@@ -32,6 +38,8 @@ const {
@observable rightMenu = [];
@observable condition = [];
@observable searchCondition = [];
+ @observable defaultCondition = [];
+ @observable templates=[];
@observable isEdit = true;
@observable isNew = true;
@observable isPanelShow = false; //高级搜索面板
@@ -131,12 +139,17 @@ const {
}
@action("高级搜索表单") getSearchCondition() {
- this.setScLoadingStatus(false);
- Api.getAdvanceSearchCondition().then(res => {
+ this.setScLoadingStatus(true);
+ const params = {
+ selectKeys:this.transfer.transferKeys
+ }
+ Api.getAdvanceSearchCondition(params).then(res => {
if (res.code === 200) {
this.setScLoadingStatus(false);
res.data.conditions && this.setSearchCondition(res.data.conditions);
- res.data.conditions && this.form2.initFormFields(res.data.conditions);
+ res.data.defaultcondition && this.setDefaultCondition(res.data.defaultcondition);
+ res.data.defaultcondition && this.form2.initFormFields(res.data.defaultcondition);
+ res.data.templates && this.setTemplates(res.data.templates);
} else {
message.warning(res.msg);
}
@@ -181,7 +194,7 @@ const {
}
- /** ================================================================= */
+ /** ====================================================================================== */
@observable searchDialog = {
visible: false,
title: '常用条件定制',
@@ -202,14 +215,172 @@ const {
buttons: [],
}
- @action("常用条件定制保存") saveHrmSearchUserDefine = () => {
+ TRANSFER = {
+ height: 350,
+ renderItem: (items) => this.renderItem(items),
+ filterLeft: (items) => this.filterLeft(items),
+ filterRight: (items) => this.filterRight(items),
+ onChange: (v) => this.updateTransferKeys(v)
+ }
+
+ @observable transfer = {
+ transferDatas: [],
+ transferKeys: [],
+ transferOptions: [],
+ transferSelectedKey: '0',
+ transferleftIptVal: '',
+ transferRightIptVal: ''
+ }
+
+ @action("常用条件定制保存") saveHrmSearchUserDefine = () => {
+ this.closeSearchDialog();
+ this.getSearchCondition();
}
+ @action("常用条件定制") formatTransfer = () => {
+ const transferDatas = []
+ const transferKeys = []
+ const transferOptions = [{
+ key: "",
+ showname: ""
+ }]
+ this.transfer.transferSelectedKey = '0';
+ this.transfer.transferleftIptVal = '';
+ this.transfer.transferRightIptVal = '';
+ this.searchCondition.forEach((c, idx) => {
+ transferOptions.push({
+ key: `${idx}`,
+ showname: c.title,
+ })
+ c.items.forEach((i) => {
+ transferDatas.push({
+ id: i.domkey[0],
+ label: i.label,
+ title: c.title,
+ idx: `${idx}`
+ })
+ })
+ })
+ this.defaultCondition.forEach((c, idx) => {
+ c.items.forEach((i) => {
+ transferKeys.push(i.domkey[0]);
+ })
+ })
+ this.transfer.transferDatas = transferDatas;
+ this.transfer.transferKeys = transferKeys;
+ this.transfer.transferOptions = transferOptions;
+ }
+
+ inputSearchStyle = {
+ width:"105px",
+ float:"right",
+ marginTop:"5px",
+ marginLeft:"10px"
+ }
+ selectStyle={
+ marginTop:"-1px",
+ width:"85px",
+ float:"right"
+ }
+ @computed get leftHeader() {
+ const {
+ transferleftIptVal,
+ transferOptions,
+ transferSelectedKey
+ } = this.transfer;
+ return (
+
+ 待选
+
+
+
+ )
+ }
+
+ @computed get rightHeader() {
+ const {
+ transferRightIptVal
+ } = this.transfer;
+ return (
+
+ 已选
+
+
+ )
+ }
+ renderItem = (item) => {
+ const {
+ label,
+ title
+ } = item;
+ return ()
+ };
+
+ filterLeft = (items) => {
+ let leftItems = cloneDeep(items);
+ const {
+ transferleftIptVal,
+ transferSelectedKey
+ } = this.transfer;
+ if (transferSelectedKey) {
+ leftItems = leftItems.filter((item) => item.idx == transferSelectedKey)
+ }
+ if (trim(transferleftIptVal)) {
+ leftItems = leftItems.filter((item) => item.label.indexOf(trim(transferleftIptVal)) > -1)
+ }
+ return leftItems
+ }
+
+ filterRight = (items) => {
+ let rightItems = cloneDeep(items);
+ const {
+ transferRightIptVal
+ } = this.transfer;
+ if (trim(transferRightIptVal)) {
+ rightItems = rightItems.filter((item) => item.label.indexOf(trim(transferRightIptVal)) > -1)
+ }
+ return rightItems
+ }
+
+ @action("穿梭框变化回调") updateTransferKeys = (v) => {
+ this.transfer.transferKeys = v;
+ }
+
+ @action updateTransferleftIptVal = (v) => {
+ this.transfer.transferleftIptVal = v;
+ }
+
+ @action updateTransferSelectedKey = (v) => {
+ this.transfer.transferSelectedKey = v;
+ }
+
+ @action updateTransferRightptVal = (v) => {
+ this.transfer.transferRightIptVal = v;
+ }
+
@action openSearchDialog = () => {
this.searchDialog.visible = true;
+ this.formatTransfer();
+
}
@action closeSearchDialog = () => {
@@ -231,6 +402,14 @@ const {
this.searchCondition = condition;
}
+ setDefaultCondition(defaultcondition) {
+ this.defaultCondition = defaultcondition;
+ }
+
+ setTemplates(templates) {
+ this.templates = templates;
+ }
+
setScLoadingStatus(bool) {
this.searchConditionLoading = bool;
}
diff --git a/pc4mobx/organization/style/common.less b/pc4mobx/organization/style/common.less
index 0b7049a..84aa123 100644
--- a/pc4mobx/organization/style/common.less
+++ b/pc4mobx/organization/style/common.less
@@ -95,3 +95,18 @@
text-overflow: ellipsis;
white-space: nowrap;overflow: hidden;
}
+
+ //列定制
+ // .trasfer-header{
+ // .wea-input-focus {
+ // width: 105px;
+ // float: right;
+ // margin-top: 5px;
+ // margin-left: 10px;
+ // }
+ // .wea-select{
+ // margin-top: -1px;
+ // width: 85px;
+ // float: right;
+ // }
+ // }
\ No newline at end of file