fastlion-amis
Version:
一种MIS页面生成工具
710 lines • 59.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var form_1 = tslib_1.__importDefault(require("antd/lib/form"));
var input_1 = tslib_1.__importDefault(require("antd/lib/input"));
var input_number_1 = tslib_1.__importDefault(require("antd/lib/input-number"));
var select_1 = tslib_1.__importDefault(require("antd/lib/select"));
var popover_1 = tslib_1.__importDefault(require("antd/lib/popover"));
var message_1 = tslib_1.__importDefault(require("antd/lib/message"));
var popconfirm_1 = tslib_1.__importDefault(require("antd/lib/popconfirm"));
var modal_1 = tslib_1.__importDefault(require("antd/lib/modal"));
var row_1 = tslib_1.__importDefault(require("antd/lib/row"));
var col_1 = tslib_1.__importDefault(require("antd/lib/col"));
var radio_1 = tslib_1.__importDefault(require("antd/lib/radio"));
var checkbox_1 = tslib_1.__importDefault(require("antd/lib/checkbox"));
var empty_1 = tslib_1.__importDefault(require("antd/lib/empty"));
var components_1 = require("../../../../components");
var print_1 = require("../../../../utils/print");
var icons_1 = require("../../../../components/icons");
var EditOutlined_1 = tslib_1.__importDefault(require("@ant-design/icons/lib/icons/EditOutlined"));
var Button_1 = tslib_1.__importDefault(require("../../../../components/Button"));
var util_1 = require("../../../../utils/print/util");
var types_1 = require("../types");
var moment_1 = tslib_1.__importDefault(require("moment"));
var Option = select_1.default.Option;
var LabelPrint = /** @class */ (function (_super) {
tslib_1.__extends(LabelPrint, _super);
function LabelPrint(props) {
var _this = _super.call(this, props) || this;
_this.formRef = react_1.default.createRef();
var __ = props.translate;
var operateOptions = [
{ optionName: __('CRUD.null'), optionValue: __('CRUD.null') },
{ optionName: __('CRUD.add'), optionValue: '+' },
{ optionName: __('CRUD.multiply'), optionValue: '*' },
];
_this.state = {
templateInputShow: false,
templateInputValue: '',
templateSelectValue: __('CRUD.selectTemplate'),
printConfigs: [],
templateInfos: [],
typeOptions: [{ optionName: __('CRUD.null'), optionValue: __('CRUD.null') }],
operateOptions: operateOptions,
showEmpty: true,
previewLoading: false,
printLoading: false,
visible: false
};
return _this;
}
LabelPrint.prototype.componentDidMount = function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, columns, numberField, types_2, templateInfos, printConfigs;
var _this = this;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
_a = this.props, columns = _a.columns, numberField = _a.numberField;
// 处理动态字段下拉值数组
if (numberField) {
types_2 = [];
columns === null || columns === void 0 ? void 0 : columns.forEach(function (item) {
if (~numberField.indexOf(item.name)) {
types_2.push({
optionName: item.label,
optionValue: item.name,
});
}
});
types_2.length > 0 && this.setState({ typeOptions: tslib_1.__spreadArray(tslib_1.__spreadArray([], this.state.typeOptions, true), types_2, true) });
}
return [4 /*yield*/, this.getTemplateInfos()];
case 1:
templateInfos = _b.sent();
return [4 /*yield*/, this.getPrintConfigs()];
case 2:
printConfigs = _b.sent();
if (templateInfos.length > 0) {
this.setState({
templateInfos: templateInfos,
printConfigs: printConfigs
}, function () {
var _a;
// 有模板数据:设置为第一个模板
// 没有有模板数据:表单项label默认为labelList[0].tempName
if (printConfigs.length > 0) {
_this.setPrintConfig(printConfigs[0].caption);
}
else {
// Form.Item initalValue 由于render期间只执行一次,所以通过请求获取的数据赋值上去无效
// 因此通过该方法赋默认值
(_a = _this.formRef.current) === null || _a === void 0 ? void 0 : _a.setFieldsValue({
label: templateInfos[0].tempName
});
}
});
}
return [2 /*return*/];
}
});
});
};
// 获取模板数据
LabelPrint.prototype.getTemplateInfos = function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, env, templateApi, templates;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
_a = this.props, env = _a.env, templateApi = _a.templateApi;
return [4 /*yield*/, env.fetcher(templateApi).then(function (res) {
if (res.status === 0) {
return Promise.resolve(res.data);
}
else {
return Promise.resolve([]);
}
})];
case 1:
templates = _b.sent();
return [2 /*return*/, templates];
}
});
});
};
// 获取打印默认值配置
LabelPrint.prototype.getPrintConfigs = function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, env, defValGetApi, templateArr;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
_a = this.props, env = _a.env, defValGetApi = _a.defValGetApi;
return [4 /*yield*/, env.fetcher(defValGetApi).then(function (res) {
if (res.status === 0) {
return Promise.resolve(res.data);
}
else {
return Promise.resolve([]);
}
})];
case 1:
templateArr = _b.sent();
return [2 /*return*/, templateArr];
}
});
});
};
// 设置打印默认值
LabelPrint.prototype.setPrintConfig = function (value) {
var _a, _b;
var printers = this.props.printers;
var _c = this.state, printConfigs = _c.printConfigs, templateInfos = _c.templateInfos;
var config = printConfigs.find(function (config) { return config.caption === value; });
if (config) {
var tempName = (_a = templateInfos.find(function (item) { return item.tempId === config.templateId; })) === null || _a === void 0 ? void 0 : _a.tempName;
this.setState({
templateInputShow: false,
templateInputValue: '',
templateSelectValue: value,
});
// 将模板对应的字段赋值到表单
var printer = printers.indexOf(config.printer) > -1 ? config.printer : printers[0]; // 如果printers含有template.printer则显示template.printer
var content = config.content, direction = config.direction, width = config.width, height = config.height, topMargin = config.topMargin, bottomMargin = config.bottomMargin, leftMargin = config.leftMargin, rightMargin = config.rightMargin, rowSpacing = config.rowSpacing, colSpacing = config.colSpacing, horArrange = config.horArrange;
(_b = this.formRef.current) === null || _b === void 0 ? void 0 : _b.setFieldsValue({
printer: printer,
label: tempName,
pageSize: config.pageSize,
direction: direction,
pageWidth: width,
pageHeight: height,
marginTop: topMargin,
marginBottom: bottomMargin,
marginLeft: leftMargin,
marginRight: rightMargin,
rowSpacing: rowSpacing,
colSpacing: colSpacing,
repeat: !!horArrange,
content: content
});
}
};
// 新增打印默认值配置
LabelPrint.prototype.addPrintConfig = function () {
var _a;
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _b, templateInputValue, templateInfos, _c, env, defValAddApi, labelId, values, content, printer, label_1, pageSize, repeat, pageWidth, pageHeight, marginTop, marginLeft, marginBottom, marginRight, rowSpacing, colSpacing, direction, res, printConfigs;
return tslib_1.__generator(this, function (_d) {
switch (_d.label) {
case 0:
_b = this.state, templateInputValue = _b.templateInputValue, templateInfos = _b.templateInfos;
_c = this.props, env = _c.env, defValAddApi = _c.defValAddApi, labelId = _c.labelId;
if (!(templateInputValue.trim().length > 0)) return [3 /*break*/, 6];
return [4 /*yield*/, this.formRef.current.validateFields()];
case 1:
values = _d.sent();
content = values.content, printer = values.printer, label_1 = values.label, pageSize = values.pageSize, repeat = values.repeat, pageWidth = values.pageWidth, pageHeight = values.pageHeight, marginTop = values.marginTop, marginLeft = values.marginLeft, marginBottom = values.marginBottom, marginRight = values.marginRight, rowSpacing = values.rowSpacing, colSpacing = values.colSpacing, direction = values.direction;
return [4 /*yield*/, env.fetcher(defValAddApi, {
caption: templateInputValue,
printer: printer,
pageSize: pageSize,
templateId: (_a = templateInfos.find(function (item) { return item.tempName === label_1; })) === null || _a === void 0 ? void 0 : _a.tempId,
labelId: labelId,
direction: direction,
width: pageWidth,
height: pageHeight,
topMargin: marginTop,
bottomMargin: marginBottom,
leftMargin: marginLeft,
rightMargin: marginRight,
rowSpacing: rowSpacing,
colSpacing: colSpacing,
horArrange: +repeat,
content: content
})];
case 2:
res = _d.sent();
if (!(res.status === 0)) return [3 /*break*/, 4];
message_1.default.success('保存模板成功');
return [4 /*yield*/, this.getPrintConfigs()];
case 3:
printConfigs = _d.sent();
this.setState({
printConfigs: printConfigs,
templateInputShow: false,
templateInputValue: '',
templateSelectValue: templateInputValue.trim()
});
return [3 /*break*/, 5];
case 4:
message_1.default.error('保存模板失败' + res.msg);
this.setState({
templateInputShow: false,
templateInputValue: '',
});
_d.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
this.setState({
templateInputShow: false,
});
_d.label = 7;
case 7: return [2 /*return*/];
}
});
});
};
// 删除打印配置项
LabelPrint.prototype.deletePrintConfig = function (value) {
var _this = this;
var _a = this.props, __ = _a.translate, env = _a.env, defValDelApi = _a.defValDelApi, labelId = _a.labelId;
env.fetcher(defValDelApi, { labelId: labelId, caption: value }).then(function (res) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var printConfigs_1;
var _this = this;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!(res.status === 0)) return [3 /*break*/, 2];
message_1.default.success("".concat(__('CRUD.deleted')));
return [4 /*yield*/, this.getPrintConfigs()
// 如果下拉值===删除的值
];
case 1:
printConfigs_1 = _a.sent();
// 如果下拉值===删除的值
this.setState({ printConfigs: printConfigs_1 }, function () {
if (printConfigs_1.length > 0) {
_this.setPrintConfig(printConfigs_1[0].caption);
}
});
return [3 /*break*/, 3];
case 2:
message_1.default.error(res.msg);
_a.label = 3;
case 3: return [2 /*return*/];
}
});
}); });
};
LabelPrint.prototype.editPrintConfig = function (item) {
var _this = this;
var _a = this.props, defValEditApi = _a.defValEditApi, labelId = _a.labelId, env = _a.env;
env.fetcher(defValEditApi, { labelId: labelId, oldCaption: item.caption, newCaption: this.inputValue, caption: this.inputValue }).then(function (res) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var printConfigs_2;
var _this = this;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
this.setState({ visible: false });
if (!res.ok) return [3 /*break*/, 2];
message_1.default.success(res.msg);
return [4 /*yield*/, this.getPrintConfigs()];
case 1:
printConfigs_2 = _a.sent();
this.setState(function (pre) { var _a; return ({ printConfigs: printConfigs_2, templateSelectValue: ((_a = pre.currentPrintConfig) === null || _a === void 0 ? void 0 : _a.caption) === pre.templateSelectValue ? _this.inputValue : pre.templateSelectValue }); });
return [3 /*break*/, 3];
case 2:
message_1.default.error(res.msg);
_a.label = 3;
case 3: return [2 /*return*/];
}
});
}); });
};
// 保存打印信息函数,发送保存请求
LabelPrint.prototype.savePrintInfo = function () {
// 获取保存请求的地址
var _a = this.props, fetcher = _a.env.fetcher, ctx = _a.ctx, callbackApi = _a.callbackApi;
if (!callbackApi)
return;
var PRINT_TIME = (0, moment_1.default)(new Date()).format('YYYY-MM-DD HH:mm:ss');
fetcher(callbackApi, tslib_1.__assign(tslib_1.__assign({}, ctx), { PRINT_TIME: PRINT_TIME }));
};
LabelPrint.prototype.handleClose = function (e) {
var onHide = this.props.onHide;
onHide(e);
this.setState({
templateInputShow: false,
});
};
LabelPrint.prototype.handleAddInput = function () {
if (this.state.templateInputShow)
return;
this.setState({
templateInputShow: true,
templateSelectValue: this.state.templateInputValue ? '' : this.props.translate('CRUD.labelName')
});
};
// 获取标签打印数据
// dataRange: 1选中数据 0全部数据打印 3当前页数据
LabelPrint.prototype.getLabelPrintData = function (dataRange) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, env, ctx, labelDataApi, query, orderParam, primaryField, isRow, primaryKey, data, res;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
_a = this.props, env = _a.env, ctx = _a.ctx, labelDataApi = _a.labelDataApi, query = _a.query, orderParam = _a.orderParam, primaryField = _a.primaryField, isRow = _a.isRow, primaryKey = _a.primaryKey;
if (dataRange == 1 && (ctx === null || ctx === void 0 ? void 0 : ctx.selectedItems.length) <= 0) {
message_1.default.info('请先选择行数据');
return [2 /*return*/, Promise.reject()];
}
data = isRow ?
Object.assign({ printType: 2 }, ctx) :
{
primaryField: primaryField,
ids: dataRange == 3 ? ctx.items.map(function (item) { return item.hasOwnProperty(primaryField) ? item[primaryField] : null; }).filter(function (item) { return item; }).join(',') : ctx.ids,
printType: dataRange == 0 ? 1 : 0,
orderBy: orderParam,
selectedItems: dataRange == 3 ? ctx.items.concat() : ctx.selectedItems.concat()
};
Object.keys(query).forEach(function (key) {
var item = query[key];
if (key == 'filterOptionData') {
Object.keys(item !== null && item !== void 0 ? item : {}).forEach(function (k) { return data[k] = item[k]; });
}
else {
data[key] = item;
}
});
return [4 /*yield*/, env.fetcher(labelDataApi, data)];
case 1:
res = _b.sent();
if (res.status === 0 && res.data != null) {
if (primaryKey) {
return [2 /*return*/, res.data.items.map(function (item) {
var primaryValue = item[primaryKey];
var target = ctx.items.find(function (val) { return val[primaryKey] === primaryValue; });
return tslib_1.__assign(tslib_1.__assign({}, target), item);
})];
}
return [2 /*return*/, res.data.items];
}
else {
env.alert(res.msg);
}
return [2 /*return*/, []];
}
});
});
};
// 动态份数处理
LabelPrint.prototype.arrangeData = function (labelPrintData) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var res, label, count, operate, type, templateInfos, temp1, handlePrintData, dynamicCountArr, previewData, i, dynamicCount, typeNum, item, k, __, templateInfo;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.formRef.current.validateFields()];
case 1:
res = _a.sent();
label = res.label, count = res.count, operate = res.operate, type = res.type;
templateInfos = this.state.templateInfos;
temp1 = [];
if (type === '无') {
labelPrintData.forEach(function (item) {
for (var i = 0; i < count; i++) {
temp1.push(item);
}
});
}
handlePrintData = type === '无' ? temp1 : [];
dynamicCountArr = [];
previewData = type === '无' ? labelPrintData : [];
if (type !== '无') {
for (i = 0; i < labelPrintData.length; i++) {
dynamicCount = 0;
typeNum = typeof (labelPrintData[i][type] === 'number') ? labelPrintData[i][type] : 0;
if (operate === '+') {
dynamicCount = Math.floor(count + typeNum);
}
else if (operate === '*') {
dynamicCount = Math.floor(count * typeNum);
}
dynamicCountArr.push(dynamicCount);
if (dynamicCount === 0) {
continue;
}
item = labelPrintData[i];
for (k = 0; k < dynamicCount; k++) {
// dynamicCount===0时不会循环
handlePrintData.push(item);
}
previewData.push(item);
}
}
// handlePrintData.length为0,previewPrintData.length也会为0
if (handlePrintData.length === 0) {
__ = this.props.translate;
message_1.default.info("".concat(__('CRUD.countIs0'), ",").concat(__('CRUD.reSelect')));
return [2 /*return*/, Promise.reject()];
}
templateInfo = templateInfos.find(function (item) { return item.tempName === label; });
return [2 /*return*/, { handlePrintData: handlePrintData, previewData: previewData, templateInfo: templateInfo }];
}
});
});
};
LabelPrint.prototype.showModalTip = function (countOfPage, maxPage) {
return new Promise(function (resolve) {
modal_1.default.confirm({
content: react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement("span", null,
"\u9884\u89C8\u5171\u9700\u6E32\u67D3 ",
react_1.default.createElement("strong", null, countOfPage),
" \u9875\u3002"),
react_1.default.createElement("span", null,
"\u5927\u4E8E\u7B49\u4E8E",
maxPage,
"\u9875\u65F6\uFF0C\u4EC5\u6E32\u67D3\u524D",
maxPage,
"\u9875\uFF0C\u8BF7\u786E\u8BA4\u662F\u5426\u9884\u89C8\uFF1F")),
okText: '确认',
cancelText: '取消',
onOk: function () { return resolve(true); },
onCancel: function () { return resolve(false); },
zIndex: 2000
});
});
};
// 标签仅预览
LabelPrint.prototype.handleLabelPrint = function (preview) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var values, isRepeat, content, direction, pageWidth, pageHeight, rowSpacing, colSpacing, range, startPage, endPage, labelPrintData, arrangeData, handlePrintData, templateInfo, vertical, width, height, isRange, col, row, rowCount, columnCount, countOfPage, printData, labelCount, pageCount, maxPreviewPageCount, confirm, param;
var _this = this;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.formRef.current.validateFields()];
case 1:
values = _a.sent();
isRepeat = values.repeat, content = values.content, direction = values.direction, pageWidth = values.pageWidth, pageHeight = values.pageHeight, rowSpacing = values.rowSpacing, colSpacing = values.colSpacing, range = values.range, startPage = values.startPage, endPage = values.endPage;
if (preview) {
this.setState({ previewLoading: true, showEmpty: false });
}
else {
this.setState({ printLoading: true });
}
return [4 /*yield*/, this.getLabelPrintData(content).catch(function () { return _this.setState({ previewLoading: false, printLoading: false }); })];
case 2:
labelPrintData = _a.sent();
if (labelPrintData.length == 0) {
message_1.default.info('数据为空');
this.setState({ previewLoading: false, printLoading: false });
return [2 /*return*/];
}
return [4 /*yield*/, this.arrangeData(labelPrintData).catch(function () { return _this.setState({ previewLoading: false, printLoading: false }); })];
case 3:
arrangeData = _a.sent();
if (!arrangeData) {
return [2 /*return*/];
}
handlePrintData = arrangeData.handlePrintData, templateInfo = arrangeData.templateInfo;
if (!templateInfo) return [3 /*break*/, 6];
vertical = direction === 0;
width = vertical ? pageWidth : pageHeight;
height = vertical ? pageHeight : pageWidth;
isRange = range === 1;
col = ((vertical ? width : height) - colSpacing);
row = ((vertical ? height : width) - rowSpacing);
if (templateInfo.width > col || templateInfo.height > row) {
modal_1.default.error({ title: '提示', content: "\u914D\u7F6E\u51FA\u9519, \u6807\u7B7E\u5927\u5C0F".concat([templateInfo.width, templateInfo.height], " \u8D85\u8FC7\u7EB8\u5F20\u53EF\u7528\u5927\u5C0F").concat([col, row]), zIndex: 9999 });
this.setState({ previewLoading: false, printLoading: false });
return [2 /*return*/];
}
if (isRange && startPage > endPage) {
message_1.default.info('请输入正确的输出页码');
this.setState({ previewLoading: false, printLoading: false });
return [2 /*return*/];
}
rowCount = (0, util_1.getMaxCount)(templateInfo.height, height, rowSpacing);
columnCount = (0, util_1.getMaxCount)(templateInfo.width, width, colSpacing);
countOfPage = rowCount * columnCount;
printData = isRange ? isRepeat ? handlePrintData.slice((startPage - 1) * countOfPage, endPage * countOfPage) : handlePrintData.slice(startPage - 1, endPage) : handlePrintData.slice();
labelCount = printData.length;
pageCount = isRepeat ? labelCount % countOfPage === 0 ? labelCount / countOfPage : Math.floor(labelCount / countOfPage) + 1 : labelCount;
maxPreviewPageCount = isRepeat ? 10 : 50;
confirm = true;
if (!preview) return [3 /*break*/, 5];
if (!(pageCount >= maxPreviewPageCount)) return [3 /*break*/, 5];
return [4 /*yield*/, this.showModalTip(pageCount, maxPreviewPageCount)];
case 4:
confirm = _a.sent();
printData = printData.slice(0, isRepeat ? maxPreviewPageCount * countOfPage : maxPreviewPageCount);
_a.label = 5;
case 5:
if (confirm) {
param = tslib_1.__assign(tslib_1.__assign({}, values), { preview: preview, direction: vertical, arrange: isRepeat });
this.callLabelPreview(templateInfo.tempContent, printData, param, countOfPage, columnCount);
}
else {
this.setState({ previewLoading: false });
}
_a.label = 6;
case 6: return [2 /*return*/];
}
});
});
};
LabelPrint.prototype.callLabelPreview = function (templateContent, printData, printerParam, countOfPage, countOfColumn) {
var _this = this;
var baseUrl = this.props.baseUrl;
var arrange = printerParam.arrange, preview = printerParam.preview;
var labelTemplate = (0, util_1.buildLabelTemplate)(templateContent);
var templateDatas = arrange ?
(0, util_1.setLabelTemplateDataWithArrange)(labelTemplate, printData, printerParam, countOfPage, countOfColumn, baseUrl) :
(0, util_1.setLabelTemplateData)(labelTemplate, printData, baseUrl);
(0, print_1.labelPrint)(tslib_1.__assign(tslib_1.__assign({}, printerParam), { templateDatas: templateDatas }), function () {
if (!preview) {
message_1.default.success('打印任务发送成功');
_this.savePrintInfo();
_this.setState({ printLoading: false });
}
else {
_this.setState({ previewLoading: false });
}
});
};
LabelPrint.prototype.render = function () {
var _this = this;
var _a, _b;
var _c = this.props, printers = _c.printers, cx = _c.classnames, __ = _c.translate, modalContainer = _c.modalContainer, popupContainer = _c.popupContainer, remark = _c.remark, isRow = _c.isRow, ctx = _c.ctx;
var _d = this.state, templateInputShow = _d.templateInputShow, templateInputValue = _d.templateInputValue, templateSelectValue = _d.templateSelectValue, printConfigs = _d.printConfigs, templateInfos = _d.templateInfos, typeOptions = _d.typeOptions, operateOptions = _d.operateOptions, showEmpty = _d.showEmpty, previewLoading = _d.previewLoading;
var labelCaptionArr = templateInfos.map(function (item) { return item.tempName; });
return (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement("div", { className: cx('Modal-header') },
react_1.default.createElement("div", { className: cx('Modal-title') },
__('CRUD.labelPrint'),
react_1.default.createElement("a", { "data-tooltip": __('Dialog.close'), onClick: this.handleClose.bind(this), className: cx('Modal-close') },
react_1.default.createElement(icons_1.CloseIcon, null)))),
react_1.default.createElement("div", { className: cx('Modal-body') },
remark,
react_1.default.createElement("div", { className: 'print-form-container' },
react_1.default.createElement("div", { className: 'preview-container' },
react_1.default.createElement(components_1.Spinner, { size: "md", overlay: true, show: previewLoading }),
showEmpty && react_1.default.createElement(empty_1.default, { description: '\u6682\u65E0\u9884\u89C8\u6548\u679C', className: 'preview-empty' }),
react_1.default.createElement("iframe", { id: 'label-preview', width: '100%', height: '100%' })),
react_1.default.createElement(form_1.default, { style: { width: 350 }, ref: this.formRef, colon: false, layout: 'vertical' },
react_1.default.createElement("div", { className: "print-setting" },
react_1.default.createElement("div", { className: "print-setting-label" }, "\u6253\u5370\u8BBE\u5907"),
react_1.default.createElement("div", { className: "print-setting-content" },
react_1.default.createElement(row_1.default, { gutter: 10 },
react_1.default.createElement(col_1.default, { span: 12 },
react_1.default.createElement(form_1.default.Item, { name: "printer", label: __('CRUD.printer'), initialValue: (printers === null || printers === void 0 ? void 0 : printers[0]) || '', rules: [{ required: true, message: "".concat(__('CRUD.selectPrinter')) }] },
react_1.default.createElement(select_1.default, { showSearch: true, getPopupContainer: popupContainer, dropdownClassName: 'label-print-selector' }, printers === null || printers === void 0 ? void 0 : printers.map(function (item) { return react_1.default.createElement(Option, { key: item, value: item }, item); })))),
react_1.default.createElement(col_1.default, { span: 12 },
react_1.default.createElement(form_1.default.Item, { name: "pageSize", label: __('CRUD.pageSize'), initialValue: types_1.pageOptions[0].value, rules: [{ required: true, message: "".concat(__('CRUD.selectPage')) }] },
react_1.default.createElement(select_1.default, { showSearch: true, getPopupContainer: popupContainer, dropdownClassName: 'label-print-selector', onChange: function (value) {
var _a;
var _b = types_1.sizeOptions[value], pageWidth = _b[0], pageHeight = _b[1];
(_a = _this.formRef.current) === null || _a === void 0 ? void 0 : _a.setFieldsValue({
pageWidth: pageWidth,
pageHeight: pageHeight
});
} }, types_1.pageOptions === null || types_1.pageOptions === void 0 ? void 0 : types_1.pageOptions.map(function (item) { return react_1.default.createElement(Option, { key: item.value, value: item.value }, item.label); }))))),
react_1.default.createElement(row_1.default, { gutter: 10 },
react_1.default.createElement(col_1.default, { span: 12 },
react_1.default.createElement(form_1.default.Item, { name: "pageWidth", label: __('width'), initialValue: types_1.sizeOptions[types_1.pageOptions[0].value][0], rules: [{
validator: function (rule, value) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
if (value < 0 || value > 1000) {
throw new Error("".concat(__('CRUD.fillIn'), "1-1000"));
}
return [2 /*return*/];
});
}); }
}] },
react_1.default.createElement(input_number_1.default, { className: 'w-full', min: 0, max: 1000 }))),
react_1.default.createElement(col_1.default, { span: 12 },
react_1.default.createElement(form_1.default.Item, { name: "pageHeight", label: __('height'), initialValue: types_1.sizeOptions[types_1.pageOptions[0].value][1], rules: [{
validator: function (rule, value) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
if (value < 0 || value > 1000) {
throw new Error("".concat(__('CRUD.fillIn'), "1-1000"));
}
return [2 /*return*/];
});
}); }
}] },
react_1.default.createElement(input_number_1.default, { className: 'w-full', min: 0, max: 1000 }))))),
react_1.default.createElement("div", { className: "print-setting-label" }, "\u7EB8\u5F20\u8BBE\u7F6E"),
react_1.default.createElement("div", { className: "print-setting-content" },
react_1.default.createElement(row_1.default, { gutter: 10, style: { marginTop: 6 } },
react_1.default.createElement(col_1.default, { span: 2, style: { paddingTop: 5 } },
" ",
react_1.default.createElement("span", null, __('up'))),
react_1.default.createElement(col_1.default, { span: 10 },
react_1.default.createElement(form_1.default.Item, { name: "marginTop", initialValue: 0 },
react_1.default.createElement(input_number_1.default, { className: "w-full" }))),
react_1.default.createElement(col_1.default, { span: 2, style: { paddingTop: 5 } },
" ",
react_1.default.createElement("span", null, __('left'))),
react_1.default.createElement(col_1.default, { span: 10 },
react_1.default.createElement(form_1.default.Item, { name: "marginLeft", initialValue: 0 },
react_1.default.createElement(input_number_1.default, { className: "w-full" })))),
react_1.default.createElement(row_1.default, null,
react_1.default.createElement(col_1.default, { span: 3, style: { paddingTop: 5 } }, __('direction')),
react_1.default.createElement(col_1.default, { span: 21 },
react_1.default.createElement(form_1.default.Item, { name: "direction", initialValue: 0, rules: [{ required: true, }] },
react_1.default.createElement(radio_1.default.Group, null,
react_1.default.createElement(radio_1.default, { value: 0, style: { marginRight: 22 } }, __('vertical')),
react_1.default.createElement(radio_1.default, { value: 1 }, __('horizontal'))))))),
react_1.default.createElement("div", { className: "print-setting-label" }, "\u6253\u5370\u5185\u5BB9"),
react_1.default.createElement("div", { className: "print-setting-content" },
react_1.default.createElement(row_1.default, { gutter: 4, style: { marginTop: 6 } },
react_1.default.createElement(col_1.default, { span: 3, style: { paddingTop: 4 } }, "\u6807\u7B7E"),
react_1.default.createElement(col_1.default, { span: 21 },
react_1.default.createElement(form_1.default.Item, { name: "label", rules: [{ required: true, message: "".concat(__('CRUD.select_Label')) }] },
react_1.default.createElement(select_1.default, { showSearch: true, getPopupContainer: popupContainer, dropdownClassName: 'label-print-selector' }, labelCaptionArr === null || labelCaptionArr === void 0 ? void 0 : labelCaptionArr.map(function (item) { return react_1.default.createElement(Option, { key: item, value: item }, item); }))))),
react_1.default.createElement(row_1.default, null,
react_1.default.createElement(col_1.default, { span: 24 },
react_1.default.createElement(row_1.default, { gutter: 4 },
react_1.default.createElement(col_1.default, { span: 3, style: { paddingTop: 5 } }, __('CRUD.copies')),
react_1.default.createElement(col_1.default, { span: 6, style: { padding: '0 2px' } },
react_1.default.createElement(form_1.default.Item, { name: "count", initialValue: 1, rules: [{
validator: function (rule, value) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
if (value < 1 || value > 10000) {
throw new Error("".concat(__('CRUD.fillIn'), "1-10000"));
}
return [2 /*return*/];
});
}); }
}] },
react_1.default.createElement(input_number_1.default, { className: 'input-count', min: 1, max: 10000, formatter: function (value) { return value ? Number(value).toFixed(0) : ''; } }))),
react_1.default.createElement(col_1.default, { span: 6, style: { padding: '0 6px' } },
react_1.default.createElement(form_1.default.Item, { name: "operate", initialValue: operateOptions[0].optionValue, rules: [{ required: true, }] },
react_1.default.createElement(select_1.default, { getPopupContainer: popupContainer, dropdownClassName: 'label-print-selector', onChange: function (value) {
if (value === '无') {
_this.formRef.current.setFieldsValue({ type: value });
}
else {
if (_this.formRef.current.getFieldValue('type') === '无' && typeOptions[1]) {
_this.formRef.current.setFieldsValue({ type: typeOptions[1].optionValue });
}
else if (!typeOptions[1]) {
_this.formRef.current.setFieldsValue({ operate: '无' });
}
}
} }, operateOptions === null || operateOptions === void 0 ? void 0 : operateOptions.map(function (item, index) { return react_1.default.createElement(Option, { key: index, value: item.optionValue }, item.optionName); })))),
react_1.default.createElement(col_1.default, { span: 9, style: { padding: '0 2px' } },
react_1.default.createElement(form_1.default.Item, { name: "type", initialValue: operateOptions[0].optionValue, rules: [{ required: true, }] },
react_1.default.createElement(select_1.default, { getPopupContainer: popupContainer, dropdownClassName: 'label-print-selector', onChange: function (value) {
if (value === '无') {
_this.formRef.current.setFieldsValue({ operate: value });
}
else {
if (_this.formRef.current.getFieldValue('operate') === '无') {
_this.formRef.current.setFieldsValue({ operate: operateOptions[1].optionValue });
}
}
} }, typeOptions === null || typeOptions === void 0 ? void 0 : typeOptions.map(function (item, index) { return react_1.default.createElement(Option, { key: index, value: item.optionValue }, item.optionName); }))))))),
react_1.default.createElement(row_1.default, { gutter: 4 },
react_1.default.createElement(col_1.default, { span: 3, style: { paddingTop: 5 } }, __('arrange')),
react_1.default.createElement(col_1.default, { span: 7 },
react_1.default.createElement(form_1.default.Item, { name: "repeat", valuePropName: 'checked', initialValue: true },
react_1.default.createElement(checkbox_1.default, null, "\u6392\u5217"))),
react_1.default.createElement(col_1.default, { span: 2.5, style: { paddingTop: 5 } },
" ",
__('rowSpacing')),
react_1.default.createElement(col_1.default, { span: 4.5 },
react_1.default.createElement(form_1.default.Item, { name: "rowSpacing", initialValue: 0 },
react_1.default.createElement(input_number_1.default, { style: { width: 60 }, min: 0 }))),
react_1.default.createElement(col_1.default, { span: 2.5, style: { paddingTop: 5 } },
" ",
__('colSpacing')),
react_1.default.createElement(col_1.default, { span: 4.5 },
react_1.default.createElement(form_1.default.Item, { name: "colSpacing", initialValue: 0 },
react_1.default.createElement(input_number_1.default, { style: { width: 60 }, min: 0 }))))),
react_1.default.createElement("div", { className: "print-setting-label" }, "\u6570\u636E\u8303\u56F4"),
react_1.defau