UNPKG

fapiao

Version:

a simple fapiao react component

1,301 lines (1,275 loc) 41.1 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var Decimal = _interopDefault(require('decimal.js')); var dxrmb = _interopDefault(require('dxrmb')); var HTableLayout = _interopDefault(require('kbjtable')); require('kbjtable/dist/kbjtable.cjs.development.css'); var React = require('react'); var React__default = _interopDefault(React); var reactDom = require('react-dom'); var scrollIntoView = _interopDefault(require('scroll-into-view-if-needed')); function _regeneratorRuntime() { _regeneratorRuntime = function () { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function (t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == typeof h && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function (t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(typeof e + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function (e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function () { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function (e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function (t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function (t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function (t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function (t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function (e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure " + obj); } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function Flex(props) { var flexs = props.flexs, children = props.children, style = props.style, gap = props.gap; var items = React__default.Children.map(children, function (child, idx) { var flex = (flexs == null ? void 0 : flexs[idx]) || 1; return React__default.createElement("div", { style: { flex: flex } }, child); }); return React__default.createElement("div", { style: _extends({ width: "100%" }, style, gap && { gap: gap }, { display: "flex", alignItems: "center" }) }, items); } /* const z = React.Children.map(children, (child) => { // Process each child element console.log("a prop:", child) return child; // You can return the modified child or perform other actions }) */ var styles = {"wrap":"input-module_wrap__5-bC6"}; var Input = /*#__PURE__*/React.forwardRef(function (props, ref) { var rest = _extends({}, (_objectDestructuringEmpty(props), props)); return React__default.createElement("div", { ref: ref, className: styles.wrap }, React__default.createElement("input", Object.assign({}, rest))); }); var RadioGroup = function RadioGroup(props) { var _useState = React.useState(props.value); // 设置默认值 var onRadioChange = function onRadioChange(event) { props.onChange == null || props.onChange(event.target.value); }; //const name = props.name || `radio_${radioId++}`; // 使用React.Children.map遍历子元素,并为每个子元素添加额外的props var radioButtons = React__default.Children.map(props.children, function (child) { if (!React__default.isValidElement(child)) return null; return React__default.cloneElement(child, { onChange: onRadioChange, checked: child.props.value === props.value, name: props.name }); }); return React__default.createElement("div", null, radioButtons); }; var Radio = function Radio(props) { var value = props.value, children = props.children, onChange = props.onChange, name = props.name; return React__default.createElement("label", null, React__default.createElement("input", { type: "radio", name: name, value: value, onChange: onChange }), children); }; Radio.Group = RadioGroup; var styles$1 = {"wrap":"Select-module_wrap__LtW5O"}; function SelectOption(props) { return React__default.createElement("option", Object.assign({}, props)); } function Select(props) { var title = props.title, children = props.children, value = props.value; function onChange(event) { props.onChange == null || props.onChange(event.target.value); } return React__default.createElement("div", { className: styles$1.wrap }, React__default.createElement("select", { title: title, onChange: onChange, value: value }, children)); } Select.Option = SelectOption; var styles$2 = {"input":"AutoComplete-module_input__2BQZK","dropdown":"AutoComplete-module_dropdown__9zWLc","dropdownoption":"AutoComplete-module_dropdownoption__CGG0P"}; var useMouseDown = function useMouseDown(callback) { React.useEffect(function () { var handleClickOutside = function handleClickOutside(event) { callback(event); }; document.addEventListener("mousedown", handleClickOutside); return function () { document.removeEventListener("mousedown", handleClickOutside); }; }, [callback]); }; var styles$3 = {"popover":"Popover-module_popover__ZJZ5C"}; var _excluded = ["children", "targetEl"]; var Popover = /*#__PURE__*/React.forwardRef(function (props, ref) { var refDropdown = React.useRef(null); var children = props.children, targetEl = props.targetEl, rest = _objectWithoutPropertiesLoose(props, _excluded); React.useLayoutEffect(function () { console.log("mount"); if (!refDropdown.current) return; if (!targetEl) return; var rect = targetEl.getBoundingClientRect(); var left = rect.left; var top = rect.top + rect.height; var width = rect.width; var padding = 10; refDropdown.current.style.position = "absolute"; refDropdown.current.style.top = top + padding + "px"; refDropdown.current.style.left = left + "px"; refDropdown.current.style.width = width + "px"; }, [targetEl]); function setRefs(dom) { refDropdown.current = dom; ref.current = dom; } return reactDom.createPortal(React__default.createElement("div", Object.assign({ className: styles$3.popover, ref: setRefs }, rest), children), document.body); }); var _excluded$1 = ["active", "children"]; var AutoCompleteOption = function AutoCompleteOption(props) { var active = props.active, children = props.children, rest = _objectWithoutPropertiesLoose(props, _excluded$1); var ref = React.useRef(null); React.useEffect(function () { if (!ref.current) return; if (active) { scrollIntoView(ref.current, { scrollMode: "if-needed", behavior: "smooth" }); } }, [active]); return React__default.createElement("div", Object.assign({ ref: ref }, rest), children); }; /** * 默认的过滤器 * 默认过滤器认为数据源是字符串数组 * @param dataSource * @param keyword */ function defaultFilter(dataSource, keyword) { var options = []; if (dataSource.length > 0) { options = dataSource.filter(function (item) { return ("" + item).toLowerCase().indexOf(keyword) > -1; }); } return options; } /** * 默认的项绘制 * @param option * @returns */ function defaultOptionRender(option) { return option; } /** * 默认的值渲染器 * @param option * @returns */ function defaultOptionValuer(option) { return option; } var AutoComplete = function AutoComplete(props) { var refTarget = React.useRef(null); var refDropdown = React.useRef(null); var _useState = React.useState([]), options = _useState[0], setOptions = _useState[1]; var _useState2 = React.useState(0), optionIndex = _useState2[0], setOptionIndex = _useState2[1]; var _useState3 = React.useState(false), optionsActive = _useState3[0], setOptionsActive = _useState3[1]; var _useState4 = React.useState(props.value), value = _useState4[0], setValue = _useState4[1]; // 使用默认或者传入的过滤器 var filter = props.filter || defaultFilter; // 内容渲染器 var optionRender = props.optionRender || defaultOptionRender; // input渲染器 var optionValuer = props.optionValuer || defaultOptionValuer; var onInputChange = /*#__PURE__*/function () { var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(e) { var keyword, dataSource, filterOptions; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: keyword = e.currentTarget.value; setValue(keyword); if (!(props.dataSource instanceof Function)) { _context.next = 8; break; } _context.next = 5; return props.dataSource(keyword); case 5: dataSource = _context.sent; _context.next = 9; break; case 8: dataSource = props.dataSource; case 9: filterOptions = filter(dataSource, keyword); if (filterOptions.length > 0) { setOptions(filterOptions); setOptionsActive(true); } else { setOptionsActive(false); } triggerChange(keyword); case 12: case "end": return _context.stop(); } }, _callee); })); return function onInputChange(_x) { return _ref.apply(this, arguments); }; }(); var onInputKeyDown = function onInputKeyDown(e) { if (e.key === "ArrowUp") { if (optionIndex === 0) { setOptionIndex(options.length - 1); return; } setOptionIndex(optionIndex - 1); } else if (e.key === "ArrowDown") { // 如果该项当前不可见,需要进行处理,让其可见 if (optionIndex >= options.length - 1) { setOptionIndex(0); return; } setOptionIndex(optionIndex + 1); } else if (e.key === "Enter") { var option = options[optionIndex]; var val = optionValuer(option); setValue(val); triggerChange(val, option); setOptionIndex(0); setOptionsActive(false); } else if (e.key === "Escape") { setOptionsActive(false); } }; var onOptionClick = function onOptionClick(option) { var val = optionValuer(option); setValue(val); triggerChange(val, option); setOptionsActive(false); setOptionIndex(0); }; useMouseDown(function (event) { var elements = [refTarget.current, refDropdown.current]; if (elements.every(function (el) { return !(el != null && el.contains(event.target)); })) setOptionsActive(false); }); // const debounce = useDebounce(); function triggerChange(value, option) { //debounce.exec(() => { props.onChange == null || props.onChange(value, option); //}); } return React__default.createElement(React__default.Fragment, null, React__default.createElement("input", { type: "text", ref: refTarget, className: styles$2.input, title: value, value: value, onChange: onInputChange, onKeyDown: onInputKeyDown, style: props.inputStyle, autoFocus: true }), optionsActive && React__default.createElement(Popover, { targetEl: refTarget.current, ref: refDropdown }, options.map(function (option, index) { var active = index === optionIndex; return React__default.createElement(AutoCompleteOption, Object.assign({ className: styles$2.dropdownoption }, active && { style: { background: "#d8dce1" } }, { active: active, key: index, onClick: function onClick(e) { return onOptionClick(option); } }), optionRender(option)); }))); }; var customers = []; /** * 默认的过滤器 * 默认过滤器认为数据源是字符串数组 * @param dataSource * @param keyword */ function filter(dataSource, keyword) { var options = []; if (dataSource.length > 0) { options = dataSource.filter(function (option) { return option.name.toLowerCase().indexOf(keyword) > -1; }); } return options; } /** * 默认的项绘制 * @param option * @returns */ function optionRender(option) { return option == null ? void 0 : option.name; } var dataSource = /*#__PURE__*/function () { var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(keyword) { var options; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: options = []; if (!(keyword.length === 0)) { _context.next = 3; break; } return _context.abrupt("return", options); case 3: if (dataSource.length > 0) { options = customers.filter(function (option) { return option.name.toLowerCase().indexOf(keyword) > -1; }); } return _context.abrupt("return", options); case 5: case "end": return _context.stop(); } }, _callee); })); return function dataSource(_x) { return _ref.apply(this, arguments); }; }(); function BuyerEditInput(props) { return React__default.createElement(AutoComplete, { dataSource: dataSource, value: props.value, onChange: props.onChange, filter: filter, optionRender: optionRender, optionValuer: optionRender }); } function FormItem(props) { var label = props.label, children = props.children, style = props.style; return React__default.createElement("div", { style: _extends({}, style, { display: "flex", alignItems: "center" }) }, React__default.createElement("div", { style: { flex: "0 0 10em", display: "inline-flex", justifyContent: "end", whiteSpace: "nowrap", overflow: "hidden", alignItems: "center" } }, label, "\uFF1A"), React__default.createElement("div", { style: { flex: "auto", display: "flex", alignItems: "center" } }, children)); } var FormItem$1 = /*#__PURE__*/React.memo(FormItem); var goods = []; var inputStyle = { boxSizing: 'border-box', border: 'none', outline: 'none', fontSize: 'inherit', fontFamily: 'inherit', margin: 0, padding: '6px 11px', width: '100%', height: '100%', boxShadow: 'inset 0 0 0 2px #5292f7', borderRadius: 0 }; /** * 默认的过滤器 * 默认过滤器认为数据源是字符串数组 * @param dataSource * @param keyword */ function filter$1(dataSource, keyword) { var options = []; if (dataSource.length > 0) { options = dataSource.filter(function (option) { return option.name.toLowerCase().indexOf(keyword) > -1; }); } return options; } /** * 默认的项绘制 * @param option * @returns */ function optionRender$1(option) { return option == null ? void 0 : option.name; } var dataSource$1 = /*#__PURE__*/function () { var _ref = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(keyword) { var options; return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: options = []; if (!(keyword.length === 0)) { _context.next = 3; break; } return _context.abrupt("return", options); case 3: if (goods.length > 0) { options = goods.filter(function (option) { return option.name.toLowerCase().indexOf(keyword) > -1; }); } return _context.abrupt("return", options); case 5: case "end": return _context.stop(); } }, _callee); })); return function dataSource(_x) { return _ref.apply(this, arguments); }; }(); var GoodsNameEditInput = function GoodsNameEditInput(props) { return React__default.createElement(AutoComplete, { dataSource: dataSource$1, value: props.value, onChange: props.onChange, filter: filter$1, optionRender: optionRender$1, optionValuer: optionRender$1, inputStyle: inputStyle }); }; function Fapiao(props) { var _useState = React.useState(), buyerType = _useState[0], setBuyerType = _useState[1]; var _useState2 = React.useState(), invoiceType = _useState2[0], setInvoiceType = _useState2[1]; var _useState3 = React.useState(), buyerName = _useState3[0], setBuyerName = _useState3[1]; var _useState4 = React.useState(), buyerTaxNum = _useState4[0], setBuyerTaxNum = _useState4[1]; var _useState5 = React.useState(), buyerAddress = _useState5[0], setBuyerAddress = _useState5[1]; var _useState6 = React.useState(), buyerTel = _useState6[0], setBuyerTel = _useState6[1]; var _useState7 = React.useState(), buyerBankName = _useState7[0], setBuyerBankName = _useState7[1]; var _useState8 = React.useState(), buyerBankAccount = _useState8[0], setBuyerBankAccount = _useState8[1]; var _useState9 = React.useState(), sellerName = _useState9[0], setSellerName = _useState9[1]; var _useState10 = React.useState(), sellerTaxnum = _useState10[0], setSellerTaxnum = _useState10[1]; var _useState11 = React.useState(), sellerAddress = _useState11[0], setSellerAddress = _useState11[1]; var _useState12 = React.useState(), sellerTel = _useState12[0], setSellerTel = _useState12[1]; var _useState13 = React.useState(), sellerBankName = _useState13[0], setSellerBankName = _useState13[1]; var _useState14 = React.useState(), sellerBankAccount = _useState14[0], setSellerBankAccount = _useState14[1]; var _useState15 = React.useState(), extra = _useState15[0], setExtra = _useState15[1]; var _useState16 = React.useState(), cashier = _useState16[0], setCashier = _useState16[1]; var _useState17 = React.useState(), checker = _useState17[0], setChecker = _useState17[1]; var _useState18 = React.useState(), invoicer = _useState18[0], setInvoicer = _useState18[1]; var _useState19 = React.useState(props.goods || []), goods = _useState19[0], setGoods = _useState19[1]; var refTable = React.useRef(null); var columns = [{ title: '货物、服务名称', dataIndex: 'name', width: '15em', editable: true, // 要能autocomplete editor: GoodsNameEditInput }, { title: '税目编码', dataIndex: 'taxCode', width: '14em', editable: true }, { title: '规格型号', dataIndex: 'models', width: '6em', editable: true }, { title: '单位', dataIndex: 'unit', width: '4em', editable: true }, { title: '数量单价(含税)', dataIndex: 'price', width: '9em', editable: true }, { title: '金额(含税)', dataIndex: 'totalPrice', width: '7em', editable: true }, { title: '税率', dataIndex: 'taxRate', width: '4em', editable: true }, { title: '税额', dataIndex: 'taxAmount', width: '7em', editable: true }, { title: '操作', dataIndex: 'opr', render: function render(value, index, record) { return React__default.createElement("a", { onClick: function onClick(e) { return onClickRowDelete(index); }, href: "javascript: void(0)" }, "\u5220\u9664"); }, width: '4em', align: 'center' }]; function onClickAddRow() { setGoods([].concat(goods, [{}])); } function onClickRowDelete(rowIdx) { goods.splice(rowIdx, 1); setGoods([].concat(goods)); } function onClickRemoveAll() { var _refTable$current, _refTable$current2; setGoods([]); (_refTable$current = refTable.current) == null || _refTable$current.setEditingCell(undefined); (_refTable$current2 = refTable.current) == null || _refTable$current2.setSelectedCell(undefined); } function onChangeCell(value, detail, tag) { var _Object$assign2; // console.log("[invoice cell change]:", detail, value, tag); if (detail.column.dataIndex === undefined) { throw new Error("detail.column.dataIndex can't be undefine"); } if (detail.column.dataIndex === 'name') { if (tag instanceof Object) { var _Object$assign; Object.assign(goods[detail.rowIdx], (_Object$assign = {}, _Object$assign['taxCode'] = tag.taxCode, _Object$assign)); } } Object.assign(goods[detail.rowIdx], (_Object$assign2 = {}, _Object$assign2[detail.column.dataIndex] = value, _Object$assign2)); setGoods([].concat(goods)); // detail.rowIdx, // detail.cell.dataIndex } var totalPrice = React.useMemo(function () { var price = goods.reduce(function (acc, cur) { return acc.add(cur.totalPrice || 0); }, new Decimal(0)); return price.toString(); }, [goods]); var rmbTotalPrice = dxrmb(totalPrice); function onChangeBuyerType(value) { setBuyerType(value); } function onChangeInvoiceType(value) { setInvoiceType(value); } function onChangeBuyerName(value, tag) { setBuyerName(value); if (tag instanceof Object) { setBuyerTaxNum(tag.taxNum); setBuyerAddress(tag.address); setBuyerTel(tag.tel); setBuyerBankName(tag.bankName); setBuyerBankAccount(tag.bankAccount); } } function onChangeBuyerTaxnum(event) { setBuyerTaxNum(event.currentTarget.value); } function onChangeBuyerAddress(event) { setBuyerAddress(event.currentTarget.value); } function onChangeBuyerTel(event) { setBuyerTel(event.currentTarget.value); } function onChangeBuyerBankName(event) { setBuyerBankName(event.currentTarget.value); } function onChangeBuyerBankAccount(event) { setBuyerBankAccount(event.currentTarget.value); } function onChangeSellerName(event) { setSellerName(event.currentTarget.value); } function onChangeSellerTaxnum(event) { setSellerTaxnum(event.currentTarget.value); } function onChangeSellerAddress(event) { setSellerAddress(event.currentTarget.value); } function onChangeSellerTel(event) { setSellerTel(event.currentTarget.value); } function onChangeSellerBankName(event) { setSellerBankName(event.currentTarget.value); } function onChangeSellerBankAccount(event) { setSellerBankAccount(event.currentTarget.value); } function onChangeExtra(event) { setExtra(event.currentTarget.value); } function onChangeCashier(event) { setCashier(event.currentTarget.value); } function onChangeChecker(event) { setChecker(event.currentTarget.value); } function onChangeInvoicer(event) { setInvoicer(event.currentTarget.value); } return React__default.createElement("div", { style: { background: 'rgb(235,236,240)', fontSize: 12, padding: 10, borderRadius: 6 } }, React__default.createElement(Flex, { style: { marginBottom: 6 }, gap: 6 }, React__default.createElement(FormItem$1, { label: "\u8D2D\u65B9\u7C7B\u578B" }, React__default.createElement(Radio.Group, { value: buyerType, onChange: onChangeBuyerType }, React__default.createElement(Radio, { value: '个人' }, "\u4E2A\u4EBA"), React__default.createElement(Radio, { value: '企业' }, "\u4F01\u4E1A"))), React__default.createElement(FormItem$1, { label: "\u53D1\u7968\u7C7B\u578B" }, React__default.createElement(Select, { value: invoiceType, onChange: onChangeInvoiceType }, React__default.createElement(Select.Option, { value: "\u5897\u503C\u7A0E\u7535\u5B50\u53D1\u7968" }, "\u5897\u503C\u7A0E\u7535\u5B50\u53D1\u7968"), React__default.createElement(Select.Option, { value: "\u5897\u503C\u7A0E\u666E\u901A\u53D1\u8508" }, "\u5897\u503C\u7A0E\u666E\u901A\u53D1\u8508"), React__default.createElement(Select.Option, { value: "\u5897\u503C\u7A0E\u4E13\u7528\u53D1\u8508" }, "\u5897\u503C\u7A0E\u4E13\u7528\u53D1\u8508")))), React__default.createElement(Flex, { style: { marginBottom: 6 }, gap: 6 }, React__default.createElement(FormItem$1, { label: "\u8D2D\u65B9\u540D\u79F0" }, React__default.createElement(BuyerEditInput, { onChange: onChangeBuyerName, value: buyerName })), React__default.createElement(FormItem$1, { label: "\u8D2D\u65B9\u7EB3\u7A0E\u4EBA\u8BC6\u522B\u53F7" }, React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u8D2D\u65B9\u7EB3\u7A0E\u4EBA\u8BC6\u522B\u53F7", onChange: onChangeBuyerTaxnum, value: buyerTaxNum }))), React__default.createElement(Flex, { style: { marginBottom: 6 }, gap: 6 }, React__default.createElement(FormItem$1, { label: "\u8D2D\u65B9\u5730\u5740\u3001\u7535\u8BDD" }, React__default.createElement(Flex, { gap: 6, flexs: ['auto', '0 1 8em'] }, React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u8D2D\u65B9\u5730\u5740", onChange: onChangeBuyerAddress, value: buyerAddress }), React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u7535\u8BDD", onChange: onChangeBuyerTel, value: buyerTel }))), React__default.createElement(FormItem$1, { label: "\u8D2D\u65B9\u5F00\u6237\u884C\u53CA\u8D26\u6237" }, React__default.createElement(Flex, { gap: 6, flexs: ['auto', '0 1 10em'] }, React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u5F00\u6237\u884C", onChange: onChangeBuyerBankName, value: buyerBankName }), React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u8D26\u6237", onChange: onChangeBuyerBankAccount, value: buyerBankAccount })))), React__default.createElement("div", { style: { fontSize: 12, textAlign: 'right', marginBottom: 6 } }, React__default.createElement("a", { style: { marginRight: 10, textDecoration: 'none' }, onClick: onClickAddRow, href: "javascript: void(0)" }, "\u6DFB\u52A0\u65B0\u884C"), React__default.createElement("a", { style: { textDecoration: 'none' }, onClick: onClickRemoveAll, href: "javascript: void(0)" }, "\u6E05\u7A7A\u6570\u636E")), React__default.createElement(HTableLayout, { ref: refTable, style: { marginBottom: 6 }, columns: columns, data: goods, onChangeCell: onChangeCell }), React__default.createElement(Flex, { style: { marginBottom: 6 }, gap: 6 }, React__default.createElement(FormItem$1, { label: "\u5408\u8BA1\u91D1\u989D" }, "\uFFE5", totalPrice), React__default.createElement(FormItem$1, { label: "\u5408\u8BA1\u7A0E\u989D" }, "\uFFE50.00")), React__default.createElement(Flex, { style: { marginBottom: 6 }, gap: 6 }, React__default.createElement(FormItem$1, { label: "\u4EF7\u7A0E\u5408\u8BA1(\u5927\u5199)" }, rmbTotalPrice), React__default.createElement(FormItem$1, { label: "\u4EF7\u7A0E\u5408\u8BA1(\u5C0F\u5199)" }, "\uFFE50.00")), React__default.createElement(Flex, { style: { marginBottom: 6 }, gap: 6 }, React__default.createElement(FormItem$1, { label: "\u9500\u65B9\u540D\u79F0" }, React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u9500\u65B9\u540D\u79F0", onChange: onChangeSellerName, value: sellerName })), React__default.createElement(FormItem$1, { label: "\u9500\u65B9\u7EB3\u7A0E\u4EBA\u8BC6\u522B\u53F7" }, React__default.createElement(Input, { placeholder: "\u9500\u65B9\u7EB3\u7A0E\u4EBA\u8BC6\u522B\u53F7", onChange: onChangeSellerTaxnum, value: sellerTaxnum }))), React__default.createElement(Flex, { style: { marginBottom: 6 }, gap: 6 }, React__default.createElement(FormItem$1, { label: "\u9500\u65B9\u5730\u5740\u3001\u7535\u8BDD" }, React__default.createElement(Flex, { gap: 6, flexs: ['auto', '0 1 8em'] }, React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u9500\u65B9\u5730\u5740", onChange: onChangeSellerAddress, value: sellerAddress }), React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u7535\u8BDD", onChange: onChangeSellerTel, value: sellerTel }))), React__default.createElement(FormItem$1, { label: "\u9500\u65B9\u5F00\u6237\u884C\u53CA\u8D26\u6237" }, React__default.createElement(Flex, { gap: 6, flexs: ['auto', '0 1 10em'] }, React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u5F00\u6237\u884C", onChange: onChangeSellerBankName, value: sellerBankName }), React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u8D26\u6237", onChange: onChangeSellerBankAccount, value: sellerBankAccount })))), React__default.createElement(FormItem$1, { label: "\u5907\u6CE8", style: { marginBottom: 6 } }, React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u5907\u6CE8", value: extra, onChange: onChangeExtra })), React__default.createElement(Flex, { style: { marginBottom: 6 }, gap: 6 }, React__default.createElement(FormItem$1, { label: "\u6536\u6B3E\u4EBA" }, React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u5F00\u7968\u4EBA", onChange: onChangeCashier, value: cashier })), React__default.createElement(FormItem$1, { label: "\u590D\u6838\u4EBA" }, React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u590D\u6838\u4EBA", onChange: onChangeChecker, value: checker })), React__default.createElement(FormItem$1, { label: "\u5F00\u7968\u4EBA" }, React__default.createElement(Input, { placeholder: "\u8BF7\u8F93\u5165\u5F00\u7968\u4EBA", onChange: onChangeInvoicer, value: invoicer })))); } exports.Fapiao = Fapiao; //# sourceMappingURL=fapiao.cjs.development.js.map