index.js 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. import React, {Component} from 'react';
  2. import './index.less';
  3. import {high, promptBox} from 'nc-lightapp-front';
  4. import ReferSearch from 'src/hrpub/common/components/referSearch/org';
  5. import do_print from "src/hrpub/common/utils/print";
  6. import ExportHtml from "src/hrpub/common/utils/exportHtml";
  7. import setQueryMeta from '../../container/functions/setQueryMeta';
  8. import isMac from "../../../../../public/functions/isMac";
  9. import checkBtnPermission from "../../container/functions/checkBtnPermission";
  10. class Header extends Component {
  11. constructor(props) {
  12. super(props);
  13. this.state = {printData: {}};
  14. this.updateOrgValue = this.updateOrgValue.bind(this);
  15. this.onBtnOperation = this.onBtnOperation.bind(this);
  16. }
  17. updateOrgValue(value) {
  18. this.props.updateOrgValue(value);
  19. }
  20. onBtnOperation(props, btncode, areacode, opt) {
  21. switch (btncode) {
  22. case 'query':
  23. setQueryMeta.call(this);
  24. if (this.props.tabKey === 'contract') {
  25. this.props.search.openAdvSearch('contractquery', true);
  26. } else {
  27. this.props.search.openAdvSearch('agreementquery', true);
  28. }
  29. break;
  30. case 'refresh':
  31. this.props.refresh();
  32. break;
  33. case 'save':
  34. this.props.save();
  35. break;
  36. case 'cancel':
  37. promptBox({
  38. color: 'warning',
  39. title: this.props.json['cm6011-000000'],/* 国际化处理: 确认取消,确认取消*/
  40. content: this.props.json['cm6011-000001'],/* 国际化处理: 是否确认要取消?,是否确认要取消*/
  41. beSureBtnClick: () => {
  42. this.props.cancel();
  43. }
  44. });
  45. break;
  46. case 'edit':
  47. this.props.edit();
  48. break;
  49. case 'file':
  50. this.props.checkFileManage();
  51. /*this.props.updateState({
  52. showUploader: true
  53. });*/
  54. break;
  55. case 'print':
  56. if (this.props.tabKey === 'contract') {
  57. const el = document.querySelector('.contract-table').cloneNode(true);
  58. // const table = el.querySelector('.wui-table-content');
  59. // table.removeChild(table.lastElementChild);
  60. // table.removeChild(table.lastElementChild);
  61. // const tHeader = el.querySelector('.wui-table-header');
  62. // const tr = tHeader.querySelector('tr');
  63. // tr.removeChild(tr.firstElementChild);
  64. // tr.removeChild(tr.firstElementChild);
  65. // tr.removeChild(tr.lastElementChild);
  66. // tr.removeChild(tr.lastElementChild);
  67. const meta = JSON.parse(JSON.stringify(this.props.meta.getMeta()['contractList']));
  68. meta.items.pop();
  69. meta.items.pop();
  70. do_print(
  71. el,
  72. {
  73. title: this.props.json['cm6011-000068'] /* 国际化处理: 续签意见征询*/,
  74. maker: this.props.json['cm6011-000033'] /* 国际化处理: 打印人*/,
  75. date: this.props.json['cm6011-000034'] /* 国际化处理: 打印日期*/
  76. },
  77. {
  78. tableTmp: meta,
  79. data: this.props.table.getAllTableData('contractList').rows
  80. }
  81. );
  82. } else {
  83. const el = document.querySelector('.agree-table').cloneNode(true);
  84. // const table = el.querySelector('.wui-table-content');
  85. // table.removeChild(table.lastElementChild);
  86. // table.removeChild(table.lastElementChild);
  87. // const tHeader = el.querySelector('.wui-table-header');
  88. // const tr = tHeader.querySelector('tr');
  89. // tr.removeChild(tr.firstElementChild);
  90. // tr.removeChild(tr.firstElementChild);
  91. // tr.removeChild(tr.lastElementChild);
  92. // tr.removeChild(tr.lastElementChild);
  93. const meta = JSON.parse(JSON.stringify(this.props.meta.getMeta()['agreementList']));
  94. meta.items.pop();
  95. meta.items.pop();
  96. do_print(
  97. el,
  98. {
  99. title: this.props.json['cm6011-000069'] /* 国际化处理: 续签意见征询*/,
  100. maker: this.props.json['cm6011-000033'] /* 国际化处理: 打印人*/,
  101. date: this.props.json['cm6011-000034'] /* 国际化处理: 打印日期*/
  102. },
  103. {
  104. tableTmp: meta,
  105. data: this.props.table.getAllTableData('agreementList').rows
  106. }
  107. );
  108. }
  109. break;
  110. case 'export':
  111. if (this.props.tabKey === 'contract') {
  112. ExportHtml(document.querySelector('.contract-table'), {
  113. title: this.props.json['cm6011-000068'],
  114. fileName: this.props.json['cm6011-000068']
  115. }, {
  116. meta: this.props.meta.getMeta()['contractList'],
  117. data: this.props.table.getAllTableData('contractList').rows,
  118. showIndex: true
  119. })
  120. } else {
  121. ExportHtml(document.querySelector('.agree-table'), {
  122. title: this.props.json['cm6011-000069'],
  123. fileName: this.props.json['cm6011-000069']
  124. }, {
  125. meta: this.props.meta.getMeta()['agreementList'],
  126. data: this.props.table.getAllTableData('agreementList').rows,
  127. showIndex: true
  128. })
  129. }
  130. break;
  131. case 'viewbooklet':
  132. if (!isMac(this.props.json['cm6011-000148'])) {
  133. this.props.viewbooklet();
  134. }
  135. break;
  136. case 'viewAgree':
  137. if (!isMac(this.props.json['cm6011-000148'])) {
  138. this.props.viewAgreeText();
  139. }
  140. break;
  141. case 'browse':
  142. if (!isMac(this.props.json['cm6011-000148'])) {
  143. if (this.props.tabKey === 'contract') {
  144. this.props.viewbooklet();
  145. } else {
  146. this.props.viewAgreeText();
  147. }
  148. }
  149. break;
  150. case 'tempPrint':
  151. this.props.tempPrint();
  152. break;
  153. default:
  154. break;
  155. }
  156. }
  157. render() {
  158. const {button, orgVal, isEdit} = this.props;
  159. return (
  160. <div>
  161. <div className="header">
  162. <div className="header-refer">
  163. <ReferSearch disabled={isEdit} orgVal={orgVal} getOrgData={this.updateOrgValue}/>
  164. </div>
  165. <div className="btn-group">
  166. <div className="definition-icons">
  167. {button.createButtonApp({
  168. area: 'head',
  169. onButtonClick: (props, btncode) => {
  170. this.onBtnOperation(props, btncode, 'head', this);
  171. }
  172. })}
  173. </div>
  174. </div>
  175. </div>
  176. </div>
  177. );
  178. }
  179. }
  180. export default Header;