UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

274 lines (273 loc) 17.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_1 = tslib_1.__importStar(require("react")); var antd_1 = require("antd"); var icons_1 = require("@ant-design/icons"); var lodash_1 = require("lodash"); require("./index.scss"); var FlowProcess_1 = tslib_1.__importDefault(require("../FlowProcess")); var helper_1 = require("../../../utils/helper"); var icons_2 = require("../../icons"); var utils_1 = require("../../../renderers/Lion/utils/utils"); var tools_1 = require("../../../utils/shell/tools"); var statusObj = { submit: '提交申请', waiting: '待签核', doing: '签核中', revert: '撤销', refuse: '拒绝', pass: '通过', return: '退回' }; var ModalFlow = function (props) { var _a; var visible = props.visible, render = props.render, onClose = props.onClose, env = props.env, flowDetail = props.flowDetail, onImageEnlarge = props.onImageEnlarge, language = props.language; var Mobile = (0, helper_1.isMobile)(); // 移动端按钮 var _b = (0, react_1.useState)(), form = _b[0], setForm = _b[1]; var _c = (0, react_1.useState)(false), visibleOpen = _c[0], setVisibleOpen = _c[1]; var replacedString = (_a = flowDetail === null || flowDetail === void 0 ? void 0 : flowDetail.flowDesc) === null || _a === void 0 ? void 0 : _a.replace(/\r\n/g, '<br>'); var _d = (0, react_1.useState)(false), spinning = _d[0], setSpinning = _d[1]; var currentaudit = function (value, title, titletype) { if (title === void 0) { title = ''; } if (titletype === void 0) { titletype = false; } if (title !== 'doneItem' || titletype) { switch (value) { case "doing": // 待审批 return react_1.default.createElement("span", { className: "process_content_icon ".concat(!Mobile ? 'process_content_' + value : "") }, Mobile ? react_1.default.createElement(icons_2.Icon, { icon: "under-approval", className: "icon" }) : '签核中'); case "refuse": // 已拒绝 return react_1.default.createElement("span", { className: "process_content_icon ".concat(!Mobile ? 'process_content_' + value : "") }, Mobile ? react_1.default.createElement(icons_2.Icon, { icon: "refuse", className: "icon" }) : '已拒绝'); case "pass": // 已通过 return react_1.default.createElement("span", { className: "process_content_icon ".concat('process_content_' + value) }, Mobile ? react_1.default.createElement(icons_2.Icon, { icon: "passed", className: "icon" }) : '已通过'); case "revert": // 已撤回 return react_1.default.createElement("span", { className: "process_content_icon ".concat('process_content_' + value) }, Mobile ? react_1.default.createElement(icons_2.Icon, { icon: "withdrawn", className: "icon" }) : '已撤回'); case "return": // 已退回 return react_1.default.createElement("span", { className: "process_content_icon ".concat('process_content_' + value) }, Mobile ? react_1.default.createElement(icons_2.Icon, { icon: "returnicon", className: "icon" }) : '已退回'); default: // 未定义 return react_1.default.createElement("span", null, value); } } else { switch (value) { case "refuse": // 已拒绝 return react_1.default.createElement("span", { className: "process_content_icon ".concat('process_content_' + value) }, react_1.default.createElement(icons_2.Icon, { icon: "rejected-icon", className: "icon" })); case "pass": // 已通过 return react_1.default.createElement("span", { className: "process_content_icon ".concat('process_content_' + value) }, react_1.default.createElement(icons_2.Icon, { icon: "passed-icon", className: "icon" })); case "revert": // 已撤回 return react_1.default.createElement("span", { className: "process_content_icon ".concat('process_content_' + value) }, react_1.default.createElement(icons_2.Icon, { icon: "refuse-icon", className: "icon" })); case "return": return react_1.default.createElement("span", { className: "process_content_icon ".concat('process_content_' + value) }, react_1.default.createElement(icons_2.Icon, { icon: "return-icon", className: "icon" })); default: // 未定义 return react_1.default.createElement("span", null); } } }; // 抽屉头部 var handleTltle = function (flowDetail) { return flowDetail ? react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement("div", { className: "detailed_title ".concat(!Mobile ? "detailed_border detailed_Mobile" : "") }, react_1.default.createElement("div", { className: 'detailed_title_left' }, react_1.default.createElement("div", { className: 'detailed_title_img_text' }, react_1.default.createElement("span", { className: 'detailed_title_img' }, react_1.default.createElement(icons_2.Icon, { icon: 'camera', className: "icon" })), react_1.default.createElement("span", { className: 'detailed_title_text' }, flowDetail && flowDetail.flowProcess.processDefinitionName)), flowDetail && currentaudit(flowDetail.flowProcess.processStatus)), react_1.default.createElement("div", { className: 'detailed_title_right' })), react_1.default.createElement("div", { className: 'characteristic' }, language('Flow.approval.id') + ":" + (flowDetail === null || flowDetail === void 0 ? void 0 : flowDetail.flowProcess.approvalNo), react_1.default.createElement(antd_1.Button, { type: "text", icon: react_1.default.createElement(icons_2.Icon, { icon: "copy", className: "icon", size: true }), size: 'small', className: "characteristic_but", onClick: function () { (0, utils_1.copy)(flowDetail === null || flowDetail === void 0 ? void 0 : flowDetail.flowProcess.approvalNo).then(function (_) { antd_1.message.success(language('System.copy')); }); } }))) : react_1.default.createElement(antd_1.Skeleton, { avatar: true, paragraph: { rows: 5 } }); }; var handleHeader = function () { return (flowDetail ? react_1.default.createElement("div", { className: "flow-drawer-header ".concat(!Mobile ? 'flow-drawer-header-mobile' : '') }, Mobile && react_1.default.createElement("div", { className: 'left-text', onClick: function () { return onClose(false); } }, react_1.default.createElement(icons_2.Icon, { icon: "title-left", style: { width: '16px', height: '16px' } })), react_1.default.createElement("div", { className: "flow-drawer-header-title" }, react_1.default.createElement("div", { className: "flow-drawer-title" }, tools_1.tools.isComWx ? (Mobile ? '' : (flowDetail && handleTltle(flowDetail))) : Mobile ? language('Flow.editDetail') : (flowDetail && handleTltle(flowDetail)))), react_1.default.createElement("div", { className: "flow-drawer-extra" }, !Mobile && react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement("div", { className: 'flow-drawer-icon' }, react_1.default.createElement("span", { className: 'right-text-icon', onClick: infoDetails }, react_1.default.createElement(icons_1.QuestionOutlined, null)), react_1.default.createElement("span", { className: "right-text" }, react_1.default.createElement("div", { style: { fontSize: '17px', cursor: 'pointer' }, onClick: function () { onClose(false); } }, react_1.default.createElement(icons_1.CloseOutlined, null)))), react_1.default.createElement("div", { className: 'flow-drawer-file' }, react_1.default.createElement("span", { className: 'right-text-icon' }), react_1.default.createElement("span", { className: 'right-text-icon', onClick: function () { return handlePrint(); } }, react_1.default.createElement(icons_2.Icon, { icon: "print", className: "icon" })))))) : react_1.default.createElement(antd_1.Skeleton, { avatar: true, paragraph: { rows: 2 } })); }; // 发起请求 var handleRadios = (0, lodash_1.debounce)(function (api, spin) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var data, res; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: spin && setSpinning(true); data = tslib_1.__assign({}, (flowDetail && flowDetail.flowProcess)); return [4 /*yield*/, env.fetcher(api, data).finally()]; case 1: res = _a.sent(); if (res.status === 0) { onClose(true); } else { antd_1.message.error(res.msg); } spin && setSpinning(false); return [2 /*return*/]; } }); }); }, 600); // 确定按钮文字 二次确定 var showModal = function (item) { if (item.name == "flow_cancel") { onClose(false); return; } }; var InPosition = function () { var data = flowDetail === null || flowDetail === void 0 ? void 0 : flowDetail.processNodeList.find(function (item) { return item.nodeStatus === "doing"; }); if (data) { return "".concat(language('Flow.process.to')).concat(data.nodeName, "\uFF0C").concat(language('Flow.withdraw'), "\uFF1F"); } else { return "".concat(language('Flow.the.process.has.ended'), "\uFF0C").concat(language('Flow.withdraw'), "\uFF1F"); } }; // 底部按钮 var handleFooter = function () { var _a; return (flowDetail ? react_1.default.createElement("div", { className: "handling_opinions" }, react_1.default.createElement(antd_1.Spin, { spinning: spinning, indicator: react_1.default.createElement(react_1.default.Fragment, null) }, (_a = flowDetail === null || flowDetail === void 0 ? void 0 : flowDetail.flowButtonList) === null || _a === void 0 ? void 0 : _a.map(function (item, index) { return (react_1.default.createElement(antd_1.Button, { className: "flowButtonList_button ".concat(item.name), onClick: function () { showModal(item); item.name == 'flow_revert' && info(item); item.name == 'flow_urge' && infoUrge(item); }, type: "primary", key: index }, item.label)); }))) : react_1.default.createElement(react_1.default.Fragment, null)); }; // 撤回按钮 var info = function (item) { antd_1.Modal.confirm({ // '确认撤回当前表单' title: '确认撤回当前表单', content: ((0, helper_1.isMobile)() ? '' : react_1.default.createElement("div", { style: { clear: 'both', paddingLeft: 14 } }, react_1.default.createElement("p", null, InPosition()))), centered: true, icon: react_1.default.createElement(icons_1.ExclamationCircleFilled, { style: { color: "#FDA71E", fontSize: 36 } }), onOk: function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, handleRadios(item.api, true)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }, getContainer: env.getModalContainer, zIndex: 1010, className: "".concat((0, helper_1.isMobile)() ? 'infoModalConfirm' : ''), okText: language('Flow.determine'), cancelText: language('cancel'), okButtonProps: { style: { background: '#FDA71E', color: 'white', borderColor: '#FDA71E', borderRadius: '4px', }, }, }); }; // 催办按钮 var infoUrge = function (item) { antd_1.Modal.confirm({ // // '确认撤回当前表单' title: '是否催办当前表单', onOk: function () { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, handleRadios(item.api, false)]; case 1: _a.sent(); return [2 /*return*/]; } }); }); }, getContainer: env.getModalContainer, zIndex: 1011, centered: true, className: "".concat((0, helper_1.isMobile)() ? 'infoModalConfirm' : ''), icon: react_1.default.createElement(react_1.default.Fragment, null), okText: language('Flow.determine'), cancelText: language('cancel') }); }; var infoDetails = function () { antd_1.Modal.info({ content: (react_1.default.createElement("div", { className: 'custom-modal-container-body' }, react_1.default.createElement("div", { dangerouslySetInnerHTML: { __html: replacedString || '' } }))), icon: react_1.default.createElement(react_1.default.Fragment, null), className: 'custom-modal-container', }); }; var handlePrint = function () { var _a; if (flowDetail) { form.handleAction(undefined, { actionType: "form-print", type: "button", level: "info", name: Math.random().toString(), label: "打印", printInfo: { title: flowDetail.flowProcess.processDefinitionName, subTitle: (_a = statusObj[flowDetail.flowProcess.processStatus]) !== null && _a !== void 0 ? _a : flowDetail.flowProcess.processStatus, extraTitle: "\u5BA1\u6279\u7F16\u53F7:".concat(flowDetail.flowProcess.approvalNo), printFlow: true, processNodeList: flowDetail.processNodeList } }); } }; return (react_1.default.createElement(react_1.default.Fragment, null, visible && react_1.default.createElement(antd_1.Drawer, { style: Mobile ? undefined : { height: 'calc(100vh - 44px)', top: '44px' }, maskClosable: true, className: "process_drawer flow_dom_drawer ".concat(Mobile ? 'mobile' : 'pc'), closable: false, width: Mobile ? "100%" : '100%', visible: visible, onClose: function () { return onClose(false); }, getContainer: env.getDrawerContainer, destroyOnClose: true, zIndex: Mobile ? 1010 : 9, footer: handleFooter(), placement: "right", bodyStyle: { overflow: 'hidden' } }, react_1.default.createElement(antd_1.Spin, { spinning: spinning, indicator: react_1.default.createElement(react_1.default.Fragment, null) }, handleHeader()), react_1.default.createElement(antd_1.Spin, { spinning: spinning, tip: '\u8BF7\u7A0D\u540E...' }, flowDetail ? react_1.default.createElement(FlowProcess_1.default, { getFilterForm: setForm, render: render, flowDetail: flowDetail, env: env, onImageEnlarge: onImageEnlarge, language: language, visibleOpen: visibleOpen, handleVisible: function (body) { return setVisibleOpen(body); } }) : react_1.default.createElement(antd_1.Skeleton, { paragraph: { rows: 20 } }))))); }; exports.default = ModalFlow; //# sourceMappingURL=./components/Mobileprocess/Workflow/index.js.map