каркас вроде есть
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ResolveScreen = void 0;
|
||||
var tslib_1 = require("tslib");
|
||||
var React = tslib_1.__importStar(require("react"));
|
||||
var models_1 = require("../../models");
|
||||
var ui_1 = require("../ui");
|
||||
var STATUS_OPTIONS = [models_1.RouteStepStatus.Approval, models_1.RouteStepStatus.Execution]
|
||||
.map(function (v) { return ({ value: v, label: models_1.routeStepStatusLabels[v] }); });
|
||||
var ResolveScreen = function (_a) {
|
||||
var api = _a.api, currentUserEmail = _a.currentUserEmail;
|
||||
var _b = React.useState([]), requestTypes = _b[0], setRequestTypes = _b[1];
|
||||
var _c = React.useState(''), requestTypeId = _c[0], setRequestTypeId = _c[1];
|
||||
var _d = React.useState(''), userEmail = _d[0], setUserEmail = _d[1];
|
||||
var _e = React.useState(''), projectId = _e[0], setProjectId = _e[1];
|
||||
var _f = React.useState(models_1.RouteStepStatus.Approval), status = _f[0], setStatus = _f[1];
|
||||
var _g = React.useState(false), busy = _g[0], setBusy = _g[1];
|
||||
var _h = React.useState(), error = _h[0], setError = _h[1];
|
||||
var _j = React.useState(), result = _j[0], setResult = _j[1];
|
||||
React.useEffect(function () {
|
||||
api.requestTypes.list().then(setRequestTypes).catch(function () { });
|
||||
}, [api]);
|
||||
var run = function () {
|
||||
if (!requestTypeId) {
|
||||
setError('Выберите тип заявки.');
|
||||
return;
|
||||
}
|
||||
setBusy(true);
|
||||
setError(undefined);
|
||||
setResult(undefined);
|
||||
api.templateRoutes
|
||||
.resolve({
|
||||
requestTypeId: Number(requestTypeId),
|
||||
userEmail: userEmail.trim() || undefined,
|
||||
projectId: projectId.trim() || undefined,
|
||||
status: status
|
||||
})
|
||||
.then(setResult)
|
||||
.catch(function (e) { return setError(e.message); })
|
||||
.finally(function () { return setBusy(false); });
|
||||
};
|
||||
return (React.createElement("div", null,
|
||||
React.createElement(ui_1.Breadcrumbs, { items: [{ label: 'Главная' }, { label: 'Проверка маршрута' }] }),
|
||||
React.createElement(ui_1.PageHeader, { icon: "search", subtitle: "\u0414\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0430", title: "\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F \u043C\u0430\u0440\u0448\u0440\u0443\u0442\u0430" }),
|
||||
React.createElement("div", { style: { background: '#fff', borderRadius: 14, padding: 26, boxShadow: 'var(--sh-1)', border: '1px solid var(--gray-200)', marginBottom: 24 } },
|
||||
React.createElement(ui_1.FormGrid, null,
|
||||
React.createElement(ui_1.Field, { label: "\u0422\u0438\u043F \u0437\u0430\u044F\u0432\u043A\u0438", required: true, full: true },
|
||||
React.createElement(ui_1.Select, { options: requestTypes.map(function (rt) { return ({ value: String(rt.id), label: rt.name }); }), placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0438\u043F \u0437\u0430\u044F\u0432\u043A\u0438", value: requestTypeId, onChange: function (e) { return setRequestTypeId(e.target.value); } })),
|
||||
React.createElement(ui_1.Field, { label: "Email \u0438\u043D\u0438\u0446\u0438\u0430\u0442\u043E\u0440\u0430", hint: currentUserEmail ? "\u041F\u0443\u0441\u0442\u043E = \u0442\u0435\u043A\u0443\u0449\u0438\u0439 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C (".concat(currentUserEmail, ").") : 'Пусто = текущий пользователь из токена.' },
|
||||
React.createElement(ui_1.TextInput, { value: userEmail, onChange: function (e) { return setUserEmail(e.target.value); }, placeholder: "user@tnsu.kz" })),
|
||||
React.createElement(ui_1.Field, { label: "Id \u043F\u0440\u043E\u0435\u043A\u0442\u0430 (Guid)", hint: "\u0417\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u0435, \u0435\u0441\u043B\u0438 \u043C\u0430\u0440\u0448\u0440\u0443\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043E\u0442 \u043F\u0440\u043E\u0435\u043A\u0442\u0430." },
|
||||
React.createElement(ui_1.TextInput, { value: projectId, onChange: function (e) { return setProjectId(e.target.value); }, placeholder: "\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E" })),
|
||||
React.createElement(ui_1.Field, { label: "\u0421\u0442\u0430\u0442\u0443\u0441", required: true },
|
||||
React.createElement(ui_1.Select, { options: STATUS_OPTIONS, value: status, onChange: function (e) { return setStatus(e.target.value); } }))),
|
||||
React.createElement("div", { style: { marginTop: 18 } },
|
||||
React.createElement(ui_1.Button, { variant: "accent", icon: "search", onClick: run, disabled: busy }, busy ? 'Проверка...' : 'Проверить'))),
|
||||
error && React.createElement(ui_1.Alert, { kind: "err" }, error),
|
||||
result && (React.createElement(React.Fragment, null,
|
||||
React.createElement(ui_1.Alert, { kind: "ok" },
|
||||
"\u041C\u0430\u0440\u0448\u0440\u0443\u0442 #",
|
||||
result.routeId,
|
||||
" \u00B7 ",
|
||||
models_1.routeTypeLabels[result.routeType],
|
||||
result.requiresControl ? ' · требуется контроль исполнения' : ''),
|
||||
React.createElement(ui_1.DataTable, { columns: [
|
||||
{ key: 'order', header: '№', width: '50px', render: function (r) { return r.orderNo; } },
|
||||
{ key: 'executor', header: 'Исполнитель', render: function (r) { var _a; return React.createElement(ui_1.PrimaryCell, null, (_a = r.executorEmail) !== null && _a !== void 0 ? _a : '—'); } },
|
||||
{ key: 'position', header: 'Должность', render: function (r) { var _a; return (_a = r.position) !== null && _a !== void 0 ? _a : '—'; } },
|
||||
{
|
||||
key: 'reassign',
|
||||
header: 'Переназначение',
|
||||
align: 'center',
|
||||
render: function (r) { return (r.allowReassignToOtherApprovers ? 'Разрешено' : 'Нет'); }
|
||||
}
|
||||
], rows: result.steps, keyOf: function (r) { return r.id; }, emptyMessage: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u043B\u0441\u044F \u0431\u0435\u0437 \u0448\u0430\u0433\u043E\u0432 \u0434\u043B\u044F \u044D\u0442\u043E\u0433\u043E \u0441\u0442\u0430\u0442\u0443\u0441\u0430." })))));
|
||||
};
|
||||
exports.ResolveScreen = ResolveScreen;
|
||||
//# sourceMappingURL=ResolveScreen.js.map
|
||||
Reference in New Issue
Block a user