UNPKG

dareway-rui

Version:

998 lines (911 loc) 51.7 kB
'use strict'; var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault'); Object.defineProperty(exports, '__esModule', { value: true }); exports.default = exports.AipForHeliosAPI = void 0; var _extends2 = _interopRequireDefault(require('@babel/runtime/helpers/extends')); var _regenerator = _interopRequireDefault(require('@babel/runtime/regenerator')); var _classCallCheck2 = _interopRequireDefault(require('@babel/runtime/helpers/classCallCheck')); var _createClass2 = _interopRequireDefault(require('@babel/runtime/helpers/createClass')); var _possibleConstructorReturn2 = _interopRequireDefault(require('@babel/runtime/helpers/possibleConstructorReturn')); var _getPrototypeOf2 = _interopRequireDefault(require('@babel/runtime/helpers/getPrototypeOf')); var _assertThisInitialized2 = _interopRequireDefault(require('@babel/runtime/helpers/assertThisInitialized')); var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits')); var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty')); var _react = _interopRequireDefault(require('react')); var _reactRedux = require('react-redux'); var _ModelNamespaceContext = _interopRequireDefault(require('../../core/rui/ModelNamespaceContext')); var _core = require('./../../core'); var _qwebchannel = _interopRequireDefault(require('./qwebchannel')); ///////////////////////////////////////////////////////////////////////////// // Dependency // // React // RUI - core ///////////////////////////////////////////////////////////////////////////// // Tag // var AipForHelios = /*#__PURE__*/ (function(_React$Component) { (0, _inherits2.default)(AipForHelios, _React$Component); function AipForHelios(props) { var _this; (0, _classCallCheck2.default)(this, AipForHelios); _this = (0, _possibleConstructorReturn2.default)( this, (0, _getPrototypeOf2.default)(AipForHelios).call(this, props) ); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'componentDidMount', function() { var thunk = _this.props.thunk; _this .initObjectX() .then(function() { return _this.showObjectX(); }) // .then(() => { // return this.doJSNotifyBeforeAction(); // }) .then(thunk); }); (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'componentWillUnmount', function() { _this.hideObjectX(); } ); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'getElementLeft', function( element ) { var actualLeft = element.offsetLeft; var current = element.offsetParent; while (current !== null) { actualLeft += current.offsetLeft; current = current.offsetParent; } return actualLeft; }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'getElementTop', function( element ) { //元素距顶部文档的距离 var actualTop = element.offsetTop; var current = element.offsetParent; while (current !== null) { actualTop += current.offsetTop; current = current.offsetParent; } return actualTop; }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'p', void 0); _this.object_id = _this.props.__draco__tag__namespace__; return _this; } (0, _createClass2.default)(AipForHelios, [ { key: 'render', value: function render() { return _react.default.createElement( 'div', { style: { width: '100%', height: '99%' } }, _react.default.createElement('object', { classID: 'clsid:FF1FE7A0-0578-4FEE-A34E-FB21B277D561', id: this.object_id, style: { width: '100%', height: '99%' }, type: 'application/x-qt-plugin' }) ); } }, { key: 'initObjectX', // 初始化组件 value: function initObjectX() { return new Promise(function(resolve, reject) { new _qwebchannel.default(qt.webChannelTransport, function(channel) { window.bridge = channel.objects.bridge; if (!window.AipChannelForHelios) { window.AipChannelForHelios = {}; } resolve(); }); }); } }, { key: 'showObjectX', // // 显示组件 value: function showObjectX() { var _this2 = this; return new Promise(function(resolve, reject) { if (window.bridge) { var object_id = _this2.object_id; var offset = ((Math.random() * 10) % 5) + 2; var object = new Object(); object.classid = 'FF1FE7A0-0578-4FEE-A34E-FB21B277D561'; object.showflag = 'true'; object.x = _this2.getElementLeft(document.getElementById(object_id)); object.y = _this2.getElementTop(document.getElementById(object_id)); object.w = document.getElementById(object_id).clientWidth - offset; object.h = document.getElementById(object_id).clientHeight; object.objid = object_id; window.bridge.getDeviceProxy(object, function() { new _qwebchannel.default(qt.webChannelTransport, function(channel) { window[object_id] = channel.objects[object_id]; // 属性设置 window[object_id].ShowDefMenu(0); // 隐藏菜单栏 0为隐藏; 1为显示 window[object_id].ShowScrollBarButton(1); // 隐藏水平滚动条旁的工具条 window[object_id].ShowToolBar('0'); // 隐藏工具栏 0为隐藏; 1为显示 window[object_id].JSEnv(1); resolve(); }); }); } }); } // 隐藏组件 }, { key: 'hideObjectX', value: function hideObjectX() { var object_id = this.object_id; if (window[object_id]) { window[object_id].setObjectVisible(false); } } } ]); return AipForHelios; })(_react.default.Component); ///////////////////////////////////////////////////////////////////////////// // API Factory // var AipForHeliosAPI = /*#__PURE__*/ (function() { function AipForHeliosAPI(namespace, initObjectXThunk) { (0, _classCallCheck2.default)(this, AipForHeliosAPI); this.namespace = namespace; this.initObjectXThunk = initObjectXThunk; } // 登录 (0, _createClass2.default)(AipForHeliosAPI, [ { key: 'login', value: /*#__PURE__*/ _regenerator.default.mark(function login( pcUserID, lUserType, lUserAccess, pcPwd, StampAndPrint_Service_Url ) { var namespace, thunk; return _regenerator.default.wrap( function login$(_context) { while (1) { switch ((_context.prev = _context.next)) { case 0: namespace = this.namespace; thunk = this.initObjectXThunk; _context.next = 4; return new Promise(function(resolve, reject) { thunk.then(function() { // 定义回调函数 window.AipChannelForHelios[ ''.concat(namespace, '_Login') ] = function(retValue) { delete window.AipChannelForHelios[ ''.concat(namespace, '_Login') ]; resolve(retValue); }; // 调用浏览器接口 window[namespace].Login( pcUserID, lUserType, lUserAccess, pcPwd, StampAndPrint_Service_Url, 'window.AipChannelForHelios.'.concat(namespace, '_Login') ); }); }); case 4: return _context.abrupt('return', _context.sent); case 5: case 'end': return _context.stop(); } } }, login, this ); }) // 加载文件 }, { key: 'loadFile', value: /*#__PURE__*/ _regenerator.default.mark(function loadFile(fileUrl) { var namespace, thunk; return _regenerator.default.wrap( function loadFile$(_context2) { while (1) { switch ((_context2.prev = _context2.next)) { case 0: namespace = this.namespace; thunk = this.initObjectXThunk; _context2.next = 4; return new Promise(function(resolve, reject) { thunk.then(function() { // 定义回调函数 window.AipChannelForHelios[ ''.concat(namespace, '_LoadFile') ] = function(retValue) { delete window.AipChannelForHelios[ ''.concat(namespace, '_LoadFile') ]; resolve(retValue); }; // 调用浏览器接口 window[namespace].LoadFile( fileUrl, 'window.AipChannelForHelios.'.concat(namespace, '_LoadFile') ); }); }); case 4: return _context2.abrupt('return', _context2.sent); case 5: case 'end': return _context2.stop(); } } }, loadFile, this ); }) // 打印 }, { key: 'print', value: /*#__PURE__*/ _regenerator.default.mark(function print() { var namespace, thunk; return _regenerator.default.wrap( function print$(_context3) { while (1) { switch ((_context3.prev = _context3.next)) { case 0: namespace = this.namespace; thunk = this.initObjectXThunk; _context3.next = 4; return new Promise(function(resolve, reject) { thunk.then(function() { // 定义回调函数 window.AipChannelForHelios[ ''.concat(namespace, '_PrintDoc') ] = function(retValue) { delete window.AipChannelForHelios[ ''.concat(namespace, '_PrintDoc') ]; resolve(retValue); }; window[namespace].PrintDoc( 1, 1, 1, 'window.AipChannelForHelios.'.concat(namespace, '_PrintDoc') ); }); }); case 4: return _context3.abrupt('return', _context3.sent); case 5: case 'end': return _context3.stop(); } } }, print, this ); }) // 打印测试 }, { key: 'printDW', value: /*#__PURE__*/ _regenerator.default.mark(function printDW( strPrinterName, lPrintFlag, blShowDlg, blZoom, lFromPage, lToPage, blOriSize, lCopys, blCollate, blTranFirst, blDulpex, maxNum ) { var namespace, thunk; return _regenerator.default.wrap( function printDW$(_context4) { while (1) { switch ((_context4.prev = _context4.next)) { case 0: namespace = this.namespace; thunk = this.initObjectXThunk; _context4.next = 4; return new Promise(function(resolve, reject) { thunk.then(function() { // 定义回调函数 window.AipChannelForHelios[ ''.concat(namespace, '_PrintDocEx') ] = function(retValue) { delete window.AipChannelForHelios[ ''.concat(namespace, '_PrintDocEx') ]; resolve(retValue); }; window[namespace].setVarValue(maxNum); var objpara = new Object(); objpara.strPrinterName = strPrinterName; objpara.lPrintFlag = lPrintFlag; objpara.blShowDlg = blShowDlg; objpara.blZoom = blZoom; objpara.lFromPage = lFromPage; objpara.lToPage = lToPage; objpara.blOriSize = blOriSize; objpara.lCopys = lCopys; objpara.blCollate = blCollate; objpara.blTranFirst = blTranFirst; objpara.blDulpex = blDulpex; window[namespace].PrintDocEx( objpara, 'window.AipChannelForHelios.'.concat(namespace, '_PrintDocEx') ); }); }); case 4: return _context4.abrupt('return', _context4.sent); case 5: case 'end': return _context4.stop(); } } }, printDW, this ); }) // 关闭 }, { key: 'close', value: /*#__PURE__*/ _regenerator.default.mark(function close() { var namespace, thunk; return _regenerator.default.wrap( function close$(_context5) { while (1) { switch ((_context5.prev = _context5.next)) { case 0: namespace = this.namespace; thunk = this.initObjectXThunk; _context5.next = 4; return new Promise(function(resolve, reject) { thunk.then(function() { // 定义回调函数 window.AipChannelForHelios[ ''.concat(namespace, '_CloseDoc') ] = function(retValue) { delete window.AipChannelForHelios[ ''.concat(namespace, '_CloseDoc') ]; resolve(retValue); }; // 调用浏览器接口 window[namespace].CloseDoc( 0, 'window.AipChannelForHelios.'.concat(namespace, '_CloseDoc') ); }); }); case 4: return _context5.abrupt('return', _context5.sent); case 5: case 'end': return _context5.stop(); } } }, close, this ); }) // 盖章 }, { key: 'setSeal', value: /*#__PURE__*/ _regenerator.default.mark(function setSeal( pcDocID, pcProvider, pcDocType, pcDocTitle, pcDocKeyWords, lPrnCpys, pcDocSaveURL, blToAddSeal ) { var namespace, thunk; return _regenerator.default.wrap( function setSeal$(_context6) { while (1) { switch ((_context6.prev = _context6.next)) { case 0: namespace = this.namespace; thunk = this.initObjectXThunk; _context6.next = 4; return new Promise(function(resolve, reject) { thunk.then(function() { // 定义回调函数 window.AipChannelForHelios[ ''.concat(namespace, '_RegisterDocByProvider') ] = function(retValue) { delete window.AipChannelForHelios[ ''.concat(namespace, '_RegisterDocByProvider') ]; resolve(retValue); }; // 调用浏览器接口 window[namespace].RegisterDocByProvider({ pcDocID: pcDocID, pcProvider: pcProvider, pcDocType: pcDocType, pcDocTitle: pcDocTitle, pcDocKeyWords: pcDocKeyWords, lPrnCpys: lPrnCpys, pcDocSaveURL: pcDocSaveURL, blToAddSeal: blToAddSeal, fun: 'window.AipChannelForHelios.'.concat( namespace, '_RegisterDocByProvider' ) }); }); }); case 4: return _context6.abrupt('return', _context6.sent); case 5: case 'end': return _context6.stop(); } } }, setSeal, this ); }) //手动盖章 }, { key: 'manualSeal', value: /*#__PURE__*/ _regenerator.default.mark(function manualSeal() { var namespace, thunk; return _regenerator.default.wrap( function manualSeal$(_context7) { while (1) { switch ((_context7.prev = _context7.next)) { case 0: namespace = this.namespace; thunk = this.initObjectXThunk; _context7.next = 4; return new Promise(function(resolve, reject) { thunk.then(function() { // 定义回调函数 window.AipChannelForHelios[ ''.concat(namespace, '_getCurrAction') ] = function(retValue) { delete window.AipChannelForHelios[ ''.concat(namespace, '_getCurrAction') ]; retValue == 2568 ? window[namespace].CurrAction(0) : window[namespace].CurrAction(2568); }; // 调用浏览器接口 window[namespace].getCurrAction( 'window.AipChannelForHelios.'.concat( namespace, '_getCurrAction' ) ); }); }); case 4: return _context7.abrupt('return', _context7.sent); case 5: case 'end': return _context7.stop(); } } }, manualSeal, this ); }) // 获取当前控件中文件已盖章个数 }, { key: 'getNoteNum', value: /*#__PURE__*/ _regenerator.default.mark(function getNoteNum(type) { var namespace, thunk; return _regenerator.default.wrap( function getNoteNum$(_context8) { while (1) { switch ((_context8.prev = _context8.next)) { case 0: namespace = this.namespace; thunk = this.initObjectXThunk; _context8.next = 4; return new Promise(function(resolve, reject) { thunk.then(function() { // 定义回调函数 window.AipChannelForHelios[ ''.concat(namespace, '_GetNoteNum') ] = function(retValue) { delete window.AipChannelForHelios[ ''.concat(namespace, '_GetNoteNum') ]; resolve(retValue); }; // 调用浏览器接口 window[namespace].GetNoteNum( type, 'window.AipChannelForHelios.'.concat(namespace, '_GetNoteNum') ); }); }); case 4: return _context8.abrupt('return', _context8.sent); case 5: case 'end': return _context8.stop(); } } }, getNoteNum, this ); }) // 获取某业务类型已经打印份数 }, { key: 'getPrintedNum', value: /*#__PURE__*/ _regenerator.default.mark(function getPrintedNum(bussinessType, StampAndPrint_Service_SystemId) { var namespace, thunk; return _regenerator.default.wrap( function getPrintedNum$(_context9) { while (1) { switch ((_context9.prev = _context9.next)) { case 0: namespace = this.namespace; thunk = this.initObjectXThunk; _context9.next = 4; return new Promise(function(resolve, reject) { thunk.then(function() { // 定义回调函数 window.AipChannelForHelios[ ''.concat(namespace, '_GetPrnNumByProvider') ] = function(retValue) { delete window.AipChannelForHelios[ ''.concat(namespace, '_GetPrnNumByProvider') ]; resolve(retValue); }; // 调用浏览器接口 window[namespace].GetPrnNumByProvider( bussinessType, StampAndPrint_Service_SystemId, 'window.AipChannelForHelios.'.concat( namespace, '_GetPrnNumByProvider' ) ); }); }); case 4: return _context9.abrupt('return', _context9.sent); case 5: case 'end': return _context9.stop(); } } }, getPrintedNum, this ); }) // 获取某业务类型需要的盖章的数目 }, { key: 'getPrnNumByProvider', value: /*#__PURE__*/ _regenerator.default.mark(function getPrnNumByProvider( bussinessType, StampAndPrint_Service_SystemId ) { var namespace, thunk; return _regenerator.default.wrap( function getPrnNumByProvider$(_context10) { while (1) { switch ((_context10.prev = _context10.next)) { case 0: namespace = this.namespace; thunk = this.initObjectXThunk; _context10.next = 4; return new Promise(function(resolve, reject) { thunk.then(function() { // 定义回调函数 window.AipChannelForHelios[ ''.concat(namespace, '_GetPrnNumByProvider') ] = function(retValue) { delete window.AipChannelForHelios[ ''.concat(namespace, '_GetPrnNumByProvider') ]; resolve(retValue); }; // 调用浏览器接口 window[namespace].GetPrnNumByProvider( 'Serv::'.concat(bussinessType), StampAndPrint_Service_SystemId, 'window.AipChannelForHelios.'.concat( namespace, '_GetPrnNumByProvider' ) ); }); }); case 4: return _context10.abrupt('return', _context10.sent); case 5: case 'end': return _context10.stop(); } } }, getPrnNumByProvider, this ); }) // 设置打印份数 入参 pcUserID, ProvDocID, pcProvider, MaxNum 需要先登陆 }, { key: 'setPrnNumByProvider', value: /*#__PURE__*/ _regenerator.default.mark(function setPrnNumByProvider( pcUserID, docId, StampAndPrint_Service_SystemId, printNo ) { var namespace, thunk; return _regenerator.default.wrap( function setPrnNumByProvider$(_context11) { while (1) { switch ((_context11.prev = _context11.next)) { case 0: namespace = this.namespace; thunk = this.initObjectXThunk; _context11.next = 4; return new Promise(function(resolve, reject) { thunk.then(function() { // 定义回调函数 window.AipChannelForHelios[ ''.concat(namespace, '_SetPrnNumByProvider') ] = function(retValue) { delete window.AipChannelForHelios[ ''.concat(namespace, '_SetPrnNumByProvider') ]; resolve(retValue); }; // 调用浏览器接口 window[namespace].SetPrnNumByProvider( pcUserID, docId, StampAndPrint_Service_SystemId, printNo, 'window.AipChannelForHelios.'.concat( namespace, '_SetPrnNumByProvider' ) ); }); }); case 4: return _context11.abrupt('return', _context11.sent); case 5: case 'end': return _context11.stop(); } } }, setPrnNumByProvider, this ); }) }, { key: 'getFileBase64', value: /*#__PURE__*/ _regenerator.default.mark(function getFileBase64(path, type) { var namespace, thunk; return _regenerator.default.wrap( function getFileBase64$(_context12) { while (1) { switch ((_context12.prev = _context12.next)) { case 0: namespace = this.namespace; thunk = this.initObjectXThunk; _context12.next = 4; return new Promise(function(resolve, reject) { thunk.then(function() { // 定义回调函数 window.AipChannelForHelios[ ''.concat(namespace, '_GetFileBase64') ] = function(retValue) { delete window.AipChannelForHelios[ ''.concat(namespace, '_GetFileBase64') ]; resolve(retValue); }; // 调用浏览器接口 window[namespace].GetFileBase64( path, type, 'window.AipChannelForHelios.'.concat( namespace, '_GetFileBase64' ) ); }); }); case 4: return _context12.abrupt('return', _context12.sent); case 5: case 'end': return _context12.stop(); } } }, getFileBase64, this ); }) }, { key: 'getCurrFileBase64', value: /*#__PURE__*/ _regenerator.default.mark(function getCurrFileBase64() { var namespace, thunk; return _regenerator.default.wrap( function getCurrFileBase64$(_context13) { while (1) { switch ((_context13.prev = _context13.next)) { case 0: namespace = this.namespace; thunk = this.initObjectXThunk; _context13.next = 4; return new Promise(function(resolve, reject) { thunk.then(function() { // 定义回调函数 window.AipChannelForHelios[ ''.concat(namespace, '_GetCurrFileBase64') ] = function(retValue) { delete window.AipChannelForHelios[ ''.concat(namespace, '_GetCurrFileBase64') ]; resolve(retValue); }; // 调用浏览器接口 window[namespace].GetCurrFileBase64( 'window.AipChannelForHelios.'.concat( namespace, '_GetCurrFileBase64' ) ); }); }); case 4: return _context13.abrupt('return', _context13.sent); case 5: case 'end': return _context13.stop(); } } }, getCurrFileBase64, this ); }) } ]); return AipForHeliosAPI; })(); ///////////////////////////////////////////////////////////////////////////// // Model Factory // exports.AipForHeliosAPI = AipForHeliosAPI; function modelFactory(namespace, initObjectXThunk) { return { namespace: namespace, state: { __draco__tag__api__factory__: function __draco__tag__api__factory__(namespace) { return new AipForHeliosAPI(namespace, initObjectXThunk); } }, effects: {}, reducers: {} }; } ///////////////////////////////////////////////////////////////////////////// // Tag Wrapper // var AipForHeliosWarpper = /*#__PURE__*/ (function(_React$Component2) { (0, _inherits2.default)(AipForHeliosWarpper, _React$Component2); function AipForHeliosWarpper(props) { var _this3; (0, _classCallCheck2.default)(this, AipForHeliosWarpper); _this3 = (0, _possibleConstructorReturn2.default)( this, (0, _getPrototypeOf2.default)(AipForHeliosWarpper).call(this, props) ); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this3), 'createThunk', function() { var done = false; var callbacks = []; var thunk = function thunk() { done = true; for (var i = 0; i < callbacks.length; i++) { callbacks[i](); } }; thunk.then = function(callback) { if (done) { callback(); return; } callbacks.push(callback); }; return thunk; }); _this3.initObjectXThunk = _this3.createThunk(); _this3.componentNamespace = ''.concat(_this3.props.modelNamespace, '_').concat(_this3.props.name); _this3.model = modelFactory(_this3.componentNamespace, _this3.initObjectXThunk); return _this3; } (0, _createClass2.default)(AipForHeliosWarpper, [ { key: 'componentWillMount', value: function componentWillMount() { var _this4 = this; _core.RUICore.registerModel(this.model); var connector = (0, _reactRedux.connect)(function(store) { return { __draco__tag__namespace__: _this4.componentNamespace }; }); this.ConnectedComponent = connector(AipForHelios); } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { _core.RUICore.unr