From 34107bee5509ae24ff7635a0a96a8dbe441626d4 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Thu, 26 May 2022 17:28:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E9=A1=B5=E9=9D=A2=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/organization/apis/job.js | 91 +++ .../components/company/CompanyExtend.js | 19 +- pc4mobx/organization/components/job/Job.js | 531 ++++++++++++++++++ .../organization/components/job/JobExtend.js | 0 .../organization/components/staff/Staff.js | 2 +- pc4mobx/organization/index.js | 2 + pc4mobx/organization/public/i18n.js | 7 +- pc4mobx/organization/stores/index.js | 4 +- pc4mobx/organization/stores/job.js | 371 ++++++++++++ pc4mobx/organization/stores/jobextend.js | 0 pc4mobx/organization/style/common.less | 4 + 11 files changed, 1021 insertions(+), 10 deletions(-) create mode 100644 pc4mobx/organization/apis/job.js create mode 100644 pc4mobx/organization/components/job/Job.js create mode 100644 pc4mobx/organization/components/job/JobExtend.js create mode 100644 pc4mobx/organization/stores/job.js create mode 100644 pc4mobx/organization/stores/jobextend.js diff --git a/pc4mobx/organization/apis/job.js b/pc4mobx/organization/apis/job.js new file mode 100644 index 0000000..6fb261f --- /dev/null +++ b/pc4mobx/organization/apis/job.js @@ -0,0 +1,91 @@ + +import { + WeaTools +} from 'ecCom' + +export const getSearchList = (params) => { + //return WeaTools.callApi('/api/bs/hrmorganization/comp/listComp', 'POST', params); + return fetch('/api/bs/hrmorganization/comp/listComp', { + method: 'POST', + mode: 'cors', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(params) + }) +} + +export const getDeptListByPid = (params) => { + return fetch('/api/bs/hrmorganization/dept/getDeptListByPid', { + method: 'POST', + mode: 'cors', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(params) + }) +} + + +export const deleteTableData = (params) => { + return fetch('/api/bs/hrmorganization/comp/deleteByIds', { + method: 'POST', + mode: 'cors', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(params) + }) +} + +export const getAdvanceSearchCondition = (params) => { + return WeaTools.callApi('/api/bs/hrmorganization/comp/getSearchCondition', 'GET', params); +} + +export const add = (params) => { + return fetch('/api/bs/hrmorganization/comp/saveBaseComp', { + method: 'POST', + mode: 'cors', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(params) + }) +} + +export const editResource = (params) => { + // return fetch('/api/bs/hrmorganization/comp/updateComp', { + // method: 'POST', + // mode: 'cors', + // headers: { + // 'Content-Type': 'application/json' + // }, + // body: JSON.stringify(params) + // }) + return WeaTools.callApi('/api/bs/hrmorganization/comp/updateComp', 'POST', params); +} + +export const updateForbiddenTag = (params) => { + return fetch('/api/bs/hrmorganization/comp/updateForbiddenTagById', { + method: 'POST', + mode: 'cors', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(params) + }) +} + +export const getCompanyForm = (params) => { + return WeaTools.callApi('/api/bs/hrmorganization/comp/getCompSaveForm', 'GET', params); +} + + +export const getCompanyExtendForm = (params) => { + return WeaTools.callApi('/api/bs/hrmorganization/comp/getCompBaseForm', 'GET', params); +} + + +export const getHasRight = (params) => { + return WeaTools.callApi('/api/bs/hrmorganization/comp/getHasRight', 'GET', params); +} \ No newline at end of file diff --git a/pc4mobx/organization/components/company/CompanyExtend.js b/pc4mobx/organization/components/company/CompanyExtend.js index 5ce6162..b766975 100644 --- a/pc4mobx/organization/components/company/CompanyExtend.js +++ b/pc4mobx/organization/components/company/CompanyExtend.js @@ -1,3 +1,10 @@ +/** + * @Author: 程亮 + * @Date: 2022-05-18 14:52:39 + * @LastEditTime: 2022-05-26 17:11:02 + * @Description: + * @FilePath: /trunk/src4js/pc4mobx/organization/components/company/CompanyExtend.js + */ import { Button, Modal, message, Row, Col, Spin } from 'antd'; import isEmpty from 'lodash/isEmpty' import cloneDeep from 'lodash/cloneDeep' @@ -231,7 +238,7 @@ export default class CompanyExtend extends React.Component { // ) // } - // try { + try { return (
) - // } catch (e) { - // return - //
{i18n.message.authFailed()}
- //
- // } + } catch (e) { + return +
{i18n.message.authFailed()}
+
+ } } } diff --git a/pc4mobx/organization/components/job/Job.js b/pc4mobx/organization/components/job/Job.js new file mode 100644 index 0000000..306ece3 --- /dev/null +++ b/pc4mobx/organization/components/job/Job.js @@ -0,0 +1,531 @@ +/** + * @Author: 程亮 + * @Date: 2022-05-26 14:05:59 + * @LastEditTime: 2022-05-26 16:42:44 + * @Description: + * @FilePath: /trunk/src4js/pc4mobx/organization/components/job/job.js + */ +import React from 'react' +import * as mobx from 'mobx' +import { + inject, + observer, +} from 'mobx-react' +import { + WeaTop, + WeaTab, + WeaFormItem, + WeaRightMenu, + WeaTable, + WeaLeftRightLayout, +} from 'ecCom' +import { + Row, + Col, + Spin, + Modal, + Button, + message, + Switch +} from 'antd' +import { + WeaSwitch, + WeaTableNew +} from 'comsMobx' +import { + i18n +} from '../../public/i18n'; + +import '../../style/common.less'; + +import NewTableDialog from '../NewTableDialog'; +import NewAndEditDialog from '../NewAndEditDialog'; +import NewWeaTable from '../NewWeaTable'; +import { renderLoading } from '../../util'; // 从util文件引入公共的方法 + + + +const toJS = mobx.toJS; +const confirm = Modal.confirm; +//const WeaTable = WeaTableNew.WeaTable + + +@inject('job') +@observer +export default class Job extends React.Component { + constructor(props) { + super(props); + } + + componentWillMount() { + } + + componentDidMount() { + this.init(); + } + + componentWillReceiveProps(nextProps) { + const { + job + } = this.props; + + if (this.props.location.key !== nextProps.location.key) { + this.init(); + } + } + + init() { + const { + job + } = this.props; + job.getTableInfo(); + job.getHasRight(); + } + + getTopMenuBtns() { + const { + job + } = this.props; + const { + topMenu, + selectedRowKeys + } = job; + + let btns = []; + topMenu.map((item, i) => { + if (item.menuFun !== 'batchDelete') { + btns.push(); + } else { + btns.push(); + } + + }); + + return btns; + } + + handleClick(item) { + const { + job + } = this.props; + const { + isPanelShow + } = job; + + isPanelShow && job.setPanelStatus(false); + this[item.menuFun] && this[item.menuFun](); + } + + new() { + const { + job + } = this.props; + + job.setNeDialogTitle(i18n.label.jobName()); + job.setNewVisible(true); + job.getCompanyForm(); + + } + + //联查部门 + select(id) { + const { + job + } = this.props; + + job.setNeDialogTitle(i18n.label.jobName()); + job.setVisible(true); + job.setDialogLoadingStatus(true); + job.getDeptTable(id); + } + + batchDelete() { + const { + job + } = this.props; + const { + selectedRowKeys + } = job; + let keys = toJS(selectedRowKeys).toString(); + job.setIds(keys); + this.showConfirm('batchDel'); + } + showConfirm(v) { + let _this = this; + confirm({ + title: i18n.confirm.defaultTitle(), + content: (v == 'del') ? i18n.confirm.delete() : i18n.confirm.batchDeleteConfirm(), + okText: i18n.button.ok(), + cancelText: i18n.button.cancel(), + onOk() { + _this.onOk(); + }, + onCancel() { + return false; + }, + }); + } + onOk() { + const { + job + } = this.props; + job.delete(); + } + + + getDropMenuDatas() { + const { + job + } = this.props; + const { + rightMenu + } = job; + + let menus = []; + toJS(rightMenu).map((item, index) => { + let obj = { + key: item.menuFun, + icon: , + content: item.menuName, + } + if (item.menuFun == 'collection' || item.menuFun == 'help' || item.menuFun == 'pageAddress') { + obj.disabled = true; + } + menus.push(obj); + }) + return menus; + } + + handleMenuClick(key) { + const { + job + } = this.props; + const { + isPanelShow + } = job; + + isPanelShow && job.setPanelStatus(false); + this[key] && this[key](); + } + + + + onSearchChange(val) { + const { + job + } = this.props; + const { + form + } = job; + + job.setCompanyName(val); + !this.isEmptyObject(form.getFormParams()) && job.updateFields(val); + } + + + reRenderColumns(columns) { + const { + job + } = this.props; + let _this = this; + columns.forEach((c, index) => { + if (c.dataIndex == 'forbiddenTag') { + c.render = function (text, record) { + return _this.updateForbiddenTag(checked, record.id)} /> + } + }; + if (c.dataIndex == 'compName') { + c.render = function (text, record) { + return { + window.open(`/spa/organization/static/index.html#/main/organization/companyExtend/${record.id}`, "_blank") + }}>{text} + } + } + if (c.dataIndex == 'operate') { + c.render = function (text, record) { + return + { _this.doDel(record.id) }}>删除 + + { _this.select(record.id) }}>联查部门 + + } + } + + }) + return columns; + } + + updateForbiddenTag(checked, id) { + const { + job + } = this.props; + job.updateForbiddenTag(checked, id); + } + + doDel(id) { + const { + job + } = this.props; + job.setIds(id); + this.showConfirm('del'); + } + + + handleSave() { + const { + job + } = this.props; + job.save(); + } + + getTabBtn() { + const { + job + } = this.props; + const { + form + } = job; + + const btn = [ + (), + (), + (), + ]; + + return btn; + } + + getPanelComponents() { + const { + job + } = this.props; + const { + searchCondition, + form, + searchConditionLoading + } = job; + + let arr = []; + let formParams = form.getFormParams(); + const { + isFormInit + } = form; + + isFormInit && searchCondition.map(c => { + c.items.map((field, index) => { + arr.push( +
+ + {} + +
+ ) + }) + }) + + if (searchConditionLoading) { + return ( +
+ +
+ ) + } else { + return { + if (e.keyCode == 13 && e.target.tagName === "INPUT") { + job.getTableInfo(); + job.setPanelStatus(false) + } + }}>{arr} + } + + } + + //非空判断 + isEmptyObject(obj) { + for (let key in obj) { + return false; + } + return true; + } + + //左侧树 + getTree = () => { + // const { + // hrmAddressBook + // } = this.props; + // const { + // companysId, + // hrmAddressBookPlus: plusStore + // } = hrmAddressBook, { + // leftTabDatas, + // leftTab, + // ORGTREE, + // } = plusStore; + + // Object.assign(ORGTREE,{ + // expandAllChildrenOnSearch:true + // }); + + // let tree; + // if (leftTab.selectedKey === '0') { + // tree = ( + // ${i18n.label.organization()} + // ) + // } else { + // tree = ; + // } + // const leftCom = ( + //
+ // + //
+ // { + // tree + // } + //
+ //
+ // ) + return
; + } + + + + render() { + + const { + job + } = this.props; + const { + isPanelShow, jobName, conditionNum, visible, condition, form, + tableStore, dataSource, columns, loading, date, nEdialogTitle, dialogLoading, + form1, isEdit, newVisible, deptDataSource, deptColumns, selectedRowKeys, total, current, pageSize, init, + defaultShowLeft + } = job; + + const rowSelection = { + onChange(selectedRowKeys, selectedRows) { + job.setSelectedRowKeys(selectedRowKeys); + }, + }; + + const pagination = { + current: current, + pageSize: pageSize, + total: total, + showSizeChanger: true, + showQuickJumper: true, + onShowSizeChange(current, pageSize) { + }, + onChange(current) { + }, + showTotal(total) { + return `共 ${total} 条` + } + }; + + + return ( +
+ this.handleMenuClick(key)} + > + } + iconBgcolor='#217346' + loading={true} + buttons={this.getTopMenuBtns()} + showDropIcon={true} + dropMenuDatas={this.getDropMenuDatas()} + onDropMenuClick={(e) => this.handleMenuClick(e)} + > + + job.setPanelStatus(bool)} + hideSearchAd={() => job.setPanelStatus(false)} + searchsAd={isPanelShow ? this.getPanelComponents() :
} + advanceHeight={Math.ceil(conditionNum / 2) * 52 + 20} + hasMask={false} + buttonsAd={this.getTabBtn()} + onSearch={() => { + job.setCurrent(1); + job.setPageSize(10); + job.getTableInfo() + }} + onSearchChange={val => this.onSearchChange(val)} + /> + { + init ?
+ +
: + record.id} ecId={`${this && this.props && this.props.ecId || ''}_WeaTable@pgmg3x`} + loading={loading} + dataSource={dataSource} childrenColumnName="children" + columns={this.reRenderColumns(columns)} + rowSelection={rowSelection} + pagination={pagination} + onChange={(pagination, filters, sorter) => { + job.setCurrent(pagination.current); + job.setPageSize(pagination.pageSize); + job.getTableInfo(); + }} + indentSize={15} + /> + // + } +
+
+
+ job.setVisible(false)} + /> + this.handleSave()} + onCancel={() => job.setNewVisible(false)} + enable={false} //是否开启字段联动 + /> +
+ ) + } +} \ No newline at end of file diff --git a/pc4mobx/organization/components/job/JobExtend.js b/pc4mobx/organization/components/job/JobExtend.js new file mode 100644 index 0000000..e69de29 diff --git a/pc4mobx/organization/components/staff/Staff.js b/pc4mobx/organization/components/staff/Staff.js index b482a38..38f7e08 100644 --- a/pc4mobx/organization/components/staff/Staff.js +++ b/pc4mobx/organization/components/staff/Staff.js @@ -246,7 +246,7 @@ export default class Staff extends React.Component { staff } = this.props; - staff.setNeDialogTitle(i18n.label.ediStaff()); + staff.setNeDialogTitle(i18n.label.editStaff()); staff.setSchemeId(id); staff.setIsNew(false); staff.setVisible(true); diff --git a/pc4mobx/organization/index.js b/pc4mobx/organization/index.js index fdcf214..876a336 100644 --- a/pc4mobx/organization/index.js +++ b/pc4mobx/organization/index.js @@ -15,6 +15,7 @@ import BranchNumSetting from "./components/branchNumSetting" import Company from "./components/company/company"; import StaffScheme from "./components/staff/StaffScheme"; import Staff from "./components/staff/Staff"; +import Job from "./components/job/job"; import stores from "./stores"; import "./style/index"; @@ -52,6 +53,7 @@ const Routes = ( + ); diff --git a/pc4mobx/organization/public/i18n.js b/pc4mobx/organization/public/i18n.js index 58054a5..f90a0ab 100644 --- a/pc4mobx/organization/public/i18n.js +++ b/pc4mobx/organization/public/i18n.js @@ -130,13 +130,16 @@ export const i18n = { newOfficeClassifyName: () => getLabel(386246, '新建职务分类信息'), branchNumSetting: () => getLabel(386246, '分部编号设置'), companyName: () => getLabel(385937, '分部'), - staffSchemeName: () => getLabel(385936, '编制方案'), newStaffScheme: () => getLabel(386246, '新建编制方案'), ediStaffScheme: () => getLabel(386247, '编辑编制方案'), staffName: () => getLabel(385936, '编制上报'), newStaff: () => getLabel(386246, '新建编制'), - ediStaff: () => getLabel(386247, '编辑编制'), + editStaff: () => getLabel(386247, '编辑编制'), + jobName: () => getLabel(385936, '岗位'), + newJob: () => getLabel(386246, '新建岗位'), + editJob: () => getLabel(386247, '编辑岗位'), + authorizationGroup: () => getLabel(492, '权限组'), diff --git a/pc4mobx/organization/stores/index.js b/pc4mobx/organization/stores/index.js index 99abe88..ce67d31 100644 --- a/pc4mobx/organization/stores/index.js +++ b/pc4mobx/organization/stores/index.js @@ -10,6 +10,7 @@ import {CompanyExtendStore} from "./companyextend"; import {CompanyStore} from "./company" import {StaffSchemeStore} from "./staffscheme"; import {StaffStore} from "./staff"; +import {JobStore} from "./job" module.exports = { simpleOrgStore: new SimpleOrgStore(), @@ -23,5 +24,6 @@ module.exports = { companyExtend: new CompanyExtendStore(), company: new CompanyStore(), staffScheme: new StaffSchemeStore(), - staff: new StaffStore() + staff: new StaffStore(), + job: new JobStore() }; diff --git a/pc4mobx/organization/stores/job.js b/pc4mobx/organization/stores/job.js new file mode 100644 index 0000000..d54bd0d --- /dev/null +++ b/pc4mobx/organization/stores/job.js @@ -0,0 +1,371 @@ +import { + observable, + action + } from 'mobx'; + import * as mobx from 'mobx'; + import * as Api from '../apis/job'; // 引入API接口文件 + import { + WeaForm + } from 'comsMobx'; + import { + WeaTableNew + } from 'comsMobx'; + import { + Modal, + message, + } from 'antd' + import { + i18n + } from '../public/i18n'; + + const toJS = mobx.toJS; + const { + TableStore + } = WeaTableNew; + + + export class JobStore { + @observable topMenu = [] + @observable rightMenu = []; + @observable dataSource = []; + @observable columns = []; + @observable deptDataSource = []; + @observable deptColumns = []; + @observable tableStore = new TableStore(); + @observable loading = true; + @observable dialogLoading = true; + @observable isEdit = true; + @observable nEdialogTitle = ''; + @observable searchCondition = []; + @observable condition = []; + @observable isPanelShow = false; //高级搜索面板 + @observable form = new WeaForm(); + @observable form1 = new WeaForm(); //新增主表表单 + @observable jobName = ''; + @observable conditionNum = 8; + @observable ids = ''; //选择行id + @observable id = ''; //页面跳转参数id + @observable searchConditionLoading = true; + @observable visible = false; + @observable newVisible = false; //新增弹窗 + @observable jobId = ''; + @observable selectedRowKeys = ''; + @observable date = ''; + @observable init = true; //是否首次加载 + @observable total = ''; + @observable current = 1; + @observable pageSize = 10; + + @observable defaultShowLeft = true + + + + + @action + getTableInfo() { + this.setLoading(true); + let params = { + current:this.current, + pageSize:this.pageSize + } + if (this.isEmptyObject(this.form.getFormParams())) { + params = { + ...params, + ...this.form.getFormParams(), + compName: this.jobName + }; + } else { + params = { + ...params, + ...this.form.getFormParams(), + }; + } + Api.getSearchList(params).then(response => { + return response.json() + }).then(res => { + if (res.code === 200) { + res.data.pageInfo.columns && this.setColumns(res.data.pageInfo.columns); + this.setTotal(res.data.pageInfo.total); + res.data.pageInfo.list && this.setDataSource(res.data.pageInfo.list); + this.setLoading(false); + this.setInit(false); + } else { + message.warning(res.msg); + } + }).catch(error => { + message.warning(error.msg); + }) + + + + + + } + + @action("联查部门") + getDeptTable(id) { + let params = { + parentComp:id + } + Api.getDeptListByPid(params).then(response => { + return response.json() + }).then(res => { + if (res.code === 200) { + res.data.list && this.setDeptDataSource(res.data.list); + res.data.columns && this.setDeptColumns(res.data.columns); + this.setDialogLoadingStatus(false); + } else { + message.warning(res.msg); + } + }).catch(error => { + message.warning(error.msg); + }) + } + + //删除 + delete() { + let params = { + ids: this.ids + }; + Api.deleteTableData(params).then(response => { + return response.json() + }).then(data => { + if (data.code === 200) { + message.success(i18n.message.deleteSuccess()); + this.getTableInfo(); + } else { + message.warning(data.msg); + } + }).catch(error => { + message.warning(error.msg); + }) + } + + updateForbiddenTag(checked, id) { + let params = { + forbiddenTag: checked, + id: id + } + Api.updateForbiddenTag(params).then(response => { + return response.json() + }).then(data => { + if (data.code === 200) { + message.success(data.msg); + } else { + message.warning(data.msg); + } + }).catch(error => { + message.warning(error.msg); + }) + } + + getSearchCondition() { + this.setScLoadingStatus(true); + Api.getAdvanceSearchCondition().then(res => { + if (res.code === 200) { + this.setScLoadingStatus(false); + res.data.conditions && this.setSearchCondition(res.data.conditions); + res.data.conditions && this.form.initFormFields(res.data.conditions); + } else { + message.warning(res.msg); + } + }, error => { + message.warning(error.msg); + }) + } + + + getCompanyForm() { + let params = {}; + this.setDialogLoadingStatus(true); + Api.getCompanyForm(params).then(res => { + if (res.code === 200) { + this.setDialogLoadingStatus(false); + res.data.condition && this.setCondition(res.data.condition); + res.data.condition && this.form1.initFormFields(res.data.condition); + } else { + message.warning(res.msg); + } + }, error => { + message.warning(error.msg); + }) + + } + + save() { + let params = { + ...this.form1.getFormParams() + }; + this.form1.validateForm().then(f => { + if (f.isValid) { + Api.add(params).then(response => { + return response.json() + }).then(data => { + if (data.code === 200) { + message.success(data.msg); + this.getTableInfo(); + this.setNewVisible(false); + } else { + message.warning(data.msg); + } + }).catch(error => { + message.warning(error.msg); + }) + } else { + f.showErrors(); + this.setDate(new Date()); + } + }); + } + + + @action + getHasRight() { + Api.getHasRight().then(res => { + if (res.code === 200) { + res.data.rightMenu && this.setRightMenu(res.data.rightMenu); + res.data.topMenu && this.setTopMenu(res.data.topMenu); + } else { + message.warning(res.msg); + } + }, error => { + message.warning(error.msg); + }) + } + + updateFields(val) { + this.form.updateFields({ + compName: { + value: val + } + }); + } + + setSearchCondition(condition) { + this.searchCondition = condition; + } + + setScLoadingStatus(bool) { + this.searchConditionLoading = bool; + } + + setPanelStatus(bool) { + this.isPanelShow = bool; + bool && this.getSearchCondition(); + if (!bool) { + this.scLoadingReset(); + } + } + + setJobName(val) { + this.jobName = val; + } + + isEmptyObject(obj) { + for (let key in obj) { + return false; + } + return true; + } + + setIds(ids) { + this.ids = ids; + } + + setId(id) { + this.id =id; + } + + scLoadingReset() { + this.searchConditionLoading = true; + } + + + formReset() { + this.form1 = new WeaForm(); + } + + + setVisible(bool) { + this.visible = bool; + } + + setDialogLoadingStatus(bool) { + this.dialogLoading = bool; + } + + + setSearchCondition(searchCondition) { + this.searchCondition = searchCondition; + } + + setJobId(jobId) { + this.jobId = jobId; + } + + setDate(date) { + this.date = date; + } + + setTopMenu(topMenu) { + this.topMenu = topMenu; + } + + setRightMenu(rightMenu) { + this.rightMenu = rightMenu; + } + + setDataSource(dataSource) { + this.dataSource = dataSource; + } + + setDeptDataSource(deptDataSource) { + this.deptDataSource = deptDataSource; + } + + setColumns(columns) { + this.columns = columns + } + + setDeptColumns(deptColumns) { + this.deptColumns = deptColumns + } + + setSelectedRowKeys(selectedRowKeys) { + this.selectedRowKeys = selectedRowKeys; + } + + setLoading(bool) { + this.loading = bool; + } + + setNeDialogTitle(title) { + this.nEdialogTitle = title + } + + setCondition(condition) { + this.condition = condition; + } + + setNewVisible(bool) { + this.formReset(); + this.newVisible = bool; + } + + setTotal(total) { + this.total = total; + } + + setCurrent(current) { + this.current = current; + } + + setPageSize(pageSize) { + this.pageSize = pageSize; + } + + setInit(bool) { + this.init = bool; + } + + } \ No newline at end of file diff --git a/pc4mobx/organization/stores/jobextend.js b/pc4mobx/organization/stores/jobextend.js new file mode 100644 index 0000000..e69de29 diff --git a/pc4mobx/organization/style/common.less b/pc4mobx/organization/style/common.less index 7ebbd2b..1f965bc 100644 --- a/pc4mobx/organization/style/common.less +++ b/pc4mobx/organization/style/common.less @@ -26,6 +26,10 @@ margin-top: 10px; } +.wea-left-right-layout-right { + overflow: scroll !important; +} + //集团管理 .organization-group {