diff --git a/pc4mobx/organization/apis/resource.js b/pc4mobx/organization/apis/resource.js index d7d1e33..f4c16ee 100644 --- a/pc4mobx/organization/apis/resource.js +++ b/pc4mobx/organization/apis/resource.js @@ -54,3 +54,64 @@ export const exportResource = (ids) => { window.URL.revokeObjectURL(url); })) } + + +export const saveSearchTemplate = (params) => { + return fetch('/api/bs/hrmorganization/hrmresource/saveSearchTemplate', { + method: 'POST', + mode: 'cors', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(params) + }) +} + +export const saveCustomTemplate = (params) => { + return fetch('/api/bs/hrmorganization/hrmresource/saveCustomTemplate', { + method: 'POST', + mode: 'cors', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(params) + }) +} + + +export const deleteSearchTemplate = (params) => { + return fetch('/api/bs/hrmorganization/hrmresource/deleteSearchTemplate', { + method: 'POST', + mode: 'cors', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(params) + }) +} + +export const getSearchTemplate = (params) => { + return WeaTools.callApi(`/api/bs/hrmorganization/hrmresource/getSearchTemplate`, 'GET',params); +} + +export const getTemplateSelectKeys = (params) => { + return WeaTools.callApi(`/api/bs/hrmorganization/hrmresource/getTemplateSelectKeys`, 'GET',params); +} + +export const updateCustomTemplate = (params) => { + return WeaTools.callApi(`/api/bs/hrmorganization/hrmresource/updateCustomTemplate`, 'POST',params); +} + +export const saveColumnsCustomTemplate = (params) => { + return WeaTools.callApi(`/api/bs/hrmorganization/hrmresource/saveColumnsCustomTemplate`, 'POST',params); +} + +export const getEditTable = () => { + return WeaTools.callApi('/api/bs/hrmorganization/hrmresource/getCustomTemplate', 'GET'); +} + +export const getCustomTransferData = (id) => { + return WeaTools.callApi(`/api/bs/hrmorganization/hrmresource/getCustomTransferData?templateId=${id}`, 'GET'); +} + + diff --git a/pc4mobx/organization/components/NewWeaTableEditDialog.js b/pc4mobx/organization/components/NewWeaTableEditDialog.js new file mode 100644 index 0000000..730ffec --- /dev/null +++ b/pc4mobx/organization/components/NewWeaTableEditDialog.js @@ -0,0 +1,60 @@ +import { + observer +} from 'mobx-react'; +import { + WeaDialog, + WeaTableEdit +} from 'ecCom'; +import { + Spin, + Button, Modal +} from 'antd' + +import * as mobx from "mobx"; +const toJS = mobx.toJS; + +@observer +export default class NewWeaTableEditDialog extends React.Component { + constructor(props) { + super(props); + } + + onRowSelect = (sRowKeys, rows, dataIndex, selectedDatas) => { + const { store } = this.props; + if (dataIndex === undefined || selectedDatas === undefined) { + return; + } + store.setEnableRows(selectedDatas.isused); + }; + + render() { + const { + store, + } = this.props, { + temlateManageDialog, + relatedData + } = store; + const { datas, columns, loading,selectedData } = relatedData; + + return ( + + store.setTableEditDatas(e)} + onRowSelect={(sRowKeys, rows, dataIndex, selectedDatas) => this.onRowSelect(sRowKeys, rows, dataIndex, selectedDatas)} + /> + + ); + } +} \ No newline at end of file diff --git a/pc4mobx/organization/components/resource/Customization.js b/pc4mobx/organization/components/resource/Customization.js index 51c3b21..b0f64ae 100644 --- a/pc4mobx/organization/components/resource/Customization.js +++ b/pc4mobx/organization/components/resource/Customization.js @@ -3,11 +3,16 @@ import { } from 'mobx-react'; import { WeaTransfer, + WeaInputSearch, + WeaSelect } from 'ecCom'; import { toJS } from 'mobx'; import isEmpty from 'lodash/isEmpty' +import { + Spin +} from 'antd' @observer export default class Customization extends React.Component { @@ -15,6 +20,41 @@ export default class Customization extends React.Component { super(props); } + rightHeader = () => { + + + const { + store + } = this.props, { + transfer, + inputSearchStyle, + search, + customTemplates, + templates, + searchTemplateId, + customTemplateId + } = store, { + transferRightIptVal, + } = transfer; + return ( +
+ 已选 + + store.getTemplateSelectKeys(v)} + /> +
+ ) + } + + render() { const { store @@ -23,21 +63,29 @@ export default class Customization extends React.Component { transfer, leftHeader, rightHeader, + searchDialog, + search } = store, { transferDatas, transferKeys } = transfer; - + + return ( -
- -
+
+ { + !searchDialog.loading ? :
+ +
+ } + +
); } } \ No newline at end of file diff --git a/pc4mobx/organization/components/resource/SearchCustomDialog.js b/pc4mobx/organization/components/resource/SearchCustomDialog.js index cd8b39b..eead673 100644 --- a/pc4mobx/organization/components/resource/SearchCustomDialog.js +++ b/pc4mobx/organization/components/resource/SearchCustomDialog.js @@ -3,8 +3,18 @@ import { } from 'mobx-react'; import { WeaDialog, + WeaFormItem, + WeaInput } from 'ecCom'; import Customization from './Customization'; +import { + Spin, + Button,Modal +} from 'antd' +import { + i18n +} from '../../public/i18n'; +const confirm = Modal.confirm; @observer export default class SearchCustomDialog extends React.Component { @@ -12,19 +22,57 @@ export default class SearchCustomDialog extends React.Component { super(props); } + + saveCustomTemplate() { + const { + store + } = this.props, { + customTemplateName + } = store; + + confirm({ + title: "存为模板", + content: + + store.customTemplateName = v} /> + , + okText: i18n.button.save(), + cancelText: i18n.button.cancel(), + onOk() { + store.saveCustomTemplate(); + }, + onCancel() { + return false; + }, + }); + } + render() { const { - store + store, } = this.props, { SEARCHDIALOG, - searchDialog + searchDialog, + search, + searchTemplateName } = store; + const buttons = [ + , + , + + ] + return ( diff --git a/pc4mobx/organization/components/resource/resource.js b/pc4mobx/organization/components/resource/resource.js index aa7427d..93f0d48 100644 --- a/pc4mobx/organization/components/resource/resource.js +++ b/pc4mobx/organization/components/resource/resource.js @@ -7,6 +7,7 @@ import { import { WeaTop, WeaTab, + WeaInput, WeaFormItem, WeaRightMenu, WeaLeftRightLayout, @@ -40,6 +41,7 @@ import NewAndEditDialog from '../NewAndEditDialog'; import { renderNoright } from '../../util'; import DatasImport from '../import/datasImport'; import SearchCustomDialog from './SearchCustomDialog'; +import NewWeaTableEditDialog from '../NewWeaTableEditDialog'; @@ -280,6 +282,43 @@ export default class Resource extends React.Component { this[key] && this[key](); } + //列定制 + customization() { + const { + resource + } = this.props; + + resource.customization(); + } + + //存为模板 + saveTemplate() { + const { + resource + } = this.props, { + searchTemplateName + } = resource; + + confirm({ + title: "存为模板", + content: + + resource.searchTemplateName = v} /> + , + okText: i18n.button.save(), + cancelText: i18n.button.cancel(), + onOk() { + resource.saveTemplate(); + }, + onCancel() { + return false; + }, + }); + } + getTabBtn() { const { resource @@ -290,8 +329,8 @@ export default class Resource extends React.Component { const btn = [ (), - (), - (), + (), + (), (), (), ]; @@ -325,6 +364,7 @@ export default class Resource extends React.Component { reRenderColumns(columns) { let _this = this; columns.forEach((c, index) => { + c.className = "wea-table-indent" if (c.dataIndex == 'lastname') { c.render = function (text, record) { return { @@ -378,10 +418,6 @@ export default class Resource extends React.Component { !isNew && resource.edit(); } - //高级搜索模板修改 - handleTemplateChange() { - - } getPanelComponents() { const { @@ -391,7 +427,8 @@ export default class Resource extends React.Component { defaultCondition, form2, searchConditionLoading, - templates + templates, + searchTemplateId } = resource; let arr = []; @@ -400,19 +437,20 @@ export default class Resource extends React.Component { isFormInit } = form2; - + arr.push( 选择过滤模板 { - + resource.changeSearchTemplate(v) }} /> - + ) isFormInit && defaultCondition.map((c, i) => { @@ -432,7 +470,7 @@ export default class Resource extends React.Component { arr.push() }) - + if (searchConditionLoading) { return (
@@ -440,7 +478,7 @@ export default class Resource extends React.Component {
) } else { - return
{ + return
{ if (e.keyCode == 13 && e.target.tagName === "INPUT") { rankScheme.getTableInfo(); rankScheme.setPanelStatus(false) @@ -472,8 +510,7 @@ export default class Resource extends React.Component { if (hasRight === false) { return renderNoright(); } - - + const width = tableStore.columns.filter(c => c.display === "true").length * 50; return ( hasRight &&
resource.setPanelStatus(bool)} hideSearchAd={() => resource.setPanelStatus(false)} searchsAd={isPanelShow ? this.getPanelComponents() :
} @@ -510,6 +548,7 @@ export default class Resource extends React.Component { needScroll={true} getColumns={c => this.reRenderColumns(c)} onOperatesClick={(record, index, operate) => this.onOperatesClick(record, index, operate)} + tableWidth={width} /> @@ -529,7 +568,9 @@ export default class Resource extends React.Component { /> + store={store}/> +
) } diff --git a/pc4mobx/organization/stores/resource.js b/pc4mobx/organization/stores/resource.js index 8041274..f02e843 100644 --- a/pc4mobx/organization/stores/resource.js +++ b/pc4mobx/organization/stores/resource.js @@ -1,12 +1,13 @@ import { observable, action, - computed + computed, + extendObservable } from 'mobx'; import * as mobx from 'mobx'; import * as Api from '../apis/resource'; // 引入API接口文件 import { - WeaForm,WeaTableNew + WeaForm, WeaTableNew } from 'comsMobx'; import { Modal, @@ -14,32 +15,29 @@ import { Button } from 'antd' import { - WeaSelect, - WeaInputSearch, - WeaLocaleProvider, + 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'; - +import { getSecondPath } from '../util/index' +import {cloneDeep,isEmpty,trim} from 'lodash'; const toJS = mobx.toJS; const { TableStore } = WeaTableNew; - - - export class ResourceStore { + + +export class ResourceStore { @observable tableStore = new TableStore(); @observable topMenu = [] @observable rightMenu = []; @observable condition = []; @observable searchCondition = []; @observable defaultCondition = []; - @observable templates=[]; @observable isEdit = true; @observable isNew = true; @observable isPanelShow = false; //高级搜索面板 @@ -48,7 +46,7 @@ const { @observable lastName = ''; @observable conditionNum = 8; @observable ids = ''; //选择行id - @observable searchConditionLoading = true; + @observable searchConditionLoading = false; @observable nEdialogTitle = ''; @observable visible = false; @observable dialogLoading = true; @@ -60,8 +58,8 @@ const { @observable hasRight = ''; @observable selectTreeNodeInfo; - - + + @action("列表") getTableInfo() { let params; this.tableStore = new TableStore(); @@ -88,8 +86,8 @@ const { } @action("nodetree事件") doSearch(params) { - this.selectTreeNodeInfo = params; - this.getTableInfo(); + this.selectTreeNodeInfo = params; + this.getTableInfo(); } @action("保存") save() { @@ -138,10 +136,14 @@ const { } - @action("高级搜索表单") getSearchCondition() { + @action("高级搜索表单") getSearchCondition(key = true) { this.setScLoadingStatus(true); - const params = { - selectKeys:this.transfer.transferKeys + this.form2 = new WeaForm(); + let params = {}; + key ? params = { + templateId: this.searchTemplateId + } : params = { + selectKeys: this.transfer.transferKeys, } Api.getAdvanceSearchCondition(params).then(res => { if (res.code === 200) { @@ -149,7 +151,6 @@ const { res.data.conditions && this.setSearchCondition(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); } @@ -173,7 +174,7 @@ const { }) } - @action("导出") export(){ + @action("导出") export() { const params = { ...this.form.getFormParams() } @@ -182,314 +183,626 @@ const { } @action("另存为版本") version(id) { - Api.version({id:id}).then(res => { - if (res.code === 200) { - message.success(res.msg); - } else { - message.warning(res.msg); - } + Api.version({ id: id }).then(res => { + if (res.code === 200) { + message.success(res.msg); + } else { + message.warning(res.msg); + } }, error => { - message.warning(error.msg); + message.warning(error.msg); }) } - /** ====================================================================================== */ - @observable searchDialog = { - visible: false, - title: '常用条件定制', - } + /** ============================================================================================= */ + @observable search = true; + + @observable searchDialog = { + visible: false, + loading: true + } + + @observable templates = []; + @observable customTemplates = []; + @observable searchTemplateName = ''; + @observable searchTemplateId = '-1'; + @observable customTemplateName = ''; + @observable customTemplateId = '-1'; + + @observable search = false; SEARCHDIALOG = { - hasScroll: false, - icon: 'icon-coms-hrm', - iconBgcolor: '#217346', - onCancel: () => this.closeSearchDialog(), - style: { - width: 700, - height: 450 - }, - moreBtn: { - datas: [] - }, - buttons: [], - } + hasScroll: false, + icon: 'icon-coms-hrm', + iconBgcolor: '#217346', + onCancel: () => this.closeSearchDialog(), + style: { + width: 700, + height: 450 + }, + moreBtn: { + datas: [] + }, + } TRANSFER = { - height: 350, - renderItem: (items) => this.renderItem(items), - filterLeft: (items) => this.filterLeft(items), - filterRight: (items) => this.filterRight(items), - onChange: (v) => this.updateTransferKeys(v) - } + 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: '' - } + transferDatas: [], + transferKeys: [], + transferOptions: [], + transferSelectedKey: '0', + transferleftIptVal: '', + transferRightIptVal: '' + } @action("常用条件定制保存") saveHrmSearchUserDefine = () => { this.closeSearchDialog(); + this.getSearchCondition(false); + } + + @action("列定制保存") saveCustomDefine = () => { + if(this.customTemplateId == '-1') { + message.error("默认模板不能修改,将返回默认模板列"); + } + + const params = { + columns:this.transfer.transferKeys, + templateId:this.customTemplateId + } + Api.saveColumnsCustomTemplate(params).then(res => { + if (res.code === 200) { + this.searchDialog.visible = false; + this.getTableInfo(); + } + }, error => { + message.warning(error.msg); + }) + + + } + + @action("高级搜索模板切换") changeSearchTemplate(v) { + this.searchTemplateId = v; 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; - } + 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; + this.searchDialog.visible = true; + } + + @action("列定制") customization = (v = false) => { + this.openCustomDialog(v); + } + + @action("常用条件定制模板切换") getTemplateSelectKeys = v => { + if(!this.search){ + this.customTemplateId = v; + } + + const params = { + templateId: v, + type: this.search ? 'search' : 'custom' + } + Api.getTemplateSelectKeys(params).then(res => { + if (res.code === 200) { + this.transfer.transferKeys = res.data.split(","); + } else { + message.warning(res.msg); + } + }, error => { + message.warning(error.msg); + }) + } + + + @action("搜索模板保存") saveTemplate = () => { + if (this.searchTemplateName == '') { + message.error("搜索模板名称不能为空"); + } else { + const fields = []; + this.defaultCondition.forEach((c, idx) => { + c.items.forEach((i) => { + fields.push(i.domkey[0]); + }) + }) + const params = { + showname: this.searchTemplateName, + fields: fields.toString() + } + + Api.saveSearchTemplate(params).then(response => { + return response.json() + }).then(data => { + if (data.code === 200) { + this.searchTemplateId = data.data; + this.setPanelStatus(true); + } else { + message.warning(data.msg); + } + }).catch(error => { + message.warning(error.msg); + }) + } + + } + + @action("常用定制列模板保存") saveCustomTemplate = () => { + if (this.customTemplateName == '') { + message.error("列定制模板名称不能为空"); + } else { + const params = { + showname: this.customTemplateName, + fields: this.transfer.transferKeys.toString() + } + Api.saveCustomTemplate(params).then(response => { + return response.json() + }).then(data => { + if (data.code === 200) { + this.customTemplateId = data.data; + this.getSearchTemplate(); + message.success(data.msg); + } else { + message.warning(data.msg); + } + }).catch(error => { + message.warning(error.msg); + }) + } + + } + + @action("搜索模板删除") deleteSearchTemplate = () => { + + if (this.searchTemplateId == -1) { + return message.error("默认模板不可删除"); + } + Api.deleteSearchTemplate({ id: this.searchTemplateId }).then(response => { + return response.json() + }).then(data => { + if (data.code === 200) { + message.success(data.msg); + this.searchTemplateId = '-1'; + this.setPanelStatus(true); + } else { + message.warning(data.msg); + } + }).catch(error => { + message.warning(error.msg); + }) + } + + inputSearchStyle = { - width:"105px", - float:"right", - marginTop:"5px", - marginLeft:"10px" + width: "105px", + float: "right", + marginTop: "5px", + marginLeft: "10px" } - selectStyle={ - marginTop:"-1px", - width:"85px", - float:"right" + 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 ( -
- 已选 - + @computed get leftHeader() { + const { + transferleftIptVal, + transferOptions, + transferSelectedKey + } = this.transfer; + return ( +
+ 待选 + +
- ) - } + ) + } + + @computed get rightHeader() { + const { + transferRightIptVal, + } = this.transfer; + return ( +
+ 已选 + + this.getTemplateSelectKeys(v)} + /> +
+ ) + } + renderItem = (item) => { - const { - label, - title - } = item; - return (
-
{label}
-
{title}
-
) - }; + const { + label, + title + } = item; + return (
+
{label}
+
{title}
+
) + }; 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 - } + 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 - } + 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; - } + 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 = () => { - this.searchDialog.visible = false; - } - - - - - updateFields(val) { - this.form2.updateFields({ - lastName: { - value: val + @action("模板") getSearchTemplate = (bool) => { + Api.getSearchTemplate({ type: bool ? 'search' : 'custom' }).then(res => { + if (res.code === 200) { + bool ? this.setTemplates(res.data) : this.setCustomTemplates(res.data); + } else { + message.warning(res.msg); } + }, error => { + message.warning(error.msg); + }) + } + + @observable relatedData = { + datas: [], + columns: [], + loading: true, + selectedData: {} + }; + + @observable temlateManageDialog = { + title: '模板管理', + visible: false, + hasScroll: true, + icon: 'icon-coms-hrm', + iconBgcolor: '#217346', + onCancel: () => this.closeTemlateManageDialog(), + style: { + width: 500, + height: 650 + }, + buttons: [] + } + + @computed get editTableParams() { + let datas = this.relatedData.datas; + let selectedData = this.relatedData.selectedData.status; + let params = this.arrToJson(toJS(datas), toJS(selectedData), 'status'); + params.rownum = datas.length; + return params; + } + + @action("列定制模板管理") getEditTable() { + this.temlateManageDialog.visible = true; + this.relatedData.loading = true; + Api.getEditTable().then(result => { + if (result.code === 200) { + const { columns, datas, selectedData } = result.data; + extendObservable(this.relatedData, { + datas: datas, + columns: columns + }); + selectedData && extendObservable(this.relatedData, { + selectedData: selectedData + }); + extendObservable(this.relatedData, { + loading: false + }); + } else { + message.warning(result.msg); + } + + }, error => { + message.warning(error.msg); + }) + } + + @action("保存") updateCustomTemplate() { + let params = this.editTableParams; + Api.updateCustomTemplate(params).then(res => { + let { code, msg } = res; + if (code === 200) { + message.success(msg || "操作成功"); + this.getEditTable(); + this.customization(); + } else { + message.error(msg); + } + }).catch(error => { + message.error(error); }); - } +} - setSearchCondition(condition) { - this.searchCondition = condition; - } - - setDefaultCondition(defaultcondition) { - this.defaultCondition = defaultcondition; - } - - setTemplates(templates) { - this.templates = templates; - } - - setScLoadingStatus(bool) { - this.searchConditionLoading = bool; - } - - setPanelStatus(bool) { - this.isPanelShow = bool; - bool && this.getSearchCondition(); - if (!bool) { - this.scLoadingReset(); +@action("列定制") getCustomTransferData() { + Api.getCustomTransferData(this.customTemplateId).then(result => { + if (result.code === 200) { + const { transferDatas, transferKeys, transferOptions } = result.data; + this.transfer.transferDatas = transferDatas; + this.transfer.transferKeys = transferKeys; + this.transfer.transferOptions = transferOptions; + this.searchDialog.visible = true; + this.searchDialog.loading = false; + } else { + message.warning(result.msg); } - } + }, error => { + message.warning(error.msg); + }) +} - setLastName(val) { - this.lastName = val; - } - isEmptyObject(obj) { - for (let key in obj) { - return false; + + +@action updateTransferleftIptVal = (v) => { + this.transfer.transferleftIptVal = v; +} + +@action updateTransferSelectedKey = (v) => { + this.transfer.transferSelectedKey = v; +} + +@action updateTransferKeys = (v) => { + this.transfer.transferKeys = v; +} + + +@action updateTransferRightptVal = (v) => { + this.transfer.transferRightIptVal = v; +} + + + +@action openSearchDialog = (bool) => { + this.search = bool; + this.searchDialog.loading = false; + this.formatTransfer(); +} + +@action openCustomDialog = (bool) => { + this.search = bool; + this.searchDialog.loading = true; + this.getSearchTemplate(bool); + this.getCustomTransferData(); + +} + +@action closeSearchDialog = () => { + this.searchDialog.visible = false; +} + +@action closeTemlateManageDialog = () => { + this.temlateManageDialog.visible = false; +} + +setTableEditDatas(e) { + e.map(item => { + for (let key in item) { + if (key == "undefined") { + delete item[key]; + } + if (!item["isused"]) { + item["isused"] = ""; + } } - return true; - } + }); + extendObservable(this.relatedData, { + datas: e + }); +} - setIds(ids) { - this.ids = ids; - } - - scLoadingReset() { - this.searchConditionLoading = true; - } +setEnableRows(e) { + extendObservable(this.relatedData, { + selectedData: { + isused: e + } + }); +} - formReset() { - this.form = new WeaForm(); - } - dialogLoadingReset() { - this.dialogLoading = true; - } +updateFields(val) { + this.form2.updateFields({ + lastname: { + value: val + } + }); +} - setVisible(bool) { - this.visible = bool; - this.formReset(); - !bool && this.dialogLoadingReset(); - } +setSearchCondition(condition) { + this.searchCondition = condition; +} - setDialogLoadingStatus(bool) { - this.dialogLoading = bool; - } +setDefaultCondition(defaultcondition) { + this.defaultCondition = defaultcondition; +} - setNeDialogTitle(title) { - this.nEdialogTitle = title; - } +setTemplates(datas) { + this.templates = datas; +} - setIsNew(bool) { - this.isNew = bool; - } +setCustomTemplates(datas) { + this.customTemplates = datas; +} - setCondition(condition) { - this.condition = condition; - } +setScLoadingStatus(bool) { + this.searchConditionLoading = bool; +} - setUserId(userId) { - this.userId = userId; +setPanelStatus(bool) { + this.isPanelShow = bool; + this.search = true; + this.searchDialog.loading = true; + this.getSearchTemplate(bool); + bool && this.getSearchCondition(); + if (!bool) { + this.scLoadingReset(); } +} - setDate(date) { - this.date = date; - } +arrToJson(arr, rows, rowKey = "isused") { + let json = {}; + const _rows = isEmpty(arr) ? [] : rows; + _rows && _rows.map(index => { + arr[index][rowKey] = "1"; + }); + arr.map((item, index) => { + if (!item[rowKey]) item[rowKey] = "0"; + for (let key in item) { + json[key + "_" + index] = item[key]; + } + }); - setTopMenu(topMenu) { - this.topMenu = topMenu; - } + return json; +} - setRightMenu(rightMenu) { - this.rightMenu = rightMenu; - } +setLastName(val) { + this.lastName = val; +} - setHasRight(bool) { - this.hasRight = bool; +isEmptyObject(obj) { + for (let key in obj) { + return false; } - - } \ No newline at end of file + return true; +} + +setIds(ids) { + this.ids = ids; +} + +scLoadingReset() { + this.searchConditionLoading = true; +} + + +formReset() { + this.form = new WeaForm(); +} + +dialogLoadingReset() { + this.dialogLoading = true; +} + +setVisible(bool) { + this.visible = bool; + this.formReset(); + !bool && this.dialogLoadingReset(); +} + +setDialogLoadingStatus(bool) { + this.dialogLoading = bool; +} + +setNeDialogTitle(title) { + this.nEdialogTitle = title; +} + +setIsNew(bool) { + this.isNew = bool; +} + +setCondition(condition) { + this.condition = condition; +} + +setUserId(userId) { + this.userId = userId; +} + +setDate(date) { + this.date = date; +} + +setTopMenu(topMenu) { + this.topMenu = topMenu; +} + +setRightMenu(rightMenu) { + this.rightMenu = rightMenu; +} + +setHasRight(bool) { + this.hasRight = bool; +} + +} \ No newline at end of file