From c52d10323addd7a9a9325781a8b1f25b4713be23 Mon Sep 17 00:00:00 2001
From: Chengliang <1546584672@qq.com>
Date: Mon, 27 Jun 2022 18:48:28 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=AF=BC=E5=85=A5=E6=A8=A1?=
=?UTF-8?q?=E5=9D=97=E6=96=B0=E5=A2=9E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pc4mobx/organization/apis/datasImport.js | 17 +
pc4mobx/organization/apis/job.js | 16 +-
.../components/import/datasImport.js | 341 ++++++++++++++++++
pc4mobx/organization/components/job/Job.js | 33 +-
.../components/resource/resource.js | 17 +-
pc4mobx/organization/public/i18n.js | 1 +
pc4mobx/organization/stores/datasImport.js | 255 +++++++++++++
pc4mobx/organization/stores/fieldDefined.js | 8 +-
pc4mobx/organization/stores/index.js | 4 +-
pc4mobx/organization/stores/job.js | 54 ++-
pc4mobx/organization/util/index.js | 17 +
11 files changed, 740 insertions(+), 23 deletions(-)
create mode 100644 pc4mobx/organization/apis/datasImport.js
create mode 100644 pc4mobx/organization/components/import/datasImport.js
create mode 100644 pc4mobx/organization/stores/datasImport.js
diff --git a/pc4mobx/organization/apis/datasImport.js b/pc4mobx/organization/apis/datasImport.js
new file mode 100644
index 0000000..5201064
--- /dev/null
+++ b/pc4mobx/organization/apis/datasImport.js
@@ -0,0 +1,17 @@
+import { WeaTools } from 'ecCom'
+//获取导入表单
+export const getImportForm = (params) => {
+ return WeaTools.callApi(`/api/hrm/import/resource/getImportForm`, 'GET', params);
+}
+//导入文件提交
+export const saveImport = (params) => {
+ return WeaTools.callApi(`/api/hrm/import/resource/saveImport`, 'POST', params);
+}
+//获取导入结果回调数据
+export const getImportProcessLog = (params) => {
+ return WeaTools.callApi(`/api/hrm/importlog/getImportProcessLog`, 'GET', params);
+}
+//获取导入结果
+export const getImportResult = (params) => {
+ return WeaTools.callApi(`/api/hrm/importlog/getImportResult`, 'GET', params);
+}
diff --git a/pc4mobx/organization/apis/job.js b/pc4mobx/organization/apis/job.js
index 6f44f6a..d3fc1ec 100644
--- a/pc4mobx/organization/apis/job.js
+++ b/pc4mobx/organization/apis/job.js
@@ -83,7 +83,21 @@ export const getJobExtendForm = (params) => {
return WeaTools.callApi('/api/bs/hrmorganization/job/getJobBaseForm', 'GET', params);
}
-
export const getHasRight = (params) => {
return WeaTools.callApi('/api/bs/hrmorganization/job/getHasRight', 'GET', params);
+}
+
+export const getMergeForm = (params = {}) => {
+ return WeaTools.callApi('/api/bs/hrmorganization/job/getMergeForm', 'GET', params);
+}
+
+export const merge = (params) => {
+ return fetch('/api/bs/hrmorganization/job/mergeJob', {
+ method: 'POST',
+ mode: 'cors',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify(params)
+ })
}
\ No newline at end of file
diff --git a/pc4mobx/organization/components/import/datasImport.js b/pc4mobx/organization/components/import/datasImport.js
new file mode 100644
index 0000000..74de4cf
--- /dev/null
+++ b/pc4mobx/organization/components/import/datasImport.js
@@ -0,0 +1,341 @@
+import {
+ inject,
+ observer
+} from 'mobx-react';
+import {
+ WeaUpload,
+ WeaDialog,
+ WeaFormItem,
+ WeaSearchGroup,
+ WeaNewScroll,
+ WeaSelect,
+ WeaInput,
+ WeaAlertPage,
+ WeaLocaleProvider
+} from 'ecCom'
+
+import {
+ Row,
+ Col,
+ Button,
+ Spin
+} from 'antd'
+
+import {
+ WeaSwitch
+} from 'comsMobx'
+import React from 'react'
+import {
+ i18n
+} from '../../public/i18n';
+import { addContentPath, renderNoright } from '../../util/index.js'
+import '../../style/common.less'
+const getLabel = WeaLocaleProvider.getLabel;
+
+@inject('datasImport')
+@observer
+export default class DatasImport extends React.Component {
+ constructor(props) {
+ super(props);
+ }
+
+ componentDidMount() {
+ const {
+ datasImport
+ } = this.props;
+ datasImport.list = [];
+ }
+
+ getCircle() {
+ let style = {
+ width: 20,
+ height: 20,
+ backgroundColor: '#D8D8D8',
+ webkitBorderRadius: 10,
+ mozBorderRadius: 10,
+ msBorderRadius: 10,
+ oBorderRadius: 10,
+ borderRadius: 10,
+ //paddingLeft: 6,
+ textAlign: 'center',
+ }
+ return style;
+ }
+
+ getForm() {
+ const {
+ datasImport
+ } = this.props;
+ const {
+ condition
+ } = datasImport;
+ let _arr = [];
+
+ condition.map((c, i) => {
+ let arr = [];
+ if (i == 0) { //基本信息
+ c.items.map((field, index) => {
+ arr.push({
+ com: (
+
+
+
+
+
+
+
+
+ {field.label}:
+
+ {this.getDom(field)}
+
+
+
+
+
+
+ ),
+ colSpan: 1,
+ })
+ })
+ }
+ if (i == 1) { //导入说明
+ c.items.map((field, index) => {
+ arr.push({
+ com: (
+
+
+
+
+
+
+ {this.getIllustration(field.value, field.link, index, field)}
+
+
+
+ ),
+ colSpan: 1
+ })
+ })
+ }
+ _arr.push(
)
+
+ });
+ return _arr;
+ }
+
+ getDom(field) {
+ const {
+ datasImport
+ } = this.props;
+ const {
+ templetName,
+ filelist,
+ getTemplateUrl,
+ importParams
+ } = datasImport;
+ let dom;
+ let domkey = field.domkey;
+ if (domkey[0] == 'templet') {
+ dom = {i18n.label.importTemplate()};
+ } else if (domkey[0] === 'exportData') {
+ const href = datasImport.operateType === 'add' ? field.otherParams.fileVal[0].add : field.otherParams.fileVal[0].update;
+ if (datasImport.importType === 'matrix') {
+ dom = { getTemplateUrl(datasImport.otherParams.matrixid, datasImport.operateType, importParams) }}>{i18n.label.importTemplate()}
+ } else
+ dom = {i18n.label.importTemplate()};
+ } else if (domkey[0] == 'excelfile' || domkey[0] == 'importfile') {
+ dom = (
+
+ {
+ this.setFileId(ids, list)
+ }
+ } >
+
+
+
+
+ {filelist.length == 0 ?
{i18n.label.noFileSelected()}
: filelist.map(file =>
{file.filename}
)}
+
+
)
+ } else if (domkey[0].indexOf('keyField') > -1) {
+ const vals = field.options.filter(v => v.selected == true);
+ let val = '';
+ vals.length > 0 && (val = vals[0].key);
+ dom = { datasImport.setParam(domkey[0], v) }}
+ />
+ } else if (domkey[0] == 'importType') {
+ dom = { datasImport.operateType = v }}
+ />
+ } else {
+ dom =
+ }
+ return dom;
+ }
+
+ getIllustration(val, url, index, link) {
+ const {
+ datasImport
+ } = this.props;
+ const {
+ templetName,
+ getTemplateUrl,
+ importParams
+ } = datasImport;
+ let p;
+ if (index == 0) {
+ if (url instanceof Object) {
+ const href = datasImport.operateType === 'add' ? url.add : url.update;
+ let dom;
+ if (datasImport.importType === 'matrix') {
+ dom = { getTemplateUrl(datasImport.otherParams.matrixid, datasImport.operateType, importParams) }}>{i18n.label.importTemplate()}
+ } else
+ dom = {i18n.label.importTemplate()};
+ p = ({i18n.label.downLoadTemplete()}:{dom}
);
+ } else if (url != null) {
+ if (datasImport.importType === 'matrix') {
+ p = ({i18n.label.downLoadTemplete()}: { getTemplateUrl(datasImport.otherParams.matrixid, datasImport.operateType) }}>{i18n.label.importTemplate()}
);
+ } else
+ p = ({i18n.label.downLoadTemplete()}:{i18n.label.importTemplate()}
);
+ } else {
+ p = ();
+ }
+ } else {
+ p = ();
+ }
+ return p;
+ }
+
+ setFileId(ids, list) {
+ const {
+ datasImport
+ } = this.props;
+ datasImport.excelfile = ids;
+ datasImport.filelist = list;
+ }
+
+ onUploading(s) {
+ const {
+ datasImport
+ } = this.props;
+ datasImport.status = s;
+ }
+
+ submit() {
+ const {
+ datasImport
+ } = this.props;
+ datasImport.saveImport({}, () => {
+ this.refs.scroll && this.refs.scroll.scrollToLast()
+ });
+ }
+
+ cancel() {
+ const {
+ datasImport,
+ onClose
+ } = this.props;
+ datasImport.visible = false
+ datasImport.init();
+ onClose && onClose();
+ }
+
+ importHistoryQuery() {
+ const {
+ datasImport
+ } = this.props;
+ datasImport.visibleHistory = true;
+ datasImport.getImportHistory();
+ }
+
+ render() {
+ debugger
+ const {
+ datasImport,
+ mainTitle,
+ importLog,
+ viewLog,
+ viewLogTitle,
+ } = this.props;
+ const {
+ title,
+ visible,
+ titleResult,
+ visibleResult,
+ importResultColumns,
+ importProcessLogDatas,
+ failnum,
+ succnum,
+ importResultTip,
+ importResultStore,
+ importStatus,
+ errorInfo,
+ setScrollRef,
+ single,
+ showLoadingSpin,
+ condition
+ } = datasImport;
+ const buttons = condition.length ? [
+ (),
+ ] : [];
+
+ let dialogHeight = window.innerHeight - 150;
+ if (dialogHeight > 560) dialogHeight = 560;
+
+ return (
+
+ {
+
this.cancel()}
+ buttons={buttons}
+ style={{ width: 870, height: dialogHeight }}
+ moreBtn={{
+ datas: condition ? [{
+ key: '1',
+ content: i18n.button.submit(),
+ icon: ,
+ onClick: () => this.submit(),
+ }] : []
+ }}
+ >
+ {condition.length ? (
+
+
+ {this.getForm()}
+
+
+ ) :
+ }
+
+ }
+
+
+ )
+ }
+}
+
diff --git a/pc4mobx/organization/components/job/Job.js b/pc4mobx/organization/components/job/Job.js
index 002be5e..01671ac 100644
--- a/pc4mobx/organization/components/job/Job.js
+++ b/pc4mobx/organization/components/job/Job.js
@@ -1,7 +1,7 @@
/**
* @Author: 程亮
* @Date: 2022-05-26 14:05:59
- * @LastEditTime: 2022-06-24 14:36:50
+ * @LastEditTime: 2022-06-27 11:23:42
* @Description:
* @FilePath: /trunk/src4js/pc4mobx/organization/components/job/Job.js
*/
@@ -79,9 +79,7 @@ export default class Job extends React.Component {
const {
job
} = this.props;
- job.getTableInfo();
- job.getHasRight();
- job.getCopyForm()
+ job.initData();
}
getTopMenuBtns() {
@@ -144,7 +142,21 @@ export default class Job extends React.Component {
}
merge(id) {
- alert("后续更新")
+ const {
+ job
+ } = this.props;
+ confirm({
+ title: i18n.confirm.defaultTitle(),
+ content: this.getCopyForm({isCopy:false}),
+ okText: i18n.button.ok(),
+ cancelText: i18n.button.cancel(),
+ onOk() {
+ job.merge(id)
+ },
+ onCancel() {
+ return false;
+ },
+ });
}
@@ -159,7 +171,7 @@ export default class Job extends React.Component {
job.setIds(keys);
confirm({
title: i18n.confirm.defaultTitle(),
- content: this.getCopyForm(),
+ content: this.getCopyForm({isCopy:true}),
okText: i18n.button.ok(),
cancelText: i18n.button.cancel(),
onOk() {
@@ -171,20 +183,23 @@ export default class Job extends React.Component {
});
}
- getCopyForm() {
+ getCopyForm(params) {
const {
job
} = this.props;
const {
copyCondition,
+ mergeCondition,
form2,
} = job;
+ params.isCopy ? form2.initFormFields(copyCondition) : form2.initFormFields(mergeCondition);
let formParams = form2.getFormParams();
+ let condition = params.isCopy ? copyCondition : mergeCondition;
const {
- isFormInit
+ isFormInit
} = form2;
let arr = [];
- isFormInit && copyCondition.map(c => {
+ isFormInit && condition.map(c => {
c.items.map((field, index) => {
arr.push(
this.handleMenuClick(key)}
>
}
iconBgcolor='#217346'
loading={true}
@@ -453,6 +465,7 @@ export default class Resource extends React.Component {
onCancel={() => resource.setVisible(false)}
saveAndSetting = {() => this.handleSaveAndSetting()}
/>
+
)
}
diff --git a/pc4mobx/organization/public/i18n.js b/pc4mobx/organization/public/i18n.js
index 0c0d344..53a0ac5 100644
--- a/pc4mobx/organization/public/i18n.js
+++ b/pc4mobx/organization/public/i18n.js
@@ -156,6 +156,7 @@ export const i18n = {
typeName: () => getLabel(129927, '类型名称'),
ResourceName: () => getLabel(385936, '人员'),
newPeople: () => getLabel(386246, '新建人员'),
+ resourceMange: () => getLabel(386246, '人员管理'),
authorizationGroup: () => getLabel(492, '权限组'),
diff --git a/pc4mobx/organization/stores/datasImport.js b/pc4mobx/organization/stores/datasImport.js
new file mode 100644
index 0000000..c856575
--- /dev/null
+++ b/pc4mobx/organization/stores/datasImport.js
@@ -0,0 +1,255 @@
+import {
+ observable,
+ action
+ } from 'mobx';
+ import {
+ WeaForm
+ } from 'comsMobx';
+ import * as API from '../apis/datasImport';
+ import * as Util from '../util/index';
+ import {
+ validate,
+ getFormParamValue
+ } from '../util'
+ import {
+ message,
+ Modal,
+ Button
+ } from 'antd';
+ import {
+ WeaTableNew
+ } from 'comsMobx'
+ import * as mobx from 'mobx';
+ import isEmpty from 'lodash/isEmpty';
+ import {
+ has
+ } from 'lodash';
+ const toJS = mobx.toJS;
+ const {
+ TableStore
+ } = WeaTableNew;
+ const confirm = Modal.confirm;
+ import {
+ i18n
+ } from '../public/i18n';
+
+
+ export class DatasImportStore {
+ @observable title = "人员导入";
+ @observable templetName = "导入模板";
+ titleResult = i18n.label.importResult;
+ titleHistory = i18n.button.importHistoryQuery;
+ titleImportLog = i18n.button.getImportLog;
+ importResultColumns = [];
+ index = 1;
+ @observable scrollTarget;
+ @observable visible = false;
+ @observable visibleResult = false;
+ @observable visibleHistory = false;
+ @observable visibleImportLog = false;
+ @observable condition = [];
+ @observable single = true;
+ @observable keyField = 'workcode';
+ @observable importType = '';
+ @observable operateType = 'add';
+ @observable filelist = [];
+ @observable excelfile = '';
+ @observable searchCondition = [];
+ @observable form = new WeaForm();
+ @observable showSearchAd = false;
+ @observable searchParamsAd = {};
+ @observable importResultStore = new TableStore();
+ @observable importHistoryStore = new TableStore();
+ @observable importLogStore = new TableStore();
+ @observable buttons = [];
+ @observable importProcessLogDatas = [];
+ @observable succnum = 0;
+ @observable failnum = 0;
+ @observable importResultTip = '';
+ @observable importStatus = '';
+ @observable pId = '';
+ @observable ref;
+ @observable errorInfo = '';
+ @observable dialogKey = new Date().getTime();
+ @observable otherParams;
+ @observable showLoadingSpin = false;
+ interval;
+ importCallback;
+ getTemplateUrl;
+ @observable importParams = {};
+
+ importResultColumns = [{
+ "title": i18n.label.confirmInfo(),
+ "width": "100%",
+ "dataIndex": "message",
+ render: (text, record, index) => {
+ return {text}
+ }
+ }];
+
+ @action
+ init() {
+ this.condition = [];
+ this.keyField = 'workcode';
+ this.importType = '';
+ this.operateType = 'add';
+ this.filelist = [];
+ this.excelfile = '';
+ this.searchCondition = [];
+ this.buttons = [];
+ this.importProcessLogDatas = [];
+ this.succnum = 0;
+ this.failnum = 0;
+ this.importResultTip = '';
+ this.importStatus = '';
+ this.pId = '';
+ this.errorInfo = '';
+ this.importParams = {};
+ }
+
+ @action setParam = (k, v) => {
+ const p = toJS(this.importParams);
+ Object.assign(p, {
+ [k]: v
+ });
+ this.importParams = p;
+ }
+
+ getImportForm(params = {}) {
+ this.showLoadingSpin = true;
+ params.importType = this.importType;
+ this.otherParams != null && Object.assign(params, {
+ otherParams: JSON.stringify({ ...this.otherParams,
+ type: this.operateType
+ })
+ })
+ API.getImportForm(params).then(data => {
+ if (data.status == '1') {
+ this.condition = data.condition;
+ if (data.condition != null && Array.isArray(data.condition) && data.condition.length > 0) {
+ this.condition[0].items.map(item => {
+ if (item.conditionType === 'SELECT' && item.domkey[0] === 'importType') {
+ item.options.map(op => {
+ if (op.selected)
+ this.operateType = op.key;
+ })
+ }
+ item.domkey[0].indexOf('keyField') > -1 && this.setParam(item.domkey[0], item.value);
+ })
+ }
+ } else {
+ // message.warning(data.message);
+ }
+
+ this.showLoadingSpin = false;
+ }, error => {
+ message.warning(error.message);
+ this.showLoadingSpin = false;
+ })
+ }
+
+ saveImport = (params = {}) => {
+ params.keyField = this.keyField;
+ params.importType = this.importType;
+ params.operateType = this.operateType;
+ params.excelfile = this.excelfile || '';
+ if (params.excelfile == '') {
+ message.warning(i18n.message.selectImportTemplete());
+ return;
+ }
+ if (this.otherParams != null) {
+ Object.assign(params, {
+ otherParams: JSON.stringify(this.otherParams)
+ })
+ has(this.otherParams, 'logSmallType') && Object.assign(params, {
+ logSmallType: this.otherParams.logSmallType
+ })
+ }
+
+ this.importResultColumns = [{
+ "title": i18n.label.confirmInfo(),
+ "width": "100%",
+ "dataIndex": "message",
+ render: (text, record, index) => {
+ return {text}
+ }
+ }];
+ this.index = 1;
+ this.importStatus = '';
+ this.importProcessLogDatas = [];
+ this.importStatus = 'importing';
+ this.doImport({...params, ...this.importParams, confirm: 0});
+ this.dialogKey = new Date().getTime();
+ this.visibleResult = true;
+ }
+
+ @action doImport = params => {
+ API.saveImport(params).then(data => {
+ if (data.status == '1') {
+ if(data.message != null && data.message.trim().length > 0 && params.importType == 'matrix'){
+ confirm({
+ title: i18n.confirm.defaultTitle(),
+ content: data.message,
+ okText: i18n.button.ok(),
+ cancelText: i18n.button.cancel(),
+ onOk: () => {
+ this.doImport({...params, confirm: 1})
+ }
+ });
+ }else if (!isEmpty(data.errorInfo)) {
+ this.importStatus = 'error';
+ this.importResultTip = i18n.message.selectImportTempleteError();
+ this.importResultColumns = [{
+ "title": i18n.label.confirmInfo(),
+ "width": "100%",
+ "dataIndex": "message",
+ render: (text, record, index) => {
+ return {text}
+ }
+ }];
+ this.importProcessLogDatas = data.errorInfo;
+ }else{
+ this.importCallback && this.importCallback();
+ }
+ }else {
+ this.importStatus = 'error';
+ message.warning(data.message);
+ }
+ })
+ }
+
+ setScrollTarget(scroll) {
+ this.scrollTarget = scroll;
+ }
+
+ getImportResult(params = {}) {
+ this.importStatus = 'over';
+ if (params.pId) {
+ this.pId = params.pId;
+ }
+ API.getImportResult(params).then((data) => {
+ if (data.status == '1') {
+ this.failnum = data.datas.failnum;
+ this.succnum = data.datas.succnum;
+ if (this.failnum > 0) {
+ let info = i18n.label.importResourceResultInfo();
+ info = info.replace('{rownum}', this.succnum + this.failnum).replace('{succnum}', this.succnum);
+ this.importResultTip = info;
+ this.importResultStore.getDatas(data.datas.sessionkey, 1);
+ } else {
+ let info = i18n.label.importResourceResultInfo1();
+ info = info.replace('{rownum}', this.succnum);
+ this.importResultTip = info;
+ }
+ } else {
+ message.warning(data.message);
+ }
+ }, error => {
+ message.warning(error.message);
+ })
+ }
+
+ doSearch(params = {}) {
+ let formParams = this.form.getFormParams();
+ }
+ }
\ No newline at end of file
diff --git a/pc4mobx/organization/stores/fieldDefined.js b/pc4mobx/organization/stores/fieldDefined.js
index ae8839b..3f22ea6 100644
--- a/pc4mobx/organization/stores/fieldDefined.js
+++ b/pc4mobx/organization/stores/fieldDefined.js
@@ -1,7 +1,7 @@
/**
* @Author: 程亮
* @Date: 2022-06-09 10:16:00
- * @LastEditTime: 2022-06-23 09:58:27
+ * @LastEditTime: 2022-06-27 15:32:03
* @Description:
* @FilePath: /trunk/src4js/pc4mobx/organization/stores/fieldDefined.js
*/
@@ -1405,10 +1405,10 @@ export class FieldDefinedStore extends HrmBaseStore {
if (res.code === 200) {
this.treeConfig.data = res.data;
this.treeConfig.data.map(p => {
- if (p.domid === this.treeConfig.selectedKeys[0])
+ if (p.domid === this.treeConfig.selectedKeys[0]+'')
this.selectedTreeNodeInfo = p;
p.childs && p.childs.map(c => {
- if (c.domid === this.treeConfig.selectedKeys[0])
+ if (c.domid === this.treeConfig.selectedKeys[0]+'')
this.selectedTreeNodeInfo = c;
})
})
@@ -1441,7 +1441,7 @@ export class FieldDefinedStore extends HrmBaseStore {
let defaultType = domid != '1' && domid != '2' && domid != '3' && domid != '4'
- defaultType && t.topButtonDef.push({
+ t.topButtonDef.push({
comType: 'button',
type: 'primary',
onClickHandle: this.doChildInfoSetting,
diff --git a/pc4mobx/organization/stores/index.js b/pc4mobx/organization/stores/index.js
index b1c5c1d..7db733f 100644
--- a/pc4mobx/organization/stores/index.js
+++ b/pc4mobx/organization/stores/index.js
@@ -18,6 +18,7 @@ import { NumberSetStore } from "./numberSet";
import {FieldDefinedStore} from "./fieldDefined";
import {ResourceStore} from "./resource";
import {ResourceExtendStore} from "./resourceExtend";
+import {DatasImportStore} from "./datasImport";
module.exports = {
simpleOrgStore: new SimpleOrgStore(),
@@ -39,5 +40,6 @@ module.exports = {
numberSet: new NumberSetStore(),
fieldDefined: new FieldDefinedStore(),
resource: new ResourceStore(),
- resourceExtend: new ResourceExtendStore()
+ resourceExtend: new ResourceExtendStore(),
+ datasImport: new DatasImportStore()
};
diff --git a/pc4mobx/organization/stores/job.js b/pc4mobx/organization/stores/job.js
index 7146422..0164c1e 100644
--- a/pc4mobx/organization/stores/job.js
+++ b/pc4mobx/organization/stores/job.js
@@ -18,7 +18,7 @@ import {
i18n
} from '../public/i18n';
import {
- findIndex
+ findIndex
} from 'lodash';
const toJS = mobx.toJS;
@@ -40,10 +40,11 @@ export class JobStore {
@observable searchCondition = [];
@observable condition = [];
@observable copyCondition = [];
+ @observable mergeCondition = [];
@observable isPanelShow = false; //高级搜索面板
@observable form = new WeaForm();
@observable form1 = new WeaForm(); //新增主表表单
- @observable form2 = new WeaForm(); //复制表单
+ @observable form2 = new WeaForm(); //复制表单 合并表单
@observable jobName = '';
@observable conditionNum = 12;
@observable ids = ''; //选择行id
@@ -66,6 +67,13 @@ export class JobStore {
@observable selectTreeNodeInfo;
saveAndSetting = false;
+ @action initData() {
+ this.getTableInfo();
+ this.getHasRight();
+ this.getCopyForm();
+ this.getMergeForm();
+ }
+
@action
getTableInfo() {
this.setLoading(true);
@@ -207,7 +215,19 @@ export class JobStore {
Api.getCopyForm(params).then(res => {
if (res.code === 200) {
res.data && this.setCopyCondition(res.data);
- res.data && this.form2.initFormFields(res.data);
+ } else {
+ message.warning(res.msg);
+ }
+ }, error => {
+ message.warning(error.msg);
+ })
+ }
+
+ @action("合并表单")
+ getMergeForm() {
+ Api.getMergeForm().then(res => {
+ if (res.code === 200) {
+ res.data && this.setMergeCondition(res.data);
} else {
message.warning(res.msg);
}
@@ -262,7 +282,25 @@ export class JobStore {
}).catch(error => {
message.warning(error.msg);
})
+ }
+ merge(id) {
+ let params = {
+ id: id,
+ ...this.form2.getFormParams()
+ };
+ Api.merge(params).then(response => {
+ return response.json()
+ }).then(data => {
+ if (data.code === 200) {
+ message.success(data.msg);
+ this.getTableInfo();
+ } else {
+ message.error(data.msg);
+ }
+ }).catch(error => {
+ message.warning(error.msg);
+ })
}
updateConditions(data) {
@@ -271,9 +309,9 @@ export class JobStore {
value: '',
},
});
- const label = "等级方案"
- let index = findIndex(this.condition[0].items,{label});
- this.condition[0].items[index].browserConditionParam.replaceDatas = [];
+ // const label = "等级方案"
+ // const index = findIndex(this.condition[0].items, { label });
+ // this.condition[0].items[index].browserConditionParam.replaceDatas = [{ name: data.sequence_id.valueObj[0].scheme_ids, id: "18" }];
}
@@ -440,4 +478,8 @@ export class JobStore {
this.saveAndSetting = bool;
}
+ setMergeCondition(mergeCondition) {
+ this.mergeCondition = mergeCondition;
+ }
+
}
\ No newline at end of file
diff --git a/pc4mobx/organization/util/index.js b/pc4mobx/organization/util/index.js
index b6482dd..ea6320b 100644
--- a/pc4mobx/organization/util/index.js
+++ b/pc4mobx/organization/util/index.js
@@ -102,6 +102,23 @@ export const isEmpty = (obj) =>{
return true;
}
+/**
+ * 添加多级路径
+ *
+ * @param {*} url
+ */
+ export const addContentPath = (url) => {
+ const ecologyContentPath = window.ecologyContentPath || '';
+ if (url && ecologyContentPath) {
+ //避免重复添加ecologyContentPath
+ //避免传入的参数不是链接
+ if (url.startsWith('/') && !url.startsWith(ecologyContentPath)) {
+ url = ecologyContentPath + url;
+ }
+ }
+ return url;
+};
+
export const calFormHeight = (groupLength, children) => {
let childrenLength = 0;