/*
* @Author: sunzhijun
* @LastEditors: sunzhijun
* @Date: 2019-03-23 14:43:10
* @LastEditTime: 2019-03-24 20:14:11
*/
import React, {Component, PureComponent} from 'react';
import ReactDOM from 'react-dom';
import {high, createPage, base, getUrlParam, toast, promptBox, cacheTools} from 'nc-lightapp-front';
import {hrAjax as ajax, saveValidate, getAppPageConfig} from 'src/hrpub/common/utils/utils';
import handdleCheckedData from '../container/functions/checkDataPermissionAction';
import Header from '../components/Header';
import Pagination from '../components/Pagination';
import SignModal from '../components/SignModal';
import EmptyData from "src/hrpub/common/components/emptyImg";
// import {fixedCol} from "../../../../../hrpub/common/utils/utils";
import {chectFormAction, setFormAttrAndValue} from '../../../../public/functions/checkFormAction';
import setAllpks from '../../../../public/functions/setAllpks';
import IsMac from '../../../../public/functions/isMac';
import './index.less';
const {NCButton, NCSelect, NCCheckbox} = base;
const NCOption = NCSelect.NCOption;
import NCUploader from 'uap/common/components/NCUploader';
import WpsModal from 'src/hrpub/common/components/wpsPreModel';
let tableid = 'dataList';
let cardId = 'dataCard';
const languageId = "sign6011";
const domainName = "hrcm";
class CMSign extends Component {
constructor(props) {
super(props);
if (props.use) {
props.use.form('dataCard', 'dataCard_add', 'postcontCard_add', 'secrerycontCard_add', 'traincontCard_add')
props.use.editTable('dataList', 'psnList', 'postcontList', 'secrerycontList', 'traincontList')
props.use && props.use.search('listquery', 'query')
}
this.config = getAppPageConfig();
this.state = {
json: {},
showMode: 'browse',
showUploader: false, //是否显示附件管理
isDataListPage: true, //是否是列表数据页面
rowsListData: [], //展示区域数据
rowsCardData: [],
pageType: tableid,
pageInfo: {
pageIndex: 1,
pageSize: 10
},
conditions: null,
nodeRefs: {
wpsview: null
}
}
this.saveTableData = this.saveTableData.bind(this);
this.onHideUploader = this.onHideUploader.bind(this);
this.takeEffectEvent = this.takeEffectEvent.bind(this);
this.refreshTableData = this.refreshTableData.bind(this);
}
componentWillMount() {
// window.location.hash = `?page=201908221110`;
let callback = (json, status, inlt) => {
if (status) {
this.lang = json
this.setState({json, inlt}, () => {
this.props.createUIDom(this.config, (data) => {
let oid = data.template.listquery.oid;
let buttons = data.button;
//let dataItems = data.template.dataList.items;
// let callback = (json, status, inlt) => {
// if (status) {
// this.lang = json
// this.setState({json, inlt},()=>{
// this.initMeta(dataItems,this);
// })//存json和inlt到页面state中并刷新页面
// }
// }
// this.props.MultiInit.getMultiLang({moduleId: languageId, domainName: domainName, callback});
// this.props.meta.setMeta(data && data.template ? data.template : {},()=>{});
// this.props.button.setButtons(data && data.button ? data.button : {});
this.initMeta(data.template, buttons, this);
this.setState({
buttons: buttons || [],
context: data.context || {},
telName: data.template.name || '',
oid: oid,
pageid: data.template.pageid
});
this.props.meta.setMeta(data && data.template ? data.template : {}, () => {
});
this.props.button.setButtons(data && buttons ? buttons : {});
});
})//存json和inlt到页面state中并刷新页面
}
}
this.props.MultiInit.getMultiLang({moduleId: languageId, domainName: domainName, callback})
}
componentDidMount() {
this.updateButtonStatus();
// 计算列表的高度
let bodyH = this.refs.getContainerDom.offsetHeight;
let headerH = this.header.getHeaderH();
this.setState({
tableHeight: bodyH - headerH - 44
})
this.props.button.setButtonVisible(['newAdd', 'edit', 'delete', 'takeEffect', 'refresh', 'save1', 'cancel1', 'edit', 'text', 'file', 'query'], false);
}
//初始化meta数据
initMeta(template, buttons, opt) {
let {json} = this.state;
let data = template.dataList.items;
// fixedCol(template['dataList'], ['contractnum', 'pk_majorcorp','pk_psndoc.code','pk_psndoc'],json['hrcm-000039'])
data.unshift({
attrcode: 'index',
itemtype: 'customer',
hyperlinkflag: false,
label: json['hrcm-000039'], // 序号
width: '65px',
textAlign: 'center',
visible: true,
fixed: 'left',
render(text, record, index) {
return (
{index + 1}
)
}
});
// 添加超链接和锁定列
data.forEach((item, key) => { //添加超链接
switch (item.attrcode) {
case 'contractnum':
item.renderStatus = 'browse'
item.fixed = 'left'
item.render = (text, record, index) => {
return (
{record && record.values['contractnum'] && record.values['contractnum'].value}
);
};
break;
case 'pk_majorcorp':
item.renderStatus = 'browse'
item.fixed = 'left'
item.render = (text, record, index) => {
return (
{record && record.values['pk_majorcorp'] && record.values['pk_majorcorp'].display}
);
};
break;
case 'pk_psndoc.code':
item.renderStatus = 'browse'
item.fixed = 'left'
item.render = (text, record, index) => {
return (
{record && record.values['pk_psndoc.code'] && record.values['pk_psndoc.code'].value}
);
};
break;
case 'pk_psndoc.name':
item.renderStatus = 'browse'
item.fixed = 'left'
item.render = (text, record, index) => {
return (
{record && record.values['pk_psndoc.name'] && record.values['pk_psndoc.name'].value}
);
};
break;
default:
break;
}
});
//添加附件
data.push({
attrcode: 'attachment',
itemtype: 'customer',
hyperlinkflag: false,
label: json['hrcm-000011'], /* 国际化处理: 附件管理*/
width: '80px',
textAlign: 'center',
visible: true,
fixed: 'right',
render(text, record, index) {
// let billId = record.values.pk_psndoc_sub.value;
// let billNo = record.values.contractnum.value
return (
opt.attachManage(record)}>
)
}
});
data.push({
attrcode: 'handleArea',
itemtype: 'customer',
hyperlinkflag: false,
label: json['hrcm-000012'], /* 国际化处理: 操作*/
width: '250px',
textAlign: 'center',
visible: true,
fixed: 'right',
render(text, record, index) {
let billId = record.values.pk_psndoc_sub.value;
let billNo = record.values.contractnum.value;
console.log("=======================>",buttons)
return buttons && buttons.map((item, index) => {
if (item.key === 'edit') {
return (
{json['hrcm-000013']}
)
} else if (item.key === 'delete') {
return (
{json['hrcm-000014']}
)
} else if (item.key === 'text') {
return (
{json['hrcm-000015']}
)
} else if (item.key === 'toXyy') {
return (
发起合同
)
}
})
}
});
}
//查询设置组织pkorg
searchOrganizationChange(data) {
let pkorg = data.refpk;
this.setState({
pk_org: pkorg,
storageOrgData: data
}, () => {
this.getStorageData();
// this.fetchTableData();
})
}
//根据获取本地存储的主键信息获取数据
getStorageData() {
let storage = JSON.parse(window.localStorage.getItem('pageQueryParam'));
let storageData = storage && Object.keys(storage);
if (storageData && !!storageData.length) {
let storage_pk = storage && storage.sign && storage.sign.pk_psndoc_subs;
let hrorgobj = storage && storage.sign && storage.sign.hrorgobj;
hrorgobj && this.setState({
pk_org: hrorgobj.refpk,
storage_pk: storage_pk
}, () => {
this.fetchTableData({key: storage_pk, queryType: 1});
this.header.setOrganizationValue(hrorgobj);
})
} else {
this.fetchTableData();
}
}
//存储人力资源组织信息
storageOrgData() {
let {storageOrgData} = this.state;
let orgData = {
sign: {
hrorgobj: storageOrgData
}
}
orgData && window.localStorage.setItem('pageQueryParam', JSON.stringify(orgData));
}
//主键信息格式化
formatPkPsndocSub(key, areaCode, type) {
if (key && key.jobpks) {
if (areaCode != tableid) {
let len = key.jobpks.length;
key = key.jobpks[len - 1];
} else {
key = [];
}
}
if (key && Object.prototype.toString.call(key) === '[Object Object]') {
key = [key];
} else if (Array.isArray(key) && key.length === 0) {
key = []
} else if (key) {
key = [key];
} else {
key = []
}
if (type == 1 && areaCode == tableid) {
key = []
}
return key;
}
//数据初始化
fetchTableData({key, type, isRefresh, conditions, queryType = 0, isEdit} = {}) {
let {pk_org, isDataListPage, pageInfo, json, oid} = this.state;
let areaCode = isDataListPage ? tableid : cardId;
let pkPsndocSub = this.formatPkPsndocSub(key, areaCode, type);
let pkPsndocSubArr = []
pkPsndocSub.forEach((items) => {
if (Array.isArray(items)) {
pkPsndocSubArr.push(...items)
} else {
pkPsndocSubArr = pkPsndocSub
}
})
if (!!pk_org) {
ajax({
url: '/nccloud/hrcm/common/QueryDataAction.do',
data: {
pk_org: pk_org,
areaCode: areaCode,
queryType: queryType,
showSealDataFlag: true,
orgFilter: true,
isNodeCodeFilter: true,
pkPsndocSub: pkPsndocSubArr, //卡片状态刷新数据
pageInfo: pageInfo,
appCode: this.config.appcode,
...conditions
},
success: res => {
if (res.success && res.data) {
let data = res.data;
let rowsData, allpks;
if (isDataListPage) {
allpks = data.dataList && data.dataList.allpks || [];
rowsData = data && data.dataList.rows;
// if(!!rowsData){
this.props.button.setButtonVisible(['newAdd', 'delete', 'refresh', 'takeEffect', 'query'], true);
this.props.button.setButtonVisible(['save1', 'cancel1', 'text', 'file', 'edit'], false);
this.props.button.setButtonDisabled(['edit', 'delete', 'refresh', 'takeEffect', 'file'], false);
// }
this.props.button.setButtonDisabled(['newAdd'], false);
this.props.editTable.setTableData(tableid, {rows: rowsData || []});
//设置翻页数据
this.setState({
pageInfo: res.data.dataList.pageInfo,
isVisiblePagination: true //控制翻页显示隐藏
})
cacheTools.set('allpks', allpks);
} else {
rowsData = res.data && res.data.dataCard.rows[0];
if (!!rowsData.values.ifprop.value || rowsData.values.ifprop.value === 'Y') {
rowsData.values.ifprop.display = json['hrcm-000018'];
rowsData.values.ifprop.value = true;
} else {
rowsData.values.ifprop.display = json['hrcm-000019'];
rowsData.values.ifprop.value = false;
}
if (!!rowsData) {
let formData = {
rows: new Array(rowsData)
};
this.props.form.setAllFormValue({[cardId]: formData});
}
if (!!key.jobpks || Array.isArray(key)) { //数组是新增过来的数据
allpks = cacheTools.get('allpks');
if (!!key.jobpks) {
key = key.jobpks;
}
let newAllpks = allpks.concat(key);
let len = key.length;
newAllpks = Array.from(new Set(newAllpks));
cacheTools.set('allpks', newAllpks);
this.header.setCardPagination(key[len - 1]);
} else if (!!key) { //字符串是删除生效时的数据
this.header.setCardPagination(key);
}
this.hidePagination();
}
if(isEdit){
rowsData = res.data && res.data.dataCard.rows[0];
if (rowsData && rowsData.values.ifprop.value === 'Y' || rowsData && rowsData.values.ifprop.value === true) {
this.props.form.setFormItemsValue(cardId, {'ifprop': {display: json['hrcm-000018'], value: true, scale: "-1"}})
} else {
this.props.form.setFormItemsValue(cardId, {'ifprop': {display: json['hrcm-000019'], value: false, scale: "-1"}});
// form.setFormItemsDisabled(cardId, { 'promonth': true, 'prop_unit': true, 'probegindate': true, 'probenddate': true });
}
this.editCardData(rowsData);
}
} else {
// this.props.button.setButtonVisible(['newAdd','delete','takeEffect', 'refresh'],true);
// this.props.button.setButtonVisible(['save1','cancel1','text','file'],false);
this.props.button.setButtonVisible({
save1: false,
cancel1: false,
text: false,
file: false,
newAdd: true,
delete: true,
takeEffect: true,
refresh: true
})
this.props.button.setButtonDisabled({
edit: true,
delete: true,
takeEffect: true,
refresh: true,
newAdd: false
})
// this.props.button.setButtonDisabled(['edit','delete','takeEffect','refresh'],true);
// this.props.button.setButtonDisabled(['newAdd'],false);
this.props.editTable.setTableData(tableid, {rows: []});
this.props.form.EmptyAllFormValue(cardId);
this.hidePagination();
if (isDataListPage) {
this.props.button.setButtonDisabled(['refresh'], false);
this.props.button.setButtonVisible(['query'], true);
} else {
this.props.button.setButtonDisabled(['refresh'], true);
this.props.button.setButtonVisible(['query'], false);
}
}
if (!!isRefresh) {
toast({color: 'success', content: json['hrcm-000016']});
}
this.deleteStorage();
}
})
} else {
// this.props.button.setButtonDisabled(['newAdd','edit','delete','takeEffect','file'],true);
this.props.button.setButtonVisible(['newAdd', 'edit', 'delete', 'takeEffect', 'refresh', 'query'], false);
this.hidePagination();
}
}
//删除localStorage
deleteStorage() {
let pageQueryParamObj = JSON.parse(localStorage.getItem('pageQueryParam'));
if (!!pageQueryParamObj) {
delete pageQueryParamObj.sign;
localStorage.setItem('pageQueryParam', JSON.stringify(pageQueryParamObj));
}
}
//列表
getTableListData() {
let {pk_org, json} = this.state;
let tableHeight = this.state.tableHeight;
if (!!pk_org) {
return (
{this.props.editTable.createEditTable(tableid, {
cancelCustomRightMenu: true,
//showIndex: true, //显示序列号
showCheck: true, //显示复选框
onRowDoubleClick: this.toCardForm.bind(this), //编辑表格数据
sort: {
mode: 'single', backSource: false, sortFun: (v, rows) => {
setAllpks(rows, 'pk_psndoc_sub')
}
},
adaptionHeight: true,
// onSelected: this.getSelectedData.bind(this), //获取选中的数据
// height: tableHeight - 72 //设置高度
})}
)
} else {
return (
)
}
}
//隐藏列表翻页
hidePagination() {
this.setState({
isVisiblePagination: false //控制翻页显示隐藏
})
}
//保存
saveTableData(step) {
let formData = this.props.form.getAllFormValue(cardId).rows;
let stepNum = step ? step : '0';
let {json, pageid} = this.state;
saveValidate(this.props, pageid, cardId, null, 'form').then(() => {
if (this.props.form.isCheckNow(cardId)) {
ajax({
url: '/nccloud/hrcm/make/UpdateSaveDataAction.do',
data: {
baseParam: {
step: stepNum
},
formData: {
model: {
rows: formData
}
}
},
success: res => {
if (res.success && res.data) {
let data = res.data;
let content = {
content: data.msg
}
if (data.step == '1') {
let fn = {
sureFn: this.saveTableData.bind(this)
}
this.promptBoxModal(content, fn, '1');
} else if (data.step == '3') {
let fn = {
sureFn: this.isTakeEffectEvent.bind(this)
}
content.sureName = json['hrcm-000018'];
content.cancelName = json['hrcm-000019'];
this.refreshTableData();
this.updateShowMode('browse');
this.promptBoxModal(content, fn, '3');
} else {
this.refreshTableData();
}
}
}
})
}
});
}
//操作卡片翻页
handleCardPagination(pks) {
this.fetchTableData({key: pks});
}
//确认弹窗
promptBoxModal(context, fn = {}, args) { //context 内容;fn 执行的方法;args 传递的参数
let {sureFn, cancelFn} = fn;
let {json} = this.state;
promptBox({
color: 'warning', // 提示类别默认"success", "success"/"info"/"warning"/"danger",非必输
title: json['hrcm-000003'], // 提示标题, 默认不同类别下分别为:"已成功"/"帮助信息"/"请注意"/"出错啦",非必输/* 国际化处理: 确认删除*/
content: context.content, // 提示内容,非必输/* 国际化处理: 您确定要删除所选数据么?*/
noFooter: false, // 是否显示底部按钮(确定、取消),默认显示(false),非必输
noCancelBtn: false, // 是否显示取消按钮,,默认显示(false),非必输
beSureBtnName: context.sureName ? context.sureName : json['hrcm-000006'], // 确定按钮名称, 默认为"确定",非必输/* 国际化处理: 确定*/
cancelBtnName: context.cancelName ? context.cancelName : json['hrcm-000007'], // 取消按钮名称, 默认为"取消",非必输/* 国际化处理: 取消*/
hasCloseBtn: true, //显示“X”按钮,默认不显示,不显示是false,显示是true
// beSureBtnClick: ()=>{ this.resetTableData() }, // 确定按钮点击调用函数,非必输
beSureBtnClick: () => {
sureFn && sureFn(args)
}, // 确定按钮点击调用函数,非必输
cancelBtnClick: () => {
cancelFn && cancelFn(args)
}, // 取消按钮点击调用函数,非必输
// closeBtnClick:functionClose, //关闭按钮点击调用函数,非必输
closeByClickBackDrop: false,//点击遮罩关闭提示框,默认是true点击关闭,阻止关闭是false
})
}
//刷新
refreshTableData(isRefresh) {
this.setState({
isDataListPage: !this.state.isDataListPage ? false : true,
storage_pk: []
}, () => {
if (this.state.isDataListPage) {
this.fetchTableData({isRefresh: isRefresh});
} else {
let pk_psndoc_sub = this.props.form.getAllFormValue(cardId).rows[0].values.pk_psndoc_sub.value;
this.fetchTableData({key: pk_psndoc_sub, isRefresh: isRefresh});
}
})
}
//获取某一处修改的数据索引
searchIndex(arr, id) {
for (let i = 0; i < arr.length; i++) {
if (arr[i].rowid == id) {
return i;
}
}
}
// 按钮是否显示,按钮是否可用
updateButtonStatus() {
var showMode = this.state.showMode
this.props.button.setButtonsVisible({
newAdd: showMode === 'browse',
edit: showMode === 'browse',
delete: showMode === 'browse',
text: showMode === 'browse',
refresh: showMode === 'browse',
takeEffect: showMode === 'browse',
file: showMode === 'browse',
save1: showMode === 'edit',
cancel1: showMode === 'edit'
})
}
// 更新界面状态
updateShowMode(showMode) {
// var oldMode = this.state.showMode;
let {json} = this.state;
this.setState({
showMode: showMode
}, () => {
this.updateButtonStatus()
})
if ('edit' === showMode) {
this.props.form.setFormStatus(cardId, 'edit');
} else {
// this.props.editTable.cancelEdit(tableid);
this.props.form.cancel(cardId);
this.header.setCardPaginationVisibleFn(true);
let formData = this.props.form.getAllFormValue(cardId);
if (formData && formData.rows[0].values.ifprop && formData.rows[0].values.ifprop.value === 'Y' || formData.rows[0].values.ifprop && formData.rows[0].values.ifprop.value === true) {
this.props.form.setFormItemsValue(cardId, {
'ifprop': {
display: json['hrcm-000018'],
value: true,
scale: "-1"
}
})
} else {
this.props.form.setFormItemsValue(cardId, {
'ifprop': {
display: json['hrcm-000019'],
value: false,
scale: "-1"
}
})
}
// this.props.form.setFormStatus(cardId,'browse');
}
}
//返回
handleBackClick() {
let {storage_pk} = this.state;
this.setState({
isDataListPage: true
}, () => {
this.props.button.setButtonVisible(['newAdd', 'delete', 'refresh', 'takeEffect', 'query'], true);
this.props.button.setButtonVisible(['save1', 'cancel1', 'text', 'file', 'edit'], false);
this.fetchTableData({key: storage_pk});
})
}
//进入卡片态调用接口
// getCardData(pk, type) {
// const { form, button } = this.props;
// let { pk_org, json } = this.state;
// ajax({
// url: '/nccloud/hrcm/common/QueryDataCardAction.do',
// data: {
// pk_psndoc_sub: pk,
// areaCode: cardId,
// pk_org: pk_org
// },
// success: (res) => {
// let data = res.data;
// if (data && data.data) {
// let formData = data.data.dataCard;
// form.setAllFormValue({ [cardId]: formData });
// button.setButtonVisible(['file', 'edit', 'text'], true);
// // setFormAttrAndValue(data.attrMap, data.valueMap, this.props, cardId, [cardId]);
// if (type === 'edit') {
// this.editCardData(formData);
// }
// if (formData && formData.rows[0].values.ifprop.value === 'Y' || formData && formData.rows[0].values.ifprop.value === true) {
// form.setFormItemsValue(cardId, { 'ifprop': { display: json['hrcm-000018'], value: "Y", scale: "-1" } })
// } else {
// form.setFormItemsValue(cardId, { 'ifprop': { display: json['hrcm-000019'], value: "N", scale: "-1" } });
// form.setFormItemsDisabled(cardId, { 'promonth': true, 'prop_unit': true, 'probegindate': true, 'probenddate': true });
// }
// }
// }
// })
// }
//进入CardForm
toCardForm(records) {
this.setState({
isDataListPage: false,
isVisiblePagination: false //控制翻页显示隐藏
}, () => {
let pk_psndoc_sub = records.values.pk_psndoc_sub.value;
// this.getCardData(pk_psndoc_sub);
this.editTableFn(records);
// this.getCardFormData(pk_psndoc_sub);
this.header.showHeadLeftFn(true, pk_psndoc_sub);
this.header.getCardFormId(cardId);
})
}
//进入CardForm展示数据
editTableFn(records) {
let props = this.props;
let {json} = this.state;
let pk_psndoc_sub = records.values.pk_psndoc_sub.value;
// this.getCardFormData(pk_psndoc_sub);
/*let rowsData;
if(records){
rowsData = records;
}else{
rowsData = this.props.editTable.getCheckedRows(tableid)[0].data;
}
let formData = {
rows: new Array(rowsData)
};
this.props.form.setAllFormValue({[cardId]: formData});*/
this.fetchTableData({
key: pk_psndoc_sub,
isRefresh: false
})
this.props.button.setButtonVisible(['file', 'edit', 'text'], true);
this.props.button.setButtonVisible(['query'], false);
/*if(formData && formData.rows[0].values.ifprop.value === true){
this.props.form.setFormItemsValue(cardId,{'ifprop':{display: json['hrcm-000018'], value: true, scale: "-1"}})
}else{
this.props.form.setFormItemsValue(cardId,{'ifprop':{display: json['hrcm-000019'], value: false, scale: "-1"}})
}*/
// chectFormAction('cont_unit', cardId, props, [cardId]);
}
// 修改数据校验事件
modifyCheckData(v) {
let {isDataListPage} = this.state;
let pk_psndoc_sub;
if (isDataListPage) {
pk_psndoc_sub = v.values.pk_psndoc_sub.value;
} else {
let formCardData = this.props.form.getAllFormValue(cardId);
pk_psndoc_sub = formCardData && formCardData.rows[0].values.pk_psndoc_sub.value;
}
handdleCheckedData(pk_psndoc_sub, 'edit', 'contract', () => {
if (isDataListPage) {
this.modifyListData(v);
} else {
this.editCardData();
}
});
}
//修改列表数据
modifyListData(v) {
let {form} = this.props;
let {json} = this.state;
let formData = v;
this.setState({
isDataListPage: false,
isVisiblePagination: false
}, () => {
/*formData = {
rows: new Array(formData)
};*/
let pk_psndoc_sub = formData.values.pk_psndoc_sub.value;
this.fetchTableData({
key: pk_psndoc_sub,
isRefresh: false,
isEdit: true
})
this.header.showHeadLeftFn(true);
//this.props.form.setAllFormValue({[cardId]: formData});
/*if (formData && formData.rows[0].values.ifprop.value === 'Y' || formData && formData.rows[0].values.ifprop.value === true) {
form.setFormItemsValue(cardId, {'ifprop': {display: json['hrcm-000018'], value: true, scale: "-1"}})
} else {
form.setFormItemsValue(cardId, {'ifprop': {display: json['hrcm-000019'], value: false, scale: "-1"}});
// form.setFormItemsDisabled(cardId, { 'promonth': true, 'prop_unit': true, 'probegindate': true, 'probenddate': true });
}
this.editCardData(formData);*/
// let pk_psndoc_sub = v.values.pk_psndoc_sub.value;
// this.getCardData(pk_psndoc_sub, 'edit');
});
// this.props.editTable.getCheckedRows(tableid);
}
//编辑卡片时数据
editCardData() {
let {json, pk_org} = this.state;
let extendParam = {
pk_org: pk_org
}
// this.props.form.setFormItemAutoFocus(cardId, 'contractnum');
this.props.form.setFormStatus(cardId, 'edit');
this.props.button.setButtonVisible(['newAdd', 'edit', 'delete', 'text', 'refresh', 'takeEffect', 'file', 'query'], false);
this.props.button.setButtonVisible(['save1', 'cancel1'], true);
this.header.setCardPaginationVisibleFn(false);
this.header.getCardFormId(cardId);
chectFormAction('', cardId, this.props, [cardId], this.config.appcode, extendParam);
}
//卡片日期设置
handleEditFormDate(props, moduleId, key, value) {
chectFormAction(key, moduleId, props, [cardId]);
}
//form编辑前事件
handleEditBefore(props, moduleId, key, value, data) {
if (key == 'pk_conttext') {
let that = this;
let meta = that.props.meta.getMeta();
let pk_org = this.state.pk_org;
meta[moduleId].items.find(item => item.attrcode === key).queryCondition = function () {
return {
"pk_org": pk_org,
"GridRefActionExt": "nccloud.web.hrcm.make.sqlbuilder.ContModelGridSqlBuilder"
}
};
that.props.meta.setMeta(meta);
}
return true;
}
// 点击生效事件
isTakeEffectEvent(step) {
let pks = this.getPkPsndocSub();
!!pks && handdleCheckedData(pks, 'effect', 'contract', () => {
this.takeEffectEvent(step);
});
}
//获取主键
getPkPsndocSub() {
let {isDataListPage, json} = this.state;
let isCard = isDataListPage ? false : true;
let pks = [];
if (isCard) {
pks = this.props.form.getAllFormValue(cardId).rows[0].values.pk_psndoc_sub.value;
} else {
let checkedData = this.props.editTable.getCheckedRows(tableid);
if (!checkedData.length) {
toast({color: 'warning', content: json['hrcm-000020']});
return;
}
checkedData.map((v) => {
pks.push(v.data.values.pk_psndoc_sub.value);
})
}
return pks;
}
//是否生效
takeEffectEvent(step, info) {
let pageType = '';
let formData = [];
let stepNum = step ? step : '0';
let {isDataListPage, json, storage_pk} = this.state;
let isCard = isDataListPage ? false : true;
let pks = this.getPkPsndocSub();
if (!isCard) {
pageType = 'list';
} else {
pageType = 'card';
}
ajax({
url: '/nccloud/hrcm/make/MakeEffectiveAction.do',
data: {
baseParam: {
step: stepNum,
pageType: pageType,
info2: info
},
selectCtrtpks: pks
},
success: res => {
if (res.success && res.data) {
let data = res.data;
let info = res.data.info || null;
if (data.step == '99') {
if (isCard) {
let allpks = cacheTools.get('allpks') || [];
let index = 0;
let len = allpks.length;
len && allpks.forEach((v, i) => {
if (v == pks) {
allpks.splice(i, 1);
if (i < len - 1) {
index = i;
} else if (i == len - 1) {
index = i - 1;
}
}
})
cacheTools.set('allpks', allpks);
this.fetchTableData({key: allpks[index]});
} else {
this.fetchTableData({key: storage_pk});
}
} else {
let fn = {
sureFn: this.takeEffectEvent
}
let content = {
content: data.msg,
sureName: json['hrcm-000018'],
cancelName: json['hrcm-000019']
}
this.promptBoxModal(content, fn, data.step, info);
}
}
}
})
}
// 关闭附件
onHideUploader() {
this.setState({
showUploader: false
})
};
//批量删除
deleteBatchesData(v) {
let pks;
if (!!v) {
pks = v && v.values.pk_psndoc_sub.value;
} else {
pks = this.getPkPsndocSub();
}
!!pks && handdleCheckedData(pks, 'delete', 'contract', () => {
this.delPrompt(pks)
});
}
// 删除确认弹窗
delPrompt(delDataPks) {
let fn = {
sureFn: () => {
this.deleteData(delDataPks)
}
}
let content = {
content: this.state.json['hrcm-000021']
}
this.promptBoxModal(content, fn);
}
//行删除事件
// deleteRowData(v){
// let pks = v && v.values.pk_psndoc_sub.value;
// handdleCheckedData(pks, 'delete', 'contract', ()=>{
// this.delPrompt(pks);
// });
// }
// //是否删除行上数据
// isDeleteRowData(delDataPks){
// let { json } = this.state;
// let fn = {
// sureFn: ()=>{ this.deleteData(delDataPks) }
// }
// let content = {
// content: json['hrcm-000021']
// }
// this.promptBoxModal(content,fn);
// }
//删除数据
deleteData(PKsData) {
let {storage_pk, isDataListPage, pk_org} = this.state;
let isCard = isDataListPage ? false : true;
ajax({
url: '/nccloud/hrcm/make/MakeDeleteAction.do',
data: {
pk_org: pk_org,
modename: 'hi_psndoc_ctrt', //此处暂时写死
isCard: isCard,
allpks: PKsData
},
success: res => {
if (res.success && res.data) {
if (isCard) {
let allpks = cacheTools.get('allpks') || [];
let index = 0;
let len = allpks.length;
len && allpks.forEach((v, i) => {
if (v == PKsData) {
allpks.splice(i, 1);
if (i < len - 1) {
index = i;
} else if (i == len - 1) {
index = i - 1;
}
}
})
cacheTools.set('allpks', allpks);
if (allpks.length === 0) {
this.header.handleBackBtn(() => {
this.setState({
isDataListPage: true
}, () => {
this.props.button.setButtonVisible(['newAdd', 'delete', 'refresh', 'takeEffect', 'query'], true);
this.props.button.setButtonVisible(['save1', 'cancel1', 'text', 'file', 'edit'], false);
this.fetchTableData({key: allpks[index]});
})
})
} else {
this.fetchTableData({key: allpks[index]});
}
} else {
this.fetchTableData({key: storage_pk});
}
}
}
})
}
sendContract(v, record) {
let pks = v
ajax({
url: '/nccloud/axj/hr/ContractSignAction.do',
data: {
billId: pks
},
success: res => {
console.log(res)
if (res.success && !!res.data) {
toast({color: 'success', content: "合同发送成功!"});
} else {
toast({color: 'warning', content: res.error.message});
}
}
})
}
//合同文本
contractText(v, record) {
let pks = v;
let json = this.state.json;
if (IsMac(json['hrcm-000040'])) {
return false
}
ajax({
url: '/nccloud/hrcm/templet/ContractTextViewAction.do',
data: {
pk_org: this.state.pk_org,
pk_psndoc_subs: pks,
},
success: res => {
if (res.success && !!res.data) {
// let protocol = window.location.protocol;
// let host = window.location.host;
// let openUrl = "uclient://start/" + protocol + "//" + host + res.data;
// // let winOpen = window.open('','_self');
// top.location.href = openUrl;
if (this.state.isDataListPage) {
this.state.nodeRefs.wpsview.openView([{data: record}], 'ct')
} else {
/*获取表单所有数据*/
let formData = this.props.form.getAllFormValue(cardId).rows;
this.state.nodeRefs.wpsview.openView(formData, 'ct')
}
} else {
toast({color: 'warning', content: res.error.message});
}
}
})
}
//操作翻页方法
changePagination(pageInfo) {
const {conditions} = this.state
this.setState({
pageInfo
}, () => {
this.fetchTableData({conditions});
})
}
//改变每页展示数据量
pageSizeSelect(pageInfo) {
const {conditions} = this.state
this.setState({
pageInfo
}, () => {
this.fetchTableData({conditions});
})
}
//取消编辑态
cancelEditStatus() {
let {json} = this.state;
let fn1 = {
sureFn: this.updateShowMode.bind(this)
}
let content = {
content: json['hrcm-000022']
}
this.promptBoxModal(content, fn1, 'browse');
}
//附件管理
attachManage(record) {
let billId, billNo;
if (!!record) {
billId = record.values.pk_psndoc_sub.value;
billNo = record.values.contractnum.value
} else {
let cardData = this.props.form.getAllFormValue(cardId).rows[0].values;
billId = cardData.pk_psndoc_sub.value;
billNo = cardData.contractnum.value;
}
handdleCheckedData(billId, 'attachment', 'contract', () => {
this.setState({
showUploader: true,
billId: billId,
billNo: billNo
})
});
}
//打开查询
listQuery() {
let {pk_org} = this.state;
this.props.search.openAdvSearch('listquery', true, () => {
let meta = this.props.meta.getMeta();
let items = meta.listquery.items;
items.length > 0 && items.map((item, index) => {
if (item.attrcode === 'pk_psnjob.pk_dept') {
item.queryCondition = {
pk_hrorg: pk_org
}
} else if (item.attrcode === 'pk_conttext') {
item.queryCondition = {
pk_org: pk_org,
GridRefActionExt: 'nccloud.web.hrcm.make.sqlbuilder.ContModelGridSqlBuilder'
}
}
})
this.props.meta.setMeta(meta);
});
}
// 查询数据
searchData = () => {
// let conditions = props.search.getAllSearchData('query').conditions || [];
let getConditions = this.props.search.getQueryInfo('listquery', true);
let conditions = getConditions;
this.fetchTableData({conditions: conditions});
this.setState({
conditions
})
}
// 统一处理按钮事件
onBtnOperation(props, btncode) {
switch (btncode) {
case 'newAdd':
this.signNode.showNewIncreased(true)
break;
case 'edit':
this.modifyCheckData();
break;
case 'delete':
this.deleteBatchesData();
break;
case 'text':
let cardData = this.props.form.getAllFormValue(cardId);
let pk_psndoc_sub = cardData.rows[0].values.pk_psndoc_sub.value;
this.contractText(pk_psndoc_sub);
break;
case 'toXyy':
let selectRows = this.props.editTable.getCheckedRows(tableid);
let pk_psndoc_sub1 = selectRows && selectRows.length && selectRows[0].data.values.pk_psndoc_sub.value;
pk_psndoc_sub1 ? this.sendContract(pk_psndoc_sub1) : toast({color: 'warning', content: "请选择一条需求发起的合同!"});;
break;
case 'refresh':
this.refreshTableData(true);
break;
case 'save1':
this.saveTableData();
break;
case 'cancel1':
this.cancelEditStatus();
break;
case 'takeEffect':
this.isTakeEffectEvent();
break;
case 'file':
this.attachManage();
break;
case 'query':
this.listQuery();
break;
default:
break;
}
}
render() {
let {button, editTable, cardPagination, search, form} = this.props;
const {createCardPagination} = cardPagination;
let {createButtonApp} = button;
let {createEditTable} = editTable;
let {NCCreateSearch} = search;
let {createForm} = form;
let {
pageInfo,
isVisiblePagination,
isDataListPage,
rowData,
pk_org,
showUploader,
billId,
billNo,
json,
oid,
nodeRefs
} = this.state;
return (
{
this.header = node
}}
onBtnOperation={this.onBtnOperation.bind(this)}
handleBackClick={this.handleBackClick.bind(this)}
searchOrganizationChange={this.searchOrganizationChange.bind(this)}
handleCardPagination={this.handleCardPagination.bind(this)}
cancelEditStatus={this.cancelEditStatus.bind(this)}
>
{/* 生成表格 */}
{isDataListPage ? this.getTableListData() :
{createForm(cardId, {
useFixedHeader: true,
onAfterEvent: this.handleEditFormDate.bind(this),
onBeforeEvent: this.handleEditBefore.bind(this)
// onBeforeEvent: this.handleEditFormDateBefore.bind(this)
})}
}
{/* 操作翻页 */}
{
NCCreateSearch('listquery', {
clickSearchBtn: () => {
this.searchData()
},
onlyShowAdvArea: false,
showAdvSearchPlanBtn: true,
saveSearchPlan: true,
oid: oid,
onlyShowSuperBtn: true
})
}
{/* 调用新增组件 */}
{
this.signNode = node
}}
appCode={this.config.appcode}
nodeType={'sign'}
fetchTableData={this.fetchTableData.bind(this)}
storageOrgData={this.storageOrgData.bind(this)}
/>
{/* 附件管理 */}
{showUploader &&
}
nodeRefs.wpsview = ref}
appcode={getAppPageConfig().appcode}
pk_org={this.state.storageOrgData}
/>
);
}
}
export default CMSign;